html{scroll-behavior:auto}body{min-width:320px;min-height:100vh;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}#root{min-height:100vh}.app-shell{min-height:100vh;color:var(--text);font-family:var(--font-body);background:radial-gradient(circle at 78% 18%,#e8a3b814,#0000 28rem),linear-gradient(145deg,#0e080b,#120b0e 55%,#0a0608);position:relative;overflow-x:hidden}.app-shell:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff03 1px,#0000 1px);background-size:92px 92px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000008c,#0000 82%);mask-image:linear-gradient(#0000008c,#0000 82%)}.app-shell.lights-on{background:radial-gradient(circle at 50% 48%,#d4a85721,#0000 24rem),linear-gradient(145deg,#0e080b,#120b0e 55%,#0a0608)}.intro-sequence{--intro-text-scale:1;z-index:60;color:var(--champagne);font-family:var(--font-body);background:#000;position:fixed;inset:0;overflow:hidden}.intro-sequence p,.intro-sequence h1{margin:0}.intro-skip{z-index:64;color:#fdf6f34d;font-family:var(--font-body);letter-spacing:.15em;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;transition:opacity .25s,color .25s;position:fixed;top:20px;right:70px}.intro-skip:hover,.intro-skip:focus-visible{color:#fdf6f3b3}.intro-blackout,.intro-slate,.intro-wishes,.intro-name-reveal,.intro-hero-entrance{place-items:center;display:grid;position:absolute;inset:0}.intro-center-line{background:#d4a85799;width:0;height:1px;animation:1.2s .8s forwards introLineDraw,.25s 1.8s forwards introLineFade}.intro-slate{text-align:center;align-content:center;gap:.9rem}.intro-slate p{color:#d4a857;font-family:var(--font-body);letter-spacing:.45em;text-transform:uppercase;font-size:11px;font-weight:700}.intro-slate p:nth-child(2){color:var(--champagne)}.intro-slate .intro-slate-date{letter-spacing:.3em;font-size:10px}.intro-wishes{text-align:center}.intro-wish-line{inset-inline:1.2rem;font-family:var(--font-heading);letter-spacing:0;font-style:italic;font-weight:500;line-height:1.08;position:absolute;top:50%;transform:translateY(-50%)}.intro-wish-line:nth-child(3){font-weight:700}.intro-wish-final{font-weight:500}.intro-line-enter{opacity:0;transform:translateY(20px)}.intro-line-active{opacity:1;transition:opacity .6s,transform .6s;transform:translateY(0)}.intro-line-exit{opacity:0;transition:opacity .5s}.intro-name-reveal{text-align:center;align-content:center;justify-items:center;gap:1rem;overflow:hidden}.name-bloom{background:radial-gradient(circle,#d4a85712 0%,#0000 70%);border-radius:50%;width:600px;height:600px;animation:2.5s ease-out forwards bloom;position:absolute}.intro-name-reveal h1{z-index:1;color:var(--champagne);font-family:var(--font-heading);letter-spacing:-.02em;font-size:clamp(72px,12vw,120px);font-style:italic;font-weight:500;line-height:.95;position:relative}.intro-name-rule{z-index:1;background:var(--rose-gold);height:1px;display:block;position:relative}.intro-name-reveal p{z-index:1;color:var(--gold);letter-spacing:.3em;text-transform:uppercase;font-size:13px;font-weight:700;position:relative}.intro-hero-entrance{background:#0e080b;grid-template-columns:52% 48%;place-items:stretch stretch}.intro-hero-photo{opacity:0;animation:1.25s .1s forwards introPhotoIn;position:absolute;inset:0}.intro-hero-photo img{object-fit:cover;object-position:center 40%;filter:sepia(.2)contrast(1.05)brightness(.9);width:100%;height:100%}.intro-hero-photo .image-placeholder{display:none}.intro-hero-shade{z-index:2;background:linear-gradient(90deg,#000000d1,#0e080b8a 68%,#0000),#0e080bcc;width:48vw;position:relative}.intro-hero-copy{z-index:3;background:#0e080bc2;flex-direction:column;grid-column:2;justify-content:center;min-height:100vh;padding:2.5rem clamp(2rem,5vw,5rem) 2rem;display:flex;position:relative}.intro-hero-copy .eyebrow{margin-bottom:12px}.intro-hero-copy .eyebrow:after{content:"";background:#d4a8578c;width:44px;height:1px;margin-top:1rem;display:block}.intro-hero-copy h1{max-width:9ch;margin:0 0 .5rem;font-size:clamp(42px,5.5vw,72px);line-height:1.05}.intro-hero-copy .scene-subtitle{color:#fdf6f3b8;text-align:left;max-width:420px;margin:1.5rem 0 1.75rem;font-size:15px;line-height:1.9}button{-webkit-tap-highlight-color:transparent}button:focus-visible,.stage:focus-visible,.scene-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.stage{min-height:100svh;padding:max(5.5rem, env(safe-area-inset-top)) 1rem max(3rem, env(safe-area-inset-bottom));z-index:2;background:0 0;place-items:center;display:grid;position:relative}.scene-wrap{width:min(100%,1080px)}.scene-card{background:#ffffff0a;border:.5px solid #e8a3b826;border-radius:4px;width:min(100%,760px);margin-inline:auto;padding:clamp(2rem,5vw,3.6rem)}.wide-scene{width:min(100%,1080px)}.scene-heading{text-align:center;margin-bottom:1.8rem}.eyebrow{color:var(--gold);font-family:var(--font-body);letter-spacing:.35em;text-transform:uppercase;margin:0 0 1rem;font-size:11px;font-weight:700}h1,h2,h3{color:var(--champagne);font-family:var(--font-heading);letter-spacing:-.02em;text-shadow:none;margin:0;font-style:italic;font-weight:500}h1{max-width:13ch;margin:0 auto;font-size:clamp(32px,5vw,56px);line-height:1.05}p{margin:0}.scene-subtitle,.scene-card p{color:#fdf6f3c7;font-family:var(--font-heading);text-align:left;font-size:17px;line-height:1.85}.scene-subtitle{max-width:520px;margin:1rem auto 0}.fine-print,.music-note{color:#fdf6f366;max-width:520px;margin:.9rem auto 0;font-size:12px;line-height:1.5}.topbar{top:env(safe-area-inset-top);z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem;display:flex;position:fixed;left:0;right:0}.topbar>*{pointer-events:auto}.music-control{justify-items:end;margin-left:auto;display:grid;position:relative}.btn{min-height:44px;color:var(--gold);font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #d4a85799;border-radius:2px;justify-content:center;align-items:center;gap:.6rem;padding:14px 36px;font-size:13px;font-weight:700;transition:background .25s,border-color .25s,color .25s,opacity .25s;display:inline-flex}.btn:hover{border-color:var(--gold);background:#d4a85714}.btn:disabled{cursor:not-allowed;opacity:.45}.btn svg{flex:none}.btn-ghost{color:var(--rose-gold);border-color:#e8a3b86b;font-size:12px}.btn-ghost:hover{background:#e8a3b80f;border-color:#e8a3b8d9}.icon-control{width:36px;min-width:36px;height:36px;min-height:36px;color:var(--champagne);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:0;background:#0e080b38;border-color:#e8a3b873;border-radius:50%;padding:0}.icon-control:hover{background:#e8a3b812;border-color:#e8a3b8d9}.back-btn{opacity:.5;transition:opacity .2s,border-color .2s,background .2s}.back-btn:hover,.back-btn:focus-visible{opacity:1}.equalizer{justify-content:center;align-items:center;gap:3px;width:18px;height:18px;display:inline-flex}.equalizer span{background:var(--champagne);border-radius:999px;width:3px;height:14px;animation:.92s ease-in-out infinite equalizerPulse}.equalizer span:nth-child(2){animation-delay:.16s}.equalizer span:nth-child(3){animation-delay:.32s}.music-tooltip{color:#fdf6f3b8;opacity:0;pointer-events:none;background:#0e080bc7;border:.5px solid #e8a3b829;border-radius:2px;width:max-content;max-width:170px;padding:.3rem .48rem;font-size:10px;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + .45rem);right:0;transform:translateY(-4px)}.music-control:hover .music-tooltip{opacity:1;transform:translateY(0)}.progress-rail{z-index:18;padding:0 0 env(safe-area-inset-bottom);align-items:flex-end;gap:6px;display:inline-flex;position:fixed;bottom:28px;right:28px}.progress-dot{cursor:pointer;background:0 0;border:0;place-items:end center;width:10px;height:22px;padding:0;display:grid;position:relative}.progress-dot span{opacity:1;background:#fdf6f340;width:1.5px;height:10px;transition:height .25s,width .25s,background .25s,opacity .25s;display:block}.progress-dot.active span{opacity:1;background:#e8a3b8;width:2px;height:20px}.progress-tooltip{color:#fdf6f3bd;width:max-content;max-width:110px;font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;font-size:10px;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 6px);right:50%;transform:translate(50%,4px)}.progress-dot:hover .progress-tooltip,.progress-dot:focus-visible .progress-tooltip,.progress-dot.active .progress-tooltip{opacity:1;transform:translate(50%)}.ambient-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.ambient-speck{left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:var(--particle-color);opacity:.18;animation:moteDrift var(--duration) ease-in-out var(--delay) infinite alternate;border-radius:50%;position:absolute}.constellation-thread{z-index:1;pointer-events:none;opacity:.1;position:fixed;inset:0}.constellation-thread svg{width:100%;height:100%}.thread-path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}.thread-path-base{stroke:#e8a3b81f;stroke-width:.5px}.thread-path-live{stroke:var(--rose-gold);stroke-width:.5px}.thread-star{fill:#fdf6f340;opacity:.14;transition:fill .6s,opacity .6s}.thread-star.is-lit{fill:var(--rose-gold);opacity:.42;animation:2.8s ease-in-out infinite nodePulse}.thread-travel-dot{fill:var(--rose-gold);filter:drop-shadow(0 0 6px #e8a3b899)}.hero-scene{width:100vw;height:100vh;min-height:100vh;max-height:100vh;margin:calc(-1 * max(5.5rem, env(safe-area-inset-top))) calc(50% - 50vw) calc(-1 * max(3rem, env(safe-area-inset-bottom)));background:#0e080b;grid-template-columns:52% 48%;display:grid;overflow:hidden}.hero-media{width:52vw;height:100vh;min-height:100vh;box-shadow:none;-webkit-mask-composite:source-in;border-radius:0;flex-shrink:0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 35%,#00000080 62%,#0000 85%),linear-gradient(#000 80%,#0000 100%);mask-image:linear-gradient(90deg,#000 35%,#00000080 62%,#0000 85%),linear-gradient(#000 80%,#0000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero-photo,.hero-photo img{width:100%;height:100%;min-height:inherit}.hero-photo img{object-fit:cover;object-position:center 60%;filter:saturate(.9)contrast(1.05);animation:1.8s both photoFade}.hero-vignette{background:linear-gradient(#0000 42%,#0000007a);position:absolute;inset:0}.hero-media:after{display:none}.hero-scene.is-opening .hero-media img{opacity:.82;transition:opacity .62s}.hero-card{text-align:left;background:0 0;border:0;flex-direction:column;justify-content:center;place-self:center;align-items:flex-start;width:100%;height:100vh;max-height:100vh;margin:0;padding:2.5rem clamp(2rem,5vw,5rem) 2rem;display:flex;overflow:hidden}.hero-card .scene-heading{text-align:left;margin-bottom:0}.hero-card .eyebrow{color:#d4a857;font-family:var(--font-body);letter-spacing:.38em;text-transform:uppercase;margin-bottom:12px;font-size:11px}.hero-card .scene-heading:after{content:"";background:#d4a8578c;width:44px;height:1px;margin:0 0 1rem;display:block}.hero-card h1{max-width:9ch;margin:0 0 .5rem;font-size:clamp(42px,5.5vw,72px);line-height:1.05}.hero-subtitle-line{max-width:480px;margin:0;font-style:italic;color:#fdf6f394!important;font-family:var(--font-heading)!important;font-size:clamp(20px,2.6vw,34px)!important;line-height:1.05!important}.hero-card .scene-subtitle{color:#fdf6f3b8;text-align:left;max-width:420px;margin:1.5rem 0 1.75rem;font-size:15px;line-height:1.9}.gift-button{width:fit-content;min-width:200px;max-width:300px;margin-top:0}.gift-button,.gift-button span{letter-spacing:.18em}.gift-button+.fine-print{color:#fdf6f361;margin:.5rem 0 0;font-size:12px}.hero-scene.settled-from-intro .gift-button{animation:.6s .35s both giftPulseOnce}@media (width>=1101px){.hero-subtitle-line{white-space:nowrap}}.promise-scene,.celebration-scene{background:0 0;border:0}.promise-rule{background:#e8a3b84d;width:min(200px,60%);height:1px;margin:0 auto 2rem}.promise-lines{gap:1.1rem;margin-bottom:2rem;display:grid}.promise-note{max-width:620px;color:var(--champagne);font-family:var(--font-heading);text-align:left;margin:0 auto;font-size:clamp(24px,3vw,34px);font-style:italic;line-height:1.6}.action-row{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-bottom:1.6rem;display:flex}.reasons-scene{place-items:center;width:min(100%,900px);min-height:min(640px,100svh - 8rem);margin-inline:auto;display:grid}.reason-feature-card,.reasons-final-grid{background:radial-gradient(circle at 50% 48%,#e8a3b80a,#0000 48%),#00000014;place-items:center;width:min(100%,820px);min-height:min(620px,100svh - 8rem);padding:clamp(2rem,6vw,4.5rem);display:grid;position:relative;overflow:hidden}.reason-feature-trigger{width:100%;min-height:44px;color:var(--champagne);text-align:center;cursor:pointer;background:0 0;border:0;justify-items:center;gap:1rem;padding:0;display:grid}.reason-feature-trigger:disabled{cursor:default}.reason-feature-count{color:#d4a857;font-family:var(--font-body);letter-spacing:.35em;text-transform:uppercase;font-size:11px;font-weight:700}.reason-feature-trigger h1{max-width:10ch;font-size:clamp(48px,7vw,80px);line-height:.95;transition:font-size .45s,transform .45s}.reason-feature-rule{background:var(--rose-gold);transform-origin:50%;width:60px;height:1px;animation:.8s both reasonRuleDraw;display:block}.reason-open-hint{color:#fdf6f366;min-height:44px;font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:12px;display:inline-flex}.reason-open-hint svg{animation:1.5s ease-in-out infinite hintChevronFloat}.reason-feature-card.is-open{align-content:start;gap:2rem}.reason-feature-card.is-open .reason-feature-trigger{align-self:start;gap:.7rem}.reason-feature-card.is-open .reason-feature-trigger h1{max-width:none;font-size:28px;transform:translateY(-4px)}.reason-reveal-copy{justify-items:center;gap:1.6rem;width:min(100%,540px);display:grid;position:relative}.reason-reveal-copy p{z-index:1;max-width:520px;color:var(--champagne);font-family:var(--font-heading);text-align:left;font-size:20px;font-style:italic;line-height:2;position:relative}.reason-quote-mark{z-index:0;color:var(--rose-gold);font-family:var(--font-heading);opacity:.08;font-size:120px;font-style:italic;line-height:1;position:absolute;top:-72px;left:-48px}.reason-next-button{gap:.55rem;min-width:178px;font-size:12px}.reasons-final-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;gap:clamp(1rem,3vw,2rem)}.reason-final-title{color:var(--champagne);font-family:var(--font-heading);text-align:center;font-style:italic;line-height:.95}.reason-final-title-1,.reason-final-title-6{font-size:clamp(32px,5vw,58px)}.reason-final-title-2,.reason-final-title-8{color:var(--rose-gold);font-size:clamp(26px,4vw,44px)}.reason-final-title-3,.reason-final-title-5{font-size:clamp(24px,3.4vw,38px)}.reason-final-title-4,.reason-final-title-7{color:#fdf6f3b8;font-size:clamp(28px,4.4vw,50px)}.lamp-stage{background:0 0;min-height:380px;margin-top:1.5rem;position:relative;overflow:hidden}.lamp-stage:before{content:"";opacity:0;filter:blur(16px);background:radial-gradient(#d4a8573d,#0000 70%);border-radius:50%;transition:opacity 1s;position:absolute;inset:20% 14% 4%}.lamp-stage.is-lit:before{opacity:1}.lamp-head{background:linear-gradient(var(--accent-soft), var(--accent));z-index:3;border-radius:18px 18px 9px 9px;width:104px;height:30px;position:absolute;top:22px;left:50%;transform:translate(-50%)}.lamp-beam{clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:.08;background:linear-gradient(#ffedbf7a,#ffedbf08);width:360px;height:300px;transition:opacity .6s;position:absolute;top:46px;left:50%;transform:translate(-50%)}.lamp-floor{opacity:.12;background:radial-gradient(#d4a85742,#0000 70%);border-radius:50%;width:min(76%,520px);height:84px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.lamp-stage.is-lit .lamp-beam,.lamp-stage.is-lit .lamp-floor{opacity:1}.cake{z-index:4;justify-items:center;gap:.3rem;width:220px;display:grid;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.candles{gap:.55rem;display:flex}.candles span{background:repeating-linear-gradient(45deg, var(--accent-soft), var(--accent-soft) 4px, white 4px, white 8px);border-radius:999px;width:8px;height:26px;position:relative}.candles span:before{content:"";background:linear-gradient(135deg, var(--champagne), var(--gold) 58%, var(--rose-gold));opacity:.28;border-radius:50% 50% 50% 0;width:10px;height:10px;animation:2.4s ease-in-out infinite alternate candleFlicker;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(45deg)}.lamp-stage.is-lit .candles span:before{opacity:1}.cake-top,.cake-mid,.cake-base{border-radius:8px;display:block}.cake-top{background:var(--accent-soft);width:126px;height:28px}.cake-mid{background:linear-gradient(90deg, var(--rose), var(--accent));width:174px;height:38px}.cake-base{background:linear-gradient(90deg, var(--accent), var(--rose));width:220px;height:44px}.stage-bloom{gap:.32rem;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.stage-bloom span{opacity:0;background:#d4a857cc;border-radius:50%;width:12px;height:12px}.lamp-stage.is-lit .stage-bloom span{animation:1s ease-out both goldenBurst}.lamp-stage.is-lit .stage-bloom span:nth-child(2n){animation-delay:80ms}.letter-paper,.final-letter{width:min(100%,560px);color:var(--text-dark);transform-origin:50%;background:linear-gradient(#fffaefd6,#fffaefd6),#f7efe5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E");border:0;border-radius:1px;margin:1.4rem auto;padding:clamp(1.6rem,4vw,2.35rem);position:relative}.letter-paper:before,.letter-paper:after,.final-letter:before,.final-letter:after{content:"";background:#7d23471c;height:1px;position:absolute;left:1.6rem;right:1.6rem}.letter-paper:before,.final-letter:before{top:1rem}.letter-paper:after,.final-letter:after{bottom:1rem}.letter-paper p,.final-letter p{color:#2a141ce0;max-width:520px;font-family:var(--font-heading);font-size:18px;font-style:normal;line-height:2}.letter-paper p+p,.final-letter p+p{margin-top:1.5rem}.letter-salutation{color:var(--gold)!important;font-size:20px!important;font-style:italic!important}.letter-signature{color:var(--rose-gold)!important;font-style:italic!important}.wax-seal{background:radial-gradient(circle at 35% 28%,#fff3,#0000 28%),linear-gradient(145deg,#6e1636,#9f385d);border-radius:50%;width:46px;height:46px;position:absolute;bottom:clamp(1rem,4vw,1.4rem);right:clamp(1rem,4vw,1.6rem)}.wax-seal:after{content:"V";color:#f7e4bd;font-family:var(--font-heading);place-items:center;font-size:1.3rem;font-style:italic;display:grid;position:absolute;inset:0}.final-wax-seal{opacity:.92;background:radial-gradient(circle at 35% 28%,#ffffff2e,#0000 28%),linear-gradient(145deg,#5a102a,#8f294d);border-radius:50%;width:52px;height:52px;position:absolute;bottom:1.25rem;right:1.35rem}.final-wax-seal:after{content:"";border:1px solid #f7e4bd80;border-radius:50%;position:absolute;inset:13px}.playful-area{place-items:center;gap:.75rem;min-height:170px;margin:1.4rem auto 0;display:grid;position:relative;overflow:hidden}.petal-burst{pointer-events:none;width:1px;height:1px;position:absolute;top:50%;left:50%}.petal-burst span{width:6px;height:11px;transform:rotate(var(--angle)) translateY(0);background:#e8a3b8b8;border-radius:999px 999px 999px 2px;animation:.9s ease-out both petalBurst;position:absolute}.runaway-wrap{will-change:transform}.runaway-btn{will-change:transform;border-radius:999px;min-height:44px;padding:10px 24px}.gallery-grid{margin:1.5rem 0 2rem}.film-strip{overscroll-behavior-inline:contain;scrollbar-width:thin;grid-auto-columns:minmax(240px,280px);grid-auto-flow:column;gap:1px;padding:1.4rem 0;display:grid;position:relative;overflow-x:auto}.film-strip:before,.film-strip:after{content:"";opacity:.15;background-image:radial-gradient(circle, var(--champagne) 2.5px, transparent 3px);pointer-events:none;background-size:22px 9px;height:9px;position:absolute;left:0;right:0}.film-strip:before{top:0}.film-strip:after{bottom:0}.memory-card{aspect-ratio:1;background:#ffffff06;border:0;border-radius:0;position:relative;overflow:hidden}.memory-card+.memory-card{border-left:1px solid #e8a3b83d}.memory-card:hover .memory-overlay,.memory-card:focus-within .memory-overlay{opacity:1;transform:translateY(0)}.memory-image,.future-visual{width:100%;height:100%}.memory-image img{filter:sepia(.15)saturate(1.1)}.future-visual{color:var(--rose-gold);background:#ffffff05;border:1px dashed #e8a3b859;place-items:center;display:grid}.future-visual:after{display:none}.memory-overlay{opacity:0;background:linear-gradient(#0000,#0e080be0);padding:3.5rem 1rem 1rem;transition:opacity .25s,transform .25s;position:absolute;inset:auto 0 0;transform:translateY(12px)}.memory-card h2{color:var(--champagne);font-size:1.3rem;line-height:1.1}.memory-card p{color:#fdf6f3d1;margin-top:.45rem;font-size:13px;font-style:italic;line-height:1.55}.signature{color:var(--rose-gold);letter-spacing:.08em;text-align:center;text-transform:uppercase;margin:.4rem 0 1.2rem;font-weight:700}.audio-time{color:#fdf6f394;background:#ffffff06;border:.5px solid #e8a3b82e;gap:.45rem;width:max-content;margin:0 auto 1rem;padding:.45rem .8rem;font-size:12px;font-weight:700;display:inline-flex}.finale-panel{min-height:280px;margin-bottom:1.2rem}.finale-thread{opacity:.8;width:min(100%,520px);margin:0 auto 1.4rem}.finale-thread svg{width:100%;height:auto;overflow:visible}.finale-thread path{fill:none;stroke:var(--rose-gold);stroke-width:.8px;stroke-linecap:round}.finale-thread circle{fill:#fdf6f359;transition:r .42s,fill .42s}.finale-thread.is-complete:after{content:"";background:var(--rose-gold);width:120px;height:1px;margin:1.4rem auto 0;animation:.9s both ruleReveal;display:block}.finale-thread.is-complete circle{fill:var(--rose-gold)}.reveal-stack{justify-items:center;gap:1.1rem;display:grid}.finale-line{text-align:center;background:0 0;border:0;max-width:760px;padding:0;color:var(--champagne)!important;font-family:var(--font-heading)!important;font-size:clamp(28px,4vw,48px)!important;font-style:italic!important;line-height:1.28!important}.finale-celebrate{justify-self:center}.final-letter{min-height:390px}.final-letter h2{z-index:2;color:#2a141cdb;text-align:center;margin-bottom:1rem;font-size:clamp(2rem,8vw,3.6rem);line-height:.95;position:relative}.word-ring{display:none}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{left:var(--left);background:var(--color);width:6px;height:10px;animation:confettiFall 3.5s ease-out var(--delay) both;border-radius:4px;position:absolute;top:-12px}.confetti span:nth-child(3n){border-radius:50%;width:6px;height:6px}@keyframes moteDrift{0%{opacity:.15;transform:translate(0,0)}to{opacity:.3;transform:translate(14px,-24px)}}@keyframes introLineDraw{0%{width:0}to{width:40%}}@keyframes introLineFade{to{opacity:0}}@keyframes bloom{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1.6)}}@keyframes introPhotoIn{0%{opacity:0}to{opacity:1}}@keyframes giftPulseOnce{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes reasonRuleDraw{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes hintChevronFloat{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes hintChevronTap{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(6px)scale(1.12)}}@keyframes photoFade{0%{opacity:0}to{opacity:1}}@keyframes equalizerPulse{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@keyframes nodePulse{0%,to{opacity:.75}50%{opacity:1}}@keyframes candleFlicker{0%{opacity:.82;transform:translate(-50%)rotate(42deg)scale(.92,1.04)}45%{opacity:1;transform:translate(-50%)rotate(48deg)scale(1.04,.94)}to{opacity:.88;transform:translate(-50%)rotate(44deg)scale(.96,1.12)}}@keyframes goldenBurst{0%{opacity:0;transform:translateY(0)scale(.4)}25%{opacity:.8}to{opacity:0;transform:translateY(-42px)scale(.1)}}@keyframes petalBurst{0%{transform:rotate(var(--angle)) translateY(0) rotate(18deg);opacity:0}18%{opacity:.9}to{transform:rotate(var(--angle)) translateY(-76px) rotate(82deg);opacity:0}}@keyframes ruleReveal{0%{opacity:0;width:0}to{opacity:1;width:120px}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-12px)rotate(0)}20%{opacity:1}to{opacity:0;transform:translateY(330px)rotate(240deg)}}@media (width>=820px){.stage{padding-inline:2rem}}@media (width<=768px){.intro-sequence{--intro-text-scale:.8}.intro-skip{top:18px;right:54px}.intro-slate p{font-size:9px}.intro-name-reveal h1{font-size:clamp(58px,18vw,96px)}.intro-hero-entrance{grid-template-rows:44vh 56vh;grid-template-columns:1fr}.intro-hero-shade{background:linear-gradient(#0000001f,#0e080bb8),#0e080b2e;width:100%;min-height:44vh}.intro-hero-copy{background:#0e080bd1;grid-column:1;justify-content:flex-start;min-height:56vh;padding:1.5rem 1.5rem 2rem}.intro-hero-copy h1{font-size:clamp(31px,7.65vw,44px)}.intro-hero-copy .scene-subtitle{margin:16px 0 20px;font-size:14px}.stage{padding:max(4.8rem, env(safe-area-inset-top)) .85rem max(3.4rem, env(safe-area-inset-bottom))}h1{font-size:clamp(27px,4.25vw,48px)}.scene-card{padding:1.25rem 1.5rem}.hero-scene{grid-template-rows:44vh 56vh;grid-template-columns:1fr;height:100vh;min-height:100vh;max-height:100vh}.hero-media{flex-shrink:1;width:100%;height:44vh;min-height:44vh;-webkit-mask-image:linear-gradient(#000 50%,#0000 100%);mask-image:linear-gradient(#000 50%,#0000 100%)}.hero-photo img{object-position:center 20%}.hero-card{justify-content:flex-start;width:100%;height:56vh;max-height:56vh;padding:1.5rem 1.5rem 2rem}.hero-card h1{margin-bottom:8px;font-size:clamp(31px,7.65vw,44px)}.hero-subtitle-line{font-size:clamp(15px,4.25vw,24px)!important}.hero-card .eyebrow{margin-bottom:8px;font-size:10px}.hero-card .scene-heading:after{margin-bottom:12px}.hero-card .scene-subtitle{text-align:left;margin:16px 0 20px;font-size:14px}.gift-button{width:100%;min-width:0}.gift-button+.fine-print{margin-top:8px}.progress-rail{padding-bottom:env(safe-area-inset-bottom);bottom:28px;left:auto;right:28px;transform:none}.icon-control{width:36px;min-width:36px;height:36px;min-height:36px}.reasons-scene{min-height:min(590px,100svh - 7rem)}.reason-feature-card,.reasons-final-grid{min-height:min(570px,100svh - 7rem);padding:1.5rem}.reason-feature-trigger h1{font-size:clamp(41px,12vw,68px)}.reason-feature-card.is-open .reason-feature-trigger h1{font-size:24px}.reason-open-hint svg{animation-name:hintChevronTap;animation-duration:1.05s}.reason-reveal-copy p{font-size:18px;line-height:1.85}.reasons-final-grid{grid-template-columns:1fr 1fr}.film-strip{grid-auto-flow:row;grid-auto-columns:unset;grid-template-columns:1fr;display:grid;overflow:visible}.film-strip:before,.film-strip:after{display:none}.memory-card+.memory-card{border-top:1px solid #e8a3b83d;border-left:0}.memory-overlay{opacity:1;transform:none}.letter-paper,.final-letter{padding:1.25rem}.letter-paper p,.final-letter p{font-size:16px}.finale-line{font-size:clamp(19px,5.1vw,31px)!important}}@media (width<=440px){.stage{padding-inline:.75rem}.btn{width:100%;padding-inline:18px}.icon-control{width:36px}.lamp-stage{min-height:300px}.cake{transform:translate(-50%)scale(.86)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
