:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfaf7;--surface:#fff;--surface-2:#f1efe9;--text:#1c1c1f;--muted:#5d5d66;--faint:#8a8a93;--border:#dedbd2;--accent:#c2361a;--accent-text:#fff;--focus:#2459c7;--tick:#c9c5ba;--diff-l:34%;--word-size:5rem;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, "DejaVu Sans Mono", "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius:10px;--fade:.4s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141416;--surface:#1d1d21;--surface-2:#26262b;--text:#ebe9e4;--muted:#a7a6ae;--faint:#75747c;--border:#34343a;--accent:#ff7a5c;--accent-text:#1a0d09;--focus:#7aa5ff;--tick:#3c3c43;--diff-l:68%}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141416;--surface:#1d1d21;--surface-2:#26262b;--text:#ebe9e4;--muted:#a7a6ae;--faint:#75747c;--border:#34343a;--accent:#ff7a5c;--accent-text:#1a0d09;--focus:#7aa5ff;--tick:#3c3c43;--diff-l:68%}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}[hidden]{display:none!important}button,input,textarea{font:inherit;color:inherit}button,a,input,label,summary,.progress{touch-action:manipulation}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}kbd{font:.75em var(--mono);border:1px solid var(--border);background:var(--surface);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:.1em .4em}code{font-family:var(--mono);font-size:.9em}a{color:var(--accent)}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;white-space:nowrap;align-items:center;gap:.4em;min-height:2.5rem;padding:.45rem .95rem;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn svg{width:1.1em;height:1.1em}.btn-quiet{color:var(--muted);background:0 0;border-color:#0000}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn-primary:hover{background:var(--accent);filter:brightness(1.08)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-primary kbd{color:inherit;opacity:.75;background:0 0;border-color:currentColor}.icon-btn{width:2.75rem;height:2.75rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn svg{width:1.4rem;height:1.4rem}.screen{flex-direction:column;display:flex;position:fixed;inset:0}.topbar{padding:.75rem max(1rem, env(safe-area-inset-right)) .75rem max(1rem, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:1rem;display:flex}.logo{font:700 1.25rem var(--mono);letter-spacing:.04em;margin:0}.logo-sub{font:400 .85rem var(--sans);letter-spacing:0;color:var(--muted);margin-left:.5em}.input-main{width:100%;max-width:52rem;min-height:0;padding:0 1rem max(1rem, env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:.75rem;margin:0 auto;display:flex;overflow-y:auto}.wiki-form{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--surface);align-items:center;gap:.5rem;padding:.35rem .35rem .35rem .9rem;display:flex}.wiki-form:focus-within{border-color:var(--muted)}.wiki-form[aria-busy=true] .btn{opacity:.6;cursor:progress}.wiki-label{color:var(--muted);flex:none;font-size:.9rem;font-weight:600}.wiki-input{background:0 0;border:0;flex:1;min-width:0;min-height:2.5rem;padding:0 .25rem;font-size:max(16px,1rem)}.wiki-input:focus{outline:none}.wiki-input::placeholder{color:var(--faint)}.message a{font-weight:600}#text-input{resize:none;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--surface);width:100%;min-height:10rem;font:max(16px, 1.05rem) / 1.65 var(--sans);flex:1;padding:1.1rem 1.25rem}#text-input::placeholder{color:var(--faint);font-size:1.4rem}.input-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.input-tools,.input-go{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.input-go{gap:1rem;margin-left:auto}.stats{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.9rem}.message{min-height:1.5em;color:var(--muted);margin:0;font-size:.9rem}.message[data-kind=error]{color:var(--accent);font-weight:600}.hint{color:var(--muted);margin:0;font-size:.85rem}.drop-overlay{z-index:50;border:3px dashed var(--accent);background:color-mix(in srgb, var(--bg) 88%, transparent);pointer-events:none;border-radius:1.25rem;place-items:center;font-size:1.4rem;display:grid;position:fixed;inset:.75rem}.reader-screen .topbar{z-index:2;position:relative}.doc-title a{color:inherit;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:.2em}.doc-title{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.stage{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-y;cursor:pointer;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.word-row{--size:min(var(--word-size), 13vw, 24dvh);height:calc(var(--size) * 2.6);flex:none;margin-top:max(1rem,18dvh);position:relative}.reticle{pointer-events:none;position:absolute;inset:0 0 0 38%}.reticle:before,.reticle:after{content:"";width:2px;height:calc(var(--size) * .45);background:var(--tick);border-radius:1px;position:absolute;left:-1px}.reticle:before{top:0}.reticle:after{bottom:0}.word{--before:0;--fit:1;font-family:var(--mono);font-size:calc(var(--size) * var(--fit));white-space:pre;transform:translate(calc(var(--before) * -1ch - .5ch), -50%);font-variant-ligatures:none;font-kerning:none;font-weight:500;line-height:1;position:absolute;top:50%;left:38%}.word .pivot{color:var(--accent);font-weight:700}.show-difficulty .word{color:hsl(calc(130 - var(--b,0) * 14) 65% var(--diff-l))}.word[data-bucket="0"]{--b:0}.word[data-bucket="1"]{--b:1}.word[data-bucket="2"]{--b:2}.word[data-bucket="3"]{--b:3}.word[data-bucket="4"]{--b:4}.word[data-bucket="5"]{--b:5}.word[data-bucket="6"]{--b:6}.word[data-bucket="7"]{--b:7}.word[data-bucket="8"]{--b:8}.word[data-bucket="9"]{--b:9}.context{cursor:default;-webkit-user-select:text;user-select:text;flex:0 auto;align-self:center;width:min(44rem,100% - 2rem);min-height:0;margin-top:1.5rem;padding:.25rem 0;font-size:1.05rem;line-height:1.7;overflow-y:auto}.context p{margin:0 0 .6em}.ctx-side{color:var(--muted)}.ctx-word{cursor:pointer;border-radius:4px}.ctx-word:hover{background:var(--surface-2);color:var(--text)}.ctx-here{background:var(--accent);color:var(--accent-text);padding:0 .15em}.ctx-here:hover{background:var(--accent);color:var(--accent-text)}.finished{color:var(--muted);text-align:center;align-self:center;margin-top:1rem}.controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 2.5rem;padding:.75rem 1rem .5rem;display:flex}.transport{align-items:center;gap:.35rem;display:flex}.play-btn{background:var(--accent);width:3.5rem;height:3.5rem;color:var(--accent-text)}.play-btn:hover{background:var(--accent);color:var(--accent-text);filter:brightness(1.08)}.play-btn svg{width:1.7rem;height:1.7rem}.play-btn[data-icon=play] .when-pause,.play-btn[data-icon=pause] .when-play{display:none}.sliders{flex-wrap:wrap;gap:.75rem 2rem;display:flex}.slider-group,.field{flex-direction:column;gap:.25rem;min-width:13rem;display:flex}.slider-label,.field-label{color:var(--muted);justify-content:space-between;gap:1rem;font-size:.85rem;display:flex}.slider-label output,.field-label output{color:var(--text);font-variant-numeric:tabular-nums}.slider-line{align-items:center;gap:.25rem;min-height:2.75rem;display:flex}.step-btn{flex:none;width:2.5rem;height:2.5rem}.step-btn svg{width:1.1rem;height:1.1rem}.tune-btn{font-variant-numeric:tabular-nums;display:none}.inline-icon{vertical-align:-.2em;width:1.1em;height:1.1em}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin:0}.progress-row{padding-bottom:env(safe-area-inset-bottom);position:relative}.time-left{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;padding:0 1rem .35rem;font-size:.8rem;display:block}.progress{cursor:pointer;touch-action:none;height:14px;position:relative}.progress:before,.progress-fill{content:"";height:4px;position:absolute;bottom:0;left:0;right:0}.progress:before{background:var(--surface-2)}.progress-fill{background:var(--accent);transform-origin:0;transform:scaleX(0)}.progress:hover:before,.progress:hover .progress-fill,.progress:focus-visible:before,.progress:focus-visible .progress-fill{height:7px}.fade{transition:opacity var(--fade) ease}.controls-hidden .fade{opacity:0;pointer-events:none}.controls-hidden .stage{cursor:none}.controls-hidden .progress{opacity:.5}.backdrop{z-index:20;background:#00000040;position:fixed;inset:0}.drawer{z-index:21;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;gap:1.25rem;width:min(22rem,100%);padding:1rem 1.25rem 1.5rem;animation:.18s ease-out drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 32px #00000026}@keyframes drawer-in{0%{opacity:0;transform:translate(1.5rem)}}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer h2{margin:0;font-size:1.15rem}.drawer h3{color:var(--muted);margin:0 0 .5rem;font-size:.85rem;font-weight:500}fieldset.field{border:0;margin:0;padding:0}fieldset.field legend{color:var(--muted);margin-bottom:.35rem;padding:0;font-size:.85rem}.segmented{border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.segmented label{flex:1;position:relative}.segmented input{opacity:0;position:absolute}.segmented span{text-align:center;cursor:pointer;padding:.45rem 0;display:block}.segmented input:checked+span{background:var(--text);color:var(--bg)}.segmented input:focus-visible+span{outline:2px solid var(--focus);outline-offset:-2px}.field.check{cursor:pointer;flex-direction:row;align-items:flex-start;gap:.6rem}.field.check input{accent-color:var(--accent);margin-top:.3rem}.field.check small{color:var(--muted);font-size:.8rem;display:block}.keys dl{grid-template-columns:auto 1fr;gap:.4rem .9rem;margin:0;font-size:.85rem;display:grid}.keys dt{white-space:nowrap}.keys dd{color:var(--muted);margin:0}.credit{color:var(--muted);margin:auto 0 0;font-size:.8rem}@media (hover:none) and (pointer:coarse){.pointer-only,kbd{display:none!important}.icon-btn:hover{color:var(--muted);background:0 0}.play-btn:hover{background:var(--accent);color:var(--accent-text);filter:none}.btn:hover{background:var(--surface)}.btn-quiet:hover{background:0 0}}@media not ((hover:none) and (pointer:coarse)){.touch-only{display:none!important}}@media (max-width:640px){.logo-sub,.btn-primary kbd{display:none}.input-main{padding-left:max(.75rem, env(safe-area-inset-left));padding-right:max(.75rem, env(safe-area-inset-right));gap:.6rem}.wiki-label{font-size:.85rem}#text-input{min-height:8rem;padding:.9rem 1rem}#text-input::placeholder{font-size:1.2rem}.input-bar{flex-direction:column;align-items:stretch;gap:.6rem}.input-tools{grid-template-columns:1fr 1fr;display:grid}.input-tools .btn{justify-content:center;min-height:2.75rem}.input-go{flex-direction:column;align-items:stretch;gap:.4rem;margin-left:0}.input-go .stats{text-align:center}#start-btn{justify-content:center;min-height:3.25rem;font-size:1.1rem}.message,.hint{text-align:center}.word-row{margin-top:max(.5rem,14dvh)}.context{width:calc(100% - 1.5rem);font-size:1rem}.ctx-word{padding:.1em 0}.progress{height:24px}.progress:before,.progress-fill{height:6px}.drawer{width:100%;max-height:85dvh;padding-bottom:max(1.5rem, env(safe-area-inset-bottom));border-left:0;border-top:1px solid var(--border);border-radius:1.1rem 1.1rem 0 0;animation-name:sheet-in;top:auto;left:0;box-shadow:0 -8px 32px #0000002e}.segmented span{padding:.65rem 0}}@media (max-width:640px),(max-height:500px) and (orientation:landscape){.controls{padding:.5rem max(.5rem, env(safe-area-inset-right)) .25rem max(.5rem, env(safe-area-inset-left));gap:0;position:relative}.transport{justify-content:space-between;gap:.25rem;width:100%}.transport .icon-btn{width:3rem;height:3rem}.transport .play-btn{width:4rem;height:4rem}.tune-btn{min-height:3rem;color:var(--text);padding:0 .6rem;font-weight:600;display:inline-flex}.sliders{z-index:3;border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);background:var(--surface);flex-direction:column;gap:.75rem;padding:.9rem 1rem .75rem;display:none;position:absolute;bottom:calc(100% + .25rem);left:.5rem;right:.5rem;box-shadow:0 -6px 28px #00000024}.controls.tuning .sliders{animation:.16s ease-out sheet-in;display:flex}.slider-group{min-width:0}.slider-label{font-size:.9rem}.step-btn{border:1px solid var(--border);width:2.75rem;height:2.75rem}}@keyframes sheet-in{0%{opacity:0;transform:translateY(1.25rem)}}@media (max-height:500px) and (orientation:landscape){#text-input{flex:1 0 6rem;min-height:6rem}.word-row{--size:min(var(--word-size), 13vw, 20dvh);margin-top:max(.25rem,4dvh)}.reader-screen .topbar{padding-top:.25rem;padding-bottom:.25rem}.controls{padding-top:.25rem}.transport{max-width:34rem;margin:0 auto}.sliders{left:max(.5rem,50% - 17rem);right:max(.5rem,50% - 17rem)}}@media (prefers-reduced-motion:reduce){:root{--fade:0s}.drawer,.controls.tuning .sliders{animation:none}}:root{--good:#1d7a3a}:root[data-theme=dark]{--good:#6fd38f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--good:#6fd38f}}.topbar-spacer{width:2.75rem}.cal-body{flex:1;width:100%;max-width:40rem;min-height:0;margin:0 auto;padding:.5rem 1.25rem 2rem;overflow-y:auto}.cal-body h2{margin:.5rem 0 1rem;font-size:1.5rem;line-height:1.3}.cal-body h2:focus{outline:none}.cal-body p{margin:0 0 1rem}.cal-body>.btn,.cal-form>.btn{margin-top:.5rem}.cal-note{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 var(--radius) var(--radius) 0;padding:.75rem 1rem}.cal-passage{white-space:pre-line;font-size:1.15rem;line-height:1.75}.cal-form fieldset{border:0;margin:0 0 1.25rem;padding:0}.cal-form legend{margin-bottom:.6rem;padding:0;font-weight:600}.cal-choice,.cal-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:flex-start;gap:.7rem;margin-bottom:.5rem;padding:.7rem .9rem;display:flex}.cal-choice:hover,.cal-option:hover{border-color:var(--muted)}:is(.cal-choice:has(input:checked),.cal-option:has(input:checked)){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-choice input,.cal-option input{accent-color:var(--accent);margin-top:.3rem}.cal-choice small{color:var(--muted);display:block}.cal-option:has(input:disabled){cursor:default}:is(.cal-option.is-correct,.cal-option.is-correct:has(input:checked)){border-color:var(--good);box-shadow:inset 0 0 0 1px var(--good)}.cal-option.is-correct em{color:var(--good);white-space:nowrap;font-style:normal;font-weight:600}:is(.cal-option.is-wrong,.cal-option.is-wrong:has(input:checked)){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);text-decoration:line-through;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.cal-score{font-weight:600}.cal-rsvp{flex-direction:column;flex:1;display:flex}.cal-rsvp-status{color:var(--muted);text-align:center;margin:1rem 0 0}.progress-static{cursor:default}.cal-big{font-size:1.25rem}.cal-big strong{font:700 3rem var(--mono);color:var(--accent)}.cal-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:0 0 1.25rem;font-size:.95rem}.cal-table th,.cal-table td{border-bottom:1px solid var(--border);text-align:left;padding:.45rem .5rem}.cal-table th{color:var(--muted);font-weight:500}.cal-actions{flex-wrap:wrap;gap:.5rem;display:flex}
