:root{--paper:#eee8dc;--ink:#302b25;--muted:#6c6256;--rust:#885038;--line:#ccc0ad;--song:SimSun,'Songti SC','Noto Serif CJK SC',serif;--fang:FangSong,STFangsong,'Songti SC',SimSun,serif}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--song);line-height:1.8;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible+span{outline:2px solid var(--rust);outline-offset:5px}[hidden]{display:none!important}.grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.17;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.2' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.site-header{height:106px;padding:0 5.6%;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:40px;position:relative;z-index:3}.wordmark{font-size:26px;letter-spacing:.13em;display:flex;align-items:center;gap:10px;white-space:nowrap}.wordmark-seal{font-size:12px;border:1px solid var(--rust);color:var(--rust);height:22px;width:20px;display:grid;place-items:center;letter-spacing:0;transform:rotate(-4deg)}nav{display:flex;gap:36px;margin-left:auto;font-size:16px}nav a{position:relative;padding:8px 0;color:var(--muted)}nav a[aria-current=page]{color:var(--ink)}nav a[aria-current=page]:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--rust)}.edition{font-size:13px;color:var(--muted);margin-left:44px;letter-spacing:.08em}.view{position:relative;min-height:calc(100svh - 170px)}.entrance{display:grid;grid-template-columns:48% 52%;overflow:hidden;min-height:740px}.intro{padding:90px 0 90px 11.7%;position:relative;z-index:2}.eyebrow{font-size:15px;letter-spacing:.22em;color:var(--rust);margin:0 0 28px}h1,h2,p{margin-top:0}h1{font-weight:400}.intro h1{font-size:clamp(42px,4.8vw,70px);line-height:1.45;letter-spacing:.09em;margin:0 0 28px}.intro-copy{font-family:var(--fang);font-size:18px;line-height:2.1;max-width:445px}.intro-copy p{margin-bottom:17px}.primary{border:1px solid var(--rust);background:var(--rust);color:#fff8ee;padding:15px 26px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;letter-spacing:.12em;transition:background .2s}.primary:hover{background:#73412c}.entrance-button{min-width:260px;justify-content:space-between;gap:32px;margin-top:19px}.button-note{font-size:12px;opacity:.8;letter-spacing:.05em}.permission{font-family:var(--fang);font-size:14px;color:var(--muted);margin:18px 0 0}.garden{position:relative;min-width:0;align-self:stretch;margin-left:-145px;pointer-events:none}.garden img{position:absolute;width:118%;height:90%;max-width:none;object-fit:cover;object-position:64% 50%;left:0;top:3%;mix-blend-mode:multiply;mask-image:linear-gradient(to right,transparent,black 24%);-webkit-mask-image:linear-gradient(to right,transparent,black 24%)}.garden-caption{position:absolute;bottom:9%;right:11%;display:flex;gap:35px;font-family:var(--fang);font-size:14px;color:var(--muted);letter-spacing:.12em}.vertical-note{position:absolute;right:3.1%;top:80px;writing-mode:vertical-rl;font-size:13px;color:var(--muted);letter-spacing:.3em}.site-footer{height:64px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 5.6%;font-family:var(--fang);font-size:13px;color:var(--muted);letter-spacing:.12em}.question-view{display:grid;grid-template-columns:25% 1fr;max-width:1440px;margin:auto;overflow:hidden;min-height:760px}.page-margin{padding:78px 0 60px 23%;border-right:1px solid var(--line);position:relative;z-index:2}.small-kicker{color:var(--rust);font-size:14px;letter-spacing:.2em;margin-bottom:26px}.page-margin h2{font-size:36px;font-weight:400;line-height:1.65;letter-spacing:.18em;margin-bottom:32px}.margin-copy{font-family:var(--fang);font-size:16px;line-height:2.15;color:var(--muted)}.margin-rule{height:60px;width:1px;background:var(--line);display:block;margin:32px 0}.margin-bottom{font-size:13px;letter-spacing:.2em;color:var(--muted)}.question-paper{padding:62px 11% 60px 9%;max-width:950px;z-index:2}.question-meta{display:flex;justify-content:space-between;font-size:13px;letter-spacing:.12em;color:var(--muted)}.progress{height:1px;background:var(--line);margin:17px 0 40px}.progress i{display:block;height:2px;width:6.667%;background:var(--rust)}.question-paper h1{font-size:30px;line-height:1.75;letter-spacing:.025em;margin-bottom:16px}.question-hint{font-family:var(--fang);font-size:15px;color:var(--muted);margin-bottom:30px}.choices{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.choices label{display:flex;align-items:center;position:relative;gap:22px;padding:18px 21px;border:1px solid #c8bda9;background:rgba(247,243,234,.56);font-size:17px;cursor:pointer;min-height:66px;transition:background .15s,border-color .15s}.choices label:hover{border-color:var(--rust);background:#e5dbc9}.choices label:has(input:checked){border-color:var(--rust);background:#e5dbc9}.choices input{position:absolute;opacity:0;width:1px;height:1px}.choice-letter{font-family:Georgia,serif;font-size:16px;color:var(--rust)}.choice-mark{margin-left:auto;min-width:13px;width:13px;height:13px;border:1px solid #aa9b86;border-radius:50%}.choices input:checked~.choice-mark{background:var(--rust);border-color:var(--rust);box-shadow:inset 0 0 0 3px #e5dbc9}.question-actions{display:flex;align-items:center;gap:22px;margin-top:28px}.text-button{padding:8px 0;font-size:15px;color:var(--muted);border:0;border-bottom:1px solid transparent;background:transparent;letter-spacing:.04em}.text-button:hover{color:var(--rust);border-bottom-color:var(--rust)}.compact{padding:12px 22px;font-size:16px}.question-actions .primary{margin-left:auto}.prototype-note{font-family:var(--fang);font-size:13px;color:var(--muted);margin:20px 0 0}.question-art{position:absolute;bottom:0;left:-25px;width:26%;height:210px;pointer-events:none;opacity:.6}.question-art img{width:100%;height:100%;object-fit:cover;object-position:left bottom;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent,black 60%)}.letter-view{display:grid;grid-template-columns:23% minmax(0,760px) 1fr;max-width:1500px;margin:auto;min-height:800px;overflow:hidden}.letter-margin{padding:76px 0 0 28%;position:relative;z-index:2}.issue-number{font-size:22px;line-height:2.6;letter-spacing:.15em;display:block;margin:35px 0;color:#8b7b67}.letter-paper{position:relative;z-index:2;padding:50px 65px 40px;margin:40px 0 55px;background:#f7f2e8;box-shadow:0 6px 25px #4a352309;border:1px solid #d9ccba;border-top:3px solid #9b6b4b}.letter-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);letter-spacing:.1em}.letter-preface{font-family:var(--fang);font-size:15px;color:var(--muted);margin:36px 0 15px}.letter-paper h1{font-size:44px;letter-spacing:.12em;margin-bottom:24px}.letter-core{font-family:var(--fang);font-size:24px;line-height:1.95;margin-bottom:28px}.letter-divider{width:40px;height:1px;background:var(--rust);margin-bottom:28px}.letter-body{font-family:var(--fang);font-size:18px;line-height:2.1;max-height:0;opacity:0;overflow:hidden}.letter-body.expanded{max-height:none;opacity:1;overflow:visible}.letter-body p{margin-bottom:21px}.letter-ending{color:var(--rust);margin-top:30px}.read-more{border:0;border-bottom:1px solid var(--line);background:none;padding:5px 0;color:var(--muted);font-size:16px}.signature{display:flex;justify-content:space-between;align-items:center;font-size:14px;letter-spacing:.16em;color:var(--muted);margin:45px 0 0;padding-top:20px;border-top:1px solid #ded2bf}.signature span:first-child{font-size:19px;color:var(--ink)}.letter-actions{margin-top:30px;display:flex;gap:28px;align-items:center}.disclaimer{font-family:var(--fang);font-size:13px;color:var(--muted);line-height:1.8;margin:24px 0 0}.save-status{font-size:14px;color:var(--rust);margin:12px 0 0;min-height:0}.night-garden{position:absolute;inset:0;z-index:0;pointer-events:none}.night-garden img{position:absolute;right:-190px;bottom:0;width:800px;height:650px;object-fit:cover;object-position:right bottom;mix-blend-mode:multiply;opacity:.58;mask-image:linear-gradient(to right,transparent,black 48%);-webkit-mask-image:linear-gradient(to right,transparent,black 48%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.entrance{max-width:1600px;margin:auto;min-height:820px}.intro{padding-top:110px}}
@media(max-width:1000px){.site-header{padding:0 5%;height:85px;gap:20px}.edition{display:none}nav{gap:24px}.entrance{min-height:760px;grid-template-columns:58% 42%}.intro{padding:65px 0 65px 9%}.intro h1{font-size:48px}.garden{margin-left:-140px}.garden img{width:150%;object-position:50%}.garden-caption{right:7%;gap:12px;flex-direction:column}.question-view{grid-template-columns:20% 1fr}.page-margin{padding-left:25%}.page-margin h2{font-size:27px}.question-paper{padding-left:8%;padding-right:7%}.question-paper h1{font-size:28px}.letter-view{grid-template-columns:15% minmax(0,680px) 1fr}.letter-margin{padding-left:25%}.letter-paper{padding:40px}.letter-margin .margin-copy{display:none}}
@media(max-width:640px){.site-header{height:76px;padding:0 24px}.wordmark{font-size:22px;gap:7px}.wordmark-seal{height:19px;width:18px;font-size:11px}nav{gap:23px;font-size:14px}.entrance{display:block;min-height:790px}.intro{padding:42px 28px 295px}.eyebrow{font-size:13px;margin-bottom:21px}.intro h1{font-size:43px;line-height:1.45;letter-spacing:.06em;margin-bottom:23px}.intro-copy{font-size:17px;line-height:1.95;max-width:340px}.intro-copy p{margin-bottom:14px}.desktop-break{display:none}.entrance-button{margin-top:15px;min-width:255px;padding:14px 21px;font-size:17px}.permission{font-size:13px;max-width:290px;line-height:1.9}.garden{position:absolute;inset:auto 0 0;height:315px;margin:0;z-index:0}.garden img{width:100%;height:100%;top:0;left:0;object-position:65% 70%;mask-image:linear-gradient(to bottom,transparent,black 23%);-webkit-mask-image:linear-gradient(to bottom,transparent,black 23%)}.garden-caption{bottom:18px;right:26px;gap:0;flex-direction:row;font-size:12px}.garden-caption span:first-child{display:none}.vertical-note{right:21px;top:37px;font-size:12px;letter-spacing:.25em}.site-footer{height:60px;padding:0 24px;font-size:12px;letter-spacing:.02em}.site-footer span:first-child{display:none}.question-view{display:block;min-height:calc(100svh - 136px)}.page-margin{border:0;padding:26px 26px 0;display:flex;gap:16px;align-items:center}.page-margin .small-kicker{margin:0;font-size:13px}.page-margin h2{font-size:14px;margin:0;letter-spacing:.12em}.page-margin h2 br{display:none}.page-margin .margin-copy,.margin-rule,.margin-bottom{display:none}.question-paper{padding:23px 26px 38px}.progress{margin:13px 0 29px}.question-paper h1{font-size:25px;line-height:1.8}.question-hint{font-size:14px;margin-bottom:24px;line-height:1.9}.choices{gap:11px}.choices label{padding:15px 16px;gap:15px;min-height:71px;font-size:16px;line-height:1.8}.choice-letter{font-size:15px}.question-actions{gap:20px;margin-top:26px;flex-wrap:wrap}.question-actions .text-button{font-size:14px}.compact{padding:11px 18px;font-size:15px}.prototype-note{font-size:12px;line-height:1.9}.question-art{display:none}.letter-view{display:block;padding:25px 19px 38px;min-height:calc(100svh - 136px)}.letter-margin{padding:0 8px 15px}.letter-margin .small-kicker{font-size:13px;margin:0}.issue-number{display:none}.letter-paper{margin:0;padding:29px 25px 27px}.letter-meta{font-size:12px}.letter-preface{margin-top:31px;font-size:14px}.letter-paper h1{font-size:34px;letter-spacing:.08em;margin-bottom:20px}.letter-core{font-size:21px;line-height:1.95}.letter-body{font-size:17px}.signature{margin-top:35px}.letter-actions{gap:24px;flex-wrap:wrap}.disclaimer{font-size:12px}.night-garden img{width:100%;height:300px;right:0;opacity:.25}.read-more{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Phone composition: a small reading page, with the garden below the invitation. */
.intro h1{font-size:clamp(35px,3.4vw,53px);letter-spacing:.045em}
@media(max-width:640px){
 html{scroll-padding-top:16px}body{overflow-wrap:break-word;-webkit-text-size-adjust:100%}
 .site-header{height:72px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));gap:12px}
 .wordmark{font-size:20px;letter-spacing:.06em;gap:6px}nav{gap:17px;font-size:14px}nav a{min-height:44px;display:flex;align-items:center}
 .entrance{min-height:0}.intro{padding:38px 26px 252px}.eyebrow{margin-bottom:22px;font-size:13px}
 .intro h1{font-size:clamp(25px,6.7vw,36px);line-height:1.7;letter-spacing:.025em;margin-bottom:25px;white-space:nowrap}
 .intro-copy{font-size:17px;line-height:2;max-width:100%}.intro-copy p{margin-bottom:20px}
 .entrance-button{width:100%;max-width:340px;min-width:0;min-height:56px;margin-top:8px;padding:14px 20px}
 .permission{font-size:14px;max-width:340px;margin-top:15px}.garden{height:245px}.garden img{object-position:72% 75%;mask-image:linear-gradient(to bottom,transparent,black 30%);-webkit-mask-image:linear-gradient(to bottom,transparent,black 30%)}
 .garden-caption{right:26px;bottom:22px}.vertical-note{display:none}
 .site-footer{min-height:60px;height:auto;padding:17px 22px calc(17px + env(safe-area-inset-bottom));gap:15px}.site-footer span:last-child{white-space:nowrap}
 .question-paper{padding:22px 22px 32px}.page-margin{padding-left:22px}.question-paper h1{font-size:24px;line-height:1.75}.question-hint{font-size:15px}.choices label{min-height:74px;padding:16px 14px;gap:12px}.choice-letter,.choice-mark{flex-shrink:0}
 .question-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.text-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.question-actions .primary{grid-column:1/-1;width:100%;min-height:52px;margin:0;font-size:17px}.prototype-note{font-size:13px}
 .letter-view{padding:24px 14px 32px}.letter-paper{padding:27px 21px}.letter-meta{letter-spacing:.03em}.letter-paper h1{font-size:32px}.letter-core{font-size:20px}.letter-body{font-size:17px;line-height:2.1}.read-more{min-height:44px}.letter-actions{display:grid;grid-template-columns:1fr;gap:8px}.letter-actions .primary{min-height:52px;font-size:17px}.disclaimer{font-size:13px}.signature{letter-spacing:.05em}.signature span:first-child{font-size:17px}
}
@media(max-width:350px){.site-header{padding:0 16px}.wordmark{font-size:18px}.wordmark-seal{display:none}nav{gap:14px}.intro{padding-left:21px;padding-right:21px}.letter-core{font-size:18px}.letter-paper{padding-left:17px;padding-right:17px}}

.intro h1{font-size:clamp(48px,5vw,72px);letter-spacing:.16em}
@media(max-width:640px){.intro h1{font-size:clamp(39px,11vw,48px);letter-spacing:.13em;margin-bottom:28px}}
.entrance-ending{margin-top:30px!important;color:var(--rust)}.intro{padding-top:65px;padding-bottom:75px}.intro-copy{font-size:17px}.garden img{height:75%;top:20%}.question-paper h1:focus{outline:none}.answer-status{font-size:14px;color:var(--rust);min-height:1.8em;margin-bottom:0}.early-letter{margin-top:10px}.record-actions{display:flex;justify-content:center;gap:20px;align-items:center;padding:12px 22px 24px;font-family:var(--fang);font-size:14px;color:var(--muted)}.picker-card{display:block;text-align:left;width:100%;background:transparent;border:1px solid var(--line);padding:22px;margin:20px 0;color:var(--ink)}.picker-card strong{display:block;font-weight:400;font-size:26px;margin-bottom:10px}.picker-card span{font-family:var(--fang);font-size:17px;white-space:pre-line}.picker-card:hover{border-color:var(--rust)}.question-actions button:disabled{opacity:.4;cursor:default}.gate{min-height:calc(100svh - 130px);display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:1200px;margin:auto;padding:70px 6%;gap:40px}.gate h1{font-size:56px;letter-spacing:.14em;margin-bottom:30px}.gate-copy{font-family:var(--fang);font-size:19px;line-height:2.1}.gate form{margin-top:35px;max-width:350px}.gate label{display:block;font-size:16px;margin-bottom:10px}.gate input{display:block;width:100%;min-height:54px;border:1px solid var(--line);background:#f7f2e8;padding:12px 15px;color:var(--ink);font:18px var(--song);border-radius:0}.gate .primary{width:100%;margin-top:16px;min-height:54px}.gate-note{font:15px/2 var(--fang);color:var(--muted);margin-top:20px}.gate-error{color:var(--rust);font-size:15px}.gate-art img{width:100%;mix-blend-mode:multiply}.support-note{font:14px/1.9 var(--fang);color:var(--muted);border-top:1px solid var(--line);padding-top:15px;margin-top:20px}
@media(max-width:640px){.intro{padding-top:35px;padding-bottom:260px}.intro-copy{font-size:16px;line-height:2}.intro-copy p{margin-bottom:22px}.garden img{height:100%;top:0}.record-actions{flex-direction:column;gap:0}.gate{display:block;padding:42px 26px 30px}.gate h1{font-size:42px}.gate-copy{font-size:18px}.gate form{max-width:none}.gate-art{margin-top:35px;max-height:200px;overflow:hidden}.gate-art img{height:230px;object-fit:cover;object-position:70% 70%;mask-image:linear-gradient(transparent,black 30%)}.question-actions{grid-template-columns:1fr 1fr}.early-letter{display:flex;width:100%;justify-content:center}.picker-card strong{font-size:25px}.record-actions .text-button{font-size:14px}}
