body.hub-home{background:var(--bg-soft);min-height:100vh}.hub-top{position:sticky;top:0;z-index:50;display:flex;align-items:flex-start;justify-content:space-between;max-width:var(--lesson-prose-max,62rem);margin:0 auto;padding:16px 20px;background:color-mix(in srgb,var(--bg-soft) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.hub-top .hub-tools{margin-top:1px;flex-shrink:0}.hub-mark{font-size:.875rem;font-weight:600;letter-spacing:-.025em;color:var(--text)}.hub-brand{display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:12px}.hub-tagline{margin:0;font-size:.75rem;font-weight:400;line-height:1.35;color:var(--text-3,var(--muted));letter-spacing:-.01em;max-width:28rem}.hub-tools{display:inline-flex;align-items:center;padding:3px;border-radius:8px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}.hub-tool{appearance:none;border:none;background:none;padding:5px 10px;font:inherit;font-size:.75rem;font-weight:500;color:var(--text-2);cursor:pointer;border-radius:5px;transition:color .12s,background .12s;white-space:nowrap}.hub-tool:hover{color:var(--text);background:var(--surface-2)}.hub-tool:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hub-tool-div{width:1px;height:14px;background:var(--border);flex-shrink:0}.hub-main{max-width:var(--lesson-prose-max,62rem);margin:0 auto;padding:8px 20px 64px}.hub-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.hub-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);cursor:text}.hub-search-icon{flex-shrink:0;color:var(--muted);opacity:.7}.hub-search input{flex:1 1;border:none;background:none;font:inherit;font-size:.9375rem;color:var(--text);outline:none;min-width:0}.hub-search input::placeholder{color:var(--muted)}.hub-search:focus-within .hub-search-icon{color:var(--accent);opacity:1}.hub-list{display:flex;flex-direction:column;padding:6px}.hub-row{display:grid;grid-template-columns:1fr 1.25rem;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;text-decoration:none;color:inherit;transition:background .12s ease}.hub-row:hover{background:var(--surface-2)}.hub-row:active{background:var(--surface-3)}.hub-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hub-row-main{display:flex;flex-direction:column;gap:4px;min-width:0}.hub-row-tag{display:inline-flex;align-self:flex-start;padding:2px 7px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;border-radius:999px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);line-height:1.3}.hub-row-title{font-size:.9375rem;font-weight:500;letter-spacing:-.02em;line-height:1.45;color:var(--text)}.hub-row-desc{font-size:.8125rem;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.hub-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:2px}.hub-row-lessons{font-size:.75rem;font-weight:600;color:var(--text-3,var(--muted))}.hub-row-progress{font-size:.75rem;font-weight:600;color:var(--text-2);padding:1px 7px;border-radius:999px;border:1px solid var(--border);background:var(--surface);line-height:1.35}.hub-row-progress.is-idle{color:var(--muted)}.hub-row-progress.is-active{color:var(--accent-strong,var(--accent));border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:var(--accent-soft)}.hub-row-progress.is-done{color:#047857;border-color:color-mix(in srgb,#047857 28%,var(--border));background:color-mix(in srgb,#047857 10%,var(--surface))}:root[data-theme=dark] .hub-row-progress.is-done{color:#34d399;border-color:color-mix(in srgb,#34d399 30%,var(--border));background:color-mix(in srgb,#34d399 12%,var(--surface))}.hub-row-badges{display:flex;flex-wrap:wrap;gap:6px}.hub-badge{display:inline-block;padding:2px 8px;font-size:.6875rem;font-weight:700;letter-spacing:.03em;border-radius:999px}.hub-badge--ready{background:color-mix(in srgb,#059669 12%,var(--surface));color:#059669;border:1px solid color-mix(in srgb,#059669 28%,var(--border))}.hub-row-chevron{color:var(--muted);opacity:0;transform:translateX(-2px);transition:opacity .12s,transform .12s,color .12s}.hub-row:focus-visible .hub-row-chevron,.hub-row:hover .hub-row-chevron{opacity:.55;transform:translateX(0)}.hub-row:hover .hub-row-chevron{color:var(--accent);opacity:.75}.hub-row--ethics{margin:4px 6px 6px;border-top:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface))}.hub-row--ethics .hub-row-title{font-size:.875rem;font-weight:600;color:var(--accent)}.hub-row-icon{font-size:.875rem;line-height:1;flex-shrink:0}.hub-empty{display:none;padding:32px 20px;text-align:center;font-size:.875rem;color:var(--muted);border-top:1px solid var(--border)}.hub-empty.is-visible{display:block}body.projector.hub-home .hub-row-title{font-size:1.2rem!important}body.projector.hub-home .hub-row-desc,body.projector.hub-home .hub-tagline{font-size:1rem!important}body.projector.hub-home .hub-row{padding:14px 12px}body.projector.hub-home .hub-search input{font-size:1.1rem!important}@media (max-width:640px){.hub-top{align-items:flex-start;gap:10px}.hub-tagline{max-width:none}}@media (max-width:480px){.hub-main,.hub-top{padding-left:16px;padding-right:16px}.hub-row-chevron{opacity:.35}.hub-row{align-items:flex-start;padding-top:12px;padding-bottom:12px}.hub-row-chevron{margin-top:4px}}@media (prefers-reduced-motion:reduce){.hub-row,.hub-row-chevron,.hub-tool{transition:none}}body.hub-asset{background:var(--bg-soft);min-height:100vh}body.hub-asset .hub-top{width:100%;max-width:none;margin:0;padding:14px 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);box-sizing:border-box}body.hub-asset .hub-top-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:var(--lesson-prose-max,62rem);margin:0 auto;width:100%}body.hub-asset .hub-back{flex-shrink:0;min-width:0}body.hub-asset .hub-tools{flex-shrink:0}.hub-back{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem;font-weight:500;color:var(--text-2);text-decoration:none;padding:4px 0;border-radius:4px;transition:color .12s}.hub-back:hover{color:var(--text)}.hub-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hub-back svg{flex-shrink:0;opacity:.65}.hub-asset-main{max-width:var(--lesson-prose-max,62rem);margin:0 auto;padding:20px 20px 32px}body.hub-asset .asset-page{max-width:none;margin:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 24px 32px;box-shadow:var(--shadow-sm)}.hub-asset-foot{margin-top:20px;padding-bottom:24px;text-align:center}.hub-asset-foot .hub-back{justify-content:center}body.projector.hub-asset .asset-header h1{font-size:1.75rem!important}body.projector.hub-asset .ethics-title{font-size:1.45rem!important}@media (max-width:480px){body.hub-asset .hub-asset-main,body.hub-asset .hub-top{padding-left:16px;padding-right:16px}body.hub-asset .asset-page{padding:20px 16px 24px}body.hub-asset .hub-top-inner{flex-wrap:wrap;row-gap:8px}}