:root{--ink:#090908;--paper:#f5f1e8;--gold:#d4aa4f;--soft:#f1d892;--muted:#ada594;--line:rgba(212,170,79,.3);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);overflow-x:hidden}body.intro-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:1001;top:-5rem;left:1rem;background:var(--paper);color:var(--ink);padding:.8rem 1rem}.skip-link:focus{top:1rem}.intro{position:fixed;inset:0;z-index:999;background:#030303;display:grid;place-items:center;transition:opacity .9s,visibility .9s}.intro::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(212,170,79,.16),transparent 32%);animation:breathe 2.8s ease-in-out infinite}.intro.done{opacity:0;visibility:hidden;pointer-events:none}.intro-mark{text-align:center;position:relative;z-index:1;animation:introRise 1.1s both}.intro-crown{display:block;color:var(--gold);font-size:3.4rem}.intro p,.eyebrow{text-transform:uppercase;letter-spacing:.34em;font-size:.64rem;font-weight:600;color:var(--soft);margin:0 0 1.2rem}.intro h1{font:500 clamp(4.2rem,11vw,10rem)/.8 var(--serif);margin:.5rem 0}.intro h1 i{color:var(--gold);font-weight:400}.intro-rule{display:block;width:0;height:1px;background:var(--gold);margin:2rem auto 1rem;animation:rule 1.1s .4s forwards}.intro small{text-transform:uppercase;letter-spacing:.4em;font-size:.58rem;color:var(--soft)}.intro-skip{position:absolute;right:2rem;bottom:2rem;background:none;border:0;color:#aaa;text-transform:uppercase;letter-spacing:.2em;font:500 .62rem var(--sans);cursor:pointer}.site-header{position:fixed;z-index:60;inset:0 0 auto;height:94px;padding:0 clamp(1.2rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid transparent;transition:.35s}.site-header.scrolled{height:72px;background:rgba(6,6,5,.91);backdrop-filter:blur(15px);border-color:rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:.8rem}.brand-crown{color:var(--gold);font-size:1.65rem}.brand strong{display:block;font:600 1.45rem/1 var(--serif)}.brand small{display:block;font-size:.45rem;letter-spacing:.28em;text-transform:uppercase;color:var(--soft);margin-top:.28rem}.site-header nav{display:flex;gap:1.7rem}.site-header nav a{font-size:.58rem;text-transform:uppercase;letter-spacing:.18em;position:relative}.site-header nav a::after{content:"";position:absolute;bottom:-.6rem;left:0;width:0;height:1px;background:var(--gold);transition:.3s}.site-header nav a:hover::after,.site-header nav a:focus-visible::after{width:100%}.menu-toggle{display:none;background:none;border:0;width:42px;padding:7px}.menu-toggle span{display:block;height:1px;background:white;margin:7px}.hero{min-height:100svh;position:relative;display:grid;place-items:center;text-align:center;isolation:isolate;padding:8rem 1.4rem}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{z-index:-2;background:url('/assets/royal-hero.webp') center 25%/cover no-repeat;animation:heroZoom 15s ease-out both}.hero-shade{z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.12) 70%),linear-gradient(90deg,rgba(0,0,0,.2),transparent,rgba(0,0,0,.2))}.hero h1{font:500 clamp(5rem,12vw,12rem)/.72 var(--serif);letter-spacing:-.055em;margin:0;text-shadow:0 5px 30px #000}.hero h1 span{font-style:italic;color:var(--gold)}.hero-date{display:flex;justify-content:center;align-items:center;gap:1rem;text-transform:uppercase;letter-spacing:.28em;font-size:.62rem;margin:2rem 0 1rem}.hero-date i{width:60px;height:1px;background:var(--gold)}.hero-verse{font:italic 1.25rem var(--serif);color:#eee5d2;margin:0 0 2rem}.hero-verse small{font:500 .55rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 1.6rem;border:1px solid transparent;text-transform:uppercase;letter-spacing:.2em;font-size:.61rem;font-weight:600;transition:.3s}.button-gold{background:var(--gold);color:#15120c}.button-gold:hover{background:var(--soft);transform:translateY(-2px)}.vertical-mark{position:absolute;right:2rem;top:50%;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.3em;font-size:.5rem}.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-transform:uppercase;letter-spacing:.25em;font-size:.5rem}.scroll-cue i{width:1px;height:40px;background:var(--gold)}.section{position:relative;padding:clamp(6rem,11vw,10rem) clamp(1.4rem,7vw,8rem)}.section-number{position:absolute;right:5vw;top:2rem;font:500 clamp(7rem,15vw,15rem)/1 var(--serif);color:rgba(212,170,79,.07)}.dark{color:#986d20}.welcome{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:center}.welcome-copy h2,.section-heading h2,.celebration h2,.thanks h2{font:500 clamp(3.4rem,6.5vw,7rem)/.88 var(--serif);letter-spacing:-.045em;margin:0}.welcome-copy h2 em{color:#a87520}.welcome-copy>p:not(.eyebrow){color:#514b40;line-height:1.9;margin:2rem 0}.welcome blockquote{font:italic 1.8rem var(--serif);color:#8b651f;border-left:1px solid var(--gold);padding-left:1.4rem;margin:0}.couple-portraits{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}.portrait{margin:0;position:relative;height:650px}.portrait.groom{margin-top:5rem}.portrait figcaption{position:absolute;inset:auto 1rem 1rem;background:rgba(7,7,6,.88);color:white;padding:1.1rem}.portrait figcaption small{display:block;color:var(--soft);text-transform:uppercase;letter-spacing:.2em;font-size:.5rem}.portrait figcaption strong{display:block;font:500 2rem var(--serif);margin:.25rem 0}.portrait figcaption span{font-size:.6rem;color:#c7c0b4}.vow-line{grid-column:1/-1;margin-top:4rem;display:flex;align-items:center;justify-content:center;gap:1.2rem;color:#80601f;text-transform:uppercase;letter-spacing:.2em;font-size:.58rem}.vow-line i{height:1px;flex:1;background:#d8d0bf}.party{background:#0a0a09}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:4rem}.section-heading>p{max-width:440px;line-height:1.8;color:#aaa294}.honor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:5rem}.person-card{position:relative;margin:0;background:#141310;border:1px solid rgba(255,255,255,.07);overflow:hidden}.person-card img{height:360px;filter:saturate(.85);transition:.6s}.person-card:hover img{transform:scale(1.025);filter:saturate(1)}.person-card div{padding:1.2rem}.person-card small{display:block;color:var(--soft);text-transform:uppercase;letter-spacing:.15em;font-size:.48rem;line-height:1.5}.person-card h3{font:500 1.65rem/1.05 var(--serif);margin:.45rem 0}.person-card p{font-size:.58rem;color:#aaa294;margin:.35rem 0}.party-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.party-grid .person-card img{height:310px}.celebration{min-height:1000px;isolation:isolate;background:#110f0c}.celebration-bg{position:absolute;inset:0;z-index:-2;background:url('/assets/hughes-forever.webp') center/cover fixed}.celebration::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,4,3,.96),rgba(4,4,3,.74) 55%,rgba(4,4,3,.35))}.celebration-copy{max-width:760px}.celebration-copy>p:last-child{max-width:650px;color:#c8c0b2;line-height:1.9}.event-timeline{max-width:800px;margin:5rem 0 3rem}.event-timeline article{display:grid;grid-template-columns:70px 1fr;gap:1.5rem;border-top:1px solid var(--line);padding:1.8rem 0}.event-timeline article>span{font:500 1.5rem var(--serif);color:var(--gold)}.event-timeline small,.venue-card small{color:var(--soft);text-transform:uppercase;letter-spacing:.18em;font-size:.5rem}.event-timeline h3{font:500 2rem var(--serif);margin:.3rem 0}.event-timeline p{color:#aaa294;margin:0;line-height:1.7}.venue-card{font-style:normal;border:1px solid var(--gold);padding:1.5rem 1.7rem;max-width:550px;display:grid;gap:.5rem;background:rgba(0,0,0,.35)}.venue-card strong{font:500 2rem var(--serif)}.venue-card span{font-size:.65rem;color:#c8c0b2}.menu{background:var(--paper);color:var(--ink)}.menu .section-heading>p{color:#595246}.menu-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:center}.menu-photo{height:720px;margin:0;position:relative}.menu-photo::before{content:"";position:absolute;inset:-15px 15px 15px -15px;border:1px solid var(--gold)}.menu-photo figcaption{position:absolute;bottom:1.5rem;left:1.5rem;background:#090908;color:white;padding:.8rem 1.1rem;font:500 1.6rem var(--serif)}.menu-list article{display:grid;grid-template-columns:60px 1fr;gap:1.3rem;border-top:1px solid #d5cdbc;padding:1.7rem 0}.menu-list article>span{color:#9a6c18;font:500 1.2rem var(--serif)}.menu-list h3{font:500 2rem var(--serif);margin:0 0 .4rem}.menu-list p{color:#5f584c;line-height:1.7;margin:0}.gallery{background:#0a0a09}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:270px;gap:.8rem}.gallery-item{position:relative;border:0;padding:0;background:#111;overflow:hidden;cursor:zoom-in;color:white}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.gallery-item img{transition:.7s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0);transition:.3s}.gallery-item:hover::after{background:rgba(0,0,0,.25)}.gallery-item span{position:absolute;z-index:2;right:1rem;bottom:1rem;opacity:0;text-transform:uppercase;letter-spacing:.2em;font-size:.5rem;transition:.3s}.gallery-item:hover span{opacity:1}.thanks{position:relative;min-height:80vh;display:grid;place-items:center;text-align:center;isolation:isolate;background:url('/assets/couple-stone.webp') center 40%/cover}.thanks-shade{position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.67)}.thanks-content{max-width:900px;padding:4rem 1.4rem}.thanks-content>span{font-size:3.5rem;color:var(--gold)}.thanks-content>p:not(.eyebrow){font:italic 1.5rem var(--serif);margin:1.5rem 0 2rem;color:var(--soft)}footer{min-height:170px;padding:3rem clamp(1.4rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;border-top:1px solid rgba(255,255,255,.08)}footer>p{font-size:.52rem;text-transform:uppercase;letter-spacing:.18em;color:#928a7c}dialog{width:min(94vw,1200px);height:min(92vh,900px);border:1px solid var(--gold);padding:0;background:#050505}dialog::backdrop{background:rgba(0,0,0,.9)}dialog img{object-fit:contain}dialog button{position:absolute;z-index:2;right:1rem;top:1rem;width:42px;height:42px;border:1px solid var(--gold);background:#080806;color:white;font-size:1.5rem;cursor:pointer}.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none}@keyframes introRise{from{opacity:0;filter:blur(8px);transform:translateY(25px)}to{opacity:1;filter:none;transform:none}}@keyframes rule{to{width:140px}}@keyframes breathe{50%{transform:scale(1.12)}}@keyframes heroZoom{from{transform:scale(1.07)}to{transform:scale(1)}}@media(max-width:1050px){.site-header nav{position:fixed;inset:0;background:#080806;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem;transform:translateX(100%);transition:.35s}.site-header nav.open{transform:none}.site-header nav a{font:500 2.6rem var(--serif);text-transform:none;letter-spacing:0}.menu-toggle{display:block;position:relative;z-index:3}.welcome{grid-template-columns:1fr}.honor-grid,.party-grid{grid-template-columns:repeat(2,1fr)}.section-heading{align-items:start;flex-direction:column}.menu-layout{grid-template-columns:1fr}.menu-photo{height:650px}.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.site-header{height:74px}.brand strong{font-size:1.2rem}.hero h1{font-size:21vw}.hero-image{background-position:63% 25%}.vertical-mark{display:none}.hero-date{font-size:.48rem}.section{padding-top:6rem;padding-bottom:6rem}.couple-portraits{gap:.7rem}.portrait{height:450px}.portrait.groom{margin-top:2rem}.portrait figcaption{inset:auto .5rem .5rem;padding:.8rem}.portrait figcaption strong{font-size:1.4rem}.portrait figcaption span{display:none}.vow-line{gap:.55rem}.honor-grid,.party-grid{grid-template-columns:1fr 1fr}.person-card img,.party-grid .person-card img{height:240px}.person-card div{padding:.8rem}.person-card h3{font-size:1.25rem}.celebration-bg{background-attachment:scroll}.menu-photo{height:500px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:210px}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 1}footer{align-items:flex-start;flex-direction:column}.intro h1{font-size:18vw}.intro-skip{right:1rem;bottom:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro{display:none}.hero-image{animation:none}.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
