:root{font-family:Manrope,sans-serif;color:#f0eddf;background:#061510;font-synthesis:none;font-weight:400;--gold:#d6c08b;--muted:#b6bbae;--serif:"Cormorant Garamond",Georgia,serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}html{scrollbar-width:thin;scrollbar-color:#7a785d #091b16}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{touch-action:manipulation}a{color:inherit}::selection{background:#9e885d;color:#fff}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(2.8rem,4.5vw,4.8rem);line-height:1.05}h2 em{color:#e2d2a9;font-weight:400}p{line-height:1.75}.world,.world-loading,.fallback-world{position:fixed;top:0;right:0;bottom:0;left:0;background:#061510;transition:filter .6s}.world.defocused{filter:blur(9px) brightness(.55)}.world canvas{width:100%!important;height:100%!important;touch-action:pan-y}.fallback-world{background:radial-gradient(ellipse at 50% 20%,#4c5c48 0,transparent 45%),radial-gradient(ellipse at 40% 75%,#24483b 0,#061510 70%)}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(2,13,10,.65),transparent 25%,transparent 58%,rgba(2,12,9,.85)),radial-gradient(ellipse at center,transparent 25%,rgba(0,9,6,.45));z-index:1}.film-grain{position:fixed;top:0;right:0;bottom:0;left:0;opacity:.025;pointer-events:none;z-index:10;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='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.9' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar{position:fixed;z-index:12;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:27px 4.1vw}.monogram{font-family:var(--serif);font-size:33px;letter-spacing:-3px;text-decoration:none;line-height:1}.monogram span{font-size:25px;font-style:italic;color:var(--gold);margin:0 3px}.top-caption{font-size:11px;letter-spacing:.24em;color:#c5c6b9}.sound-button{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.16em;padding:10px 0}.sound-button svg{color:var(--gold)}.welcome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;flex-direction:column;text-align:center;background:linear-gradient(180deg,rgba(1,10,7,.16),transparent 30%,rgba(1,10,7,.2))}.welcome-top{position:absolute;top:16%;display:flex;flex-direction:column;gap:13px;align-items:center}.tiny-star{font-size:32px;color:var(--gold)}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.26em;color:var(--gold);line-height:1.7}.welcome-center{position:absolute;top:38%;left:15px;right:15px}.invitation-line{font-family:var(--serif);font-size:clamp(19px,2vw,25px);font-style:italic;color:#e2decf;margin-bottom:11px;text-shadow:0 2px 15px #03130b}h1{font-size:clamp(75px,10.8vw,162px);letter-spacing:-.055em;line-height:1.1;text-shadow:0 2px 40px #04180d}h1 span{font-size:.67em;font-style:italic;color:#d8c59b;margin:0 .11em}.wedding-label{font-size:11px;letter-spacing:.32em;margin-top:17px;color:#e2dfcb}.welcome-bottom{position:absolute;bottom:8%;display:flex;align-items:center;flex-direction:column}.enter-button{display:flex;gap:38px;align-items:center;border:1px solid #a38e5f;padding:17px 26px;background:#11281ce0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px;letter-spacing:.08em;transition:background .35s,box-shadow .35s;min-height:54px}.enter-button:hover{background:#45503a;box-shadow:0 0 35px #d4c18a22}.button-star{font-size:18px;color:var(--gold)}.silent-enter{font-size:11px;color:#c9c9b8;margin-top:8px;padding:10px;text-decoration:underline;text-underline-offset:4px}.welcome-bottom>p{font-family:var(--serif);font-size:17px;font-style:italic;color:#a6b3a3;margin-top:22px}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#020805f2;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px}.intro p{max-width:780px;font-family:var(--serif);font-size:clamp(32px,5vw,61px);line-height:1.3;color:#e8e0c8}.intro p span{display:inline-block;white-space:pre}.intro>button{position:absolute;bottom:9%;font-size:12px;color:var(--muted);padding:14px}.first-firefly{position:absolute;top:32%;left:49%;width:5px;height:5px;background:#ffe9a5;border-radius:50%;box-shadow:0 0 12px 4px #fbe1a577,0 0 60px 14px #e7d68622;animation:firefly 6s ease-in-out infinite}@keyframes firefly{0%,to{transform:translate(-100px,40px);opacity:.25}40%{transform:translate(80px,-70px);opacity:1}70%{transform:translate(160px,20px)}}.scroll-journey{position:relative;pointer-events:none}.scroll-space{height:720vh;height:720svh}.scroll-journey.waiting{height:100vh;overflow:hidden}.scene-ui{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.scene-copy{position:absolute}.scene-copy button,.scene-copy a{pointer-events:auto}.scene-copy>p:not(.eyebrow){font-size:14px;color:#ced1c1;margin-top:20px;max-width:340px}.scene-copy .eyebrow{margin-bottom:22px}.entrance-copy{left:8%;bottom:18%;text-shadow:0 2px 35px #001b0e}.entrance-copy h2{font-size:clamp(50px,6vw,85px)}.scroll-prompt{display:flex;align-items:center;gap:24px;margin-top:32px;padding:12px 0;font-size:10px;letter-spacing:.18em;color:#e4d4a9}.scroll-prompt svg{animation:down 2s infinite}@keyframes down{50%{transform:translateY(6px)}}.chapter-nav{position:fixed;right:3.5%;top:50%;transform:translateY(-50%);z-index:8;display:flex;flex-direction:column;gap:9px}.chapter-nav button{display:flex;gap:14px;align-items:center;justify-content:flex-end;min-height:31px;min-width:38px}.chapter-dot{width:5px;height:5px;border-radius:100%;background:#b3b99877;position:relative;transition:background .4s}.chapter-dot:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px solid transparent;border-radius:100%;transition:border-color .4s}.chapter-nav .active .chapter-dot{background:#e9d49c}.chapter-nav .active .chapter-dot:after{border-color:#b6a57388}.chapter-name{font-size:11px;color:#bdbfaa;opacity:0;transition:opacity .3s;letter-spacing:.02em}.chapter-nav button:hover .chapter-name,.chapter-nav .active .chapter-name{opacity:1}.memory-heading{top:15%;left:7%}.memory-heading h2{font-size:clamp(34px,4vw,60px)}.memory-shortcuts{display:flex;gap:10px;margin-top:22px}.memory-shortcuts button{display:flex;align-items:center;gap:15px;border-bottom:1px solid #b3a37077;padding:12px 5px;font-size:12px;color:#d8c9a4}.memory-shortcuts button:hover{border-color:#f2d793;color:#fff}.photo-label{color:#f4e8cc;text-shadow:0 2px 8px #000}.photo-label span{font-size:11px;letter-spacing:.2em}.photo-label p{font-size:22px;font-family:var(--serif);line-height:1.3;margin-top:4px}.tree-copy{top:22%;left:8%;text-shadow:0 2px 20px #001108}.tree-copy h2{font-size:clamp(36px,4.5vw,64px)}.timeline{margin-top:35px}.timeline>div{display:flex;align-items:center;gap:16px;padding:15px 0;position:relative;color:#afb5a8;font-size:13px}.timeline-light{height:5px;width:5px;background:#747e63;border-radius:50%;position:relative}.timeline-light:after{position:absolute;content:"";height:48px;width:1px;left:2px;top:9px;background:#7f826644}.timeline>div:last-child .timeline-light:after{display:none}.timeline-year{font-family:var(--serif);font-size:23px;color:#b0b89d;margin-left:8px}.timeline .lit{color:#f5ead2}.timeline .lit .timeline-year{color:#f0d8a1}.timeline .lit .timeline-light{background:#f2da9c;box-shadow:0 0 16px 4px #f2da9c66}.sky-copy{top:17%;right:15%;bottom:15%;left:15%;text-align:center;display:flex;flex-direction:column;justify-content:space-between}.sky-copy h2{font-size:clamp(48px,6vw,82px)}.sky-copy p:not(.eyebrow){font-family:var(--serif);font-style:italic;font-size:23px;color:#c0c7c9;margin-top:12px}.event-copy{top:13%;right:13%;bottom:12%;left:13%;display:flex;justify-content:center;align-items:center;text-align:center}.event-details{width:min(700px,100%);padding:28px 40px 22px;background:linear-gradient(135deg,#0a211cc9,#071913c4);border-top:1px solid #c9b37c55;border-bottom:1px solid #c9b37c55;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 15px 80px #00130833}.event-details .eyebrow{margin-bottom:14px}.event-details h2{font-size:clamp(30px,3.3vw,46px);line-height:1.05}.event-details h2 em{font-size:.75em}.event-date{display:flex;align-items:center;justify-content:center;gap:24px;margin:12px 0 2px}.event-date strong{font-family:var(--serif);font-size:79px;font-weight:400;line-height:1}.event-date>span{font-size:11px;letter-spacing:.15em;text-align:left;line-height:1.8;width:85px}.event-date>span:first-child{text-align:right}.time{font-size:12px;color:#d4d8c8}.time>span{margin:0 10px;color:var(--gold)}.venues{display:flex;justify-content:center;gap:25px;align-items:center;margin-top:24px}.venues span{font-size:9px;letter-spacing:.2em;color:var(--gold)}.venues h3{font-size:24px;margin-top:5px}.venues i{height:37px;width:1px;background:#a9996766}.countdown{display:flex;justify-content:center;gap:27px;margin:24px 0 13px}.countdown div{display:flex;flex-direction:column;gap:4px;min-width:42px}.countdown strong{font:400 31px var(--serif);color:#e3d3ae;line-height:1}.countdown span{font-size:8px;letter-spacing:.1em;color:#b6bcae}.text-button{display:inline-flex;align-items:center;gap:9px;padding:9px;font-size:12px;color:#dfcba3}.text-button:hover{text-decoration:underline;text-underline-offset:5px}.journey-footer{position:fixed;bottom:31px;left:4.1%;right:4.1%;z-index:9;display:flex;align-items:center;gap:27px}.chapter-counter{font:20px var(--serif);color:#ded2b2}.chapter-counter>span{font-size:14px;color:#869582}.progress-track{height:1px;background:#ccd2b329;flex:1;max-width:200px}.progress-track>div{height:1px;background:#c5b37f;transform-origin:left;transition:transform .15s linear}.journey-footer>button{margin-left:auto;display:flex;align-items:center;gap:17px;font-size:10px;letter-spacing:.12em;padding:10px 0;color:#d0c7a8}.quality-toggle{position:fixed;bottom:31px;left:50%;transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:6px;color:#95a58d;font-size:9px;letter-spacing:.1em;padding:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#04110cd4;display:flex;justify-content:center;align-items:center;padding:30px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.memory-dialog{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#10271e;width:min(880px,95vw);max-height:85dvh;border:1px solid #a38e6155;box-shadow:0 30px 100px #0008}.memory-dialog img{width:100%;height:100%;max-height:75dvh;object-fit:cover;min-height:0}.memory-copy{padding:55px 38px;display:flex;flex-direction:column;justify-content:center}.memory-copy h2{font-size:47px;margin:22px 0}.memory-copy p{color:#c4cdbb;font-size:14px}.icon-button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #c6b17d44;border-radius:50%;color:#dfd3b3}.icon-button:hover{background:#79826344}.close{position:absolute;right:12px;top:12px;z-index:2;background:#082014d9}.modal-nav{display:flex;align-items:center;gap:20px;margin-top:35px;font-size:12px;color:#d6c595}.fallback-canvas{min-height:100vh;background:#123126}@media(min-width:1500px){.welcome-center{top:37%}.welcome-top{top:18%}}@media(max-height:720px)and (min-width:761px){.welcome-top{top:13%}.welcome-center{top:31%}.welcome-bottom{bottom:6%}h1{font-size:100px}.welcome-bottom>p{display:none}.event-copy{top:11%;right:15%;bottom:10%;left:15%}.event-details{padding:18px 35px 12px}.event-details h2{font-size:34px}.event-date strong{font-size:60px}.venues{margin-top:14px}.countdown{margin-top:16px}.tree-copy{top:19%}.timeline{margin-top:18px}}@media(max-width:760px){.topbar{padding:24px}.top-caption{display:none}.monogram{font-size:30px}.sound-button{font-size:9px;gap:7px}.welcome-top{top:18%}.welcome-center{top:36%}h1{font-size:clamp(60px,12.5vw,95px);letter-spacing:-.045em}.invitation-line{font-size:19px}.wedding-label{font-size:9px;letter-spacing:.23em;margin-top:20px}.welcome-bottom{bottom:9%}.welcome-bottom>p{font-size:16px;margin-top:20px}.eyebrow{font-size:10px;letter-spacing:.22em}.chapter-nav{right:17px;gap:6px;top:48%}.chapter-name{display:none}.chapter-dot{width:4px;height:4px}.chapter-nav button{min-height:28px;min-width:28px}.entrance-copy{left:26px;right:55px;bottom:19%}.entrance-copy h2{font-size:52px}.scene-copy>p:not(.eyebrow){font-size:13px;max-width:270px;margin-top:15px}.scene-copy .eyebrow{margin-bottom:16px}.scroll-prompt{margin-top:24px;font-size:9px}.memory-heading{left:25px;top:14%;right:46px}.memory-heading h2{font-size:36px}.memory-heading>p:not(.eyebrow){font-size:12px;margin-top:12px}.memory-shortcuts{margin-top:8px;gap:14px}.memory-shortcuts button{font-size:11px;gap:12px}.tree-copy{left:25px;top:auto;bottom:17%;right:45px;background:linear-gradient(90deg,#051a11b0,transparent);padding:15px 0}.tree-copy h2{font-size:38px}.timeline{margin-top:20px}.timeline>div{font-size:12px;padding:11px 0;gap:12px}.timeline-year{font-size:21px}.timeline-light:after{height:37px}.sky-copy{top:17%;right:45px;bottom:21%;left:45px}.sky-copy h2{font-size:47px}.sky-copy p:not(.eyebrow){font-size:20px}.event-copy{top:13%;right:39px;bottom:13%;left:19px}.event-details{padding:23px 14px 14px}.event-details h2{font-size:31px}.event-details h2 em{font-size:.68em}.event-date{margin-top:15px;gap:15px}.event-date strong{font-size:73px}.event-date>span{font-size:9px;width:70px}.time{font-size:11px}.venues{gap:13px;margin-top:21px}.venues span{font-size:8px;letter-spacing:.15em}.venues h3{font-size:20px;line-height:1.05;max-width:140px}.venues i{height:33px}.countdown{gap:16px;margin-top:23px}.countdown strong{font-size:29px}.countdown span{font-size:7px}.journey-footer{bottom:23px;left:24px;right:23px;gap:13px}.progress-track{max-width:60px}.journey-footer>button{font-size:9px;gap:9px}.quality-toggle{bottom:70px;font-size:8px;left:24px;transform:none;padding:5px 0}.quality-toggle span{display:none}.memory-dialog{display:flex;flex-direction:column;width:min(410px,100%);overflow:auto;max-height:88dvh}.modal-backdrop{padding:18px}.memory-dialog img{height:43dvh;object-position:center 42%;flex-shrink:0}.memory-copy{padding:24px}.memory-copy h2{font-size:35px;margin:13px 0}.memory-copy p{font-size:13px}.modal-nav{margin-top:20px;justify-content:center}.photo-label p{font-size:18px}.intro p{font-size:36px}.intro{padding:25px}.enter-button{font-size:12px;padding:16px 24px}.welcome-bottom .silent-enter{font-size:11px}}@media(max-height:700px)and (max-width:760px){.welcome-top{top:14%}.welcome-center{top:31%}.welcome-bottom{bottom:8%}.welcome-bottom>p{display:none}.event-copy{top:12%;right:37px;bottom:12%;left:17px}.event-details{padding:16px 10px 10px}.event-details h2{font-size:27px}.event-date{margin-top:10px}.event-date strong{font-size:58px}.venues{margin-top:13px}.countdown{margin-top:17px;margin-bottom:5px}.tree-copy{bottom:14%}.tree-copy h2{font-size:32px}.timeline{margin-top:12px}.timeline>div{padding:8px 0}.timeline-light:after{height:31px}.memory-heading{top:15%}.memory-heading h2{font-size:31px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.opening-dark{position:fixed;top:0;right:0;bottom:0;left:0;background:#010403;z-index:25;pointer-events:none}.scroll-space{height:960vh;height:960svh}.physical-a11y{width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}.physical-a11y:focus-visible{clip-path:none;width:auto;height:auto;padding:12px 18px;pointer-events:auto;background:#173c2e;color:#f5e8c7;font-size:14px;outline:2px solid #e1c589;outline-offset:3px}.rsvp-paper{width:320px;max-height:425px;overflow-y:auto;padding:19px 22px 12px;color:#3e4936;background:transparent;position:relative;font-family:Manrope,sans-serif;scrollbar-width:thin;scrollbar-color:#9b8e69 transparent;text-align:left;pointer-events:auto;touch-action:pan-y}.paper-monogram{font-family:var(--serif);display:block;font-size:18px;letter-spacing:.16em;color:#867046;text-align:center;line-height:1.1}.rsvp-paper h2{font-size:28px;text-align:center;color:#384a36;line-height:1.1;margin:5px 0 3px}.paper-intro{font-family:var(--serif);font-size:15px;text-align:center;line-height:1.3;margin-bottom:13px;color:#6a694f}.paper-close{position:absolute;right:4px;top:4px;min-width:36px;min-height:36px;font-size:25px;color:#6a6349;line-height:1;padding:0}.rsvp-paper label{display:block;font-size:12px;line-height:1.4;font-weight:600;margin-top:9px;color:#3f4936}.rsvp-paper label>span{font-size:11px;font-weight:400;color:#726f5d}.rsvp-paper input:not([type=radio]),.rsvp-paper select,.rsvp-paper textarea{font:400 16px Manrope,sans-serif;color:#263d30;background:#fffdf122;border:0;border-bottom:1px solid #8b8d705f;border-radius:0;width:100%;min-height:31px;padding:4px 3px;outline:none;box-shadow:none}.rsvp-paper textarea{resize:vertical;min-height:38px;max-height:80px;font-size:14px}.rsvp-paper input:focus,.rsvp-paper select:focus,.rsvp-paper textarea:focus{border-bottom-color:#436443;box-shadow:0 1px #436443}.rsvp-paper fieldset{padding:0;border:0;display:flex;gap:19px;margin:11px 0 0;min-width:0}.rsvp-paper legend{font-size:12px;font-weight:600;margin-bottom:5px}.rsvp-paper fieldset label{margin:0;font-size:12px;font-weight:400;display:flex;align-items:center;gap:6px;min-height:24px}.rsvp-paper input[type=radio]{accent-color:#3d6149;width:15px;height:15px;margin:0}.paper-submit{width:100%;background:#2c4c37;color:#f5e6c4;font-size:13px;min-height:37px;margin-top:12px;border:1px solid #7d8a5c;letter-spacing:.025em;transition:background .25s}.paper-submit:hover{background:#476447}.paper-submit:disabled{opacity:.65}.paper-error{font-size:12px;color:#8c372e;line-height:1.35;margin-top:8px}.paper-privacy{font-size:9px;line-height:1.4;color:#77735e;text-align:center;margin-top:7px}.rsvp-paper :focus-visible{outline:2px solid #657647;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fallback-event{top:16%;right:10%;bottom:16%;left:10%;overflow:auto;pointer-events:auto}.fallback-event a,.fallback-event>button{display:inline-block;margin:15px;padding:14px;border:1px solid #cab886}.fallback-event .rsvp-paper{background:#e6dfc7}@media(max-width:760px){.rsvp-paper{padding:17px 20px 10px}.rsvp-paper fieldset label{min-height:30px}.paper-submit{min-height:42px}.rsvp-paper input:not([type=radio]),.rsvp-paper select{min-height:35px}.paper-close{min-width:42px;min-height:42px}}@media(max-width:760px){.rsvp-paper fieldset label{min-height:44px}.rsvp-paper input:not([type=radio]),.rsvp-paper select{min-height:42px}.paper-submit{min-height:44px}}@font-face{font-family:Celestial Cormorant;src:url(../fonts/cormorant-medium.ttf) format("truetype");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:Celestial Cormorant;src:url(../fonts/cormorant-italic.ttf) format("truetype");font-weight:400 500;font-style:italic;font-display:swap}:root{--serif:"Celestial Cormorant","Cormorant Garamond",Georgia,serif}.memory-heading{top:11%;left:50%;right:auto;transform:translate(-50%)!important;width:min(680px,85vw);text-align:center}.memory-heading .eyebrow{margin-bottom:8px}.memory-heading h2{font-size:clamp(25px,3vw,39px)}.memory-heading>p:not(.eyebrow){max-width:none;margin-top:7px;font-size:13px}.memory-shortcuts{justify-content:center;gap:22px;margin-top:6px}.memory-shortcuts button{min-height:44px;padding:6px 8px;font-size:13px}.sky-copy{top:14%;right:9%;bottom:17%;left:9%}@media(max-width:760px){.memory-heading{top:11%;width:84vw}.memory-heading h2{font-size:26px}.memory-heading>p:not(.eyebrow){font-size:12px}.memory-heading .eyebrow{font-size:9px;margin-bottom:4px}.memory-shortcuts{margin-top:0;gap:15px}.memory-shortcuts button{font-size:12px;min-height:38px}.sky-copy>div>p{font-size:21px}}@media(max-height:700px){.memory-heading{top:12%}.memory-heading>p:not(.eyebrow){display:none}.memory-heading h2{font-size:24px}.memory-heading .eyebrow{display:none}.memory-shortcuts button{min-height:30px}}@font-face{font-family:Shore Sans;src:url(../fonts/sans.ttf) format("truetype");font-display:swap}:root{font-family:Shore Sans,sans-serif;color:#4b3931;background:#171620;--gold:#916341;--muted:#786860}html{scrollbar-color:#bca489 #e4cdb8}button{min-height:44px}h2 em{color:#83614c}.world,.world-loading{background:#d3a99a}.fallback-world{background:linear-gradient(#928ba6,#eab69b 39%,#b0b9b6 40%,#b4b9b2 56%,#e1c7a6 74%)}.vignette{background:linear-gradient(180deg,#30202a25,transparent 19%,transparent 79%,#a8896726)}.film-grain{opacity:.018}.topbar{padding:22px 4.1vw;color:#554033}.top-caption{color:#67514a;font-size:10px;letter-spacing:.32em}.sound-button{min-width:44px}.before-entry{color:#eee1cd}.before-entry .top-caption{color:#c5b6a8}.before-entry .sound-button svg,.before-entry .monogram span{color:#d2b68e}.welcome{background:linear-gradient(180deg,#181421d6,#2d2528b5 52%,#171b20ec);color:#fff0d9}.welcome-top{top:15%;gap:2px}.welcome .eyebrow{color:#d5b88f;font-size:10px;letter-spacing:.36em}.shore-emblem{font:54px var(--serif);color:#cda87a;line-height:1.1}.welcome-center{top:35%}.invitation-line{color:#e4cebd;text-shadow:none;font-size:23px}h1{text-shadow:none}h1 span{color:#d4ab82}.wedding-label{color:#d9c5af}.welcome-bottom{bottom:8%}.enter-button{background:#b1907120;color:#f4e4cb;border-color:#bca07f;padding:15px 25px;border-radius:2px}.enter-button:hover{background:#b1907150;box-shadow:0 0 30px #d6ab6819}.button-star{color:#eac89f}.silent-enter{color:#b8a69a;min-height:44px}.welcome-bottom>p{color:#b9a697}.opening-dark{background:#131219}.intro{background:linear-gradient(180deg,#211b2570,transparent 40%,#35273555);align-items:flex-end;padding-bottom:20vh;pointer-events:none}.intro p{font-size:clamp(30px,4.2vw,54px);max-width:740px;color:#fff1dc;text-shadow:0 2px 22px #332324aa}.intro>button{pointer-events:auto;bottom:7%;color:#fff1dc}.first-firefly{display:none}.entrance-copy{left:7%;bottom:20%;text-shadow:0 1px 20px #fff6dfbb}.entrance-copy h2{font-size:clamp(43px,5.1vw,73px)}.scene-copy>p:not(.eyebrow){color:#664d3c}.scroll-prompt{color:#78583c}.scene-copy .eyebrow{color:#6c5039}.entrance-copy>.eyebrow{margin-bottom:14px}.scene-ui{z-index:3}.memory-heading{top:11%;width:min(620px,84vw);text-shadow:0 1px 16px #f6e2c499}.memory-heading h2{font-size:clamp(25px,3vw,35px)}.memory-heading .eyebrow{margin-bottom:4px}.memory-heading>p:not(.eyebrow){color:#6c5444;font-size:12px}.memory-shortcuts{gap:20px;margin-top:4px}.memory-shortcuts button{color:#6c5239;border-color:#96734e70;font-size:12px;min-height:44px}.memory-shortcuts button:hover{color:#342719;border-color:#55402e}.tree-copy{top:auto;bottom:20%;left:6%;text-shadow:0 1px 17px #f6e2c4}.tree-copy h2{font-size:clamp(32px,3.3vw,49px)}.timeline{margin-top:16px}.timeline>div{color:#7d6956;font-size:12px;padding:10px 0}.timeline-year{color:#8a755e;font-size:22px}.timeline .lit,.timeline .lit .timeline-year{color:#5b4635}.timeline .lit .timeline-light{background:#bf8e4e;box-shadow:0 0 12px #daa45680}.timeline-light:after{background:#96734e44;height:37px}.sky-copy{top:12%;right:10%;bottom:13%;left:10%;pointer-events:none}.sky-copy p:not(.eyebrow){font-size:18px;color:#705740;text-shadow:0 1px 20px #fff0d7}.sky-copy .eyebrow{letter-spacing:.3em;font-size:10px}.sky-copy>div{align-self:center}.chapter-nav{right:2.1%;gap:1px}.chapter-nav button{min-width:44px;min-height:44px}.chapter-dot{background:#896e5470}.chapter-nav .active .chapter-dot{background:#725031}.chapter-nav .active .chapter-dot:after{border-color:#91694c99}.chapter-name{color:#68503d;text-shadow:0 1px 8px #efd8ba}.journey-footer{bottom:21px;color:#72543d}.chapter-counter{color:#72543d}.chapter-counter>span{color:#957f66}.journey-footer>button{color:#68503e;min-height:44px}.progress-track{background:#8e715247}.progress-track>div{background:#8b6640}.quality-toggle{bottom:26px;color:#785d45;min-height:44px}.quality-toggle svg{width:14px}.quality-toggle:focus-visible{outline-color:#74532f}.modal-backdrop{background:#282024cf}.memory-dialog{background:#f2e3ce;color:#594335;border:1px solid #d5b796}.memory-copy{padding:46px 34px}.memory-copy h2{font-size:43px}.memory-copy p{color:#7b6251}.memory-dialog .eyebrow{color:#9c724f}.icon-button{border-color:#af8a6388;color:#89633e}.icon-button:hover{background:#cbb08955}.close{background:#f3e1cfe8}.modal-nav{color:#977350}.memory-dialog img{min-height:0}.physical-a11y:focus-visible{background:#f6e7d0;color:#594335;outline-color:#b47d48;white-space:nowrap;min-height:44px;min-width:44px}.rsvp-paper{width:320px;max-height:425px;color:#544337;font-family:Shore Sans,sans-serif;scrollbar-color:#b69772 transparent;padding:16px 20px 12px}.rsvp-paper h2{color:#594335;font-size:28px}.paper-monogram{color:#9b754e}.paper-intro{color:#80634e}.rsvp-paper label{color:#624b39;font-size:12px;margin-top:7px}.rsvp-paper label>span{color:#8c7059}.rsvp-paper input:not([type=radio]),.rsvp-paper select,.rsvp-paper textarea{font-family:Shore Sans,sans-serif;color:#4d3d30;border-bottom-color:#ad8e6b77;min-height:44px;padding:6px 4px;background:#fff5df55;font-size:16px}.rsvp-paper input:focus,.rsvp-paper select:focus,.rsvp-paper textarea:focus{border-color:#8e6341;box-shadow:0 1px #8e6341}.rsvp-paper fieldset{gap:12px;margin-top:8px}.rsvp-paper fieldset label{min-height:44px;font-size:11px}.rsvp-paper input[type=radio]{accent-color:#9a6f49}.rsvp-paper textarea{min-height:44px;font-size:14px}.paper-close{min-width:44px;min-height:44px;color:#8c6a4a;right:0;top:0}.paper-submit{background:#9b7150;color:#fff5df;border-color:#b68d67;min-height:44px}.paper-submit:hover{background:#805b3f}.paper-privacy{color:#8b745e}.paper-error{color:#a24730}.rsvp-paper :focus-visible{outline-color:#a07149}.fallback-event{background:#f6e6d0e6;padding:24px;color:#584332}.fallback-event a,.fallback-event>button{border-color:#9a724e;min-height:44px}.fallback-event .rsvp-paper{background:#edddc2}.fallback-event p{color:#72583f}body[data-mode=aerial] .topbar,body[data-mode=celebration] .topbar{opacity:.75}body[data-mode=aerial] .scene-ui,body[data-mode=celebration] .scene-ui{display:none}@media(max-width:760px){.topbar{padding:18px 22px}.welcome-top{top:17%}.welcome-center{top:35%}.welcome-bottom{bottom:8%}.invitation-line{font-size:18px}.welcome h1{font-size:clamp(52px,13vw,91px)}.wedding-label{font-size:9px}.welcome-bottom>p{font-size:16px}.welcome .eyebrow{font-size:9px}.intro p{font-size:34px}.intro{padding:0 27px 24vh}.intro>button{bottom:10%}.entrance-copy{left:25px;right:45px;bottom:22%}.entrance-copy h2{font-size:42px}.entrance-copy>p:not(.eyebrow){max-width:240px;font-size:12px}.entrance-copy>.eyebrow{margin-bottom:10px}.scroll-prompt{margin-top:16px}.chapter-nav{right:0}.chapter-name{display:none}.chapter-nav button{min-height:44px;min-width:40px}.memory-heading{top:12%;width:80vw}.memory-heading h2{font-size:25px}.memory-heading>p:not(.eyebrow){font-size:10px;margin-top:5px}.memory-heading .eyebrow{font-size:8px;letter-spacing:.2em}.memory-shortcuts{gap:12px}.memory-shortcuts button{font-size:11px;min-height:44px;gap:8px}.tree-copy{top:11%;bottom:auto;left:24px;right:45px;background:none;padding:0}.tree-copy h2{font-size:29px}.tree-copy>.eyebrow{margin-bottom:6px}.timeline{display:none}.sky-copy{top:12%;right:30px;bottom:16%;left:30px}.sky-copy p:not(.eyebrow){font-size:16px;max-width:260px}.sky-copy .eyebrow{font-size:8px}.journey-footer{bottom:max(15px,env(safe-area-inset-bottom));left:22px;right:22px;gap:12px}.journey-footer>button{font-size:8px;letter-spacing:.07em;gap:6px}.progress-track{max-width:42px}.quality-toggle{bottom:70px;left:16px;padding:10px}.chapter-counter{font-size:19px}.memory-copy{padding:22px}.memory-copy h2{font-size:32px}.memory-dialog{max-height:86dvh}.memory-dialog img{height:40dvh}.modal-nav{margin-top:15px}.rsvp-paper{padding:16px 18px 10px}.rsvp-paper fieldset label{font-size:11px}.paper-intro{font-size:14px}}@media(max-height:700px){.welcome-top{top:13%}.welcome-center{top:28%}.welcome-bottom{bottom:6%}.welcome-bottom>p{display:none}.memory-heading{top:11%}.memory-heading>p:not(.eyebrow){display:none}.memory-heading h2{font-size:23px}.tree-copy h2{font-size:26px}.intro{padding-bottom:20vh}}@media(prefers-reduced-motion:reduce){.intro p span{filter:none!important}.scroll-prompt svg{animation:none}}.rsvp-paper{width:min(320px,74vw);max-height:min(425px,60dvh)}.letter-close{width:44px;height:44px;display:grid;place-items:center;border:1px solid #a88b5d70;border-radius:50%;background:#fbf0dfed;color:#705339;box-shadow:0 2px 12px #51351c20;cursor:pointer;font:30px/1 Georgia,serif;transition:background .2s,transform .2s}.letter-close:hover{background:#fff9ee;transform:scale(1.05)}.letter-close:focus-visible{outline:2px solid #8b5c35;outline-offset:3px}.letter-close span{transform:translateY(-1px)}body[data-mode=closing] .scene-ui{display:none}.fallback-world{background:linear-gradient(180deg,transparent 42%,#59484b45 60%,#d1b99c 83%),url(../textures/sunset-sky.webp) center 42%/cover no-repeat}.fallback-farewell{position:fixed;top:20%;right:8%;bottom:17%;left:8%;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff3df;text-shadow:0 2px 24px #30263899}.fallback-farewell h2{font-size:clamp(38px,6vw,76px);font-style:italic}.fallback-farewell>p{font-size:24px;margin:16px 0 30px}.fallback-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,3vw,40px)}.fallback-countdown strong{display:block;font:clamp(28px,5vw,56px) var(--serif)}.fallback-countdown span{font-size:12px}
