.utterance-runway{--glyph-step:clamp(74px, 5.6vw, 78px);--han-size:clamp(48px, 4.2vw, 56px);--reading-size:clamp(17px, 1.55vw, 20px);width:max-content;max-width:100%;color:var(--ink-upcoming);font-variant-numeric:tabular-nums;text-align:left;word-break:keep-all;gap:26px;margin-inline:auto;display:grid}.practice-line{justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.practice-entry{vertical-align:top;white-space:nowrap;justify-self:start;align-items:flex-start;display:inline-flex}.practice-glyph{width:var(--glyph-step);height:calc(var(--han-size) + 46px);flex:0 0 var(--glyph-step);color:var(--ink-upcoming);place-items:start center;transition:color 90ms;display:inline-grid;position:relative}.practice-glyph.done,.practice-glyph.current{color:var(--ink)}.practice-glyph.upcoming{color:var(--ink-upcoming)}.han-character{width:var(--glyph-step);height:calc(var(--han-size) * 1.06);font-size:var(--han-size);letter-spacing:-.025em;white-space:nowrap;place-items:start center;padding:0;font-weight:540;line-height:1.06;display:grid}.syllable-reading{top:calc(var(--han-size) + 10px);width:3.6em;min-height:1.5em;color:var(--reading-upcoming);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;font-size:var(--reading-size);font-kerning:none;letter-spacing:0;white-space:nowrap;justify-content:center;gap:.08em;line-height:1.15;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.reading-token{min-width:0;color:var(--reading-upcoming);flex:0 0 .82em;place-items:start center;font-size:1em;font-weight:520;line-height:1.15;transition:color 80ms,transform 80ms;display:inline-grid;position:relative}.reading-token.done{color:var(--ink)}.reading-token.current{color:var(--ink);font-weight:620;transform:translateY(-1px)}.reading-token.current:after{background:var(--accent);content:"";height:2px;animation:90ms ease-out both current-token-in;position:absolute;bottom:-.38em;left:.06em;right:.06em}.reading-token.current.error{color:var(--danger);animation:.12s ease-in-out token-nudge}.reading-token.current.error:after{background:var(--danger)}.utterance-punctuation{width:calc(var(--glyph-step) * .58);flex:0 0 calc(var(--glyph-step) * .58);color:var(--ink-upcoming);font-size:var(--han-size);vertical-align:top;font-weight:500;line-height:1.06;display:inline-block}.practice-center{position:relative}.practice-center .progress-line,.practice-center .progress-caption{width:min(720px,100%);margin-inline:auto}.practice-center .progress-line{margin-top:34px}.practice-center .practice-feedback.ime{min-height:28px;margin-top:26px}.practice-center .ime-blocker{z-index:2;width:min(420px,100% - 32px);box-shadow:0 18px 54px var(--ime-shadow);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}:is(.practice-center:has(.practice-feedback.ime) .utterance-runway,.practice-center:has(.practice-feedback.ime) .progress-line,.practice-center:has(.practice-feedback.ime) .progress-caption){opacity:.18;transition:opacity .1s}.round-status span:after{color:var(--ink-faint);content:"·";margin-left:8px}@keyframes current-token-in{0%{opacity:.25;transform:scaleX(.45)}to{opacity:1;transform:scaleX(1)}}@keyframes token-nudge{0%,to{transform:translate(0)translateY(-1px)}45%{transform:translate(3px)translateY(-1px)}}@media (width<=720px){.utterance-runway{--glyph-step:clamp(60px, 15vw, 64px);--han-size:clamp(38px, 10.8vw, 46px);--reading-size:clamp(14.5px, 4vw, 16px);gap:20px}.practice-glyph{height:calc(var(--han-size) + 41px)}.syllable-reading{top:calc(var(--han-size) + 8px)}.practice-center .progress-line,.practice-center .progress-caption{width:min(620px,100%)}}:root{color:var(--ink);background:var(--canvas);font-synthesis:none;--canvas:#eeeeeb;--panel:#f5f5f2;--ink:#4b4a47;--ink-muted:#4b4a478f;--ink-upcoming:#4b4a474d;--ink-faint:#4b4a472e;--hairline:#4b4a471f;--accent:#a63d32;--danger:#b2382e;--shadow:-14px 0 42px #32312f14;--overlay-tint:#ffffff61;--backdrop-tint:#32312f14;--sheet-shadow:0 -18px 58px #24232124;--key-border:#4b4a4740;--key-shadow-inset:#4b4a4714;--key-shadow-highlight:#ffffff57;--key-notch:#4b4a472e;--key-current-border:#a63d32b8;--key-current-bg:#a63d3214;--key-current-shadow-1:#a63d321f;--key-current-shadow-2:#a63d320d;--reading-upcoming:#2423216b;--ime-shadow:#24232129;--switch-knob:#f5f5f2;--switch-knob-shadow:#2423212e;font-family:Inter,Noto Sans TC,PingFang TC,system-ui,sans-serif}:root[data-theme=dark]{color:var(--ink);background:var(--canvas);--canvas:#201f1d;--panel:#292825;--ink:#e9e7e2;--ink-muted:#e9e7e28f;--ink-upcoming:#e9e7e24d;--ink-faint:#e9e7e22e;--hairline:#e9e7e21f;--accent:#d97b6c;--danger:#e2584a;--shadow:-14px 0 42px #00000073;--overlay-tint:#ffffff1a;--backdrop-tint:#0000008c;--sheet-shadow:0 -18px 58px #00000080;--key-border:#e9e7e238;--key-shadow-inset:#00000059;--key-shadow-highlight:#ffffff1a;--key-notch:#e9e7e238;--key-current-border:#d97b6cbf;--key-current-bg:#d97b6c24;--key-current-shadow-1:#d97b6c2e;--key-current-shadow-2:#d97b6c14;--reading-upcoming:#e9e7e26b;--ime-shadow:#0006;--switch-knob:#f2efe9;--switch-knob-shadow:#00000073}:root[data-theme=dark] .information-dialog{--accent:#c98f84}*{box-sizing:border-box}html{scrollbar-color:var(--ink-faint) var(--canvas);min-width:320px}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{border:2px solid var(--canvas);background-color:var(--ink-faint);background-clip:padding-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--ink-upcoming)}button,input,summary{font:inherit}button{touch-action:manipulation}.keyboard-capture{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:fixed;top:0;left:-10000px}.shell{width:min(1120px,100% - 56px);min-height:100vh;margin:0 auto;padding:22px 0 34px;position:relative}.topbar{justify-content:space-between;align-items:center;min-height:40px;display:flex}.wordmark{letter-spacing:.08em;font-size:14px;font-weight:720}.topbar-actions{align-items:center;gap:14px;display:flex}.round-status{font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:baseline;gap:9px;min-width:112px;display:flex}.round-status span{color:var(--ink-muted);font-size:11px}.round-status strong{font-size:12px;font-weight:650}.information-button,.dialog-close,.text-button,.danger-button{color:inherit;cursor:pointer;background:0 0;border:0}.information-button{border:1px solid var(--hairline);width:30px;height:30px;color:var(--ink-muted);border-radius:999px;place-items:center;padding:0;font-family:Georgia,serif;font-size:14px;font-style:italic;transition:border-color .12s,color .12s,background .12s;display:grid}.information-button:hover,.information-button:focus-visible{border-color:var(--ink);background:var(--overlay-tint);color:var(--ink);outline:none}.notice-region:empty{display:none}.notice-region{z-index:3;pointer-events:none;gap:6px;width:min(100%,460px);display:grid;position:absolute;top:74px;left:0}.notice{border-left:2px solid var(--ink-faint);background:color-mix(in srgb, var(--canvas) 88%, transparent);color:var(--ink-muted);padding:8px 10px;font-size:11px;line-height:1.5}.notice.warning{border-left-color:var(--danger);color:var(--danger)}.practice-stage{outline:none;place-items:center;min-height:calc(100vh - 106px);display:grid}.practice-center{width:min(1080px,100%);padding:4vh 0 10vh;position:relative}.progress-line{background:var(--hairline);height:2px;overflow:hidden}.progress-line span{background:var(--accent);width:0;height:100%;transition:width 90ms ease-out;display:block}.progress-caption{color:var(--ink-muted);font-variant-numeric:tabular-nums;justify-content:flex-end;margin-top:9px;font-size:10px;display:flex}.keyboard-sketch[hidden]{display:none!important}.keyboard-sketch{width:min(760px,92%);color:var(--ink-muted);pointer-events:none;margin:0;padding:2px 8px 8px;position:absolute;top:calc(100% - 10vh + clamp(24px,5vh,64px));left:50%;transform:translate(-50%)}.keyboard-sketch-board{transform-origin:50% 100%;gap:clamp(3px,.55vw,6px);display:grid;transform:perspective(520px)rotateX(19deg)}.keyboard-sketch-row{grid-template-columns:repeat(60,minmax(0,1fr));gap:clamp(3px,.55vw,6px);display:grid}.keyboard-sketch-key{grid-column:span var(--key-columns);border:1px solid var(--key-border);min-width:0;height:clamp(23px,3.7vw,35px);box-shadow:inset 0 -1px 0 var(--key-shadow-inset), 0 1px 0 var(--key-shadow-highlight);border-radius:38% 44% 40% 46%/42% 38% 46% 40%;place-items:center;display:grid;position:relative}.keyboard-sketch-key:nth-child(3n){border-radius:44% 38% 46% 40%/38% 45% 39% 46%;transform:translateY(.4px)}.keyboard-sketch-key.wide{border-radius:999px}.keyboard-sketch-key[data-code=KeyF]:after,.keyboard-sketch-key[data-code=KeyJ]:after{background:var(--key-notch);content:"";border-radius:999px;width:30%;height:1px;position:absolute;bottom:28%;left:35%}.keyboard-sketch-key.current{border-color:var(--key-current-border);background:var(--key-current-bg);box-shadow:inset 0 -2px 0 var(--key-current-shadow-1), 0 0 0 1px var(--key-current-shadow-2);animation:.24s ease-out 1s both keyboard-current-in}@keyframes keyboard-current-in{0%{border-color:var(--key-border);box-shadow:inset 0 -1px 0 var(--key-shadow-inset), 0 1px 0 var(--key-shadow-highlight);background:0 0}to{border-color:var(--key-current-border);background:var(--key-current-bg);box-shadow:inset 0 -2px 0 var(--key-current-shadow-1), 0 0 0 1px var(--key-current-shadow-2)}}.practice-feedback{color:#0000;justify-content:center;align-items:baseline;gap:12px;min-height:28px;margin-top:26px;font-size:12px;line-height:1.4;display:flex}.practice-feedback.error{color:var(--danger)}.practice-feedback.muted{color:var(--ink-muted)}.ime-blocker{border:1px solid var(--hairline);width:min(420px,100% - 32px);min-height:132px;color:var(--ink);text-align:center;background:0 0;place-content:center;padding:22px;display:grid}.ime-blocker span{color:var(--danger);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:720}.ime-blocker strong{margin-top:7px;font-size:18px}.ime-blocker p{color:var(--ink-muted);margin:7px 0 0;font-size:12px}.round-enter .utterance-runway{animation:.15s ease-out both round-enter}@keyframes round-enter{0%{opacity:.22;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.information-dialog{--accent:var(--danger);border:0;border-left:1px solid var(--hairline);background:var(--panel);width:min(440px,100% - 32px);max-width:none;height:100dvh;max-height:none;color:var(--ink);box-shadow:var(--shadow);margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.information-dialog::backdrop{background:var(--backdrop-tint)}.information-dialog[open]{animation:.17s ease-out both drawer-in}@keyframes drawer-in{0%{opacity:.72;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.dialog-shell{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.dialog-header{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;padding:22px 24px 13px;display:flex}.dialog-header span,.panel-heading>span,.panel-heading>div>span{color:var(--ink-muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:700;display:block}.dialog-header h2,.panel-heading h3{letter-spacing:-.025em;margin:4px 0 0;font-size:20px;font-weight:680}.dialog-header h2{font-size:18px}.dialog-title-row{flex:1;align-items:baseline;gap:18px;min-width:0;display:flex}.dialog-round-status{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;display:flex}.dialog-round-status span{color:var(--ink-muted);letter-spacing:0;text-transform:none;font-size:10px;font-weight:500}.dialog-round-status strong{font-size:11px;font-weight:650}.dialog-commonness{white-space:nowrap;align-items:center;gap:7px;margin-left:auto;margin-right:16px;display:flex}.dialog-header .dialog-commonness>span{color:var(--ink-muted);letter-spacing:0;text-transform:none;font-size:10px;font-weight:500;display:block}.dialog-header .dialog-commonness .entry-commonness{align-items:center;gap:3px;display:flex}.commonness-dot{background:color-mix(in srgb, var(--ink) 13%, transparent);border-radius:50%;width:4px;height:4px}.commonness-dot.lit{background:var(--ink)}.dialog-close{min-height:32px;color:var(--ink-muted);padding:5px 8px;font-size:10px}.dialog-close:hover,.dialog-close:focus-visible,.text-button:hover,.text-button:focus-visible{color:var(--accent);outline:none}.information-content{overscroll-behavior:contain;scrollbar-color:var(--ink-faint) transparent;overflow:auto}.information-content::-webkit-scrollbar{width:10px}.information-content::-webkit-scrollbar-track{background:0 0}.information-content::-webkit-scrollbar-thumb{border:2px solid var(--panel);background-color:var(--ink-faint);background-clip:padding-box;border-radius:999px}.information-content::-webkit-scrollbar-thumb:hover{background-color:var(--ink-upcoming)}.panel-section{border-bottom:1px solid var(--hairline);padding:22px 24px}.panel-section:last-child{border-bottom:0}.panel-heading{margin-bottom:16px}.panel-heading-inline{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.panel-heading-actions{flex-wrap:wrap;align-items:baseline;gap:10px 16px;display:flex}.panel-heading-actions>:last-child{margin-left:auto}.panel-heading h3{color:var(--ink-muted);letter-spacing:.06em;margin-top:0;font-size:11px;font-weight:650}.round-overview{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:9px;display:grid}.round-overview span{color:var(--ink-muted);font-size:10px}.round-overview strong{font-size:13px;font-weight:620}.round-overview .round-accuracy{font-variant-numeric:tabular-nums}.round-meta{color:var(--ink-muted);justify-content:space-between;margin-top:8px;font-size:9px;display:flex}.history-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.fact-grid{border-top:1px solid var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.fact-grid>div{border-bottom:1px solid var(--hairline);min-width:0;padding:12px 10px 12px 0}.fact-grid>div:nth-child(2n){padding-left:16px}.fact-grid dt{color:var(--ink-muted);font-size:10px}.fact-grid dd{overflow-wrap:anywhere;margin:5px 0 0;font-size:12px;font-weight:620;line-height:1.45}.setting-row{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;display:flex}.display-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.display-options .setting-row{align-items:flex-start;gap:10px}.setting-row>span{gap:4px;display:grid}.setting-row strong{font-size:13px}.setting-row small{color:var(--ink-muted);font-size:11px;line-height:1.45}.setting-row input[type=checkbox]{appearance:none;border:1px solid var(--ink-faint);background:var(--ink-faint);cursor:pointer;border-radius:999px;flex:none;width:30px;height:17px;margin:0;transition:background-color .12s,border-color .12s;position:relative}.setting-row input[type=checkbox]:after{background:var(--switch-knob);width:11px;height:11px;box-shadow:0 1px 2px var(--switch-knob-shadow);content:"";border-radius:50%;transition:transform .12s;position:absolute;top:2px;left:2px}.setting-row input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}.setting-row input[type=checkbox]:checked:after{transform:translate(13px)}.setting-row input[type=checkbox]:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:2px}.tuning-controls{gap:16px;display:grid}.tuning-row{color:var(--ink-muted);grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;font-size:11px;display:grid}.tuning-row output{font-variant-numeric:tabular-nums}.tuning-row input[type=range]{--fill:0%;appearance:none;background:linear-gradient(to right, var(--accent) var(--fill), var(--ink-faint) var(--fill));width:100%;height:3px;accent-color:var(--accent);cursor:pointer;border-radius:999px;grid-column:1/-1;margin:8px 0}.tuning-row input[type=range]::-webkit-slider-runnable-track{background:0 0;border-radius:999px;height:3px}.tuning-row input[type=range]::-moz-range-track{background:0 0;border-radius:999px;height:3px}.tuning-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);width:13px;height:13px;box-shadow:0 1px 2px var(--switch-knob-shadow);cursor:pointer;border-radius:50%;margin-top:-5px}.tuning-row input[type=range]::-moz-range-thumb{background:var(--accent);width:13px;height:13px;box-shadow:0 1px 2px var(--switch-knob-shadow);cursor:pointer;border:0;border-radius:50%}.tuning-row input[type=range]:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:3px}.rarity-line{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-bottom:0;display:grid}.rarity-line .panel-notice{font-variant-numeric:tabular-nums;text-align:right;margin:0}.rarity-toggles{gap:10px;display:flex}.rarity-toggle{border:1px solid var(--ink-faint);width:26px;height:26px;color:var(--ink-muted);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:11px;line-height:1;transition:border-color .12s,color .12s,background-color .12s;display:grid}.rarity-toggle.on{border-color:var(--accent);background:var(--accent);color:var(--switch-knob)}.rarity-toggle:disabled{cursor:default}.rarity-toggle.locked{color:var(--ink-faint);border-style:dashed}.rarity-toggle:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.rarity-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:2px}.panel-note,.panel-notice{color:var(--ink-muted);margin:13px 0 0;font-size:9px;line-height:1.5}.panel-heading-inline .panel-notice{color:var(--ink-muted);letter-spacing:0;text-align:right;text-transform:none;margin:0;font-weight:500}.data-notice{margin:-6px 0 0}.data-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.about-links{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.about-links a{color:var(--ink-muted);font-size:10px;text-decoration:none}.about-links a:hover,.about-links a:focus-visible{color:var(--ink)}.about-links a:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:3px}.about-section .panel-note{margin-top:-6px}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.text-button{color:var(--ink-muted);padding:3px 0;font-size:11px;font-weight:620}.trend-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:16px;display:grid}.trend-chart{min-width:0}.trend-chart-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.trend-label{color:var(--ink-muted);letter-spacing:.06em;font-size:9px;font-weight:700}.trend-value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:12px;font-weight:650}.trend-empty{color:var(--ink-faint);padding:10px 0 2px;font-size:10px}.trend-svg{width:100%;height:40px;display:block;overflow:visible}.trend-baseline{stroke:var(--hairline);stroke-width:1px}.trend-line{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.trend-dot{fill:var(--accent)}.weak-bindings{gap:12px;display:grid}.weak-binding-row{grid-template-columns:22px 44px minmax(0,1fr) 34px;align-items:center;gap:10px;display:grid}.weak-binding-symbol{font-size:15px;font-weight:620}.weak-binding-key{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:10px}.weak-binding-bar-track{background:var(--ink-faint);border-radius:999px;height:6px;overflow:hidden}.weak-binding-bar{background:var(--danger);opacity:.7;border-radius:999px;height:100%;display:block}.weak-binding-rate{color:var(--ink-muted);text-align:right;font-variant-numeric:tabular-nums;font-size:10px}.history-details summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.history-details summary::-webkit-details-marker{display:none}.history-details summary:after{color:var(--ink-faint);content:"▾";font-size:10px;transition:transform .12s}.history-details:not([open]) summary:after{transform:rotate(-90deg)}.history-details summary:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:3px}.history-list{border-top:1px solid var(--hairline);overscroll-behavior:contain;max-height:244px;overflow-y:scroll}.history-list:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:2px}.history-list::-webkit-scrollbar{width:8px}.history-list::-webkit-scrollbar-track{background:0 0}.history-list::-webkit-scrollbar-thumb{background:var(--ink-faint);background-clip:content-box;border:2px solid #0000;border-radius:999px}.history-empty{color:var(--ink-muted);padding:20px 0 4px;font-size:11px;line-height:1.55}.history-record{border-bottom:1px solid var(--hairline)}.history-record .history-summary{grid-template-columns:34px minmax(0,1fr) 62px;align-items:center;gap:10px;min-height:58px;display:grid}.history-round{font-variant-numeric:tabular-nums;font-size:13px;font-weight:680}.history-main{gap:2px;min-width:0;display:grid}.history-main strong{font-size:13px}.history-main small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.history-latency{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:9px}.danger-button{color:var(--danger);justify-self:start;padding:5px 0;font-size:10px}.danger-button:hover,.danger-button:focus-visible{outline:none;text-decoration:underline}@media (width<=720px){.shell{width:min(100% - 28px,1120px);padding-top:14px}.practice-stage{min-height:calc(100vh - 78px)}.practice-center{padding:5vh 0 10vh}.keyboard-sketch{width:100%;padding-inline:0;top:calc(100% - 10vh + 34px)}.round-status{min-width:92px}.information-dialog{border:1px solid var(--hairline);width:calc(100% - 16px);height:min(88dvh,760px);box-shadow:var(--sheet-shadow);inset:auto 8px 8px}.information-dialog[open]{animation-name:sheet-in}@keyframes sheet-in{0%{opacity:.72;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dialog-header,.panel-section{padding-left:16px;padding-right:16px}.history-record .history-summary{grid-template-columns:30px minmax(0,1fr) 56px}}@media (width<=480px){.shell{width:min(100% - 20px,1120px)}.wordmark{font-size:12px}.round-status{min-width:68px}.round-status span{font-size:10px}.fact-grid{grid-template-columns:1fr}.display-options{grid-template-columns:1fr;gap:14px}.fact-grid>div:nth-child(2n){padding-left:0}.history-latency{display:none}.history-record .history-summary{grid-template-columns:28px minmax(0,1fr)}.trend-row{grid-template-columns:1fr;gap:16px}.weak-binding-row{grid-template-columns:20px 40px minmax(0,1fr) 30px;gap:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.diagnostic-analysis-modal{width:100vw;max-width:none;height:100dvh;max-height:none;color:inherit;background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.diagnostic-analysis-modal::backdrop{background:var(--backdrop-tint)}#app .practice-stage,#app .topbar{transform-origin:50%;transition:opacity .16s,transform .18s}body.diagnostic-analysis-open #app .practice-stage{opacity:.26;transform:translateY(-12px)scale(.986)}body.diagnostic-analysis-open #app .topbar{opacity:.38;transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){#app .practice-stage,#app .topbar{transition:none;transform:none}}.diagnostic-summary-section{gap:16px;display:grid}.diagnostic-summary-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.diagnostic-summary-heading h3{color:var(--ink-muted);letter-spacing:.06em;margin:0;font-size:11px;font-weight:650}.diagnostic-summary-heading p{color:var(--ink-muted);margin:7px 0 0;font-size:9px;line-height:1.5}.diagnostic-open-analysis{min-height:30px;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:7px;padding:5px 0;font-size:10px;font-weight:650;display:inline-flex}.diagnostic-open-analysis:after{content:"→";font-size:12px;font-weight:500;line-height:1}.diagnostic-open-analysis:hover,.diagnostic-open-analysis:focus-visible{color:var(--accent);outline:none}.diagnostic-summary-signals{border-top:1px solid var(--hairline);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.diagnostic-summary-signals>div{min-width:0;padding:13px 10px 0 0}.diagnostic-summary-signals>div+div{border-left:1px solid var(--hairline);padding-left:12px}.diagnostic-summary-signals span,.diagnostic-summary-signals small{color:var(--ink-muted);font-size:8px;line-height:1.35;display:block}.diagnostic-summary-signals strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:5px 0 4px;font-size:12px;font-weight:680;display:block;overflow:hidden}body.diagnostic-analysis-open{overflow:hidden}.diagnostic-analysis[hidden]{display:none!important}.diagnostic-analysis{z-index:80;background:linear-gradient(180deg, color-mix(in srgb, var(--canvas) 92%, transparent), var(--canvas));color:var(--ink);opacity:0;transition:opacity .15s;position:fixed;inset:0;overflow:hidden}.diagnostic-analysis.open{opacity:1}.diagnostic-analysis.closing{opacity:0}.diagnostic-analysis-shell{grid-template-rows:minmax(0,1fr);width:100%;height:100dvh;margin:0 auto;display:grid}.diagnostic-analysis-title-block{min-width:0;padding:34px 0 0}.diagnostic-detail-card header span{color:var(--ink-muted);letter-spacing:.13em;text-transform:uppercase;font-size:8px;font-weight:720}.diagnostic-analysis-title-block h2{letter-spacing:.08em;margin:0;font-size:14px;font-weight:720}.diagnostic-inspector-head{border-bottom:1px solid var(--hairline);align-items:center;gap:24px;padding:22px 24px 13px 18px;display:flex}.diagnostic-analysis-tabs{flex:1;grid-template-columns:repeat(3,minmax(60px,1fr));min-width:0;display:grid}.diagnostic-network-icon-slot{z-index:3;top:clamp(99px,17vh + 17px,149px);left:var(--diagnostic-canvas-left);position:absolute}.diagnostic-network-icon{border:1px solid var(--hairline);width:26px;height:26px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.diagnostic-network-icon:hover,.diagnostic-network-icon:focus-visible{border-color:color-mix(in srgb, var(--accent) 55%, var(--hairline));color:var(--ink);outline:none}.diagnostic-analysis-tabs button,.diagnostic-analysis-close,.diagnostic-segments button,.diagnostic-keyboard-key,.diagnostic-inspector-row{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0}.diagnostic-analysis-tabs button{min-height:32px;color:var(--ink-muted);padding:5px 13px;font-size:10px;font-weight:650;position:relative}.diagnostic-analysis-tabs button[aria-selected=true]{color:var(--ink)}.diagnostic-analysis-tabs button[aria-selected=true]:after{background:var(--accent);content:"";height:2px;position:absolute;bottom:-14px;left:18%;right:18%}.diagnostic-analysis-close{min-height:32px;color:var(--ink-muted);flex:none;padding:5px 8px;font-size:10px}.diagnostic-analysis-close:hover,.diagnostic-analysis-close:focus-visible{color:var(--accent);outline:none}.diagnostic-analysis-body{grid-template-columns:minmax(460px,1fr) 380px;min-height:0;display:grid}.diagnostic-analysis-canvas,.diagnostic-analysis-inspector{min-width:0;min-height:0}.diagnostic-detail-card section>p{color:var(--ink-muted);margin:8px 0 0;font-size:9px;line-height:1.65}.diagnostic-analysis-canvas{--diagnostic-canvas-left:max(28px, calc((100vw - 1120px) / 2));padding:0 28px 30px var(--diagnostic-canvas-left);border-right:1px solid var(--hairline);flex-direction:column;display:flex;position:relative;overflow:hidden}.diagnostic-keyboard-stage{place-items:center;min-height:0;padding:0 28px;display:grid;position:absolute;inset:0}.diagnostic-keyboard-board{transform-origin:50% 100%;gap:clamp(3px,.55vw,6px);width:min(760px,92%);display:grid;transform:perspective(520px)rotateX(19deg)}.diagnostic-keyboard-row{grid-template-columns:repeat(60,minmax(0,1fr));gap:clamp(3px,.55vw,6px);display:grid}.diagnostic-keyboard-key{--signal-strength:0;grid-column:span var(--key-columns);border:1px solid var(--key-border);background:linear-gradient(color-mix(in srgb, var(--accent) calc(var(--signal-strength) * 12%), transparent), color-mix(in srgb, var(--accent) calc(var(--signal-strength) * 5%), transparent));min-width:0;height:clamp(23px,3.7vw,35px);box-shadow:inset 0 -1px 0 var(--key-shadow-inset), 0 1px 0 var(--key-shadow-highlight);color:var(--ink-muted);border-radius:38% 44% 40% 46%/42% 38% 46% 40%;place-items:center;transition:border-color .12s,color .12s,background .12s;display:grid;position:relative}.diagnostic-keyboard-key:nth-child(3n){border-radius:44% 38% 46% 40%/38% 45% 39% 46%}.diagnostic-keyboard-key.wide{border-radius:999px}.diagnostic-keyboard-key[data-code=KeyF]:after,.diagnostic-keyboard-key[data-code=KeyJ]:after{background:var(--key-notch);content:"";border-radius:999px;width:26%;height:2px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.diagnostic-keyboard-key.unmapped{opacity:.33}button.diagnostic-keyboard-key:hover,button.diagnostic-keyboard-key:focus-visible{z-index:2;border-color:color-mix(in srgb, var(--accent) 55%, var(--key-border));color:var(--ink);outline:none}.diagnostic-keyboard-key.connected{color:var(--ink)}.diagnostic-keyboard-key.selected{z-index:3;border-color:var(--key-current-border);background:var(--key-current-bg);box-shadow:inset 0 -1px 0 var(--key-current-shadow-1), 0 0 0 2px var(--key-current-shadow-2);color:var(--accent)}.diagnostic-keyboard-key>span{place-items:center;gap:3px;display:grid}.diagnostic-keyboard-key strong{font-size:clamp(7px,.85vw,10px);font-weight:680;line-height:1}.diagnostic-keyboard-key small{font-size:clamp(5px,.45vw,6px);line-height:1}.diagnostic-analysis-inspector{background:color-mix(in srgb, var(--panel) 54%, var(--canvas));flex-direction:column;display:flex;overflow:hidden}.diagnostic-inspector-head,.diagnostic-metric-hint,.diagnostic-inspector-toolbar{flex:none}.diagnostic-metric-hint{color:var(--ink-muted);border-top:1px solid var(--hairline);margin:0;padding:10px 18px;font-size:9px;line-height:1.55}.diagnostic-inspector-toolbar{border-bottom:1px solid var(--hairline);gap:10px;padding:15px 18px;display:grid}.diagnostic-toolbar-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.diagnostic-toolbar-label{color:var(--ink-muted);white-space:nowrap;flex:none;font-size:8px}.diagnostic-inspector-toolbar label{color:var(--ink-muted);white-space:nowrap;align-items:center;gap:7px;font-size:8px;display:flex}.diagnostic-segments{border:1px solid var(--hairline);border-radius:6px;display:inline-flex;overflow:hidden}.diagnostic-segments button{border-right:1px solid var(--hairline);min-height:27px;color:var(--ink-muted);padding:4px 8px;font-size:8px}.diagnostic-segments button:last-child{border-right:0}.diagnostic-segments button[aria-pressed=true]{background:var(--ink);color:var(--panel)}.diagnostic-checkbox input{accent-color:var(--accent)}.diagnostic-inspector-list,.diagnostic-inspector-detail{overscroll-behavior:contain;min-height:0;overflow:auto}.diagnostic-inspector-list{border-bottom:1px solid var(--hairline);flex:.75 138px}.diagnostic-inspector-detail{flex:1.25 250px}.diagnostic-inspector-row{border-bottom:1px solid var(--hairline);width:100%;min-height:58px;color:var(--ink);text-align:left;grid-template-columns:minmax(64px,auto) minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 16px;display:grid}.diagnostic-inspector-row:last-child{border-bottom:0}.diagnostic-inspector-row:hover,.diagnostic-inspector-row:focus-visible,.diagnostic-inspector-row.selected{background:color-mix(in srgb, var(--accent) 7%, transparent);outline:none}.diagnostic-inspector-row.selected{box-shadow:inset 2px 0 0 var(--accent)}.diagnostic-inspector-identity{justify-items:start;gap:3px;display:grid}.diagnostic-inspector-identity strong,.diagnostic-relation-pair strong{font-size:13px;font-weight:700}.diagnostic-inspector-identity small,.diagnostic-relation-pair small,.diagnostic-inspector-main small{color:var(--ink-muted);font-size:7px;line-height:1.25}.diagnostic-inspector-main{justify-items:start;gap:4px;min-width:0;display:grid}.diagnostic-inspector-main strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:650;overflow:hidden}.diagnostic-relation-pair{grid-template-columns:auto auto 12px auto auto;align-items:baseline;gap:3px;display:grid}.diagnostic-relation-pair i{color:var(--ink-muted);text-align:center;font-size:9px;font-style:normal}.diagnostic-state{border:1px solid var(--hairline);color:var(--ink-muted);white-space:nowrap;border-radius:4px;padding:3px 5px;font-size:7px;font-weight:650}.diagnostic-state.preliminary{border-color:color-mix(in srgb, var(--accent) 36%, var(--hairline))}.diagnostic-state.sufficient{border-color:color-mix(in srgb, var(--accent) 60%, var(--hairline));color:var(--accent)}.diagnostic-inspector-empty,.diagnostic-detail-empty{color:var(--ink-muted);text-align:center;margin:0;padding:28px 18px;font-size:9px;line-height:1.55}.diagnostic-inspector-detail{padding:19px 18px 28px}.diagnostic-detail-card header{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;display:flex}.diagnostic-detail-card header h3{margin:5px 0 0;font-size:15px;font-weight:690}.diagnostic-detail-card header h3 small{color:var(--ink-muted);margin-left:4px;font-size:8px;font-weight:500}.diagnostic-detail-card header>strong{color:var(--accent);font-size:8px;font-weight:650}.diagnostic-detail-metrics{border-bottom:1px solid var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.diagnostic-detail-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.diagnostic-detail-metrics>div{min-width:0;padding:14px 10px 14px 0}.diagnostic-detail-metrics>div:nth-child(2n),.diagnostic-detail-metrics.three>div+div{border-left:1px solid var(--hairline);padding-left:12px}.diagnostic-detail-metrics dt,.diagnostic-detail-metrics small{color:var(--ink-muted);font-size:7px;line-height:1.35;display:block}.diagnostic-detail-metrics dd{font-variant-numeric:tabular-nums;margin:6px 0 4px;font-size:13px;font-weight:680}.diagnostic-detail-card section{margin-top:19px}.diagnostic-detail-card h4{color:var(--ink-muted);letter-spacing:.06em;margin:0 0 9px;font-size:8px;font-weight:680}.diagnostic-detail-lines{gap:7px;margin:0;display:grid}.diagnostic-detail-lines.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.diagnostic-detail-lines>div{justify-content:space-between;gap:12px;display:flex}.diagnostic-detail-lines dt,.diagnostic-detail-lines dd{margin:0;font-size:8px}.diagnostic-detail-lines dt{color:var(--ink-muted)}.diagnostic-detail-lines dd{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}.diagnostic-analysis-tabs button:focus-visible,.diagnostic-segments button:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:-2px}@media (width<=1120px){.diagnostic-analysis-header{gap:18px;padding-inline:22px}.diagnostic-analysis-body{grid-template-columns:minmax(440px,1fr) 360px}}@media (width<=860px){.diagnostic-analysis-body{grid-template-columns:1fr;overflow:auto}.diagnostic-analysis-canvas{border-right:0;border-bottom:1px solid var(--hairline);min-height:430px}.diagnostic-network-icon-slot{top:99px}.diagnostic-analysis-inspector{min-height:620px}}@media (width<=720px){.diagnostic-analysis-canvas{--diagnostic-canvas-left:14px}.diagnostic-analysis-title-block{padding-top:26px}.diagnostic-network-icon-slot{top:91px}}@media (width<=480px){.diagnostic-analysis-canvas{--diagnostic-canvas-left:10px}}@media (prefers-reduced-motion:reduce){.diagnostic-analysis,.information-dialog,.diagnostic-keyboard-board,.diagnostic-keyboard-key{transition:none!important;animation:none!important}}.diagnostic-progress{gap:12px;display:grid}.diagnostic-progress-series{gap:5px;min-width:0;margin:0;display:grid}.diagnostic-progress-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.diagnostic-progress-metric{color:var(--ink-muted);letter-spacing:.12em;font-size:8px}.diagnostic-progress-delta{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;font-weight:640}.diagnostic-progress-svg{width:100%;height:auto;display:block}.diagnostic-progress-line{fill:none;stroke:var(--ink-upcoming);stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.diagnostic-progress-axis-label{fill:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:7.5px}.diagnostic-progress-axis-tick{stroke:var(--ink-faint);stroke-width:1px;vector-effect:non-scaling-stroke}.diagnostic-progress-reference{stroke:var(--ink-faint);stroke-width:1px;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.diagnostic-progress-point{fill:var(--ink-upcoming);vector-effect:non-scaling-stroke}.diagnostic-progress-point.latest{fill:var(--ink)}.diagnostic-progress-trend,.diagnostic-progress-note,.diagnostic-progress-meta,.diagnostic-progress-partial{color:var(--ink-muted);margin:0;font-size:9px;line-height:1.5}.diagnostic-progress-trend{color:var(--ink)}.diagnostic-progress-meta,.diagnostic-progress-partial{font-variant-numeric:tabular-nums;font-size:8px}.diagnostic-summary-section .diagnostic-open-analysis:hover,.diagnostic-summary-section .diagnostic-open-analysis:focus-visible{color:var(--ink)}.diagnostic-analysis .diagnostic-analysis-tabs button[aria-selected=true]:after{background:var(--ink)}.diagnostic-analysis .diagnostic-network-icon{border-width:1.5px}.diagnostic-analysis .diagnostic-network-icon svg{display:block;transform:translate(-.5px,.5px)}.diagnostic-analysis .diagnostic-network-icon[aria-pressed=true]{border-color:color-mix(in srgb, var(--ink-muted) 45%, var(--hairline));color:color-mix(in srgb, var(--ink-muted) 75%, var(--ink) 25%)}.diagnostic-analysis .diagnostic-analysis-close:hover,.diagnostic-analysis .diagnostic-analysis-close:focus-visible{color:var(--ink);opacity:.72}.diagnostic-analysis .diagnostic-keyboard-key{background:linear-gradient(color-mix(in srgb, var(--ink) calc(var(--signal-strength) * 9%), transparent), color-mix(in srgb, var(--ink) calc(var(--signal-strength) * 3%), transparent))}.diagnostic-analysis button.diagnostic-keyboard-key:hover,.diagnostic-analysis button.diagnostic-keyboard-key:focus-visible{border-color:color-mix(in srgb, var(--ink) 48%, var(--key-border))}.diagnostic-analysis .diagnostic-keyboard-key.selected{border-color:color-mix(in srgb, var(--ink) 58%, var(--key-border));background:color-mix(in srgb, var(--ink) 8%, transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--ink) 10%, transparent), 0 0 0 2px color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink)}.diagnostic-analysis .diagnostic-keyboard-key small,.diagnostic-analysis .diagnostic-inspector-identity small,.diagnostic-analysis .diagnostic-relation-pair small,.diagnostic-analysis .diagnostic-detail-card header h3 small{display:none}.diagnostic-analysis .diagnostic-checkbox input{accent-color:var(--ink)}.diagnostic-analysis .diagnostic-inspector-row:hover,.diagnostic-analysis .diagnostic-inspector-row:focus-visible,.diagnostic-analysis .diagnostic-inspector-row.selected,.diagnostic-analysis .diagnostic-inspector-row.graph-hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.diagnostic-analysis .diagnostic-inspector-row.selected{box-shadow:inset 2px 0 0 var(--ink-muted)}.diagnostic-analysis .diagnostic-state.preliminary{border-color:var(--ink-muted)}.diagnostic-analysis .diagnostic-state.sufficient,.diagnostic-analysis .diagnostic-detail-state.sufficient{display:none}.diagnostic-analysis .diagnostic-detail-card header>strong,.diagnostic-analysis .diagnostic-detail-state{color:var(--ink-muted)}.diagnostic-analysis .diagnostic-analysis-tabs button:focus-visible,.diagnostic-analysis .diagnostic-segments button:focus-visible{outline-color:color-mix(in srgb, var(--ink) 36%, transparent)}.diagnostic-analysis .diagnostic-keyboard-board{position:relative}.diagnostic-analysis .diagnostic-keyboard-row{z-index:1;position:relative}.diagnostic-analysis .diagnostic-relationship-svg{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.diagnostic-analysis .diagnostic-relationship-path{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:var(--relation-width);opacity:var(--relation-opacity);cursor:pointer;pointer-events:stroke;vector-effect:non-scaling-stroke;transition:opacity .12s,stroke .12s,stroke-width .12s}.diagnostic-analysis .diagnostic-relationship-path.tone{stroke-dasharray:3 2}.diagnostic-analysis .diagnostic-relationship-path:hover,.diagnostic-analysis .diagnostic-relationship-path:focus-visible,.diagnostic-analysis .diagnostic-relationship-path.selected,.diagnostic-analysis .diagnostic-relationship-path.list-hover{stroke:var(--accent);stroke-width:calc(var(--relation-width) + .65px);opacity:1;outline:none}.diagnostic-analysis .diagnostic-relationship-path.network{stroke:color-mix(in srgb, var(--ink-muted) calc((1 - var(--relation-severity)) * 100%), var(--danger) calc(var(--relation-severity) * 100%));cursor:default;pointer-events:none}.diagnostic-analysis .diagnostic-relationship-arrow{fill:context-stroke}.diagnostic-analysis .diagnostic-network-empty{width:min(320px,80%);color:var(--ink-muted);text-align:center;pointer-events:none;margin:10px 0 0;font-size:10px;line-height:1.5}
