:root{--ivory:#f6f0e7;--cream:#eee3d4;--paper:#fbf8f2;--ink:#332721;--muted:#86766a;--rose:#b98279;--gold:#b89461;--line:rgba(51,39,33,.16);--shadow:0 18px 55px rgba(60,39,24,.1);font-family:Arial,sans-serif;color:var(--ink);background:var(--ivory)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.23;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E")}button{font:inherit;cursor:pointer}.screen{min-height:100svh;position:relative;padding:clamp(2rem,7vw,7rem) max(1.35rem,7vw);display:flex;flex-direction:column;justify-content:center;overflow:hidden}.intro{background:#2c2421;color:var(--ivory);align-items:center;text-align:center}.intro:after{content:"";position:absolute;width:32rem;height:32rem;border:1px solid rgba(246,240,231,.15);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.intro__date,.eyebrow,.chapter__meta,.reason-groups,.promise-grid span{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase}.intro__date{color:#d7b88c;margin-bottom:3rem;z-index:1}.intro h1,h2{font-family:Georgia,serif;font-weight:400;line-height:.98;letter-spacing:-.045em;margin:0}.intro h1{font-size:clamp(2.6rem,10vw,6.5rem);z-index:1}.intro h1 em,h2 em{color:var(--rose);font-style:italic}.intro__note{font-family:cursive;font-size:1.5rem;color:#dbc6af;margin:2rem 0 3rem;z-index:1}.button{border:0;border-radius:100px;padding:.95rem 1.3rem;display:inline-flex;gap:1.2rem;align-items:center;justify-content:center;transition:transform .25s,background .25s}.button:hover{transform:translateY(-3px)}.button--dark{background:var(--ivory);color:var(--ink);z-index:1}.button--outline{border:1px solid var(--ink);background:transparent;color:var(--ink)}.music-toggle{position:fixed;right:1rem;top:1rem;border:1px solid rgba(246,240,231,.3);color:var(--ivory);background:transparent;padding:.5rem .75rem;border-radius:2rem;z-index:20}.music-toggle span{font-size:.7rem;letter-spacing:.1em}.is-hidden{display:none}.story{display:none}.story.is-visible{display:block}.chapter{background:var(--ivory)}.chapter:nth-child(even){background:var(--cream)}.chapter__meta{position:absolute;top:2rem;left:max(1.35rem,7vw);right:max(1.35rem,7vw);display:flex;justify-content:space-between;color:var(--muted)}.chapter__body{max-width:42rem;position:relative;z-index:2}.eyebrow{color:var(--rose);margin:0 0 1.5rem}.chapter h2{font-size:clamp(2.6rem,11vw,6.4rem);margin-bottom:2rem}.chapter p{font-size:clamp(1rem,2vw,1.2rem);line-height:1.75;max-width:36rem}.muted{color:var(--muted);font-size:.95rem!important}.handwritten{font-family:cursive!important;color:var(--rose);font-size:1.15rem!important;line-height:1.5!important}.photo-placeholder{background:#ddcfc0;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;font-size:.8rem;letter-spacing:.05em}.photo-placeholder small{font-size:.65rem;margin-top:.5rem}.photo-placeholder--portrait{position:absolute;width:clamp(10rem,35vw,18rem);height:clamp(14rem,49vw,25rem);right:5vw;bottom:5%;transform:rotate(5deg)}.photo-caption{position:absolute;bottom:-2rem;font-family:cursive;color:var(--ink);font-size:1rem}.chat{align-items:center}.chat .chapter__body{width:100%}.chat-window{width:min(100%,28rem);margin:1rem 0 2rem;background:#e9e2d8;border-radius:1rem;box-shadow:var(--shadow);overflow:hidden}.chat-window__top{padding:1rem;background:#433c37;color:var(--ivory);font-size:.9rem}.chat-window__top small{float:right;color:#cfbfb0;font-size:.7rem}.status-dot{display:inline-block;width:7px;height:7px;background:#88a779;border-radius:50%;margin-right:.5rem}.chat-messages{padding:1.3rem;display:flex;flex-direction:column;gap:.6rem;background:linear-gradient(#eee9e2,#e4ddd3)}.bubble{max-width:84%;padding:.7rem .85rem;border-radius:1rem;font-size:.86rem;line-height:1.35;box-shadow:0 2px 5px #0000000b}.bubble--in{background:#fffaf3;border-top-left-radius:.25rem;align-self:flex-start}.bubble--out{background:#d8ead0;border-top-right-radius:.25rem;align-self:flex-end}.chapter__aside{text-align:center;font-family:Georgia,serif;font-size:1.15rem!important}.timeline{border-left:1px solid var(--rose);margin:2rem 0;padding:0 0 0 1.5rem}.timeline div{display:flex;gap:1rem;align-items:center;margin:1rem 0}.timeline span{font-size:.7rem;color:var(--rose);font-weight:bold}.timeline p{font-family:Georgia,serif;margin:0;font-size:1.3rem}.traits{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2rem}.traits article{border-top:1px solid var(--line);padding-top:1rem}.traits article:last-child{grid-column:1/-1}.traits b{font:italic 1.7rem Georgia,serif;color:var(--rose)}.traits p{font-size:.86rem;line-height:1.55;margin:.5rem 0}.reasons{background:#e9ded2!important}.reason-card{min-height:15rem;background:var(--paper);padding:2rem;margin:2rem 0 1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;position:relative;cursor:pointer}.reason-card__number{font:italic 4rem Georgia,serif;color:var(--rose)}.reason-card p{font:Georgia,serif;font-size:1.7rem;margin:1rem 3rem 1rem 0;line-height:1.2}.reason-card__next{position:absolute;right:1.3rem;bottom:1.3rem;border:1px solid var(--line);border-radius:50%;background:transparent;width:2.5rem;height:2.5rem}.reason-progress{height:3px;background:rgba(51,39,33,.14)}.reason-progress span{display:block;height:100%;background:var(--rose);width:1.23%;transition:width .3s}.reason-groups{display:flex;justify-content:space-between;color:var(--muted);font-size:.52rem;margin-top:1rem}.chosen{background:#3c302b!important;color:var(--ivory)}.chosen .chapter__meta{color:#c6ae98}.chosen .eyebrow{color:#d59c90}.chosen .handwritten{color:#dbab9e}.family-note{font:italic 1.4rem Georgia,serif;border-left:2px solid var(--rose);padding:1rem 1.5rem;margin-top:2rem}.family-note span{font:normal .75rem Arial;color:var(--muted);display:block;margin-top:.7rem}.promise-grid{display:grid;gap:1rem}.promise-grid article{background:var(--paper);padding:1.5rem;box-shadow:var(--shadow)}.promise-grid article:nth-child(2){background:#dfccc5}.promise-grid p{font:italic 1.3rem Georgia,serif;line-height:1.35;margin:1.5rem 0 1rem}.promise-grid small{color:var(--muted)}.home{background:#342c2a!important;color:var(--ivory)}.home .chapter__meta{color:#c9b5a4}.home .eyebrow{color:#d49a8f}.home .chapter__body{margin-top:10rem}.home-illustration{position:absolute;inset:0;opacity:.75}.moon{position:absolute;width:5rem;height:5rem;border-radius:50%;background:#ddc8a4;right:15%;top:15%}.house{position:absolute;width:14rem;height:9rem;background:#4c3c36;bottom:0;left:50%;transform:translateX(-50%);clip-path:polygon(50% 0,100% 35%,92% 35%,92% 100%,8% 100%,8% 35%,0 35%)}.window-light{position:absolute;width:2.6rem;height:2.6rem;background:#e6bc79;bottom:5rem;left:50%;transform:translateX(-50%);box-shadow:0 0 35px #e6bc79}.support{background:#d7c8b7!important}.letter-paper{max-width:39rem;background:var(--paper);padding:clamp(1.5rem,7vw,4rem);box-shadow:var(--shadow);transform:rotate(-1deg)}.letter-paper h2{font-size:clamp(2rem,8vw,4.5rem)}.letter-paper p{font-size:1rem}.birthday{background:#e9d6d0!important;text-align:center}.center{margin:0 auto;text-align:center;align-items:center}.center p{margin-left:auto;margin-right:auto}.birthday h2{font-size:clamp(3.5rem,16vw,9rem)}.birthday .button{margin-top:1rem}.final-letter{background:#d9c9b9!important}.envelope{align-self:center;width:5rem;height:3.5rem;background:var(--rose);display:grid;place-items:center;color:var(--ivory);font:2rem Georgia,serif;transform:rotate(5deg);margin-bottom:2.5rem;box-shadow:var(--shadow)}.personal-letter p{font-size:1.1rem}.signature{font:italic 1.5rem Georgia,serif;margin-top:3rem}.signature span{font:normal .75rem Arial;color:var(--muted)}.ending{min-height:80svh;background:#2c2421!important;color:var(--ivory)}.ending .eyebrow{color:#d49a8f}.ending h2{font-size:clamp(3rem,13vw,8rem)}.ending p{color:#c9b5a4}.date-replay{border:0;border-bottom:1px solid #c9b5a4;background:transparent;color:var(--ivory);padding:.6rem 0;font:italic 1.1rem Georgia,serif}.date-replay span{color:var(--rose);margin-left:1rem}.footer-credit{font-size:.7rem!important;margin-top:5rem}.footer-credit button{color:var(--rose);background:transparent;border:0;padding:0}.toast{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,1rem);background:#332721;color:var(--ivory);padding:.7rem 1rem;border-radius:2rem;font-size:.8rem;opacity:0;pointer-events:none;transition:.3s;z-index:30;white-space:nowrap}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s}.is-visible .reveal,.chapter.is-seen .reveal{opacity:1;transform:none}@media(min-width:760px){.screen{padding-left:12vw;padding-right:12vw}.chapter__body{max-width:53rem}.photo-placeholder--portrait{right:15vw}.chat .chapter__body{align-self:flex-start}.chat-window{position:absolute;right:12vw;top:25%;margin:0}.chat .chapter__aside{align-self:flex-start;margin-top:5rem}.traits{grid-template-columns:repeat(3,1fr)}.traits article:last-child{grid-column:auto}.promise-grid{grid-template-columns:1fr 1fr}.promise-grid article:nth-child(2){transform:translateY(3rem)}.home .chapter__body{margin-top:12rem}.letter-paper{margin-left:auto;margin-right:auto}.center{max-width:55rem}}@media(max-width:380px){.photo-placeholder--portrait{opacity:.35;right:-2rem}.chapter h2{font-size:2.55rem}.reason-card{min-height:13rem}}
.photo-frame{overflow:hidden;padding:0}.photo-frame img{width:100%;height:100%;display:block;object-fit:cover}.photo-placeholder--portrait img{object-position:center top}.photo-placeholder--birthday{width:min(100%,13rem);height:9rem;margin:1.2rem auto 1.6rem;transform:rotate(-2deg);background:#cfb9aa}.photo-placeholder--birthday img{object-position:center 25%}.envelope{border:0;padding:0}.envelope:focus-visible,.photo-frame:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.music-toggle.is-playing{border-color:rgba(246,240,231,.65);color:#f0d2a0}@media(max-width:600px){.chapter--opening .photo-placeholder--portrait{position:relative;right:auto;bottom:auto;align-self:flex-end;width:10rem;height:14rem;margin-top:1rem;transform:rotate(3deg);opacity:1}.chapter--opening .photo-caption{bottom:-2rem}}

@keyframes cinematic-rise{from{opacity:0;transform:translate3d(0,24px,0);filter:blur(5px)}to{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}@keyframes cinematic-soft-rise{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes cinematic-photo{from{opacity:0;transform:scale(1.06) translate3d(0,18px,0);filter:blur(9px)}to{opacity:1;transform:scale(1) translate3d(0,0,0);filter:blur(0)}}@keyframes cinematic-image-settle{0%{transform:scale(1.08)}100%{transform:scale(1)}}@keyframes cinematic-glow{0%,100%{opacity:.45;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}@keyframes cinematic-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-7px,0)}}@keyframes reason-out{to{opacity:0;transform:translate3d(-12px,4px,0);filter:blur(8px)}}@keyframes reason-in{from{opacity:0;transform:translate3d(16px,0,0);filter:blur(8px)}to{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}@keyframes flap-open{0%{transform:rotate(5deg) translateY(0)}45%{transform:rotate(5deg) translateY(-8px)}100%{transform:rotate(5deg) translateY(-3px)}}@keyframes paper-emerge{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes birthday-pulse{0%,100%{transform:scale(.98);opacity:.82}50%{transform:scale(1.02);opacity:1}}@keyframes ending-breathe{0%,100%{opacity:.68}50%{opacity:1}}

.chapter:not(.is-seen) .chapter__meta,.chapter:not(.is-seen) .chapter__body,.chapter:not(.is-seen) .chat-window,.chapter:not(.is-seen) .chapter__aside,.chapter:not(.is-seen) .letter-paper,.chapter:not(.is-seen) .promise-grid,.chapter:not(.is-seen) .photo-frame{opacity:0}.chapter.is-seen .chapter__meta{animation:cinematic-soft-rise .7s both}.chapter.is-seen .chapter__body{animation:cinematic-rise .9s .12s both}.chapter.is-seen .chapter__body>.eyebrow{animation:cinematic-soft-rise .7s .16s both}.chapter.is-seen .chapter__body>h2{animation:cinematic-rise .9s .28s both}.chapter.is-seen .chapter__body>p{animation:cinematic-soft-rise .8s .48s both}.chapter.is-seen .chapter__body>p:nth-of-type(3){animation-delay:.64s}.chapter.is-seen .chapter__body>.timeline{animation:cinematic-rise .9s .46s both}.chapter.is-seen .photo-frame{animation:cinematic-photo 1.15s .62s both}.chapter.is-seen .photo-frame img{animation:cinematic-image-settle 1.35s .62s both}.chapter.is-seen .photo-caption{animation:cinematic-soft-rise .7s 1.12s both}

.intro h1 span{display:block;opacity:0;transform:translateY(18px);filter:blur(5px);animation:cinematic-rise .9s both}.intro h1 span:nth-child(1){animation-delay:.25s}.intro h1 span:nth-child(2){animation-delay:.42s}.intro h1 span:nth-child(3){animation-delay:.59s}.intro h1 span:nth-child(4){animation-delay:.76s}.intro__date{animation:cinematic-soft-rise .8s both}.intro__note{animation:cinematic-soft-rise .8s 1.05s both}.intro [data-start]{opacity:0;animation:cinematic-rise .9s 1.3s both}.intro:after{animation:cinematic-glow 7s ease-in-out infinite}

.chapter--opening.is-seen .photo-placeholder--portrait{animation:cinematic-photo 1.2s .82s both,cinematic-float 5s 2.1s ease-in-out infinite}.chapter--opening.is-seen .photo-placeholder--portrait img{animation:cinematic-image-settle 1.4s .82s both}.chapter--chat.is-seen .chat-window{animation:cinematic-rise .85s .5s both}.chapter--chat .bubble{opacity:0;transform:translateY(10px) scale(.98)}.chapter--chat.is-seen .bubble{animation:cinematic-soft-rise .48s both}.chapter--chat.is-seen .bubble:nth-child(1){animation-delay:.82s}.chapter--chat.is-seen .bubble:nth-child(2){animation-delay:1.04s}.chapter--chat.is-seen .bubble:nth-child(3){animation-delay:1.26s}.chapter--chat.is-seen .bubble:nth-child(4){animation-delay:1.48s}.chapter--chat.is-seen .bubble:nth-child(5){animation-delay:1.7s}.chapter--chat.is-seen .bubble:nth-child(6){animation-delay:1.92s}.chapter--chat.is-seen .bubble:nth-child(7){animation-delay:2.14s}.chapter--chat.is-seen .bubble:nth-child(8){animation-delay:2.36s}.chapter--chat.is-seen .chapter__aside{animation:cinematic-rise .9s 2.75s both}

.chapter--yosica.is-seen .traits article,.chapter--promises.is-seen .promise-grid article{animation:cinematic-rise .8s both}.chapter--yosica.is-seen .traits article:nth-child(1),.chapter--promises.is-seen .promise-grid article:nth-child(1){animation-delay:.62s}.chapter--yosica.is-seen .traits article:nth-child(2),.chapter--promises.is-seen .promise-grid article:nth-child(2){animation-delay:.78s}.chapter--yosica.is-seen .traits article:nth-child(3){animation-delay:.94s}.chapter--yosica.is-seen .traits article:nth-child(4){animation-delay:1.1s}.chapter--yosica.is-seen .traits article:nth-child(5){animation-delay:1.26s}

.reason-card.is-changing [data-reason-number],.reason-card.is-changing [data-reason-text]{animation:reason-out .24s both}.reason-card.is-changing [data-reason-number].reason-enter,.reason-card.is-changing [data-reason-text].reason-enter{animation:reason-in .62s .18s both}.reason-card[data-emphasis="pause"]{background:#fffaf3}.reason-card[data-emphasis="final"]{background:#3c302b;color:var(--ivory);min-height:17rem}.reason-card[data-emphasis="final"] .reason-card__number{color:#e0aa9d}.reason-card[data-emphasis="final"] [data-reason-text]{font-size:clamp(2rem,8vw,3.2rem);line-height:1.05}.reason-card[data-emphasis="final"] .reason-card__next{border-color:#ffffff55;color:var(--ivory)}.reasons:has(.reason-card[data-emphasis="final"]){background:#ded0c5!important}.chapter--reasons.is-seen .reason-card{animation:cinematic-rise .95s .62s both}

.home:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 62%,rgba(230,188,121,.16),transparent 28%);opacity:0;transition:opacity 1.2s ease}.home.is-seen:before{opacity:1}.home.is-seen .moon{animation:cinematic-soft-rise 1s .42s both,cinematic-float 8s 1.6s ease-in-out infinite}.home.is-seen .window-light{animation:cinematic-glow 3.4s 1s ease-in-out infinite}.home.is-seen .house{animation:cinematic-rise 1.1s .78s both}.home.is-seen .chapter__body{animation-delay:.95s}.home.is-seen .chapter__body>p:nth-of-type(1){animation-delay:1.45s}.home.is-seen .chapter__body>p:nth-of-type(2){animation-delay:1.7s}

.birthday:not(.is-seen) .birthday-prelude,.birthday:not(.is-seen) .birthday-date,.birthday:not(.is-seen) h2,.birthday:not(.is-seen) .photo-placeholder--birthday,.birthday:not(.is-seen) .center>p:not(.birthday-prelude),.birthday:not(.is-seen) .button{opacity:0}.birthday.is-seen .birthday-prelude{animation:cinematic-rise .8s .35s both}.birthday.is-seen .birthday-date{animation:cinematic-rise .9s 1.35s both}.birthday.is-seen h2{animation:cinematic-rise 1.1s 1.9s both}.birthday.is-seen .photo-placeholder--birthday{animation:cinematic-photo 1.15s 2.65s both}.birthday.is-seen .center>p:not(.birthday-prelude){animation:cinematic-soft-rise .8s 3.15s both}.birthday.is-seen .button{animation:cinematic-rise .8s 3.55s both}.birthday.is-seen h2 em{animation:birthday-pulse 3.5s 3s ease-in-out infinite}

.final-letter .personal-letter,.final-letter .signature{opacity:0;transform:translateY(14px)}.final-letter.is-open .envelope{animation:flap-open .75s both}.final-letter.is-open .personal-letter{animation:paper-emerge .9s .5s both}.final-letter.is-open .signature{animation:cinematic-soft-rise .8s 1.25s both}.ending.is-seen .ending-dates span,.ending.is-seen .ending-dates i,.ending.is-seen .ending-dates strong,.ending.is-seen .date-replay{opacity:0;animation:cinematic-soft-rise .8s both}.ending.is-seen .ending-dates span:nth-child(1){animation-delay:.55s}.ending.is-seen .ending-dates i:nth-of-type(1){animation-delay:.8s}.ending.is-seen .ending-dates span:nth-child(2){animation-delay:1.05s}.ending.is-seen .ending-dates i:nth-of-type(2){animation-delay:1.3s}.ending.is-seen .ending-dates strong{animation-delay:1.55s}.ending.is-seen .date-replay{animation:cinematic-rise .8s 2s both}.ending.is-seen .footer-credit{animation:ending-breathe 5s 2.8s ease-in-out infinite}

@media(max-width:600px){.screen{padding-left:1.35rem;padding-right:1.35rem}.chapter__meta{top:1.35rem}.chapter__body{width:100%}.chapter h2{font-size:clamp(2.65rem,12vw,4.4rem);overflow-wrap:anywhere;word-break:normal}.chapter--opening h2{font-size:clamp(2.35rem,10.5vw,4.4rem)}.chapter--opening .photo-placeholder--portrait{margin-left:auto;margin-right:.2rem}.chat-messages{padding:1rem}.reason-card{min-height:17rem;padding:1.6rem}.home .chapter__body,.chapter--home .chapter__body{margin-top:8rem}.home-illustration{opacity:.9}.house{width:13rem;height:8rem}.birthday h2,.chapter--birthday h2{font-size:clamp(3.45rem,16vw,5.4rem)}.final-letter .chapter__body,.chapter--final-letter .chapter__body{padding-top:1rem}.ending-dates{display:flex;flex-direction:column;align-items:center;gap:1rem}.ending-dates i{line-height:1}.ending-dates strong{text-align:center}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;filter:none!important}.chapter:not(.is-seen) .chapter__meta,.chapter:not(.is-seen) .chapter__body,.chapter:not(.is-seen) .chat-window,.chapter:not(.is-seen) .chapter__aside,.chapter:not(.is-seen) .letter-paper,.chapter:not(.is-seen) .promise-grid,.chapter:not(.is-seen) .photo-frame{opacity:1}}

body[data-music-phase="developing"] .story-timeline{transform:translateY(-1px)}body[data-music-phase="warm"] .chapter:not(.home):not(.birthday){background-image:linear-gradient(rgba(185,130,121,.035),rgba(185,130,121,.035))}body[data-music-phase="peak"] .home .window-light{box-shadow:0 0 48px 8px #e6bc79}body[data-music-phase="outro"] .ending .chapter__body{animation-duration:1.5s}

.chapter--reasons{background:#e9ded2!important}.chapter--chosen{background:#3c302b!important;color:var(--ivory)}.chapter--chosen .chapter__meta{color:#c6ae98}.chapter--chosen .eyebrow{color:#d59c90}.chapter--chosen .handwritten{color:#dbab9e}.chapter--support{background:#d7c8b7!important}.chapter--home{background:#342c2a!important;color:var(--ivory)}.chapter--home .chapter__meta{color:#c9b5a4}.chapter--home .eyebrow{color:#d49a8f}.chapter--home .chapter__body{margin-top:10rem}.chapter--birthday{background:#e9d6d0!important;text-align:center}.chapter--birthday h2{font-size:clamp(3.5rem,16vw,9rem)}.chapter--birthday .button{margin-top:1rem}.chapter--final-letter{background:#d9c9b9!important}.chapter--ending{background:var(--ivory)}
.chapter--home:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 62%,rgba(230,188,121,.16),transparent 28%);opacity:0;transition:opacity 1.2s ease}.chapter--home.is-seen:before{opacity:1}.chapter--home.is-seen .moon{animation:cinematic-soft-rise 1s .42s both,cinematic-float 8s 1.6s ease-in-out infinite}.chapter--home.is-seen .window-light{animation:cinematic-glow 3.4s 1s ease-in-out infinite}.chapter--home.is-seen .house{animation:cinematic-rise 1.1s .78s both}.chapter--home.is-seen .chapter__body{animation-delay:.95s}.chapter--home.is-seen .chapter__body>p:nth-of-type(1){animation-delay:1.45s}.chapter--home.is-seen .chapter__body>p:nth-of-type(2){animation-delay:1.7s}
.chapter--birthday:not(.is-seen) .birthday-prelude,.chapter--birthday:not(.is-seen) .birthday-date,.chapter--birthday:not(.is-seen) h2,.chapter--birthday:not(.is-seen) .photo-placeholder--birthday,.chapter--birthday:not(.is-seen) .center>p:not(.birthday-prelude),.chapter--birthday:not(.is-seen) .button{opacity:0}.chapter--birthday.is-seen .birthday-prelude{animation:cinematic-rise .8s .35s both}.chapter--birthday.is-seen .birthday-date{animation:cinematic-rise .9s 1.35s both}.chapter--birthday.is-seen h2{animation:cinematic-rise 1.1s 1.9s both}.chapter--birthday.is-seen .photo-placeholder--birthday{animation:cinematic-photo 1.15s 2.65s both}.chapter--birthday.is-seen .center>p:not(.birthday-prelude){animation:cinematic-soft-rise .8s 3.15s both}.chapter--birthday.is-seen .button{animation:cinematic-rise .8s 3.55s both}.chapter--birthday.is-seen h2 em{animation:birthday-pulse 3.5s 3s ease-in-out infinite}
.chapter--final-letter .personal-letter,.chapter--final-letter .signature{opacity:0;transform:translateY(14px)}.chapter--final-letter.is-open .envelope{animation:flap-open .75s both}.chapter--final-letter.is-open .personal-letter{animation:paper-emerge .9s .5s both}.chapter--final-letter.is-open .signature{animation:cinematic-soft-rise .8s 1.25s both}.chapter--ending.is-seen .ending-dates span,.chapter--ending.is-seen .ending-dates i,.chapter--ending.is-seen .ending-dates strong,.chapter--ending.is-seen .date-replay{opacity:0;animation:cinematic-soft-rise .8s both}.chapter--ending.is-seen .ending-dates span:nth-child(1){animation-delay:.55s}.chapter--ending.is-seen .ending-dates i:nth-of-type(1){animation-delay:.8s}.chapter--ending.is-seen .ending-dates span:nth-child(2){animation-delay:1.05s}.chapter--ending.is-seen .ending-dates i:nth-of-type(2){animation-delay:1.3s}.chapter--ending.is-seen .ending-dates strong{animation-delay:1.55s}.chapter--ending.is-seen .date-replay{animation:cinematic-rise .8s 2s both}.chapter--ending.is-seen .footer-credit{animation:ending-breathe 5s 2.8s ease-in-out infinite}
.chapter--final-letter .envelope{position:relative;isolation:isolate}.chapter--final-letter .envelope span{position:relative;z-index:1}.chapter--final-letter .envelope:before{content:"";position:absolute;inset:0;background:#cb9189;clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top;transition:transform .55s cubic-bezier(.2,.8,.2,1);z-index:0}.chapter--final-letter.is-open .envelope:before{transform:rotateX(180deg)}
