@font-face{font-family:Bodoni;src:url('assets/fonts/bodoni-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Bodoni;src:url('assets/fonts/bodoni-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{--wine:#421323;--paper:#f5efe4;--pink:#f4c7bf;--muted:#dab5bd;--ink:#532637;--line:#dbcfc4;--display:Bodoni,Georgia,serif;--body:Manrope,Arial,sans-serif;--page-pad:24px;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-bottom:160px;scrollbar-color:var(--pink) var(--wine)}
body{margin:0;background:var(--wine);color:var(--paper);font:400 14px/1.6 var(--body);-webkit-font-smoothing:antialiased}
::selection{background:var(--pink);color:var(--wine)}
button,a,summary,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button,input{font:inherit}button,a,summary{color:inherit}button{cursor:pointer}a{text-underline-offset:5px}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid currentColor;outline-offset:6px}
button:disabled,input:disabled{cursor:wait;opacity:.55}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:-.035em;text-wrap:balance}
em{font-weight:400}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
[hidden]{display:none!important}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:12px 20px;background:var(--paper);color:var(--wine);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.masthead{position:absolute;inset:0 0 auto;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:24px var(--page-pad)}
.wordmark{font-family:var(--display);font-size:25px;letter-spacing:-.03em;text-decoration:none}.wordmark span{color:var(--pink)}.masthead-note{color:var(--muted);font-size:12px}
.hero{position:relative;min-height:820px;min-height:max(780px,100svh);overflow:hidden;isolation:isolate;padding:320px var(--page-pad) 110px}
.hero-art{position:absolute;z-index:-1;top:0;left:0;width:100%;height:370px;overflow:hidden}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center 60%;mask-image:linear-gradient(to bottom,#000 60%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent)}
.hero-copy{position:relative;text-align:center}.hero h1{font-size:clamp(54px,14vw,88px);line-height:.98}.hero h1 em{color:var(--pink)}
.hero-dedication{margin-top:16px;font-size:13px;color:var(--muted)}
.song-intro{min-height:100svh;display:grid;place-items:center;padding:100px var(--page-pad) 130px}main>[tabindex="-1"]:focus{outline:none}.song-reason{max-width:29ch;font:400 clamp(26px,6.8vw,40px)/1.5 var(--display);color:var(--wine)}.song-reason p+p{margin-top:28px}.song-reason .reason-greeting{font:400 14px/1.6 var(--body)}
.listen-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;margin-top:24px;padding:12px 24px;border:1px solid var(--pink);border-radius:0;background:var(--pink);color:var(--wine);font-size:12px;font-weight:600;transition:background .2s,color .2s}
.listen-button svg,.icon-play{fill:currentColor;stroke:none;width:18px;height:18px}.listen-button:hover{background:var(--paper)}
.song-credit{margin-top:12px;color:var(--muted);font-size:12px;letter-spacing:.04em}.audio-message:empty{display:none}.audio-message{max-width:32ch;margin:14px auto 0;font-size:12px;color:var(--pink)}

.paper-section{background:var(--paper);color:var(--wine)}
.snow-story{padding:80px var(--page-pad) 90px;display:grid;gap:40px;justify-items:center}.snow-photo{width:100%;max-width:480px}.snow-photo img,.letter-photo img{display:block;width:100%;height:auto}.snow-story h2{max-width:21ch;font-size:clamp(28px,7.5vw,44px);line-height:1.35;text-align:center}.snow-story em{display:inline}
.doctor-story{display:grid;justify-items:center;gap:40px;min-height:100svh;padding:80px var(--page-pad) 90px}.doctor-photo{width:100%;max-width:380px}.doctor-photo img{display:block;width:100%;height:auto}.doctor-copy{text-align:center}.doctor-copy h2{font-size:clamp(44px,12vw,70px);line-height:1.18}.doctor-copy p{max-width:32ch;margin:28px auto 0;font-size:15px;line-height:1.9;color:var(--ink)}
.bubble{display:grid;justify-items:center;align-items:center;gap:40px;min-height:65svh;padding:100px var(--page-pad);background:#e9dcd2;color:var(--wine);text-align:center}.bubble-photo{width:100%;max-width:580px}.bubble-photo img{display:block;width:100%;height:auto}.bubble h2{font-size:clamp(44px,12vw,70px);line-height:1.18}.bubble-copy p{max-width:32ch;margin-top:28px;font-size:15px;line-height:1.9;color:var(--ink)}
.interlude{position:relative;min-height:640px;min-height:90svh;display:grid;place-items:center;isolation:isolate;overflow:hidden;text-align:center}.interlude-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(92 16 38 / .72),rgb(66 10 29 / .82)),url('assets/photos/sonrisa.webp') center 30%/cover}.interlude p{font-family:var(--display);font-size:clamp(56px,15vw,96px);line-height:1.03;letter-spacing:-.035em}.interlude em{color:var(--pink)}
.letter-section{padding:80px var(--page-pad) 100px;text-align:center}.letter-layout{display:grid;gap:64px;max-width:1100px;margin:auto}.letter-photo{width:100%;max-width:480px;margin:auto}.letter{max-width:540px;margin:auto}.letter summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:center}.letter summary::-webkit-details-marker{display:none}.envelope svg{width:66px;height:48px;stroke-width:1}
#letter-title{font-family:var(--display);font-size:46px;line-height:1.15;letter-spacing:-.035em;margin-top:32px}.letter-action{display:flex;align-items:center;gap:14px;min-height:44px;font-size:12px;margin-top:28px;padding:9px 0;border-bottom:1px solid var(--wine)}.letter-action svg{width:18px;height:18px;transition:transform .3s var(--ease)}.when-open,.letter[open] .when-closed{display:none}.letter[open] .when-open{display:inline}.letter[open] .letter-action svg{transform:rotate(-90deg)}
.letter-body{text-align:left;margin-top:48px;padding-top:30px;border-top:1px solid var(--line);font-size:15px;line-height:1.9}.letter-body p+p{margin-top:22px}.signature{font-family:var(--display);font-style:italic;font-size:34px}
.ending{min-height:620px;min-height:80svh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:90px var(--page-pad) 140px;text-align:center}.ending-heart{width:25px;height:25px;color:var(--pink);margin-bottom:34px;stroke-width:1}.ending h2{font-size:clamp(41px,11.4vw,72px);line-height:1.2}.ending h2 em{color:var(--pink)}.ending>p{font-size:12px;color:var(--muted);margin-top:28px}.ending-signature{font-family:var(--display);font-style:italic;font-size:22px;margin-top:9px}
.back-to-top{display:flex;align-items:center;gap:8px;margin-top:56px;min-height:44px;font-size:12px;text-decoration:none;color:var(--muted)}.back-to-top svg{width:14px;height:14px}
.listening-dock{position:fixed;z-index:20;bottom:calc(12px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:420px;margin:auto;background:var(--paper);color:var(--wine);box-shadow:0 8px 36px #1b071a33;border-radius:4px}.slide-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px}.slide-nav button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border:0;background:transparent;color:var(--wine);font-size:12px}.slide-nav button:hover:not(:disabled){background:#e9dcd2}.slide-nav button:disabled{cursor:default;opacity:.4}.slide-nav svg{width:18px;height:18px}.slide-nav .is-last svg{transform:rotate(-90deg)}.listening-dock.has-player .slide-nav{border-bottom:1px solid var(--line)}.player{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px 17px;animation:player-in .5s var(--ease)}.player-cover{object-fit:cover;width:42px;height:42px}.player-track{min-width:0;flex:1;line-height:1.6}.player-track>span{display:block;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-track small{font-size:12px;color:var(--ink)}#player-time{font-variant-numeric:tabular-nums}
.player-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;background:var(--wine);color:var(--paper);border-radius:50%;transition:background .2s}.player-toggle:hover{background:#71334c}.player-toggle svg{grid-area:1 / 1}.icon-pause{display:none;stroke-width:3;width:18px;height:18px}.player.is-playing .icon-pause{display:block}.player.is-playing .icon-play{display:none}
.seek-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.music-seek{position:absolute;bottom:0;left:0;width:100%;height:14px;margin:0;border:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;--played:0%}
.music-seek::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,var(--wine) var(--played),#d5bdbd var(--played));border-radius:0}.music-seek::-moz-range-track{height:3px;background:#d5bdbd}.music-seek::-moz-range-progress{height:3px;background:var(--wine)}.music-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:9px;height:9px;margin-top:-3px;border:0;border-radius:50%;background:var(--wine)}.music-seek::-moz-range-thumb{width:9px;height:9px;border:0;border-radius:50%;background:var(--wine)}.music-seek:focus-visible{outline-offset:4px}
.no-script{padding:24px;text-align:center;background:var(--paper);color:var(--wine)}.no-script audio{max-width:100%;margin-top:12px}
@keyframes player-in{from{transform:translateY(110px)}to{transform:translateY(0)}}
@media(min-width:700px){
:root{--page-pad:7vw}.masthead{padding-top:30px}.wordmark{font-size:30px}.masthead-note{font-size:12px}
.hero{min-height:800px;min-height:100svh;display:flex;align-items:center;padding:140px var(--page-pad)}.hero-art{top:0;right:0;bottom:0;left:auto;transform:none;width:59%;height:100%}.hero-art img{object-position:45% center;mask-image:linear-gradient(to right,transparent,#000 35%);-webkit-mask-image:linear-gradient(to right,transparent,#000 35%)}.hero-copy{text-align:left;width:65%}.hero h1{font-size:96px}.hero-dedication{font-size:15px;margin-top:32px}.listen-button{margin-top:32px;padding-inline:28px;min-height:54px}.song-credit{font-size:12px}.audio-message{margin-left:0}
.bubble{grid-template-columns:1fr 1fr;gap:72px}.bubble-copy{text-align:left}
.doctor-story{grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:120px var(--page-pad)}.doctor-photo{grid-column:2;grid-row:1}.doctor-copy{grid-column:1;grid-row:1;text-align:left}.doctor-copy p{margin-left:0}
.snow-story{grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:120px var(--page-pad)}.snow-story h2{text-align:left}.letter-layout{grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.interlude{min-height:780px;min-height:100svh}.interlude-art{background-size:cover;background-position:center 15%}.letter-section{padding-block:140px}#letter-title{font-size:60px}.ending{min-height:760px}.ending h2{font-size:72px}.ending>p{font-size:14px}.ending-signature{font-size:26px}.listening-dock{left:auto;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));width:330px;margin:0}
}
@media(max-width:359px){:root{--page-pad:20px}.hero{padding-top:285px}.hero-art{width:100%;height:330px}.hero h1{font-size:54px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
