/* Colours and ornament follow the couple's supplied invitation and floral logo. */
:root{--paper:#fff8ec;--cream:#f5e6d3;--ink:#593919;--sage:#8b4c3b;--gold:#a77428;--muted:#785f49;--line:#dcc298;--crimson:#861e38}
body{background-color:var(--paper);background-image:radial-gradient(ellipse at 0 24%,#edc6ba55,transparent 35%),radial-gradient(ellipse at 100% 60%,#dfbc7f22,transparent 35%)}
.button-dark{background:linear-gradient(120deg,#761a32,#9b2944);border-color:#b28348;box-shadow:0 5px 15px #64152c12;color:#fff8ec}
.button-dark:hover{background:#a1324d;box-shadow:0 8px 20px #64152c20}
.button-outline{border-color:#bb9155;color:#744721}
h2 em{color:var(--crimson)}
.site-header{border-bottom-color:#d6b77f;min-height:94px}
.wordmark{display:inline-flex;align-items:center;flex-shrink:0}
.wordmark img{display:block;width:68px;height:60px;object-fit:cover;border-radius:50%;mix-blend-mode:multiply}
.site-header nav{color:#6c4528}
.header-date{color:#8a5b22}
.hero{gap:60px;padding-block:48px 86px;min-height:0}
.hero-copy{padding-block:20px}
h1{color:#80541e;font-size:clamp(78px,7.5vw,112px);letter-spacing:-2px}
.name-ampersand{color:#a26e2c}
.hero-art{width:100%;max-width:450px;margin:0;position:relative;padding:9px;border:1px solid #bc9659;background:#f4e3ca;box-shadow:0 15px 50px #7e51241c}
.hero-art::before{content:'';position:absolute;inset:4px;border:1px solid #cdaa6e;pointer-events:none;z-index:1}
.hero-art img{width:100%;height:auto;display:block;max-height:660px;object-fit:contain}
.art-caption{font-size:16px;color:#78522e;margin:14px 0 7px;line-height:1.4}
.hero-date{max-width:360px;border-color:#d0ae75}
.hero-date>span{letter-spacing:1.5px;color:#7d5735}
.countdown-section{position:relative;background:linear-gradient(110deg,#f3dfc4,#faedda 45%,#efd3c3);border-block:1px solid #d7b584}
.countdown-dot{color:#bb8c4e}
.countdown>div>span{color:#8a243c}
.invitation-section{position:relative;max-width:800px;padding-block:88px}
.invitation-ornament{margin:0 auto 24px;width:132px;line-height:0}
.invitation-ornament img{width:132px;height:111px;object-fit:cover;border-radius:50%;mix-blend-mode:multiply}
.couple-line h3{color:#875b24}
.celebrations-section{position:relative;background:linear-gradient(160deg,#f5e7d5,#f3dccd 55%,#f7ead5);border-block:1px solid #e0c39b}
.celebrations-section::before{content:'';position:absolute;inset:8px;border-block:1px solid #ddbc8844;pointer-events:none}
.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.event-card{--event-accent:#964e59;background:#fff9ee;border:1px solid #d6b57e;box-shadow:0 4px 20px #76502308}
.event-card::after{content:'';position:absolute;inset:6px;border:1px solid #e7d3b2;pointer-events:none}
.event-card::before{content:'❦';position:absolute;right:22px;top:62px;color:#c4a064;font-family:var(--serif);font-size:58px;opacity:.14;transform:rotate(-25deg)}
.event-card[data-theme=crimson]{--event-accent:#8d1d3c;border-color:#ba805f}
.event-card[data-theme=gold]{--event-accent:#8b601e}
.event-card[data-theme=crimson] .event-illustration::before{background:#efd4cb}
.event-card[data-theme=rose] .event-illustration::before{background:#f5dacf}
.event-body{padding:16px 34px 30px}
.event-card-top{padding-inline:32px}
.event-body h3{font-size:40px}
.event-description{min-height:27px}
.event-details strong{font-size:23px}
.event-location{min-height:38px;align-items:center;font-size:11px;max-width:340px;margin-inline:auto}
.event-actions{justify-content:space-between}
.event-actions .text-button{font-size:10px;letter-spacing:0}
.event-tag{font-size:8px;letter-spacing:1px}
.venue-section{gap:65px;align-items:center}
.venue-art{background:linear-gradient(135deg,#f2d9bc,#f7e4c9);border:1px solid #d4b281;min-height:630px;padding-top:70px;position:relative;overflow:hidden}
.venue-art::before{content:'';position:absolute;inset:10px;border:1px solid #d5b17d;pointer-events:none}
.venue-art::after{content:'';position:absolute;inset:0;background:url('assets/botanical.svg') 50% 0/100% auto no-repeat;opacity:.2;pointer-events:none}
.venue-arch{border-color:#b28a49;background:radial-gradient(ellipse at 50% 30%,#fff7e6,transparent 75%);color:#a4752f}
.venue-detail h3{color:#87551f}
.venue-copy .eyebrow{color:#8f343e}
.closing-section{background:linear-gradient(115deg,#73172f,#8d233d 55%,#6b142b);color:#fff2db;border-top:4px double #d4ad70}
.closing-section .eyebrow,.closing-section h2 em,.closing-section p:not(.eyebrow,.closing-signature),.closing-signature{color:#f3d4b8}
.closing-section .button-dark{background:linear-gradient(110deg,#e9c78a,#f6dfb0);border-color:#f0d8ab;color:#642037}
.closing-section::before,.closing-section::after{opacity:.24;filter:sepia(.7)}
.closing-monogram{margin:44px auto 14px;width:110px;height:100px}
.closing-monogram img{width:110px;height:100px;object-fit:cover;border:1px solid #d9b576;border-radius:50%}
.site-footer{border-top:1px solid #d9bb8b}
.site-footer>.wordmark img{width:54px;height:48px}
.music-toggle{border-color:#bc955d;background:#fff4e2ed;color:#8a253c}
.music-toggle[aria-pressed=true]{background:#861e38;color:#fff4df}
.mobile-nav{border-color:#d7b780;background:#fff8edf5;box-shadow:0 3px 20px #4d241a16}
.mobile-nav a[aria-current=true]{color:#962840;background:#f0dbca}
.opening-petals>span{background:#a91c3f;width:10px;height:15px}
.opening-petals>span:nth-child(even){background:#e4b090}
.invitation-modal{background:#fff7e9;border-color:#bd9557;scrollbar-color:#b18a47 transparent}
.invitation-modal[data-theme=crimson] .event-illustration::before{background:#efd4cb}
.modal-inner{border-color:#d7b780}
.modal-inner h3,.modal-date{color:#835321}
.modal-close{border-color:#caa76e;color:#8a263e}
.invitation-gate{background:radial-gradient(ellipse at 100% 10%,#e9c3b9,transparent 55%),radial-gradient(ellipse at 0 100%,#ecd2a5,transparent 50%),#fbf0df;padding:30px;overflow:auto;overscroll-behavior:contain;display:block}
.invitation-gate::before{inset:13px;border-color:#bd9656}
.invitation-gate::after{inset:19px;border-color:#dcc092}
.gate-stage{width:min(1100px,100%);min-height:calc(100svh - 60px);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.gate-portrait{height:min(790px,calc(100svh - 70px));display:flex;align-items:center;justify-content:center;min-width:0}
.gate-portrait img{display:block;max-width:100%;width:auto;max-height:100%;height:auto;border:1px solid #bd9656;padding:5px;background:#f3dfc1;box-shadow:0 18px 55px #7d461d24}
.gate-content{display:flex;flex-direction:column;align-items:center;min-width:0;padding:20px 0}
.gate-logo{width:116px;height:100px;object-fit:cover;mix-blend-mode:multiply;border-radius:50%;margin-bottom:24px}
.gate-eyebrow{margin-bottom:16px;font-size:8px;letter-spacing:2px}
.invitation-gate h2{font-size:clamp(30px,3vw,43px);color:#87571f;line-height:1.14}
.gate-message{font-size:17px;max-width:300px;line-height:1.5;margin-top:15px}
.envelope{width:280px;height:172px;margin:44px 0 30px;filter:drop-shadow(0 15px 20px #6b22302b)}
.envelope-back{background:#71152e;border:1px solid #c69b61}
.envelope-front{background:linear-gradient(30deg,#7c1531,#a42e48 55%,#8f1c38);border:1px solid #c49a65}
.envelope-front::after{content:'';position:absolute;inset:10px;border:1px solid #e5b96755;pointer-events:none}
.envelope-flap{background:linear-gradient(150deg,#b33b53,#7c1730);border-top:1px solid #dbb174}
.envelope-paper{background:#fff3dd;border-color:#d6b47b}
.envelope-paper span{font-size:26px;color:#835420}
.wax-seal{width:64px;height:64px;left:calc(50% - 32px);top:68px;border:2px solid #dab46c;background:radial-gradient(circle,#f9e8c5,#b1833b);box-shadow:0 3px 8px #52122188,inset 0 0 0 4px #dfba74;overflow:hidden;padding:6px}
.wax-seal img{width:48px;height:48px;object-fit:cover;border-radius:50%}
.gate-footnote{font-size:8px;letter-spacing:1.5px;margin-top:20px;color:#865a33}
@media(min-width:1500px){.hero{min-height:0}.hero-art{max-width:470px}}
@media(min-width:701px) and (max-width:1050px){.event-card:last-child{grid-column:auto;width:auto;justify-self:stretch}.hero{gap:25px}.hero-art{margin:0}.event-body{padding-inline:25px}.event-description{min-height:54px}.venue-section{gap:35px}.gate-stage{gap:30px}.gate-logo{width:92px;height:80px;margin-bottom:16px}.gate-message{font-size:16px}}
@media(max-width:700px){
 .site-header{min-height:76px}.wordmark img{width:58px;height:51px}.header-date{font-size:10px}
 .hero{gap:30px;padding-block:38px 74px}.hero-copy{padding:0}.hero h1{font-size:80px;letter-spacing:-2px}.hero-date{max-width:290px}.hero-date>span{font-size:8px;letter-spacing:1px}.hero-art{max-width:360px;margin:0 auto;padding:7px}.hero-art img{max-height:none}.art-caption{margin:10px 0 5px;font-size:15px}
 .invitation-section{padding-block:60px}.invitation-ornament{width:110px;margin-bottom:22px}.invitation-ornament img{width:110px;height:94px}.couple-line{gap:28px}.couple-line h3{font-size:36px}
 .event-grid{grid-template-columns:minmax(0,1fr);gap:24px}.event-body{padding-inline:25px}.event-card-top{padding-inline:25px}.event-body h3{font-size:38px}.event-description{min-height:0}.event-details strong{font-size:22px}.event-location{min-height:0;max-width:290px}.event-actions .text-button{font-size:9px}
 .venue-art{min-height:380px;padding-top:35px}.venue-section{gap:36px}.venue-detail h3{font-size:29px}
 .mobile-nav{left:12px;right:12px;width:auto;max-width:400px;transform:none;margin-inline:auto;padding-inline:5px;gap:0;justify-content:space-evenly}
 .mobile-nav a{font-size:8px;padding:8px 6px;letter-spacing:0;flex:1 1 auto}
 .mobile-nav .music-toggle{flex-basis:35px;margin-left:2px;padding:9px}
 .invitation-gate{padding:23px 20px 20px}.invitation-gate::before{inset:8px}.invitation-gate::after{inset:13px}
 .gate-stage{grid-template-columns:1fr;gap:0;min-height:calc(100svh - 43px);align-content:center}
 .gate-portrait{height:min(45svh,380px)}.gate-portrait img{padding:3px;box-shadow:0 8px 30px #7d461d22}
 .gate-content{padding:14px 0 0}.gate-logo,.gate-eyebrow,.gate-message{display:none}
 .invitation-gate h2{font-size:20px;letter-spacing:0;line-height:1.2}.invitation-gate h2 br{display:none}
 .envelope{width:220px;height:134px;margin:30px 0 22px}.wax-seal{width:52px;height:52px;left:calc(50% - 26px);top:52px;padding:4px}.wax-seal img{width:40px;height:40px}.envelope-paper span{font-size:23px}.envelope-paper small{font-size:8px;margin-top:8px}
 .gate-footnote{margin-top:12px;font-size:7px}.invitation-gate .button{min-height:46px;padding:12px 20px;font-size:10px}
}
@media(max-width:359px){.hero h1{font-size:70px}.couple-line{gap:20px}.couple-line h3{font-size:32px}.event-body{padding-inline:18px}.event-card-top{padding-inline:18px}.event-tag{font-size:7px}.event-details strong{font-size:19px}.mobile-nav a{font-size:7px;padding-inline:4px}.gate-portrait{height:42svh}.invitation-gate h2{font-size:18px}.envelope{margin-top:25px;margin-bottom:18px}}
@media(max-height:550px) and (min-width:701px){.invitation-gate{padding:20px 28px}.gate-stage{min-height:calc(100svh - 40px);gap:25px}.gate-portrait{height:calc(100svh - 50px)}.gate-content{padding:10px 0}.gate-logo,.gate-message{display:none}.gate-eyebrow{margin-bottom:10px;font-size:7px}.invitation-gate h2{font-size:25px}.envelope{width:220px;height:135px;margin:26px 0 20px}.wax-seal{width:52px;height:52px;top:53px;left:calc(50% - 26px);padding:4px}.wax-seal img{width:40px;height:40px}.gate-footnote{margin-top:12px;font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.gate-opening{visibility:hidden!important;opacity:0!important}.reveal{transform:none;opacity:1}}
@media print{.hero-art{max-width:260px}.closing-section{background:#fff7e9;color:#593919}.closing-section h2 em,.closing-section p{color:#785f49!important}.event-grid{grid-template-columns:1fr 1fr}}
@media(max-width:359px){.event-actions .text-button{flex-wrap:nowrap;font-size:8px;gap:2px;white-space:nowrap}.event-actions .text-button span{font-size:12px;margin-left:2px}}
