.ch{flex-direction:column;gap:16px;padding:8px 0 16px;display:flex}.ch-center{text-align:center;align-items:center;padding-top:48px}.ch-big{margin:0;font-size:1.4rem;font-weight:700}.ch-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.ch-cat{color:var(--gold);flex-basis:100%;font-size:.9rem;font-weight:700}.ch-name{margin:0;font-size:2rem;line-height:1.2}.ch-namehak{color:var(--muted);font-size:1.1rem}.ch-sentence-box{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);padding:16px}.ch-sentence{letter-spacing:.04em;word-break:break-all;margin:0;font-size:1.65rem;line-height:1.75}.ch-hints{flex-direction:column;gap:8px;margin-top:12px;display:flex}.ch-hints summary{cursor:pointer;color:var(--brand);align-items:center;min-height:44px;font-weight:700;display:flex}.ch-hints p{color:var(--muted);margin:4px 0 0}.ch-pinyin{word-break:break-word;font-size:1rem}.mk-ok{color:var(--ok)}.mk-bad{color:var(--bad);background:var(--bad-bg);text-underline-offset:5px;border-radius:4px;font-weight:800;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;text-decoration-thickness:2px}.ch-actions{flex-direction:column;gap:12px;display:flex}.ch-credit{text-align:center;color:var(--muted);margin:-4px 0 0;font-size:.85rem}.ch-tip,.ch-legend{text-align:center;color:var(--muted);margin:0;font-size:.95rem}.ch-notice{color:#6a4b00;text-align:center;background:#fff3cd;border-radius:12px;margin:0;padding:10px 14px;font-weight:700}.ch-error{color:var(--bad);margin:0;font-weight:700}.ch-rec-tip{text-align:center;margin:0;font-size:1.2rem;font-weight:700}.ch-rec-status{text-align:center;font-size:1.1rem}.rec-dot{background:var(--bad);vertical-align:middle;border-radius:50%;width:14px;height:14px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}.meter{background:var(--line);border-radius:999px;height:16px;overflow:hidden}.meter-bar{background:linear-gradient(90deg, var(--gold), var(--brand));height:100%;transition:width .1s linear}.ch-result{text-align:center;border-radius:var(--radius);border:3px solid;padding:20px 16px}.ch-result.is-pass{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.ch-result.is-fail{background:var(--bad-bg);border-color:var(--bad);color:var(--bad)}.ch-score{margin:0;line-height:1}.ch-score-num{font-size:5rem;font-weight:800}.ch-score-unit{font-size:2rem;font-weight:700}.ch-score-th{color:var(--ink);margin:4px 0 0}.ch-verdict{margin:8px 0 0;font-size:1.6rem;font-weight:800}.ch-judge{text-align:center}.ch-judge-msg{color:var(--muted);margin:0}.judge-box{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);text-align:left;flex-direction:column;gap:12px;padding:16px;display:flex}.judge-box label{flex-direction:column;gap:6px;font-weight:700;display:flex}.pin{letter-spacing:.3em;border:2px solid var(--line);border-radius:12px;min-height:56px;padding:10px 14px;font-size:1.6rem}.judge-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}@font-face{font-family:HakkaRare;src:url(/fonts/hakka-rare.woff2)format("woff2");font-display:swap}:root{--bg:#fff8ee;--surface:#fff;--ink:#2a1a12;--muted:#6b5548;--line:#e8d6c2;--brand:#b3261e;--brand-ink:#fff;--gold:#c8901c;--ok:#1d6b3a;--ok-bg:#e4f4e8;--bad:#a61b1b;--bad-bg:#fde6e3;--focus:#1a5fb4;--radius:16px;--font:system-ui, -apple-system, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "HakkaRare", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;padding:0}body{font-size:18px;line-height:1.6}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:var(--brand)}.btn{cursor:pointer;touch-action:manipulation;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4em;width:100%;min-height:56px;padding:.6em 1.2em;font-size:1.15rem;font-weight:700;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-secondary{background:var(--surface);color:var(--brand);border-color:var(--brand)}.btn-link{color:var(--muted);background:0 0;min-height:44px;text-decoration:underline}.btn-huge{min-height:76px;font-size:1.45rem}.btn-pass{background:var(--ok);color:#fff}.btn-fail{background:var(--bad);color:#fff}.task-shell{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;padding:0 16px;display:flex}.task-top{color:var(--brand);letter-spacing:.04em;padding:12px 0 4px;font-size:.95rem;font-weight:700}.task-main{flex:1}.site-footer{text-align:center;color:var(--muted);padding:24px 0 20px;font-size:.85rem}.spinner{border:6px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:56px;height:56px;margin:8px auto;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.home{text-align:center;max-width:560px;margin:0 auto;padding:48px 16px}.home h1{color:var(--brand);font-size:1.8rem;line-height:1.3}
