:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, Helvetica, Arial, sans-serif;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.625rem;--text-2xl:2.125rem;--weight-body:400;--weight-medium:600;--weight-bold:800;--leading-tight:1.15;--leading-normal:1.45;--leading-relaxed:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-pill:999px;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 12px 32px #00000073;--shadow-glow:0 0 0 1px #22e07a59;--color-bg:#0b0c0f;--color-bg-elevated:#121317;--color-surface:#17181d;--color-surface-hover:#202228;--color-surface-active:#282a32;--color-border:#24262c;--color-border-strong:#34363e;--color-text:#f3f4f6;--color-text-muted:#9a9ca4;--color-text-faint:#67696f;--color-accent:#22e07a;--color-accent-hover:#3dfa93;--color-accent-contrast:#06140d;--color-accent-wash:#22e07a24;--color-error:#ff5c5c;--color-error-wash:#ff5c5c1f;--color-success:#22e07a;--color-offline-bg:#2b2308;--color-offline-text:#f0c85b;--bottom-nav-height:60px;--mini-player-height:64px}*{box-sizing:border-box}html{font-family:var(--font-sans)}body{background:var(--color-bg);color:var(--color-text);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-sans);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:0 0 var(--space-2);letter-spacing:-.02em}h2{font-size:var(--text-xl)}h3{font-size:var(--text-md);font-weight:var(--weight-bold)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:none}button,input,select{font-family:inherit;font-size:var(--text-sm);color:var(--color-text)}button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface);font-weight:var(--weight-medium);cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform 80ms}button:hover:not(:disabled){border-color:var(--color-text-muted);background:var(--color-surface-hover)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-weight:var(--weight-bold)}button.primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-accent-contrast)}button.ghost{color:var(--color-text-muted);padding:var(--space-1) var(--space-3);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover);border-color:#0000}input{padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface)}input::placeholder{color:var(--color-text-faint)}input:focus,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.brand{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.02em;align-items:baseline;gap:1px;display:flex}.brand-dot{color:var(--color-accent)}.app-header nav{gap:var(--space-1);display:flex}.nav-link{font-family:var(--font-sans);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);text-decoration:none;transition:color .12s,background .12s}.nav-link:hover{color:var(--color-text)}.nav-link.active{color:var(--color-accent-contrast);background:var(--color-accent)}.app-main{padding:var(--space-6) var(--space-5) var(--space-8);padding-bottom:calc(var(--space-8) + var(--mini-player-height) + var(--space-4));flex:1;width:100%;max-width:860px;margin:0 auto}.page h2{margin-bottom:var(--space-5)}.page-lede{color:var(--color-text-muted);font-size:var(--text-base);margin-top:calc(var(--space-2) * -1);margin-bottom:var(--space-5)}.bottom-nav{display:none}.bottom-nav-link{color:var(--color-text-faint);font-size:.6875rem;font-weight:var(--weight-medium);padding:var(--space-2) 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottom-nav-link svg{width:24px;height:24px}.bottom-nav-link.active{color:var(--color-accent)}@media (width<=768px){.app-header nav{display:none}.bottom-nav{z-index:30;height:var(--bottom-nav-height);background:var(--color-bg-elevated);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:0;right:0}.mini-player{bottom:var(--bottom-nav-height)}.app-main{padding-left:var(--space-4);padding-right:var(--space-4)}}.search-form{gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.search-form input{flex:1}.show-list,.episode-list,.chat-log,.annotation-list,.curriculum-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.show-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin:0;padding:0;list-style:none;display:grid}.show-card{gap:var(--space-2);color:inherit;padding:var(--space-2);border-radius:var(--radius-md);flex-direction:column;text-decoration:none;transition:background .15s,transform .15s;display:flex}.show-card:hover{background:var(--color-surface);transform:translateY(-2px)}.show-card-art{aspect-ratio:1;border-radius:var(--radius-md);object-fit:cover;background:var(--color-surface);width:100%;box-shadow:var(--shadow-sm)}.show-card-art.placeholder{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text-faint);background:linear-gradient(160deg, var(--color-surface), var(--color-bg));justify-content:center;align-items:center;display:flex}.show-card-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.show-card-author{font-size:var(--text-xs);color:var(--color-text-muted)}.show-row,.episode-row{align-items:center;gap:var(--space-4);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid #0000;transition:background .15s,border-color .15s;display:flex}.show-row:hover,.episode-row:hover{background:var(--color-surface-hover)}.show-row img{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.show-info,.episode-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.show-info a,.episode-info a{color:var(--color-text);font-weight:var(--weight-bold);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.show-info a:hover,.episode-info a:hover{color:var(--color-accent)}.show-author,.episode-date{font-size:var(--text-xs);color:var(--color-text-muted)}.episode-actions,.annotation-controls{gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;align-items:center;display:flex}.episode-actions button,.annotation-controls button{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);white-space:nowrap}.annotation-controls input{min-width:0;padding:var(--space-2) var(--space-3);flex:140px}.error{color:var(--color-error);background:var(--color-error-wash);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.hint,.empty-state{color:var(--color-text-muted);font-size:var(--text-sm)}.empty-state{padding:var(--space-6) var(--space-4);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.hero-card{gap:var(--space-4);padding:var(--space-4);background:linear-gradient(135deg, var(--color-surface-hover), var(--color-surface));border-radius:var(--radius-lg);margin-bottom:var(--space-5);align-items:center;transition:transform .15s,box-shadow .15s;display:flex}.hero-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.hero-card-art{border-radius:var(--radius-md);object-fit:cover;width:84px;height:84px;box-shadow:var(--shadow-sm);flex-shrink:0}.hero-card-body{flex:1;min-width:0}.hero-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);font-size:.6875rem;font-weight:var(--weight-bold);margin-bottom:4px}.hero-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em;overflow:hidden}.hero-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px}.hero-progress{margin-top:var(--space-3);border-radius:var(--radius-pill);background:#ffffff1a;height:4px;overflow:hidden}.hero-progress-fill{background:var(--color-accent);border-radius:var(--radius-pill);height:100%}.goal-hero{padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);margin-bottom:var(--space-6);position:relative;overflow:hidden}.goal-hero:before{content:"";background:radial-gradient(circle at top right, var(--color-accent-wash), transparent 60%);pointer-events:none;position:absolute;inset:0}.goal-hero>*{position:relative}.goal-hero .hero-eyebrow{margin-bottom:var(--space-2)}.goal-hero h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}.goal-hero-next{font-size:var(--text-sm);color:var(--color-text-muted);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.goal-hero-next a{color:var(--color-text);font-weight:var(--weight-bold)}.section-heading{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--weight-bold);color:var(--color-text-muted);margin:var(--space-6) 0 var(--space-3)}.section-heading:first-child{margin-top:0}.show-header{gap:var(--space-4);margin-bottom:var(--space-6);align-items:flex-end;display:flex}.show-header-art{border-radius:var(--radius-md);object-fit:cover;width:120px;height:120px;box-shadow:var(--shadow-md);flex-shrink:0}.show-header-body h2{margin-bottom:2px}.show-header-body .show-author{margin-bottom:var(--space-3)}.episode-section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.chat-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-sm);max-width:88%}.chat-user{background:var(--color-accent-wash);align-self:flex-end}.annotation-row{gap:var(--space-3);background:var(--color-surface);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);align-items:center;display:flex}.annotation-time{color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:var(--text-xs);font-weight:var(--weight-bold)}.annotation-kind{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:var(--weight-medium)}.goal-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.goal-status{margin-right:var(--space-2);margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-medium);display:inline-block}.curriculum-pick{background:var(--color-bg-elevated);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.pick-rationale{color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-1) 0 var(--space-2)}.offline-banner{background:var(--color-offline-bg);color:var(--color-offline-text);padding:var(--space-2) var(--space-4);text-align:center;font-size:var(--text-xs);font-weight:var(--weight-medium)}.mini-player{z-index:20;background:var(--color-bg-elevated);border-top:1px solid var(--color-border);box-shadow:var(--shadow-md);transition:bottom .15s;position:fixed;bottom:0;left:0;right:0}.mini-player-seek{background:var(--color-border);cursor:pointer;height:3px;position:relative}.mini-player-seek-fill{background:var(--color-accent);position:absolute;inset:0 auto 0 0}.mini-player-body{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);height:calc(var(--mini-player-height) - 3px);display:flex}.mini-player-art{border-radius:var(--radius-sm);object-fit:cover;width:44px;height:44px;box-shadow:var(--shadow-sm);flex-shrink:0}.mini-player-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);flex:1;overflow:hidden}.mini-player-controls{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.mini-player-play{border-radius:var(--radius-pill);background:var(--color-accent);border-color:var(--color-accent);width:36px;height:36px;color:var(--color-accent-contrast);justify-content:center;align-items:center;padding:0;display:flex}.mini-player-time{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:var(--text-xs)}.mini-player-controls select{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface);font-size:var(--text-xs);padding:2px 8px}.carousel{gap:var(--space-3,12px);scroll-snap-type:x mandatory;padding:0 0 var(--space-3,12px);-webkit-overflow-scrolling:touch;margin:0;list-style:none;display:flex;overflow-x:auto}.episode-card{scroll-snap-align:start;flex:0 0 168px;width:168px;min-width:0}.episode-card-link{color:inherit;background:var(--surface,#1c1f26);border-radius:12px;flex-direction:column;gap:6px;height:100%;padding:10px;text-decoration:none;display:flex}.episode-card-art{aspect-ratio:1;object-fit:cover;background:#2a2e37;border-radius:8px;width:100%}.episode-card-art.placeholder{color:#6b7280;justify-content:center;align-items:center;font-size:40px;display:flex}.episode-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.episode-card-meta{color:var(--muted,#9aa1ad);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.episode-card-why{color:var(--muted,#9aa1ad);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.episode-card-progress{background:#2a2e37;border-radius:2px;height:4px;display:block;overflow:hidden}.episode-card-progress-fill{background:var(--accent,#4f7cff);height:100%;display:block}.episode-card-play{align-self:flex-start;padding:4px 10px;font-size:12px}.goal-carousel-section{margin-top:var(--space-4,20px)}.goal-carousel-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.goal-progress-label{color:var(--muted,#9aa1ad);white-space:nowrap;font-size:12px}.duration-badge{color:var(--muted,#9aa1ad);white-space:nowrap;border:1px solid #2a2e37;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px}.chat-thread{flex-direction:column;gap:8px;margin:16px 0;display:flex}.chat-bubble{white-space:pre-wrap;border-radius:14px;max-width:85%;padding:10px 14px;font-size:14px;line-height:1.45}.chat-user{background:var(--accent,#4f7cff);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-assistant{background:var(--surface,#1c1f26);border-bottom-left-radius:4px;align-self:flex-start}.goal-description-preview{background:var(--surface,#1c1f26);border-radius:12px;margin:12px 0;padding:14px}.goal-carousel-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:70%;display:-webkit-box;overflow:hidden}
