*{box-sizing:border-box} :root{--ink:#21150f;--ivory:#f6eddd;--gold:#dbbb80;--muted:#c0ab92;--progress:0;--ring-opacity:.78;--ring-x:0px;--ring-y:0px;--ring-turn:-8deg;--ring-scale:1}html{background:var(--ink);scrollbar-width:none}::-webkit-scrollbar{display:none}body{margin:0;min-height:1000vh;background:var(--ink);color:var(--ivory);font-family:Outfit,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button,a{-webkit-tap-highlight-color:transparent}.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 30%,#503825 0%,#2c1d14 38%,#140d09 100%)}.glow{position:absolute;inset:-30%;background:radial-gradient(ellipse at 60% 35%,#ac7b3430,transparent 50%);animation:glow 18s ease-in-out infinite alternate}.grain{position:absolute;inset:0;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}.emblem{position:fixed;width:min(1050px,93vw);height:min(850px,85vh);left:50%;top:45%;transform:translate(calc(-50% + var(--ring-x)),calc(-50% + var(--ring-y))) rotate(var(--ring-turn)) scale(var(--ring-scale));opacity:var(--ring-opacity);pointer-events:none;will-change:transform,opacity;transition:opacity 1s}.rings{width:100%;height:100%;overflow:visible;animation:ring-breathe 12s ease-in-out infinite alternate}.ornament{position:fixed;pointer-events:none;width:140vw;height:100vw;left:-20vw;border:1px solid #cba66718;border-radius:50%}.top-arc{top:-94vw}.bottom-arc{bottom:-94vw}.header{position:fixed;z-index:20;left:0;right:0;top:0;padding:24px 5vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#21150fcc,transparent)}.brand{display:flex;align-items:center;gap:16px}.monogram{font-family:'Cormorant Garamond',Georgia,serif;font-size:30px;letter-spacing:-3px;color:var(--gold);width:58px;height:58px;border:1px solid #dbbb805c;border-radius:50%;display:flex;align-items:center;justify-content:center}.monogram span{font-style:italic;font-size:19px;margin:0 4px 0 2px}.brand-names{font-size:11px;letter-spacing:2px;text-transform:uppercase}.nav{display:flex;gap:25px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#e8d8bf}.nav a{padding:10px 0;transition:color .3s}.nav a:hover{color:#fff}.nav a[aria-current=step]{color:var(--gold)}.header-directions{border-bottom:1px solid #dbbb8077;padding:9px 0;font-size:11px;letter-spacing:2px;text-transform:uppercase}.header-directions span{margin-left:12px;color:var(--gold)}.stage{position:fixed;inset:110px 50px 110px;z-index:5;display:flex;align-items:center;justify-content:center}.scene{position:absolute;width:100%;max-width:860px;text-align:center;opacity:0;visibility:hidden;transform:translateY(-20px);transition:opacity .65s ease,transform .65s ease,visibility .65s;pointer-events:none}.scene.active{opacity:1;visibility:visible;transform:none;pointer-events:auto}.reveal{opacity:0;transform:translateY(25px);filter:blur(4px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),filter 1s ease;transition-delay:var(--delay,.1s)}.active .reveal{opacity:1;transform:none;filter:none}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:4px;line-height:1.8;font-weight:400;color:var(--gold);margin:0 0 28px}.hero .eyebrow{margin-bottom:32px}.hero-title{font-family:'Great Vibes',cursive;font-size:clamp(80px,9.5vw,145px);font-weight:400;line-height:1.1;margin:0;color:#fff1d3;text-shadow:0 3px 25px #140b06}.hero-title em{font-family:'Cormorant Garamond',Georgia,serif;font-size:.45em;font-weight:400;color:var(--gold);margin:0 24px;vertical-align:middle}.hero-date{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:32px}.hero-date span{font-size:11px;letter-spacing:3px;text-transform:uppercase}.hero-date b{font-family:'Cormorant Garamond',Georgia,serif;font-size:65px;line-height:1;font-weight:400;color:var(--gold);padding:0 24px;border-left:1px solid #dbbb8044;border-right:1px solid #dbbb8044}.venue-note{font-size:10px;text-transform:uppercase;letter-spacing:3px;color:var(--muted);margin-top:24px}.section-title{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:clamp(42px,5.5vw,75px);line-height:1.03;margin:0 0 28px}.section-title i{font-weight:400;color:var(--gold)}.hebrew{font-family:Heebo,Arial,sans-serif;font-weight:300}.blessing{font-size:17px;color:var(--gold);margin:0 0 20px}.verse{font-size:20px;line-height:1.85;color:#e1d0b4;margin:25px 0}.families{display:flex;align-items:center;justify-content:center;gap:45px;margin:30px 0}.families p{font-size:12px;line-height:1.8;letter-spacing:1px;margin:0;color:var(--muted)}.families strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:500;color:var(--ivory);letter-spacing:0}.flourish{font-family:'Great Vibes',cursive;color:var(--gold);font-size:40px}.body-copy{font-size:14px;font-weight:300;line-height:1.8;color:#deceb7;margin:22px 0}.date-composition{display:flex;flex-direction:column;align-items:center;gap:6px;margin:20px 0}.date-composition span{font-size:12px;letter-spacing:4px;text-transform:uppercase}.date-composition strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:150px;font-weight:400;line-height:1;color:var(--gold)}.couple-hebrew{font-size:24px;margin:24px 0 10px}.couple-hebrew span{font-family:'Cormorant Garamond',Georgia,serif;color:var(--gold);margin:0 15px}.venue-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(74px,9vw,120px);line-height:.85;margin:10px 0 25px;font-weight:400}.venue-title i{color:var(--gold);font-weight:400}.address{font-size:13px;line-height:1.9;font-weight:300;letter-spacing:2px;margin:24px 0 30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;padding:16px 28px;border-radius:50px;background:linear-gradient(110deg,#f1dfb7,#d5b77e);color:#322011;font-size:11px;letter-spacing:2px;text-transform:uppercase;min-height:48px;box-shadow:0 5px 28px #11090455}.button:hover{background:#f8e8c7}.button span{font-size:20px;line-height:1}.schedule .eyebrow{margin-bottom:15px}.schedule .section-title{margin-bottom:30px}.timeline{list-style:none;margin:0 auto;padding:0;max-width:480px;text-align:left}.timeline li{display:flex;align-items:center;gap:36px;position:relative;padding:16px 0}.timeline li:after{content:'';position:absolute;left:114px;top:0;bottom:0;width:1px;background:#d6b87b30}.timeline li:before{content:'';position:absolute;left:111px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--gold);z-index:1}.timeline time{width:92px;flex-shrink:0;font-family:'Cormorant Garamond',Georgia,serif;font-size:36px;color:var(--gold);text-align:right;white-space:nowrap}.timeline time small{font-family:Outfit,Arial,sans-serif;font-size:9px;display:block;letter-spacing:2px;line-height:1.1;margin-top:3px}.timeline li div{display:flex;flex-direction:column;gap:5px}.timeline strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:23px;font-weight:500}.timeline .hebrew{font-size:15px;color:var(--muted);text-align:left}.after{width:92px;flex-shrink:0;text-align:right;font-size:10px;line-height:1.5;letter-spacing:1px;color:var(--muted)}.quote{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(52px,6vw,82px);font-weight:400;line-height:.99;margin:0 0 32px}.quote i{color:var(--gold)}.calendar-alt{font-size:11px;color:var(--muted);margin-top:24px}.calendar-alt a{border-bottom:1px solid #baa28266;padding-bottom:5px}.signatures{display:flex;justify-content:center;gap:50px;margin:35px auto}.signatures p{font-family:Heebo,Arial,sans-serif;color:var(--gold);font-weight:300;font-size:12px}.signatures strong{font-size:17px}.closing-names{font-family:'Great Vibes',cursive;font-size:49px;color:var(--gold);margin:30px 0 0}.scroll-hint{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:8px;z-index:10;transition:opacity .6s;pointer-events:none}.scroll-hint span{font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}.scroll-hint b{font-size:22px;color:var(--gold);font-weight:300;animation:hint 2s ease-in-out infinite}.scroll-hint.hidden{opacity:0}.footer{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;background:linear-gradient(transparent,#21150fcc)}.footer-family{font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;letter-spacing:2px}.footer-family i{color:var(--gold);padding:0 7px}.footer-detail{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.footer-detail b{font-weight:300;margin:0 12px;color:var(--gold)}.scene-number{font-size:10px;letter-spacing:3px;color:var(--gold);font-variant-numeric:tabular-nums}.scene-dots{position:fixed;z-index:25;right:19px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px}.scene-dots a{display:flex;width:30px;height:28px;align-items:center;justify-content:center}.scene-dots span{width:5px;height:5px;background:#a38b6a7a;border-radius:50%;transition:all .4s}.scene-dots a[aria-current=step] span{width:9px;height:9px;background:var(--gold);box-shadow:0 0 0 5px #dbbb801a}.no-script{position:relative;padding:20px;text-align:center}.no-script a{text-decoration:underline}@keyframes ring-breathe{to{transform:translateY(-10px) rotate(3deg)}}@keyframes glow{to{transform:translate(-4%,8%) rotate(14deg)}}@keyframes hint{50%{transform:translateY(6px);opacity:.4}}
@media(max-width:1100px){.brand-names{display:none}.nav{gap:17px}.stage{inset:100px 60px 100px}.hero-title{font-size:clamp(80px,11vw,128px)}}
@media(max-width:640px){.header{padding:18px 22px}.monogram{width:44px;height:44px;font-size:25px}.nav{display:none}.header-directions{font-size:9px;letter-spacing:1.5px}.stage{inset:85px 27px 105px}.emblem{width:155vw;height:75vh;top:40%}.scene{max-width:100%}.hero-title{display:flex;flex-direction:column;align-items:center;font-size:95px;line-height:.98;gap:0}.hero-title em{font-size:38px;line-height:1;margin:9px 0}.hero .eyebrow{font-size:8px;letter-spacing:3px;margin-bottom:28px}.hero-date{gap:14px;margin-top:25px}.hero-date span{font-size:8px;letter-spacing:1.4px}.hero-date b{font-size:52px;padding:0 15px}.venue-note{font-size:8px;letter-spacing:2px}.eyebrow{font-size:8px;letter-spacing:2.5px;margin-bottom:22px}.section-title{font-size:43px;margin-bottom:24px}.verse{font-size:16px;line-height:1.9;margin:20px 0}.families{gap:18px;margin:25px 0}.families p{font-size:10px}.families strong{font-size:24px}.flourish{font-size:32px}.body-copy{font-size:12px}.date-composition strong{font-size:132px}.date-composition span{font-size:10px}.couple-hebrew{font-size:22px}.venue-title{font-size:95px}.address{font-size:11px;letter-spacing:1.5px}.button{padding:15px 24px;font-size:10px;gap:26px}.timeline{max-width:300px}.timeline li{gap:30px;padding:15px 0}.timeline time{width:68px;font-size:31px}.timeline li:after{left:83px}.timeline li:before{left:80px}.timeline strong{font-size:19px}.timeline .hebrew{font-size:13px}.after{width:68px;font-size:8px}.schedule .section-title{font-size:40px;margin-bottom:22px}.quote{font-size:63px}.signatures{gap:22px;margin:25px auto}.signatures strong{font-size:13px}.signatures p{font-size:11px}.closing .section-title{font-size:37px}.closing-names{font-size:41px;margin-top:25px}.footer{padding:18px 24px 20px;display:grid;grid-template-columns:1fr auto;row-gap:7px}.footer-family{font-size:15px;letter-spacing:1px}.footer-detail{grid-row:2;grid-column:1 / -1;font-size:8px;letter-spacing:1.3px}.footer-detail b{margin:0 7px}.scene-number{grid-column:2;grid-row:1;font-size:8px}.scene-dots{right:1px;gap:0}.scene-dots a{width:23px;height:25px}.scene-dots span{width:4px;height:4px}.scene-dots a[aria-current=step] span{width:6px;height:6px;box-shadow:0 0 0 4px #dbbb801a}.scroll-hint{bottom:101px}.scroll-hint span{font-size:7px}.ornament{width:200vw;height:140vw;left:-50vw}.top-arc{top:-125vw}.bottom-arc{bottom:-126vw}}
@media(max-width:380px){.hero-title{font-size:76px}.hero .eyebrow{margin-bottom:20px}.hero-date{margin-top:18px}.verse{font-size:14px;margin:16px 0}.section-title{font-size:38px;margin-bottom:18px}.families{margin:18px 0}.quote{font-size:51px}.timeline li{padding:10px 0}.date-composition strong{font-size:104px}.venue-title{font-size:83px}.signatures{margin:18px 0}.closing-names{margin-top:20px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}.reveal{filter:none}.emblem{will-change:auto}}

/* One continuous invitation in the natural document flow. */
html{scrollbar-width:none;scroll-behavior:smooth;scroll-padding-top:120px}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
body{min-height:100vh}.stage{position:relative;inset:auto;display:block;padding:0 70px;z-index:5}
.scene,.scene.active{position:relative;max-width:860px;margin:0 auto;padding:90px 0;width:100%;opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:none;scroll-margin-top:30px}
.scene.hero{min-height:92svh;display:flex;flex-direction:column;justify-content:center;padding-top:145px;padding-bottom:80px}
.scene.closing{padding-bottom:100px}.emblem{opacity:.14;top:45%;transition:none}
.reveal,.active .reveal{opacity:1;transform:none;filter:none}
.footer{position:relative;background:none;z-index:5;padding-top:30px;padding-bottom:35px;justify-content:center;gap:45px}
.scroll-hint{position:absolute;top:calc(92svh - 42px);bottom:auto;gap:10px}.scroll-hint b{height:25px;width:1px;background:linear-gradient(var(--gold),transparent);animation:hint 2s ease-in-out infinite}
.scroll-rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);height:240px;width:32px;z-index:25;display:flex;flex-direction:column;justify-content:space-between}
.rail-line{position:absolute;width:1px;top:0;bottom:0;right:15px;background:#dbbb8038;pointer-events:none}
.rail-progress{display:block;width:1px;height:calc(var(--progress) * 100%);background:var(--gold)}
.scroll-rail a{position:relative;display:block;height:30px;width:32px;flex:1}
.scroll-rail a span{position:absolute;right:34px;top:50%;transform:translateY(-50%);font-size:9px;letter-spacing:1px;white-space:nowrap;opacity:0;transition:opacity .25s;color:var(--gold)}
.scroll-rail a:hover span,.scroll-rail a:focus-visible span{opacity:1}
.scroll-rail a[aria-current=location]:after{content:'';position:absolute;right:13px;top:50%;height:18px;width:5px;background:var(--gold);transform:translateY(-50%);border-radius:3px}
.nav a[aria-current=location]{color:var(--gold)}
@media(max-width:1100px){.stage{inset:auto;padding:0 60px}}
@media(max-width:640px){html{scroll-padding-top:90px}.stage{inset:auto;padding:0 32px}.scene,.scene.active{padding:65px 0;max-width:100%;scroll-margin-top:15px}.scene.hero{min-height:90svh;padding-top:110px;padding-bottom:75px}.scene.closing{padding-bottom:65px}.emblem{width:150vw;height:70vh;top:40%}.scroll-rail{right:6px;width:18px;height:190px}.rail-line{right:8px}.scroll-rail a{width:18px}.scroll-rail a[aria-current=location]:after{right:6px;width:5px;height:15px}.scroll-rail a span{display:none}.scroll-hint{top:calc(90svh - 36px);bottom:auto}.footer{display:flex;flex-direction:column;gap:10px;padding:22px 30px 30px}.signatures{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .scene:not(.in-view) .reveal{opacity:1;transform:none}}

/* Stable rings and a single continuously moving scroll indicator. */
.emblem{width:min(1050px,110vw);height:auto;aspect-ratio:9/7;top:48%;transform:translate(-50%,-50%);opacity:.12;will-change:auto}
.rings{display:block;width:100%;height:100%;overflow:hidden;animation:none}
.scroll-rail{display:block;pointer-events:none;width:18px;height:240px;right:22px}
.rail-line{right:8px}.rail-progress{height:calc(var(--progress) * 100%)}
.rail-thumb{position:absolute;right:6px;top:calc(var(--progress) * (100% - 24px));width:5px;height:24px;border-radius:4px;background:var(--gold);box-shadow:0 0 12px #dbbb8030}
.scene,.scene.active{padding:58px 0}.scene.hero{min-height:86svh}.scene.closing{padding-bottom:75px}
.scroll-hint{top:calc(86svh - 42px)}
@media(max-width:640px){.emblem{width:145vw;height:auto;top:45%}.scroll-rail{right:6px;height:190px}.scene,.scene.active{padding:42px 0}.scene.hero{min-height:86svh;padding-top:110px;padding-bottom:75px}.scene.closing{padding-bottom:55px}.scroll-hint{top:calc(86svh - 36px)}}

/* Photographic gold bands, satin, and layered ambient light. */
.hero-art{position:absolute;inset:0 0 auto;height:max(1060px,115svh);overflow:hidden;pointer-events:none;mask-image:linear-gradient(#000 0%,#000 73%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0%,#000 73%,transparent 100%)}
.hero-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center;animation:satin-drift 24s ease-in-out infinite alternate;transform-origin:50% 65%}
.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(#21150f20,transparent 40%,#21150f10 65%,#21150f80)}
.scene.hero{min-height:max(1040px,112svh);justify-content:flex-start;padding-top:140px;padding-bottom:80px}
.hero-title{display:flex;flex-direction:column;align-items:center;font-size:100px;line-height:1;gap:0}.hero-title em{font-size:35px;margin:12px 0}
.hero-date{margin-top:350px}.hero .eyebrow{margin-bottom:20px}.hero-title{text-shadow:0 3px 25px #140b0680}
.scroll-hint{top:max(990px,106svh)}
.light-veil{position:fixed;inset:-15%;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 20% 75%,#c7953b15,transparent 40%),radial-gradient(ellipse at 85% 30%,#e0b86b12,transparent 35%);animation:ambient-flow 22s ease-in-out infinite alternate}
.light-veil:before,.light-veil:after{content:'';position:absolute;inset:0;background:linear-gradient(112deg,transparent 30%,#f4d59706 45%,#f4d59712 49%,transparent 58%);transform:translateX(-25%);animation:light-sweep 28s ease-in-out infinite alternate}
.light-veil:after{animation-delay:-14s;opacity:.5;transform:rotate(30deg)}
.gold-dust{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.gold-dust i{position:absolute;left:var(--x);bottom:-20px;width:var(--size);height:var(--size);border-radius:50%;background:#f0ce88;box-shadow:0 0 12px #e4b66c80;opacity:0;animation:dust-rise var(--duration) linear var(--wait) infinite}
.gold-dust i:nth-child(3n){filter:blur(2px)}
@keyframes satin-drift{from{transform:scale(1)}to{transform:scale(1.035) translateY(-8px)}}
@keyframes ambient-flow{to{transform:translate(3%,-3%) scale(1.07);opacity:.55}}
@keyframes light-sweep{to{transform:translateX(25%) rotate(8deg);opacity:.3}}
@keyframes dust-rise{0%{transform:translate(0,0);opacity:0}15%{opacity:.35}75%{opacity:.22}100%{transform:translate(var(--sway),-110vh);opacity:0}}
@media(max-width:640px){.hero-art img{object-fit:cover}.scene.hero{padding-top:120px;min-height:max(1040px,112svh)}.hero-title{font-size:91px}.hero-title em{font-size:32px}.hero-date{margin-top:360px}.gold-dust i:nth-child(n+17){display:none}.hero-date span{font-size:8px}.scroll-hint{top:max(990px,106svh)}}
@media(prefers-reduced-motion:reduce){.hero-art img,.light-veil,.light-veil:before,.light-veil:after,.gold-dust i{animation:none!important}.gold-dust i{display:none}}

/* Keep the rings with the reader throughout the continuous invitation. */
body{isolation:isolate}
.ambient{z-index:-3}
.hero-art{position:fixed;inset:0;height:100%;z-index:-2;mask-image:none;-webkit-mask-image:none;opacity:var(--art-opacity,1)}
.hero-art img{object-fit:cover;object-position:center 62%}
.hero-art:after{background:linear-gradient(#21150f55,transparent 42%,#21150f33 70%,#21150f88)}
.light-veil,.gold-dust,.ornament{z-index:-1}
.scene.hero{min-height:100svh;padding-top:140px;padding-bottom:85px}
.hero-date{margin-top:auto;padding-top:280px}
.scroll-hint{top:calc(100svh - 42px)}
@media(max-width:640px){.scene.hero{min-height:100svh;padding-top:115px;padding-bottom:75px}.hero-title{font-size:clamp(64px,12svh,91px)}.hero-date{padding-top:180px;margin-top:auto}.hero-art img{object-position:center 62%}.scroll-hint{top:calc(100svh - 36px)}}
@media(max-width:380px){.hero-date{padding-top:100px}.scene.hero{padding-top:100px}.hero-title{font-size:72px}}

/* Center the schedule as a complete block and contain long event names. */
.timeline{width:100%;max-width:480px;margin-inline:auto}
.timeline li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px}
.timeline li:after{left:calc(50% - .5px)}
.timeline li:before{left:calc(50% - 3.5px)}
.timeline time,.timeline .after{width:auto;justify-self:end}
.timeline li div{min-width:0}
.timeline strong{line-height:1.2;text-wrap:balance}
@media(max-width:640px){
  .timeline{width:100%;max-width:340px}
  .timeline li{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
  .timeline li:last-child strong{max-width:100%}
}

/* Mobile browser chrome must never change the invitation's composition. */
.hero-art{inset:0 0 auto;height:100lvh;min-height:100svh;transform:translateZ(0);backface-visibility:hidden}
.hero-art img{animation:satin-drift 24s ease-in-out infinite alternate;will-change:transform}
@keyframes dust-rise{0%{transform:translate(0,0);opacity:0}15%{opacity:.35}75%{opacity:.22}100%{transform:translate(var(--sway),-110lvh);opacity:0}}
@media(max-width:640px){
  .scene.hero{min-height:100svh;padding-top:115px;padding-bottom:75px}
  .hero-title{font-size:clamp(64px,22vw,91px);line-height:1}
  .hero-title em{font-size:32px;line-height:1;margin:12px 0}
  .hero-date{padding-top:180px;margin-top:auto}
  .hero .eyebrow{margin-bottom:20px}
  .scroll-hint{top:calc(100svh - 36px)}
  .light-veil{height:130lvh;bottom:auto}
  .gold-dust{height:100lvh;bottom:auto}
}
@media(prefers-reduced-motion:reduce){.hero-art img{animation:none!important;will-change:auto}}

/* Keep background motion light on mobile and pause it in hidden tabs. */
.page-paused *,.page-paused *:before,.page-paused *:after{animation-play-state:paused!important}
@media(max-width:640px){.grain{display:none}.gold-dust i:nth-child(n+13){display:none}.gold-dust i{filter:none;box-shadow:none}.light-veil:after{display:none}}
