*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6eddd;color:#65472b;font-family:'Lato',sans-serif}.prototype-nav{height:64px;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;gap:16px;background:#fbf7ef;border-bottom:1px solid #d8c5a3;font-size:12px;position:relative;z-index:20}.prototype-nav a{color:inherit;text-decoration:none}.prototype-nav b{font-weight:600}.prototype-nav button,.text-button{border:1px solid #dac7aa;border-radius:8px;color:#65472b;background:transparent;padding:9px 12px;cursor:pointer;font:inherit}.signature-stage{height:calc(100svh - 64px);min-height:610px;position:relative;overflow:hidden;isolation:isolate;perspective:1200px;--mx:0;--my:0}.depth-scene{position:absolute;inset:0;z-index:-3}.scene-background{position:absolute;inset:-4%;background:url('/static/assets/premium/eden-scene-poster-v2.webp') center 57%/cover;filter:saturate(.86)}.sunlight{position:absolute;inset:-10%;background:radial-gradient(ellipse at 55% 20%,#fff8d970,transparent 60%);mix-blend-mode:screen;animation:sun-breathe 8s ease-in-out infinite alternate}.depth-layer{transform:translate3d(calc(var(--mx)*var(--depth,0)*1px),calc(var(--my)*var(--depth,0)*1px),0);transition:transform .65s cubic-bezier(.2,.7,.2,1)}.flower-layer{position:absolute;pointer-events:none;width:clamp(160px,24vw,370px);height:80%;bottom:-18%;z-index:3}.flower-layer img{width:100%;height:100%;object-fit:contain;animation:garden-sway 7s ease-in-out infinite alternate;transform-origin:45% 92%;filter:drop-shadow(0 10px 14px #39220e35)}.flowers-back{left:-6%;z-index:-1;bottom:-7%;height:66%;opacity:.95}.flowers-front{right:-5%;bottom:-18%;height:78%;scale:-1 1}.flowers-front img{animation-delay:-3.5s}.invitation-position{position:absolute;inset:0;display:grid;place-items:center;padding:30px 24px;z-index:1}.invitation-card{position:relative;text-align:center;width:min(410px,100%);padding:35px 30px 22px;border-radius:180px 180px 18px 18px;background:linear-gradient(145deg,#fffbeeef,#f7edd6ed);box-shadow:0 25px 55px #4c2c1740,0 3px 0 #d1ba8b,0 8px 0 #aa885541,inset 0 0 45px #fffefa;backdrop-filter:blur(5px);animation:card-arrive 1.8s .5s both;transform-origin:center}.eyebrow{font-size:9px;letter-spacing:3px;font-weight:600;line-height:1.8}.monogram{font:60px/1.25 'Great Vibes',cursive;margin:12px 0;color:#967243}.monogram span{font:italic 23px 'Cormorant Garamond',serif;margin:0 8px}.small-rule{width:40px;height:1px;background:#b69b6b;margin:18px auto 22px}h1{font:43px/1.2 'Cormorant Garamond',serif;font-weight:500;margin:16px 0}h1 em{font-style:italic;font-size:30px}.date{font-size:11px;letter-spacing:2px;margin:20px 0}.guest{padding:14px;margin:22px 0;background:#ffffff70;border-radius:9px}.guest small{font-size:10px;display:block;margin-bottom:8px}.guest strong{font-size:13px;font-weight:600}.open-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#79572f;color:#fff8e9;border:0;min-height:46px;width:100%;max-width:250px;border-radius:30px;font:600 12px 'Lato',sans-serif;box-shadow:0 6px 14px #65472b26;cursor:pointer}.open-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.footer-caption{font:italic 13px 'Cormorant Garamond',serif;margin:17px 0 0;opacity:.75}.gate{position:absolute;inset:0;pointer-events:none;z-index:8;animation:gate-disappear 3.6s both}.gate-door{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(90deg,#3e271b,#6c452a 45%,#352319);border:8px solid #5c3c27;box-shadow:inset 0 0 0 2px #ac8550,inset 0 0 50px #120b08;transform-origin:left center}.gate-left{left:0;animation:gate-open-left 3.6s cubic-bezier(.35,0,.15,1) both}.gate-right{right:0;transform-origin:right center;animation:gate-open-right 3.6s cubic-bezier(.35,0,.15,1) both}.gate-carving{position:absolute;inset:7% 9%;border:1px solid #ac855080;border-radius:140px 140px 8px 8px;background:repeating-radial-gradient(ellipse at 50% 0,#b08a5130 0 1px,transparent 2px 32px);box-shadow:inset 0 0 0 8px #3b271522}.gate-seal{position:absolute;top:50%;left:50%;translate:-50% -50%;width:115px;height:115px;display:grid;place-content:center;white-space:nowrap;background:radial-gradient(circle,#d6bd81,#8c683c);color:#3e2b18;border:1px solid #e0c995;border-radius:50%;font:36px 'Great Vibes',cursive;box-shadow:0 4px 26px #0007;animation:seal-fade 3.6s both}.gate-seal i{font:italic 15px 'Cormorant Garamond',serif}.gold-dust{position:absolute;inset:0;overflow:hidden}.gold-dust i{position:absolute;left:calc(6% + var(--n)*8%);top:calc(12% + var(--n)*6%);width:3px;height:3px;border-radius:50%;background:#fff0be;box-shadow:0 0 9px 2px #e9c87266;animation:dust-drift 7s ease-in-out infinite;animation-delay:calc(var(--n)*-.8s)}.scroll-cue{position:absolute;bottom:15px;left:50%;translate:-50%;text-decoration:none;color:#674a2a;border:1px solid #b99e6a;background:#fff9e6c9;border-radius:30px;width:28px;height:36px;display:grid;place-items:center;z-index:4}.story-section{max-width:850px;margin:auto;padding:85px 24px;text-align:center}.story-section h2{font:48px 'Great Vibes',cursive;margin:18px 0}.story-section>p:not(.eyebrow){max-width:440px;margin:20px auto;line-height:1.8;font-size:14px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:40px auto;max-width:620px}.event-grid article{padding:28px 20px;background:#fffaf0;border-radius:100px 100px 12px 12px;border:1px solid #dac7aa}.event-grid h3{font:24px 'Cormorant Garamond',serif}.event-grid p{font-size:12px}.prototype-note{opacity:.65}.text-button{font-size:12px}button:focus-visible,a:focus-visible{outline:3px solid #987047;outline-offset:4px}@keyframes garden-sway{from{rotate:-4deg;translate:0 0}to{rotate:4deg;translate:0 -9px}}@keyframes sun-breathe{from{opacity:.55}to{opacity:1}}@keyframes dust-drift{0%,100%{translate:0 0;opacity:.2}50%{translate:12px -24px;opacity:.9}}@keyframes gate-open-left{0%,20%{transform:translateX(0) rotateY(0)}100%{transform:translateX(-105%) rotateY(-42deg)}}@keyframes gate-open-right{0%,20%{transform:translateX(0) rotateY(0)}100%{transform:translateX(105%) rotateY(42deg)}}@keyframes gate-disappear{0%,98%{visibility:visible}100%{visibility:hidden}}@keyframes seal-fade{0%,18%{opacity:1;scale:1}38%,100%{opacity:0;scale:.85}}@keyframes card-arrive{from{opacity:0;transform:translateY(35px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.replaying .gate,.replaying .gate-door,.replaying .gate-seal,.replaying .invitation-card{animation:none!important}@media(min-width:1000px){.scene-background{background-size:auto 130%;background-color:#eaddc2}.flower-layer{width:350px}.flowers-back{left:calc(50% - 470px)}.flowers-front{right:calc(50% - 460px)}}@media(max-width:600px){.prototype-nav{height:70px;padding:8px 12px;font-size:10px;gap:9px}.prototype-nav>span{max-width:80px;text-align:center}.prototype-nav button{max-width:110px;padding:8px}.signature-stage{height:calc(100svh - 70px);min-height:570px}.invitation-position{padding:28px 30px 45px}.invitation-card{padding:26px 22px 18px}.monogram{font-size:48px;margin:8px 0}.small-rule{margin:12px auto 16px}h1{font-size:35px}.guest{margin:18px 0}.flowers-back{left:-20%;height:64%;width:210px}.flowers-front{right:-22%;height:63%;width:220px}.event-grid{grid-template-columns:1fr}.footer-caption{font-size:12px}}@media(max-height:740px){.invitation-card{padding-top:20px;padding-bottom:15px}.monogram{font-size:40px;margin:6px 0}.small-rule{margin:10px auto}.guest{margin:14px 0;padding:10px}.date{margin:14px 0}h1{font-size:33px;margin:12px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gate{display:none}.depth-layer{transform:none!important;transition:none}.flower-layer img,.sunlight,.gold-dust i,.invitation-card{animation:none!important}}

