:root{--bg:#fbf6ef;--surface:#fff;--text:#2a2420;--muted:#74675d;--border:#eadfd2;--accent:#c8361f;--accent-soft:#fde6df;--attested:#1f7a4d;--attested-soft:#dff3e8;--extrapolated:#9a6500;--extrapolated-soft:#fbefd6;--radius:14px;--font:"PingFang HK", "Noto Sans HK", "Microsoft JhengHei", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1a1614;--surface:#25201d;--text:#f3ece6;--muted:#b3a69b;--border:#3a322d;--accent:#ff7a5c;--accent-soft:#4a2820;--attested:#7ad3a3;--attested-soft:#1d3a2b;--extrapolated:#f0c26b;--extrapolated-soft:#3d3020}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;line-height:1.6}a{color:var(--accent)}.page{max-width:640px;margin:0 auto;padding:24px 16px 48px}.hero h1{color:var(--accent);letter-spacing:.04em;margin:0;font-size:clamp(2rem,8vw,2.75rem)}.subtitle{color:var(--muted);margin:0 0 8px;font-weight:600}.intro{margin:0 0 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px}.label{color:var(--muted);margin:0 0 8px;font-size:.85rem;font-weight:700;display:block}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card-head .label{margin:0}.play{background:var(--accent-soft);color:var(--text);white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:700}.play[hidden]{display:none}.input-row{z-index:1;background:var(--surface);gap:8px;padding:8px 0;display:flex;position:sticky;top:0}.input-row input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;flex:1;padding:10px 12px;font-size:1.25rem}button,.chip{font:inherit;cursor:pointer;border:none;border-radius:10px}.input-row button{background:var(--accent);color:#fff;padding:0 18px;font-weight:700}.warning{background:var(--extrapolated-soft);color:var(--text);border-radius:10px;margin:12px 0 0;padding:8px 12px;font-size:.9rem}.warning[hidden]{display:none}.menu-group{border:none;min-width:0;margin:16px 0 0;padding:0}.menu-group legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:.8rem;font-weight:700}.menu-group:disabled{opacity:.45}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:4px 12px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.chip:disabled{cursor:not-allowed}ruby{ruby-align:center;margin-inline:.12em}ruby rt{color:var(--muted);letter-spacing:0;font-size:.45em;font-weight:500}.reading{margin:0;font-size:1.5rem;line-height:2.4}.rendering{margin:0;font-size:clamp(2rem,10vw,3rem);font-weight:800;line-height:2.2}.changed{color:var(--accent);border-bottom:3px solid var(--accent-soft);text-decoration:none}.changed.no-homophone{border-bottom-style:dotted}.share{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.share button{background:var(--accent);color:#fff;padding:8px 14px;font-weight:700}.share button.secondary{background:var(--accent-soft);color:var(--text)}.group h3{margin:16px 0 8px;font-size:1rem}.group:first-child h3{margin-top:0}.group ol{margin:0;padding:0;list-style:none}.item{border-top:1px solid var(--border);padding:12px 0;scroll-margin-top:16px}.item:target{background:var(--accent-soft);border-radius:8px;padding-inline:8px}.item p{margin:4px 0 0}.item-head{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.pair strong{font-size:1.2rem}.jp{color:var(--muted);font-size:.85rem}.rule{font-family:ui-monospace,monospace;font-size:.85rem}.badge{border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.badge-attested{color:var(--attested);background:var(--attested-soft)}.badge-extrapolated{color:var(--extrapolated);background:var(--extrapolated-soft)}.sources{color:var(--muted);font-size:.8rem}.empty{color:var(--muted);margin:0}.ad-slot{min-height:250px;margin-bottom:16px}.ad-slot[hidden]{display:none}.consent{background:var(--surface);border-top:1px solid var(--border);padding:16px;font-size:.9rem;position:fixed;inset:auto 0 0;box-shadow:0 -4px 16px #00000014}.consent p{max-width:640px;margin:0 auto 12px}.consent-actions{flex-wrap:wrap;gap:8px;max-width:640px;margin:0 auto;display:flex}.consent button,.privacy button{background:var(--accent);color:#fff;padding:8px 14px;font-weight:700}.consent button.secondary{background:var(--accent-soft);color:var(--text)}.footer{color:var(--muted);font-size:.85rem}.source-list{overflow-wrap:anywhere;padding-left:20px}
