@charset "UTF-8";
@font-face{font-family:"Birthday Serif";src:url("./letter-serif.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#142b35;--ink-deep:#10242d;--paper:#f5f1e8;--text:#35413f;--muted:#777d73;--gold:#d0b687;--line:#d9d7ca;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:7px}::selection{background:#d5bb87;color:var(--ink)}.skip{position:fixed;left:16px;top:-80px;z-index:10;background:var(--paper);color:var(--ink);padding:14px}.skip:focus{top:16px}.progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:20;background:var(--gold)}.masthead{position:absolute;z-index:2;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:36px 6.3%;font-size:12px;letter-spacing:2px}.wordmark{display:flex;align-items:center;gap:13px}.tiny-star{font-size:26px;color:var(--gold)}.edition{font:10px var(--sans);letter-spacing:2.4px;color:#b3bab6}.cover{min-height:800px;height:96svh;max-height:1150px;position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;padding:110px 9% 120px;background:var(--ink)}.cover-copy{z-index:1;padding-top:20px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--gold);display:flex;align-items:center;gap:16px}.eyebrow>span{display:inline-block;width:29px;height:1px;background:var(--gold)}h1{font-family:var(--serif);font-weight:400;letter-spacing:6px;font-size:clamp(54px,5.6vw,88px);line-height:1.4;margin:28px 0 22px}.gold-word{color:var(--gold)}.cover-note{font-family:var(--serif);font-size:15px;line-height:2.1;letter-spacing:2px;color:#b7c1bd;margin-bottom:35px}.open-letter{display:inline-flex;gap:42px;align-items:center;border-bottom:1px solid #a9946e;padding:12px 0;font-size:13px;letter-spacing:2px}.arrow{font-size:24px;transition:transform .25s}.open-letter:hover .arrow{transform:translate(3px,-3px)}.orbit-art{position:absolute;width:min(60vw,850px);height:min(60vw,850px);right:-1%;top:50%;transform:translateY(-48%);display:grid;place-items:center}.orbits{position:absolute;inset:0;width:100%;height:100%}.age{position:relative;font-family:Georgia,"Times New Roman",serif;font-size:clamp(170px,25vw,380px);font-weight:400;letter-spacing:-.08em;color:var(--gold);line-height:1;padding-bottom:35px;padding-right:25px}.age-dot{font-size:.34em;letter-spacing:0}.orbit-caption{position:absolute;bottom:16%;font-size:8px;letter-spacing:2.3px;color:#a3aca7}.traveler{transform-origin:350px 350px;animation:orbit 100s linear infinite}.cover-bottom{position:absolute;left:6.3%;right:6.3%;bottom:40px;display:flex;justify-content:space-between;border-top:1px solid #ffffff20;padding-top:23px;font-family:var(--serif);font-size:12px;color:#b6bdb6;letter-spacing:2px}.scroll-hint{font-family:var(--sans);font-size:10px}.scroll-hint span{margin-left:25px}.paper{position:relative;z-index:1;background:var(--paper);color:var(--text);margin:0 28px;border-top:4px solid #cfba91;padding:35px 7% 30px;box-shadow:0 0 60px #06151b22}.paper:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%237b725b' opacity='.15' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.paper-top,.paper-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;color:#7d8073;font-size:9px;letter-spacing:1.8px}.paper-top{border-bottom:1px solid var(--line);padding-bottom:24px}.paper-mark{font-size:24px;color:#9c8255}.letter-layout{position:relative;display:grid;grid-template-columns:150px minmax(0,680px);gap:7%;justify-content:center;padding:90px 0 65px}.margin-notes{align-self:start;position:sticky;top:75px;font-size:11px;color:#8c8e80;padding-top:9px}.margin-title{font-size:10px;letter-spacing:3px;color:#697469}.margin-notes nav{display:flex;flex-direction:column;gap:24px;margin-top:29px}.margin-notes nav a{transition:color .2s;padding:5px 0;display:block;position:relative}.margin-notes nav a:hover,.margin-notes nav a[aria-current="location"]{color:#8b6339}.margin-notes nav a[aria-current="location"]:before{content:"";position:absolute;left:-13px;top:11px;width:4px;height:4px;border-radius:50%;background:#a48452}.margin-line{display:block;height:65px;width:1px;background:#c5c5b4;margin:39px 0 30px}.vertical-note{font-family:var(--serif);writing-mode:vertical-rl;font-size:12px;letter-spacing:3px;line-height:2.2;color:#929585}.letter-body{min-width:0}.section-label{font-family:var(--sans);font-size:10px;letter-spacing:2px;color:#8d876f;margin:0 0 26px}.letter-body h2{font-family:var(--serif);font-size:42px;letter-spacing:4px;font-weight:400;color:#233d40;margin:0 0 38px}.letter-body p[data-source]{font-family:var(--serif);font-size:17px;line-height:2.25;letter-spacing:.7px;margin:0 0 25px;text-align:justify;overflow-wrap:break-word;text-wrap:pretty}.letter-body p[data-source="9"]{font-size:21px;line-height:2.1;color:#66715d;border-left:2px solid #b6b599;padding:5px 0 5px 24px;margin:40px 0 10px}.section-break{display:flex;align-items:center;justify-content:center;gap:23px;color:#a49878;font-size:19px;margin:58px 0}.section-break span{height:1px;width:54px;background:var(--line)}.thread-divider{color:#b0a183;margin:37px 0 45px}.thread-divider svg{width:100%;height:auto}.letter-body p.sign-off{font-size:34px;margin-top:48px;letter-spacing:4px;color:#233d40}.signature-rule{width:35px;height:1px;background:#ae9872;margin-top:27px}.paper-bottom{padding-top:25px;border-top:1px solid var(--line);font-size:10px;letter-spacing:1px}.paper-bottom a{padding:10px 0}.closing{position:relative;overflow:hidden;text-align:center;padding:110px 9% 28px;min-height:590px;background:var(--ink-deep)}.closing>.eyebrow{justify-content:center;font-size:9px}.closing h2{position:relative;font-family:var(--serif);font-weight:400;letter-spacing:5px;font-size:42px;line-height:1.65;margin:27px 0 25px}.closing-orbit{position:absolute;width:650px;height:240px;border:1px solid #b89d6a25;border-radius:50%;left:50%;top:120px;transform:translateX(-50%) rotate(-24deg);transition:border-color 1.5s}.light-star{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:14px;border:0;background:transparent;color:#c9b78f;font-size:11px;letter-spacing:2px;cursor:pointer;min-width:130px;padding:16px}.light-star svg{width:38px;height:38px;fill:transparent;stroke:#c9b78f;stroke-width:.8;transition:filter 1s,fill 1s,transform 1s}.light-star:hover svg{transform:rotate(90deg)}.closing.is-lit .light-star svg{fill:#ead3a0;filter:drop-shadow(0 0 17px #e5c888);transform:rotate(180deg)}.closing.is-lit .closing-orbit{border-color:#d4b77a77}.star-response{font-family:var(--serif);font-size:13px;color:#c4cbbe;min-height:24px;margin:8px 0 35px;letter-spacing:2px}.footer-line{display:flex;justify-content:space-between;align-items:center;color:#8f9f9d;font-size:8px;letter-spacing:2px;border-top:1px solid #ffffff16;padding-top:25px;position:relative}.footer-line>span:nth-child(2){font-family:Georgia,serif;font-size:19px;color:#cbb58c}.footer-line>span:nth-child(2) span{margin-left:10px;font-size:19px}
:root{--serif:"Birthday Serif","Noto Serif SC","Songti SC","STSong","SimSun",serif}
.cover-copy{position:relative}.orbit-art{pointer-events:none}
.margin-notes nav a{min-height:44px;display:flex;align-items:center}.margin-notes nav{gap:6px}.paper-bottom a{min-height:44px;display:inline-flex;align-items:center}.wordmark{min-height:44px}.margin-notes nav a[aria-current="location"]:before{top:20px}
@keyframes orbit{to{transform:rotate(360deg)}}
@media(min-width:1700px){.cover{padding-left:14%}.orbit-art{right:8%}.letter-layout{gap:120px}}
@media(max-width:900px){.cover{min-height:730px;padding-left:7%}.orbit-art{right:-10%;width:66vw;height:66vw}.age{font-size:29vw}.orbit-caption{font-size:6px;letter-spacing:1.4px}.letter-layout{grid-template-columns:105px minmax(0,620px);gap:5%;padding-top:65px}.paper{padding-left:5%;padding-right:5%;margin:0 16px}.letter-body p[data-source]{font-size:16px}.cover h1{font-size:58px}}
@media(max-width:620px){html{scroll-padding-top:24px}.masthead{padding:24px 7%;font-size:10px}.edition{font-size:8px;letter-spacing:1.7px}.tiny-star{font-size:23px}.cover{height:auto;min-height:860px;padding:125px 8% 400px;display:block}.cover-copy{padding:0}.cover .eyebrow{font-size:10px}.cover h1{font-size:54px;letter-spacing:4px;line-height:1.35;margin-top:24px;margin-bottom:18px}.cover-note{font-size:13px;line-height:2;letter-spacing:1px;margin-bottom:20px}.open-letter{font-size:12px;gap:36px;padding:10px 0}.orbit-art{width:410px;height:410px;max-width:110vw;max-height:110vw;top:auto;bottom:60px;right:-8%;transform:none}.age{font-size:205px;padding-bottom:28px}.orbit-caption{font-size:6px;letter-spacing:1.6px;bottom:15%}.cover-bottom{left:8%;right:8%;bottom:24px;padding-top:18px;font-size:10px;letter-spacing:1px}.scroll-hint{font-size:9px}.scroll-hint span{margin-left:8px}.paper{margin:0 10px;padding:24px 24px 22px;border-top-width:3px}.paper-top{font-size:7px;letter-spacing:1.1px;padding-bottom:15px}.paper-mark{font-size:20px}.letter-layout{display:block;padding:48px 0 45px}.margin-notes{position:static;padding:0 0 38px}.margin-title,.margin-line,.vertical-note{display:none}.margin-notes nav{flex-direction:row;justify-content:space-between;gap:6px;margin:0;font-size:10px}.margin-notes nav a{padding:5px 0}.margin-notes nav a[aria-current="location"]:before{display:none}.section-label{font-size:9px;margin-bottom:23px}.letter-body h2{font-size:34px;letter-spacing:2px;margin-bottom:29px}.letter-body p[data-source]{font-size:16px;line-height:2.2;letter-spacing:.3px;margin-bottom:23px}.letter-body p[data-source="9"]{font-size:19px;line-height:2.05;padding-left:17px;margin-top:32px}.section-break{margin:43px 0;gap:20px}.thread-divider{margin:29px 0 35px}.letter-body p.sign-off{font-size:30px;margin-top:36px}.paper-bottom{font-size:8px;letter-spacing:0;gap:10px}.closing{padding:80px 8% 25px;min-height:540px}.closing h2{font-size:33px;letter-spacing:3px;margin-top:27px}.closing-orbit{width:430px;height:180px;top:140px}.footer-line{font-size:6px;letter-spacing:1px}.star-response{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:white;color:#222}.masthead,.cover,.margin-notes,.paper-top,.paper-bottom,.closing,.progress,.skip{display:none}.paper{margin:0;padding:0;background:white;border:0;box-shadow:none}.paper:before{display:none}.letter-layout{display:block;padding:0}.letter-body{max-width:none}.section-label,.section-break,.thread-divider{display:none}.letter-body p[data-source]{font-size:12pt;line-height:1.8}.letter-body p[data-source="9"]{font-size:12pt;border:0;padding:0;margin:0 0 25px}.letter-body h2{font-size:24pt}.letter-section{break-inside:auto}.letter-body p{orphans:3;widows:3}}
