:root{
  --black:#050504;
  --black-2:#0b0a08;
  --black-3:#12110e;
  --ivory:#f8f3e8;
  --cream:#eee4cf;
  --gold:#d8ad46;
  --gold-bright:#f4cf69;
  --gold-soft:#ecd998;
  --text:#fffaf0;
  --muted:#b9b09f;
  --paper:#f6f0e3;
  --ink:#17140f;
  --line:rgba(244,207,105,.24);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Manrope",Arial,sans-serif;
  --header:84px;
  --shadow:0 28px 70px rgba(0,0,0,.34);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{margin:0;background:var(--black);color:var(--text);font-family:var(--sans);font-weight:500;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
img{display:block;width:100%;max-width:100%}
section[id]{scroll-margin-top:calc(var(--header) + 18px)}
::selection{background:var(--gold);color:#111}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:10000;top:-80px;left:18px;padding:.8rem 1rem;background:var(--gold-bright);color:#111;font-weight:800;transition:.2s}.skip-link:focus{top:18px}

.royal-progress{position:fixed;z-index:1000;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.04)}
.royal-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#8e6516,var(--gold-bright),#fff3b7);box-shadow:0 0 15px rgba(244,207,105,.55)}

/* INTRO */
.intro{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:#000;padding:clamp(5rem,9vw,8rem) 1.2rem}
.intro-film,.intro-shade,.film-grain,.cinema-bar{position:absolute;inset:0}
.intro-film{z-index:-5;overflow:hidden}
.intro-film iframe{position:absolute;left:50%;top:50%;width:max(100vw,177.78vh);height:max(100vh,56.25vw);transform:translate(-50%,-50%) scale(1.02);border:0;pointer-events:none;filter:saturate(.86) contrast(1.13) brightness(.68)}
.intro-shade{z-index:-4;background:radial-gradient(ellipse at center,rgba(0,0,0,.08) 0,rgba(0,0,0,.3) 45%,rgba(0,0,0,.82) 100%),linear-gradient(180deg,rgba(0,0,0,.62),transparent 30%,transparent 68%,rgba(0,0,0,.88))}
.film-grain{z-index:-3;inset:-35%;opacity:.09;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");animation:grain .28s steps(2) infinite}
.cinema-bar{z-index:-2;height:clamp(28px,5.5vh,65px);background:#000;inset:auto 0}.cinema-bar-top{top:0}.cinema-bar-bottom{bottom:0}
.intro-mark{position:relative;z-index:2;text-align:center;max-width:1200px;text-shadow:0 8px 35px rgba(0,0,0,.75)}
.film-presents,.intro-mark>small,.intro-mark>p,.eyebrow{font-size:clamp(.67rem,.9vw,.88rem);font-weight:800;letter-spacing:.28em;text-transform:uppercase}
.film-presents{display:block;color:#fff;margin-bottom:1rem;letter-spacing:.48em}
.intro-crown{display:block;color:var(--gold-bright);font-size:clamp(2.4rem,4vw,4rem);line-height:1;margin-bottom:.8rem;filter:drop-shadow(0 0 18px rgba(244,207,105,.4))}
.intro-mark>p{margin:.35rem 0 1.25rem;color:var(--gold-soft)}
.intro h1{margin:0;font:600 clamp(4.7rem,11.6vw,11.5rem)/.76 var(--serif);letter-spacing:-.05em;color:#fff}
.intro h1 strong{font-weight:600;color:#fff;text-shadow:0 0 12px rgba(255,255,255,.35),0 0 42px rgba(255,255,255,.24)}
.intro-rule{display:block;width:min(260px,40vw);height:1px;margin:2rem auto 1.2rem;background:linear-gradient(90deg,transparent,var(--gold-bright),transparent)}
.intro-mark>small{color:#fff;font-size:clamp(.55rem,.8vw,.75rem);letter-spacing:.36em}
.intro-actions{position:absolute;z-index:3;left:50%;bottom:clamp(4rem,8vh,7rem);transform:translateX(-50%);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;width:min(95%,800px)}
.intro-skip{min-width:300px;border:1px solid rgba(255,232,162,.5);background:linear-gradient(135deg,#f6d876,#c99124);color:#15110a;padding:1rem 1.6rem;cursor:pointer;box-shadow:0 12px 45px rgba(212,170,79,.26);text-transform:uppercase;letter-spacing:.17em;font-weight:900;transition:.25s}
.intro-skip span,.intro-skip small{display:block}.intro-skip small{font-size:.52rem;letter-spacing:.12em;margin-top:.26rem;opacity:.75}
.intro-skip:hover,.intro-skip:focus-visible{transform:translateY(-3px);box-shadow:0 18px 60px rgba(244,207,105,.32)}
.intro-watch{border-bottom:1px solid rgba(255,255,255,.5);padding:.55rem .1rem;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#fff}

/* HEADER */
.site-header{position:sticky;top:0;z-index:900;height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 clamp(1rem,4vw,4.5rem);background:rgba(6,6,5,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.075);transition:.25s}
.site-header.scrolled{background:rgba(3,3,3,.96);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.brand{display:flex;align-items:center;gap:.78rem;min-width:max-content}.brand-crown{color:var(--gold-bright);font-size:1.7rem}.brand strong{display:block;font:600 clamp(1.45rem,2vw,2rem)/.9 var(--serif);color:#fff}.brand small{display:block;margin-top:.33rem;color:var(--gold-soft);font-size:.46rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.site-header nav{display:flex;align-items:center;gap:clamp(.8rem,1.6vw,1.65rem)}
.site-header nav a{position:relative;padding:.5rem 0;font-size:clamp(.58rem,.75vw,.74rem);font-weight:900;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#f7f2e8}
.site-header nav a::after{content:"";position:absolute;left:0;right:100%;bottom:.1rem;height:1px;background:var(--gold-bright);transition:.25s}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after,.site-header nav a.is-active::after{right:0}
.site-header nav a.is-active{color:var(--gold-bright)}
.menu-toggle{display:none;width:46px;height:46px;padding:10px;border:0;background:transparent;cursor:pointer}.menu-toggle span{display:block;height:1px;background:#fff;margin:6px 0;transition:.2s}

/* SHARED */
.section{position:relative;padding:clamp(6rem,9vw,9rem) clamp(1.25rem,6.6vw,7.5rem)}
.section-number{position:absolute;right:4vw;top:2rem;color:rgba(244,207,105,.07);font:600 clamp(8rem,17vw,17rem)/1 var(--serif);pointer-events:none}
.eyebrow{margin:0 0 1.1rem;color:var(--gold-soft)}.eyebrow.dark{color:#946814}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 1.8rem;border:1px solid transparent;font-size:.7rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;transition:.25s}.button-gold{background:linear-gradient(135deg,var(--gold-bright),#c98f1d);color:#17110a}.button-gold:hover,.button-gold:focus-visible{transform:translateY(-3px);box-shadow:0 18px 42px rgba(212,170,79,.22)}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}

/* TOP FILM */
.film-showcase{position:relative;overflow:hidden;padding:clamp(6rem,9vw,9rem) clamp(1rem,5vw,5rem) clamp(5rem,7vw,7rem);background:radial-gradient(circle at 50% 12%,rgba(212,170,79,.13),transparent 30%),#060605;text-align:center;border-bottom:1px solid rgba(244,207,105,.12)}
.film-showcase-copy{max-width:1100px;margin:0 auto 2.5rem}.film-showcase-copy h2{margin:0;color:#fff;font:600 clamp(4rem,8.5vw,8.5rem)/.82 var(--serif);letter-spacing:-.045em}.film-showcase-copy h2 span{color:var(--gold-bright);font-style:italic}.film-white-line{margin:1.3rem 0 .55rem;color:#fff;font:600 clamp(1.7rem,3vw,3.1rem)/1 var(--serif)}.film-subline{max-width:780px;margin:0 auto;color:#c4bcad;font-size:clamp(.9rem,1.2vw,1.1rem);line-height:1.8}
.cinematic-player{position:relative;width:min(1180px,94vw);margin:0 auto;border:1px solid rgba(244,207,105,.48);background:#070706;padding:clamp(.7rem,1.5vw,1.15rem);box-shadow:0 36px 90px rgba(0,0,0,.6),0 0 55px rgba(212,170,79,.09)}
.player-screen{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000}.player-screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.player-credit{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1rem .7rem .25rem;color:#fff}.player-credit span,.player-credit small{font-size:.56rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c9bfad}.player-credit strong{font:600 clamp(1.5rem,2.3vw,2.2rem)/1 var(--serif);color:var(--gold-bright)}.player-credit small{text-align:right}.player-sparkles{position:absolute;inset:-10px;pointer-events:none}.player-sparkles::before,.player-sparkles::after{content:"✦";position:absolute;color:var(--gold-bright);text-shadow:0 0 16px rgba(244,207,105,.8);animation:twinkle 2.8s ease-in-out infinite}.player-sparkles::before{left:-3px;top:11%;font-size:1.2rem}.player-sparkles::after{right:-3px;bottom:16%;font-size:1rem;animation-delay:1.1s}
.film-scroll-cue{display:inline-block;margin:2rem 0 0;color:var(--gold-soft);font-size:.65rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.film-meta-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.4rem auto 0;color:#bdb5a8;text-transform:uppercase;font-size:.56rem;font-weight:800;letter-spacing:.18em}.film-meta-row i{width:42px;height:1px;background:rgba(244,207,105,.55)}

/* MOVING FAMILY HERO */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;isolation:isolate;overflow:hidden;text-align:center;padding:7rem 1.2rem}.portrait-wall{position:absolute;z-index:-4;inset:0 auto 0 0;height:100%;display:flex;gap:0;width:max-content;animation:royalPortraitProcession 105s linear infinite;will-change:transform}.portrait-wall:hover{animation-play-state:paused}.portrait-wall .family-slide{position:relative;flex:0 0 clamp(200px,16.5vw,300px);height:100%;margin:0;overflow:hidden;opacity:.72;background:#111}.portrait-wall .family-slide img{width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:saturate(.88) contrast(1.05)}.portrait-wall .family-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 50%,rgba(0,0,0,.78))}.portrait-wall figcaption{position:absolute;z-index:2;left:.85rem;right:.65rem;bottom:5.5rem;text-align:left;padding:.75rem;border-left:3px solid var(--gold-bright);background:linear-gradient(90deg,rgba(0,0,0,.72),transparent)}.portrait-wall figcaption small{display:block;color:var(--gold-soft);font-size:.5rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.portrait-wall figcaption strong{display:block;color:#fff;font:600 clamp(1.35rem,2vw,2.1rem)/.96 var(--serif);margin-top:.28rem}.hero-shade{position:absolute;z-index:-3;inset:0;background:radial-gradient(circle at center,rgba(0,0,0,.18),rgba(0,0,0,.68) 63%,rgba(0,0,0,.88)),linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.65))}.hero-content{max-width:1150px}.hero h1{margin:0;color:#fff;font:600 clamp(6rem,13.5vw,13.5rem)/.72 var(--serif);letter-spacing:-.06em;text-shadow:0 8px 35px rgba(0,0,0,.7)}.hero h1 span{color:var(--gold-bright);font-style:italic}.hero-date{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.9rem 0 1rem;font-size:.68rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.hero-date i{width:60px;height:1px;background:var(--gold-bright)}.hero-verse{margin:0 0 2rem;color:#fff;font:italic 600 clamp(1.35rem,2.4vw,2.3rem)/1.15 var(--serif)}.hero-verse small{font:800 .54rem var(--sans);color:var(--gold-soft);letter-spacing:.17em;text-transform:uppercase}.vertical-mark{position:absolute;right:1.5rem;top:50%;writing-mode:vertical-rl;color:#fff;font-size:.52rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.scroll-cue{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.65rem;color:#fff;font-size:.5rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.scroll-cue i{height:36px;width:1px;background:var(--gold-bright)}

/* OUR STORY */
.welcome{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(460px,1.1fr);gap:clamp(3rem,6vw,7rem);align-items:center;background:#070706;color:#fff}.welcome-bg-marquee{position:absolute;z-index:-4;inset:0;display:flex;width:max-content;opacity:.42}.welcome-bg-track{display:flex;height:100%;width:max-content;animation:welcomeDrift 54s linear infinite}.welcome-bg-track img{flex:0 0 clamp(180px,15.5vw,260px);width:clamp(180px,15.5vw,260px);height:100%;object-fit:cover;object-position:center 15%;filter:saturate(.8) brightness(.56)}.welcome-bg-shade{position:absolute;z-index:-3;inset:0;background:linear-gradient(90deg,rgba(5,5,4,.96),rgba(7,7,6,.84) 42%,rgba(7,7,6,.8)),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.72))}.welcome-copy h2,.section-heading h2,.celebration h2,.thanks h2{margin:0;font:600 clamp(4.1rem,7vw,7.5rem)/.84 var(--serif);letter-spacing:-.045em}.welcome-copy h2,.welcome-copy h2 em{color:#fff}.welcome-copy h2 em{font-style:italic}.welcome-copy>p:not(.eyebrow){margin:1.8rem 0;color:rgba(255,255,255,.88);font-size:clamp(.95rem,1.2vw,1.14rem);line-height:1.9}.welcome blockquote{margin:0;padding-left:1.3rem;border-left:1px solid var(--gold-bright);color:#fff;font:italic 600 clamp(1.8rem,3vw,3rem)/1.1 var(--serif)}.couple-portraits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.portrait{position:relative;height:clamp(560px,52vw,760px);margin:0;overflow:hidden;background:#111;border:1px solid rgba(244,207,105,.18);box-shadow:var(--shadow)}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 13%}.portrait.groom{margin:0}.portrait figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;padding:1rem 1.05rem;border-left:3px solid var(--gold-bright);background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.55));backdrop-filter:blur(5px)}.portrait figcaption small{display:block;color:var(--gold-soft);font-size:.55rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.portrait figcaption strong{display:block;color:#fff;font:600 clamp(1.9rem,3vw,3rem)/.95 var(--serif);margin:.25rem 0}.portrait figcaption span{display:block;color:#d3cabd;font-size:.65rem}.vow-line{grid-column:1/-1;margin-top:3rem;display:flex;align-items:center;gap:1rem;color:var(--gold-soft);font-size:.58rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.vow-line i{height:1px;flex:1;background:rgba(244,207,105,.34)}

/* WEDDING FAMILY */
.party{background:linear-gradient(180deg,#080807,#0b0a08);overflow:hidden}.section-heading{position:relative;display:flex;align-items:end;justify-content:space-between;gap:2.5rem;margin-bottom:3.5rem}.section-heading>div{max-width:850px}.section-heading h2{color:#fff}.section-heading>p{max-width:520px;margin:0;color:#aaa294;font-size:clamp(.9rem,1.15vw,1.08rem);line-height:1.8}.honor-grid,.party-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:stretch}.honor-grid{margin-bottom:3.8rem}.person-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:linear-gradient(180deg,#12110e,#0c0b09);border:1px solid rgba(244,207,105,.14);cursor:pointer;transition:border-color .25s,transform .25s;outline:none}.person-card:hover,.person-card:focus-visible{border-color:rgba(244,207,105,.48);transform:translateY(-3px)}.person-card img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 14%;transition:transform .45s ease,filter .45s ease;filter:saturate(.92) contrast(1.03)}.person-card:hover img,.person-card:focus-visible img{transform:scale(1.045);filter:saturate(1.04) contrast(1.04)}.person-card>div{display:flex;flex-direction:column;justify-content:flex-end;min-height:124px;padding:1rem 1.05rem 1.15rem}.person-card small{color:var(--gold-soft);font-size:.52rem;font-weight:900;letter-spacing:.15em;line-height:1.5;text-transform:uppercase}.person-card h3{margin:.45rem 0 0;color:#fff;font:600 clamp(1.7rem,2.45vw,2.65rem)/.9 var(--serif)}.person-card p{margin:.45rem 0 0;color:#bbb2a5;font-size:.69rem;line-height:1.5}

/* CELEBRATION */
.celebration{min-height:950px;isolation:isolate;background:#11100d;overflow:hidden}.celebration-bg{position:absolute;z-index:-3;inset:0;background:url('/assets/hughes-forever.webp') center 28%/cover fixed no-repeat}.celebration::after{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(3,3,3,.97),rgba(4,4,4,.77) 58%,rgba(4,4,4,.42)),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.58))}.celebration-copy{max-width:760px}.celebration-copy h2{color:#fff}.celebration-copy>p:last-child{max-width:650px;color:#d0c7b9;font-size:clamp(.95rem,1.25vw,1.15rem);line-height:1.9}.event-timeline{max-width:850px;margin:4rem 0 3rem}.event-timeline article{display:grid;grid-template-columns:70px 1fr;gap:1.3rem;padding:1.6rem 0;border-top:1px solid var(--line)}.event-timeline article>span{color:var(--gold-bright);font:600 1.6rem var(--serif)}.event-timeline small,.venue-card small{color:var(--gold-soft);font-size:.52rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.event-timeline h3{margin:.25rem 0;color:#fff;font:600 clamp(2rem,3vw,3rem)/1 var(--serif)}.event-timeline p{margin:0;color:#bdb4a7;line-height:1.7}.venue-card{max-width:590px;display:grid;gap:.5rem;padding:1.35rem 1.5rem;border:1px solid rgba(244,207,105,.5);background:rgba(0,0,0,.35);font-style:normal;backdrop-filter:blur(5px)}.venue-card strong{color:#fff;font:600 clamp(1.9rem,2.8vw,2.7rem)/1 var(--serif)}.venue-card span{color:#d2c9bb;font-size:.75rem}

/* MENU / COOKBOOK */
.menu{background:radial-gradient(circle at 50% 15%,#fffdf8,#f3ead8 62%,#e6d9c1);color:var(--ink);overflow:hidden}.menu .section-heading h2{color:#17140f}.menu .section-heading>p{color:#5f5749}.menu-open-note{display:flex;align-items:center;justify-content:center;gap:.55rem;margin:-1.2rem auto 2.2rem;color:#755219;font-size:.72rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.menu-open-note span{font-size:1.1rem;color:#a6761d}.cookbook{position:relative;display:grid;grid-template-columns:1fr 1fr;max-width:1450px;margin:0 auto;filter:drop-shadow(0 50px 60px rgba(72,47,8,.28));perspective:1800px}.book-spine{position:absolute;z-index:6;left:50%;top:1%;bottom:1%;width:18px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(255,255,255,.68),rgba(0,0,0,.18));box-shadow:0 0 22px rgba(0,0,0,.18);pointer-events:none}.book-page{min-height:clamp(760px,66vw,920px);background:#fffaf0;border:1px solid #cbb779;overflow:hidden;transform-origin:center}.cookbook.motion-ready .book-page{}.cookbook:not(.visible) .book-photo{opacity:0;transform:perspective(1600px) rotateY(72deg) translateX(8%)}.cookbook:not(.visible) .book-menu{opacity:0;transform:perspective(1600px) rotateY(-72deg) translateX(-8%)}.cookbook.visible .book-photo,.cookbook.visible .book-menu{opacity:1;transform:none;transition:opacity .5s ease,transform 1.35s cubic-bezier(.17,.78,.2,1)}.book-photo figure{position:relative;height:100%;margin:0}.book-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.book-photo figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.72))}.book-photo figcaption{position:absolute;z-index:2;left:7%;right:7%;bottom:6%;color:#fff}.book-photo figcaption>span{display:block;color:var(--gold-bright);font-size:2rem}.book-photo figcaption strong{display:block;font:600 clamp(3.5rem,6vw,6.2rem)/.82 var(--serif);text-shadow:0 6px 24px rgba(0,0,0,.36)}.book-photo figcaption small{display:block;margin-top:.6rem;font-size:.58rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase}.book-menu{padding:clamp(2.4rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(90deg,#fbf6eb,#fffaf0)}.book-kicker{margin:0 0 1rem;color:#936818;font-size:.62rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.book-menu>h3{margin:0 0 1.6rem;color:#6d4910;font:600 clamp(3.1rem,5vw,5.3rem)/.88 var(--serif)}.book-menu article{display:grid;grid-template-columns:52px 1fr;gap:1.2rem;padding:1.35rem 0;border-top:1px solid #dacdb2}.book-menu article>span{color:#a6741a;font:600 clamp(1.2rem,1.8vw,1.7rem) var(--serif)}.book-menu h4{margin:0 0 .35rem;color:#6d4910;font:600 clamp(1.8rem,2.8vw,2.7rem)/1 var(--serif)}.book-menu p{margin:0;color:#4f493e;font-size:clamp(.88rem,1.05vw,1.03rem);line-height:1.65}

/* COUNTDOWN */
.countdown-film{overflow:hidden;isolation:isolate;display:grid;place-items:center;text-align:center;min-height:820px;background:radial-gradient(circle at 50% 35%,rgba(212,170,79,.17),transparent 34%),#070706}.countdown-glow{position:absolute;z-index:-1;width:70vw;height:70vw;border-radius:50%;border:1px solid rgba(244,207,105,.08);box-shadow:0 0 140px rgba(212,170,79,.08)}.countdown-copy{max-width:1150px}.countdown-copy h2{margin:0;color:#fff;font:600 clamp(4.4rem,9vw,9rem)/.78 var(--serif);letter-spacing:-.05em}.countdown-copy h2 span{color:var(--gold-bright);font-style:italic}.premiere{margin:1.4rem 0 2.3rem;color:#fff;font-size:.75rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.countdown-clock{display:flex;justify-content:center;gap:clamp(.7rem,2vw,1.6rem);flex-wrap:wrap;margin-bottom:2.3rem}.countdown-clock>div{min-width:120px;padding:1rem;border:1px solid rgba(244,207,105,.21);background:rgba(255,255,255,.025)}.countdown-clock strong{display:block;color:#fff;font:600 clamp(2.5rem,5vw,4.7rem)/.9 var(--serif)}.countdown-clock small{color:var(--gold-soft);font-size:.5rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.film-placeholder{display:inline-flex;align-items:center;gap:1rem;max-width:600px;padding:1rem 1.2rem;border:1px solid rgba(244,207,105,.35);background:rgba(0,0,0,.3);text-align:left}.play-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--gold-bright);color:#111}.film-placeholder small{display:block;color:var(--gold-soft);font-size:.5rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.film-placeholder strong{display:block;color:#fff;font:600 clamp(1.35rem,2vw,2rem)/1 var(--serif);margin-top:.2rem}

/* GALLERY */
.gallery{background:linear-gradient(180deg,#080807,#050504)}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:start}.gallery-item{position:relative;aspect-ratio:3/4;padding:0;border:1px solid rgba(244,207,105,.15);background:#0c0b09;overflow:hidden;cursor:zoom-in}.gallery-item img{width:100%;height:100%;object-fit:cover;object-position:center 14%;transition:transform .5s ease,filter .5s ease;filter:saturate(.94) contrast(1.03)}.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.92));opacity:.35;transition:.3s}.gallery-item span{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1.15rem 1rem;color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.12em;text-align:left;text-transform:uppercase;opacity:0;transform:translateY(10px);transition:.3s}.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.04);filter:saturate(1.04) brightness(1.05)}.gallery-item:hover::after,.gallery-item:focus-visible::after{opacity:1}.gallery-item:hover span,.gallery-item:focus-visible span{opacity:1;transform:none}

/* HOVER CLOSEUP */
.hover-preview{position:fixed;z-index:1400;inset:0;display:grid;place-items:center;padding:1.25rem;background:rgba(0,0,0,.18);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .16s ease}.hover-preview.active{opacity:1}.hover-preview-frame{width:min(430px,82vw);overflow:hidden;border:1px solid rgba(244,207,105,.48);background:#080807;box-shadow:0 35px 95px rgba(0,0,0,.65);transform:translateY(12px) scale(.985);transition:transform .2s}.hover-preview.active .hover-preview-frame{transform:none}.hover-preview img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 14%}.hover-preview-copy{padding:1rem 1.15rem 1.2rem;background:linear-gradient(135deg,#0b0a08,#11100d)}.hover-preview-copy small{display:block;color:var(--gold-soft);font-size:.58rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.hover-preview-copy strong{display:block;margin-top:.3rem;color:#fff;font:600 clamp(1.9rem,3vw,2.5rem)/.95 var(--serif)}

/* THANK YOU + FOOTER */
.thanks{position:relative;min-height:78svh;display:grid;place-items:center;text-align:center;isolation:isolate;overflow:hidden;background:url('/assets/couple-garden.webp') center 28%/cover no-repeat}.thanks-shade{position:absolute;z-index:-1;inset:0;background:radial-gradient(circle,rgba(0,0,0,.35),rgba(0,0,0,.88)),linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.75))}.thanks-content{max-width:1050px;padding:5rem 1.3rem}.thanks-content>span{display:block;color:var(--gold-bright);font-size:3rem}.thanks h2{color:#fff;margin-bottom:1.2rem}.thanks-content>p:not(.eyebrow){margin:0 0 2rem;color:#fff;font:italic 600 clamp(1.5rem,2.5vw,2.4rem)/1.15 var(--serif)}
footer{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem clamp(1.2rem,5vw,5rem);background:#050504;border-top:1px solid rgba(255,255,255,.07)}footer>p{margin:0;color:#9f978a;font-size:.56rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}

/* LIGHTBOX */
dialog{width:min(1000px,94vw);max-height:94vh;padding:0;border:1px solid rgba(244,207,105,.34);background:#050504;box-shadow:0 35px 100px rgba(0,0,0,.72)}dialog::backdrop{background:rgba(0,0,0,.9);backdrop-filter:blur(4px)}#lightbox img{display:block;width:100%;height:min(86vh,900px);object-fit:contain;background:#050504}#lightboxClose{position:absolute;z-index:2;right:.75rem;top:.75rem;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:1.7rem;cursor:pointer}

/* ANIMATION */
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}100%{transform:translate(-3%,-1%)}}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
@keyframes royalPortraitProcession{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes welcomeDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* RESPONSIVE */
@media(max-width:1180px){
  :root{--header:76px}
  .site-header nav{gap:.9rem}.site-header nav a{font-size:.57rem}
  .honor-grid,.party-grid,.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .welcome{grid-template-columns:1fr;gap:3rem}.welcome-copy{max-width:850px}.couple-portraits{width:min(900px,100%);margin:0 auto}
  .player-credit{grid-template-columns:1fr auto}.player-credit small{display:none}
}
@media(max-width:900px){
  .site-header{padding:0 1rem}.menu-toggle{display:block;position:relative;z-index:2}.site-header nav{position:fixed;z-index:1;top:0;right:0;width:min(380px,86vw);height:100vh;padding:7rem 2rem 2rem;display:flex;flex-direction:column;align-items:stretch;gap:.4rem;background:rgba(5,5,4,.98);border-left:1px solid rgba(244,207,105,.14);transform:translateX(105%);transition:.28s;box-shadow:-20px 0 60px rgba(0,0,0,.4)}.site-header nav.open{transform:none}.site-header nav a{padding:1rem .2rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:.8rem}
  .honor-grid,.party-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cookbook{grid-template-columns:1fr}.book-spine{display:none}.book-page{min-height:700px}.cookbook:not(.visible) .book-photo,.cookbook:not(.visible) .book-menu{opacity:0;transform:translateY(24px)}.cookbook.visible .book-photo,.cookbook.visible .book-menu{opacity:1;transform:none}.book-menu{min-height:auto;padding:3rem 2rem}
  .section-heading{align-items:start;flex-direction:column}.section-heading>p{max-width:760px}
  .celebration-bg{background-attachment:scroll}
  footer{flex-direction:column;text-align:center}
}
@media(max-width:650px){
  :root{--header:70px}
  .intro{padding-top:5rem;padding-bottom:8.5rem}.intro h1{font-size:14.5vw}.intro-actions{bottom:2.6rem;gap:.7rem}.intro-skip{min-width:min(92vw,320px)}.film-presents{letter-spacing:.28em}.intro-mark>small{letter-spacing:.22em}.cinema-bar{height:26px}
  .film-showcase{padding-left:.8rem;padding-right:.8rem}.film-showcase-copy h2{font-size:14vw}.film-white-line{font-size:7.5vw}.cinematic-player{width:98vw;padding:.5rem}.player-credit{grid-template-columns:1fr;text-align:center}.player-credit span{display:none}.film-meta-row{gap:.55rem;flex-wrap:wrap}.film-meta-row i{width:20px}
  .hero h1{font-size:23vw}.hero-date{font-size:.52rem;gap:.65rem}.hero-date i{width:25px}.vertical-mark{display:none}.portrait-wall .family-slide{flex-basis:46vw}.portrait-wall{animation-duration:85s}.portrait-wall figcaption{bottom:5rem}
  .section{padding:5.5rem 1rem}.section-number{font-size:35vw}.welcome-copy h2,.section-heading h2,.celebration h2,.thanks h2{font-size:14.2vw}.couple-portraits{grid-template-columns:1fr}.portrait{height:670px}.welcome-bg-track img{width:180px;flex-basis:180px}.welcome-bg-track{animation-duration:68s}.vow-line{gap:.5rem;flex-wrap:wrap}.vow-line i{min-width:24px}
  .honor-grid,.party-grid,.gallery-grid{grid-template-columns:1fr}.person-card img{aspect-ratio:4/5}.person-card>div{min-height:110px}.person-card h3{font-size:2rem}
  .event-timeline article{grid-template-columns:52px 1fr}.venue-card{padding:1.15rem}
  .book-page{min-height:640px}.book-photo figcaption strong{font-size:12vw}.book-menu{padding:2.3rem 1.25rem}.book-menu>h3{font-size:11vw}.book-menu article{grid-template-columns:40px 1fr;gap:.8rem}.book-menu h4{font-size:1.75rem}.book-menu p{font-size:.9rem}
  .countdown-film{min-height:720px}.countdown-copy h2{font-size:14vw}.countdown-clock>div{min-width:92px}.countdown-clock strong{font-size:2.8rem}.film-placeholder{width:100%}
  .gallery-item{aspect-ratio:3/4}.gallery-item span{opacity:1;transform:none;background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,0));font-size:.62rem}
  .hover-preview{display:none}
  footer>p{line-height:1.6}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1!important;transform:none!important}
  .portrait-wall{overflow-x:auto;width:100%;max-width:100%}
  .welcome-bg-marquee{display:none}
  .cookbook .book-page{opacity:1!important;transform:none!important}
}
