:root{--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", sans-serif;--font-ja:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", "BIZ UDPGothic", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--leading:1.6;--leading-ja:1.9;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--radius:8px;--measure:42rem;--bg:#fff;--surface:#f4f6f9;--text:#1b1f24;--text-muted:#4a5360;--border:#c9d0da;--accent:#1f3a5f;--accent-text:#fff;--link:#1d4f8c;--focus:#b4530a;--warn-bg:#fff4d6;--warn-text:#5c3d00;--danger:#a12622;--danger-text:#fff;--ok:#1e6b3a}@media (prefers-color-scheme:dark){:root{--bg:#12161c;--surface:#1c222b;--text:#e8ecf1;--text-muted:#aab4c2;--border:#3a4554;--accent:#9cc1ee;--accent-text:#0d1a2b;--link:#9cc1ee;--focus:#ffb366;--warn-bg:#3a2e10;--warn-text:#ffe2a3;--danger:#ff8f88;--danger-text:#2a0b09;--ok:#7fd49c}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading);margin:0}:lang(ja){font-family:var(--font-ja);line-height:var(--leading-ja)}ruby{ruby-position:over}rt{font-size:.55em}a{color:var(--link)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3{line-height:1.3}h1{font-size:var(--text-xl);margin:0 0 var(--space-4)}h2{font-size:var(--text-lg);margin:var(--space-6) 0 var(--space-3)}.skip-link{left:var(--space-2);z-index:10;background:var(--accent);color:var(--accent-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius);position:absolute;top:-3rem}.skip-link:focus{top:var(--space-2)}.app-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface);display:flex}.app-title{color:var(--text);font-weight:700;text-decoration:none}.menu{position:relative}.menu>summary{cursor:pointer;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu ul{margin:var(--space-1) 0 0;padding:var(--space-2);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);z-index:5;min-width:12rem;list-style:none;position:absolute;right:0}.menu li a{padding:var(--space-2);display:block}.tabs{gap:var(--space-1);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.tabs a{padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--text);white-space:nowrap;text-decoration:none}.tabs a[aria-current=page]{background:var(--accent);color:var(--accent-text)}main{padding:var(--space-6) var(--space-4);max-width:var(--measure);margin:0 auto}.notice{background:var(--warn-bg);color:var(--warn-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin:var(--space-4) 0}.notice p{margin:0 0 var(--space-2)}.status{color:var(--text-muted)}.status-ok{color:var(--ok)}.status-error{color:var(--danger)}.button{font:inherit;padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;min-height:44px}.button-secondary{color:var(--text);border-color:var(--border);background:0 0}.button-danger{background:var(--danger);border-color:var(--danger);color:var(--danger-text)}.button:disabled{opacity:.6;cursor:not-allowed}.button-row{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}dl.facts{gap:var(--space-1) var(--space-4);grid-template-columns:max-content 1fr;display:grid}dl.facts dt{font-weight:600}dl.facts dd{margin:0}dl.privacy-list dt{margin-top:var(--space-3);font-weight:600}dl.privacy-list dd{margin:0}.licence-text{white-space:pre-wrap;font-family:var(--font-mono);font-size:var(--text-sm)}.tokens{border-collapse:collapse;margin:var(--space-3) 0;max-width:100%}.tokens caption{text-align:left;padding-bottom:var(--space-2)}.tokens th,.tokens td{text-align:left;padding:var(--space-1) var(--space-3) var(--space-1) 0;border-bottom:1px solid var(--border)}.library{gap:var(--space-4);padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin:var(--space-4) 0}.card h2{margin-top:0}.context{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0}.context summary{cursor:pointer;font-weight:600}.context ul{padding-left:var(--space-4)}h2.small,.context h2{font-size:var(--text-md);margin:var(--space-3) 0 var(--space-1)}.mode{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-4);margin:var(--space-3) 0}.mode label{gap:var(--space-1);margin-right:var(--space-4);align-items:center;display:inline-flex}.mode label.disabled{color:var(--text-muted)}.mode .status{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.node{margin:var(--space-4) 0}.line{margin:var(--space-3) 0;padding:var(--space-3);border-left:4px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0}.line figcaption{font-size:var(--text-sm);color:var(--text-muted)}.line blockquote{margin:var(--space-1) 0;font-size:var(--text-lg)}.reading{color:var(--text-muted);margin:var(--space-1) 0}.translation{margin:var(--space-1) 0;font-style:italic}.cue{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-3);margin:var(--space-3) 0}.cue p{margin:0 0 var(--space-2)}.task textarea,.report textarea,.report select{box-sizing:border-box;width:100%;font:inherit;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.task label,.report label{margin:var(--space-2) 0 var(--space-1);font-weight:600;display:block}.task label.option{gap:var(--space-2);margin:var(--space-2) 0;align-items:flex-start;font-weight:400;display:flex}.question{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin:var(--space-3) 0}.question legend{padding:0 var(--space-1)}.debrief{border:2px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0}.debrief-ok{border-color:var(--ok)}.debrief h3{margin-top:0}.debrief h4{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-md)}.debrief p{margin:0 0 var(--space-2)}.model{font-size:var(--text-lg);background:var(--surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.ng{color:var(--danger);font-weight:600}.note,.tip{background:var(--surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.button.small,.button-row.small .button{font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.report{margin-top:var(--space-4)}.sound-mode{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-4);margin:var(--space-3) 0}.sound-mode label{gap:var(--space-2);margin:var(--space-2) 0;align-items:flex-start;display:flex}.progress,.level{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:8px;margin:var(--space-2) 0;overflow:hidden}.progress>div,.level>div{background:var(--accent);height:100%;transition:width 80ms linear}.voice-answer{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin:var(--space-3) 0}.voice-answer.listening{border-color:var(--danger)}.mic-dot{background:var(--danger);vertical-align:middle;border-radius:50%;width:.75em;height:.75em;display:inline-block}.heard{background:var(--surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--text-lg)}.measurements{border-top:1px solid var(--border);margin-top:var(--space-3);padding-top:var(--space-2)}.measurements ul{padding-left:var(--space-4);margin:var(--space-1) 0}.pitch{margin:var(--space-2) 0;max-width:100%}.pitch svg{background:var(--surface);border-radius:var(--radius);width:100%;max-width:480px;height:auto}.pitch .axis{stroke:var(--border);stroke-width:1px}.pitch .pitch-model{fill:none;stroke:var(--text-muted);stroke-width:2px;stroke-dasharray:4 3}.pitch .pitch-you{fill:none;stroke:var(--accent);stroke-width:2.5px}.pitch figcaption{font-size:var(--text-sm);color:var(--text-muted)}.key-you{color:var(--accent);font-weight:600}.key-model{font-weight:600}.experimental{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin:var(--space-2) 0}.check-list li{margin:var(--space-3) 0}.status.small{font-size:var(--text-sm);margin:var(--space-1) 0 0}.fields{gap:var(--space-3);display:grid}.field-pair{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-4) var(--space-3);gap:var(--space-1);margin:0;display:grid}.field-pair input{font:inherit;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);max-width:100%}.ladder{padding-left:var(--space-6)}.ladder li{margin:var(--space-3) 0}.ladder p{margin:var(--space-1) 0}.saved-list{padding:0;list-style:none}.saved-list dl dt{margin-top:var(--space-2);font-weight:600}.saved-list dl dd{margin:0}.drills{border-top:1px solid var(--border);margin-top:var(--space-4);padding-top:var(--space-2)}.drills textarea{font:inherit;box-sizing:border-box;width:100%}.placement-table{border-collapse:collapse;margin:var(--space-3) 0;width:100%}.placement-table th,.placement-table td{text-align:left;padding:var(--space-2) var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--border);vertical-align:top}.table-scroll{margin:var(--space-3) 0;overflow-x:auto}.table-scroll:has(>.bundle-preview){max-height:28rem;overflow:auto}.bundle-preview{white-space:pre;margin:0;font-size:.85rem}.data-table{border-collapse:collapse;min-width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:top}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.card audio{width:100%;max-width:28rem;margin:var(--space-1) 0 var(--space-3);display:block}.move-list{padding-left:var(--space-4)}.move-list li{margin:var(--space-2) 0}.field{margin:var(--space-4) 0 var(--space-1);font-weight:600;display:block}select{font:inherit;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);max-width:100%}
