body{background:var(--bg);color:var(--text);margin:0}.tv-button{background:var(--brand);min-height:40px;color:var(--brand-text);font:600 15px/1 var(--font-sans);cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 16px;text-decoration:none;display:inline-flex}.tv-button.is-quiet{background:var(--surface-sunken);color:var(--text)}.tv-button:focus-visible,.tv-chip:focus-visible,.tv-icon-button:focus-visible,.tv-speak:focus-visible,.tv-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tv-message{text-align:center;color:var(--text-muted);justify-items:center;gap:16px;padding:48px 16px;display:grid}.tv-home{max-width:1120px;margin:0 auto;padding-block:0 32px;padding-inline:16px}.tv-hero{max-width:680px;padding-block:40px 24px}.tv-brand{align-items:center;gap:10px;font-size:20px;font-weight:800;display:flex}.tv-logo{border-radius:10px;width:36px;height:36px}.tv-hero h1{letter-spacing:-.02em;text-wrap:balance;margin:28px 0 12px;font-size:clamp(30px,6vw,48px);line-height:1.08}.tv-lede{color:var(--text-muted);margin:0;font-size:18px;line-height:1.55}.tv-get{color:var(--text-soft);margin:14px 0 0;font-size:15px}.tv-library-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 16px;display:flex}.tv-library-head h2{margin:0;font-size:22px}.tv-library-head input{border:1px solid var(--border-strong);background:var(--surface);max-width:360px;min-height:42px;color:var(--text);font:15px var(--font-sans);border-radius:10px;flex:260px;padding:0 14px}.tv-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.tv-card{color:inherit;gap:4px;min-width:0;text-decoration:none;display:grid}.tv-card img{aspect-ratio:3/4;object-fit:cover;background:var(--surface-sunken);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;transition:transform .15s}.tv-card:hover img{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tv-card-title{margin-top:6px;font-weight:700}.tv-card-sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.tv-footer{border-top:1px solid var(--border);color:var(--text-soft);gap:20px;margin-top:48px;padding-top:20px;font-size:14px;display:flex}.tv-footer a{color:var(--text-muted)}.tv-story{color:#f5f5f7;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:#0f0f12;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.tv-story-bar{align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.tv-story-title{flex:1;min-width:0;display:grid}.tv-story-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.tv-scene-name{color:#a8a8b3;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.tv-icon-button{width:40px;height:40px;color:inherit;font:600 24px/1 var(--font-sans);cursor:pointer;background:#ffffff14;border:0;border-radius:50%;flex:none;place-items:center;text-decoration:none;display:grid}.tv-icon-button:disabled{opacity:.3;cursor:default}.tv-stage{place-items:center;min-height:0;display:grid;overflow:hidden;container-type:size}.tv-picture{width:min(100cqw, 100cqh * var(--ratio));aspect-ratio:var(--ratio);position:relative}.tv-picture img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.tv-picture svg{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:100%;height:100%;position:absolute;inset:0}.tv-outline{fill:#ff7a5538;stroke:#ff7a55;stroke-width:4px;vector-effect:non-scaling-stroke;stroke-linejoin:round;fill-rule:evenodd}.tv-outline.is-wrong{fill:#f8717140;stroke:#f87171}.tv-loading{color:#a8a8b3}.tv-word-bar{box-sizing:border-box;background:#18181d;border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:12px;height:76px;padding:10px 12px;display:flex;overflow:hidden}.tv-quiz{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.tv-speak{color:#0f0f12;cursor:pointer;background:#ff7a55;border:0;border-radius:50%;flex:none;width:48px;height:48px;font-size:20px}.tv-speak:disabled{opacity:.35;cursor:default}.tv-word{flex:160px;min-width:0;display:grid}.tv-word-text{white-space:nowrap;text-overflow:ellipsis;font-size:22px;font-weight:700;overflow:hidden}.tv-word-sub{color:#a8a8b3;white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.tv-tools{flex-wrap:wrap;gap:8px;display:flex}.tv-chip{color:#f5f5f7;min-height:36px;font:600 14px var(--font-sans);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #ffffff29;border-radius:999px;padding:0 12px}.tv-chip:disabled{opacity:.35}.tv-word-bar .tv-button.is-quiet{color:#f5f5f7;background:#ffffff14}.tv-panel{z-index:2;-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);width:min(360px,100%);padding:calc(env(safe-area-inset-top,0px) + 12px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);background:#18181da8;border-left:1px solid #ffffff1a;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-12px 0 32px #0006}.tv-panel-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.tv-panel-head strong{font-size:18px}.tv-panel-head span{color:#a8a8b3;flex:1;font-size:14px}.tv-panel-head .tv-icon-button{margin-left:auto}.tv-word-list,.tv-language-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.tv-word-list button,.tv-language-list button{text-align:left;color:#f5f5f7;width:100%;font:16px var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:10px;gap:2px;padding:10px 12px;display:grid}.tv-word-list small{color:#a8a8b3;font-size:13px}.tv-word-list button.is-seen span:after{content:" ✓";color:#34d399}.tv-word-list button.is-on,.tv-language-list button.is-on{background:#ff7a5529}.tv-word-list button:hover,.tv-language-list button:hover{background:#ffffff0f}.tv-voice{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;display:grid}.tv-voice button{color:#f5f5f7;min-height:40px;font:600 14px var(--font-sans);cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:10px}.tv-voice button.is-on{color:#0f0f12;background:#ff7a55;border-color:#ff7a55}@media (width<=600px){.tv-word-bar{align-content:center;height:132px}.tv-word-text{font-size:20px}.tv-tools{width:100%}.tv-quiz{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.tv-card img{transition:none}}
