:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafc;--bg-elev-1:#fff;--bg-elev-2:#f1f5f9;--border:#e5e7eb;--border-strong:#d1d5db;--text:#0f172a;--text-dim:#334155;--text-muted:#64748b;--text-faint:#94a3b8;--accent:#4f46e5;--accent-strong:#4338ca;--accent-soft:#4f46e51a;--accent-glow:0 0 20px #4f46e540;--hl:#facc15;--hl-on:#0f172a;--hl-soft:#facc1540;--hl-glow:0 0 14px #facc158c;--en:#1d4ed8;--en-dim:#2563eb;--danger:#dc2626;--success:#16a34a;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:24px;--shadow-1:0 1px 2px #0f172a0f;--shadow-2:0 2px 8px #0f172a12, 0 1px 2px #0f172a0d;--shadow-3:0 8px 24px #0f172a1a, 0 2px 4px #0f172a0d;--ease:cubic-bezier(.2, .7, .2, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.28s;--font-display:"Inter Tight", "InterVariable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", Roboto, sans-serif;--font-read:"Charter", "Iowan Old Style", "Palatino", "Georgia", ui-serif, serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;padding:0;font-size:16px;line-height:1.55}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(1200px 600px at 12% -10%,#4f46e50d,#0000 60%),radial-gradient(900px 500px at 95% 0,#facc1508,#0000 60%);position:fixed;inset:0}main{max-width:780px;padding:66px 20px calc(100px + env(safe-area-inset-bottom,0px));z-index:1;min-height:100dvh;margin:0 auto;position:relative}main:has(.player-bottom-bar){padding-bottom:calc(180px + env(safe-area-inset-bottom,0px))}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:0}h1{letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.15}h2{font-size:18px;font-weight:600;line-height:1.25}h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:600;line-height:1.3}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--accent);transition:color var(--dur) var(--ease);text-decoration:none}a:hover{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.user-menu-slot{z-index:60;align-items:center;display:flex;position:fixed;top:12px;right:16px}.user-menu-signin{background:var(--accent,#4f46e5);color:#fff;border-radius:999px;align-items:center;height:30px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex;box-shadow:0 1px 4px #00000026}.user-menu-signin:hover{opacity:.9}.user-menu-avatar{background:var(--accent,#4f46e5);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;display:inline-flex;overflow:hidden;box-shadow:0 1px 4px #00000026}.user-avatar-img{object-fit:cover;width:100%;height:100%}.user-avatar-initial{font-size:14px;font-weight:600}.app-header{z-index:50;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;height:52px;padding:0 max(20px,50vw - 390px);display:flex;position:fixed;top:0;left:0;right:0}.app-header-logo{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);align-items:center;gap:9px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.app-header-logo:hover{color:var(--text)}.app-header-logo .logo-mark{background:linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%);width:28px;height:28px;box-shadow:var(--shadow-2);color:#fff;border-radius:8px;place-items:center;font-size:14px;font-weight:800;display:grid}.app-header-wordmark{font-size:16px}.app-header-title{font-family:var(--font-display);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-left:4px;font-size:15px;font-weight:600;overflow:hidden}.app-header-spacer{flex:1}.app-header-actions{align-items:center;gap:6px;margin-right:88px;display:inline-flex}.app-header-actions button.icon,.app-header-actions a.icon{width:38px;height:38px;color:var(--text-muted);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:999px;place-items:center;display:grid}.app-header-actions button.icon:hover,.app-header-actions a.icon:hover{background:var(--bg-elev-2);color:var(--text)}@media (max-width:359px){.app-header-wordmark{display:none}}.topbar{align-items:center;gap:12px;height:48px;margin-bottom:14px;display:flex}.topbar .logo{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);align-items:center;gap:9px;font-size:16px;font-weight:700;display:inline-flex}.topbar .logo-mark{background:linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%);width:28px;height:28px;box-shadow:var(--shadow-2);color:#fff;border-radius:8px;place-items:center;font-size:14px;font-weight:800;display:grid}.topbar .spacer{flex:1}.topbar button.icon{width:38px;height:38px;color:var(--text-muted);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:999px;place-items:center;display:grid}.topbar button.icon:hover{background:var(--bg-elev-2);color:var(--text)}.hero{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);grid-template-columns:72px 1fr;align-items:center;gap:14px;padding:18px;display:grid}.hero .cover{width:72px;height:72px;box-shadow:var(--shadow-2);font-family:var(--font-display);color:#fffffff2;text-shadow:0 1px 2px #00000040;border-radius:12px;place-items:center;font-size:28px;font-weight:800;display:grid;position:relative;overflow:hidden}.hero .cover:after{content:"";border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff1f}.hero .meta{flex-direction:column;gap:4px;min-width:0;display:flex}.hero .meta .title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:22px;font-weight:700;line-height:1.2;overflow:hidden}.hero .meta .sub{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.hero .meta .sub .dot{color:var(--text-faint)}.progress{cursor:pointer;grid-column:1/-1;align-items:center;height:22px;margin-top:10px;display:flex;position:relative}.progress .track{background:var(--bg-elev-2);border-radius:999px;height:6px;position:absolute;left:0;right:0;overflow:hidden}.progress .fill{background:linear-gradient(90deg, var(--accent) 0%, #8b5cf6 100%);border-radius:inherit;height:100%;transition:width .12s linear}.progress .thumb{border:2px solid var(--accent);width:14px;height:14px;box-shadow:var(--shadow-2);transition:transform var(--dur) var(--ease);background:#fff;border-radius:999px;position:absolute;top:4px;transform:translate(-50%)}.progress:hover .thumb{transform:translate(-50%)scale(1.12)}.deck{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:10px;margin-top:18px;padding:14px;display:flex}.deck button{background:var(--bg-elev-2);color:var(--text-dim);transition:transform var(--dur-fast) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:1px solid var(--border);border-radius:999px;place-items:center;display:grid}.deck button:not(:disabled):hover{color:var(--text);background:#e5e7eb}.deck button:not(:disabled):active{transform:scale(.94)}.deck button.secondary{width:46px;height:46px;font-size:18px}.deck button.primary{background:linear-gradient(180deg, var(--accent), var(--accent-strong));color:#fff;width:68px;height:68px;box-shadow:var(--shadow-2), var(--accent-glow);border-color:#0000;margin:0 4px;font-size:22px;font-weight:700}.deck button.primary:hover{background:linear-gradient(180deg, #6366f1, var(--accent))}.deck button.toggle-on{background:var(--accent-soft);color:var(--accent);border-color:#4f46e54d}.chips{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.chip{background:var(--bg-elev-1);border:1px solid var(--border);color:var(--text-dim);transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover{background:var(--bg-elev-2);color:var(--text)}.chip:active{transform:scale(.97)}.chip[data-on="1"]{background:var(--accent-soft);color:var(--accent);border-color:#4f46e559}.chip .chip-label{color:var(--text-muted);font-size:12px}.chip[data-on="1"] .chip-label{color:var(--accent);opacity:.8}.reading .pt-sentence{font-family:var(--font-read);color:var(--text);letter-spacing:-.005em;font-size:22px;line-height:1.55}.reading .en-sentence{font-family:var(--font-body);color:var(--en);font-size:15px;line-height:1.6}.seg-box{border:1px solid #0000;border-radius:12px;padding:16px 18px}.seg-box-pt{background:#eff6ff;border-color:#dbeafe;min-height:120px}.seg-box-en{background:#f0fdf4;border-color:#dcfce7;min-height:88px;margin-top:12px}.seg-box-label{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600}.seg-box-pt .seg-box-label{color:#1e40af}.seg-box-en .seg-box-label{color:#166534}.pt-word{transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);cursor:pointer;border-radius:4px;padding:0 3px}.pt-word.active{background:var(--hl);color:var(--hl-on);box-shadow:var(--hl-glow)}.en-word{transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border-radius:3px;padding:0 2px}.en-word.active{background:var(--hl-soft);color:var(--text)}.inline-para{font-family:var(--font-read);color:var(--inline-source-color,var(--text));font-size:var(--inline-pt-size,18px);letter-spacing:-.005em;margin:0;line-height:2.4}.inline-ruby{transition:background var(--dur-fast) var(--ease);ruby-position:under;ruby-align:start;cursor:pointer;border-radius:4px;padding:0 2px}.inline-ruby[data-active=true]{background:var(--hl);box-shadow:var(--hl-glow)}.inline-ruby rt{font-family:var(--font-body);font-size:var(--inline-en-size,13px);color:var(--en);opacity:.85;transition:background var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);border-radius:3px;padding:0 2px;font-weight:400}.inline-ruby[data-active=true] rt{background:var(--hl);opacity:1}.popover-enter{animation:popover-in .16s var(--ease);transform-origin:0 0}@keyframes popover-in{0%{opacity:0;transform:scale(.94)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.eq{pointer-events:none;align-items:flex-end;gap:2px;width:14px;height:14px;display:inline-flex}.eq span{background:var(--accent);border-radius:1px;width:3px;animation:.9s ease-in-out infinite eq;display:block}.eq span:first-child{height:60%;animation-delay:-.9s}.eq span:nth-child(2){height:100%;animation-delay:-.7s}.eq span:nth-child(3){height:70%;animation-delay:-.5s}@keyframes eq{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.banner{border-radius:var(--radius);color:var(--text);animation:banner-in var(--dur-slow) var(--ease);background:linear-gradient(#4f46e514,#4f46e508);border:1px solid #4f46e540;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}@keyframes banner-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.banner button{transition:background var(--dur) var(--ease);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.banner button.primary{background:var(--accent);color:#fff}.banner button.primary:hover{background:var(--accent-strong)}.banner button.ghost{color:var(--text-dim);border:1px solid var(--border-strong);background:0 0}.banner button.ghost:hover{color:var(--text);background:var(--bg-elev-2)}.sheet-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--dur) var(--ease);z-index:30;background:#0f172a4d;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{background:var(--bg-elev-1);border-top:1px solid var(--border);padding:10px 16px calc(20px + env(safe-area-inset-bottom,0px));max-height:80dvh;animation:sheet-up var(--dur-slow) var(--ease);z-index:31;border-radius:18px 18px 0 0;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -8px 32px #0f172a26}@keyframes sheet-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sheet .handle{background:var(--border-strong);border-radius:999px;width:36px;height:4px;margin:6px auto 14px}.sheet .sheet-item{border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:background var(--dur) var(--ease);align-items:center;gap:12px;padding:12px 10px;text-decoration:none;display:flex}.sheet .sheet-item:hover{background:var(--bg-elev-2);color:var(--text)}.sheet .sheet-item .sheet-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:8px;place-items:center;font-size:16px;display:grid}.sheet h3{margin:10px 6px 6px}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-head h1{font-size:22px}.back-link{color:var(--text-muted);align-items:center;gap:4px;font-size:14px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text)}.list{margin:0;padding:0;list-style:none}.list-item{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur-fast) var(--ease);margin-bottom:10px;padding:14px 16px;text-decoration:none;display:block}.list-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.list-item:active{transform:scale(.995)}.list-item .li-title{color:var(--text);font-size:16px;font-weight:600;line-height:1.35}.list-item .li-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.list-item .li-meta .dot{color:var(--text-faint)}.list-item.recent{background:linear-gradient(#4f46e50a,#0000);border-color:#4f46e540}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 10px;font-size:12px;font-weight:600}.empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-elev-1);padding:40px 20px}.empty .empty-icon{margin-bottom:10px;font-size:36px;display:block}.empty h2{margin-bottom:6px}.empty p{margin:0;font-size:14px}.vocab-card{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:12px;padding:14px 16px}.vocab-card .vc-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.vocab-card .vc-pt{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;font-size:19px;font-weight:700}.vocab-card .vc-en{color:var(--en);margin-top:2px;font-size:14px}.vocab-card .vc-sent{font-family:var(--font-read);color:var(--text-dim);margin-top:10px;font-size:14px;line-height:1.5}.vocab-card .vc-sent mark{background:var(--hl);color:var(--hl-on);border-radius:2px;padding:0 2px}.vocab-card .vc-sent-en{color:var(--text-muted);margin-top:4px;font-size:13px;font-style:italic}.vocab-card .vc-foot{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-top:10px;font-size:11px}.vocab-card .vc-remove{color:var(--text-muted);border:1px solid var(--border);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;border-radius:999px;padding:4px 10px;font-size:12px}.vocab-card .vc-remove:hover{color:var(--danger);border-color:var(--danger);background:#dc26260d}@media (max-width:600px){main{padding:16px 14px calc(120px + env(safe-area-inset-bottom,0px))}h1{font-size:24px}.hero{grid-template-columns:60px 1fr;padding:14px}.hero .cover{border-radius:10px;width:60px;height:60px;font-size:24px}.hero .meta .title{font-size:19px}.deck{gap:8px;padding:10px}.deck button.primary{width:60px;height:60px}.deck button.secondary{width:42px;height:42px}.reading .pt-sentence{font-size:20px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:14px 16px}.more-examples{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.more-examples-toggle{color:var(--text-muted);cursor:pointer;letter-spacing:.02em;background:0 0;border:0;padding:4px 0;font-family:inherit;font-size:12px;font-weight:500}.more-examples-toggle:hover{color:var(--text)}.more-examples-count{color:var(--text-faint)}.more-examples-body{margin-top:8px}.more-examples-loading,.more-examples-error,.more-examples-empty{color:var(--text-muted);padding:8px 4px;font-size:13px}.more-examples-error{color:var(--danger)}.more-examples-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.more-example-link{background:var(--bg-elev-2);color:inherit;border:1px solid #0000;border-radius:8px;padding:10px 12px;text-decoration:none;transition:border-color .12s;display:block}.more-example-link:hover{border-color:var(--border-strong)}.more-example-pt{font-family:var(--font-read);color:var(--text);font-size:14px;line-height:1.4}.more-example-pt mark{background:var(--hl-soft);color:var(--text);border-radius:2px;padding:0 2px}.more-example-en{color:var(--en);margin-top:2px;font-size:12px;line-height:1.4}.more-example-meta{color:var(--text-faint);margin-top:4px;font-size:11px}.resume-toast{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent-strong);animation:resume-toast-in .22s var(--ease);align-items:center;gap:10px;margin:12px 0 0;padding:10px 12px;font-size:13px;display:flex}@keyframes resume-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.resume-toast-icon{font-size:16px;line-height:1}.resume-toast-text{flex:1}.resume-toast-action{border:1px solid var(--accent);color:var(--accent-strong);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:600;transition:background .12s}.resume-toast-action:hover{background:#4f46e51f}.resume-toast-dismiss{width:24px;height:24px;color:var(--accent-strong);cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:50%;font-size:12px;transition:opacity .12s}.resume-toast-dismiss:hover{opacity:1}.chip-wrap{display:inline-flex;position:relative}.speed-popover{z-index:30;background:var(--bg-elev-1);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-3);white-space:nowrap;animation:speed-pop .14s var(--ease);flex-wrap:wrap;gap:4px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}@keyframes speed-pop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.speed-option{border:1px solid var(--border);height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;transition:background .12s,color .12s,border-color .12s}.speed-option:hover{background:var(--bg-elev-2);color:var(--text)}.speed-option[data-on="1"]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent);font-weight:700}.speak-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;font-size:14px;line-height:1;transition:background .12s,color .12s,border-color .12s,transform .12s;display:inline-grid}.speak-btn-sm{width:28px;height:28px;font-size:12px}.speak-btn-md{width:36px;height:36px;font-size:16px}.speak-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.speak-btn[data-speaking="1"]{background:var(--accent);color:#fff;border-color:var(--accent);animation:1s ease-in-out infinite speak-pulse}@keyframes speak-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.seg-tick{background:var(--border-strong);pointer-events:none;opacity:.7;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.sleep-banner{border:1px solid var(--accent-soft);border-radius:var(--radius);color:var(--accent-strong);background:#4f46e514;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.sleep-banner>:first-child{font-size:18px}.sleep-banner>:nth-child(2){flex:1}.auto-advance{border-radius:var(--radius);background:var(--bg-elev-2);text-align:left;margin-top:18px;padding:12px 14px}.auto-advance-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.auto-advance-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 10px;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.auto-advance-actions{flex-wrap:wrap;gap:6px;display:flex}.sheet-status{background:var(--bg-elev-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.sheet-status[data-on="1"]{background:var(--accent-soft);color:var(--accent-strong)}.sheet-row{flex-direction:column;align-items:stretch;display:flex}.install-prompt{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);animation:install-prompt-rise .22s var(--ease);grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:12px 14px;display:grid;position:fixed}body:has(.player-bottom-bar) .install-prompt{bottom:calc(140px + env(safe-area-inset-bottom,0px))}@keyframes install-prompt-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.install-prompt-icon{font-size:26px;line-height:1}.install-prompt-text{min-width:0}.install-prompt-title{font-size:14px;font-weight:700}.install-prompt-sub{color:var(--text-muted);font-size:12px}.install-prompt-action{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600}.install-prompt-action:hover{background:var(--accent-strong)}.install-prompt-dismiss{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:14px}.install-prompt-dismiss:hover{background:var(--bg-elev-2);color:var(--text)}.search-input{border:1px solid var(--border);background:var(--bg-elev-1);width:100%;height:40px;color:var(--text);box-shadow:var(--shadow-1);appearance:none;border-radius:999px;outline:none;margin:4px 0 14px;padding:0 14px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.search-input::placeholder{color:var(--text-faint)}.search-input:focus{border-color:var(--accent);box-shadow:var(--shadow-1), 0 0 0 3px var(--accent-soft)}.search-input::-webkit-search-cancel-button{cursor:pointer}.download-btn{border:1px solid var(--border);background:var(--bg-elev-1);width:100%;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-1);border-radius:999px;justify-content:center;align-items:center;gap:8px;margin:12px 0 0;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex;position:relative;overflow:hidden}.download-btn:hover{background:var(--bg-elev-2);color:var(--text)}.download-btn:disabled{cursor:progress}.download-btn[data-status=downloaded]{color:var(--success);border-color:var(--success);background:#16a34a0d}.download-btn[data-status=error]{color:var(--danger);border-color:var(--danger)}.download-icon{place-items:center;width:18px;height:18px;font-weight:700;display:inline-grid}.download-btn[data-status=downloading] .download-icon{animation:1.2s linear infinite dl-spin}@keyframes dl-spin{to{transform:rotate(360deg)}}.download-fill{background:var(--accent-soft);z-index:0;transition:width .2s var(--ease);pointer-events:none;position:absolute;inset:0 auto 0 0}.download-icon,.download-label{z-index:1;position:relative}.download-row{align-items:center;gap:8px;display:flex}.download-row-main{min-width:0;color:inherit;flex:1;text-decoration:none}.download-row .vc-remove{flex:none}.li-checkmark{background:var(--success);color:#fff;vertical-align:middle;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:8px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.list-item[data-finished="1"] .li-title{color:var(--text-muted)}.li-resume{color:var(--accent);font-weight:500}.li-progress{background:var(--bg-elev-2);border-radius:2px;height:3px;margin-top:8px;overflow:hidden}.li-progress-fill{background:var(--accent);height:100%;transition:width .2s var(--ease);border-radius:2px}.ep-badge{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:10px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.ep-badge-cta{background:var(--accent-soft);color:var(--accent-strong);border:1px solid var(--accent)}.ep-badge-muted{background:var(--bg-elev-2);color:var(--text-faint);border:1px solid var(--border)}.ep-badge-error{color:var(--danger);border:1px solid var(--danger);background:#dc262614}.ep-badge-info{background:var(--bg-elev-2);color:var(--text-muted);border:1px solid var(--border-strong)}.ep-badge-pulse{color:var(--accent);border:1px solid var(--accent);background:#4f46e51a;animation:1.4s ease-in-out infinite ep-pulse}.ep-badge-ready{color:#15803d;background:#16a34a14;border:1px solid #16a34a59}@keyframes ep-pulse{0%,to{opacity:1}50%{opacity:.55}}.list-item:disabled,button.list-item:disabled{cursor:default;opacity:.85}.proc-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:proc-fade .2s var(--ease);background:#0f172a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}@keyframes proc-fade{0%{opacity:0}to{opacity:1}}.proc-card{background:var(--bg-elev-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:360px;box-shadow:var(--shadow-3);animation:proc-rise .22s var(--ease);padding:26px 22px}@keyframes proc-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.proc-spinner{color:var(--accent);margin-bottom:14px;font-size:32px;animation:1.2s linear infinite proc-spin;display:inline-block}.proc-error-icon{color:var(--danger);margin-bottom:12px;font-size:28px}@keyframes proc-spin{to{transform:rotate(360deg)}}.proc-title{letter-spacing:-.01em;font-size:17px;font-weight:700}.proc-sub{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 14px;font-size:13px;display:-webkit-box;overflow:hidden}.proc-stage{color:var(--text-faint);margin-bottom:14px;font-size:12px}.proc-stage-error{color:var(--danger);word-break:break-word;font-weight:500}.proc-bar{background:var(--bg-elev-2);border-radius:2px;height:4px;margin-bottom:16px;overflow:hidden}.proc-bar-fill{background:linear-gradient(90deg, transparent, var(--accent), transparent);width:30%;height:100%;animation:1.6s ease-in-out infinite proc-bar-slide}@keyframes proc-bar-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.proc-cancel-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border-radius:999px;padding:8px 16px;font-size:13px}.proc-cancel-btn:hover{background:var(--bg-elev-2);color:var(--text)}.home-section{margin:24px 0}.home-section .section-title{align-items:center;display:flex}.continue-listening{margin:18px 0 22px}.continue-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600}.continue-card{border:1px solid var(--border-strong);border-radius:var(--radius-lg);color:var(--text);box-shadow:var(--shadow-2);background:linear-gradient(135deg,#4f46e50f,#8b5cf60a);grid-template-columns:64px 1fr;align-items:center;gap:14px;padding:14px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:grid}.continue-card:hover{box-shadow:var(--shadow-3);transform:translateY(-1px)}.continue-cover{background:linear-gradient(135deg, var(--accent), #8b5cf6);color:#fff;width:64px;height:64px;box-shadow:var(--shadow-1);border-radius:12px;place-items:center;font-size:26px;display:grid}.continue-meta{min-width:0}.continue-title{letter-spacing:-.01em;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-bottom:2px;font-size:16px;font-weight:700;display:-webkit-box;overflow:hidden}.continue-sub{color:var(--text-muted);margin-bottom:6px;font-size:12px}.continue-progress{color:var(--accent);font-size:13px;font-weight:500}.continue-bar{background:#4f46e526;border-radius:2px;height:3px;margin-top:8px;overflow:hidden}.continue-bar-fill{background:var(--accent);height:100%;transition:width .2s var(--ease);border-radius:2px}.home-cta{text-align:center;margin:30px 0 12px}.home-cta-btn{background:var(--accent);color:#fff;box-shadow:var(--shadow-2);border-radius:999px;padding:12px 22px;font-size:14px;font-weight:600;text-decoration:none;transition:background .12s,transform .12s;display:inline-block}.home-cta-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.home-cta-sub{color:var(--text-muted);margin:10px 0 0;font-size:13px}.catalog-summary{color:var(--text-muted);margin:-4px 0 16px;font-size:13px}.lang-filter{flex-wrap:wrap;gap:8px;margin:4px 0 22px;display:flex}.filter-pill{background:var(--bg-elev-1);border:1px solid var(--border);height:32px;color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 14px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.filter-pill:hover{background:var(--bg-elev-2);color:var(--text)}.filter-pill[data-on="1"]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.lang-group{margin-bottom:28px}.lang-group .section-title{align-items:center;gap:8px;display:flex}.lang-group .section-title .muted-count{color:var(--text-muted);margin-left:auto;font-size:12px;font-weight:500}.podcast-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.podcast-link{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-1);flex-direction:column;gap:8px;height:100%;padding:8px;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.podcast-link:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2);transform:translateY(-1px)}.podcast-link:active{transform:scale(.99)}.podcast-cover{aspect-ratio:1;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6) 50%/cover;border-radius:8px;place-items:center;font-size:28px;display:grid}.podcast-cover .cover-placeholder{opacity:.85}.podcast-info{min-width:0;padding:0 4px 4px}.podcast-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.podcast-meta{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.podcast-meta .dot{color:var(--text-faint)}.podcast-hero{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);grid-template-columns:96px 1fr;gap:14px;margin-bottom:18px;padding:14px;display:grid}.podcast-hero-cover{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6) 50%/cover;border-radius:12px;place-items:center;width:96px;height:96px;font-size:36px;display:grid}.podcast-hero-meta{flex-direction:column;justify-content:center;gap:6px;min-width:0;display:flex}.podcast-hero-lang{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.podcast-hero-desc{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:4px 0 0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}@media (max-width:600px){.podcast-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.podcast-hero{grid-template-columns:72px 1fr;padding:12px}.podcast-hero-cover{border-radius:10px;width:72px;height:72px;font-size:28px}}.topbar.topbar-compact{height:36px;margin-bottom:8px}.topbar.topbar-compact .logo-compact{gap:0}.topbar.topbar-compact .logo-mark{width:24px;height:24px;font-size:12px}.topbar.topbar-compact button.icon{width:32px;height:32px}.episode-header{margin-bottom:14px}.episode-header-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:20px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.episode-header-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.episode-header-meta .dot{color:var(--text-faint)}.player-bottom-bar{z-index:30;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:6px 12px calc(8px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-3);background:#ffffffeb;position:fixed;bottom:0;left:0;right:0}.player-bottom-progress{width:100%;height:14px;margin:0}.player-bottom-progress .track{background:var(--bg-elev-2);border-radius:2px;height:4px;position:relative;overflow:visible}.player-bottom-progress .fill{background:var(--accent);pointer-events:none;border-radius:2px;height:100%;position:absolute;inset:0 auto 0 0}.player-bottom-progress .thumb{background:var(--accent);pointer-events:none;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0f172a33}.player-bottom-progress .seg-tick{background:var(--text-faint);opacity:.5;width:1px;height:6px;position:absolute;top:-1px}.player-bottom-transport{align-items:center;gap:8px;padding:6px 4px 4px;display:flex}.player-bottom-transport button.secondary{border:1px solid var(--border);background:var(--bg-elev-1);width:38px;height:38px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);border-radius:999px;place-items:center;display:grid}.player-bottom-transport button.secondary:hover:not(:disabled){background:var(--bg-elev-2);color:var(--text)}.player-bottom-transport button.secondary:disabled{opacity:.4;cursor:not-allowed}.player-bottom-transport button.secondary.toggle-on{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.player-bottom-transport button.primary{background:linear-gradient(180deg, var(--accent), var(--accent-strong));color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow-2);transition:transform var(--dur-fast);border:0;border-radius:50%;place-items:center;margin:0 4px;display:grid}.player-bottom-transport button.primary:active{transform:scale(.96)}.player-bottom-transport .speed-pill-wrap{margin-left:auto;position:relative}.player-bottom-transport .speed-pill{border:1px solid var(--border);background:var(--bg-elev-1);min-width:44px;height:32px;color:var(--text-muted);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600}.player-bottom-transport .speed-pill[data-on="1"]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.speed-popover-bottom{bottom:calc(100% + 6px);left:auto;right:0}.reading{margin-top:8px}
