: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)}}.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%}}
