:root{--ink:#1d1d1f;--muted:#66666c;--paper:#f5f5f7;--line:#dedee3;--blue:#0066cc;--width:1120px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #2185e8;outline-offset:6px;border-radius:5px}::selection{background:#c9e3ff}p,h1,h2,h3,figure,blockquote{margin:0}img{display:block}p{font-size:1rem;line-height:1.85}h1,h2,h3{font-weight:600;letter-spacing:-.04em}h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.23}h3{font-size:1.8rem;line-height:1.35}.section-width{width:min(var(--width),calc(100% - 96px));margin-inline:auto}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.16em;line-height:1.5}.skip{position:fixed;top:-100px;background:#fff;padding:12px;z-index:100}.skip:focus{top:0}.site-nav{height:68px;width:100%;padding:0 max(48px,calc((100% - var(--width))/2));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(245,245,247,.82);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(29,29,31,.06)}.wordmark{font-size:1rem;font-weight:600;letter-spacing:-.02em}.wordmark-dot{color:var(--blue);font-size:1.3em}.site-nav nav{display:flex;gap:30px;font-size:.875rem;color:#53535a}.site-nav a:hover{color:var(--blue)}
.hero{min-height:720px;display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;padding-block:72px 96px}.hero-copy{padding-bottom:10px}.hero .eyebrow{color:#77777d;margin-bottom:25px}h1{font-size:clamp(2.8rem,5.5vw,4.7rem);line-height:1.18;letter-spacing:-.055em;white-space:nowrap}h1 span{color:#818188}.hero-intro{margin-top:26px;color:#606066;line-height:1.9;font-size:1.125rem}.pill-link{margin-top:32px;display:inline-flex;align-items:center;gap:24px;background:var(--ink);color:#fff;padding:13px 21px;border-radius:100px;font-size:.875rem;line-height:1.5;transition:background .2s,transform .2s}.pill-link:hover{background:#363638;transform:translateY(-2px)}.pill-link span{font-size:1.2rem}.hero-date{font-size:.8125rem;color:#77777d;margin-top:44px;line-height:1.8}.photo-crop{position:relative;overflow:hidden;background:#dedde0;isolation:isolate}.photo-crop img{position:absolute;width:100%;height:auto;max-width:none}.portrait{aspect-ratio:1206/1560;border-radius:28px}.portrait img{top:-42.3%}.hero-photo{transform:rotate(2deg)}figcaption{display:flex;justify-content:space-between;gap:16px;font-size:.75rem;color:#77777d;padding:16px 4px 0;letter-spacing:.02em}.hero-photo figcaption{transform:rotate(-2deg);padding-top:23px}.hero-photo .photo-crop{box-shadow:0 35px 75px -45px rgba(20,25,40,.5)}
.countdown-section{background:#101114;color:#f5f5f7;padding:100px 0 86px;overflow:hidden}.countdown-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.countdown-heading .eyebrow{color:#9598a2;margin-bottom:24px}.countdown-heading h2{font-weight:500}.countdown-heading>p:last-child{color:#9d9ea8;margin-top:26px;font-size:1.0625rem}.countdown-card{position:relative;padding:40px 42px 30px;background:linear-gradient(135deg,#292c34,#1a1c22);border:1px solid #34363e;border-radius:30px}.countdown-card>p:first-child{color:#cccdd4;font-size:1rem}.day-line{display:flex;align-items:baseline;gap:14px;margin:7px 0 21px}.day-line #days{font-size:clamp(5rem,10vw,9rem);font-weight:300;line-height:1.12;letter-spacing:-.075em;font-variant-numeric:tabular-nums;background:linear-gradient(120deg,#fff 15%,#afbfd6 85%);-webkit-background-clip:text;background-clip:text;color:transparent}.day-unit{font-size:1.05rem;color:#aeafb7}.countdown-bottom{border-top:1px solid #41434b;padding-top:22px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.875rem;color:#c5c6cf}.countdown-bottom span:first-child{font-variant-numeric:tabular-nums;letter-spacing:.06em}.date-note{margin-top:17px;color:#9fa2ac;font-size:.75rem;line-height:1.65}.quiet-quote{text-align:center;margin-top:85px;position:relative}.quote-mark{display:block;font-family:Georgia,serif;font-size:4rem;line-height:.8;color:#6d707c}.quiet-quote blockquote{font-size:clamp(1.125rem,2.2vw,1.55rem);font-weight:400;line-height:1.9;color:#c3c4cc;letter-spacing:.01em}.quiet-quote p{font-size:.875rem;margin-top:18px;color:#a5a8b2}.quiet-quote p span{color:#828693}
.memories{padding-block:112px 120px}.section-heading .eyebrow{color:#85858c;margin-bottom:22px}.section-heading h2 span{color:#86868b}.section-heading>p:last-child{color:var(--muted);margin-top:22px;font-size:1.0625rem}.memory-grid{margin-top:48px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.memory-card{padding:38px 40px 32px;border-radius:25px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;min-height:364px}.memory-meta{display:flex;justify-content:space-between;width:100%;color:#86868b;font-size:.8125rem;letter-spacing:.04em;margin-bottom:26px}.memory-meta time{font-variant-numeric:tabular-nums}.memory-card h3{margin-bottom:18px}.memory-card>p{color:#65656c;max-width:32em}.memory-card .memory-last{color:#313138;margin-top:16px;margin-bottom:28px}.message-fragment{font-size:.8125rem;line-height:1.65;border-top:1px solid #ededf0;width:100%;padding-top:18px;margin-top:auto;color:#75757d}.message-fragment span{display:inline-block;margin-right:10px;color:#9b9ba2}
.letter-section{background:#fff;padding-block:108px}.letter-layout{display:grid;grid-template-columns:.86fr 1fr;gap:95px;align-items:start}.letter-photo{position:sticky;top:112px}.closeup{aspect-ratio:1206/1700;border-radius:26px}.closeup img{top:-14.2%}.letter-copy .eyebrow{color:#818188;margin-bottom:23px}.letter-copy h2{font-weight:500;margin-bottom:30px}.letter-copy>p:not(.eyebrow){color:#64646b;font-size:1.0625rem;margin-top:21px;line-height:1.95}.letter-copy .letter-lead{color:#29292d!important}.letter-rest{margin-top:30px}.letter-rest summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:15px;font-size:.9375rem;color:var(--blue);width:fit-content;padding:8px 0}.letter-rest summary::-webkit-details-marker{display:none}.read-less{display:none}.letter-rest[open] .read-less{display:inline}.letter-rest[open] .read-more{display:none}.plus{width:21px;height:21px;border-radius:50%;border:1px solid #9cc7f2;position:relative}.plus:before,.plus:after{content:"";position:absolute;width:9px;height:1px;background:var(--blue);top:9px;left:5px}.plus:after{transform:rotate(90deg);transition:transform .2s}.letter-rest[open] .plus:after{transform:rotate(0)}.letter-rest>div p{color:#64646b;font-size:1.0625rem;line-height:1.95;margin-top:24px}.letter-rest>div .sign-off{margin-top:38px;color:#29292d}.sign-off span{color:#85858b}.page-end{padding:84px 0 28px}.page-end>p{font-size:clamp(1.4rem,3vw,2rem);line-height:1.7;letter-spacing:-.03em;color:#8a8a91}.page-end strong{font-weight:500;color:#303036}.page-end>div{margin-top:70px;border-top:1px solid #dcdce0;padding-top:24px;display:flex;justify-content:space-between;font-size:.8125rem;color:#73737b}.page-end a:hover{color:var(--blue)}
@media(min-width:1500px){.hero{padding-block:95px 120px;min-height:810px}}
@media(max-width:900px){.section-width{width:calc(100% - 64px)}.site-nav{padding-inline:32px}.hero{gap:40px;min-height:620px}h1{font-size:clamp(2.4rem,5.7vw,4.7rem)}.countdown-layout{gap:40px}.countdown-card{padding:30px}.letter-layout{gap:50px}.memory-card{padding:30px}.hero-date{margin-top:30px}}
@media(max-width:600px){html{scroll-padding-top:76px}.section-width{width:calc(100% - 48px)}.site-nav{height:60px;padding-inline:24px}.site-nav nav{gap:21px;font-size:.8125rem}.hero{grid-template-columns:1fr;gap:40px;padding-block:48px 65px;min-height:auto}.hero-copy{padding:0}.hero .eyebrow{font-size:.6875rem;margin-bottom:22px;letter-spacing:.15em}h1{font-size:clamp(2.6rem,11.1vw,4rem);line-height:1.18;white-space:normal}.hero-intro{font-size:1rem;margin-top:24px}.pill-link{margin-top:26px;padding:12px 19px;font-size:.875rem;gap:18px}.hero-date{font-size:.75rem;margin-top:23px}.hero-photo{width:88%;justify-self:center;transform:rotate(1.5deg)}.portrait{border-radius:23px}.hero-photo figcaption{font-size:.6875rem;padding-top:17px}.countdown-section{padding:65px 0 55px}.countdown-layout{grid-template-columns:1fr;gap:34px}.countdown-heading h2{font-size:2.25rem}.countdown-heading>p:last-child{margin-top:19px;font-size:1rem}.countdown-heading .eyebrow{font-size:.6875rem;margin-bottom:21px}.countdown-card{padding:30px 29px 25px;border-radius:25px}.day-line{margin:7px 0 20px}.day-line #days{font-size:6.8rem}.countdown-bottom{font-size:.8125rem}.date-note{font-size:.75rem}.quiet-quote{margin-top:54px}.quiet-quote blockquote{font-size:1.125rem;line-height:1.85}.quiet-quote p{font-size:.8125rem}.desktop-break{display:none}.memories{padding-block:65px 72px}.section-heading h2{font-size:2.3rem}.section-heading .eyebrow{font-size:.6875rem;margin-bottom:20px}.section-heading>p:last-child{font-size:1rem;margin-top:21px}.memory-grid{grid-template-columns:1fr;margin-top:32px;gap:16px}.memory-card{padding:29px 28px 26px;min-height:0;border-radius:22px}.memory-meta{margin-bottom:25px}.memory-card h3{font-size:1.65rem}.memory-card>p{font-size:1rem;line-height:1.85}.memory-card .memory-last{margin-bottom:25px}.message-fragment{font-size:.8125rem}.letter-section{padding-block:65px}.letter-layout{grid-template-columns:1fr;gap:46px}.letter-photo{position:static;width:85%;margin-inline:auto}.closeup{border-radius:22px}.letter-copy h2{font-size:2.3rem}.letter-copy .eyebrow{font-size:.6875rem}.letter-copy>p:not(.eyebrow),.letter-rest>div p{font-size:1rem;line-height:1.95}.page-end{padding-block:60px 25px}.page-end>p{font-size:1.4rem}.page-end>div{margin-top:46px;font-size:.75rem}}
@media(max-width:350px){.section-width{width:calc(100% - 36px)}.site-nav{padding-inline:18px}.site-nav nav{gap:14px}.wordmark{font-size:.9375rem}.day-line #days{font-size:5.7rem}.memory-card{padding-inline:23px}}
button{font:inherit}button:focus-visible{outline:3px solid #2185e8;outline-offset:5px}.photo-open{display:block;width:100%;border:0;padding:0;cursor:zoom-in;text-align:inherit;color:inherit}.photo-hint{position:absolute;right:16px;bottom:16px;padding:8px 13px;border-radius:30px;background:rgba(25,25,28,.62);color:#fff;font-size:.75rem;backdrop-filter:blur(12px)}.pocket-section{padding-top:80px;text-align:center}.pocket-section .eyebrow{color:#818188;margin-bottom:20px}.pocket-section h2{font-weight:500}.pocket-note{max-width:640px;margin:34px auto 0;padding:36px;background:white;border:1px solid #e6e6eb;border-radius:25px}.note-number{font-size:.8125rem;letter-spacing:.08em;color:#7b7b85}.pocket-note p{font-size:1.25rem;line-height:1.85;min-height:5.5em;display:flex;align-items:center;justify-content:center;margin:20px 0 14px}.note-button{border:0;border-radius:30px;background:#1d1d1f;color:white;padding:13px 23px;cursor:pointer;font-size:.9375rem;min-height:48px}.note-button:hover{background:#39393f}.note-button span{padding-left:18px}.secret-button{background:none;border:0;padding:0 10px;color:var(--blue);cursor:pointer;font-size:.8125rem;min-height:44px;margin-top:-12px}.page-end>.secret-message{font-size:.8125rem;line-height:1.7;color:#72727b;letter-spacing:0;margin-top:12px}.photo-viewing{overflow:hidden}#photo-dialog{border:0;background:rgba(10,10,13,.97);color:#fff;padding:70px 20px 24px;width:100%;height:100%;max-width:none;max-height:none;position:fixed;inset:0;margin:0;overflow:auto}#photo-dialog:not([open]){display:none}#photo-dialog[open]{display:flex;align-items:center;justify-content:center}#photo-dialog::backdrop{background:rgba(0,0,0,.8)}#large-photo{width:min(84vw,540px,calc(73vh * .7));border-radius:14px;flex-shrink:0}#close-photo{position:fixed;right:24px;top:max(20px,env(safe-area-inset-top));border:1px solid #696970;background:#27272c;color:white;border-radius:30px;padding:11px 19px;cursor:pointer;z-index:2}.page-end{padding-bottom:max(28px,env(safe-area-inset-bottom))}@media(max-width:600px){.pocket-section{padding-top:60px}.pocket-note{padding:29px 24px}.pocket-note p{font-size:1.125rem;min-height:7em}.photo-hint{right:12px;bottom:12px;font-size:.75rem}.page-end>div{align-items:baseline;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.secret-button{letter-spacing:.2em;min-width:80px}.page-end>.secret-message{text-align:center;color:#777780;letter-spacing:.3em;font-size:.9375rem;margin-top:22px}.secret-message[hidden]{display:none}

.countdown-clock{font-size:1.05rem;color:#aeafb7;font-variant-numeric:tabular-nums;letter-spacing:.06em;white-space:nowrap;margin:-7px 0 21px}

/* Quiet, personal interactions. */
.reading-progress{position:absolute;bottom:0;left:0;width:100%;height:1px;background:#92a5bb;transform:scaleX(0);transform-origin:left;pointer-events:none}
.secret-button{display:inline-flex;justify-content:center;gap:1em;letter-spacing:0;transition:gap .8s ease}
.secret-button[aria-expanded="true"]{gap:.4em}
.to-be-continued{text-align:center;color:#86868b;font-size:.8125rem;letter-spacing:.04em;padding:0 0 65px;margin-top:-35px}
.letter-rest>div .letter-dedication{margin-top:52px;padding-top:25px;border-top:1px solid #ededf0;font-size:.875rem;color:#86868b;transition:opacity 1.2s ease,transform 1.2s ease}
.letter-dedication.awaiting{opacity:0;transform:translateY(6px)}
.pocket-note{background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23999' opacity='.035' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");box-shadow:0 2px 3px #20202a03,0 16px 40px -28px #20202a30}
.save-note{display:block;margin:15px auto 0;background:none;border:0;color:#818188;font-size:.8125rem;cursor:pointer;min-height:44px}
.save-note[hidden]{display:none}.pocket-note .storage-status{font-size:.75rem;color:#86868b;min-height:0;margin:0;display:block}
.saved-notes{text-align:left;border-top:1px solid #ededf0;margin-top:22px;padding-top:18px;color:#777780;font-size:.8125rem}.saved-notes summary{cursor:pointer}.saved-notes ul{padding-left:20px;line-height:1.9}.saved-notes li+li{margin-top:12px}
.countdown-clock>span{display:inline-block;min-width:2ch;text-align:center}
.photo-stage{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:100%}
#large-photo{transform-origin:top left}.photo-back{display:none;position:absolute;inset:0;background:#f5f4f0;color:#72716f;align-items:center;justify-content:center;padding:30px;text-align:center}
.photo-back p{font-size:clamp(.9375rem,3.5vw,1.15rem);line-height:2.2;max-width:12em;letter-spacing:.08em}
#large-photo.is-back>img{visibility:hidden}#large-photo.is-back .photo-back{display:flex}
#flip-photo{border:0;background:none;color:#a2a2aa;font-size:.8125rem;letter-spacing:.15em;min-height:44px;min-width:72px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.secret-button,.letter-dedication{transition:none}}

.music-widget{position:fixed;right:22px;bottom:max(18px,env(safe-area-inset-bottom));z-index:25;max-width:calc(100vw - 32px)}
.music-controls{display:flex;align-items:center;gap:2px;border:1px solid #dedee3;border-radius:30px;background:rgba(245,245,247,.94);backdrop-filter:blur(18px);box-shadow:0 5px 25px #1d1d1f0a;padding:2px 8px}
.music-widget button{border:0;background:none;color:#66666c;font-size:.8125rem;min-height:44px;padding:0 12px;cursor:pointer}.music-widget button[aria-pressed="true"]{color:#0066cc}
#lyrics-panel{position:absolute;right:0;bottom:60px;width:340px;max-width:calc(100vw - 32px);max-height:min(65vh,560px);overflow:auto;border:1px solid #e1e1e6;border-radius:22px;background:#fafafa;box-shadow:0 16px 60px #1d1d1f20;overscroll-behavior:contain}
#lyrics-panel[hidden]{display:none}.lyrics-heading{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fafafa;font-size:.8125rem;color:#86868b;border-bottom:1px solid #ededf0}.lyrics-text{padding:22px 28px 30px}.lyrics-text p{font-size:.9375rem;line-height:2;color:#66666c;margin-bottom:24px}.lyrics-text .lyrics-note{font-size:.75rem;color:#929299}.music-status{display:block;font-size:.75rem;color:#666;background:#f5f5f7;border-radius:8px;max-width:220px}.music-status:empty{display:none}.page-end{padding-bottom:100px}@media(max-width:600px){.music-widget{right:16px}}
