:root{--paper:#fbfcfa;--white:#fff;--ink:#172d30;--green:#135c4b;--green-dark:#104637;--mint:#e4f0e8;--line:#d8e1da;--muted:#526765;--amber:#805013;--red:#a92e40;--shadow:0 16px 50px #123b2810;color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a,button,input,select,summary{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b47722}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.04}h1 em{font-style:normal;color:var(--green)}h2{font-size:clamp(1.65rem,3vw,2.3rem);line-height:1.18}h3{font-size:1.3rem;letter-spacing:-.025em}p{line-height:1.65}button,.button{border-radius:9px}button{background:transparent;border:1px solid var(--line)}.wrap{width:min(1184px,calc(100% - 80px));margin:auto}.site-header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:22px;font-weight:650;letter-spacing:-.6px;line-height:1}.brand-mark{background:var(--green);color:white;border-radius:12px;font-family:"Kaiti SC","STKaiti","Songti SC",serif;font-size:30px;padding:10px 12px}.brand-small{display:block;letter-spacing:3.1px;font-size:10px;margin-top:7px;font-weight:600}.site-header nav{display:flex;gap:32px;align-items:center}.site-header nav a{text-decoration:none;font-size:14px;color:var(--muted);padding:12px 0}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--green);box-shadow:0 2px var(--green)}.skip{position:fixed;top:-80px;z-index:20;padding:16px;background:#fff}.skip:focus{top:10px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;padding:84px 0 74px;align-items:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;line-height:1.6;margin-bottom:22px;color:var(--green)}.small-dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:8px}.lede{font-size:18px;line-height:1.65;color:var(--muted);max-width:630px;margin:24px 0}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;text-decoration:none;font-weight:600;font-size:14px;line-height:1.35;padding:16px 22px;min-height:50px;border:1px solid var(--line);transition:background .15s}.button.primary{color:white;background:var(--green);border-color:var(--green)}.button.primary:hover{background:var(--green-dark)}.button.secondary{background:#fff;color:var(--green)}.button.secondary:hover{background:var(--mint)}.button.small-button{min-height:40px;padding:10px 16px;font-size:13px}.button.danger{border-color:#dcb1b8;color:var(--red);background:#fff5f6}.quiet{color:var(--muted)}.small{font-size:12px}.hero-actions{margin:30px 0 16px}.hero-art{background:var(--mint);border:1px solid #c5dace;border-radius:20px;padding:30px;transform:rotate(2deg);box-shadow:12px 18px 0 #f0f4ee}.art-heading,.art-caption{display:flex;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:1.3px;font-weight:650;color:var(--green)}.art-characters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:28px 0}.art-characters span{display:grid;place-items:center;background:#fff;border:1px solid #d0ded3;border-radius:12px;aspect-ratio:1.2;font-size:65px;font-family:"Songti SC","Noto Serif CJK SC","STSong",serif;box-shadow:0 4px #d0ded3}.component-note{display:flex;gap:14px;align-items:center;margin:10px 0 24px}.component-note strong{font-size:12px}.component-note p{font-size:11px;color:var(--muted);margin-top:5px}.component{font-size:34px;border-right:1px solid #bacfc0;padding:0 16px 0 4px;font-family:"Songti SC",serif}.art-caption{border-top:1px solid #c7d9cc;padding-top:16px;letter-spacing:.4px}.section-border{border-top:1px solid var(--line)}.two-paths{display:grid;grid-template-columns:.9fr 1fr 1fr;gap:44px;padding:52px 0}.section-heading .eyebrow{margin-bottom:14px}.path{display:flex;gap:16px}.path-number{font-size:12px;font-weight:650;color:var(--green);padding-top:6px}.path p{color:var(--muted);font-size:14px;margin:14px 0 20px}.text-link{font-size:14px;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.friend-strip{display:flex;gap:36px;align-items:center;background:var(--green);color:#fff;border-radius:14px;padding:38px 48px;margin:22px 0 68px}.friend-strip .eyebrow{color:#b8dacc;margin-bottom:10px}.friend-strip p:last-child{color:#d0e6db;margin-top:12px;font-size:14px;max-width:680px}.friend-glyph{font-family:"Songti SC",serif;font-size:90px;color:#a3ccb7}.site-footer{padding:32px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:24px;flex-wrap:wrap;color:var(--muted)}.footer-brand{font-size:16px}.site-footer p{font-size:12px;flex:1}.site-footer nav{display:flex;gap:20px;font-size:12px}.site-footer a{text-decoration:none}.site-footer small{width:100%;font-size:10px;letter-spacing:1px}.page-intro{padding:64px 0 42px}.narrow{max-width:720px}.intro-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:52px;margin:0 0 70px}.paper{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:var(--shadow)}.tag{display:inline-block;padding:7px 10px;border-radius:5px;background:var(--mint);color:var(--green);font-size:10px;letter-spacing:1px;font-weight:650;margin-bottom:18px}.steps{padding-left:22px;margin:28px 0}.steps li{padding-left:12px;margin:24px 0;color:var(--green)}.steps strong{display:block;color:var(--ink);font-size:15px}.steps span{display:block;color:var(--muted);font-size:14px;line-height:1.6;margin-top:5px}.aside-note{padding:30px 0}.aside-note p{margin:18px 0;font-size:14px;color:var(--muted)}.aside-note a{font-size:13px}.loading{padding:48px 0;color:var(--muted)}.tier-section{padding:28px 0 40px;border-top:1px solid var(--line)}.tier-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:24px}.tier-heading h2{font-size:26px}.tier-heading p{font-size:14px;color:var(--muted);margin-top:9px}.tier-index{font-size:12px;font-weight:700;color:var(--green);letter-spacing:2px}.board-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.board-link{text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:16px;transition:transform .15s,border-color .15s}.board-link:hover{transform:translateY(-3px);border-color:var(--green)}.board-link-top{display:flex;justify-content:space-between;font-size:11px;font-weight:650}.board-preview{font-family:"Songti SC",serif;letter-spacing:7px;font-size:24px;color:var(--ink);white-space:nowrap}.board-link small{color:var(--muted);font-size:10px}.notice{background:#eff5f0;border-left:3px solid var(--green);padding:14px 18px;font-size:13px;line-height:1.65;border-radius:0 6px 6px 0;margin:20px 0}.notice.warn{background:#fff6e8;border-color:var(--amber);color:#70450d}.notice.error{background:#fff0f2;border-color:var(--red);color:var(--red)}.assessment-wrap{max-width:760px;margin:48px auto 70px}.assessment-top{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted);margin-bottom:20px}.assessment-top strong{color:var(--green)}.progress-track{height:5px;background:var(--line);border-radius:5px;overflow:hidden;margin:16px 0 32px}.progress-track progress{width:100%;height:5px;display:block;appearance:none;border:0;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}.question-kind{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted);margin-bottom:12px}.question-prompt{font-size:25px;letter-spacing:-.5px;line-height:1.35}.question-text{background:#f3f6f1;border-left:3px solid #b7cdbd;margin:28px 0;padding:24px 28px;font-family:"Songti SC","STSong",serif;font-size:clamp(26px,4vw,37px);line-height:1.6;overflow-wrap:anywhere}.question-text mark{background:transparent;color:var(--green);text-decoration:underline;text-decoration-color:#93b49e;text-decoration-thickness:3px;text-underline-offset:9px}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.option{text-align:left;padding:18px;min-height:65px;background:#fff;display:flex;align-items:center;gap:14px;line-height:1.4;font-size:15px}.option:hover,.option[aria-pressed=true]{border-color:var(--green);background:var(--mint)}.option-index{font-size:11px;border:1px solid var(--line);border-radius:5px;padding:5px 7px;color:var(--muted)}.option.unsure{grid-column:1/-1;min-height:48px;justify-content:center;color:var(--muted);font-size:13px}.question-bottom{display:flex;justify-content:space-between;gap:20px;margin:24px 0;align-items:center}.text-button{border:0;color:var(--green);text-decoration:underline;text-underline-offset:4px;font-size:13px;padding:10px 0}.question-bottom p{font-size:12px;color:var(--muted)}.report-top{padding:48px 0 24px;display:flex;justify-content:space-between;gap:12px;align-items:center}.report-top p{margin:0}.report-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:42px;margin-bottom:42px}.snapshot{position:relative;background:var(--green);color:#fff;border-radius:16px;padding:40px;overflow:hidden;min-height:420px;display:flex;flex-direction:column}.snapshot:after{content:'字';position:absolute;right:-10px;top:80px;font-family:"Songti SC",serif;font-size:210px;color:#ffffff0a;pointer-events:none}.snapshot .eyebrow{color:#c1dfd1}.snapshot h1{font-size:42px;line-height:1.1;max-width:340px}.snapshot .band{font-size:15px;color:#c7e4d6;margin:20px 0}.score-large{font-size:76px;letter-spacing:-5px;font-weight:600;line-height:1.05;margin:10px 0}.score-large span{font-size:26px;color:#b3d5c4;letter-spacing:-1px}.snapshot-caption{font-size:12px;color:#cae0d6;margin-top:auto;padding-top:22px;border-top:1px solid #ffffff38;line-height:1.7}.report-notes{padding:12px 0}.report-notes h2{font-size:27px}.observations{padding-left:22px;color:var(--muted);line-height:1.75;font-size:15px}.observations li{padding:8px 0 8px 4px}.report-notes .actions{margin-top:24px}.section-block{margin:36px 0 50px}.section-block>h2{margin-bottom:20px}.evidence-list details{border-bottom:1px solid var(--line);padding:16px 0}.evidence-list summary{cursor:pointer;display:flex;gap:14px;align-items:center;list-style:none;line-height:1.6;font-size:15px}.evidence-list summary:after{content:'+';margin-left:auto;color:var(--green);font-size:20px}.evidence-list details[open] summary:after{content:'−'}.evidence-dot{color:var(--green);font-size:13px;font-weight:700;min-width:18px}.evidence-dot.wrong{color:var(--amber)}.evidence-body{padding:16px 32px;color:var(--muted);font-size:14px}.evidence-body p+p{margin-top:8px}.share-bar{background:var(--mint);border:1px solid #cdded1;border-radius:12px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.share-bar p{font-size:14px;margin-top:8px;color:var(--muted)}.participation{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0 52px}.participation section{border-top:1px solid var(--line);padding:28px 0}.participation p{color:var(--muted);font-size:13px;margin:12px 0}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted);margin:16px 0}.field input,.field select,input[type=text],select{border:1px solid #b8c9be;padding:12px;border-radius:7px;background:#fff;color:var(--ink);min-height:44px;max-width:100%}.check{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.6;margin:16px 0}.check input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0;margin:0}.game-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:48px;margin:44px 0 60px;align-items:start}.game-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px;align-items:center}.game-heading h1{font-size:36px;line-height:1.15}.game-heading .eyebrow{margin-bottom:10px}.game-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;align-items:center;margin:14px 0}.mistakes{display:flex;gap:5px}.mistakes i{width:8px;height:8px;border-radius:50%;background:var(--green)}.mistakes i.used{background:#d4dcd5}.tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border:1px solid #cbd8ce;box-shadow:0 3px 0 #dce5dd;border-radius:12px;min-height:100px;position:relative;transition:background .12s,transform .12s}.tile .glyph{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:42px;line-height:1.25}.tile .pinyin{font-size:11px;margin-top:3px;color:var(--muted)}.tile[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green);transform:translateY(2px);box-shadow:none}.tile[aria-pressed=true] .pinyin{color:#d0e6db}.tile:disabled{opacity:.24;box-shadow:none}.game-controls{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:24px}.game-controls .button{flex:1}.selection-count{font-size:12px;color:var(--muted);margin:16px 0}.game-aside{background:#edf3ed;padding:28px;border-radius:14px;position:sticky;top:24px}.game-aside h2{font-size:22px}.game-aside p{font-size:13px;color:var(--muted);margin:12px 0 16px}.game-aside ol{font-size:13px;line-height:1.8;color:var(--muted);padding-left:20px}.hint-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.locked-group{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#dcece0;border:1px solid #c1d9c7;padding:16px 20px;border-radius:9px;margin:10px 0;color:var(--green)}.locked-group span:first-child{font-size:25px;letter-spacing:8px;font-family:"Songti SC",serif}.locked-group small{font-size:11px}.draft-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.draft-slot{border:1px dashed #9bb5a4;border-radius:9px;padding:14px;min-height:90px;background:#f1f6f0;display:flex;flex-direction:column;gap:10px}.draft-slot div{display:flex;justify-content:space-between;align-items:center}.draft-slot strong{font-size:10px;font-weight:650;letter-spacing:1px;color:var(--green)}.draft-slot span{font-family:"Songti SC",serif;font-size:24px;letter-spacing:5px}.draft-slot button{padding:4px 7px;font-size:11px;min-height:32px;background:#fff}.result-heading{padding:48px 0 24px}.result-heading h1{font-size:44px;margin-bottom:20px}.result-stats{display:flex;gap:36px;align-items:center;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px}.result-stats strong{font-size:32px;display:block;letter-spacing:-1px}.result-stats span{font-size:12px;color:var(--muted)}.answer-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:36px}.answer-family{border:1px solid var(--line);border-radius:12px;padding:22px;background:#fff}.answer-family h3{display:flex;align-items:center;gap:14px;font-size:13px}.answer-family .big-component{font-size:36px;font-family:"Songti SC",serif;color:var(--green)}.answer-family>p{font-size:12px;color:var(--muted);margin:14px 0}.word-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.word-note{padding-top:12px;border-top:1px solid var(--line)}.word-note strong{font-family:"Songti SC",serif;font-size:23px;font-weight:500}.word-note span{font-size:11px;color:var(--muted)}.word-note p{font-size:11px;margin-top:4px}.practice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.practice-item{background:var(--mint);border-radius:12px;padding:24px}.practice-item h3{font-size:29px;letter-spacing:2px;font-family:"Songti SC",serif}.practice-item p{font-size:13px;margin:8px 0}.practice-item .sentence{font-size:18px;margin-top:20px;line-height:1.7}.practice-item .actions{margin-top:18px}.practice-item .button{padding:10px 14px;font-size:12px;min-height:42px;gap:8px}.button[aria-pressed=true]{background:var(--green);color:#fff}.room-header{padding:50px 0 30px;display:grid;grid-template-columns:1.5fr 1fr;gap:36px}.room-header h1{font-size:48px}.room-note{background:var(--mint);padding:24px;border-radius:12px;align-self:center;font-size:13px}.room-note p{margin:8px 0}.room-tools{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}.invite-url{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:20px 0}.invite-url input{min-width:0;flex:1}.rank-list{list-style:none;margin:20px 0 34px;padding:0}.rank-row{display:grid;grid-template-columns:50px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:18px 8px;font-size:14px}.rank-row .rank{font-weight:600;color:var(--green)}.rank-row .score{font-weight:600}.rank-row.you{background:#eff5f0}.rank-row small{display:block;color:var(--muted);margin-top:5px;font-size:11px}.empty{padding:38px;background:#f1f5f0;border:1px dashed #b8cbbb;border-radius:12px;margin:20px 0 30px}.empty h3{margin-bottom:12px}.empty p{font-size:14px;color:var(--muted);max-width:610px}.filters{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:32px;padding:18px 24px;background:#eef4ee;border-radius:12px}.filters .field{margin:0;flex:1;min-width:130px}.filters .button{min-height:44px;padding:12px 20px}.filter-tabs{display:flex;gap:8px;margin-bottom:24px}.filter-tabs button{padding:13px 18px;font-size:14px;background:#fff}.filter-tabs button[aria-pressed=true]{background:var(--green);color:#fff}.prose{max-width:760px;margin:60px auto 80px}.prose h1{margin-bottom:30px}.prose h2{font-size:25px;margin:36px 0 16px}.prose p{color:var(--muted);margin:16px 0}.prose li{line-height:1.7;color:var(--muted);margin:12px 0}.prose details{padding:22px 0;border-bottom:1px solid var(--line)}.prose summary{font-size:17px;font-weight:600;cursor:pointer;line-height:1.6}.inline-chinese{font-family:"Songti SC",serif;font-size:22px}.rules-list dt{font-weight:650;margin:20px 0 8px}.rules-list dd{margin:0;color:var(--muted);line-height:1.7}.danger-zone{padding:24px;border:1px solid #dcb6bc;border-radius:12px;margin:30px 0}.global-status{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:min(640px,calc(100% - 32px));background:var(--ink);color:#fff;box-shadow:0 6px 20px #0002;padding:16px 22px;border-radius:10px;z-index:100;font-size:13px;line-height:1.6}.global-status.error{background:#852334}.global-status button{color:#fff;border-color:#fff6;padding:7px 12px;margin-left:12px}.global-status[hidden]{display:none}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(820px,calc(100% - 32px));max-height:90vh;color:var(--ink);box-shadow:0 25px 100px #0004}dialog::backdrop{background:#102e26a8;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-heading h2{font-size:28px}.icon-button{font-size:25px;width:40px;height:40px}.card-editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}canvas.card-preview{width:100%;height:auto;border-radius:10px;box-shadow:var(--shadow)}.card-editor-layout p{font-size:12px;color:var(--muted);margin:14px 0}.card-editor-layout .actions{margin-top:20px}.manual-copy{display:block;width:100%;margin:12px 0}body.busy{cursor:progress}.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:1500px){.hero{padding-top:96px;padding-bottom:90px}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero{gap:36px;padding-top:60px}.hero-art{padding:22px}.art-characters span{font-size:52px}.two-paths{gap:28px;grid-template-columns:1fr 1fr}.section-heading{grid-column:1/-1}.board-grid{grid-template-columns:repeat(5,1fr);gap:9px}.board-link{padding:13px}.board-preview{font-size:20px;letter-spacing:4px}.game-layout{gap:24px;grid-template-columns:1.45fr 1fr}.tile{min-height:80px}.tile .glyph{font-size:33px}.game-aside{padding:22px}.report-layout{gap:26px}.snapshot{padding:30px}.intro-layout{gap:30px}.practice-list{grid-template-columns:repeat(2,1fr)}.site-footer nav{width:100%}}
@media(max-width:700px){.wrap{width:calc(100% - 32px)}.site-header{height:82px;gap:12px}.brand{font-size:18px;gap:8px}.brand-mark{font-size:24px;padding:9px}.brand-small{font-size:8px;letter-spacing:2.4px;margin-top:5px}.site-header nav{gap:15px}.site-header nav a{font-size:11px}.hero{grid-template-columns:1fr;padding:38px 0;gap:36px}.hero-copy h1{font-size:44px}.eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:17px}.hero .lede{font-size:16px;margin:20px 0}.hero-actions{margin:22px 0 14px;flex-wrap:nowrap;gap:10px}.hero-actions .button{font-size:12px;padding:14px 16px;gap:15px;flex:1;white-space:nowrap}.hero .quiet{font-size:10px}.hero-art{transform:none;max-width:450px;width:100%;margin:auto;box-shadow:6px 7px 0 #f0f4ee;padding:23px}.art-characters{grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0}.art-characters span{aspect-ratio:.9;font-size:37px;border-radius:9px}.component-note{margin:20px 0}.two-paths{grid-template-columns:1fr;padding:36px 0;gap:30px}.section-heading{grid-column:auto}.path p{font-size:13px}.friend-strip{padding:25px;gap:20px;margin-bottom:45px}.friend-glyph{font-size:55px}.friend-strip h2{font-size:24px}.friend-strip p:last-child{font-size:12px}.site-footer{gap:14px;padding:27px 0}.site-footer p{flex-basis:100%;font-size:11px}.site-footer nav{gap:20px;font-size:11px}.page-intro{padding:36px 0 28px}.page-intro h1{font-size:40px}.lede{font-size:16px;margin:20px 0}.intro-layout{grid-template-columns:1fr;gap:10px;margin-bottom:40px}.paper{padding:24px;border-radius:12px}.paper h2{font-size:24px}.steps{margin:24px 0}.aside-note{padding:20px 0}.board-grid{grid-template-columns:repeat(2,1fr);gap:10px}.board-link{padding:18px;gap:17px}.board-preview{font-size:27px;letter-spacing:7px}.board-link small{font-size:10px}.tier-heading{align-items:flex-start}.tier-heading h2{font-size:25px}.tier-heading p{font-size:12px}.tier-index{font-size:10px;white-space:nowrap}.tier-section{padding:24px 0 30px}.assessment-wrap{margin:30px auto 45px}.question-prompt{font-size:21px}.question-text{padding:20px;margin:23px 0;font-size:28px}.options{grid-template-columns:1fr;gap:10px}.option{min-height:56px;font-size:14px;padding:14px}.question-bottom{gap:12px}.question-bottom p{max-width:62%;font-size:11px}.assessment-top{font-size:11px}.progress-track{margin-bottom:28px}.report-top{padding:30px 0 22px}.report-layout{grid-template-columns:1fr;gap:24px}.snapshot{min-height:385px;padding:28px}.snapshot h1{font-size:37px}.score-large{font-size:70px}.report-notes h2{font-size:25px}.observations{font-size:14px}.share-bar{flex-direction:column;align-items:flex-start;padding:24px}.share-bar .button{width:100%}.participation{grid-template-columns:1fr;gap:0;margin-bottom:25px}.section-block{margin:28px 0 40px}.game-layout{grid-template-columns:1fr;gap:26px;margin:30px 0 45px}.game-heading{margin-bottom:20px}.game-heading h1{font-size:28px}.game-heading .tag{font-size:9px;padding:7px;margin:0}.tile-grid{gap:8px}.tile{min-height:78px;border-radius:9px}.tile .glyph{font-size:35px}.tile .pinyin{font-size:10px}.game-controls .button{font-size:12px;padding:14px 12px}.game-aside{position:static}.game-aside ol{margin-bottom:0}.draft-list{gap:8px;margin:20px 0}.draft-slot{padding:11px;min-height:85px}.draft-slot span{font-size:23px;letter-spacing:4px}.locked-group{padding:15px}.locked-group span:first-child{font-size:23px;letter-spacing:5px}.result-heading{padding:30px 0 16px}.result-heading h1{font-size:36px}.result-stats{gap:24px}.result-stats strong{font-size:27px}.result-stats span{font-size:10px}.answer-groups{grid-template-columns:1fr;gap:14px}.practice-list{grid-template-columns:1fr}.room-header{grid-template-columns:1fr;gap:24px;padding:35px 0 24px}.room-header h1{font-size:39px}.room-note{padding:20px}.room-header .lede{margin-bottom:0}.room-tools .button{font-size:12px;padding:13px 15px}.rank-row{gap:12px;grid-template-columns:32px 1fr auto;font-size:13px;padding:17px 5px}.rank-row .score{font-size:12px}.empty{padding:24px}.filters{padding:18px;gap:12px}.filters .field{min-width:115px}.filters .button{width:100%}.filter-tabs button{font-size:12px;flex:1;padding:13px 10px}.prose{margin:36px auto 50px}.prose h1{font-size:38px}.prose p,.prose li,.rules-list dd{font-size:14px}.prose h2{font-size:24px}.prose summary{font-size:15px}.card-editor-layout{grid-template-columns:1fr;gap:18px}.card-preview{max-width:280px;justify-self:center}dialog{padding:22px;max-height:88vh}.dialog-heading h2{font-size:25px}}
@media(max-width:359px){.brand{font-size:16px}.brand-mark{display:none}.brand-small{letter-spacing:1.9px}.site-header nav{gap:12px}.site-header nav a{font-size:10px}.hero-copy h1{font-size:39px}.hero-actions .button{padding:14px 11px;gap:8px;font-size:11px}.hero .lede{font-size:15px}.hero-art{padding:18px}.art-characters span{font-size:32px}.component-note strong{font-size:11px}.component-note p{font-size:10px}.art-heading{font-size:8px}.tile{min-height:69px}.tile .glyph{font-size:30px}.game-meta{font-size:11px}.game-heading h1{font-size:25px}.draft-slot span{font-size:20px;letter-spacing:3px}.board-preview{font-size:24px;letter-spacing:5px}.site-footer nav{gap:16px}.result-stats{gap:19px}.result-stats strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}.quiet.small{overflow-wrap:anywhere}

.rank-row{grid-template-columns:50px minmax(0,1fr) auto}.rank-row>span{overflow-wrap:anywhere}@media(max-width:700px){.rank-row{grid-template-columns:32px minmax(0,1fr) auto}}
/* Micro-scenes keep the source text intact; decoration carries no answer clues. */
.reading-scene{margin:26px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f5f7f3}
.scene-chrome{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.reading-scene .question-text{background:transparent;border:0;border-radius:0;margin:0;padding:24px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
.scene-sign{background:#194e45;border:5px solid #d4dfd8;box-shadow:inset 0 0 0 1px #f7fbf966}
.scene-sign .scene-chrome{color:#d5e6de;border-color:#ffffff30}
.scene-sign .scene-detail{width:6px;height:6px;border-radius:50%;background:#c9d7d1;box-shadow:0 1px 2px #0008}
.scene-sign .question-text{color:#fff;text-align:center;letter-spacing:.12em;font-size:38px;padding:22px}
.scene-sign mark{background:transparent;color:inherit;text-decoration:underline;text-underline-offset:7px;text-decoration-color:#d9edb7}
.scene-chat{background:#edf1ee}.scene-chat .scene-detail{width:24px;height:5px;border-block:1px solid #8a9d91}
.scene-chat .question-text{position:relative;margin:22px 24px 22px 34px;padding:16px 20px;background:#fff;border:1px solid #cad9cc;border-radius:0 14px 14px 14px;font-size:27px}
.scene-chat .question-text:before{content:'';position:absolute;left:-9px;top:-1px;width:9px;height:13px;border-top:1px solid #cad9cc;background:linear-gradient(45deg,transparent 49%,#fff 50%)}
.scene-menu{background:#fffdf8;border-radius:0;border-top:3px solid #887b5d;border-bottom:3px double #c6bdab}
.scene-menu .scene-chrome{font-family:Georgia,serif;color:#62563e;letter-spacing:2px;border-bottom:1px dashed #c6bdab}
.scene-menu .question-text{font-family:'Songti SC',serif;padding:26px 24px}
.scene-reading{background:#fff;border-left:4px solid #8caea1}.scene-reading .question-text{font-family:'Songti SC',serif;font-size:28px}
.scene-fill{background:#fff}.scene-fill .question-text{background:repeating-linear-gradient(to bottom,transparent,transparent 46px,#edf1eb 47px,transparent 48px);background-origin:content-box;font-size:28px}
.scene-fill mark{padding:0 4px;border-bottom:2px solid var(--green);background:#e4f0e8}
.report-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 10px}.report-actions .button{flex:1;padding:14px 16px;white-space:nowrap;gap:8px}
.share-privacy{font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:16px}.participation{scroll-margin-top:22px}
@media(max-width:700px){.reading-scene{margin:20px 0}.scene-chrome{padding:10px 16px}.reading-scene .question-text{padding:18px;font-size:26px}.scene-sign .question-text{font-size:34px}.scene-chat .question-text{margin:18px 18px 18px 26px;font-size:25px}.snapshot{min-height:0;padding:22px}.snapshot .eyebrow{margin-bottom:12px}.snapshot .band{margin:16px 0}.snapshot .score-large{margin:12px 0;font-size:62px}.snapshot h1{font-size:34px}.report-actions .button{font-size:13px;padding:13px 10px}.report-top{padding:22px 0 16px}.report-top .eyebrow{margin-bottom:0}.snapshot-caption{font-size:11px}.share-privacy{font-size:11px}.report-actions{margin-top:14px}}
@media(max-width:359px){.report-actions{flex-direction:column}.report-actions .button{width:100%;min-height:44px}.snapshot h1{font-size:30px}.reading-scene .question-text{font-size:24px}.scene-sign .question-text{font-size:32px}}
.snapshot .report-actions .primary{background:#fff;color:var(--green);border-color:#fff}.snapshot .report-actions .primary:hover{background:#e4f0e8}.snapshot .report-actions .secondary{background:transparent;color:#fff;border-color:#b7d3c7}.snapshot .report-actions .secondary:hover{background:#ffffff15}.snapshot .share-privacy{color:#d0e6db}

/* v1.1: a shared reading rhythm and controls that accommodate complete translations. */
:root{--radius-control:9px;--space-control:12px;--touch:44px;--focus:#965e13}
h1,h2,h3{overflow-wrap:break-word}p,li,label,summary,.button,.text-button,.tag{overflow-wrap:break-word}
button,.button,input,select,summary{min-height:var(--touch)}.text-button,.text-link{display:inline-flex;align-items:center;min-height:var(--touch);line-height:1.5}.text-button{padding:8px 0;text-align:start}.button{white-space:normal;gap:10px;text-align:center}.button.small-button{min-height:var(--touch)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus)}
.site-header{height:auto;min-height:108px;padding-block:20px;gap:22px}.site-header .brand{flex-shrink:0}.site-header nav{margin-inline-start:auto;gap:24px;flex-wrap:wrap}.site-header nav a{min-height:44px;display:flex;align-items:center;line-height:1.4;text-align:center}.locale-control{max-width:180px;flex:0 1 auto}.locale-control select{width:100%;padding:8px 25px 8px 10px;font-size:13px;min-height:44px;background:#fff}
.hero-copy h1{font-size:clamp(2.4rem,5.1vw,4.5rem);line-height:1.12;max-width:12em;letter-spacing:-.045em}.hero-art{transform:none;box-shadow:none}.hero .quiet{font-size:.78rem}.art-heading,.art-caption,.eyebrow,.tag{letter-spacing:.025em;text-transform:none}.art-heading{font-size:.85rem}.component-note strong{font-size:.85rem}.component-note p{font-size:.8rem}.hero-actions{flex-wrap:wrap}.hero-actions .button{white-space:normal}.two-paths .path{display:block}.path p{font-size:.9rem}
.page-intro h1,.room-header h1,.result-heading h1{font-size:clamp(2.1rem,4.4vw,3.65rem);line-height:1.15;max-width:18em}.prose h1{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.15}.prose{max-width:760px}.prose p,.prose li{line-height:1.8}.prose summary{padding:8px 0}.eyebrow{font-size:.8rem}.tag{font-size:.75rem;line-height:1.4}
.assessment-top{gap:16px;align-items:flex-start}.assessment-top>*{min-width:0}.assessment-top span{text-align:end}.question-prompt{line-height:1.45}.question-bottom{align-items:flex-start}.question-bottom p{max-width:68%}.assessment-exit{margin-top:18px}.assessment-exit summary{font-size:.8rem;color:var(--muted);padding:10px 0}.form-language{margin:14px 0;line-height:1.6}.scene-chrome{font-size:.8rem;letter-spacing:0}.scene-menu .scene-chrome{font-family:inherit;letter-spacing:0}.question-text,.glyph,[lang="zh-Hans"].inline-chinese{font-family:"Songti SC","Noto Serif CJK SC","STSong",serif}
.report-top{gap:12px;flex-wrap:wrap}.snapshot h1{font-size:clamp(1.9rem,3.1vw,2.6rem);line-height:1.17}.snapshot .band{font-size:1rem}.snapshot .eyebrow{color:#d0e6db}.snapshot-caption{font-size:.8rem}.report-actions{align-items:stretch}.report-actions .button{white-space:normal;font-size:.9rem;min-width:0;line-height:1.4;min-height:50px}.share-privacy{font-size:.8rem}.report-boundary{color:var(--muted);font-size:.9rem;margin:16px 0}.result-details{border-block:1px solid var(--line);padding:8px 0;margin:16px 0}.result-details summary{display:list-item;cursor:pointer;min-height:44px;padding-block:10px;color:var(--green);font-size:.85rem}.result-details p{font-size:.85rem;color:var(--muted);margin:10px 0}.report-notes .actions{align-items:flex-start}.report-notes .quiet{margin-top:12px}.participation h3{line-height:1.4}.participation p,.check,.field{font-size:.85rem}.check{min-height:44px;align-items:flex-start}.check input{margin-top:3px}.participation .button{max-width:100%}.evidence-list summary{padding-block:8px;flex-wrap:wrap}.evidence-body{overflow-wrap:anywhere}.evidence-body p{line-height:1.75}
.game-heading{align-items:flex-start;flex-wrap:wrap}.game-heading .tag{margin-bottom:0}.game-meta{flex-wrap:wrap;gap:9px;font-size:.8rem;line-height:1.6}.game-meta>span:first-child{flex-basis:100%}.tile:disabled{opacity:.5}.tile-state{position:absolute;top:6px;right:8px;font-size:16px;font-family:inherit;font-weight:700}.tile[aria-pressed=true]{outline:2px solid var(--green);outline-offset:2px}.game-controls{align-items:stretch;flex-wrap:wrap;gap:10px}.game-controls .button{min-width:110px;font-size:.85rem}.draft-slot{min-width:0}.draft-slot div{align-items:flex-start;flex-wrap:wrap;gap:4px}.draft-slot strong{font-size:.75rem;letter-spacing:0;line-height:1.5}.draft-slot button{min-height:44px;min-width:44px;padding:8px}.draft-slot span{letter-spacing:.08em;overflow-wrap:anywhere}.locked-group{flex-wrap:wrap}.locked-group small{font-size:.8rem;line-height:1.5}.game-aside p,.game-aside ol{font-size:.85rem}.game-aside h3{line-height:1.35}.hint-actions .button{flex:1;min-width:110px}.selection-count{font-size:.8rem}.result-stats{flex-wrap:wrap;gap:24px}.result-stats>div{flex:1;min-width:110px}.result-stats strong{font-size:clamp(1.3rem,2.5vw,2rem);line-height:1.3;overflow-wrap:break-word}.result-stats span{font-size:.8rem}.answer-family h3{font-size:.85rem;line-height:1.5}.answer-family>p,.word-note p{font-size:.8rem}.word-note span{font-size:.75rem}.word-note{min-width:0;overflow-wrap:anywhere}.practice-item .button{min-height:44px;font-size:.8rem}.practice-item p{font-size:.85rem}
.room-note{font-size:.85rem;overflow-wrap:anywhere}.room-header .quiet{overflow-wrap:anywhere}.invite-url input{min-width:100%;font-size:.8rem}.room-tools .button,.room-tools .text-button{max-width:100%;font-size:.85rem}.rank-row{grid-template-columns:40px minmax(0,1fr) minmax(80px,auto);line-height:1.5}.rank-row .score{max-width:180px;font-size:.85rem;text-align:end}.rank-row small{font-size:.75rem}.filters .field{min-width:140px;max-width:100%}.filters select{width:100%}.filter-tabs{flex-wrap:wrap}.filter-tabs button{min-height:44px;flex:1;font-size:.9rem}.tier-heading{gap:14px;flex-wrap:wrap}.tier-heading .quiet{font-size:.8rem}
.global-status{font-size:.85rem}.global-status button{min-height:44px;margin-top:6px}.icon-button{min-width:44px;min-height:44px;flex-shrink:0}.dialog-heading{align-items:flex-start;gap:12px}.dialog-heading h2{font-size:1.65rem;line-height:1.25}.card-editor-layout>div{min-width:0}.card-editor-layout .actions{align-items:stretch}.card-editor-layout .button{flex:1;min-width:130px}.card-editor-layout p{font-size:.8rem}.card-preview{object-fit:contain;max-height:70vh}.card-editor-layout .field{margin-top:0;margin-bottom:16px}#card-error{color:var(--red)}
.site-footer p,.site-footer nav{font-size:.8rem}.site-footer nav{flex-wrap:wrap}.site-footer nav a{display:inline-flex;align-items:center;min-height:44px}.site-footer small{font-size:.75rem;letter-spacing:0}
@media(max-width:1000px){.site-header{gap:16px}.site-header nav{gap:14px}.locale-control{max-width:160px}.site-header nav a{font-size:.8rem}.report-layout{gap:24px}.snapshot{padding:28px}}
@media(max-width:700px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding-block:15px;min-height:118px}.site-header .brand{font-size:18px}.locale-control{max-width:150px;grid-column:2;grid-row:1}.site-header nav{grid-column:1/-1;grid-row:2;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.site-header nav a{font-size:.8rem;justify-content:center;min-height:44px;padding:7px 0}.hero{padding:32px 0;gap:28px}.hero-copy h1{font-size:clamp(2.1rem,8.5vw,2.75rem)}.hero .lede{font-size:1rem}.hero-actions{flex-wrap:wrap}.hero-actions .button{flex:1;min-width:125px;font-size:.85rem;padding:14px}.hero .quiet{font-size:.78rem}.hero-art{max-width:none;padding:22px}.art-heading{font-size:.8rem}.component-note strong{font-size:.82rem}.component-note p{font-size:.78rem}.friend-strip{align-items:flex-start;gap:18px}.friend-strip p:last-child{font-size:.85rem}.friend-glyph{font-size:50px}.page-intro{padding:32px 0 24px}.page-intro h1,.room-header h1,.result-heading h1{font-size:2.25rem}.assessment-top{font-size:.8rem}.assessment-wrap{margin-top:24px}.question-bottom{flex-wrap:wrap}.question-bottom p{font-size:.8rem;max-width:100%;flex-basis:100%}.question-prompt{font-size:1.3rem}.option{font-size:.95rem}.report-top{padding:22px 0 16px}.report-top .eyebrow{font-size:.75rem}.report-top .quiet{font-size:.75rem}.snapshot{padding:24px}.snapshot h1{font-size:2rem}.snapshot .band{font-size:.95rem;line-height:1.5}.snapshot .score-large{font-size:3.8rem}.snapshot .share-privacy{font-size:.8rem}.snapshot-caption{font-size:.75rem}.report-actions .button{font-size:.85rem;padding:13px 10px}.report-notes h2{font-size:1.6rem}.observations{font-size:.9rem}.participation p,.check,.field{font-size:.85rem}.game-heading h1{font-size:1.8rem}.game-heading .tag{font-size:.75rem}.game-controls .button{font-size:.85rem;padding:13px 10px}.tile{min-height:80px}.tile .glyph{font-size:36px}.tile-state{font-size:14px;top:4px;right:5px}.draft-slot span{font-size:25px;letter-spacing:.06em}.locked-group span:first-child{font-size:24px;letter-spacing:.12em}.draft-list{gap:10px}.result-stats{gap:20px}.result-stats strong{font-size:1.6rem}.result-stats span{font-size:.8rem}.room-tools .button{font-size:.85rem}.rank-row{grid-template-columns:28px minmax(0,1fr) minmax(64px,auto);gap:10px;font-size:.85rem}.rank-row .score{font-size:.8rem;max-width:125px}.filters .field{min-width:100%}.prose h1{font-size:2.25rem}.prose p,.prose li,.rules-list dd{font-size:.95rem}.prose summary{font-size:1rem}.card-editor-layout{grid-template-columns:1fr}.card-preview{max-width:260px;max-height:50vh}.site-footer p,.site-footer nav{font-size:.8rem}}
@media(max-width:359px){.site-header .brand{font-size:17px}.brand-small{font-size:8px}.locale-control{max-width:145px}.site-header nav{gap:10px}.site-header nav a{font-size:.78rem}.hero-actions .button{font-size:.85rem}.report-actions{flex-direction:column}.snapshot h1{font-size:1.9rem}.game-heading h1{font-size:1.6rem}.tile{min-height:72px}.tile .glyph{font-size:31px}.draft-slot span{font-size:23px}.draft-list{grid-template-columns:1fr 1fr}.game-controls{flex-direction:column}.room-tools{flex-direction:column;align-items:stretch}.rank-row{grid-template-columns:25px minmax(0,1fr) minmax(60px,auto);gap:7px}.rank-row .score{max-width:96px}.hero-copy h1{font-size:2.1rem}}
@media(max-width:700px){.locale-control{max-width:175px}}
@media(max-width:359px){.locale-control{max-width:170px}.site-header .brand{font-size:16px}}
/* Text enlargement must grow rows, rather than the page's minimum width. */
.two-paths>*,.intro-layout>*{min-width:0}.text-link{max-width:100%;overflow-wrap:anywhere}
.hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.hero>*{min-width:0}.component-note>div{min-width:0}.component-note strong{overflow-wrap:anywhere}.art-characters{grid-template-columns:repeat(2,minmax(0,1fr))}
.board-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.board-link,.board-link-top,.board-link small{min-width:0;overflow-wrap:anywhere}.board-link-top{flex-wrap:wrap;gap:8px}.board-preview{white-space:normal;overflow-wrap:anywhere;letter-spacing:.12em;line-height:1.45}.site-header nav a{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.hero{grid-template-columns:minmax(0,1fr)}.art-characters{grid-template-columns:repeat(auto-fit,minmax(min(100%,3.5em),1fr))}.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.site-header nav a{min-width:44px}.friend-strip>div{min-width:0}
