:root{color-scheme:dark;--bg:#111313;--panel:#1b1e1d;--ink:#f2f3ec;--muted:#a0a69e;--lime:#d9fc76;--line:#353a35;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button,select,input[type=range],.switch{cursor:pointer}button{color:inherit;background:#272b27;border:1px solid var(--line);border-radius:9px;padding:12px 18px;min-height:44px}button:hover{filter:brightness(1.15)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--lime);outline-offset:4px}header{height:94px;display:flex;align-items:center;gap:36px;margin:0 5%;border-bottom:1px solid var(--line)}.brand{font-size:33px;letter-spacing:-1.8px;font-weight:800;color:var(--ink);text-decoration:none;display:flex;align-items:center}.mark{display:inline-grid;place-items:center;background:var(--lime);color:var(--bg);font-size:24px;width:38px;height:38px;border-radius:10px;margin-right:12px;letter-spacing:0}.brand-dot{color:var(--lime)}.tag,.eyebrow{font-size:12px;letter-spacing:2px;font-weight:650}.tag{color:var(--muted)}header button{margin-left:auto}.subtle{background:transparent}main{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding:40px 5% 30px;gap:6%}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:12px;min-height:24px}.eyebrow{color:var(--lime)}h1{font-weight:500;font-size:clamp(32px,3.3vw,49px);line-height:1.12;letter-spacing:-1.8px;margin:24px 0 28px}.script-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:14px}.small{font-size:14px;padding:8px 12px;background:transparent}select{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:11px;min-height:44px}#scripts{width:100%;margin-bottom:18px}#title{display:block;width:100%;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--panel);color:var(--ink);font-weight:650;font-size:18px;padding:20px}textarea{display:block;resize:vertical;width:100%;min-height:280px;height:31vh;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:0 20px 20px;background:var(--panel);color:#c6ccc3;line-height:1.75;font-size:17px}.editor-foot{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;margin-top:12px}.preview-window{position:relative;overflow:hidden;background:#060807;border:1px solid var(--line);border-radius:16px;height:270px;margin:24px 0 26px;padding:66px 30px 25px}.preview-label{position:absolute;top:20px;left:24px;font-size:11px;letter-spacing:2px;color:var(--muted)}#previewText{white-space:pre-wrap;font-weight:650;line-height:1.5;margin:auto;overflow-wrap:anywhere;transform-origin:center;max-height:160px;overflow:hidden}.guide{position:absolute;top:80px;left:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:12px solid var(--lime)}.preview-bottom{position:absolute;bottom:0;left:0;right:0;padding:36px 24px 16px;background:linear-gradient(transparent,#060807 65%);text-align:center;font-size:12px;color:var(--muted)}.settings{display:grid;gap:18px}.range-field label{font-size:14px;display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}output{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}input[type=range]{accent-color:var(--lime);width:100%;height:18px;margin:0}.options{display:flex;gap:15px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:2px;font-size:14px}.switch{display:flex;gap:10px;align-items:center;position:relative;min-height:44px}.switch input{position:absolute;opacity:0;width:36px;height:30px}.switch span{display:block;width:36px;height:22px;border-radius:20px;background:#555c52;flex-shrink:0}.switch span:before{content:'';display:block;width:16px;height:16px;border-radius:50%;background:white;margin:3px;transition:transform .15s}.switch input:checked+span{background:var(--lime)}.switch input:checked+span:before{transform:translateX(14px);background:#111}.switch input:focus-visible+span{outline:2px solid var(--lime);outline-offset:3px}.count-label{display:flex;align-items:center;gap:10px}.count-label select{font-size:14px}.primary{background:var(--lime);color:#18200e;border:0;font-weight:700}#start{width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;font-size:18px;margin-top:22px}#start:disabled{opacity:.4;cursor:not-allowed}.hint{text-align:center;color:var(--muted);font-size:12px}footer{display:flex;justify-content:space-between;margin:10px 5% 0;padding:20px 0;border-top:1px solid var(--line);gap:18px;color:var(--muted);font-size:11px;letter-spacing:1px}#reader{position:fixed;inset:0;background:#030403;z-index:10;height:100dvh}#reader[hidden]{display:none}#readerTop{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 18px 12px;background:#030403ef;gap:10px;font-size:14px}#viewport{position:absolute;inset:80px 0 110px;overflow:auto;scrollbar-width:none;overscroll-behavior:contain}#viewport::-webkit-scrollbar{display:none}#readingText{font-size:56px;line-height:1.55;font-weight:650;white-space:pre-wrap;overflow-wrap:anywhere;width:80%;margin:auto;padding-top:15vh;padding-bottom:70vh;transform-origin:center}.read-guide{position:absolute;left:6px;top:calc(80px + 15vh + 25px);border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:14px solid var(--lime);pointer-events:none}#readerControls{position:absolute;bottom:0;left:0;right:0;z-index:3;background:#111313f5;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 20px calc(16px + env(safe-area-inset-bottom));font-size:14px}#readerControls label{display:flex;align-items:center;gap:12px}#readSpeed{width:130px}#play{min-width:110px}#elapsed{font-variant-numeric:tabular-nums;color:var(--muted)}#countOverlay{position:absolute;inset:0;z-index:2;background:#030403b0;display:grid;place-items:center;font-size:120px;font-weight:700;color:var(--lime);pointer-events:none}#countOverlay[hidden]{display:none}button[aria-pressed=true]{border-color:var(--lime);color:var(--lime)}dialog{max-width:520px;width:calc(100% - 36px);border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:32px;color:var(--ink);line-height:1.6}dialog::backdrop{background:#000a}dialog h2{font-size:28px;letter-spacing:-1px;line-height:1.2}.dialog-close{float:right;margin:-16px -16px 8px 12px;font-size:24px;padding:0 12px}.install-note{color:var(--muted);font-size:14px}@media(min-width:1500px){main{padding-left:0;padding-right:0}}@media(max-width:900px){main{gap:4%;padding-top:26px}.tag{display:none}.options{align-items:flex-start;flex-direction:column}h1{font-size:36px}#readerControls{gap:8px;padding:12px}#readerControls label{gap:6px}#readSpeed{width:90px}}@media(max-width:650px){header{height:76px}main{grid-template-columns:1fr;gap:32px;padding-top:25px}h1{font-size:36px;margin:20px 0}textarea{height:250px;min-height:200px}.preview-window{height:230px}.options{flex-direction:row;align-items:center;flex-wrap:wrap}.count-label{flex-wrap:wrap}footer{flex-direction:column;font-size:11px}#readerTop{padding-left:10px;padding-right:10px}#readerTop button{font-size:12px;padding:9px}#readStatus{font-size:12px}#readerControls{flex-wrap:wrap;padding-bottom:calc(12px + env(safe-area-inset-bottom))}#readerControls label{order:5;width:100%;justify-content:center}#readSpeed{width:42vw}#viewport{bottom:140px}#readerControls button{padding:9px 12px}#elapsed{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.mode-choice{margin-top:20px;display:grid;gap:8px;font-size:14px}.mode-choice select{width:100%}#cameraPreview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#080a08}#cameraPreview.front-camera{transform:scaleX(-1)}#cameraBar{position:absolute;z-index:5;bottom:100px;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:10px 16px;background:#111313ed;font-size:14px}#cameraBar[hidden]{display:none}#recordStatus{max-width:340px}#recordButton{background:#e74343;color:white;border-color:#f56565;font-weight:700}#recordButton:disabled{opacity:.45}#recordTime{font-variant-numeric:tabular-nums}.camera-mode #viewport{bottom:auto;height:36vh;max-height:320px;z-index:2;background:linear-gradient(#000b,#0008);border-radius:0 0 16px 16px}.camera-mode #readingText{padding-top:12px;padding-bottom:36vh;font-size:38px;text-shadow:0 2px 6px #000}.camera-mode .read-guide{top:105px}.camera-mode #readerTop{background:#111313b0}.camera-mode #readerControls{min-height:100px}.download-link{display:inline-block;text-decoration:none;padding:14px 18px;border-radius:8px;margin:8px 8px 16px 0}#recordedVideo{width:100%;max-height:45vh;background:black}#videoDialog{max-width:640px}#videoDialog button{margin:4px}#videoInfo{color:var(--lime);font-size:14px}@media(max-width:650px){#cameraBar{bottom:134px;font-size:12px;gap:6px}#cameraBar button{font-size:13px;padding:9px}#recordStatus{flex-basis:100%;max-width:none;text-align:center}.camera-mode #readerControls{min-height:134px}.camera-mode #viewport{height:30vh}.camera-mode #readingText{font-size:32px}}

/* Camera mode: reserve the upper safe area exclusively for the reading strip. */
#focusSettings{border:1px solid var(--line);border-radius:10px;margin:18px 0 0;padding:14px;display:grid;gap:10px;font-size:14px}#focusSettings legend{color:var(--lime);padding:0 6px}#focusSettings label{display:flex;justify-content:space-between}#focusSettings p{font-size:13px;color:var(--muted);margin:2px 0;line-height:1.5}.danger{border-color:#c75d5d;color:#ffaaaa}
#reader.camera-mode{--focus-font:28px;--focus-x:60%;--focus-width:min(72vw,360px);display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;isolation:isolate}
#reader.camera-mode[hidden]{display:none}
.camera-mode #viewport{inset:auto;top:calc(env(safe-area-inset-top,0px) + 4px);left:clamp(calc(var(--focus-width)/2 + 8px),var(--focus-x),calc(100% - var(--focus-width)/2 - 8px));transform:translateX(-50%);width:var(--focus-width);height:calc(var(--focus-font)*2.7 + 18px);max-height:none;background:#070a07eb;border:1px solid #d9fc7699;border-radius:12px;z-index:3;box-shadow:0 3px 16px #0006;scroll-padding:0;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 62%,#0009 84%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 62%,#0009 84%,transparent 100%)}
.camera-mode #readingText{box-sizing:border-box;margin:0;padding:8px 14px calc(var(--focus-font)*1.35 + 10px);line-height:1.35;letter-spacing:0;font-weight:650;text-align:center;text-shadow:none;white-space:pre-line}
.camera-mode .read-guide{display:none}
.camera-mode #readerTop{position:relative;inset:auto;grid-row:2;padding:6px max(10px,env(safe-area-inset-right));background:#111313e8;gap:8px;z-index:4}
.camera-mode #readerTop button{font-size:12px;padding:8px 10px;min-height:44px}.camera-mode #readStatus{font-size:12px;line-height:1.3}
.camera-mode #cameraBar{position:relative;inset:auto;grid-row:3;padding:8px 10px;background:#111313f5;z-index:4}
.camera-mode #readerControls{position:relative;inset:auto;grid-row:4;min-height:0;padding:10px 10px calc(10px + env(safe-area-inset-bottom));gap:8px;z-index:4}
.camera-mode #readerControls button{padding:8px 10px;min-height:44px}.camera-mode #countOverlay{z-index:6}
@media(max-height:500px) and (orientation:landscape){.camera-mode #readerTop{padding:2px 8px}.camera-mode #cameraBar{padding:2px 8px}.camera-mode #recordStatus{flex-basis:auto}.camera-mode #readerControls{padding-top:4px;padding-bottom:4px;flex-wrap:nowrap}.camera-mode #readerControls label{order:0;width:auto}.camera-mode #readSpeed{width:80px}}
