:root{--ink:#0e1119;--ink-raised:#161a25;--ink-sunk:#0a0d14;--rule:#232838;--parchment:#f3efe6;--ash:#7c8598;--tekhelet:#6c7bff;--saffron:#e4a94f;--alarm:#ff7a6b;--he:"Frank Ruhl Libre", "Times New Roman", serif;--ui:"Archivo", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--step:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ink);color:var(--parchment);font:400 15px / 1.5 var(--ui);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--tekhelet);outline-offset:2px;border-radius:3px}.muted{color:var(--ash)}.grow{flex:1}.app{grid-template-rows:auto 1fr;height:100%;display:grid}.bar{align-items:center;gap:calc(var(--step) * 2);border-bottom:1px solid var(--rule);background:var(--ink-sunk);padding:14px 20px;display:flex}.wordmark{font:500 15px / 1 var(--mono);letter-spacing:.14em;text-transform:lowercase;color:var(--parchment);white-space:nowrap}.wordmark b{color:var(--tekhelet);font-weight:500}.bar input[type=url]{border:1px solid var(--rule);background:var(--ink-raised);min-width:220px;color:inherit;font:400 14px var(--ui);border-radius:999px;flex:1;padding:9px 14px}.bar input[type=url]::placeholder{color:var(--ash)}.pill{border:1px solid var(--rule);background:var(--ink-raised);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 16px;transition:border-color .12s,color .12s}.pill:hover:not(:disabled){border-color:var(--tekhelet)}.pill:disabled{opacity:.4;cursor:default}.pill--go{border-color:var(--tekhelet);color:var(--tekhelet)}main{grid-template-columns:minmax(300px,38%) 1fr;min-height:0;display:grid}@media (max-width:900px){main{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.stage{gap:calc(var(--step) * 1.5);border-right:1px solid var(--rule);background:var(--ink-sunk);flex-direction:column;min-height:0;padding:20px;display:flex;overflow-y:auto}.screen{aspect-ratio:16/9;border:1px solid var(--rule);background:#000;border-radius:10px;overflow:hidden}.screen iframe,.screen>div{border:0;width:100%;height:100%}.title{font:500 14px / 1.4 var(--ui);margin:0}.meta{font:400 12px / 1.4 var(--mono);color:var(--ash);flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.tag{border:1px solid var(--rule);font:400 11px / 1.6 var(--mono);letter-spacing:.04em;color:var(--ash);border-radius:999px;padding:2px 9px}.tag--ai{color:var(--saffron);border-color:color-mix(in oklab, var(--saffron) 40%, var(--rule))}.tag--live{color:var(--tekhelet);border-color:color-mix(in oklab, var(--tekhelet) 45%, var(--rule))}.controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.controls .pill{padding:5px 12px;font-size:13px}.switch{color:var(--ash);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:inline-flex}.switch input{accent-color:var(--tekhelet)}.keys{font:400 11px / 1.7 var(--mono);color:var(--ash);border-top:1px solid var(--rule);grid-template-columns:auto 1fr;gap:3px 12px;margin-top:auto;padding-top:14px;display:grid}.keys kbd{font:inherit;border:1px solid var(--rule);color:var(--parchment);border-bottom-width:2px;border-radius:4px;padding:0 5px}.reading{background:radial-gradient(120% 60% at 50% 0%, color-mix(in oklab, var(--parchment) 4%, transparent), transparent 70%), var(--ink);grid-template-rows:auto 1fr;min-height:0;display:grid;position:relative}.reading-head{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 24px;display:flex}.subtitles{scroll-behavior:smooth;direction:rtl;width:100%;max-width:26em;min-height:0;margin:0 auto;padding:14vh 28px 46vh;list-style:none;overflow-y:auto}.subtitle-line{border-radius:10px;padding:4px 10px;transition:background .2s}.subtitle-line[aria-current=true]{background:color-mix(in srgb, var(--tekhelet,#46f) 9%, transparent)}.subtitle-line.speaker-start{margin-top:18px}.speaker{font:500 11px / 1.6 var(--mono);letter-spacing:.08em;color:var(--tekhelet);direction:rtl;margin-bottom:2px;display:block}.line-row{align-items:baseline;gap:10px;display:flex}.line-seek{all:unset;cursor:pointer;color:#0000;border-radius:6px;padding:6px;font-size:12px;line-height:1;transition:color .12s,background .12s}.line-seek:hover{background:color-mix(in srgb, currentcolor 12%, transparent)}.subtitle-line:hover .line-seek{color:var(--ash)}.line-seek:hover,.line-seek:focus-visible{color:var(--tekhelet)}.line-text{font-family:var(--he);color:var(--ash);flex:1;margin:0;font-size:25px;line-height:1.85;transition:color .16s}.subtitle-line[aria-current=true] .line-text,.subtitles[data-idle=true] .subtitle-line:first-child .line-text{color:var(--parchment)}.word{all:unset;cursor:pointer;border-radius:3px;transition:color .12s;position:relative}.word:hover{color:var(--tekhelet)}.word[data-state=spoken]{color:color-mix(in oklab, var(--ash) 80%, var(--ink))}.word[data-state=upcoming]{color:var(--parchment)}.word[data-state=speaking]{color:#fff}.word[data-state=speaking]:after{content:"";inset-inline-start:50%;background:var(--tekhelet);width:6px;height:6px;box-shadow:0 0 12px color-mix(in oklab, var(--tekhelet) 70%, transparent);border-radius:50%;margin-inline-start:-3px;position:absolute;bottom:-.16em}.word[data-selected=true]{box-shadow:inset 0 -2px 0 var(--saffron)}.approx{font:400 11px var(--mono);color:var(--ash);margin-inline-start:6px}.gloss{text-align:left;font:400 15px / 1.45 var(--ui);color:var(--saffron);direction:ltr;flex-wrap:wrap;align-items:baseline;gap:8px;margin:6px 0 0;display:flex}.gloss .icon-btn{color:color-mix(in oklab, var(--saffron) 70%, var(--ink))}.gloss--pending{color:var(--ash)}.icon-btn{all:unset;cursor:pointer;font:400 12px var(--mono);color:var(--ash);border-radius:3px;padding:0 4px}.icon-btn:hover{color:var(--tekhelet)}.partial{font-family:var(--he);color:color-mix(in oklab, var(--tekhelet) 60%, var(--ash));direction:rtl;margin:0;padding:4px 24px;font-size:22px}.lookup{background:var(--ink-raised);border:1px solid color-mix(in oklab, var(--saffron) 28%, var(--rule));border-radius:12px;width:min(370px,100% - 48px);padding:16px 18px;animation:.16s ease-out rise;position:absolute;bottom:24px;left:24px;box-shadow:0 18px 50px #0000008c}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.lookup-head{align-items:center;gap:10px;display:flex}.lookup-word{font-family:var(--he);color:var(--parchment);font-size:32px;line-height:1.3}.lookup-meaning{color:var(--saffron);margin:10px 0 14px;font-size:16px}.lookup-grid{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 14px;margin:0;display:grid}.lookup-grid dt{font:400 10px / 1.8 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}.lookup-grid dd{margin:0;font-size:14px}.lookup-grid dd[lang=he]{font-family:var(--he);letter-spacing:.06em;font-size:19px}.lookup-grid dd.muted{font-size:13px}.lookup-foot{border-top:1px solid var(--rule);align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.notice{border:1px solid color-mix(in oklab, var(--alarm) 35%, var(--rule));background:color-mix(in oklab, var(--alarm) 8%, var(--ink-raised));color:var(--alarm);border-radius:10px;margin:16px 24px;padding:12px 14px;font-size:14px}.welcome{max-width:620px;margin:14vh auto 0;padding:0 24px}.welcome h2{font-family:var(--he);color:var(--parchment);direction:rtl;margin:0 0 6px;font-size:clamp(38px,6vw,62px);line-height:1.25}.welcome p{color:var(--ash);max-width:46ch;margin:0 0 26px;font-size:16px}.welcome .lede{color:var(--parchment)}.welcome--tight{margin-top:7vh;margin-bottom:0}.welcome--tight h2{font-size:clamp(30px,4vw,44px)}.welcome--tight p{margin-bottom:18px}.shelf{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;max-width:980px;margin:0 auto;padding:0 24px 48px;display:grid}.shelf article{border:1px solid var(--rule);background:var(--ink-raised);border-radius:10px;transition:border-color .12s;overflow:hidden}.shelf article:hover{border-color:var(--tekhelet)}.shelf img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.shelf .card-body{gap:6px;padding:9px 11px 11px;display:grid}.shelf h3{font:500 13px / 1.35 var(--ui);margin:0}.shelf small{font:400 11px var(--mono);color:var(--ash)}.shelf .open{all:unset;cursor:pointer;display:block}.estimate{color:var(--ash);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.estimate strong{color:var(--parchment);font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.subtitles{scroll-behavior:auto}}.offer{border:1px solid var(--rule);background:var(--ink-raised);border-radius:12px;justify-items:start;gap:14px;max-width:34em;margin:12vh auto 0;padding:22px 24px;display:grid}.offer p{margin:0;font-size:15px}.doubt{border:1px solid var(--alarm);color:var(--alarm);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-inline-start:8px;padding:1px 6px;font-size:10px}.review-overlay{background:var(--bg,#111);z-index:30;padding:24px;position:fixed;inset:0;overflow-y:auto}.review-head{align-items:center;gap:8px;margin-bottom:24px;display:flex}.review-card{text-align:center;justify-items:center;gap:16px;max-width:560px;margin:8vh auto 0;display:grid}.review-front{margin:0;font-size:44px}.review-meaning{margin:0;font-size:20px}.review-line{opacity:.75}.review-actions{justify-content:center;gap:12px;display:flex}.hub-review{padding:0 24px 8px}.deck{gap:8px;max-width:640px;margin:0 auto;padding:0;list-style:none;display:grid}.deck li{align-items:baseline;gap:12px;display:flex}.deck-word{min-width:90px;font-size:20px}.deck-meaning{flex:1}.pill--on{outline:2px solid}.line-more{display:none}.line-actions{direction:ltr;align-items:center;gap:2px;display:inline-flex}.line-actions .line-seek{justify-content:center;align-items:center;display:inline-flex}.rate-label{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:13px;font-weight:600}.voice-spinner{border:2px solid color-mix(in srgb, currentcolor 30%, transparent);border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite voice-spin;display:inline-block}.line-seek[aria-busy=true]{color:var(--tekhelet)}@keyframes voice-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.voice-spinner{animation-duration:2.5s}}.subtitle-line[aria-current=true] .line-actions .line-seek{color:var(--ash)}.voice-error{color:var(--alarm,#e66);margin:2px 0 0;font-size:13px}.verb-forms{grid-template-columns:auto auto;justify-content:center;gap:2px 12px;margin:0;font-size:16px;display:grid}.verb-forms dt{opacity:.6;align-self:center;font-size:12px}.verb-forms dd{margin:0}.speak-panel{border-inline-start:2px solid var(--tekhelet,#46f);gap:6px;margin:4px 0 8px;padding:8px 12px;display:grid}.speak-controls{align-items:center;gap:8px;display:flex}.pill--recording{color:#e66}.speak-onair{color:#e66;margin:0;font-size:13px}.speak-score{margin:0;font-size:22px;font-weight:700}.speak-words{font-family:var(--he);margin:0;font-size:22px}.speak-word--correct{color:var(--ok,#4a4)}.speak-word--distorted{color:var(--warn,#ca4);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.speak-word--missed{color:var(--alarm,#e66);opacity:.8}.speak-praise,.speak-tip{margin:0;font-size:14px}.speak-history{gap:2px;margin:4px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.speak-history li{align-items:baseline;gap:10px;display:flex}.speak-meter{color:var(--tekhelet,#46f);align-items:center;gap:8px;display:flex}.speak-meter canvas{max-width:320px;height:28px;color:var(--tekhelet,#46f);flex:1}.speak-dot{background:#e66;border-radius:50%;flex:none;width:9px;height:9px;animation:1s ease-in-out infinite speak-pulse}.speak-clock{font-variant-numeric:tabular-nums;opacity:.75;font-size:12px}@keyframes speak-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.speak-dot{animation:none}}.speak-mark{font-variant-numeric:tabular-nums;color:#0b0b0b;vertical-align:super;border-radius:8px;justify-content:center;align-items:center;min-width:15px;height:15px;margin-inline-start:2px;padding:0 3px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.speak-mark--perfect{background:#4ad07a}.speak-mark--close{background:#e0b34a}.speak-mark--rough{background:#e07a6a}.progress-row{align-items:center;gap:10px;padding:6px 0 2px;display:flex}.progress-time{font-variant-numeric:tabular-nums;min-width:38px;font-size:12px}.progress{background:color-mix(in srgb, currentcolor 14%, transparent);cursor:pointer;border-radius:4px;flex:1;height:8px;position:relative}.progress:focus-visible{outline:2px solid var(--tekhelet,#46f);outline-offset:3px}.progress-fill{background:var(--tekhelet,#46f);border-radius:4px;position:absolute;inset-block:0;inset-inline-start:0}.progress-tick{background:color-mix(in srgb, currentcolor 35%, transparent);pointer-events:none;width:1px;height:12px;position:absolute;top:-2px}.screen-wrap{position:relative}.screen-shield{all:unset;cursor:pointer;position:absolute;inset:0}.screen-shield:focus-visible{outline:2px solid var(--tekhelet,#46f);outline-offset:-2px}.signin-form{gap:12px;max-width:320px;margin:16px 0;display:grid}.signin-form label{gap:4px;font-size:13px;display:grid}.signin-form input{font:inherit;border:1px solid color-mix(in srgb, currentcolor 25%, transparent);color:inherit;background:0 0;border-radius:8px;padding:8px 10px}.linkish{all:unset;cursor:pointer;opacity:.8;font-size:13px;text-decoration:underline}.people-table{border-collapse:collapse;width:100%;max-width:900px;margin:16px auto 0;font-size:13px}.people-table th{text-align:left;opacity:.6;border-bottom:1px solid color-mix(in srgb, currentcolor 20%, transparent);padding:4px 8px;font-weight:600}.people-table td{vertical-align:top;border-bottom:1px solid color-mix(in srgb, currentcolor 8%, transparent);font-variant-numeric:tabular-nums;padding:8px}@media (hover:none){.line-seek{color:color-mix(in srgb, var(--ash) 45%, transparent)}}@media (pointer:coarse){.line-seek{padding:10px}.pill,.icon-btn{min-width:44px;min-height:44px}.word{padding:6px 2px}.progress{height:14px}}@media (max-width:900px){.app{height:100dvh}.keys{display:none}.stage{gap:8px;padding:12px}.subtitles{padding:24px 16px 30vh}.lookup{overscroll-behavior:contain;width:auto;max-height:60dvh;padding-bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;border-radius:14px 14px 0 0;position:fixed;inset:auto 0 0;overflow-y:auto}.bar{flex-wrap:wrap;row-gap:8px}.bar input{flex:100%;order:5}.line-row{flex-wrap:wrap}.line-text{flex:100%}.line-actions{display:none}.subtitle-line[aria-current=true] .line-actions,.line-row[data-pinned] .line-actions{order:2;justify-content:center;gap:10px;width:100%;display:inline-flex}.subtitle-line[aria-current=true] .line-actions .line-seek,.line-row[data-pinned] .line-actions .line-seek{color:var(--ash)}.line-row[data-pinned]{border-inline-start:2px solid color-mix(in srgb, var(--tekhelet,#46f) 50%, transparent)}.line-more{all:unset;min-width:40px;min-height:40px;color:color-mix(in srgb, var(--ash,#889) 45%, transparent);cursor:pointer;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.line-row[data-pinned] .line-more,.line-more:active{color:var(--tekhelet,#46f)}.subtitle-line:active{background:color-mix(in srgb, var(--ash,#889) 10%, transparent)}.speak-panel{border-inline-start:none;border-top:2px solid var(--tekhelet,#46f);background:var(--ink-sunk,#16161c);overscroll-behavior:contain;max-height:70dvh;padding:14px 16px calc(14px + env(safe-area-inset-bottom));z-index:25;margin:0;position:fixed;inset:auto 0 0;overflow-y:auto}.meta{display:none}.controls{gap:6px;margin:4px 0}.progress-row{padding:2px 0}.controls--setup{display:none}.subtitle-line{margin-bottom:4px}.line-text{line-height:1.6}.gloss{margin-top:0}.speak-meter canvas{max-width:100%}}.shelf article{position:relative}.shelf-remove{top:6px;opacity:.5;font-size:16px;line-height:1;position:absolute;inset-inline-end:6px}.shelf-remove:hover{opacity:1}.confirm-scrim{z-index:40;background:#0000008c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-box{background:var(--ink-sunk,#16161c);border:1px solid var(--rule,#333);border-radius:12px;gap:10px;max-width:380px;padding:20px;display:grid}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.pill--danger{color:var(--alarm,#e66);border-color:currentColor}
