:root{--text: #3e3636;--muted: #7b6a6b;--primary: #7c5357;--accent: #d4af37;--shadow: 0 24px 60px rgba(124, 83, 87, .1);--shadow-soft: 0 18px 40px rgba(166, 123, 123, .09);--container: 1120px;--radius-pill: 999px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--text);background:radial-gradient(circle at top left,rgba(232,180,184,.34),transparent 28%),radial-gradient(circle at 85% 18%,rgba(212,175,55,.12),transparent 18%),linear-gradient(180deg,#fcfaf6,#f7f1ea 52%,#fbf9f5);font-family:Questrial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit}#root{min-height:100vh}.container{width:min(calc(100% - 2rem),var(--container));margin:0 auto}.narrow{width:min(calc(100% - 2rem),820px)}.section{position:relative;padding:8rem 0}.section-tinted{background:linear-gradient(180deg,#efeeeac2,#faf6f1b8);border-top:1px solid rgba(212,175,55,.18);border-bottom:1px solid rgba(212,175,55,.18)}.page-glow{position:fixed;width:36rem;height:36rem;border-radius:50%;filter:blur(60px);opacity:.28;pointer-events:none;z-index:-1}.page-glow-left{top:-10rem;left:-16rem;background:#e8b4b88c}.page-glow-right{top:18rem;right:-14rem;background:#d4af3729}.site-header{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf9f5b8;border-bottom:1px solid rgba(212,175,55,.16)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5rem}.brand,.site-footer h3,.section-title,.hero-title,.timeline-copy h3,.lightbox-copy h3{font-family:EB Garamond,serif}.brand{font-size:clamp(1.6rem,2vw,2rem);font-style:italic;color:var(--primary)}.desktop-nav,.footer-links{display:flex;align-items:center;gap:1.5rem}.desktop-nav a,.mobile-nav a,.footer-links a,.eyebrow{letter-spacing:.14em;text-transform:uppercase;font-family:EB Garamond,serif;font-size:.82rem}.desktop-nav a,.mobile-nav a,.footer-links a{color:var(--muted);transition:color .18s ease}.desktop-nav a:hover,.mobile-nav a:hover,.footer-links a:hover{color:var(--primary)}.menu-toggle{display:none;border:0;background:transparent;color:var(--primary);padding:.2rem;cursor:pointer}.mobile-nav{display:none;flex-direction:column;gap:1rem;padding:0 1rem 1rem}.mobile-nav.is-open{display:flex}.hero{min-height:calc(100vh - 5rem);display:flex;align-items:center}.hero-inner,.closing-inner{text-align:center}.hero-title{margin:0;color:var(--primary);font-size:clamp(3rem,8vw,5.35rem);line-height:.95;letter-spacing:-.03em}.hero-copy,.section-copy,.letter-body,.timeline-copy p,.site-footer p{color:var(--muted);line-height:1.9}.hero-copy,.section-copy{max-width:42rem;margin:1.2rem auto 0;font-size:1.08rem}.hero-actions{margin-top:2rem}.button{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 1.8rem;border-radius:var(--radius-pill);font-family:EB Garamond,serif;letter-spacing:.12em;text-transform:uppercase;font-size:.86rem;transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.button:hover{transform:translateY(-1px)}.button-ghost{color:var(--primary);border:1px solid rgba(212,175,55,.56);background:#ffffff38}.button-ghost:hover{background:#e8b4b824}.button-solid{color:#fff;background:var(--primary);box-shadow:var(--shadow-soft)}.button-solid:hover{background:#956569}.eyebrow{margin:0 0 1rem;color:var(--muted)}.section-heading{text-align:center;margin-bottom:4rem}.section-title{margin:0;color:var(--primary);font-size:clamp(2.2rem,4vw,3.4rem)}.italic{font-style:italic}.letter-card{position:relative;padding:clamp(2rem,4vw,4rem);border:1px solid rgba(212,175,55,.32);background:linear-gradient(180deg,#ffffffe6,#faf5eeeb),url(https://www.transparenttextures.com/patterns/natural-paper.png);box-shadow:var(--shadow)}.letter-seal{position:absolute;top:-1.4rem;left:50%;transform:translate(-50%);display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:#fbf9f5;color:var(--accent)}.letter-body p{margin:0 0 1rem;font-size:1.08rem}.signature{padding-top:.5rem;color:var(--primary);font-size:1.7rem;font-family:EB Garamond,serif;font-style:italic}.timeline{display:grid;gap:3.5rem}.timeline-item{display:grid;grid-template-columns:1.2fr .9fr;gap:2rem;align-items:center}.timeline-item-reverse{grid-template-columns:.9fr 1.2fr}.timeline-item-reverse .timeline-copy{order:2}.timeline-item-reverse .timeline-art{order:1}.timeline-copy{position:relative;padding:2rem 2rem 2rem 0}.timeline-copy:before{content:"";position:absolute;top:1.2rem;left:-1rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 8px #d4af371f}.timeline-label{margin:0 0 .4rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}.timeline-copy h3{margin:0 0 .8rem;color:var(--primary);font-size:2rem}.timeline-art,.note{border:1px solid rgba(212,175,55,.16);box-shadow:var(--shadow-soft)}.timeline-art{min-height:240px;display:grid;place-items:center;background:linear-gradient(180deg,#ffffff8c,#f2e8dfb3);padding:1rem;text-align:center}.timeline-art span{color:#7c535794;font-family:EB Garamond,serif;font-size:1.5rem;font-style:italic}.organic-shape{border-radius:58% 42% 36% 64%/46% 35% 65% 54%}.organic-shape-one{border-radius:56% 44% 30% 70%/60% 34% 66% 40%}.organic-shape-two{border-radius:34% 66% 63% 37%/44% 55% 45% 56%}.organic-shape-three{border-radius:48% 52% 33% 67%/39% 39% 61% 61%}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:start}.polaroid{background:#ffffffdb;border:1px solid rgba(212,175,55,.14);padding:1rem 1rem 2.6rem;box-shadow:var(--shadow-soft)}.polaroid-button{width:100%;text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.polaroid-button:hover{box-shadow:0 26px 50px #7c535724}.polaroid-button:hover .polaroid-hint{opacity:1}.polaroid img{aspect-ratio:4 / 5;object-fit:cover}.polaroid figcaption{padding-top:.9rem;text-align:center;color:var(--primary);font-family:EB Garamond,serif;font-size:1.35rem;font-style:italic}.polaroid-hint{display:block;padding-top:.35rem;text-align:center;color:#7b6a6bc2;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;opacity:.68}.tilt-left{transform:rotate(-2deg)}.tilt-right{transform:rotate(2.5deg)}.offset-down{margin-top:2.4rem}.offset-up{margin-top:-1.8rem}.notes-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.note{max-width:20rem;padding:1.6rem 1.4rem;background:#ffffffbd}.note:nth-child(odd){background:#fdfbf7e6}.note .material-symbols-outlined{color:var(--primary);font-size:1.6rem}.note p{margin:.75rem 0 0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.35rem;font-style:italic;line-height:1.45}.closing-section{padding-top:7rem}.site-footer{padding:3rem 0 3.6rem;border-top:1px solid rgba(212,175,55,.18)}.footer-inner{text-align:center}.site-footer h3{margin:0;color:var(--primary);font-size:1.8rem}.site-footer p{margin:.5rem 0 1rem}.site-footer small{display:block;margin-top:1.4rem;color:#7b6a6bb8}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#1c1515a3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:40}.lightbox-panel{position:relative;width:min(100%,980px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:1.5rem;padding:1.2rem;background:linear-gradient(180deg,#fffffff2,#faf5eef5);border:1px solid rgba(212,175,55,.24);box-shadow:0 24px 80px #00000029}.lightbox-close{position:absolute;top:.7rem;right:.7rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.lightbox-image{width:100%;height:100%;max-height:72vh;object-fit:cover}.lightbox-copy{display:flex;flex-direction:column;justify-content:center;padding:1rem 1rem 1rem .5rem}.lightbox-copy h3{margin:0;color:var(--primary);font-size:clamp(2rem,4vw,3rem)}.lightbox-copy p:last-child{margin:1rem 0 0;color:var(--muted);line-height:1.8;font-size:1.02rem}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (max-width: 900px){.timeline-item,.timeline-item-reverse{grid-template-columns:1fr}.timeline-item-reverse .timeline-copy,.timeline-item-reverse .timeline-art{order:initial}.timeline-copy{padding:0}.timeline-copy:before{display:none}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lightbox-panel{grid-template-columns:1fr}.lightbox-copy{padding:.25rem .2rem .5rem}}@media (max-width: 720px){.section{padding:6rem 0}.desktop-nav{display:none}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.hero-title{font-size:clamp(2.7rem,12vw,4.3rem)}.gallery-grid{grid-template-columns:1fr}.offset-down,.offset-up{margin-top:0}.tilt-left,.tilt-right{transform:none}.footer-links{flex-direction:column;gap:.8rem}}.hero-action-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem}.button-soft{color:var(--primary);border:1px solid rgba(124,83,87,.14);background:#ffffffbd;box-shadow:var(--shadow-soft)}.button-soft:hover{background:#e8b4b82e}.music-player{position:fixed;right:1rem;bottom:1rem;z-index:30;width:min(100% - 2rem,360px)}.music-player-toggle{position:absolute;top:-.9rem;right:1rem;display:grid;place-items:center;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:var(--primary);color:#fff;box-shadow:var(--shadow-soft);cursor:pointer}.music-player-panel{padding:1.25rem;border:1px solid rgba(212,175,55,.24);background:linear-gradient(180deg,#fffffff2,#faf5eef5);box-shadow:0 24px 80px #00000024;transform:translateY(calc(100% - 4.6rem));transition:transform .22s ease}.music-player.is-open .music-player-panel{transform:translateY(0)}.music-player-label{margin-bottom:.4rem}.music-player-header h3{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.8rem}.music-player-artist{margin:.4rem 0 0;color:var(--muted)}.music-player-progress{margin-top:1rem}.music-player-progress input{width:100%;accent-color:var(--primary)}.music-player-time{display:flex;justify-content:space-between;margin-top:.35rem;color:var(--muted);font-size:.82rem}.music-player-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1rem}.music-player-controls button{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.music-player-controls .music-player-primary{width:3.3rem;height:3.3rem;background:var(--primary);color:#fff}.music-player-playlist{display:grid;gap:.55rem;margin-top:1rem}.music-track{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.8rem .9rem;border:1px solid rgba(124,83,87,.08);background:#ffffff9e;color:var(--text);text-align:left;cursor:pointer}.music-track.is-active{border-color:#d4af375c;background:#e8b4b81f}.music-track-title{color:var(--primary);font-family:EB Garamond,serif;font-size:1.08rem}.music-track-artist{color:var(--muted);font-size:.84rem}@media (max-width: 720px){.music-player{right:.75rem;left:.75rem;width:auto}.music-player-panel{transform:translateY(calc(100% - 4.2rem))}.hero-action-row{flex-direction:column;align-items:center}}.music-player-fallback{margin-top:1rem;padding:.95rem;border:1px solid rgba(212,175,55,.24);background:#e8b4b81a}.music-player-fallback p{margin:0 0 .75rem;color:var(--muted);line-height:1.7;font-size:.92rem}.memory-video-thumb{position:relative}.memory-video-thumb video{width:100%;aspect-ratio:4 / 5;object-fit:cover;display:block}.memory-badge{position:absolute;right:.75rem;bottom:.75rem;padding:.3rem .55rem;background:#3e3636c7;color:#fff;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.chapter-frame{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.chapter-rail{position:sticky;top:0;height:100vh;padding:2rem 1.4rem;border-right:1px solid rgba(212,175,55,.16);background:#fbf9f5b8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:1.5rem}.chapter-brand{display:inline-block}.chapter-meta h2{margin:.35rem 0 0;color:var(--primary);font-family:EB Garamond,serif;font-size:2rem}.chapter-nav{display:grid;gap:.5rem}.chapter-link{display:flex;align-items:center;gap:.9rem;padding:.85rem .95rem;border:1px solid transparent;color:var(--muted)}.chapter-link.is-active{border-color:#d4af374d;background:#e8b4b814;color:var(--primary)}.chapter-index{font-family:EB Garamond,serif;font-size:1.05rem;letter-spacing:.08em}.chapter-rail-button{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:0;padding:.95rem 1rem;background:var(--primary);color:#fff;cursor:pointer}.chapter-main{min-width:0}.chapter-page{min-height:calc(100vh - 6rem);display:flex;align-items:center;padding:3rem 0 1rem}.chapter-shell{width:min(calc(100% - 2rem),1100px)}.chapter-heading{margin-bottom:2rem}.chapter-title{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:clamp(3rem,8vw,5rem);line-height:.95}.chapter-copy{max-width:42rem;margin:1rem 0 0;color:var(--muted);line-height:1.9;font-size:1.06rem}.intro-card,.ending-card,.timeline-panel,.memory-gallery-panel{padding:2rem;border:1px solid rgba(212,175,55,.18);background:#ffffff80;box-shadow:var(--shadow-soft)}.intro-card p,.ending-card p{max-width:42rem;color:var(--muted);line-height:1.9;font-size:1.08rem}.letter-card-page{max-width:900px;margin:0 auto}.memories-layout{display:grid;gap:1.5rem}.chapter-panel-heading{margin-bottom:2rem;text-align:left}.notes-wrap-page{justify-content:flex-start}@media (max-width: 980px){.chapter-frame{grid-template-columns:1fr}.chapter-rail{position:static;height:auto;border-right:0;border-bottom:1px solid rgba(212,175,55,.16)}.chapter-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-rail-button{margin-top:0}}@media (max-width: 720px){.chapter-nav{grid-template-columns:1fr}.chapter-page{padding-top:2rem}.chapter-title{font-size:clamp(2.6rem,13vw,4rem)}.chapter-pager{gap:1rem;flex-wrap:wrap}}.chapter-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem}.chapter-actions>span{display:block}@media (max-width: 720px){.chapter-actions{flex-direction:column;align-items:stretch}.chapter-actions .button{justify-content:center}}.birthday-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at top,rgba(249,214,173,.22),transparent 30%),radial-gradient(circle at 80% 20%,rgba(255,173,173,.18),transparent 28%),linear-gradient(180deg,#2f1618,#140b0f 52%,#090608)}.birthday-intro:before,.birthday-intro:after,.return-reveal:before,.return-reveal:after{content:"";position:absolute;border-radius:999px;filter:blur(18px);opacity:.32}.birthday-intro:before,.return-reveal:before{width:18rem;height:18rem;top:8%;left:-4rem;background:#ffd0ba33}.birthday-intro:after,.return-reveal:after{width:22rem;height:22rem;right:-6rem;bottom:-4rem;background:#ffb4a21f}.birthday-intro-count{position:relative;z-index:1;font-family:EB Garamond,serif;font-size:clamp(8rem,28vw,13rem);line-height:1;color:#fff5ee;text-shadow:0 0 42px rgba(255,221,204,.24);animation:birthdayPulse .9s ease both}.birthday-intro-reveal{position:relative;z-index:1;width:min(90vw,38rem);display:grid;gap:1rem;text-align:center;color:#fff5ee;animation:birthdayReveal .9s ease both}.birthday-intro-reveal p{margin:0;font-family:Questrial,sans-serif;font-size:.82rem;letter-spacing:.3em;text-transform:uppercase;color:#ffe8e0bd}.birthday-intro-reveal h1{margin:0;font-family:Cormorant Garamond,EB Garamond,serif;font-size:clamp(3.1rem,10vw,5.9rem);font-weight:500;line-height:.94}.birthday-intro-arrow{justify-self:center;width:3.6rem;height:3.6rem;margin-top:.7rem;display:grid;place-items:center;border:1px solid rgba(255,233,225,.22);border-radius:999px;background:#fff8f41a;color:#fff8f4;cursor:pointer;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.birthday-intro-arrow:hover{transform:translate(3px);background:#fff8f429;border-color:#ffe9e15c}.birthday-intro-arrow .material-symbols-outlined{font-size:1.55rem}.ending-surprise-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem;margin-top:1.35rem}.return-reveal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;display:grid;place-items:center;padding:1.25rem;overflow:hidden;background:radial-gradient(circle at top,rgba(249,214,173,.18),transparent 30%),radial-gradient(circle at 80% 20%,rgba(255,173,173,.16),transparent 28%),linear-gradient(180deg,#1a0e12f5,#10090cfa)}.return-reveal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:transparent}.return-reveal-panel{position:relative;z-index:1;width:min(92vw,48rem);padding:clamp(2rem,5vw,3.5rem);border:1px solid rgba(255,226,213,.12);border-radius:32px;background:linear-gradient(180deg,#fff8f30f,#fff8f308);box-shadow:0 28px 80px #00000057;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.return-reveal-close{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#fff8f414;color:#fff1ebe6;cursor:pointer}.return-reveal-copy{display:grid;gap:1rem;color:#fff6f0}.return-reveal-line,.return-reveal-punchline,.return-reveal-subcopy{opacity:0;animation:birthdayReveal .7s ease forwards}.return-reveal-line{margin:0;max-width:34rem;font-size:clamp(1.05rem,2.3vw,1.35rem);line-height:1.9;color:#ffece4d1}.return-reveal-punchline{margin:.6rem 0 0;font-family:Cormorant Garamond,EB Garamond,serif;font-size:clamp(3.8rem,12vw,6.8rem);font-weight:500;line-height:.95;color:#fff8f4}.return-reveal-subcopy{margin:0;max-width:33rem;font-size:.98rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.8;color:#ffe9e1a8}.delay-one{animation-delay:.12s}.delay-two{animation-delay:.52s}.delay-three{animation-delay:.92s}.delay-four{animation-delay:1.4s}.delay-five{animation-delay:1.88s}@keyframes birthdayPulse{0%{opacity:0;transform:scale(.72)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.06)}}@keyframes birthdayReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.music-player{padding:1.25rem;border:1px solid rgba(212,175,55,.24);border-radius:28px;background:linear-gradient(180deg,#fffffff2,#faf5eef5);box-shadow:0 24px 80px #00000024;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-height:calc(100vh - 2rem);overflow-y:auto;overscroll-behavior:contain}.music-player::-webkit-scrollbar{width:8px}.music-player::-webkit-scrollbar-thumb{background:#7c53572e;border-radius:999px}.music-player-header{position:sticky;top:-1.25rem;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:-1.25rem -1.25rem 0;padding:1.25rem 1.25rem .85rem;background:linear-gradient(180deg,#faf5eefa,#faf5eeeb);border-top-left-radius:28px;border-top-right-radius:28px}.music-player-header .eyebrow{margin-bottom:.35rem}.music-player-header .section-title{font-size:2.15rem}.player-close-button{display:grid;place-items:center;width:2.45rem;height:2.45rem;flex:0 0 auto;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer;position:relative;z-index:3}.player-now-playing{margin-top:1rem;padding:.95rem 1rem;border:1px solid rgba(124,83,87,.08);border-radius:18px;background:#ffffff9e}.player-track-title{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.22rem;line-height:1.25}.player-track-artist{margin:.35rem 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.player-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1rem}.player-icon-button{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.player-icon-button:nth-child(2){width:3.3rem;height:3.3rem;background:var(--primary);color:#fff}.player-progress{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin-top:1rem}.player-progress span{color:var(--muted);font-size:.82rem;white-space:nowrap}.player-progress input{width:100%;min-width:0;accent-color:var(--primary)}.player-fallback-copy{margin:1rem 0 0;padding:.95rem;border:1px solid rgba(212,175,55,.24);border-radius:18px;background:#e8b4b81a;color:var(--muted);line-height:1.6}.player-playlist{display:grid;gap:.65rem;margin-top:1rem;padding-bottom:.15rem}.playlist-item{display:grid;gap:.2rem;width:100%;padding:.9rem 1rem;border:1px solid rgba(124,83,87,.08);border-radius:18px;background:#ffffff9e;color:var(--text);text-align:left;cursor:pointer}.playlist-item span{display:block;color:var(--primary);font-family:EB Garamond,serif;font-size:1.06rem;line-height:1.25}.playlist-item small{display:block;color:var(--muted);font-size:.8rem;line-height:1.45}.playlist-item.is-active{border-color:#d4af375c;background:#e8b4b81f}.chapter-content{min-width:0;padding-bottom:18rem}@media (max-width: 980px){.chapter-frame{grid-template-columns:1fr}.chapter-rail{position:static;height:auto;min-height:0;padding:1.1rem 1rem 1rem;gap:1rem;border-right:0;border-bottom:1px solid rgba(212,175,55,.16)}.chapter-meta{display:grid;gap:.2rem}.chapter-rail-title{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.5rem}.chapter-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-link{min-width:0}.chapter-link strong{font-size:.95rem}.chapter-player-trigger{width:100%;justify-content:center}.chapter-page{min-height:0;padding:2rem 0 1rem}.chapter-shell{width:min(calc(100% - 1.5rem),1100px)}.intro-card,.ending-card,.timeline-panel,.memory-gallery-panel{padding:1.4rem}}@media (max-width: 720px){.chapter-content{padding-bottom:24rem}.birthday-intro-reveal{width:min(92vw,30rem)}.ending-surprise-actions{flex-direction:column;align-items:stretch}.ending-surprise-actions .button{justify-content:center}.music-player{right:.75rem;left:.75rem;bottom:.75rem;width:auto;padding:1rem;border-radius:22px;max-height:min(32rem,calc(100vh - 1rem))}.music-player-header{top:-1rem;margin:-1rem -1rem 0;padding:1rem 1rem .75rem;border-top-left-radius:22px;border-top-right-radius:22px}.music-player-header .section-title{font-size:1.8rem}.player-progress{grid-template-columns:1fr;gap:.55rem}.player-progress span{font-size:.78rem}.player-progress span:last-child{justify-self:end}.player-playlist{gap:.55rem}.playlist-item{padding:.82rem .9rem}.playlist-item span{font-size:1rem}.return-reveal-panel{padding:1.6rem 1.25rem 2rem}.return-reveal-line{font-size:1rem;line-height:1.8}.return-reveal-subcopy{font-size:.86rem;letter-spacing:.1em}.chapter-nav{grid-template-columns:1fr}.chapter-page{padding-top:1.35rem}.chapter-heading{margin-bottom:1.35rem}.chapter-title{font-size:clamp(2.45rem,12vw,3.8rem)}.chapter-copy,.intro-card p,.ending-card p{font-size:.98rem;line-height:1.75}.hero-action-row{flex-direction:column;align-items:stretch}.hero-action-row .button{justify-content:center}.gallery-grid{grid-template-columns:1fr;gap:1rem}.timeline{gap:2rem}.timeline-copy h3{font-size:1.6rem}.timeline-art{min-height:180px}.notes-wrap-page{gap:.9rem}.note{max-width:none;width:100%}.chapter-actions{flex-direction:column;align-items:stretch}.chapter-actions .button{justify-content:center}.memory-modal-card,.lightbox-panel{width:min(100%,100%)}}@media (max-width: 520px){.chapter-content{padding-bottom:26rem}.chapter-rail{padding-inline:.85rem}.chapter-shell{width:min(calc(100% - 1rem),1100px)}.intro-card,.ending-card,.timeline-panel,.memory-gallery-panel,.letter-card{padding:1.15rem}.chapter-link{padding:.75rem .8rem}.chapter-rail-title{font-size:1.35rem}.button{width:100%;justify-content:center}.player-now-playing{padding:.82rem .9rem}.return-reveal-punchline{font-size:clamp(3rem,16vw,4.8rem)}}@font-face{font-family:Ruthligos;src:url(/fonts/Ruthligos.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}.music-player:not(.is-open){display:none}.memory-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:1.25rem}.memory-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#1c1515a3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.memory-modal-card{position:relative;z-index:1;width:min(100%,980px);max-height:calc(100vh - 2.5rem);overflow:auto;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:1.5rem;padding:1.2rem;background:linear-gradient(180deg,#fffffff2,#faf5eef5);border:1px solid rgba(212,175,55,.24);box-shadow:0 24px 80px #00000029}.memory-modal-close{position:absolute;top:.7rem;right:.7rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.memory-modal-media{width:100%;height:100%;max-height:72vh;object-fit:cover}.memory-modal-copy{display:flex;flex-direction:column;justify-content:center;padding:1rem 1rem 1rem .5rem}.memory-modal-copy h3{margin:0;color:var(--primary);font-size:clamp(2rem,4vw,3rem)}.memory-modal-copy p:last-child{margin:1rem 0 0;color:var(--muted);line-height:1.8;font-size:1.02rem}@media (max-width: 900px){.memory-modal-card{grid-template-columns:1fr}.memory-modal-copy{padding:.25rem .2rem .5rem}}@media (max-width: 720px){.chapter-page{padding-top:2.4rem}.chapter-shell{width:min(calc(100% - 1.1rem),1100px)}.chapter-heading{margin-bottom:1rem}.chapter-title{font-size:clamp(2rem,10.8vw,3rem);line-height:1.02;overflow-wrap:anywhere}.chapter-copy{margin-top:.7rem;font-size:.95rem;line-height:1.65}.notes-wrap-page{gap:.8rem}.note{width:100%;max-width:none;padding:1.1rem 1rem;border-radius:28px}.note p{font-size:1.18rem;line-height:1.45}.note .material-symbols-outlined{font-size:1.35rem}.memory-modal{padding:.85rem}.memory-modal-card{max-height:calc(100vh - 1.7rem);gap:1rem;padding:1rem}.memory-modal-media{max-height:42vh}}@media (max-width: 520px){.chapter-page{padding-top:2.8rem}.chapter-shell{width:min(calc(100% - .85rem),1100px)}.chapter-title{font-size:clamp(1.8rem,10vw,2.45rem)}.chapter-copy{font-size:.92rem}.note{padding:1rem .92rem}.note p{font-size:1.08rem}}.memory-photo-thumb{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:#1d1717;isolation:isolate}.memory-photo-thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 28%,rgba(31,19,19,.26));pointer-events:none}.memory-photo-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:repeating-linear-gradient(180deg,rgba(255,255,255,.08) 0,rgba(255,255,255,.08) 1px,transparent 1px,transparent 7px);mix-blend-mode:soft-light;opacity:.34;pointer-events:none}.memory-photo-thumb img,.memory-modal-photo img{width:100%;height:100%;aspect-ratio:auto;display:block;object-fit:cover;transform:scale(1.08);animation:memoryKenBurns 12s ease-in-out infinite alternate}.cinematic-still.slow-pan .memory-photo-thumb img,.memory-modal-photo.slow-pan img{animation-duration:16s}.cinematic-still.drift-left .memory-photo-thumb img,.memory-modal-photo.drift-left img{animation-name:memoryDriftLeft}.screen-memory .memory-photo-thumb img,.memory-modal-photo.screen-memory img{object-position:top center}.travel-frame .memory-photo-thumb img,.memory-modal-photo.travel-frame img{object-position:center 42%}.reunion-frame .memory-photo-thumb img,.memory-modal-photo.reunion-frame img{object-position:center center}.polaroid-button.cinematic-still{position:relative}.polaroid-button.cinematic-still figcaption{padding-top:.75rem}.polaroid-button.cinematic-still .polaroid-hint{color:#7c5357ad}.memory-modal-photo{overflow:hidden;aspect-ratio:4 / 5;height:auto;min-height:min(72vh,620px);background:#1d1717}.memory-modal-photo img{max-height:none}@keyframes memoryKenBurns{0%{transform:scale(1.08) translate3d(calc(-1.5% + (var(--pointer-x, 0) * -10px)),calc(-1% + (var(--parallax-progress, 0) * 18px)),0)}to{transform:scale(1.19) translate3d(calc(1.5% + (var(--pointer-x, 0) * 10px)),calc(1.25% + (var(--parallax-progress, 0) * -18px)),0)}}@keyframes memoryDriftLeft{0%{transform:scale(1.1) translate3d(calc(2% + (var(--pointer-x, 0) * 10px)),calc(-1% + (var(--parallax-progress, 0) * 18px)),0)}to{transform:scale(1.21) translate3d(calc(-2% + (var(--pointer-x, 0) * -10px)),calc(1.5% + (var(--parallax-progress, 0) * -18px)),0)}}@media (max-width: 720px){.memory-photo-thumb{aspect-ratio:9 / 12}.memory-modal-photo{min-height:0;max-height:48vh}}@media (prefers-reduced-motion: reduce){.memory-photo-thumb img,.memory-modal-photo img{animation:none;transform:scale(1.08)}}.timeline-art{position:relative;overflow:hidden;min-height:280px;padding:0;isolation:isolate;background:#1d1717}.timeline-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 35%,rgba(28,17,17,.62));pointer-events:none}.timeline-art img{width:100%;height:100%;min-height:280px;display:block;object-fit:cover;transform:scale(1.08);animation:memoryKenBurns 15s ease-in-out infinite alternate}.timeline-art span{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;padding:.75rem .9rem;background:#fffbf4e0;color:var(--primary);font-size:1.05rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.timeline-item-reverse .timeline-art img{animation-name:memoryDriftLeft}@media (max-width: 720px){.timeline-art,.timeline-art img{min-height:340px}}.memory-gallery-panel{position:relative;overflow:hidden}.memory-gallery-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent),radial-gradient(circle at 20% 12%,rgba(212,175,55,.12),transparent 28%);transform:translate(-120%);animation:filmLightSweep 10s ease-in-out infinite;pointer-events:none}.polaroid-button.cinematic-still{animation:sceneFloat 7s ease-in-out infinite alternate;animation-delay:calc(var(--scene-order, 0) * -.62s)}.gallery-grid .polaroid-button:nth-child(1){--scene-order: 1}.gallery-grid .polaroid-button:nth-child(2){--scene-order: 2}.gallery-grid .polaroid-button:nth-child(3){--scene-order: 3}.gallery-grid .polaroid-button:nth-child(4){--scene-order: 4}.gallery-grid .polaroid-button:nth-child(5){--scene-order: 5}.gallery-grid .polaroid-button:nth-child(6){--scene-order: 6}.memory-photo-thumb{box-shadow:inset 0 0 0 1px #ffffff2e}.memory-photo-thumb:before{background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 28%,rgba(31,19,19,.3)),linear-gradient(90deg,rgba(0,0,0,.42) 0 8px,transparent 8px calc(100% - 8px),rgba(0,0,0,.42) calc(100% - 8px))}.memory-scene-index{position:absolute;top:.7rem;left:.7rem;z-index:3;padding:.34rem .5rem;background:#1d17179e;color:#fffbf4eb;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.memory-photo-thumb .memory-badge{z-index:3}.memory-modal-photo{position:relative;isolation:isolate}.memory-modal-photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 32%,rgba(24,16,16,.34)),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 6px);mix-blend-mode:soft-light;pointer-events:none}.memory-modal-film-label{position:absolute;left:1rem;bottom:1rem;z-index:2;padding:.45rem .7rem;background:#1d1717ad;color:#fffbf4eb;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.memory-modal-card{animation:modalSceneIn .42s ease both}@keyframes filmLightSweep{0%,68%{transform:translate(-130%);opacity:0}76%{opacity:.7}to{transform:translate(130%);opacity:0}}@keyframes sceneFloat{0%{transform:translateZ(0) rotate(var(--scene-rotate, 0deg))}to{transform:translate3d(0,-7px,0) rotate(var(--scene-rotate, 0deg))}}@keyframes modalSceneIn{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.tilt-left.cinematic-still{--scene-rotate: -1.2deg}.tilt-right.cinematic-still{--scene-rotate: 1.2deg}@media (max-width: 720px){.memory-scene-index,.memory-modal-film-label{font-size:.62rem}}@media (prefers-reduced-motion: reduce){.memory-gallery-panel:before,.polaroid-button.cinematic-still,.memory-modal-card{animation:none}}.parallax-stage{--pointer-x: 0;--pointer-y: 0;perspective:1200px}.parallax-layer{--parallax-progress: 0;--parallax-strength: 28px;--pointer-strength: 10px;will-change:transform}.timeline-art.parallax-layer{transform:translate3d(calc(var(--pointer-x) * var(--pointer-strength) * -1),calc(var(--parallax-progress) * var(--parallax-strength)),0) rotateX(calc(var(--pointer-y) * -2deg)) rotateY(calc(var(--pointer-x) * 2deg));transition:transform .18s ease-out}.timeline-art.parallax-layer img{transform:scale(1.12) translate3d(calc(var(--pointer-x) * 12px),calc(var(--parallax-progress) * -24px),0);animation:memoryKenBurns 15s ease-in-out infinite alternate}.timeline-item-reverse .timeline-art.parallax-layer img{animation-name:memoryDriftLeft}.memory-photo-thumb.parallax-layer{transform:translate3d(calc(var(--pointer-x) * var(--pointer-strength)),calc(var(--parallax-progress) * var(--parallax-strength) * -.72),0) rotateX(calc(var(--pointer-y) * -1.4deg)) rotateY(calc(var(--pointer-x) * 1.4deg));transition:transform .16s ease-out}.memory-photo-thumb.parallax-layer img{transform:scale(1.13) translate3d(calc(var(--pointer-x) * -10px),calc(var(--parallax-progress) * 18px),0)}.cinematic-still.slow-pan .memory-photo-thumb.parallax-layer img,.memory-modal-photo.slow-pan img{animation-duration:16s}.cinematic-still.drift-left .memory-photo-thumb.parallax-layer img,.memory-modal-photo.drift-left img{animation-name:memoryDriftLeft}.gallery-grid .polaroid-button:nth-child(odd) .memory-photo-thumb.parallax-layer{--parallax-strength: 34px;--pointer-strength: 12px}.gallery-grid .polaroid-button:nth-child(2n) .memory-photo-thumb.parallax-layer{--parallax-strength: 22px;--pointer-strength: -8px}.memory-gallery-panel,.timeline-panel{transform-style:preserve-3d}.timeline-copy{transform:translate3d(0,calc(var(--parallax-progress, 0) * -8px),0)}@media (max-width: 720px){.parallax-stage{perspective:none}.parallax-layer{--parallax-strength: 14px;--pointer-strength: 0px}.timeline-art.parallax-layer,.memory-photo-thumb.parallax-layer{rotate:0deg}}@media (prefers-reduced-motion: reduce){.timeline-art.parallax-layer,.timeline-art.parallax-layer img,.memory-photo-thumb.parallax-layer,.memory-photo-thumb.parallax-layer img,.timeline-copy{transform:none;transition:none}}.memory-modal-card{perspective:1100px;transform-style:preserve-3d}.memory-modal-photo{box-shadow:0 24px 60px #2417183d;transform:translateZ(22px) rotateX(.6deg) rotateY(-.7deg);animation:modalPhotoFloat 6.5s ease-in-out infinite alternate}.memory-modal-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(105deg,transparent 0 38%,rgba(255,255,255,.34) 48%,transparent 58% 100%);transform:translate(-130%);animation:modalLightSweep 4.8s ease-in-out infinite;pointer-events:none}.memory-modal-photo img{animation:modalImageDrift 9s ease-in-out infinite alternate;will-change:transform}.memory-modal-depth{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.memory-modal-depth-back{background:radial-gradient(circle at 18% 22%,rgba(212,175,55,.22),transparent 28%);mix-blend-mode:soft-light;animation:modalDepthBack 7s ease-in-out infinite alternate}.memory-modal-depth-front{background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.18),transparent 18%),linear-gradient(180deg,transparent,rgba(27,18,19,.18));animation:modalDepthFront 5.6s ease-in-out infinite alternate}.memory-modal-copy-line{opacity:0;transform:translateY(14px);animation:modalCopyReveal .56s ease both}.memory-modal-copy-line:nth-child(1){animation-delay:.13s}.memory-modal-copy-line:nth-child(2){animation-delay:.23s}.memory-modal-copy-line:nth-child(3){animation-delay:.34s}@keyframes modalPhotoFloat{0%{transform:translateZ(22px) rotateX(.6deg) rotateY(-.7deg)}to{transform:translate3d(0,-10px,34px) rotateX(-.8deg) rotateY(.8deg)}}@keyframes modalImageDrift{0%{transform:scale(1.08) translate3d(-2%,-1.2%,0)}to{transform:scale(1.2) translate3d(2%,1.7%,0)}}@keyframes modalLightSweep{0%,42%{opacity:0;transform:translate(-130%)}56%{opacity:.85}to{opacity:0;transform:translate(130%)}}@keyframes modalDepthBack{0%{transform:translate3d(-12px,-8px,0) scale(1.02)}to{transform:translate3d(14px,10px,0) scale(1.08)}}@keyframes modalDepthFront{0%{transform:translate3d(10px,6px,0);opacity:.48}to{transform:translate3d(-8px,-8px,0);opacity:.82}}@keyframes modalCopyReveal{to{opacity:1;transform:translateY(0)}}@media (max-width: 720px){.memory-modal-photo{transform:none;animation-duration:7.5s}}@media (prefers-reduced-motion: reduce){.memory-modal-photo,.memory-modal-photo:after,.memory-modal-photo img,.memory-modal-depth,.memory-modal-copy-line{animation:none;transform:none;opacity:1}}.memory-modal-photo .memory-modal-film-label{z-index:4}.birthday-intro{overflow:hidden}.birthday-intro.is-leaving{pointer-events:none;animation:introLeaveFrame .76s cubic-bezier(.76,0,.24,1) forwards}.birthday-intro.is-leaving:before{animation:introCurtainSweep .76s cubic-bezier(.76,0,.24,1) forwards}.birthday-intro.is-leaving:after{animation:introAfterglowExit .76s ease forwards}.birthday-intro.is-leaving .birthday-intro-reveal p{animation:introTextExit .46s ease forwards}.birthday-intro.is-leaving .birthday-intro-reveal h1{animation:introTitleExit .62s cubic-bezier(.76,0,.24,1) forwards}.birthday-intro.is-leaving .birthday-intro-arrow{animation:introArrowExit .46s cubic-bezier(.76,0,.24,1) forwards}@keyframes introLeaveFrame{0%{opacity:1;filter:blur(0);clip-path:inset(0 0 0 0);transform:translateZ(0) scale(1)}52%{opacity:.92;filter:blur(.5px);clip-path:inset(0 0 0 0);transform:translate3d(0,-1.2%,0) scale(1.012)}to{opacity:0;filter:blur(3px);clip-path:inset(0 0 100% 0);transform:translate3d(0,-5%,0) scale(1.035)}}@keyframes introCurtainSweep{0%{transform:translate3d(-18%,16%,0) rotate(-8deg) scale(1.08);opacity:.12}to{transform:translate3d(58%,-28%,0) rotate(-8deg) scale(1.22);opacity:.68}}@keyframes introAfterglowExit{to{opacity:0;transform:scale(1.2)}}@keyframes introTextExit{to{opacity:0;transform:translateY(-16px)}}@keyframes introTitleExit{to{opacity:0;letter-spacing:.06em;transform:translate3d(0,-44px,80px) scale(1.06)}}@keyframes introArrowExit{45%{opacity:1;transform:translate(22px) scale(.92)}to{opacity:0;transform:translate(86px) scale(.72)}}@media (prefers-reduced-motion: reduce){.birthday-intro.is-leaving,.birthday-intro.is-leaving:before,.birthday-intro.is-leaving:after,.birthday-intro.is-leaving .birthday-intro-reveal p,.birthday-intro.is-leaving .birthday-intro-reveal h1,.birthday-intro.is-leaving .birthday-intro-arrow{animation-duration:1ms}}.birthday-intro-reveal{width:min(92vw,44rem);gap:.8rem}.birthday-intro-kicker,.birthday-intro-subtitle{animation:introRevealLift .76s ease both}.birthday-intro-ornament{justify-self:center;width:min(16rem,54vw);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;opacity:0;animation:introRevealLift .76s ease .16s both}.birthday-intro-ornament span{height:1px;background:linear-gradient(90deg,transparent,rgba(255,226,205,.64),transparent)}.birthday-intro-ornament i{width:.48rem;height:.48rem;border:1px solid rgba(255,226,205,.72);transform:rotate(45deg);background:#ffe2cd29;box-shadow:0 0 22px #ffcdb852}.birthday-intro-title{position:relative;margin:0;display:grid;gap:.1rem;font-family:Cormorant Garamond,EB Garamond,serif;line-height:.9;text-wrap:balance;animation:introTitleBloom .9s cubic-bezier(.2,.8,.2,1) .22s both}.birthday-intro-title:after{content:"";position:absolute;top:-.35rem;right:-.8rem;bottom:-.35rem;left:-.8rem;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.32),transparent 58%);transform:translate(-120%);opacity:0;animation:introTitleShimmer 2.8s ease-in-out 1.8s infinite;pointer-events:none}.birthday-intro-title span{color:#fff5eedb;font-size:clamp(2.45rem,7vw,4.8rem);font-weight:500}.birthday-intro-title strong{display:block;color:#fff8f4;font-size:clamp(4.4rem,16vw,9.2rem);font-weight:600;letter-spacing:.015em;text-shadow:0 0 28px rgba(255,210,190,.22),0 18px 54px rgba(6,3,4,.42)}.birthday-intro-subtitle{max-width:31rem;justify-self:center;margin:.3rem 0 0;color:#ffe8e0b8;font-size:clamp(.86rem,2.2vw,1rem);letter-spacing:.08em;line-height:1.8;text-transform:none;animation-delay:.42s}.birthday-intro-reveal .birthday-intro-arrow{animation:introRevealLift .62s ease .42s both}@keyframes introRevealLift{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes introTitleBloom{0%{opacity:0;filter:blur(10px);transform:translateY(18px) scale(.96)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes introTitleShimmer{0%{transform:translate(-125%);opacity:0}18%{opacity:.62}42%,to{transform:translate(125%);opacity:0}}.birthday-intro.is-leaving .birthday-intro-kicker,.birthday-intro.is-leaving .birthday-intro-ornament,.birthday-intro.is-leaving .birthday-intro-subtitle{animation:introTextExit .34s ease forwards}.birthday-intro.is-leaving .birthday-intro-title{animation:introTitleExit .42s cubic-bezier(.76,0,.24,1) forwards}.birthday-intro.is-leaving .birthday-intro-title:after{animation:none;opacity:0}@media (max-width: 520px){.birthday-intro-title span{font-size:clamp(2.2rem,12vw,3.25rem)}.birthday-intro-title strong{font-size:clamp(4rem,22vw,6.4rem)}.birthday-intro-subtitle{max-width:18rem;font-size:.78rem}}@media (prefers-reduced-motion: reduce){.birthday-intro-kicker,.birthday-intro-subtitle,.birthday-intro-ornament,.birthday-intro-title,.birthday-intro-title:after,.birthday-intro-reveal .birthday-intro-arrow{animation:none}}.chapter-content{position:relative;overflow:hidden;perspective:1200px}.chapter-content .chapter-page{transform-origin:50% 48%;will-change:opacity,transform,filter}.page-transition-plane{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;pointer-events:none;background:linear-gradient(105deg,transparent 0 34%,rgba(255,246,238,.78) 46%,rgba(212,175,55,.2) 52%,transparent 68%),linear-gradient(180deg,#2f16182e,#09060847);opacity:0;transform:translate(-120%) skew(-8deg)}.page-transition-leaving .page-transition-plane,.page-transition-entering .page-transition-plane{animation:routePlaneSweep .76s cubic-bezier(.76,0,.24,1) both}.page-transition-leaving .chapter-page{animation:routePageLeave .3s cubic-bezier(.76,0,.24,1) both}.page-transition-entering .chapter-page{animation:routePageEnter .52s cubic-bezier(.2,.8,.2,1) both}.page-transition-entering .chapter-heading{animation:routeHeadingEnter .62s cubic-bezier(.2,.8,.2,1) both}.page-transition-entering .reveal{animation:routeLayerEnter .72s cubic-bezier(.2,.8,.2,1) both}@keyframes routePlaneSweep{0%{opacity:0;transform:translate(-120%) skew(-8deg)}32%{opacity:.95}to{opacity:0;transform:translate(120%) skew(-8deg)}}@keyframes routePageLeave{0%{opacity:1;filter:blur(0);transform:translateZ(0) scale(1) rotateX(0)}to{opacity:0;filter:blur(10px);transform:translate3d(0,-24px,-120px) scale(.965) rotateX(3deg)}}@keyframes routePageEnter{0%{opacity:0;filter:blur(12px);transform:translate3d(0,34px,-160px) scale(1.035) rotateX(-3deg)}to{opacity:1;filter:blur(0);transform:translateZ(0) scale(1) rotateX(0)}}@keyframes routeHeadingEnter{0%{opacity:0;transform:translate3d(0,24px,80px)}to{opacity:1;transform:translateZ(0)}}@keyframes routeLayerEnter{0%{opacity:0;transform:translate3d(0,44px,90px) scale(.985)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (max-width: 720px){.chapter-content{perspective:800px}.page-transition-plane{background:linear-gradient(105deg,transparent 0 32%,rgba(255,246,238,.72) 48%,transparent 66%)}}@media (prefers-reduced-motion: reduce){.page-transition-leaving .page-transition-plane,.page-transition-entering .page-transition-plane,.page-transition-leaving .chapter-page,.page-transition-entering .chapter-page,.page-transition-entering .chapter-heading,.page-transition-entering .reveal{animation:none}}.page-transition-memory-ending.page-transition-leaving .page-transition-plane,.page-transition-memory-ending.page-transition-entering .page-transition-plane{animation:memoryEndingPlaneSweep 1.18s cubic-bezier(.76,0,.24,1) both}.page-transition-memory-ending.page-transition-leaving .chapter-page{animation:memoryEndingLeave .56s cubic-bezier(.76,0,.24,1) both}.page-transition-memory-ending.page-transition-leaving .memory-gallery-panel,.page-transition-memory-ending.page-transition-leaving .timeline-panel{animation:memoryEndingLayerLeave .56s cubic-bezier(.76,0,.24,1) both}.page-transition-memory-ending.page-transition-entering .chapter-page{animation:memoryEndingEnter .72s cubic-bezier(.2,.8,.2,1) both}.page-transition-memory-ending.page-transition-entering .ending-card{animation:memoryEndingCardEnter .82s cubic-bezier(.2,.8,.2,1) 90ms both}@keyframes memoryEndingPlaneSweep{0%{opacity:0;transform:translateY(100%) scaleY(1.12)}34%{opacity:.94}58%{opacity:.88;transform:translateY(0) scaleY(1.02)}to{opacity:0;transform:translateY(-105%) scaleY(1.08)}}@keyframes memoryEndingLeave{0%{opacity:1;filter:blur(0);transform:translateZ(0) scale(1)}to{opacity:0;filter:blur(14px);transform:translate3d(0,42px,-180px) scale(.94) rotateX(-4deg)}}@keyframes memoryEndingLayerLeave{0%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(0,-26px,90px) scale(1.035)}}@keyframes memoryEndingEnter{0%{opacity:0;filter:blur(16px);transform:translate3d(0,-46px,-180px) scale(1.05) rotateX(4deg)}to{opacity:1;filter:blur(0);transform:translateZ(0) scale(1) rotateX(0)}}@keyframes memoryEndingCardEnter{0%{opacity:0;transform:translate3d(0,34px,120px) scale(.96)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (prefers-reduced-motion: reduce){.page-transition-memory-ending.page-transition-leaving .page-transition-plane,.page-transition-memory-ending.page-transition-entering .page-transition-plane,.page-transition-memory-ending.page-transition-leaving .chapter-page,.page-transition-memory-ending.page-transition-leaving .memory-gallery-panel,.page-transition-memory-ending.page-transition-leaving .timeline-panel,.page-transition-memory-ending.page-transition-entering .chapter-page,.page-transition-memory-ending.page-transition-entering .ending-card{animation:none}}.slow-open-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;perspective:1200px}.slow-open-card{position:relative;min-height:18rem;width:100%;overflow:hidden;display:grid;align-content:space-between;gap:1rem;padding:1.35rem;border:1px solid rgba(212,175,55,.22);background:linear-gradient(135deg,#ffffffb8,#fbf1e8d6),radial-gradient(circle at 15% 10%,rgba(212,175,55,.18),transparent 28%);color:var(--primary);text-align:left;cursor:pointer;box-shadow:var(--shadow-soft);transform-style:preserve-3d;transition:transform .36s ease,box-shadow .36s ease,border-color .36s ease}.slow-open-card:before,.slow-open-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slow-open-card:before{background:linear-gradient(145deg,transparent 0 48%,rgba(124,83,87,.08) 48% 52%,transparent 52%),linear-gradient(35deg,transparent 0 48%,rgba(212,175,55,.14) 48% 52%,transparent 52%);transform-origin:top;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .32s ease}.slow-open-card:after{background:linear-gradient(105deg,transparent 22%,rgba(255,255,255,.32),transparent 58%);opacity:0;transform:translate(-120%)}.slow-open-card:hover,.slow-open-card.is-open{border-color:#d4af3761;box-shadow:0 28px 68px #7c53572e;transform:translateY(-6px) rotateX(1.2deg)}.slow-open-card.is-open:before{opacity:.35;transform:rotateX(52deg) translateY(-18%)}.slow-open-card.is-open:after{animation:slowOpenSweep 1.25s ease both}.slow-open-index,.slow-open-hint{position:relative;z-index:1;color:#7c5357ad;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.slow-open-icon{position:relative;z-index:1;width:3.1rem;height:3.1rem;display:grid;place-items:center;border-radius:999px;background:#7c535714;color:var(--primary);font-size:1.45rem;transition:transform .36s ease,background-color .36s ease}.slow-open-card.is-open .slow-open-icon{background:#d4af372e;transform:translateY(-4px) rotate(-8deg)}.slow-open-title{position:relative;z-index:1;display:block;max-width:18rem;font-family:EB Garamond,serif;font-size:clamp(1.65rem,4vw,2.45rem);line-height:.98}.slow-open-copy{position:relative;z-index:1;display:block;max-height:0;overflow:hidden;color:var(--muted);line-height:1.75;opacity:0;transform:translateY(12px);transition:max-height .42s ease,opacity .32s ease,transform .32s ease}.slow-open-card.is-open .slow-open-copy{max-height:12rem;opacity:1;transform:translateY(0)}@keyframes slowOpenSweep{0%{opacity:0;transform:translate(-120%)}42%{opacity:.8}to{opacity:0;transform:translate(120%)}}@media (max-width: 720px){.slow-open-grid{grid-template-columns:1fr}.slow-open-card{min-height:15rem;padding:1.15rem}}@media (prefers-reduced-motion: reduce){.slow-open-card,.slow-open-card:before,.slow-open-card:after,.slow-open-icon,.slow-open-copy{animation:none;transition:none;transform:none}}.slow-open-grid{width:min(100%,760px);margin:0 auto;gap:.9rem;align-items:stretch}.slow-open-card{min-height:12.6rem;border-radius:18px 18px 12px 12px;align-content:stretch;grid-template-rows:auto auto 1fr auto;gap:.55rem;padding:1rem 1.05rem .95rem;background:linear-gradient(180deg,#fffcf7eb,#f9efe5f5),linear-gradient(135deg,rgba(212,175,55,.12),transparent 42%);box-shadow:0 18px 42px #7c53571a}.slow-open-card:before{top:0;height:58%;background:linear-gradient(150deg,transparent 0 49%,rgba(212,175,55,.18) 49% 51%,transparent 51%),linear-gradient(30deg,transparent 0 49%,rgba(124,83,87,.08) 49% 51%,transparent 51%),linear-gradient(180deg,#ffffff57,#f4e4d361);border-bottom:1px solid rgba(212,175,55,.16)}.slow-open-card:hover,.slow-open-card.is-open{transform:translateY(-4px)}.slow-open-card.is-open{min-height:15.5rem}.slow-open-card.is-open:before{opacity:.18;transform:translateY(-46%) rotateX(58deg)}.slow-open-index{align-self:start;font-size:.66rem}.slow-open-icon{width:2.55rem;height:2.55rem;font-size:1.18rem}.slow-open-title{max-width:14rem;min-height:3.2rem;font-size:clamp(1.42rem,2.3vw,1.9rem);line-height:1.05;overflow-wrap:break-word}.slow-open-copy{max-width:100%;font-size:.92rem;line-height:1.62}.slow-open-card.is-open .slow-open-copy{max-height:8rem}.slow-open-hint{align-self:end;font-size:.62rem}@media (min-width: 1200px){.chapter-content:has(.slow-open-grid) .chapter-shell{padding-right:min(18vw,300px)}}@media (max-width: 720px){.slow-open-grid{width:min(100%,24rem)}.slow-open-card,.slow-open-card.is-open{min-height:auto}.slow-open-title{min-height:0}}.page-transition-intro-letter .page-transition-plane{display:block;background:linear-gradient(180deg,rgba(255,248,242,.72),rgba(255,248,242,.16),transparent);transform:translateY(100%)}.page-transition-intro-letter.page-transition-leaving .chapter-page{animation:introLetterUnderlayHold .12s linear both}.page-transition-intro-letter.page-transition-leaving .page-transition-plane,.page-transition-intro-letter.page-transition-entering .page-transition-plane{animation:introLetterPlaneRise .92s cubic-bezier(.76,0,.24,1) both}.page-transition-intro-letter.page-transition-entering .chapter-page{animation:introLetterPageEnter .82s cubic-bezier(.2,.8,.2,1) both}.page-transition-intro-letter.page-transition-entering .letter-card-page{animation:introLetterCardEnter .9s cubic-bezier(.2,.8,.2,1) 80ms both}.page-transition-intro-letter.page-transition-entering .chapter-heading{animation:introLetterHeadingEnter .82s cubic-bezier(.2,.8,.2,1) 40ms both}@keyframes introLetterUnderlayHold{0%,to{opacity:1;transform:translateZ(0)}}@keyframes introLetterPlaneRise{0%{opacity:0;transform:translateY(100%)}22%{opacity:.82}to{opacity:0;transform:translateY(-120%)}}@keyframes introLetterPageEnter{0%{opacity:0;filter:blur(8px);clip-path:inset(18% 0 0 0);transform:translate3d(0,44px,-120px) scale(1.04)}45%{opacity:.72;filter:blur(3px)}to{opacity:1;filter:blur(0);clip-path:inset(0 0 0 0);transform:translateZ(0) scale(1)}}@keyframes introLetterCardEnter{0%{opacity:0;transform:translate3d(0,38px,80px) scale(.975)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes introLetterHeadingEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.page-transition-intro-letter.page-transition-entering .chapter-page,.page-transition-intro-letter.page-transition-entering .letter-card-page,.page-transition-intro-letter.page-transition-entering .chapter-heading{animation:none}}.token-progress{width:min(100%,760px);margin:0 auto 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(212,175,55,.2);background:#ffffff8f;box-shadow:0 18px 42px #7c535714}.token-progress-label,.token-progress small{color:#7c5357ad;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.token-progress strong{color:var(--primary);font-family:EB Garamond,serif;font-size:clamp(1.9rem,5vw,3.2rem);letter-spacing:.12em}.token-card{padding:0}.token-card-main{position:relative;z-index:2;width:100%;min-height:inherit;display:grid;grid-template-rows:auto auto 1fr auto auto;gap:.55rem;padding:1rem 1.05rem .95rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.token-card-main:disabled{cursor:not-allowed}.token-card.is-locked{opacity:.52;filter:grayscale(.35);transform:none}.token-card.is-locked:before{opacity:.55}.token-card.is-claimed{border-color:#d4af377a}.token-card.is-claimed .slow-open-icon{background:#d4af3738}.token-card .slow-open-copy{max-height:5.6rem;opacity:.82;transform:translateY(0)}.token-card:not(.is-open) .slow-open-copy{color:#7c535794;font-size:.84rem;font-style:italic}.token-claim-button{position:relative;z-index:3;margin:0 1.05rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;border:1px solid rgba(124,83,87,.18);padding:.68rem .8rem;background:#7c535714;color:var(--primary);cursor:pointer;transition:transform .18s ease,background-color .18s ease}.token-claim-button:hover:not(:disabled){transform:translateY(-2px);background:#d4af3729}.token-claim-button:disabled{cursor:default;opacity:.74}.token-claim-button span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.token-claim-button strong{font-family:EB Garamond,serif;font-size:1.35rem;letter-spacing:.08em}.token-final{width:min(100%,760px);margin:1rem auto 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px dashed rgba(124,83,87,.24);background:#ffffff6b}.token-final p{margin:0;color:var(--muted);line-height:1.6}.token-final.is-unlocked{border-style:solid;border-color:#d4af376b;background:#fffaf1b8;box-shadow:0 18px 48px #7c53571a}@media (max-width: 720px){.token-progress,.token-final{width:min(100%,24rem);flex-direction:column;align-items:stretch}.token-progress{text-align:center}}.token-answer-form{position:relative;z-index:3;margin:0 1.05rem 1rem;display:grid;gap:.5rem}.token-answer-form label{display:grid;gap:.35rem}.token-answer-form label span,.token-answer-form small{color:#7c5357ad;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.token-answer-form input{width:100%;border:1px solid rgba(124,83,87,.18);padding:.68rem .75rem;background:#ffffffbd;color:var(--primary);font-family:Questrial,sans-serif;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.token-answer-form input:focus{border-color:#d4af3794;box-shadow:0 0 0 4px #d4af371f;background:#ffffffeb}.token-answer-form input:disabled{opacity:.82;background:#d4af371f}.token-answer-form button{border:1px solid rgba(124,83,87,.18);padding:.68rem .8rem;background:#7c535714;color:var(--primary);cursor:pointer;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;transition:transform .18s ease,background-color .18s ease}.token-answer-form button:hover:not(:disabled){transform:translateY(-2px);background:#d4af3729}.token-answer-form button:disabled{cursor:default;opacity:.74}.token-card.has-error .token-answer-form input{border-color:#a44a4a9e;box-shadow:0 0 0 4px #a44a4a1a}.token-card.has-error .token-answer-form small{color:#a44a4ad1}.token-card.is-claimed .token-answer-form button{background:#d4af372e}.token-hint-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.token-answer-form .token-hint-button{flex:0 0 auto;padding:.56rem .66rem;background:#ffffff94}.token-revealed-hint{flex:1;padding:.54rem .66rem;border:1px solid rgba(212,175,55,.26);background:#d4af371f;color:var(--primary);font-family:EB Garamond,serif;font-size:1.08rem;letter-spacing:.08em;text-align:center;text-transform:uppercase}@media (max-width: 520px){.token-hint-row{align-items:stretch;flex-direction:column}}.token-answer-form{gap:.62rem}.token-answer-form label span,.token-answer-form small{font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.08em;line-height:1.4}.token-answer-form input{min-height:2.75rem;padding:.72rem .82rem;font-family:EB Garamond,serif;font-size:1.18rem;font-weight:500;letter-spacing:.04em;line-height:1.1}.token-answer-form input::placeholder{color:#7c535773;font-family:Questrial,sans-serif;font-size:.82rem;letter-spacing:.04em;text-transform:none}.token-answer-form button{min-height:2.45rem;font-family:Questrial,sans-serif;font-size:.76rem;letter-spacing:.08em;line-height:1.2}.token-answer-form>button[type=submit]{background:#7c53571a;font-weight:600}.token-answer-form>button[type=submit]:not(:disabled){color:#fff8f4;background:var(--primary)}.token-answer-form .token-hint-button{min-height:2.35rem;padding:.58rem .72rem;white-space:nowrap}.token-revealed-hint{min-height:2.35rem;display:inline-flex;align-items:center;justify-content:center;padding:.52rem .72rem;font-size:1.2rem;font-weight:600;line-height:1}.token-card.is-claimed .token-answer-form input{color:var(--primary);font-weight:600}@media (max-width: 520px){.token-answer-form input{font-size:1.08rem}.token-answer-form button,.token-answer-form .token-hint-button{width:100%}}.password-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;display:grid;place-items:center;padding:1.25rem;overflow:hidden;color:var(--primary);background:radial-gradient(circle at 18% 18%,rgba(212,175,55,.2),transparent 28%),radial-gradient(circle at 82% 76%,rgba(124,83,87,.22),transparent 32%),linear-gradient(135deg,#fffaf2,#f7eee7 48%,#fdf8ef)}.password-gate:before,.password-gate:after{content:"";position:absolute;width:min(52vw,560px);aspect-ratio:1;border:1px solid rgba(212,175,55,.22);border-radius:44% 56% 62% 38%;opacity:.58;animation:passwordGateFloat 12s ease-in-out infinite alternate}.password-gate:before{top:-14%;left:-10%}.password-gate:after{right:-12%;bottom:-18%;animation-delay:-5s;transform:rotate(18deg)}.pin-special-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:1.25rem;background:#482f3247;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:pinOverlayIn .22s ease both}.pin-special-popup{position:relative;width:min(calc(100% - .5rem),460px);min-height:280px;display:grid;align-content:center;gap:.8rem;padding:clamp(2rem,8vw,3.2rem);border:1px solid rgba(212,175,55,.38);border-radius:34px;background:radial-gradient(circle at 20% 18%,rgba(212,175,55,.18),transparent 34%),linear-gradient(145deg,#fffcf7f7,#f9efe5f2);box-shadow:0 34px 110px #482f3247;color:var(--primary);text-align:center;animation:pinPopupIn .36s cubic-bezier(.16,1,.3,1) both}.pin-special-popup:before{content:"";position:absolute;top:.7rem;right:.7rem;bottom:.7rem;left:.7rem;border:1px solid rgba(212,175,55,.2);border-radius:27px;pointer-events:none}.pin-special-popup p{position:relative;z-index:1;margin:0;line-height:1.55}.pin-special-popup h2{position:relative;z-index:1;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,12vw,4rem);line-height:.95;font-weight:600}.pin-special-kicker{color:#7c5357b8;font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.pin-special-popup button{position:absolute;top:1rem;right:1rem;z-index:2;display:grid;place-items:center;width:2.4rem;height:2.4rem;border:0;border-radius:999px;background:#7c535714;color:var(--primary);cursor:pointer}.pin-special-popup .material-symbols-outlined{font-size:1.2rem}.password-gate-card{position:relative;z-index:1;width:min(100%,430px);padding:clamp(1.5rem,6vw,2.7rem);border:1px solid rgba(212,175,55,.28);border-radius:36px;background:#fffcf7d1;box-shadow:0 28px 100px #482f322e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:center;animation:passwordGateEnter .68s cubic-bezier(.16,1,.3,1) both}.password-gate-kicker{margin:0 0 .8rem;color:#7c5357c2;font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}.password-gate-card h1{margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.3rem,11vw,4.2rem);line-height:.92;font-weight:600}.password-gate-card p:not(.password-gate-kicker){margin:1rem auto 0;max-width:31ch;color:var(--muted);line-height:1.7}.pin-display{display:flex;justify-content:center;gap:.82rem;margin:1.45rem 0 .75rem}.pin-display span{width:.72rem;height:.72rem;border:1px solid rgba(124,83,87,.42);border-radius:999px;background:transparent;transition:background .16s ease,border-color .16s ease,transform .16s ease}.pin-display span.is-filled{border-color:var(--primary);background:var(--primary);transform:scale(1.08)}.pin-display.has-error{animation:pinShake .26s ease both}.password-gate-error{display:block;min-height:1rem;color:#9f4545;font-size:.82rem}.pin-keypad{display:grid;grid-template-columns:repeat(3,minmax(4.2rem,1fr));gap:.72rem;width:min(100%,300px);margin:1.1rem auto 0}.pin-keypad button{display:grid;place-items:center;min-height:4.25rem;border:1px solid rgba(212,175,55,.28);border-radius:999px;background:#ffffff6b;color:var(--primary);box-shadow:0 12px 28px #482f3214;cursor:pointer;font-family:Questrial,sans-serif;font-size:1.45rem;line-height:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.pin-keypad button:active{transform:scale(.94);background:#7c53571f;box-shadow:0 8px 18px #482f3214}.pin-keypad .pin-delete{background:transparent;border-color:transparent;box-shadow:none}.pin-keypad .pin-delete .material-symbols-outlined{font-size:1.35rem}@keyframes pinOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes pinPopupIn{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pinShake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes passwordGateEnter{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes passwordGateFloat{0%{transform:translateZ(0) rotate(-8deg)}to{transform:translate3d(4%,-3%,0) rotate(10deg)}}@media (max-width: 520px){.password-gate{padding:1rem}.password-gate-card{border-radius:28px}.pin-keypad{grid-template-columns:repeat(3,minmax(3.8rem,1fr));gap:.62rem}.pin-keypad button{min-height:3.9rem}}.flower-interlude{position:fixed;top:0;right:0;bottom:0;left:0;z-index:135;display:grid;place-items:center;padding:1.2rem;overflow:hidden;background:radial-gradient(circle at 50% 28%,rgba(255,223,228,.42),transparent 24%),radial-gradient(circle at 18% 80%,rgba(212,175,55,.18),transparent 30%),linear-gradient(145deg,#fffaf2,#f8eee8 52%,#fff6ee)}.flower-interlude:before,.flower-interlude:after{content:"";position:absolute;width:min(64vw,620px);aspect-ratio:1;border-radius:42% 58% 68% 32%;border:1px solid rgba(212,175,55,.2);animation:flowerAura 10s ease-in-out infinite alternate}.flower-interlude:before{left:-18%;top:-22%}.flower-interlude:after{right:-20%;bottom:-24%;animation-delay:-4s}.flower-interlude-card{position:relative;z-index:1;width:min(100%,520px);min-height:min(86vh,720px);display:grid;justify-items:center;align-content:center;gap:.9rem;padding:clamp(1.5rem,5vw,3rem);border:1px solid rgba(212,175,55,.3);border-radius:42px;background:#fffcf7b8;box-shadow:0 36px 120px #482f322e;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:flowerCardIn .68s cubic-bezier(.16,1,.3,1) both}.flower-kicker{margin:0;color:#7c5357b8;font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.flower-interlude-card h2{margin:0;color:var(--primary);font-family:Cormorant Garamond,serif;font-size:clamp(2.5rem,11vw,4.6rem);line-height:.95;font-weight:600}.flower-interlude-card p{margin:0;color:var(--muted);line-height:1.6}.interactive-flower{position:relative;width:min(72vw,310px);height:min(72vw,310px);margin:.8rem 0 .1rem;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.flower-stem{position:absolute;left:50%;bottom:12%;width:.42rem;height:42%;border-radius:999px;background:linear-gradient(180deg,#69814eb8,#4d673fe6);transform:translate(-50%);transform-origin:bottom;animation:stemSway 3.8s ease-in-out infinite alternate}.flower-leaf{position:absolute;bottom:24%;left:50%;width:3.1rem;height:1.5rem;border-radius:100% 0;background:#69814e94}.flower-leaf-left{transform:translate(-94%) rotate(-22deg)}.flower-leaf-right{transform:translate(-4%) scaleX(-1) rotate(-22deg)}.flower-head{position:absolute;left:50%;top:39%;width:7.8rem;height:7.8rem;transform:translate(-50%,-50%)}.flower-petal{--petal-angle: calc(var(--petal-index) * 30deg);position:absolute;left:50%;top:50%;width:3.3rem;height:5.8rem;border-radius:62% 62% 48% 48%;background:linear-gradient(180deg,#fff4f2,#f0a8b3 46%,#b95f6f);box-shadow:inset 0 8px 18px #ffffff52,0 12px 26px #7c53571f;opacity:.88;transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(-2.4rem) scale(.68);transform-origin:50% 82%;transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .42s ease}.flower-center{position:absolute;left:50%;top:50%;width:3.2rem;height:3.2rem;border-radius:999px;background:radial-gradient(circle,#f6d77a,#d4af37 52%,#9a683e);box-shadow:0 10px 24px #7c53572e;transform:translate(-50%,-50%)}.flower-interlude.is-bloomed .flower-petal{opacity:1;transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(-4.15rem) scale(1)}.flower-spark{--spark-angle: calc(var(--spark-index) * 20deg);position:absolute;left:50%;top:39%;width:.42rem;height:.42rem;border-radius:999px;background:#d4af37b8;opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(0)}.flower-interlude.is-bloomed .flower-spark{animation:flowerSpark 1.6s ease-out infinite;animation-delay:calc(var(--spark-index) * 70ms)}.flower-progress{min-height:1.6rem;font-family:Questrial,sans-serif;font-size:.88rem}.flower-continue:disabled{opacity:.42;cursor:not-allowed;transform:none}@keyframes flowerCardIn{0%{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes flowerAura{0%{transform:rotate(-8deg) translateZ(0)}to{transform:rotate(11deg) translate3d(5%,-3%,0)}}@keyframes stemSway{0%{transform:translate(-50%) rotate(-1.8deg)}to{transform:translate(-50%) rotate(1.8deg)}}@keyframes flowerSpark{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(1.8rem) scale(.6)}35%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(8.8rem) scale(.1)}}@media (max-width: 520px){.flower-interlude-card{min-height:min(88vh,680px);border-radius:30px}.interactive-flower{width:min(78vw,280px);height:min(78vw,280px)}}.flower-interlude{--bloom-scale: .58;--bloom-distance: -2.35rem;--bloom-tilt: 0deg}.flower-interlude.bloom-level-1{--bloom-scale: .78;--bloom-distance: -3.05rem;--bloom-tilt: 5deg}.flower-interlude.bloom-level-2{--bloom-scale: .94;--bloom-distance: -3.75rem;--bloom-tilt: 9deg}.flower-interlude.bloom-level-3{--bloom-scale: 1.08;--bloom-distance: -4.55rem;--bloom-tilt: 14deg}.flower-interlude{background:radial-gradient(circle at calc(50% + (var(--touch-x, 0) * 8%)) calc(32% + (var(--touch-y, 0) * 8%)),rgba(255,216,226,.58),transparent 24%),radial-gradient(circle at 16% 78%,rgba(212,175,55,.2),transparent 32%),linear-gradient(145deg,#fffaf2,#f8eee8 52%,#fff6ee)}.flower-copy{max-width:31ch}.interactive-flower{filter:drop-shadow(calc(var(--touch-x, 0) * 8px) calc(var(--touch-y, 0) * 8px) 24px rgba(124,83,87,.15));transition:filter .18s ease,transform .18s ease}.interactive-flower:active{transform:scale(.985)}.flower-progress-ring{position:absolute;top:2%;right:2%;bottom:2%;left:2%;border-radius:50%;background:conic-gradient(rgba(212,175,55,.72) var(--bloom-progress, 0%),rgba(255,255,255,.28) 0);mask:radial-gradient(circle,transparent 61%,#000 62%);opacity:.72;animation:flowerRingPulse 2.4s ease-in-out infinite}.flower-petal{--petal-angle: calc(var(--petal-index) * 22.5deg);width:3rem;height:6.15rem;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.72),transparent 34%),linear-gradient(180deg,#fff2ef,#eca1ad 44%,#a94d62);transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(var(--bloom-distance)) rotate(var(--bloom-tilt)) scale(var(--bloom-scale))}.flower-interlude.bloom-level-1 .flower-petal:nth-child(odd),.flower-interlude.bloom-level-2 .flower-petal:nth-child(2n){filter:brightness(1.05)}.flower-interlude.is-bloomed .flower-petal{transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(var(--bloom-distance)) rotate(var(--bloom-tilt)) scale(var(--bloom-scale));animation:petalBreath 2.8s ease-in-out infinite alternate;animation-delay:calc(var(--petal-index) * 45ms)}.flower-center{display:grid;place-items:center;color:#fff9dc;font-family:Cormorant Garamond,serif;font-size:1.25rem;transition:transform .28s ease}.flower-interlude.bloom-level-1 .flower-center{transform:translate(-50%,-50%) scale(1.08)}.flower-interlude.bloom-level-2 .flower-center{transform:translate(-50%,-50%) scale(1.16)}.flower-interlude.is-bloomed .flower-center{transform:translate(-50%,-50%) scale(1.24)}.flower-step-row{display:flex;gap:.45rem;margin-top:.1rem}.flower-step-row span{width:2.2rem;height:.24rem;border-radius:999px;background:#7c535729;overflow:hidden}.flower-step-row span.is-active{background:linear-gradient(90deg,#7c5357d9,#d4af37d1)}.floating-petal{--float-angle: calc(var(--float-index) * 36deg);position:absolute;left:calc(50% + sin(var(--float-angle))*38vw);top:-4rem;width:1.1rem;height:1.8rem;border-radius:70% 30%;background:#b95f6f47;opacity:.46;animation:floatingPetal 9s linear infinite;animation-delay:calc(var(--float-index) * -.72s)}.flower-interlude.is-bloomed .floating-petal{opacity:.78;background:#b95f6f73}.flower-interlude.bloom-level-1 .flower-spark,.flower-interlude.bloom-level-2 .flower-spark{animation:flowerSpark 1.85s ease-out 1;animation-delay:calc(var(--spark-index) * 24ms)}.flower-interlude.is-bloomed .flower-spark{animation:flowerSpark 1.45s ease-out infinite;animation-delay:calc(var(--spark-index) * 42ms)}@keyframes flowerRingPulse{0%,to{transform:scale(.98);opacity:.52}50%{transform:scale(1.02);opacity:.82}}@keyframes petalBreath{0%{filter:brightness(1)}to{filter:brightness(1.08)}}@keyframes floatingPetal{0%{transform:translate3d(-10vw,-8vh,0) rotate(0)}to{transform:translate3d(12vw,115vh,0) rotate(540deg)}}@media (max-width: 520px){.flower-step-row span{width:1.8rem}}.flower-interlude{align-items:center;padding:clamp(.9rem,3vw,1.6rem);background:radial-gradient(circle at 50% 34%,rgba(255,222,228,.36),transparent 25%),linear-gradient(145deg,#fffaf2,#f7eee8 54%,#fff8f0)}.flower-interlude:before,.flower-interlude:after{opacity:.5}.flower-interlude-card{width:min(100%,430px);min-height:auto;max-height:calc(100vh - 2rem);overflow:hidden;gap:.58rem;padding:clamp(1.35rem,3vw,2.15rem);border-radius:34px;background:linear-gradient(180deg,#fffcf7e0,#fff8f1c7)}.flower-kicker{font-size:.62rem;letter-spacing:.2em}.flower-interlude-card h2{max-width:8.8ch;font-size:clamp(2.25rem,6vw,3.75rem);line-height:.92}.flower-copy{max-width:27ch;font-size:.82rem;line-height:1.45}.interactive-flower{width:clamp(190px,31vw,250px);height:clamp(190px,31vw,250px);margin:.25rem 0 0;border-radius:36px;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.64),transparent 42%),radial-gradient(circle at 50% 56%,rgba(212,175,55,.15),transparent 56%)}.flower-progress-ring{top:8%;right:8%;bottom:8%;left:8%;opacity:.42}.flower-head{top:42%;width:6.1rem;height:6.1rem}.flower-stem{bottom:13%;height:37%;width:.34rem}.flower-leaf{bottom:26%;width:2.25rem;height:1.08rem;opacity:.78}.flower-petal{width:2.28rem;height:4.45rem;box-shadow:inset 0 7px 16px #ffffff57,0 9px 18px #7c53571a}.flower-center{width:2.45rem;height:2.45rem;font-size:1rem}.flower-interlude{--bloom-distance: -1.8rem}.flower-interlude.bloom-level-1{--bloom-distance: -2.35rem}.flower-interlude.bloom-level-2{--bloom-distance: -2.85rem}.flower-interlude.bloom-level-3{--bloom-distance: -3.35rem;--bloom-scale: 1.02}.flower-step-row{margin-top:.15rem}.flower-step-row span{width:1.7rem;height:.18rem}.flower-progress{min-height:1.1rem;font-size:.78rem;line-height:1.35}.flower-continue{margin-top:.15rem;padding:.78rem 1.15rem;font-size:.66rem}.floating-petal{opacity:.24;width:.78rem;height:1.25rem}@media (min-width: 900px){.flower-interlude-card{width:min(100%,470px);grid-template-columns:1fr}}@media (max-width: 520px){.flower-interlude{padding:.75rem}.flower-interlude-card{width:min(100%,360px);max-height:calc(100dvh - 1.5rem);gap:.52rem;padding:1.25rem 1rem;border-radius:28px}.flower-interlude-card h2{font-size:clamp(2rem,10vw,2.8rem)}.interactive-flower{width:min(64vw,220px);height:min(64vw,220px)}.flower-head{width:5.2rem;height:5.2rem}.flower-petal{width:2rem;height:3.9rem}.flower-interlude.bloom-level-3{--bloom-distance: -2.95rem}}.interactive-flower{overflow:visible}.bouquet-heads{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3}.flower-head{width:3.95rem;height:3.95rem;top:36%}.flower-head-left{left:34%;top:43%;transform:translate(-50%,-50%) rotate(-13deg) scale(.9)}.flower-head-center{left:50%;top:32%;transform:translate(-50%,-50%) scale(1.02);z-index:2}.flower-head-right{left:66%;top:43%;transform:translate(-50%,-50%) rotate(13deg) scale(.9)}.flower-petal{width:1.42rem;height:2.85rem;transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(calc(var(--bloom-distance) * .62)) rotate(var(--bloom-tilt)) scale(calc(var(--bloom-scale) * .92))}.flower-interlude.is-bloomed .flower-petal{transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(calc(var(--bloom-distance) * .62)) rotate(var(--bloom-tilt)) scale(calc(var(--bloom-scale) * .92))}.flower-center{width:1.62rem;height:1.62rem;font-size:.78rem}.bouquet-stems{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.flower-stem{bottom:21%;height:36%;width:.24rem;transform-origin:bottom}.stem-left{left:41%;transform:translate(-50%) rotate(-16deg)}.stem-center{left:50%;transform:translate(-50%) rotate(0)}.stem-right{left:59%;transform:translate(-50%) rotate(16deg)}.flower-leaf{z-index:2;bottom:32%}.bouquet-wrap{position:absolute;left:50%;bottom:8%;z-index:4;width:46%;height:38%;border:1px solid rgba(212,175,55,.42);border-radius:18px 18px 34px 34px;background:linear-gradient(135deg,#fffaf1f0 0,#fffaf1f0 48%,#f4dcb2d1 49%,#f4dcb2d1 52%,#fff8eef0 53%,#fff8eef0);box-shadow:0 18px 38px #482f3224;clip-path:polygon(8% 0,92% 0,78% 100%,22% 100%);transform:translate(-50%)}.bouquet-wrap:before,.bouquet-wrap:after{content:"";position:absolute;top:0;width:50%;height:100%;background:#ffffff38}.bouquet-wrap:before{left:0;transform:skewY(-13deg)}.bouquet-wrap:after{right:0;transform:skewY(13deg)}.bouquet-ribbon{position:absolute;left:50%;bottom:24%;z-index:5;width:34%;height:.78rem;border-radius:999px;background:linear-gradient(90deg,#8c5359,#b96b76,#8c5359);box-shadow:0 8px 18px #7c53572e;transform:translate(-50%)}.bouquet-ribbon:before,.bouquet-ribbon:after{content:"";position:absolute;top:50%;width:1.15rem;height:1.15rem;border-radius:68% 32%;background:#9d5a63}.bouquet-ribbon:before{left:20%;transform:translate(-50%,-50%) rotate(35deg)}.bouquet-ribbon:after{right:20%;transform:translate(50%,-50%) rotate(-35deg)}.flower-progress-ring{top:10%;right:10%;bottom:10%;left:10%}@media (max-width: 520px){.flower-head{width:3.35rem;height:3.35rem}.flower-petal{width:1.18rem;height:2.35rem}.bouquet-wrap{width:50%;height:36%}}.flower-head-back-left{left:38%;top:31%;transform:translate(-50%,-50%) rotate(-20deg) scale(.72);z-index:0;opacity:.92}.flower-head-back-right{left:62%;top:31%;transform:translate(-50%,-50%) rotate(20deg) scale(.72);z-index:0;opacity:.92}.flower-head-front-left{left:41%;top:50%;transform:translate(-50%,-50%) rotate(-8deg) scale(.78);z-index:3}.flower-head-front-right{left:59%;top:50%;transform:translate(-50%,-50%) rotate(8deg) scale(.78);z-index:3}.flower-head-left{left:31%;top:41%}.flower-head-right{left:69%;top:41%}.flower-head-center{top:35%}.bouquet-wrap{width:52%}.bouquet-ribbon{width:38%}@media (max-width: 520px){.flower-head-back-left,.flower-head-back-right{transform:translate(-50%,-50%) scale(.64)}.flower-head-front-left,.flower-head-front-right{transform:translate(-50%,-50%) scale(.7)}}.bouquet-heads,.flower-head{z-index:6}.flower-head-back-left,.flower-head-back-right{z-index:4}.flower-head-center{z-index:7}.flower-head-front-left,.flower-head-front-right{z-index:8}.bouquet-stems{z-index:2}.bouquet-wrap{bottom:4%;z-index:3;width:44%;height:28%;opacity:.96}.bouquet-ribbon{bottom:17%;z-index:9;width:32%}.flower-leaf{z-index:5}@media (max-width: 520px){.bouquet-wrap{bottom:5%;width:43%;height:27%}.bouquet-ribbon{bottom:17%}}.wish-interlude{position:fixed;top:0;right:0;bottom:0;left:0;z-index:136;display:grid;place-items:center;padding:clamp(.9rem,3vw,1.6rem);overflow:hidden;background:radial-gradient(circle at 50% 34%,rgba(255,228,187,.4),transparent 26%),radial-gradient(circle at 18% 78%,rgba(185,95,111,.14),transparent 30%),linear-gradient(145deg,#fffaf2,#f7eee8 54%,#fff8f0)}.wish-card{position:relative;z-index:1;width:min(100%,430px);display:grid;justify-items:center;gap:.68rem;padding:clamp(1.35rem,3vw,2.15rem);border:1px solid rgba(212,175,55,.3);border-radius:34px;background:linear-gradient(180deg,#fffcf7e6,#fff8f1cc);box-shadow:0 36px 120px #482f322e;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:flowerCardIn .68s cubic-bezier(.16,1,.3,1) both}.wish-kicker{margin:0;color:#7c5357b8;font-family:Questrial,sans-serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase}.wish-card h2{max-width:8.8ch;margin:0;color:var(--primary);font-family:Cormorant Garamond,serif;font-size:clamp(2.25rem,6vw,3.75rem);line-height:.92;font-weight:600}.wish-copy,.wish-progress-copy{margin:0;max-width:29ch;color:var(--muted);font-size:.82rem;line-height:1.45}.wish-cake-stage{position:relative;width:clamp(190px,31vw,250px);height:clamp(190px,31vw,250px);display:grid;place-items:center;margin-top:.2rem;border-radius:36px;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.7),transparent 42%),radial-gradient(circle at 50% 58%,rgba(212,175,55,.14),transparent 56%)}.wish-candle{position:absolute;top:24%;left:50%;width:.8rem;height:3.1rem;border-radius:999px 999px .2rem .2rem;background:repeating-linear-gradient(135deg,#fff8ef 0,#fff8ef .35rem,#b96b76 .35rem,#b96b76 .55rem);box-shadow:0 8px 18px #7c53571f;transform:translate(-50%);z-index:3}.wish-flame{position:absolute;left:50%;top:-1.1rem;width:1rem;height:1.45rem;border-radius:70% 30%;background:radial-gradient(circle at 45% 65%,#fff7b0 0,#fff7b0 18%,#f5b13d 38%,#d76a3d 72%);filter:drop-shadow(0 0 14px rgba(245,177,61,.72));transform:translate(-50%) rotate(45deg);animation:candleFlicker .76s ease-in-out infinite alternate}.wish-interlude.is-blown-out .wish-flame{opacity:0;transform:translate(-50%) rotate(45deg) scale(.2);transition:opacity .26s ease,transform .26s ease}.wish-cake{position:absolute;left:50%;bottom:22%;width:62%;height:33%;border-radius:22px 22px 18px 18px;background:linear-gradient(180deg,#fff0eb 0,#fff0eb 28%,#d88a8f 29%,#d88a8f 62%,#8c5359 63%);box-shadow:0 18px 36px #482f3229;transform:translate(-50%)}.wish-cake-cream{position:absolute;inset:-.2rem 0 auto;height:1.2rem;border-radius:999px;background:#fffaf2}.wish-cake-layer{position:absolute;left:12%;right:12%;height:.18rem;border-radius:999px;background:#fffaf2b3}.layer-one{top:42%}.layer-two{top:67%}.wish-plate{position:absolute;left:50%;bottom:16%;width:70%;height:.72rem;border-radius:999px;background:#d4af3738;transform:translate(-50%)}.wish-smoke{position:absolute;left:50%;top:21%;width:.55rem;height:2.1rem;border-radius:999px;border-left:2px solid rgba(124,83,87,.2);opacity:0;z-index:4}.wish-interlude.is-blown-out .wish-smoke{animation:wishSmoke 1.8s ease-out infinite}.smoke-two{margin-left:.55rem;animation-delay:.22s!important}.smoke-three{margin-left:-.55rem;animation-delay:.42s!important}.wish-meter{width:min(100%,210px);height:.32rem;overflow:hidden;border-radius:999px;background:#7c535724}.wish-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c5359,#d4af37);transition:width 90ms linear}.wish-blow-button{border:1px solid rgba(124,83,87,.18);border-radius:999px;padding:.86rem 1.25rem;background:#ffffff9e;color:var(--primary);cursor:pointer;font-family:Questrial,sans-serif;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;-webkit-tap-highlight-color:transparent}.wish-blow-button:active{transform:scale(.96)}.wish-blow-button:disabled{opacity:.72;cursor:default}.wish-continue{margin-top:.1rem;padding:.78rem 1.15rem;font-size:.66rem}.wish-continue:disabled{opacity:.42;cursor:not-allowed}@keyframes candleFlicker{0%{transform:translate(-50%) rotate(39deg) scale(.94)}to{transform:translate(-50%) rotate(50deg) scale(1.08)}}@keyframes wishSmoke{0%{opacity:0;transform:translate3d(0,.4rem,0) scale(.8)}28%{opacity:1}to{opacity:0;transform:translate3d(.35rem,-2.4rem,0) scale(1.35)}}@media (max-width: 520px){.wish-card{width:min(100%,360px);max-height:calc(100dvh - 1.5rem);gap:.52rem;padding:1.25rem 1rem;border-radius:28px}.wish-card h2{font-size:clamp(2rem,10vw,2.8rem)}.wish-cake-stage{width:min(64vw,220px);height:min(64vw,220px)}}.wish-cake-stage{perspective:none}.wish-cake{left:50%;bottom:auto;top:54%;width:58%;height:58%;border-radius:50%;background:radial-gradient(circle at 50% 50%,#fff8ef 0 18%,transparent 19%),radial-gradient(circle at 50% 50%,#d98b92 0 34%,transparent 35%),repeating-conic-gradient(from 0deg,#fff0eb 0,#fff0eb 12deg,#f4c4c9 12deg,#f4c4c9 24deg,#d88a8f 24deg,#d88a8f 36deg);box-shadow:inset 0 0 0 .55rem #fffaf2db,inset 0 0 0 1.05rem #d4af3733,0 22px 42px #482f3229;transform:translate(-50%,-50%)}.wish-cake:before{content:"";position:absolute;top:14%;right:14%;bottom:14%;left:14%;border-radius:50%;border:1px dashed rgba(124,83,87,.28)}.wish-cake:after{content:"";position:absolute;top:34%;right:34%;bottom:34%;left:34%;border-radius:50%;background:radial-gradient(circle,#fffaf2 0 30%,#d4af37 32% 50%,transparent 52%)}.wish-cake-cream{top:8%;right:8%;bottom:8%;left:8%;height:auto;border-radius:50%;background:repeating-conic-gradient(from 10deg,rgba(255,250,242,.88) 0 10deg,transparent 10deg 20deg);opacity:.82}.wish-candle{top:43%;height:2.7rem;z-index:5}.wish-plate{left:50%;bottom:auto;top:54%;width:72%;height:72%;border-radius:50%;background:radial-gradient(circle,transparent 0 64%,rgba(212,175,55,.18) 65% 72%,transparent 73%);transform:translate(-50%,-50%)}.wish-smoke{top:32%}@media (max-width: 520px){.wish-cake{width:62%;height:62%}.wish-plate{width:76%;height:76%}}.wish-cake-stage{perspective:620px}.wish-cake{top:52%;height:46%;border-radius:50%/42%;transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg);transform-style:preserve-3d;box-shadow:inset 0 0 0 .48rem #fffaf2db,inset 0 0 0 .98rem #d4af3733,0 1.05rem #b96b76,0 2.1rem 38px #482f322e}.wish-cake:before{top:13%;right:13%;bottom:13%;left:13%;border-radius:50%/42%}.wish-cake:after{top:33%;right:33%;bottom:33%;left:33%}.wish-cake-cream{border-radius:50%/42%}.wish-candle{top:33%;transform:translate(-50%) rotateX(0)}.wish-plate{top:59%;height:42%;border-radius:50%/34%;transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg)}.wish-smoke{top:22%}@media (max-width: 520px){.wish-cake{height:48%}.wish-plate{height:44%}}.wish-number-candles{position:absolute;left:50%;top:29%;z-index:6;display:flex;align-items:flex-end;gap:.18rem;transform:translate(-50%) rotate(-4deg)}.wish-number-candle{position:relative;display:grid;place-items:center;width:1.45rem;height:2.35rem;color:#fff8ef;font-family:Cormorant Garamond,serif;font-size:2.35rem;font-weight:700;line-height:1;text-shadow:-1px 0 #8c5359,0 1px #8c5359,1px 0 #8c5359,0 -1px #8c5359,0 8px 14px rgba(72,47,50,.18)}.candle-two{transform:rotate(-4deg)}.candle-three{transform:rotate(4deg)}.wish-number-candle .wish-flame{left:50%;top:-.98rem;width:.78rem;height:1.08rem}.wish-number-candle .flame-two{margin-left:-.08rem}.wish-number-candle .flame-three{margin-left:.08rem;animation-delay:.16s}.wish-candle{display:none}.wish-interlude.is-blown-out .wish-number-candle .wish-flame{opacity:0;transform:translate(-50%) rotate(45deg) scale(.2);transition:opacity .26s ease,transform .26s ease}@media (max-width: 520px){.wish-number-candles{top:28%}.wish-number-candle{width:1.28rem;height:2.08rem;font-size:2.08rem}}.wish-cake-stage{width:clamp(230px,36vw,300px);height:clamp(230px,36vw,300px);margin:.05rem 0}.wish-cake{width:68%;height:54%}.wish-plate{width:82%;height:50%}.wish-number-candles{top:24%;gap:.28rem}.wish-number-candle{width:1.9rem;height:3rem;font-size:3.05rem;text-shadow:-1.4px 0 #8c5359,0 1.4px #8c5359,1.4px 0 #8c5359,0 -1.4px #8c5359,0 10px 16px rgba(72,47,50,.2)}.wish-number-candle .wish-flame{top:-1.18rem;width:.92rem;height:1.28rem}.wish-card{width:min(100%,470px)}@media (max-width: 520px){.wish-cake-stage{width:min(74vw,260px);height:min(74vw,260px)}.wish-number-candles{top:23%}.wish-number-candle{width:1.62rem;height:2.62rem;font-size:2.62rem}.wish-cake{width:70%;height:55%}}.wish-cake{width:58%;height:58%;border-radius:18% 18% 45% 45%;background:radial-gradient(circle at 32% 30%,#fff8ef 0 13%,transparent 14%),radial-gradient(circle at 68% 30%,#fff8ef 0 13%,transparent 14%),radial-gradient(circle at 50% 56%,rgba(255,250,242,.9) 0 10%,transparent 11%),linear-gradient(145deg,#ffd8dd,#e9919d 52%,#9b5360);clip-path:path("M 50 88 C 18 62 5 43 15 24 C 23 9 42 10 50 24 C 58 10 77 9 85 24 C 95 43 82 62 50 88 Z");box-shadow:inset 0 0 0 .5rem #fffaf2c2,inset 0 -1.1rem #9b536047,0 1rem #b96b76,0 2.2rem 42px #482f3233}.wish-cake:before{top:11%;right:11%;bottom:11%;left:11%;border-radius:28% 28% 48% 48%;border:1px dashed rgba(124,83,87,.22);clip-path:path("M 50 88 C 18 62 5 43 15 24 C 23 9 42 10 50 24 C 58 10 77 9 85 24 C 95 43 82 62 50 88 Z")}.wish-cake:after{top:36%;right:36%;bottom:36%;left:36%;background:radial-gradient(circle,#fffaf2 0 28%,#d4af37 30% 48%,transparent 50%)}.wish-cake-cream{top:9%;right:9%;bottom:9%;left:9%;border-radius:22% 22% 48% 48%;background:radial-gradient(circle at 28% 26%,rgba(255,250,242,.86) 0 10%,transparent 11%),radial-gradient(circle at 72% 26%,rgba(255,250,242,.86) 0 10%,transparent 11%),repeating-conic-gradient(from 8deg,rgba(255,250,242,.72) 0 8deg,transparent 8deg 18deg);clip-path:path("M 50 88 C 18 62 5 43 15 24 C 23 9 42 10 50 24 C 58 10 77 9 85 24 C 95 43 82 62 50 88 Z")}.wish-plate{width:86%;height:52%}.wish-number-candles{top:22%}@media (max-width: 520px){.wish-cake{width:62%;height:62%}.wish-number-candles{top:21%}}.wish-cake{top:55%;width:58%;height:50%;border-radius:22% 22% 46% 46%;clip-path:none;background:radial-gradient(circle at 50% 42%,rgba(255,250,242,.92) 0 9%,transparent 10%),linear-gradient(145deg,#ffd5dc,#ef9daa 48%,#a45663);transform:translate(-50%,-50%) rotateX(55deg) rotate(-45deg);box-shadow:inset -.55rem -.65rem #9b536038,inset .38rem .42rem #ffffff5c,.9rem .9rem #b96b76,1.5rem 1.8rem 42px #482f3233}.wish-cake:before,.wish-cake:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 43%,rgba(255,250,242,.9) 0 10%,transparent 11%),linear-gradient(145deg,#ffd5dc,#ef9daa,#a45663);box-shadow:inset -.45rem -.5rem #9b53602e,inset .28rem .32rem #ffffff57}.wish-cake:before{left:-50%;top:0}.wish-cake:after{left:0;top:-50%}.wish-cake-cream{top:8%;right:8%;bottom:8%;left:8%;z-index:2;border-radius:20% 20% 44% 44%;clip-path:none;background:radial-gradient(circle at 28% 22%,rgba(255,250,242,.88) 0 13%,transparent 14%),radial-gradient(circle at 72% 22%,rgba(255,250,242,.88) 0 13%,transparent 14%),radial-gradient(circle at 50% 58%,rgba(255,250,242,.78) 0 8%,transparent 9%);transform:translateZ(1px)}.wish-cake-cream:before,.wish-cake-cream:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:#fffaf257}.wish-cake-cream:before{left:-48%;top:0}.wish-cake-cream:after{left:0;top:-48%}.wish-plate{top:64%;width:84%;height:34%;background:radial-gradient(ellipse,transparent 0 58%,rgba(212,175,55,.2) 59% 70%,transparent 71%);transform:translate(-50%,-50%) rotateX(55deg) rotate(-4deg)}.wish-number-candles{top:24%;transform:translate(-50%) rotate(-3deg)}@media (max-width: 520px){.wish-cake-stage{width:min(78vw,280px);height:min(78vw,280px)}.wish-cake{width:60%;height:52%}}.wish-cake{top:54%;width:68%;height:46%;clip-path:none;border-radius:50%/38%;background:radial-gradient(circle at 40% 38%,rgba(255,250,242,.96) 0 7%,transparent 8%),radial-gradient(circle at 62% 40%,rgba(255,250,242,.9) 0 6%,transparent 7%),radial-gradient(circle at 51% 55%,#ffdbe1 0 13%,transparent 14%),linear-gradient(180deg,#ffd4db,#e58d9b 52%,#985461);transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg);box-shadow:inset 0 0 0 .56rem #fffaf2d1,inset 0 -1.05rem #8b4c5747,0 1rem #b96b76,0 2.15rem 42px #482f3233}.wish-cake:before{content:"";position:absolute;left:50%;top:42%;width:1.75rem;height:1.75rem;border:0;border-radius:.35rem .35rem .2rem;background:#fff8ef;transform:translate(-50%,-50%) rotate(45deg);box-shadow:-.52rem -.52rem #fff8ef,.52rem -.52rem #fff8ef}.wish-cake-cream{top:8%;right:8%;bottom:8%;left:8%;z-index:2;border-radius:50%/36%;clip-path:none;background:repeating-conic-gradient(from 8deg,rgba(255,250,242,.52) 0 8deg,transparent 8deg 18deg),radial-gradient(ellipse at 50% 52%,rgba(255,250,242,.28) 0 48%,transparent 49%);transform:none}.wish-number-candles{top:24%}.wish-plate{top:61%;width:84%;height:40%;border-radius:50%/34%;transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg)}@media (max-width: 520px){.wish-cake{width:70%;height:48%}}.wish-cake-stage{width:clamp(250px,38vw,320px);height:clamp(250px,38vw,320px)}.wish-cake{top:56%;width:72%;height:48%;clip-path:none;border-radius:0;background:none;transform:translate(-50%,-50%);box-shadow:none}.wish-cake:before{content:"";position:absolute;left:50%;bottom:0;width:100%;height:48%;border:0;border-radius:.85rem .85rem .45rem .45rem;background:radial-gradient(circle at 14% 0,#3d2a25 0 9%,transparent 10%),radial-gradient(circle at 31% 0,#3d2a25 0 10%,transparent 11%),radial-gradient(circle at 49% 0,#3d2a25 0 8%,transparent 9%),radial-gradient(circle at 67% 0,#3d2a25 0 11%,transparent 12%),radial-gradient(circle at 84% 0,#3d2a25 0 9%,transparent 10%),linear-gradient(#3d2a25 0,#3d2a25 26%,#f0c191 27%,#f0c191 62%,#3d2a25 63%,#3d2a25 70%,#f0c191 71%);box-shadow:0 18px 34px #482f322e;transform:translate(-50%)}.wish-cake:after{content:"";position:absolute;left:50%;bottom:44%;width:72%;height:38%;border:0;border-radius:.78rem .78rem .38rem .38rem;background:radial-gradient(circle at 15% 0,#3d2a25 0 10%,transparent 11%),radial-gradient(circle at 35% 0,#3d2a25 0 9%,transparent 10%),radial-gradient(circle at 55% 0,#3d2a25 0 11%,transparent 12%),radial-gradient(circle at 78% 0,#3d2a25 0 9%,transparent 10%),linear-gradient(#3d2a25 0,#3d2a25 30%,#f4c999 31%,#f4c999 70%,#3d2a25 71%,#3d2a25 78%,#f4c999 79%);box-shadow:0 10px 22px #482f321f;transform:translate(-50%)}.wish-cake-cream{display:block;position:absolute;left:50%;top:-4%;z-index:4;width:62%;height:18%;border-radius:999px 999px .5rem .5rem;background:radial-gradient(circle at 14% 0,#f2cda4 0 9%,transparent 10%),radial-gradient(circle at 34% 0,#f2cda4 0 10%,transparent 11%),radial-gradient(circle at 55% 0,#f2cda4 0 9%,transparent 10%),radial-gradient(circle at 76% 0,#f2cda4 0 10%,transparent 11%),linear-gradient(#3d2a25 0,#3d2a25 55%,#f2cda4 56%);clip-path:none;transform:translate(-50%)}.wish-plate{top:80%;width:88%;height:9%;border-radius:999px;background:#d4af3733;transform:translate(-50%,-50%)}.wish-number-candles{top:21%;z-index:8;transform:translate(-50%)}.wish-number-candle{color:#fff7ef;text-shadow:-1.4px 0 #3d2a25,0 1.4px #3d2a25,1.4px 0 #3d2a25,0 -1.4px #3d2a25,0 10px 16px rgba(72,47,50,.2)}@media (max-width: 520px){.wish-cake-stage{width:min(78vw,280px);height:min(78vw,280px)}.wish-cake{width:76%;height:50%}.wish-number-candles{top:20%}}.wish-cake-stage{width:clamp(245px,37vw,310px);height:clamp(245px,37vw,310px)}.wish-cake{top:54%;width:70%;height:48%;clip-path:none;border-radius:50%/38%;background:radial-gradient(circle at 37% 38%,rgba(255,250,242,.96) 0 6%,transparent 7%),radial-gradient(circle at 62% 40%,rgba(255,250,242,.9) 0 5.5%,transparent 6.5%),radial-gradient(circle at 50% 55%,#ffdbe1 0 12%,transparent 13%),linear-gradient(180deg,#ffd4db,#e58d9b 52%,#985461);transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg);box-shadow:inset 0 0 0 .56rem #fffaf2d1,inset 0 -1.05rem #8b4c5747,0 1rem #b96b76,0 2.15rem 42px #482f3233}.wish-cake:before{content:"";position:absolute;left:50%;top:43%;width:1.45rem;height:1.45rem;border:0;border-radius:.32rem .32rem .18rem;background:#fff8ef;transform:translate(-50%,-50%) rotate(45deg);box-shadow:-.43rem -.43rem #fff8ef,.43rem -.43rem #fff8ef}.wish-cake:after{content:"";position:absolute;top:15%;right:15%;bottom:15%;left:15%;border-radius:50%/36%;border:1px dashed rgba(124,83,87,.24);background:transparent}.wish-cake-cream{display:block;position:absolute;top:8%;right:8%;bottom:8%;left:8%;z-index:2;width:auto;height:auto;border-radius:50%/36%;clip-path:none;background:repeating-conic-gradient(from 8deg,rgba(255,250,242,.52) 0 8deg,transparent 8deg 18deg),radial-gradient(ellipse at 50% 52%,rgba(255,250,242,.28) 0 48%,transparent 49%);transform:none}.wish-cake-cream:before,.wish-cake-cream:after{display:none}.wish-cake-layer{display:none}.wish-plate{top:61%;width:86%;height:40%;border-radius:50%/34%;background:radial-gradient(ellipse,transparent 0 58%,rgba(212,175,55,.2) 59% 70%,transparent 71%);transform:translate(-50%,-50%) rotateX(58deg) rotate(-4deg)}.wish-number-candles{top:23%;z-index:8;gap:.25rem;transform:translate(-50%) rotate(-3deg)}.wish-number-candle{width:1.78rem;height:2.82rem;font-size:2.82rem;color:#fff7ef;text-shadow:-1.4px 0 #8c5359,0 1.4px #8c5359,1.4px 0 #8c5359,0 -1.4px #8c5359,0 10px 16px rgba(72,47,50,.2)}@media (max-width: 520px){.wish-cake-stage{width:min(76vw,270px);height:min(76vw,270px)}.wish-cake{width:72%;height:50%}.wish-number-candle{width:1.52rem;height:2.42rem;font-size:2.42rem}}.wish-heart-cake{position:absolute;left:50%;top:55%;z-index:3;width:76%;height:auto;overflow:visible;filter:drop-shadow(0 24px 32px rgba(72,47,50,.18));transform:translate(-50%,-50%) rotateX(50deg) rotate(-4deg);transform-origin:50% 58%}.wish-heart-cake .heart-cake-shadow{fill:#d4af3733}.wish-heart-cake .heart-cake-side{fill:url(#heartCakeSide);transform:translateY(15px);opacity:.92}.wish-heart-cake .heart-cake-top{fill:url(#heartCakeTop);stroke:#fffaf2b8;stroke-width:6;stroke-linejoin:round}.wish-heart-cake .heart-cake-icing{fill:#fffaf2b8}.wish-heart-cake .heart-cake-dash{fill:none;stroke:#7c53574d;stroke-width:2;stroke-linecap:round;stroke-dasharray:5 7}.wish-heart-cake circle{fill:#fffaf2e0}.wish-cake{display:none}.wish-number-candles{top:23%;z-index:8}.wish-plate{top:74%;width:82%;height:10%;border-radius:999px;background:#d4af372e;transform:translate(-50%,-50%)}@media (max-width: 520px){.wish-heart-cake{width:80%;top:56%}.wish-number-candles{top:22%}}.wish-heart-cake{top:56%;width:82%;filter:drop-shadow(0 20px 28px rgba(124,83,87,.16))}.wish-heart-cake .heart-cake-shadow{fill:#b95f6f24}.wish-number-candles{top:28%;gap:.2rem}.wish-number-candle{width:1.64rem;height:2.58rem;font-size:2.58rem}.wish-number-candle .wish-flame{top:-1.05rem}.wish-continue{width:min(100%,250px);padding:.72rem 1rem;background:#7c5357d1}.wish-meter{margin-top:.1rem}@media (max-width: 520px){.wish-heart-cake{top:56%;width:84%}.wish-number-candles{top:27.5%}.wish-number-candle{width:1.42rem;height:2.26rem;font-size:2.26rem}}.chapter-frame{display:block;min-height:100vh}.chapter-rail{display:none!important}.chapter-content{width:100%;min-height:100vh}.chapter-page-badge{display:inline-flex;align-items:center;gap:.55rem;width:fit-content;margin-bottom:.95rem;padding:.58rem .86rem;border:1px solid rgba(212,175,55,.28);border-radius:999px;background:#fffcf7b8;box-shadow:0 12px 32px #482f3214;color:var(--primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.chapter-page-badge span{color:#7c5357b8;font-family:Questrial,sans-serif;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase}.chapter-page-badge strong{font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.chapter-heading>.eyebrow{display:none}@media (max-width: 720px){.chapter-page-badge{margin-bottom:.75rem;padding:.52rem .72rem}.chapter-page-badge span{font-size:.58rem}.chapter-page-badge strong{font-size:.66rem}}.chapter-typing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:132;display:grid;place-items:center;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,#fffaf2f0,#f6e8dee6 42%,#3d2628b8),linear-gradient(135deg,#7c535733,#d4af3729);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .22s ease}.chapter-typing-overlay.is-visible{opacity:1}.chapter-typing-overlay:before,.chapter-typing-overlay:after{content:"";position:absolute;width:min(58vw,620px);aspect-ratio:1;border:1px solid rgba(212,175,55,.2);border-radius:43% 57% 62% 38%;opacity:.72}.chapter-typing-overlay:before{left:-12%;top:-18%;animation:chapterOrbOne 1.2s cubic-bezier(.16,1,.3,1) both}.chapter-typing-overlay:after{right:-14%;bottom:-20%;animation:chapterOrbTwo 1.2s cubic-bezier(.16,1,.3,1) both}.chapter-typing-panel{position:relative;z-index:1;display:grid;justify-items:center;gap:.65rem;width:min(calc(100% - 2rem),720px);padding:clamp(2rem,7vw,4.5rem);color:var(--primary);text-align:center;transform:translateY(18px) scale(.97)}.chapter-typing-overlay.is-visible .chapter-typing-panel{animation:chapterTypingPanel 1.08s cubic-bezier(.16,1,.3,1) both}.chapter-typing-panel p{margin:0;color:#7c5357ad;font-family:Questrial,sans-serif;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase}.chapter-typing-panel h2{min-height:1.05em;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(3.4rem,12vw,8rem);font-weight:600;line-height:.9;letter-spacing:-.04em}.chapter-typing-panel h2 span{display:inline-block;width:.08em;height:.72em;margin-left:.08em;background:currentColor;vertical-align:-.02em;animation:typingCursorBlink .52s steps(1) infinite}.chapter-typing-panel strong{margin-top:.25rem;color:#7c5357c2;font-family:Questrial,sans-serif;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;opacity:0}.chapter-typing-overlay.is-visible .chapter-typing-panel strong{animation:chapterLabelIn .42s ease .62s both}@keyframes chapterTypingPanel{0%{opacity:0;transform:translateY(24px) scale(.96);filter:blur(10px)}26%,78%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}to{opacity:0;transform:translateY(-14px) scale(1.02);filter:blur(8px)}}@keyframes chapterLabelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes typingCursorBlink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes chapterOrbOne{0%{transform:translate3d(-8%,-6%,0) rotate(-12deg)}to{transform:translate3d(5%,4%,0) rotate(8deg)}}@keyframes chapterOrbTwo{0%{transform:translate3d(9%,8%,0) rotate(12deg)}to{transform:translate3d(-5%,-3%,0) rotate(-8deg)}}@media (prefers-reduced-motion: reduce){.chapter-typing-overlay,.chapter-typing-overlay:before,.chapter-typing-overlay:after,.chapter-typing-overlay.is-visible .chapter-typing-panel,.chapter-typing-overlay.is-visible .chapter-typing-panel strong,.chapter-typing-panel h2 span{animation:none;transition:none}}.chapter-typing-panel h2{font-family:Ruthligos,Great Vibes,Cormorant Garamond,serif;font-size:clamp(4.4rem,13vw,9.2rem);font-weight:400;letter-spacing:.01em;line-height:.88;text-shadow:0 18px 42px rgba(124,83,87,.18)}.chapter-typing-panel h2 span{width:.045em;height:.58em;vertical-align:.02em}.chapter-typing-panel p,.chapter-typing-panel strong{letter-spacing:.26em}@media (max-width: 520px){.chapter-typing-panel h2{font-size:clamp(3.5rem,18vw,5.7rem)}}.chapter-typing-overlay.is-visible .chapter-typing-panel{animation-duration:1.62s}.chapter-typing-overlay.is-visible .chapter-typing-panel strong{animation-delay:.95s}.chapter-typing-overlay.is-visible{pointer-events:auto}.chapter-typing-overlay.is-ready .chapter-typing-panel{animation:none;opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.chapter-typing-continue{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;margin-top:1rem;padding:.78rem 1.25rem;border:1px solid rgba(124,83,87,.2);border-radius:999px;background:#7c5357e0;color:#fffaf2;cursor:pointer;font-family:Questrial,sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .24s ease,transform .24s ease,box-shadow .18s ease}.chapter-typing-overlay.is-ready .chapter-typing-continue{opacity:1;transform:translateY(0)}.chapter-typing-continue:disabled{cursor:default}.chapter-typing-continue:not(:disabled):hover{box-shadow:0 16px 34px #7c53572e}.chapter-typing-continue .material-symbols-outlined{font-size:1rem}.interactive-flower{--bloom-ratio: 0;--smooth-bloom-scale: calc(.58 + (var(--bloom-ratio) * .44));--smooth-bloom-distance: calc(-1.45rem - (var(--bloom-ratio) * 1.9rem))}.flower-petal{transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(var(--smooth-bloom-distance)) rotate(calc(var(--bloom-ratio) * 14deg)) scale(var(--smooth-bloom-scale));transition:transform .12s linear,opacity .12s linear,filter .12s linear}.flower-interlude.is-bloomed .flower-petal{transform:translate(-50%,-50%) rotate(var(--petal-angle)) translateY(var(--smooth-bloom-distance)) rotate(calc(var(--bloom-ratio) * 14deg)) scale(var(--smooth-bloom-scale))}.flower-center{transform:translate(-50%,-50%) scale(calc(.9 + (var(--bloom-ratio) * .28)))}.flower-interlude.is-bloomed .flower-center{transform:translate(-50%,-50%) scale(1.18)}.flower-progress-bar{display:block;width:min(100%,210px);height:.26rem;overflow:hidden;border-radius:999px;background:#7c535724}.flower-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7c5357d9,#d4af37d6);transition:width .1s linear}.interactive-flower:active .flower-petal{filter:brightness(1.05)}@media (max-width: 520px){.interactive-flower{--smooth-bloom-distance: calc(-1.28rem - (var(--bloom-ratio) * 1.65rem))}}.wish-number-candles{top:34%;align-items:flex-end;gap:.14rem;filter:drop-shadow(0 6px 7px rgba(72,47,50,.12))}.wish-number-candle{color:#fff9ef;transform-origin:50% 100%}.candle-two{transform:rotate(-3deg) translateY(.12rem)}.candle-three{transform:rotate(3deg) translateY(.12rem)}.wish-number-candle:after{content:"";position:absolute;left:50%;bottom:.08rem;width:.74rem;height:.22rem;border-radius:999px;background:#7c535738;transform:translate(-50%)}.wish-number-candle .wish-flame{top:-.78rem;width:.72rem;height:1rem;border-radius:70% 30% 68% 32%;background:radial-gradient(circle at 48% 62%,#fff8b8 0 18%,transparent 19%),radial-gradient(circle at 50% 58%,#ffd36a 0 38%,transparent 39%),linear-gradient(145deg,#ff9a3d,#f05d3f 72%);filter:drop-shadow(0 0 7px rgba(255,150,55,.9)) drop-shadow(0 0 14px rgba(255,196,79,.55));transform:translate(-50%) rotate(42deg);transform-origin:50% 80%;animation:candleFlicker .68s ease-in-out infinite alternate}.wish-heart-cake{top:57%}.wish-heart-cake .heart-cake-top{stroke-width:7}.wish-heart-cake:after{content:""}@keyframes candleFlicker{0%{transform:translate(-50%) rotate(37deg) scale(.88,1.05)}to{transform:translate(-50%) rotate(48deg) scale(1.08,.92)}}@media (max-width: 520px){.wish-number-candles{top:33%}.wish-number-candle .wish-flame{top:-.7rem;width:.62rem;height:.9rem}}.wish-number-candles{top:32%;gap:.2rem}.wish-number-candle{width:2rem;height:3.12rem;font-size:3.12rem}.wish-number-candle:after{width:.9rem;height:.25rem}.wish-number-candle .wish-flame{top:-.95rem;width:.9rem;height:1.2rem}@media (max-width: 520px){.wish-number-candles{top:31.5%}.wish-number-candle{width:1.72rem;height:2.72rem;font-size:2.72rem}.wish-number-candle .wish-flame{width:.78rem;height:1.05rem}}.wish-number-candles{top:30%;gap:.26rem}.wish-number-candle{width:2.45rem;height:3.75rem;font-size:3.75rem}.wish-number-candle:after{bottom:.18rem;width:1.08rem;height:.3rem}.wish-number-candle .wish-flame{top:-1.1rem;width:1.08rem;height:1.42rem}@media (max-width: 520px){.wish-number-candles{top:29.5%}.wish-number-candle{width:2.08rem;height:3.2rem;font-size:3.2rem}.wish-number-candle .wish-flame{top:-1rem;width:.95rem;height:1.24rem}}.wish-number-candle .wish-flame{width:1.02rem;height:1.58rem;border-radius:55% 55% 58% 58%/72% 72% 38% 38%;background:radial-gradient(ellipse at 50% 67%,#fff9ba 0 16%,transparent 17%),radial-gradient(ellipse at 50% 55%,#ffd65f 0 35%,transparent 36%),radial-gradient(ellipse at 50% 48%,#ff9f3d 0 58%,#eb563a 76%,transparent 77%);filter:drop-shadow(0 0 8px rgba(255,157,61,.95)) drop-shadow(0 0 18px rgba(255,210,95,.58));transform:translate(-50%) scaleY(1);animation:naturalFlameFlicker .82s ease-in-out infinite alternate}.wish-number-candle .wish-flame:before{content:"";position:absolute;left:50%;top:27%;width:42%;height:54%;border-radius:55% 55% 50% 50%/78% 78% 34% 34%;background:linear-gradient(180deg,#fffbd1,#ffd05f 58%,#ffd05f00);transform:translate(-50%)}.wish-number-candle .wish-flame:after{content:"";position:absolute;left:50%;bottom:.03rem;width:.28rem;height:.16rem;border-radius:999px;background:#5c2f2257;transform:translate(-50%)}@keyframes naturalFlameFlicker{0%{transform:translate(-50%) translateY(0) rotate(-3deg) scale(.92,1.05);filter:drop-shadow(0 0 7px rgba(255,157,61,.9)) drop-shadow(0 0 16px rgba(255,210,95,.5))}45%{transform:translate(-50%) translateY(-.03rem) rotate(4deg) scale(1.08,.96)}to{transform:translate(-50%) translateY(.02rem) rotate(2deg) scale(.98,1.12);filter:drop-shadow(0 0 10px rgba(255,157,61,1)) drop-shadow(0 0 21px rgba(255,210,95,.64))}}@media (max-width: 520px){.wish-number-candle .wish-flame{width:.92rem;height:1.4rem}}