/* Global conservatory palette; no regional ornaments. */
body{background:#edf1e9;color:#385649}.prototype-nav{background:#f6f8f1;border-color:#d0d8c8}.prototype-nav a,.prototype-nav button,.text-button{color:#385649}.scene-background{filter:saturate(.85)}.invitation-card{background:linear-gradient(145deg,#fffff4ed,#eaf0e2ed);box-shadow:0 25px 55px #243e2d35,0 3px 0 #bbc8a9,0 8px 0 #798a6441,inset 0 0 45px #fffefa}.monogram{color:#607d61}.open-button{background:#355744}.gate-door{background:linear-gradient(90deg,#193d32e8,#41634ee8 45%,#17372ce8);border-color:#31513d;backdrop-filter:blur(14px)}.gate-carving{border-color:#c1caa080;background:repeating-radial-gradient(ellipse at 50% 0,#e0dfa830 0 1px,transparent 2px 32px);box-shadow:inset 0 0 0 8px #a8b79310}.gate-seal{background:radial-gradient(circle,#f0e8bd,#b7bd90);color:#31513d}.flowers-front img{rotate:-16deg}.flowers-back img{rotate:10deg}.event-grid article{background:#f9fbf3;border-color:#d0d8c8}@media(min-width:1000px){.scene-background{background-color:#dae2cf}}
.scene-background{background-repeat:no-repeat}@media(min-width:1000px){.scene-background{background-size:cover}}

/* Scroll-driven camera journey: separate scene planes, no timed gate overlay. */
.prototype-nav{position:sticky;top:0;z-index:30}.parallax-journey{height:340svh;position:relative}.signature-stage{position:sticky;top:64px;height:calc(100svh - 64px);min-height:0;--p:0}.depth-layer{transition:none;transform:none}.scene-background{inset:-7%;background-image:url('/static/assets/signature/elysian-garden-v1/background.webp');background-position:center 72%;background-size:cover;background-repeat:no-repeat;transform:scale(var(--bg-scale,1.04)) translateY(var(--bg-y,0px));transform-origin:50% 74%;will-change:transform}.depth-scene{z-index:-3}.parallax-arch{position:absolute;z-index:0;pointer-events:none;width:min(95vw,710px);height:105%;object-fit:fill;left:50%;top:48%;transform:translate(-50%,-50%) scale(var(--arch-scale,1));opacity:var(--arch-opacity,1);transform-origin:50% 65%;will-change:transform,opacity}.invitation-position{z-index:3;opacity:var(--card-opacity,1);transform:translateY(var(--card-y,0px)) scale(var(--card-scale,1));pointer-events:var(--card-events,auto);will-change:transform,opacity}.invitation-card{animation:none;width:min(360px,100%);padding:26px 25px 18px;background:linear-gradient(145deg,#fffff1e8,#eff3e5e8)}.monogram{font-size:47px}.small-rule{margin:12px auto 18px}.flower-layer{z-index:4;scale:none;will-change:transform}.flowers-back{width:clamp(150px,27vw,380px);height:91%;left:-5%;bottom:-10%;transform:translate(var(--left-x,0px),var(--left-y,0px)) scale(var(--front-scale,1));transform-origin:0% 100%;opacity:var(--flower-opacity,1)}.flowers-front{width:clamp(160px,27vw,380px);height:95%;right:-5%;top:-8%;bottom:auto;transform:translate(var(--right-x,0px),var(--right-y,0px)) scale(var(--front-scale,1));transform-origin:100% 0%;opacity:var(--flower-opacity,1)}.flower-layer img{object-fit:contain;rotate:0;filter:drop-shadow(0 7px 9px #283d2120)}.flowers-back img,.flowers-front img{rotate:0}.journey-message{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px;pointer-events:none;opacity:var(--message-opacity,0);transform:translateY(var(--message-y,30px));color:#36563d;text-shadow:0 1px 15px #fff}.journey-message:before{content:'';position:absolute;inset:15% 10%;background:radial-gradient(ellipse,#fffdf2eb 0%,#fffdf1bb 42%,transparent 72%);z-index:-1}.journey-message h2{font:clamp(42px,6vw,76px)/1.2 'Great Vibes',cursive;margin:25px 0}.journey-message h2 em{font:italic 30px 'Cormorant Garamond',serif}.journey-message>p:last-child{font:22px/1.5 'Cormorant Garamond',serif}.journey-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#f5f2d650;z-index:8}.journey-progress span{display:block;background:#9caa73;height:100%;width:calc(var(--p)*100%)}.scroll-cue{opacity:var(--cue-opacity,1)}.story-section{position:relative;z-index:5;background:#edf1e9}.sunlight{z-index:1}.gold-dust{z-index:2}@media(min-width:1000px){.scene-background{background-size:cover}.flowers-back{left:calc(50% - 520px)}.flowers-front{right:calc(50% - 520px)}}@media(max-width:600px){.signature-stage{top:70px;height:calc(100svh - 70px);min-height:0}.invitation-position{padding:20px 40px 40px}.invitation-card{padding:24px 20px 16px}.parallax-arch{width:108vw;height:99%;top:49%}.flowers-back{left:-22%;height:75%;width:230px;bottom:-10%}.flowers-front{right:-25%;top:-10%;height:76%;width:240px}.monogram{font-size:43px}.guest{margin:15px 0}.journey-message>p:last-child{font-size:20px}}@media(max-height:680px){.invitation-card{padding:14px 19px}.monogram{font-size:34px}.eyebrow{font-size:8px}.date{margin:10px 0}.guest{margin:10px 0;padding:9px}.small-rule{margin:8px auto}h1{font-size:30px;margin:8px 0}.footer-caption{margin-top:10px}}@media(prefers-reduced-motion:reduce){.parallax-journey{height:auto}.signature-stage{position:relative;top:0;min-height:570px}.parallax-arch{transform:translate(-50%,-50%)!important}.journey-message{display:none}.journey-progress{display:none}}
.signature-stage .depth-scene{inset:-20%}.signature-stage .scene-background{inset:-7%}

/* Illustrated world: no invitation card, guest plaque or opening button. */
.invitation-position{display:block;text-align:center;padding:0;pointer-events:none;transform:translateY(var(--card-y,0px)) scale(var(--card-scale,1))}.scene-title{position:absolute;top:8%;left:8%;right:8%;z-index:2;color:#38583e;text-shadow:0 2px 14px #fffdf0}.scene-title:before{content:'';position:absolute;inset:-30px;background:radial-gradient(ellipse,#fffef4d9,transparent 72%);z-index:-1}.scene-title h1{font:clamp(40px,6vw,64px)/1.2 'Great Vibes',cursive;margin:16px 0}.scene-couple{position:absolute;left:50%;bottom:9%;translate:-50%;width:min(54vw,420px);height:57%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 15px 13px #233c2330)}.scene-caption{position:absolute;bottom:5%;left:0;right:0;font-size:10px;letter-spacing:1.5px;color:#35513c;text-shadow:0 1px 8px #fff}.parallax-arch{opacity:calc(var(--arch-opacity,1)*.6);width:min(115vw,870px);height:115%;top:47%}.scroll-cue{width:40px;height:40px;border:0;background:#fffdf1a8;bottom:12px;box-shadow:0 2px 12px #243f2220;pointer-events:auto}.scroll-cue svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5}.journey-message h2{font-size:clamp(44px,7vw,76px)}@media(max-width:600px){.scene-title{top:9%;left:10%;right:10%}.scene-title h1{font-size:43px}.scene-couple{width:85%;height:54%;bottom:12%}.scene-caption{bottom:9%;font-size:9px}.parallax-arch{width:130vw;height:100%;top:51%}.flowers-back{left:-25%;height:62%}.flowers-front{right:-28%;height:58%}}@media(max-height:680px){.scene-title{top:6%}.scene-title h1{font-size:35px}.scene-couple{height:49%;bottom:14%}.scene-caption{bottom:10%}}

/* Quieter background, richer foreground, lateral camera choreography. */
.prototype-nav{height:96px;flex-wrap:wrap;padding-bottom:38px}.theme-switch{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:20px;font-size:11px}.theme-switch a[aria-current]{font-weight:700;border-bottom:1px solid currentColor}.signature-stage{top:96px;height:calc(100svh - 96px);background:linear-gradient(#fbf8ee,#edf0df)}.scene-background{opacity:.24;filter:saturate(.6);transform:translateX(var(--bg-x,0px)) scale(1.12)}.parallax-arch{display:none}.scene-couple{bottom:12%;height:52%}.scene-title{top:10%}.invitation-position{transform:translateX(var(--couple-x,0px)) translateY(var(--card-y,0px));opacity:var(--card-opacity,1)}.journey-message{transform:translateX(var(--message-x,100vw));opacity:var(--message-opacity,0)}.journey-message:before{background:radial-gradient(ellipse,#fffdf0cf,transparent 70%)}.botanical-planes{position:absolute;inset:0;pointer-events:none;z-index:3}.plane{position:absolute;object-fit:contain;width:clamp(170px,27vw,350px);height:50%;will-change:transform;filter:drop-shadow(0 5px 9px #34532c12)}.plane-0{left:8%;bottom:-13%;transform:translateX(var(--plane-near-x,0px)) rotate(-20deg)}.plane-1{right:-8%;bottom:-9%;transform:translateX(var(--plane-middle-x,0px)) rotate(22deg);opacity:.85}.plane-2{right:5%;top:-22%;height:45%;transform:translateX(var(--plane-far-x,0px)) rotate(160deg);opacity:.65}.plane-3{left:-13%;top:25%;width:210px;transform:translateX(var(--plane-middle-x,0px)) rotate(17deg);opacity:.8}.flowers-back{transform:translateX(var(--plane-near-x,0px));height:68%}.flowers-front{transform:translateX(var(--plane-far-x,0px));height:58%}.cloud-planes{position:absolute;inset:0;pointer-events:none;z-index:1}.cloud-planes i{position:absolute;width:160px;height:60px;background:#fffaf4;border-radius:50%;box-shadow:35px -17px 0 0 #fffaf4,-27px 6px 0 0 #fffaf4;opacity:.6;transform:translateX(var(--plane-far-x,0px))}.cloud-planes i:nth-child(1){left:7%;top:29%}.cloud-planes i:nth-child(2){right:-5%;top:47%;scale:.6}.cloud-planes i:nth-child(3){left:35%;top:5%;scale:.7}.variant-meadow .signature-stage{background:linear-gradient(#fef0d8,#edf6d8)}.variant-cloud .signature-stage{background:linear-gradient(#f0e7ff,#fff0f6)}.variant-meadow .scene-background{background-image:url('/static/assets/signature/global-variants/meadow-background-v1.webp');opacity:.3}.variant-cloud .scene-background{background-image:url('/static/assets/signature/global-variants/cloud-background-v1.webp');opacity:.24}.variant-meadow .flower-layer,.variant-cloud .flower-layer{display:none}.variant-cloud .plane{opacity:.6}.variant-cloud .journey-message,.variant-cloud .scene-title{color:#7b5888}.variant-cloud .story-section{background:#f4ecf8}.variant-meadow .story-section{background:#f3f6e3}@media(max-width:600px){.prototype-nav{height:96px;font-size:10px}.signature-stage{top:96px;height:calc(100svh - 96px)}.plane{width:210px}.plane-0{left:-20%;bottom:-14%}.plane-1{right:-18%;bottom:-12%}.plane-2{right:-16%;top:-22%}.plane-3{left:-35%;top:30%}.scene-couple{width:88%;bottom:16%;height:47%}.scene-caption{bottom:11%}}@media(prefers-reduced-motion:reduce){.signature-stage{top:0}.plane,.cloud-planes i{transform:none!important}}

/* Event text stays in the same pinned illustrated world until RSVP. */
.signature-stage .scene-events{position:absolute;inset:0;max-width:none;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:35px 24px 55px;background:transparent!important;opacity:var(--events-opacity,0);transform:translateX(var(--events-x,100vw));pointer-events:none;z-index:4;color:#35523e;text-shadow:0 1px 8px #fff}.scene-events:before{content:'';position:absolute;inset:3%;background:radial-gradient(ellipse,#fffef2dc,transparent 75%);z-index:-1}.scene-events h2{font:43px/1.2 'Great Vibes',cursive;margin:15px 0}.scene-events>p:not(.eyebrow){font-size:13px;margin:10px auto;max-width:390px}.scene-events .event-grid{display:flex;gap:30px;margin:22px 0}.scene-events .event-grid article{border:0;background:transparent;padding:8px 0;box-shadow:none;border-radius:0}.scene-events .event-grid h3{font-size:22px}.scene-events .event-grid p{margin:8px 0}.prototype-rsvp{padding:90px 24px;background:#f5f2ec;text-align:center;color:#445849}.prototype-rsvp h2{font:38px 'Cormorant Garamond',serif}.prototype-rsvp>p{max-width:440px;margin:22px auto;font-size:14px;line-height:1.8}.variant-cloud .scene-events{color:#785886}@media(max-width:600px){.scene-events .event-grid{flex-direction:column;gap:12px;margin:12px 0}.scene-events h2{font-size:37px}.scene-events .event-grid h3{font-size:23px}.signature-stage .scene-events{padding:20px 30px 55px}}@media(prefers-reduced-motion:reduce){.signature-stage{height:auto;padding-bottom:30px}.invitation-position{position:relative;height:600px}.signature-stage .scene-events{position:relative;inset:auto;opacity:1;transform:none!important}.scene-events{visibility:visible}.parallax-journey{height:auto}}
.plane-0,.plane-1{height:24%;bottom:-2%;width:45vw;max-width:500px}.plane-0{left:-5%}.plane-1{right:-8%}.plane-2{height:24%;top:-4%;width:40vw}.plane-3{height:28%;top:36%;left:-8%;width:30vw;rotate:65deg}@media(max-width:600px){.plane-0,.plane-1{width:70vw;height:22%;bottom:0}.plane-0{left:-24%}.plane-1{right:-27%}.plane-2{width:70vw;top:-3%;height:22%}.plane-3{width:60vw;left:-26%;height:25%}}

/* Signature uses real photos and forward depth transitions. */
.prototype-nav{height:64px;padding-bottom:10px}.signature-stage{top:64px;height:calc(100svh - 64px)}.scene-couple{width:min(64vw,360px);height:52%;object-fit:cover;object-position:center;mask-image:radial-gradient(ellipse at center,#000 43%,transparent 72%);filter:none}.invitation-position{transform:translateY(var(--card-y,0px)) scale(var(--card-scale,1))}.journey-message{transform:translateY(var(--message-y,40px)) scale(var(--message-scale,.7))}.signature-stage .scene-events{transform:scale(var(--events-scale,.7));transform-origin:center}.scene-background{opacity:.3;transform:scale(var(--bg-scale,1.04)) translateY(var(--bg-y,0px))}.flowers-back{transform:translate(var(--left-x,0px),var(--left-y,0px)) scale(var(--front-scale,1))}.flowers-front{transform:translate(var(--right-x,0px),var(--right-y,0px)) scale(var(--front-scale,1))}.plane-0{transform:translate(var(--left-x,0px),var(--left-y,0px)) scale(var(--front-scale,1)) rotate(-20deg)}.plane-1{transform:translate(var(--right-x,0px),var(--right-y,0px)) scale(var(--front-scale,1)) rotate(22deg)}@media(max-width:600px){.prototype-nav{height:70px}.signature-stage{top:70px;height:calc(100svh - 70px)}.scene-couple{width:90%;height:51%;bottom:14%}}@media(prefers-reduced-motion:reduce){.signature-stage{top:0;height:auto}.invitation-position{transform:none!important}.signature-stage .scene-events{transform:none!important}}

/* Separate objects own their idle motion; their wrappers own scroll depth. */
.signature-stage{min-height:0;top:var(--nav-height,64px);height:calc(100svh - var(--nav-height,64px));background:#f8f4e9}
.scene-background{background:radial-gradient(ellipse at 50% 25%,#fffdf4,transparent 65%),linear-gradient(#f5efd9,#edf1e5);opacity:1;filter:none}
.scene-title{top:8%}.scene-title h1{font-size:clamp(36px,6vw,64px)}
.scene-couple{left:50%;top:50%;bottom:auto;translate:none;transform:translate(-50%,-50%);width:min(90%,430px);height:46%;object-fit:cover;object-position:center 45%;mask-image:radial-gradient(ellipse,#000 43%,transparent 72%)}
.scene-caption{bottom:11%}.flowers-back{height:64%;bottom:-7%}.flowers-front{height:58%;bottom:auto;top:-10%;scale:1}
.flowers-back img{animation:garden-sway 7s ease-in-out infinite alternate}.flowers-front img{animation:garden-sway 9s -4s ease-in-out infinite alternate}
.botanical-plane{position:absolute;inset:0;pointer-events:none}
.plane-depth-0{transform:translate(var(--left-x,0px),var(--left-y,0px)) scale(var(--front-scale,1))}
.plane-depth-1{transform:translate(var(--right-x,0px),var(--right-y,0px)) scale(var(--middle-scale,1))}
.plane-depth-2{transform:translate(var(--far-x,0px),var(--far-y,0px)) scale(var(--far-scale,1))}
.plane-depth-3{transform:translate(var(--middle-x,0px),var(--middle-y,0px)) scale(var(--middle-scale,1))}
.plane{transform:none;rotate:none;animation:sprig-sway 8s ease-in-out infinite alternate;transform-origin:center;opacity:.85}
.plane-0{left:4%;right:auto;top:auto;bottom:5%;width:clamp(90px,18vw,180px);height:23%;--angle:-22deg}
.plane-1{right:3%;left:auto;top:auto;bottom:9%;width:clamp(90px,18vw,180px);height:24%;--angle:18deg;animation-duration:11s;animation-delay:-5s}
.plane-2{left:-2%;right:auto;top:-6%;bottom:auto;width:clamp(110px,22vw,220px);height:27%;--angle:135deg;animation-duration:10s;animation-delay:-3s;opacity:.72}
.plane-3{right:-5%;left:auto;top:42%;bottom:auto;width:clamp(100px,19vw,190px);height:27%;--angle:-42deg;animation-duration:13s;animation-delay:-8s;opacity:.75}
.cloud-planes{transform:translate(var(--cloud-x,0px),var(--cloud-y,0px)) scale(var(--far-scale,1))}
.cloud-planes i{transform:none;animation:cloud-wander 17s ease-in-out infinite alternate;opacity:.5}
.cloud-planes i:nth-child(2){animation-duration:23s;animation-delay:-9s;animation-direction:alternate-reverse}.cloud-planes i:nth-child(3){animation-duration:19s;animation-delay:-6s}
.signature-stage.scene-asleep .flower-layer img,.signature-stage.scene-asleep .plane,.signature-stage.scene-asleep .cloud-planes i,.signature-stage.scene-asleep .sunlight,.signature-stage.scene-asleep .gold-dust i,.page-asleep .flower-layer img,.page-asleep .plane,.page-asleep .cloud-planes i,.page-asleep .sunlight,.page-asleep .gold-dust i{animation-play-state:paused!important}
@keyframes sprig-sway{from{transform:translate(-4px,3px) rotate(calc(var(--angle) - 5deg))}to{transform:translate(6px,-8px) rotate(calc(var(--angle) + 5deg))}}
@keyframes cloud-wander{from{translate:-18px 0}to{translate:24px -7px}}
@media(min-width:1000px){.plane-0{left:calc(50% - 330px)}.plane-1{right:calc(50% - 330px)}.plane-2{left:calc(50% - 480px)}.plane-3{right:calc(50% - 470px)}}
@media(max-width:600px){.scene-title{top:8%;left:8%;right:8%}.scene-title h1{font-size:clamp(34px,10vw,43px)}.flowers-back{left:-26%;width:230px}.flowers-front{right:-28%;width:240px}.plane-0{left:-2%;width:110px}.plane-1{right:-3%;width:110px}.plane-2{left:-10%;width:140px}.plane-3{right:-10%;width:130px}}
@media(max-height:680px){.scene-couple{height:43%}.scene-title{top:5%}.scene-title h1{margin:10px 0}.scene-title .date{margin:12px 0}}
@media(prefers-reduced-motion:reduce){.plane,.cloud-planes i{animation:none!important}.botanical-plane,.cloud-planes{transform:none!important}.signature-stage{top:0;height:auto}.invitation-position{height:calc(100svh - var(--nav-height,64px));min-height:540px}}
.signature-stage{perspective:none}
.signature-stage{overflow:clip}

/* Five chapters with generous reading intervals in one continuous world. */
.parallax-journey{height:900svh}.journey-chapter,.signature-stage .scene-events{position:absolute;inset:0;padding:28px 30px 60px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#385649;z-index:4;opacity:0;pointer-events:none;transform:translateY(30px) scale(.94)}
.journey-chapter h2{font:clamp(36px,5vw,54px)/1.15 'Great Vibes',cursive;margin:15px 0 22px}.journey-chapter>p:not(.eyebrow){max-width:440px;font-size:14px;line-height:1.8;margin:16px auto}.journey-message:before,.scene-events:before{background:radial-gradient(ellipse,#fffdf3eb,transparent 78%)}
.story-memory{width:min(250px,55vw);height:25vh;max-height:240px;object-fit:cover;border-radius:50% 50% 4px 4px;box-shadow:0 10px 25px #38564915}.story-milestones{display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:.5px;margin-top:12px}.story-milestones i{font-style:normal;color:#9eaf91}
.portrait-pair{display:flex;align-items:center;gap:28px;max-width:620px}.portrait-pair article{flex:1}.portrait-pair img{width:min(24vw,190px);height:30vh;max-height:290px;object-fit:cover;border-radius:100px 100px 8px 8px}.portrait-pair h3{font:30px 'Cormorant Garamond',serif;margin:16px 0 8px}.portrait-pair p{font-size:11px;line-height:1.7;max-width:180px}.portrait-pair>span{font:40px 'Great Vibes',cursive}
.memory-pair{display:flex;gap:16px;max-width:580px;align-items:center}.memory-pair img{width:45%;height:36vh;max-height:360px;object-fit:cover;border-radius:110px 110px 6px 6px}.memory-pair img:nth-child(2){margin-top:48px}.scene-events .event-location{font-size:13px}.event-location small{opacity:.65;font-size:10px}
.prototype-rsvp{padding:80px 24px;background:#edf1e9}#prototype-rsvp-form{max-width:440px;margin:30px auto;text-align:left;display:grid;gap:18px}#prototype-rsvp-form label{display:grid;gap:8px;font-size:12px}#prototype-rsvp-form input,#prototype-rsvp-form select,#prototype-rsvp-form textarea{font:14px 'Lato',sans-serif;width:100%;padding:13px;border:1px solid #cdd7c6;border-radius:8px;background:#fbfcf7;color:#385649}.rsvp-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}#prototype-rsvp-form button{background:#385649;color:white;min-height:46px}.signature-closing{position:relative;text-align:center;overflow:clip;padding:80px 24px 60px;background:#faf7ee}.signature-closing>img{width:130px;height:150px;object-fit:contain;animation:garden-sway 8s ease-in-out infinite alternate}.signature-closing h2{font:52px 'Great Vibes',cursive;margin:20px 0}.signature-closing h3{font:32px 'Cormorant Garamond',serif}.signature-closing>p{max-width:400px;margin:24px auto;line-height:1.8;font-size:13px}
@media(max-width:600px){.portrait-pair{gap:14px}.portrait-pair img{width:34vw;height:27vh}.portrait-pair h3{font-size:27px}.memory-pair{max-width:320px}.journey-chapter>p:not(.eyebrow){font-size:13px}.story-memory{height:24vh}.scene-events .event-grid{gap:8px}.signature-stage .scene-events{padding:20px 28px 55px}}
@media(max-height:680px){.journey-chapter{padding-top:15px}.journey-chapter h2{font-size:33px;margin:10px 0 14px}.journey-chapter>p:not(.eyebrow){font-size:12px;line-height:1.6;margin:10px auto}.story-memory{height:20vh}.story-milestones{gap:7px;font-size:9px}.portrait-pair img{height:25vh}.scene-events .event-grid{margin:6px 0}}
@media(prefers-reduced-motion:reduce){.parallax-journey{height:auto}.journey-chapter,.signature-stage .scene-events{position:relative;inset:auto;min-height:85svh;opacity:1!important;transform:none!important}.journey-message{display:flex}.signature-stage{height:auto}.signature-closing>img{animation:none}}
.parallax-journey{height:1100svh}.solo-portrait{width:min(56vw,260px);height:38vh;max-height:370px;object-fit:cover;border-radius:140px 140px 8px 8px;box-shadow:0 12px 25px #38564918}.signature-butterflies{position:absolute;inset:0;z-index:5;pointer-events:none}.flying-butterfly{position:absolute;width:38px;height:32px;animation:signature-butterfly-path 16s ease-in-out infinite;transform-style:preserve-3d}.butterfly-0{left:4%;top:25%}.butterfly-1{right:5%;top:65%;animation-delay:-7s;animation-duration:19s}.butterfly-2{right:8%;top:10%;width:24px;height:22px;animation-delay:-12s;animation-duration:23s}.flying-butterfly img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.wing-left{transform-origin:50% 50%;animation:signature-wing-left .65s ease-in-out infinite alternate}.wing-right{transform-origin:50% 50%;animation:signature-wing-right .65s ease-in-out infinite alternate}.scene-asleep .signature-butterflies *,.page-asleep .signature-butterflies *{animation-play-state:paused!important}@keyframes signature-butterfly-path{0%,100%{translate:0 0;rotate:-12deg}25%{translate:12px -55px;rotate:10deg}60%{translate:-9px 24px;rotate:-8deg}80%{translate:17px -18px;rotate:15deg}}@keyframes signature-wing-left{from{transform:rotateY(-12deg)}to{transform:rotateY(-65deg)}}@keyframes signature-wing-right{from{transform:rotateY(12deg)}to{transform:rotateY(65deg)}}@media(prefers-reduced-motion:reduce){.parallax-journey{height:auto}.signature-butterflies *{animation:none!important}}
/* Ivory garden butterflies match the botanical illustration palette. */
.flying-butterfly{width:30px;height:28px;opacity:.85;animation-duration:22s;filter:drop-shadow(0 1px 2px #49613e12)}.butterfly-0{left:3%;top:29%}.butterfly-1{right:4%;top:69%;width:26px;height:25px;animation-duration:26s}.butterfly-2{right:7%;top:13%;width:21px;height:20px;animation-duration:30s}.wing-left,.wing-right{animation-duration:.95s}@keyframes signature-butterfly-path{0%,100%{translate:0 0;rotate:-8deg}25%{translate:8px -30px;rotate:8deg}60%{translate:-5px 15px;rotate:-5deg}80%{translate:10px -12px;rotate:9deg}}
.back-to-start{width:44px;height:44px;display:inline-grid;place-items:center;padding:0;border-radius:50%;background:#f3f5ed;color:#385649;border:1px solid #cdd7c6;cursor:pointer}.back-to-start svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.back-to-start:hover{background:#e7eddf}
.signature-butterflies .flying-butterfly{left:0;right:auto;top:0;animation:none;will-change:transform}@media(prefers-reduced-motion:reduce){.signature-butterflies{display:none}}

/* Longer scroll distance gives each chapter a more generous reading interval. */
.parallax-journey{height:1400svh}@media(prefers-reduced-motion:reduce){.parallax-journey{height:auto}}
/* Individual memories share one portrait stage, with scroll-driven crossfades. */
.scene-memories .memory-pair{position:relative;display:block;width:min(62vw,310px);height:min(43vh,420px);margin:5px auto 12px;perspective:1000px}.scene-memories .memory-pair img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;border-radius:140px 140px 8px 8px;margin:0;box-shadow:0 16px 32px #38564920;will-change:transform,opacity}.scene-memories .memory-pair img:nth-child(2){margin:0;opacity:0}.scene-memories .memory-caption{max-width:310px!important}.memory-counter{display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:2px;color:#708367;margin-top:10px}.memory-counter i{display:block;width:45px;height:1px;background:#b4c0a8}.memory-counter>span:first-child{font-size:15px;color:#385649}@media(max-height:680px){.scene-memories .memory-pair{height:37vh}.scene-memories h2{margin-bottom:12px}}@media(prefers-reduced-motion:reduce){.scene-memories .memory-pair{display:grid;gap:20px;height:auto;width:min(75vw,400px)}.scene-memories .memory-pair img{position:relative;height:40vh;opacity:1!important;transform:none!important}.memory-counter{display:none}}
.plane-0{opacity:calc(.85 * var(--sprig-left-opacity,0))}.flowers-back img{filter:drop-shadow(0 4px 7px #38564912)}@media(max-width:600px){.flowers-back{left:-27%;width:215px}}@media(prefers-reduced-motion:reduce){.plane-0{display:none}}
.location-link{display:inline-block;padding:10px 13px;border:1px solid #bdcbb3;border-radius:22px;color:#385649;text-decoration:none;font-size:11px;background:#fffdf2b3;margin-top:5px}.location-link:hover{background:#e8efdf}.signature-gift{padding:80px 24px;text-align:center;background:#f8f5e9;color:#385649}.signature-gift h2{font:50px 'Great Vibes',cursive;margin:20px 0}.signature-gift>p{max-width:420px;margin:20px auto;font-size:13px;line-height:1.8}.gift-account-list{display:flex;justify-content:center;gap:20px;max-width:650px;margin:30px auto}.gift-account-list article{flex:1;min-width:0;background:#fffff780;border:1px solid #d7dfcb;border-radius:16px;padding:26px 20px}.gift-account-list strong{display:block;font:24px 'Cormorant Garamond',serif;overflow-wrap:anywhere}.gift-account-list article>p:not(.eyebrow){font-size:12px;margin:15px 0 20px}.gift-delivery{max-width:420px;margin:45px auto 30px}.gift-delivery h3{font:27px 'Cormorant Garamond',serif}.gift-delivery>p:not(.eyebrow){font-size:13px;line-height:1.8}.gift-next{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #bdcbb3;color:#385649;text-decoration:none;font-size:22px}@media(max-width:600px){.gift-account-list{flex-direction:column;max-width:340px}.scene-events .event-grid h3{font-size:21px}.scene-events .event-grid p{margin:6px 0}.location-link{padding:8px 12px}.signature-stage .scene-events h2{margin:8px 0}.signature-stage .scene-events .event-location{font-size:11px;line-height:1.5;margin:10px auto}}
[hidden]{display:none!important}.signature-public .signature-stage{--nav-height:0px;top:0}.signature-public .invitation-position{height:100%}.signature-public .scene-title{top:8%}.signature-gift,.prototype-rsvp{scroll-margin-top:70px}
.signature-guest{font-size:11px;letter-spacing:.5px;color:#718568}.inv-music{position:fixed;bottom:20px;right:16px;z-index:30}.music-toggle{border:1px solid #c3cfb8;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;background:#fbfcf6;color:#385649;cursor:pointer}.music-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}.music-toggle .music-pause-icon{display:none}.music-toggle.is-playing .music-play-icon{display:none}.music-toggle.is-playing .music-pause-icon{display:block}.music-panel{position:absolute;bottom:55px;right:0;width:min(310px,85vw);background:#fbfcf6;border:1px solid #c3cfb8;border-radius:12px;padding:16px;box-shadow:0 10px 35px #38564922;font-size:12px}.music-panel-head{display:flex;justify-content:space-between;gap:12px}.music-panel audio{max-width:100%;margin-top:15px}.music-panel button{border:0;background:transparent;cursor:pointer;color:#385649}.music-panel a{color:#385649}.music-panel iframe{max-width:100%}
.signature-music-credit{text-align:center;padding:16px;font-size:10px;color:#708367}.signature-music-credit a{color:inherit}.gift-delivery p{white-space:pre-line}
.signature-prev,.signature-next{font-size:24px;line-height:1;padding:4px;flex-shrink:0}.prototype-nav>span{line-height:1.3}@media(max-width:600px){.prototype-nav{gap:5px}.prototype-nav button{max-width:100px;font-size:9px}.prototype-nav>span{max-width:100px;font-size:9px}}
.parallax-journey{height:1800svh}.inv-music .music-toggle{width:46px;height:46px;background:#fffdf2e8;border-color:#bfccb4;box-shadow:0 3px 14px #38564916}.inv-music .music-toggle svg{width:21px;height:21px;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}@media(prefers-reduced-motion:reduce){.parallax-journey{height:auto}}
.location-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 14px;border-radius:22px}.location-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.inv-music .music-toggle{position:relative;display:block;padding:0}.inv-music .music-toggle>svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}.inv-music .music-toggle .music-equalizer{display:none}

/* Scroll owns depth motion; decorative children retain their idle animation. */
html{scroll-behavior:auto}
.signature-stage .depth-layer,.signature-stage .journey-chapter{transition:none}
.signature-stage .scroll-cue{z-index:25;pointer-events:auto;isolation:isolate}
.signature-stage .depth-layer,.signature-stage .botanical-plane,.signature-stage .journey-chapter,.signature-stage .invitation-position{will-change:transform,opacity;backface-visibility:hidden}

.signature-select-design{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.signature-select-design svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}

/* Track the live mobile viewport as Safari expands/collapses its browser bars. */
@media(prefers-reduced-motion:no-preference){.signature-stage{height:calc(100dvh - var(--nav-height,64px))}}
/* Keep play and pause at the same centre despite the shared music icon offset. */
body.signature-envelope-opening .inv-music .music-toggle>svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
body.signature-envelope-opening .inv-music .music-toggle .music-equalizer{display:none}
