/* Persistent full-viewport scenes blend according to actual scroll position. */
.has-story-backdrop{position:relative;isolation:isolate}
.story-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:#f7f3e8}
.backdrop-scene{position:absolute;inset:0;overflow:hidden;background:var(--scene-color);color:var(--scene-ink,#6f8655);opacity:0}
.backdrop-scene::after{content:'';position:absolute;inset:0;opacity:.25;pointer-events:none;mask-image:linear-gradient(90deg,#000,transparent 30%,transparent 70%,#000)}
.backdrop-canopy{--scene-color:#f7f3e8;background:radial-gradient(ellipse at 100% 15%,#dce5c9 0,transparent 55%),radial-gradient(ellipse at 0 100%,#eee0c4 0,transparent 50%),#f7f3e8}
.backdrop-sunshine{--scene-color:#f1e5d2;--scene-ink:#a98752;background:radial-gradient(ellipse at 15% 15%,#fff8e9 0,transparent 65%),#f1e5d2}
.backdrop-sunshine::after{background:radial-gradient(circle,#b8956529 2px,transparent 3px) 0 0/40px 40px}
.backdrop-scrapbook{--scene-color:#e9dcc6;--scene-ink:#987e53;background:radial-gradient(ellipse at 60% 45%,#f8f0e2 0,transparent 70%),#e9dcc6}
.backdrop-scrapbook::after{background:repeating-linear-gradient(-35deg,transparent 0 20px,#b1997140 21px,transparent 22px 42px)}
.backdrop-clearing{--scene-color:#e1e9d7;--scene-ink:#758d60;background:radial-gradient(ellipse at 20% 45%,#f5f6e8 0,transparent 65%),#dce7d2}
.backdrop-trail{--scene-color:#f2e7cb;--scene-ink:#a4874e;background:radial-gradient(ellipse at 75% 40%,#fff8e8 0,transparent 65%),#eee0bd}
.backdrop-trail::after{background:radial-gradient(ellipse,#ac97533b 2px,transparent 3px) 0 0/34px 52px}
.backdrop-sage{--scene-color:#d9e3ce;--scene-ink:#6b8355;background:radial-gradient(ellipse at 50% 30%,#f1f3e4 0,transparent 65%),#cfddc2}
.backdrop-sage::after{background:repeating-linear-gradient(90deg,transparent 0 28px,#7b946021 29px,transparent 30px 60px)}
.backdrop-friends{--scene-color:#e8e8cc;--scene-ink:#8b9759;background:radial-gradient(ellipse at 25% 40%,#f8f6e5 0,transparent 60%),#dce4c3}
.backdrop-friends::after{background:radial-gradient(circle,#849b5930 5px,transparent 6px) 0 0/80px 80px}
.backdrop-forest{--scene-color:#dfe7cd;--scene-ink:#658454;background:radial-gradient(ellipse at 50% 0,#f3f3df 0,transparent 65%),#dfe7cd}
.backdrop-motif{position:absolute;width:clamp(155px,23vw,380px);height:65vh;max-height:650px;opacity:.12;translate:0 var(--scene-drift,0px);transform-origin:center}
.motif-left{left:-7vw;bottom:-10vh;rotate:24deg}
.motif-right{right:-7vw;top:-15vh;rotate:-145deg}
.backdrop-sunshine .motif-left{left:-4vw;rotate:-32deg;bottom:0}
.backdrop-scrapbook .backdrop-motif{width:150px;height:170px;opacity:.07;rotate:-24deg}
.backdrop-scrapbook .motif-left{left:2vw;bottom:7vh}
.backdrop-scrapbook .motif-right{right:1vw;top:12vh;rotate:24deg}
.backdrop-trail .backdrop-motif,.backdrop-friends .backdrop-motif{width:140px;height:150px;opacity:.09}
.backdrop-trail .motif-left{left:1vw;bottom:12vh;rotate:-20deg}
.backdrop-trail .motif-right{right:1vw;top:7vh;rotate:25deg}
.backdrop-friends .motif-left{left:3vw;bottom:6vh;rotate:25deg}
.backdrop-friends .motif-right{right:0;top:8vh;rotate:-25deg}
.story-chapter{position:relative;isolation:isolate}
.has-story-backdrop main>section:not(.rsvp-section){background:transparent;border-color:transparent}
.has-story-backdrop .adventure-band{background:#dce3cc99;border-color:#a8b48a55}
.has-story-backdrop .rsvp-section{background:linear-gradient(180deg,transparent 0,#304e3c 130px);padding-top:155px}
.has-story-backdrop .rsvp-section::before{display:none}
.hero-copy{animation:none}
#top:focus{outline:none}
[tabindex="-1"]:focus{outline:none}
#our-story,#little-moments,#celebration,#the-adventure,#dress-code,#animal-friends{scroll-margin-top:12px}
#rsvp{scroll-margin-top:0}
.story-reveal{transition:opacity .7s ease var(--entry-delay,0ms),translate .7s cubic-bezier(.18,.7,.25,1) var(--entry-delay,0ms)}
.story-reveal.story-pending{opacity:0;translate:0 18px}
.story-reveal:focus-within{opacity:1;translate:none;transition:none}
.footer-actions{display:flex;align-items:center;justify-content:center;gap:24px;flex-basis:100%;padding-top:10px}
.page-controls{position:fixed;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:10;display:flex;align-items:center;justify-content:flex-end;gap:7px;pointer-events:none}
.page-controls>*{pointer-events:auto}
.page-controls .music-toggle{margin-right:auto}
.page-controls .motion-toggle{position:static}
.back-to-top{display:grid;place-items:center;width:36px;height:36px;border:1px solid #9fab8b;border-radius:50%;background:#f7f3e8f2;color:var(--forest);text-decoration:none;backdrop-filter:blur(6px);transition:background .2s}
.back-to-top:hover{background:#e6ecd9}
.back-to-top svg{width:15px;height:15px}

@media(max-width:760px){
  .backdrop-motif{width:165px;height:340px;opacity:.1}
  .motif-left{left:-80px;bottom:-35px}.motif-right{right:-85px;top:-65px}
  .backdrop-scrapbook .backdrop-motif,.backdrop-trail .backdrop-motif,.backdrop-friends .backdrop-motif{width:85px;height:100px;opacity:.06}
  .footer-actions{flex-wrap:wrap;gap:14px 23px;padding-top:2px}
  .page-controls{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}.back-to-top{width:34px;height:34px}
}
html[data-motion="off"] .story-reveal.story-pending{opacity:1;translate:none}
html[data-motion="off"] .backdrop-motif{translate:none}
@media(prefers-reduced-motion:reduce){.story-reveal.story-pending{opacity:1;translate:none}.backdrop-motif{translate:none}}
@media print{.story-backdrop,.footer-actions,.page-controls{display:none!important}.story-reveal.story-pending{opacity:1;translate:none}.has-story-backdrop .rsvp-section{background:white;padding-top:20px}}
