:root{--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-serif:"Iowan Old Style", "Charter", "Palatino Linotype", Palatino, Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--radius:10px;--radius-sm:7px;--ease:cubic-bezier(.2, .7, .2, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--gutter:max(16px, var(--safe-left), var(--safe-right));--tap:44px;--dock-h:76px;--strip-h:52px;font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}[data-theme=dark]{--glow:#ffc45c8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0d10;--bg-elev:#15171b;--bg-hover:#1d2026;--border:#272a31;--border-strong:#3a3e47;--fg:#f3f2ee;--fg-muted:#979ca6;--fg-spoken:#595e68;--fg-tentative:#ffd98a;--accent:#7ea6ff;--accent-fg:#0b1224;--accent-soft:#7ea6ff24;--live:#ff5d5d;--ok:#45d39a;--warn:#f5b04a;--error:#ff7b7b;--shadow:0 12px 32px #00000073, 0 2px 6px #0000004d;--topbar-bg:#101114}[data-theme=light]{--glow:#d68c004d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f6f2;--bg-elev:#fff;--bg-hover:#efeee9;--border:#e2dfd7;--border-strong:#cbc7bd;--fg:#17181b;--fg-muted:#636873;--fg-spoken:#a9adb4;--fg-tentative:#8a5a00;--accent:#2f62d8;--accent-fg:#fff;--accent-soft:#2f62d81a;--live:#d93636;--ok:#1c9a67;--warn:#b7791f;--error:#b3261e;--shadow:0 12px 32px #28241c24, 0 2px 6px #28241c14;--topbar-bg:#fbfaf7}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%;margin:0}body{background:var(--bg,#0c0d10)}.app,.presenter{background:var(--bg);color:var(--fg)}.app{min-height:100dvh}button,select,input,textarea{font:inherit;color:inherit}button,select,label,.tok,.para{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0}hr{border:0;border-top:1px solid var(--border);width:100%;margin:.25rem 0}.muted{color:var(--fg-muted)}.small{font-size:.85rem;line-height:1.45}.center{text-align:center}.error{color:var(--error)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.desktop-only,.hover-only,.hover-only-block{display:none!important}@media (hover:hover) and (pointer:fine){.hover-only{display:inline-flex!important}.hover-only-block{display:block!important}}@media (width>=1024px) and (hover:hover){.desktop-only{display:inline-flex!important}}.btn,.icon-btn,.dock-btn,.mic-btn{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;transition:background-color .15s,border-color .15s,color .15s,opacity .15s,transform .1s;display:inline-flex}:is(.btn,.icon-btn,.dock-btn,.mic-btn):disabled{opacity:.35;cursor:default}:is(.btn,.icon-btn,.dock-btn,.mic-btn):active:not(:disabled){transform:scale(.95)}.btn{min-height:var(--tap);border-radius:var(--radius-sm);background:var(--bg-hover);border-color:var(--border);padding:0 .9rem;font-size:.95rem;font-weight:500}.btn.ghost{color:var(--fg-muted);background:0 0;border-color:#0000}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.btn.large{border-radius:12px;width:100%;min-height:52px;font-size:1.05rem}.btn.full{justify-content:flex-start;width:100%}.btn.full .kbd{margin-left:auto}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--radius-sm);color:var(--fg-muted)}.icon-btn.small{width:32px;height:32px}@media (hover:hover){.btn:hover:not(:disabled){border-color:var(--border-strong)}.btn.ghost:hover:not(:disabled),.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--fg)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}}select{appearance:none;min-height:var(--tap);background:var(--bg-hover) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23979ca6' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 2.25rem 0 .8rem;font-size:1rem}.kbd{border:1px solid var(--border-strong);min-width:1.6em;font:600 .75rem/1.4 var(--font-mono);color:var(--fg-muted);background:var(--bg-elev);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:.05em .4em;display:inline-flex}.segmented{background:var(--bg-hover);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segment{flex:1;position:relative}.segment input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segment>span{min-height:38px;color:var(--fg-muted);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:.35rem;padding:0 .7rem;font-size:.9rem;transition:background-color .15s,color .15s;display:flex}.segment[data-checked]>span{background:var(--bg-elev);color:var(--fg);box-shadow:0 1px 2px #0003}.segment input:focus-visible+span{outline:2px solid var(--accent)}.face-sans{font-family:var(--font-sans)}.face-serif{font-family:var(--font-serif)}.switch-row{min-height:var(--tap);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;font-size:.95rem;display:flex}.switch-text{gap:.1rem;display:grid}.switch-text small{color:var(--fg-muted);font-size:.8rem}.switch{appearance:none;background:var(--border-strong);cursor:pointer;border-radius:999px;flex:none;width:48px;height:28px;margin:0;transition:background-color .15s;position:relative}.switch:after{content:"";width:22px;height:22px;transition:transform .18s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}.slider-row{gap:.2rem;display:grid}.slider-head{justify-content:space-between;font-size:.95rem;display:flex}.slider-head output{color:var(--fg-muted);font-variant-numeric:tabular-nums}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:32px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill,50%), var(--border-strong) var(--fill,50%));border-radius:999px;height:4px}input[type=range]::-moz-range-track{background:var(--border-strong);border-radius:999px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:50%;width:24px;height:24px;margin-top:-10px;box-shadow:0 1px 4px #0006}input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 4px #0006}.sheet-backdrop{z-index:40;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elev);width:100%;max-height:62dvh;color:var(--fg);border:1px solid var(--border);box-shadow:var(--shadow);font-family:var(--font-ui);padding-bottom:var(--safe-bottom);animation:sheet-up .28s var(--ease);border-bottom:0;border-radius:20px 20px 0 0;outline:none;flex-direction:column;display:flex}.sheet-handle{background:var(--border-strong);border-radius:999px;width:40px;height:5px;margin:8px auto 0}.sheet-head{padding:.25rem .5rem 0 var(--gutter);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-size:1.1rem}.sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}.header-actions{align-items:center;gap:.5rem;display:flex}.about-btn{padding:0 .7rem}.sheet-backdrop[data-wide] .sheet{max-height:92dvh}.sheet-body>*+*{border-top:1px solid var(--border)}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}@media (width>=768px){.sheet-backdrop{padding:0 max(16px, var(--safe-right)) calc(var(--dock-h) + var(--safe-bottom) + 28px) 16px;background:#00000026;justify-content:flex-end;align-items:flex-end}.sheet{border:1px solid var(--border);width:400px;max-height:min(72dvh,680px);animation:pop-in .16s var(--ease);border-radius:16px;padding-bottom:0}.sheet-handle{display:none}.sheet-head{padding-top:.5rem}.sheet-backdrop[data-wide]{background:#00000073;justify-content:center;align-items:center;padding:24px}.sheet-backdrop[data-wide] .sheet{width:min(920px,100%);max-height:min(88dvh,900px)}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.panel-body{padding:1rem var(--gutter) 1.25rem;grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.panel-body .segmented{width:100%}.panel-body p{margin:-.5rem 0 0}.panel-title{letter-spacing:.05em;text-transform:uppercase;color:var(--fg-muted);font-size:.78rem;font-weight:600}.stack{gap:.5rem;display:grid}.overlay{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;place-items:center;padding:1rem;animation:.15s fade-in;display:grid;position:fixed;inset:0}.dialog{background:var(--bg-elev);width:min(440px,100%);color:var(--fg);border:1px solid var(--border);box-shadow:var(--shadow);font-family:var(--font-ui);border-radius:16px;gap:.75rem;padding:1.25rem 1.25rem 1rem;display:grid}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{align-items:center;gap:.5rem;font-size:1.05rem;display:flex}.dialog p{margin:0}.shortcuts{margin:0;display:grid}.shortcut{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.9rem;display:flex}.shortcut dt{gap:.3rem;display:flex}.shortcut dd{color:var(--fg-muted);margin:0}.text-input{width:100%;min-height:var(--tap);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 .8rem;font-size:16px}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field{gap:.35rem;margin-top:.75rem;display:grid}.dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.setup{max-width:880px;min-height:100dvh;padding:calc(var(--safe-top) + 12px) var(--gutter) calc(94px + var(--safe-bottom));flex-direction:column;margin:0 auto;display:flex}.setup:has(.start-hint){padding-bottom:calc(122px + var(--safe-bottom))}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.about{padding:.25rem var(--gutter) 1.5rem}.about-lead{color:var(--fg-muted);margin:0 0 1rem}.about .card,.about .flow-step{background:var(--bg)}.about .pnode{background:var(--bg-elev)}.about-grid{gap:1rem;display:grid}.about-card h3{margin:0 0 .5rem}.about-card[data-kind=problem] h3>svg{color:var(--error)}.about-card[data-kind=solution] h3>svg{color:var(--accent)}.about-card ul{color:var(--fg-muted);gap:.45rem;margin:0;padding-left:1.1rem;line-height:1.5;display:grid}@media (width>=640px){.about-grid{grid-template-columns:1fr 1fr}}.about-heading{margin:1.75rem 0 .7rem;font-size:1rem}.flow{margin:0;padding:0;list-style:none;display:grid}.flow-step{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;column-gap:.8rem;margin-bottom:1.6rem;padding:.8rem .9rem;display:grid;position:relative}.flow-step:last-child{border-color:var(--accent);margin-bottom:0}.flow-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:50%;grid-row:span 2;place-items:center;display:grid}.flow-title{font-weight:600}.flow-text{color:var(--fg-muted);font-size:.88rem}.flow-arrow{color:var(--fg-muted);display:flex;position:absolute;bottom:-1.45rem;left:50%;transform:translate(-50%)}.arrow-wide{display:none}.screen-demo{padding:1rem 1.1rem}.demo-line{background:linear-gradient(90deg, transparent, var(--accent-soft) 10%, var(--accent-soft) 90%, transparent);border-radius:10px;margin:0 0 1rem;padding:.5rem 1.1rem;font-size:1.3rem;font-weight:500;line-height:1.5;position:relative}.demo-line:before,.demo-line:after{content:"";border:6px solid #0000;position:absolute;top:50%;transform:translateY(-50%)}.demo-line:before{border-left:8px solid var(--accent);left:0}.demo-line:after{border-right:8px solid var(--accent);right:0}.demo-spoken{color:var(--fg-spoken)}.demo-heard{color:var(--fg-tentative);text-shadow:0 0 .4em color-mix(in srgb, var(--glow) 45%, transparent)}.demo-next{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 -.08em 0 var(--accent), 0 0 .9em color-mix(in srgb, var(--accent) 22%, transparent);border-radius:.28em;padding:0 .14em}.legend{gap:.7rem;margin:0;display:grid}.legend dt{align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;display:flex}.legend dd{color:var(--fg-muted);margin:.1rem 0 0 1.4rem;font-size:.88rem}.swatch{border-radius:4px;flex:none;width:.9rem;height:.9rem}.swatch[data-kind=spoken]{background:var(--fg-spoken)}.swatch[data-kind=heard]{background:var(--fg-tentative);box-shadow:0 0 .5em var(--glow)}.swatch[data-kind=next]{background:color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:inset 0 -3px 0 var(--accent)}.swatch[data-kind=line]{background:linear-gradient(90deg, var(--accent) 0 3px, var(--accent-soft) 3px)}.off-script{margin:0;padding:.3rem 1rem;list-style:none;display:grid}.off-script li{color:var(--fg-muted);align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.off-script li+li{border-top:1px solid var(--border)}.off-script strong{color:var(--fg);font-weight:600}.off-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.privacy-map{padding:1rem 1.1rem}.privacy-flow{flex-direction:column;align-items:stretch;display:flex}.pnode{border:1px solid var(--border);background:var(--bg);text-align:center;border-radius:12px;justify-items:center;gap:2px;min-width:0;padding:.7rem;display:grid}.pnode>svg{color:var(--accent)}.pnode>span{font-weight:600}.pnode>small{color:var(--fg-muted);font-size:.8rem}.pnode[data-kind=device]{border-color:var(--accent)}.pline{color:var(--fg-muted);text-align:center;flex-direction:column;align-items:center;padding:.3rem 0;font-size:.78rem;display:flex}.pline:after{content:"⇅";font-size:1rem;line-height:1}.privacy-points{color:var(--fg-muted);gap:.45rem;margin:1rem 0 0;padding:0;font-size:.9rem;list-style:none;display:grid}.privacy-points li{align-items:flex-start;gap:.5rem;display:flex}.privacy-points svg{color:var(--accent);flex:none;margin-top:.15em}@media (width>=640px){.legend{grid-template-columns:1fr 1fr}.privacy-flow{flex-direction:row;align-items:center}.pnode{flex:1}.pline{flex:0 8.5rem;padding:0 .4rem}.pline:after{content:"⇄"}}@media (width>=768px){.flow{grid-template-columns:repeat(4,1fr);gap:1.9rem}.flow-step{text-align:center;grid-template-columns:1fr;justify-items:center;row-gap:.3rem;margin-bottom:0;padding:1rem .8rem}.flow-icon{grid-row:auto}.flow-arrow{inset:50% -1.55rem auto auto;transform:translateY(-50%)}.arrow-wide{display:block}.arrow-narrow{display:none}}.app-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}@media (width<=359px){.brand h1{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.brand{align-items:center;gap:.65rem;min-width:0;display:flex}.brand h1{letter-spacing:-.01em;font-size:1.15rem}.brand p{margin:0;display:none}.brand-mark{background:var(--accent);width:36px;height:36px;color:var(--accent-fg);border-radius:10px;flex:none;place-items:center;display:grid}.app-header .segment>span{min-height:34px;padding:0 .6rem}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:.9rem}.card-title{align-items:center;gap:.5rem;font-size:1rem;font-weight:600;display:flex}.card-actions{flex-wrap:wrap;gap:.15rem;margin-right:-.4rem;display:flex}.card-actions[hidden]{display:none}.card-actions .btn{padding:0 .6rem}.dropzone{flex-direction:column;flex:1;display:flex;position:relative}.dropzone textarea{width:100%;min-height:16rem;font-family:var(--font-serif);background:var(--bg-elev);border:1px solid var(--border);resize:none;border-radius:14px;flex:1;padding:.9rem 1rem;font-size:17px;line-height:1.6;transition:border-color .15s;display:block}.dropzone textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.dropzone textarea::placeholder{color:var(--fg-muted);font-family:var(--font-ui);font-size:16px}.dropzone[data-dragging] textarea{border-color:var(--accent);border-style:dashed}.dropzone[data-empty] textarea{min-height:22rem}.empty-state{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.empty-title{font-size:1.2rem;font-weight:650}.empty-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.3rem 0 .7rem;display:flex}.empty-actions .btn{pointer-events:auto;padding:0 .8rem}.how-steps{counter-reset:step;color:var(--fg-muted);text-align:left;gap:.35rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.how-steps li{counter-increment:step;align-items:baseline;gap:.55rem;display:flex}.how-steps li:before{content:counter(step);background:var(--accent-soft);width:1.4rem;height:1.4rem;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.dev-hint{font-family:var(--font-mono);font-size:.8em}.drop-hint{background:color-mix(in srgb, var(--bg) 80%, transparent);color:var(--accent);pointer-events:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:flex;position:absolute;inset:0}.card-foot{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.meter{background:var(--bg-hover);border-radius:999px;flex:1;height:4px;overflow:hidden}.meter-fill{background:var(--accent);border-radius:inherit;height:100%;transition:width .2s}.meter-fill[data-over]{background:var(--error)}.inline-error{align-items:center;gap:.4rem;margin:.6rem 0 0;display:flex}.doc{flex-direction:column;flex:1;gap:.6rem;display:flex}.doc-toolbar{min-height:var(--tap);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;display:flex}.doc-toolbar .card-actions{margin:0 0 0 -.6rem}@media (width<=359px){.doc-toolbar .card-actions .btn{padding:0 .42rem}}.label-long{display:none}@media (width>=420px){.label-long{display:inline}.label-short{display:none}}.voice-chip{border:1px solid var(--border);background:var(--bg-elev);min-height:36px;color:var(--fg-muted);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;margin-left:auto;padding:0 .75rem;font-size:.85rem;font-weight:600;display:inline-flex}.voice-chip[data-status=ready]{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 35%, var(--border))}.voice-chip[data-status=code]{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.chip-caret{transition:transform .2s var(--ease)}.voice-chip[aria-expanded=true] .chip-caret{transform:rotate(180deg)}.voice-details{border:1px solid var(--border);background:var(--bg-elev);border-radius:12px;gap:.6rem;padding:.8rem .95rem;font-size:.9rem;display:grid}.voice-details p{margin:0}.doc-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;padding:0 .15rem;display:flex}.stats{color:var(--fg-muted);flex-wrap:wrap;gap:.35rem 1rem;margin:0;font-size:.85rem;display:flex}.stats div{align-items:baseline;gap:.3rem;display:flex}.stats dd{color:var(--fg);font-variant-numeric:tabular-nums;margin:0;font-weight:650}.doc-private{align-items:center;gap:.3rem;display:inline-flex}.start-bar{z-index:20;padding:.75rem var(--gutter) calc(.75rem + var(--safe-bottom));border-top:1px solid var(--border);background:var(--bg-elev);border-radius:20px 20px 0 0;gap:.4rem;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #00000040}.start-bar p{margin:0}@media (width>=600px){.brand p{display:block}.start-bar .btn{justify-self:center;width:min(100%,520px)}}@media (width>=900px){.setup{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;padding:1.5rem 1.5rem 1.25rem;display:grid}.setup:has(.start-hint){padding-bottom:1.25rem}.app-header{margin-bottom:0}.start-bar{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;display:block;position:static}.start-bar .btn.large{width:auto;min-height:44px;padding:0 1.15rem;font-size:.95rem}.start-hint{display:none}.doc{grid-column:1/-1;align-self:stretch;margin-top:1.5rem}.dropzone textarea{min-height:20rem;padding:1.1rem 1.25rem}}.presenter{overscroll-behavior:none;height:100dvh;position:fixed;inset:0;overflow:hidden}.topstrip{z-index:10;height:calc(var(--strip-h) + var(--safe-top));padding:var(--safe-top) max(6px, var(--safe-right)) 0 max(6px, var(--safe-left));background:var(--topbar-bg);border-bottom:1px solid var(--border);font-family:var(--font-ui);transition:opacity .35s var(--ease), transform .35s var(--ease);grid-template-columns:auto 1fr auto;align-items:center;gap:.25rem;display:grid;position:absolute;inset:0 0 auto}.topstrip .status{justify-self:center}.script-title{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;display:none;overflow:hidden}.para-count{min-width:var(--tap);text-align:right;color:var(--fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:.5rem;font-size:.85rem}.progress{height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.progress-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .5s var(--ease)}.dock{z-index:10;height:calc(var(--dock-h) + var(--safe-bottom));padding:0 max(8px, var(--safe-right)) var(--safe-bottom) max(8px, var(--safe-left));background:var(--topbar-bg);border-top:1px solid var(--border);font-family:var(--font-ui);transition:opacity .35s var(--ease), transform .35s var(--ease);justify-content:space-evenly;align-items:center;display:flex;position:absolute;inset:auto 0 0}.dock-btn{width:64px;height:56px;color:var(--fg);border-radius:14px;flex-direction:column;gap:2px}.dock-label{color:var(--fg-muted);font-size:.7rem;font-weight:550;line-height:1}.mic-btn{background:var(--accent);width:64px;height:64px;color:var(--accent-fg);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:50%}.mic-btn[data-live]{background:var(--live);color:#fff;box-shadow:0 0 0 0 color-mix(in srgb, var(--live) 55%, transparent);animation:1.8s infinite live-ring}.mic-btn[data-connecting]{animation:.8s infinite alternate pulse}@keyframes live-ring{70%{box-shadow:0 0 0 12px #0000}to{box-shadow:0 0 #0000}}@media (hover:hover){.dock-btn:hover:not(:disabled){background:var(--bg-hover)}.mic-btn:hover:not(:disabled){filter:brightness(1.08)}}.presenter[data-idle] .topstrip:not(:has(:focus-visible)){opacity:0;transform:translateY(-100%)}.presenter[data-idle] .dock:not(:has(:focus-visible)){opacity:0;transform:translateY(100%)}.presenter[data-idle]{cursor:none}.status{min-width:0;height:30px;color:var(--fg-muted);background:var(--bg-hover);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:0 .75rem;font-size:.82rem;font-weight:600;display:inline-flex}.status-dot{opacity:.7;background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.status-hint{color:var(--fg-muted);font-weight:400;display:none}.status[data-status=tracking]{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.status[data-status=tracking] .status-dot{opacity:1;animation:2s infinite breathe}.status[data-status=uncertain]{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent)}.status[data-status=paused],.status[data-status=connecting]{color:var(--accent);background:var(--accent-soft)}.status[data-status=disconnected]{color:var(--error);background:color-mix(in srgb, var(--error) 14%, transparent)}.status[data-status=connecting] .status-dot{animation:.8s infinite alternate pulse}@keyframes pulse{0%{opacity:.25}}@keyframes breathe{50%{opacity:.35}}.viewport{position:absolute;inset:0}.scroller{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;position:absolute;inset:0;overflow-y:auto;container-type:size}.reading-zone{left:0;right:0;top:calc(var(--zone) * 100%);height:calc(var(--font-size) * var(--line-height));pointer-events:none;z-index:1;background:linear-gradient(90deg, transparent, var(--accent-soft) 12%, color-mix(in srgb, var(--accent) 6%, transparent) 50%, var(--accent-soft) 88%, transparent);opacity:.8;position:absolute;transform:translateY(-50%)}.reading-zone:before,.reading-zone:after{content:"";border:7px solid #0000;width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.reading-zone:before{border-left:9px solid var(--accent);left:0}.reading-zone:after{border-right:9px solid var(--accent);right:0}.content{max-width:var(--column);padding:calc(var(--zone) * 100cqh - var(--font-size) * var(--line-height) / 2) max(20px, var(--safe-right)) calc((1 - var(--zone)) * 100cqh) max(20px, var(--safe-left));font-size:var(--font-size);line-height:var(--line-height);font-family:var(--font-sans);letter-spacing:-.005em;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0 auto;font-weight:500}.presenter[data-face=serif] .content{font-family:var(--font-serif);letter-spacing:0;font-weight:400}.content.mirrored{transform:scaleX(-1)}.para{white-space:pre-wrap;overflow-wrap:break-word;cursor:pointer;margin:0 0 .85em}.script{isolation:isolate;position:relative}.tok{transition:color .6s var(--ease), text-shadow .6s var(--ease), background-color .2s;border-radius:.12em}.tok.spoken{color:var(--fg-spoken)}.tok.tentative{color:var(--fg-tentative);text-shadow:0 0 .4em color-mix(in srgb, var(--glow) 45%, transparent);animation:heard .7s var(--ease)}@keyframes heard{0%{color:var(--fg);text-shadow:0 0 .6em var(--glow)}}.focus-marker{z-index:-1;box-sizing:content-box;background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 .9em color-mix(in srgb, var(--accent) 22%, transparent);pointer-events:none;will-change:transform;border-radius:.28em;margin:0 -.14em;padding:0 .14em;transition:transform .45s cubic-bezier(.22,1,.36,1),width .45s cubic-bezier(.22,1,.36,1),height .45s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:0}.focus-marker:after{content:"";background:var(--accent);border-radius:999px;height:.07em;position:absolute;bottom:-.08em;left:.14em;right:.14em}.focus-marker[data-instant]{transition:none}.focus-marker[hidden]{display:none}.tok:active{background:var(--accent-soft)}@media (hover:hover){.tok:hover{background:var(--accent-soft)}}.end-mark{font:600 .8rem var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-spoken);align-items:center;gap:1rem;margin-top:1.5em;display:flex}.end-mark:before,.end-mark:after{content:"";border-top:1px solid var(--border);flex:1}.end-mark[data-finished]{color:var(--ok)}.toasts{left:50%;bottom:calc(var(--dock-h) + var(--safe-bottom) + 12px);z-index:30;width:min(560px, calc(100% - 2 * var(--gutter)));font-family:var(--font-ui);gap:.5rem;display:grid;position:absolute;transform:translate(-50%)}.toast{background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow);animation:toast-in .25s var(--ease);border-radius:12px;align-items:center;gap:.6rem;padding:.6rem .5rem .6rem .9rem;font-size:.92rem;display:flex}.toast span{flex:1}.toast.error{border-color:color-mix(in srgb, var(--error) 50%, var(--border))}.toast.error>svg{color:var(--error);flex:none}.toast.hint{border-color:var(--accent);position:relative}.toast.hint:after{content:"";background:var(--bg-elev);border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.toast.jump{text-align:left;width:100%;min-height:48px;color:var(--fg);font:inherit;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), var(--shadow);cursor:pointer;padding-right:.9rem;font-size:.92rem}.toast.jump>svg{color:var(--accent);flex:none}.toast.jump q{font-weight:600}.toast.jump .jump-tap{background:var(--accent);color:var(--accent-fg);border-radius:999px;flex:none;padding:.2rem .55rem;font-size:.8rem;font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.diagnostics{top:calc(var(--strip-h) + var(--safe-top) + 8px);left:var(--gutter);right:var(--gutter);z-index:2;background:var(--bg-elev);border:1px solid var(--border);max-height:32%;box-shadow:var(--shadow);font:.74rem/1.45 var(--font-mono);border-radius:12px;padding:.6rem .8rem;position:absolute;overflow:auto}.diagnostics dl{grid-template-columns:max-content 1fr;gap:.15rem .75rem;margin:0;display:grid}.diagnostics dt{color:var(--fg-muted)}.diagnostics dd{overflow-wrap:anywhere;margin:0}@media (height<=500px) and (orientation:landscape){:root{--dock-h:60px;--strip-h:44px}.dock-btn{width:44px;height:44px}.dock-label{display:none}.mic-btn{width:50px;height:50px}}@media (width>=768px){.toast.hint:after{display:none}.topstrip{padding-left:max(12px, var(--safe-left));padding-right:max(12px, var(--safe-right));grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.topstrip>.icon-btn{grid-area:1/1}.script-title{margin-left:calc(var(--tap) + .25rem);grid-area:1/1;display:block}.topstrip .status{grid-column:2}.para-count{grid-column:3;justify-self:end}.dock{inset:auto 50% calc(16px + var(--safe-bottom)) auto;height:var(--dock-h);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;gap:.5rem;padding:0 12px;transform:translate(50%)}.presenter[data-idle] .dock:not(:has(:focus-visible)){transform:translate(50%,calc(100% + 24px))}.toasts{bottom:calc(var(--dock-h) + var(--safe-bottom) + 32px)}.content{padding-left:2rem;padding-right:2rem}.reading-zone:before,.reading-zone:after{border-width:9px}.reading-zone:before{border-left-width:12px}.reading-zone:after{border-right-width:12px}.diagnostics{top:auto;left:auto;bottom:calc(var(--dock-h) + var(--safe-bottom) + 32px);width:min(28rem,100% - 1.5rem);max-height:40%}}@media (width>=1100px){.status-hint{display:inline}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
