:root{--night:#3c6359;--ink:#3c554b;--light:#f3e9d0;--gold:#d3ad75;color-scheme:light}body{background:#a7c7bd;color:#3c554b}.cosmos-layer{position:fixed;inset:0;z-index:0;background:#a7c7bd}.cosmos-layer canvas,.cosmos-layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.webgl-ready #cosmos-poster{opacity:0}.immersive-light #cosmos-poster{opacity:1}main,footer{position:relative;z-index:1}.hero{background:transparent;height:105svh;min-height:900px;max-height:none;color:#f7ecd1}.hero-art{display:none}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#213d3966,transparent 80%);pointer-events:none}.topline span{color:#eed9b1}.hero-copy{width:55%;padding:120px 0 100px 8vw}.hero h1{font-size:9rem;line-height:1;font-weight:400;letter-spacing:-.05em}.hero-title{font-size:2.4rem;max-width:430px}.guest-label{color:#f1deb9}.hero-date{color:#f7ecd3}.hero .open-button{background:#e1c393;color:#2f544a}.hero .open-note{color:#eee2c6}.scene-caption{color:#eddbb6}.flight-section{height:480svh;overflow:visible;background:transparent}.flight-stage{height:100svh;position:sticky;top:0;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:65px 7vw;background:linear-gradient(transparent 55%,#244b4566)}.flight-copy{max-width:650px;color:#fff0cf;text-shadow:0 2px 4px #24453a55}.flight-copy p{font-size:15px;margin-bottom:20px}.flight-copy h2{font-size:3.7rem;margin-bottom:20px}.flight-progress{width:180px;height:3px;background:#e7dcb866}.flight-progress i{display:block;height:100%;width:100%;background:#f3dfab;transform-origin:left;transform:scaleX(0)}.light-mode{border:1px solid #e6d6b3;background:#3b6054;color:#f3e6c5;min-height:44px;padding:12px 18px;font-size:12px;border-radius:3px}.countdown-section{background:#e6e5c9e8;min-height:740px;color:#3d6255}.clock-orbit{border-color:#748b6b55}.clock-orbit span{background:#dfe3c9;color:#708a64}.clock-orbit::after{border-color:#748b6b55}.countdown strong{color:#4b6e5b}.event-day{color:#69816b}.arrival-section{min-height:110svh;display:flex;align-items:flex-end;justify-content:flex-start;padding:70px 8vw;background:linear-gradient(transparent 30%,#25493f99);color:#f6e8c8}.arrival-section>div{max-width:610px}.arrival-section h2{font-size:3.3rem}.arrival-section p{margin:20px 0}.arrival-section .venue{font-size:1.5rem}.arrival-section .primary{background:#e7ca91;color:#284e41}.invitation{background:#e9dfbe}.river-line path{stroke:#83946f}.portrait-section{background:#ced8be}.portrait-frame{border:6px double #879c7c;transform:rotate(calc(-3deg + var(--p,1)*3deg));border-radius:50% 50% 2px 2px}.portrait-inner{background:linear-gradient(#b2c8ae,#789877)}.monogram{color:#f4dfae;font-style:normal}.portrait-star{color:#e6c88d}.frame-shutter{background:#a8b590;border-color:#859a73}.photo-caption{color:#526c51}.place-section{background:#e6d7b2}.route-art svg{stroke:#8e9e76}.route-art .route{stroke:#456851}.programme-section{background:#eee3c5}.programme-section ol{border-color:#a1aa7e}.programme-section li::before{color:#769164;background:#eee3c5}.programme-section time{color:#7b8c63}.dress-section{background:#c2d1ad}.dress-art i{color:#759364}.rsvp-section{background:linear-gradient(90deg,#e6dfc3ef,#f3e8c5aa);min-height:1000px;color:#3a5c4b}.rsvp-panel{padding:45px 35px;background:#f6ecd3ed;border:1px solid #b7ac81;border-radius:100px 100px 4px 4px;position:relative}.rsvp-panel input:not([type=radio]):not([type=checkbox]),.rsvp-panel textarea{background:#fff7e3;border-color:#a9b18c;color:#365943}.guest-passport{height:90px;width:180px;margin:0 auto 35px;border:8px double #a69a78;border-radius:50% 50% 0 0;background:#627762;position:relative;perspective:400px}.guest-passport i{position:absolute;inset:30px 24px 0;background:repeating-linear-gradient(#ac8554 0,#ac8554 7px,#826140 8px);transform-origin:bottom;transition:transform 2s}.celebrating .guest-passport i{transform:rotateX(-85deg)}.guest-banner{position:absolute;top:-30px;left:0;right:0;font-size:10px;text-align:center;color:#56714d}.guests-section{background:#49684f}.notes-section{background:#d4ddbd}#guest-total,#guest-list small{color:#e3d3a9}footer{background:#2e4c3b;color:#e3d5ac}.music{background:#e8d3a0;color:#45634c}.immersive-light .flight-section{height:140svh}.immersive-light .flight-stage{background:linear-gradient(transparent,#2e5145aa)}
@media(max-width:700px){.hero{height:980px;min-height:980px}.hero-copy{width:100%;padding:110px 25px 0;text-align:left}.hero h1{font-size:6.7rem}.hero-title{font-size:2rem;margin:0;max-width:310px}.guest-label{margin:0}.hero::before{background:linear-gradient(#254b4355,transparent 70%)}.hero-date{margin-top:25px}.topline{font-size:12px}.hero .open-note{margin:12px 0}.flight-stage{padding:60px 24px;display:block;padding-top:65svh}.flight-copy h2{font-size:2.6rem}.flight-copy p{font-size:13px;margin-bottom:12px}.light-mode{position:absolute;right:20px;top:24px}.arrival-section{padding:80px 25px;min-height:110svh}.arrival-section h2{font-size:2.6rem}.arrival-section .ornament{display:none}.arrival-section p{font-size:15px}.rsvp-section{padding:80px 24px}.rsvp-panel{padding:40px 20px;border-radius:75px 75px 4px 4px}.rsvp-intro h2{font-size:2.6rem}.countdown-section{min-height:700px}.cosmos-layer img{object-position:50% center}}
@media(prefers-reduced-motion:reduce){.flight-section,.immersive-light .flight-section{height:100svh}.flight-stage{position:relative}.cosmos-layer canvas{display:none}.guest-passport i{transition:none}}

.cosmos-layer{background:radial-gradient(circle at 78% 18%,#fff0c5 0, #fff0c588 5%,transparent 21%),linear-gradient(#8fbac6,#cbd5bc 65%,#d8d4ac)}
.celebrating .rsvp-section{display:block;background:transparent;padding-top:0}.celebrating .rsvp-intro{display:none}.celebrating .rsvp-panel{margin:50px auto 0;max-width:650px}.celebrating #done-title{font-size:2rem}#celebracao{min-height:100svh;margin:0 -8vw;padding:0 8vw 65px;display:flex;align-items:flex-end;background:linear-gradient(transparent 60%,#2d4b3fbb);color:#f9eac7}#celebracao>div{max-width:600px}#celebracao h2{font-size:3rem;margin:14px 0 25px}#celebration-guest{font-size:18px}#celebracao .primary{background:#e5c894;color:#31503d}#celebracao[hidden]{display:none}
@media(max-width:700px){#celebracao{margin:0 -24px;padding:0 24px 70px}#celebracao h2{font-size:2.4rem}.celebrating .rsvp-panel{margin-top:35px}.hero-copy{padding-top:85px}.hero::before{background:linear-gradient(90deg,#29463888,transparent 100%)}}
