:root{--bg: oklch(.12 0 0);--bg-elev: oklch(.14 0 0);--surface: oklch(.16 0 0);--surface-2: oklch(.2 0 0);--surface-3: oklch(.24 0 0);--border: oklch(1 0 0 / 10%);--border-strong: oklch(1 0 0 / 18%);--fg: oklch(.985 0 0);--fg-dim: oklch(.68 0 0);--fg-faint: oklch(.52 0 0);--primary: oklch(.637 .237 25.331);--primary-hover: oklch(.69 .2 25.331);--primary-soft: oklch(.637 .237 25.331 / 12%);--accent: oklch(.752 .137 196);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--radius: 14px;--radius-sm: 9px;--radius-pill: 999px;--shadow: 0 12px 40px rgba(0, 0, 0, .45);--shadow-sm: 0 2px 10px rgba(0, 0, 0, .3);--sidebar-w: 268px}[data-theme=light]{--bg: #fbfbfc;--bg-elev: #ffffff;--surface: #ffffff;--surface-2: #f1f3f5;--surface-3: #e6e8ec;--border: rgba(10, 11, 13, .1);--border-strong: rgba(10, 11, 13, .18);--fg: #0a0b0d;--fg-dim: #5b626e;--fg-faint: #838b98;--primary: #e5333e;--primary-hover: #c92b35;--primary-soft: rgba(229, 51, 62, .1);--accent: #0e9a9c;--shadow: 0 12px 40px rgba(10, 11, 13, .1);--shadow-sm: 0 1px 3px rgba(10, 11, 13, .08);color-scheme:light}[data-theme=light] body{background:radial-gradient(900px 500px at 78% -8%,rgba(229,51,62,.06),transparent 60%),var(--bg)}[data-theme=light] .targets-bg{opacity:.45;filter:invert(1) hue-rotate(180deg)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1100px 600px at 82% -8%,oklch(.637 .237 25.331 / 7%),transparent 60%),var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:15px;line-height:1.6;letter-spacing:-.006em;-webkit-font-smoothing:antialiased}::selection{background:var(--primary-soft)}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--surface-2)}.mono{font-family:var(--font-mono)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--bg-elev),var(--bg));border-right:1px solid var(--border);padding:16px 12px}.brand{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:6px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s}.brand:hover{background:var(--surface)}.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--fg);flex-shrink:0}.brand-name{font-weight:700;font-size:15px;letter-spacing:-.01em}.brand-sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--fg-faint);text-transform:uppercase}.side-section{padding:10px 8px 6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint)}.side-scroll{flex:1;min-height:0;overflow-y:auto;margin:2px -4px;padding:0 4px}.side-foot{border-top:1px solid var(--border);padding-top:12px;margin-top:8px;display:flex;flex-direction:column;gap:10px}.nav-item{display:block;width:100%;text-align:left;border:none;background:none;color:var(--fg-dim);padding:8px 10px;border-radius:var(--radius-sm);font-size:13.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s,color .12s}.nav-item:hover{background:var(--surface);color:var(--fg)}.nav-item.active{background:var(--primary-soft);color:var(--fg);box-shadow:inset 2px 0 0 var(--primary)}.nav-group-wrap{margin-top:2px}.nav-group{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;border:none;background:none;color:var(--fg);font:inherit;font-size:12.5px;font-weight:600;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s}.nav-group:hover{background:var(--surface)}.nav-group.has-active .nav-group-title{color:var(--primary)}.nav-group-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-group .chev{color:var(--fg-faint);font-size:10px;flex-shrink:0}.nav-sub{padding-left:20px;font-size:13px;position:relative}.nav-sub:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:1px;background:var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-weight:600;font-size:14px;border-radius:var(--radius-sm);padding:9px 14px;cursor:pointer;border:1px solid transparent;transition:background .14s,border-color .14s,transform .06s,opacity .14s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{background:transparent;color:var(--fg-dim);border-color:var(--border)}.btn-ghost:hover{color:var(--fg);border-color:var(--border-strong);background:var(--surface)}.btn-block{width:100%}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 22px;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar-title{min-width:0}.topbar-title h2{margin:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title .crumb{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint)}.topbar-right{display:flex;align-items:center;gap:12px}.credits{font-family:var(--font-mono);font-size:12.5px;color:var(--fg-dim);display:flex;align-items:center;gap:6px}.credits b{color:var(--fg);font-weight:600}.credits .dot{width:6px;height:6px;border-radius:50%;background:var(--fg-dim)}.credits-turns{color:var(--fg-faint);font-size:11px;margin-left:2px}.credits.low .dot{background:#d9a566;box-shadow:0 0 8px #d9a566}.credits.low b{color:#e2b877}.credits.empty .dot{background:var(--primary);box-shadow:0 0 8px var(--primary);animation:labpulse 1.6s ease-in-out infinite}.credits.empty b{color:var(--primary)}.lab-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:5px 12px}.lab-pill .mono{color:var(--fg)}.lab-pill-name{font-family:var(--font-sans);font-weight:600;color:var(--fg)}.lab-pill-time{color:var(--fg-dim)}.lab-pill-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:labpulse 1.6s ease-in-out infinite}.lab-pill-dot.starting{background:#d9a566;box-shadow:0 0 8px #d9a566}.lab-pill-open{color:var(--primary);margin-left:2px}@keyframes labpulse{50%{opacity:.35}}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:13vh}.palette{width:min(560px,92vw);background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;animation:pop .14s ease}.palette-input{width:100%;background:none;border:none;border-bottom:1px solid var(--border);color:var(--fg);font:inherit;font-size:16px;padding:15px 18px;outline:none}.palette-input::placeholder{color:var(--fg-faint)}.palette-list{max-height:46vh;overflow-y:auto;padding:6px}.palette-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:none;color:var(--fg);font:inherit;font-size:14px;padding:10px 12px;border-radius:8px;cursor:pointer}.palette-item.sel{background:var(--primary-soft);box-shadow:inset 2px 0 0 var(--primary)}.palette-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-hint{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.1em;flex-shrink:0}.palette-empty{color:var(--fg-faint);padding:16px;text-align:center;font-size:14px}.palette-overlay{animation:fadeIn .12s ease}.palette-overlay.closing{animation:fadeOut .14s ease forwards}.palette-overlay.closing .palette{animation:popOut .14s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes popOut{to{transform:scale(.96);opacity:0}}.lab-pill{animation:pop .2s ease}.thinking{display:inline-flex;gap:5px;align-items:center;height:18px}.thinking i{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:think 1s ease-in-out infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}@keyframes think{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.connector{display:inline-flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 10px 6px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--fg-dim);cursor:pointer;transition:color .14s,border-color .14s,background .14s}.connector:hover{color:var(--fg);border-color:var(--border-strong)}.connector-icon{font-size:13px;line-height:1}.connector .switch{width:30px;height:17px;border-radius:999px;background:var(--surface-3);position:relative;transition:background .18s;flex-shrink:0}.connector .switch i{position:absolute;top:2.5px;left:2.5px;width:12px;height:12px;border-radius:50%;background:var(--fg-faint);transition:transform .18s ease,background .18s}.connector.on{color:var(--fg);border-color:color-mix(in oklab,var(--primary) 45%,var(--border));background:var(--primary-soft)}.connector.on .connector-icon{color:var(--primary)}.connector.on .switch{background:var(--primary)}.connector.on .switch i{transform:translate(13px);background:#fff}.seg{display:inline-flex;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill)}.seg button{border:none;background:none;color:var(--fg-dim);font:inherit;font-size:12.5px;font-weight:600;padding:5px 13px;border-radius:var(--radius-pill);cursor:pointer;transition:background .14s,color .14s}.seg button.on{background:var(--primary);color:#fff}.chat{flex:1;min-height:0;overflow-y:auto}.chat-inner{max-width:780px;margin:0 auto;padding:26px 22px 8px;display:flex;flex-direction:column;gap:22px}.msg{display:flex;flex-direction:column}.msg.user{align-items:flex-end}.msg.assistant{align-items:stretch}.bubble-user{background:var(--primary);color:#fff;border-radius:16px 16px 4px;padding:11px 15px;max-width:80%;white-space:pre-wrap;box-shadow:var(--shadow-sm)}.assistant-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.assistant-head .av{width:24px;height:24px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--fg-dim)}.assistant-head .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--fg-faint);text-transform:uppercase}.bubble-assistant{color:var(--fg);font-size:15px}.caret{display:inline-block;width:8px;height:16px;background:var(--primary);margin-left:2px;border-radius:1px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{50%{opacity:0}}.toolchip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);margin:4px 0}.toolchip.ok{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 40%,transparent)}.toolchip.deny{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 40%,transparent)}.empty{max-width:620px;margin:8vh auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.empty .eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)}.empty h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:6px 0 2px}.empty p{color:var(--fg-dim);margin:0 0 18px}.suggests{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.suggest{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;width:230px;cursor:pointer;transition:border-color .14s,background .14s,transform .06s}.suggest:hover{border-color:var(--border-strong);background:var(--surface-2);transform:translateY(-1px)}.suggest b{display:block;font-size:13.5px;margin-bottom:3px}.suggest span{color:var(--fg-dim);font-size:12.5px}.chat-col.docked .empty{margin-top:5vh}.chat-col.docked .empty h1{font-size:22px}.chat-col.docked .empty .eyebrow{white-space:normal;max-width:92%}.chat-col.docked .suggest{width:100%}.composer-wrap{border-top:1px solid var(--border);background:color-mix(in oklab,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.composer{max-width:780px;margin:0 auto;padding:14px 22px 20px}.composer-box{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);padding:10px 10px 8px 14px;box-shadow:var(--shadow-sm);transition:border-color .14s,box-shadow .14s}.composer-box:focus-within{border-color:color-mix(in oklab,var(--primary) 55%,var(--border));box-shadow:0 0 0 3px var(--primary-soft)}.composer-box.is-voice{border-color:color-mix(in oklab,var(--primary) 40%,var(--border))}.composer textarea{resize:none;background:transparent;color:var(--fg);border:0;padding:4px 2px;font:inherit;font-size:15px;line-height:1.5;max-height:200px}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--fg-faint)}.composer-bar{display:flex;align-items:center;gap:4px;min-height:34px}.cb-status{flex:1;min-width:0;font-size:12.5px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}.cb-btn{width:34px;height:34px;flex-shrink:0;padding:0;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--fg-dim);cursor:pointer;transition:color .14s,background .14s}.cb-btn:hover:not(:disabled){color:var(--fg);background:var(--surface-2)}.cb-btn:disabled{opacity:.4;cursor:default}.cb-btn:focus-visible,.send-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-soft)}.cb-voice.on{color:var(--primary);background:var(--primary-soft)}.send-btn{width:34px;height:34px;flex-shrink:0;padding:0;border:0;border-radius:999px;margin-left:2px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;cursor:pointer;transition:background .14s,opacity .14s,transform .06s}.send-btn:hover:not(:disabled){background:var(--primary-hover)}.send-btn:active:not(:disabled){transform:scale(.94)}.send-btn:disabled{background:var(--surface-2);color:var(--fg-faint);cursor:default}.send-btn.is-stop{background:var(--fg);color:var(--bg)}.send-btn.is-stop:hover{background:var(--fg-dim)}.labs-row{display:flex;flex-wrap:wrap;gap:12px;max-width:780px;margin:0 auto;padding:14px 22px 0}.lab-card{flex:1 1 240px;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:9px}.lab-card .row{display:flex;align-items:center;justify-content:space-between;gap:8px}.lab-card .name{font-family:var(--font-mono);font-size:12.5px;color:var(--fg)}.lab-card .status{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim)}.lab-card .status.running{color:var(--accent)}.lab-card .status.failed{color:var(--primary)}.boot-hint{color:var(--fg-faint)}.lab-actions{display:flex;gap:8px;flex-wrap:wrap}.flag-row{display:flex;gap:8px;max-height:0;opacity:0;overflow:hidden;margin-top:0;transition:max-height .18s ease,opacity .18s ease,margin-top .18s ease}.lab-card:hover .flag-row,.flag-row:focus-within,.flag-row.has-text{max-height:56px;opacity:1;margin-top:8px}@media(hover:none){.flag-row{max-height:56px;opacity:1;margin-top:8px}}.flag-row input{flex:1;background:var(--bg-elev);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-family:var(--font-mono);font-size:12px}.flag-row input:focus{outline:none;border-color:var(--border-strong)}.note{font-size:12px;color:var(--fg-dim)}.note.ok{color:var(--accent)}.gate{min-height:100vh;display:grid;place-items:center;text-align:center}.gate-inner{width:min(520px,90vw)}.gate .eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)}.gate h1{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:14px 0 8px}.gate p{color:var(--fg-dim)}.gate a{color:var(--primary)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 10px;line-height:1.68}.md h1,.md h2,.md h3{font-weight:700;line-height:1.3;margin:16px 0 8px;letter-spacing:-.01em}.md h1{font-size:20px}.md h2{font-size:17px}.md h3{font-size:15px}.md strong{color:var(--fg);font-weight:700}.md em{color:var(--fg-dim)}.md a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:3px}.md a.cite{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:3px;vertical-align:2px;font:600 10.5px/1 var(--font-mono);color:var(--fg-dim);background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;text-decoration:none;transition:color .15s,border-color .15s}.md a.cite:hover,.md a.cite:focus-visible{color:var(--fg);border-color:var(--primary)}.md ul,.md ol{margin:0 0 10px;padding-left:20px}.md li{margin:3px 0;line-height:1.6}.md li::marker{color:var(--primary)}.md blockquote{margin:0 0 10px;padding:2px 14px;border-left:3px solid var(--primary);color:var(--fg-dim)}.md hr{border:0;border-top:1px solid var(--border);margin:14px 0}.md code{font-family:var(--font-mono);font-size:12.5px;background:var(--bg-elev);border:1px solid var(--border);border-radius:5px;padding:1px 5px;color:var(--fg)}.md pre{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:13px 15px;overflow-x:auto;margin:0 0 12px}.md pre code{background:none;border:none;padding:0;color:var(--fg);font-size:12.5px}.md table{border-collapse:collapse;width:100%;font-size:13px;margin:0 0 10px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:6px 10px;text-align:left}.md th{background:var(--bg-elev)}.codewrap{position:relative}.copy-btn{position:absolute;top:8px;right:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--fg-dim);font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .14s,color .14s}.codewrap:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--fg);border-color:var(--border-strong)}.msg-copy,.msg-report{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--fg-dim);cursor:pointer;border-radius:8px;opacity:0;transition:opacity .14s,color .14s,background .14s}.msg-copy{margin-left:auto}.msg-copy.msg-listen{margin-left:0}.msg.assistant:hover .msg-copy{opacity:1}.msg-copy:hover{color:var(--fg);background:var(--surface)}.msg-report-wrap{position:relative;display:inline-flex}.msg.assistant:hover .msg-report,.msg-report.on{opacity:1}.msg-report:hover,.msg-report.on{color:var(--primary);background:var(--surface)}.msg-report-thanks{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-family:var(--font-mono);font-size:11px}.report-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:min(340px,calc(100vw - 48px));padding:12px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);animation:report-pop-in .14s ease-out}@keyframes report-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.report-title{font-size:12.5px;font-weight:600;color:var(--fg);margin-bottom:8px}.report-cats{display:flex;flex-wrap:wrap;gap:6px}.report-chip{font-family:var(--font-sans);font-size:11.5px;line-height:1.3;text-align:left;padding:5px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--fg-dim);cursor:pointer;transition:border-color .14s,color .14s,background .14s}.report-chip:hover{color:var(--fg);border-color:var(--border-strong)}.report-chip.on{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.report-comment{width:100%;margin-top:9px;padding:8px;font-family:var(--font-sans);font-size:12px;color:var(--fg);background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;resize:vertical}.report-comment:focus{outline:none;border-color:var(--primary)}.report-actions{display:flex;align-items:center;gap:10px;margin-top:9px}.report-note{flex:1;font-size:10.5px;color:var(--fg-faint);line-height:1.35}.report-send{padding:5px 14px;font-size:12px}.report-done{font-size:12.5px;color:var(--accent);padding:4px 2px}@media(hover:none){.msg-copy,.msg-report{opacity:.75}}.kart-card{margin-top:22px;max-width:460px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.kart-card.earned{border-color:var(--accent)}.kart-head{display:flex;align-items:center;gap:10px}.kart-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;padding:3px 7px;border-radius:5px;color:var(--primary);background:var(--primary-soft)}.kart-card.earned .kart-badge{color:var(--accent);background:#26c6c924}.kart-title{font-size:13px;font-weight:600;color:var(--fg)}.kart-count{margin-left:auto;font-size:12px;color:var(--fg-dim)}.kart-track{margin-top:10px;height:4px;border-radius:999px;background:var(--surface-3);overflow:hidden}.kart-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .5s cubic-bezier(.2,.8,.2,1)}.kart-card.earned .kart-fill{background:var(--accent)}.kart-sub{margin:8px 0 0;font-size:12px;color:var(--fg-dim)}.md .hljs-keyword,.md .hljs-selector-tag,.md .hljs-literal,.md .hljs-built_in,.md .hljs-doctag{color:#ff6b73}.md .hljs-string,.md .hljs-attr,.md .hljs-regexp,.md .hljs-addition,.md .hljs-selector-attr{color:var(--accent)}.md .hljs-comment,.md .hljs-quote{color:var(--fg-faint);font-style:italic}.md .hljs-number,.md .hljs-symbol,.md .hljs-meta .hljs-string{color:#d9a566}.md .hljs-title,.md .hljs-name,.md .hljs-section,.md .hljs-selector-id{color:#e8eaed;font-weight:600}.md .hljs-variable,.md .hljs-template-variable,.md .hljs-params{color:#c9d1d9}.md .hljs-meta,.md .hljs-tag,.md .hljs-deletion{color:var(--fg-dim)}.md .hljs-emphasis{font-style:italic}.md .hljs-strong{font-weight:600}.workspace{flex:1;min-height:0;display:flex;position:relative}.chat-col{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1}.workspace.split .chat-col.docked{flex:0 0 440px;border-left:1px solid var(--border)}.workspace.tutor-full .chat-col.docked{flex:1}.tutor-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);min-height:44px}.tutor-header-left{display:flex;align-items:center}.tutor-lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}.icon-btn{background:none;border:none;color:var(--fg-faint);font-size:15px;cursor:pointer;padding:4px 8px;border-radius:8px;line-height:1}.icon-btn:hover{color:var(--fg);background:var(--surface)}.text-btn{background:none;border:none;color:var(--fg-faint);font:inherit;font-size:12px;cursor:pointer;padding:5px 9px;border-radius:8px}.text-btn:hover{color:var(--fg);background:var(--surface)}.lesson-head-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutor-fab{position:absolute;bottom:26px;right:26px;display:inline-flex;align-items:center;gap:9px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-pill);padding:12px 20px;font:inherit;font-weight:600;font-size:14px;cursor:pointer;box-shadow:0 10px 30px #fb2c3666;transition:transform .1s,background .14s}.tutor-fab:hover{background:var(--primary-hover);transform:translateY(-1px)}.fab-dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fffc}.lesson-pane{flex:1;min-width:0;overflow-y:auto;padding:0 40px 90px;position:relative}.lesson-reading{max-width:760px;margin:0 auto;padding-top:30px}.reading-progress{position:sticky;top:0;left:0;height:2px;background:transparent;z-index:5}.reading-progress-bar{height:100%;background:var(--primary);transition:width .08s linear;box-shadow:0 0 8px var(--primary)}.sk{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 40%,var(--surface) 60%);background-size:300% 100%;animation:sk 1.4s ease-in-out infinite;border-radius:8px}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes slideInRight{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@keyframes fadeUp{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}@keyframes pop{0%{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:no-preference){.chat-col.docked{animation:slideInRight .22s ease}.tutor-fab{animation:pop .2s ease}.curriculum,.lesson-reading{animation:fadeUp .24s ease}.msg{animation:fadeUp .2s ease}.cur-card{animation:fadeUp .34s ease backwards}.cur-level,.suggest{animation:fadeUp .3s ease backwards}}.lesson-head .crumb{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint)}.lesson-head h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:8px 0 14px;line-height:1.15}.lesson-block{margin-top:28px}.lesson-block-title{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:12px}.takeaways{margin:0;padding-left:18px}.takeaways li{margin:6px 0;color:var(--fg-dim)}.takeaways li::marker{color:var(--primary)}.labs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.lesson-prose{color:var(--fg-dim);font-size:15.5px;line-height:1.75}.lesson-prose>:first-child{margin-top:0}.lesson-prose h1,.lesson-prose h2,.lesson-prose h3,.lesson-prose h4{color:var(--fg);font-weight:700;letter-spacing:-.01em;margin:24px 0 10px;line-height:1.3}.lesson-prose h1{font-size:21px}.lesson-prose h2{font-size:18px}.lesson-prose h3{font-size:15.5px}.lesson-prose p{margin:0 0 14px}.lesson-prose strong{color:var(--fg);font-weight:600}.lesson-prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:3px}.lesson-prose ul,.lesson-prose ol{margin:0 0 14px;padding-left:22px}.lesson-prose li{margin:5px 0}.lesson-prose li::marker{color:var(--primary)}.lesson-prose code{font-family:var(--font-mono);font-size:13px;background:var(--bg-elev);border:1px solid var(--border);border-radius:5px;padding:1px 5px;color:var(--fg)}.lesson-prose pre{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow-x:auto;margin:0 0 14px}.lesson-prose pre code{background:none;border:none;padding:0;color:var(--fg)}.lesson-prose blockquote{border-left:3px solid var(--primary);margin:0 0 14px;padding:2px 14px;color:var(--fg-dim)}.lesson-prose img{max-width:100%;border-radius:8px}.katas{margin-top:4px}.kata-rail{display:flex;align-items:center;gap:7px;margin:0 0 26px}.rail-dot{width:22px;height:3px;border-radius:2px;background:var(--border-strong);transition:background .25s ease}.rail-dot.is-done{background:var(--primary)}.rail-count{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--fg-faint);margin-left:4px}.rail-count.is-complete{color:var(--primary)}.lesson-nav{display:flex;gap:12px;justify-content:space-between;align-items:stretch;margin:34px 0 8px;padding-top:22px;border-top:1px solid var(--border)}.lesson-nav-btn{display:flex;flex-direction:column;gap:3px;flex:1 1 0;min-width:0;padding:12px 14px;text-align:left;border:1px solid var(--border);border-radius:10px;background:transparent;cursor:pointer;transition:border-color .15s,background .15s}.lesson-nav-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.lesson-nav-btn.next{text-align:right}.lesson-nav-dir{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint)}.lesson-nav-title{font-size:14px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.lesson-nav{flex-direction:column}.lesson-nav-btn.next{text-align:left}}.kata{padding:0 0 30px;border-bottom:1px solid var(--border);margin-bottom:30px}.kata:last-child{border-bottom:none;margin-bottom:8px}.kata-num{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)}.kata-title{font-size:19px;font-weight:700;letter-spacing:-.015em;color:var(--fg);margin:7px 0 16px;line-height:1.25}.rhyme{display:flex;flex-direction:column;gap:3px;margin:0 0 18px;padding:13px 16px;border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--primary-soft);color:var(--fg);font-size:15.5px;line-height:1.5;font-weight:500;font-style:italic;letter-spacing:-.005em}.kata-points{margin:0 0 18px;padding-left:18px}.kata-points li{margin:7px 0;color:var(--fg-dim);font-size:14.5px;line-height:1.55}.kata-points li::marker{color:var(--primary)}.play{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);padding:15px 16px}.play-prompt{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--fg)}.play-note{margin:11px 0 0;font-size:12px;line-height:1.5;color:var(--fg-faint)}.play-muted{color:var(--fg-faint);font-size:12.5px}.play-input{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--fg);font-size:13.5px;padding:9px 11px;outline:none}.play-input:focus{border-color:var(--primary)}.tokens{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px;min-height:30px;align-items:flex-start}.tok{display:inline-flex;align-items:baseline;gap:4px;padding:3px 7px;border-radius:6px;background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);font-size:12.5px;color:var(--fg)}.tok-hit{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.tok-text{white-space:pre}.tok-sp{color:var(--fg-faint)}.tok-hit .tok-sp{color:inherit;opacity:.55}.tok-i{font-size:9px;color:var(--fg-faint)}.play-verdict-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}.play-count{color:var(--fg-faint)}.play-verdict.is-blocked{color:var(--primary)}.play-verdict.is-passed{color:var(--accent)}.play-nudge{margin-top:12px;width:100%;text-align:left;cursor:pointer;background:transparent;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--fg-dim);font-size:12.5px;padding:8px 11px;font-family:inherit}.play-nudge:hover{border-color:var(--primary);color:var(--fg)}.play-nudge .mono{font-family:var(--font-mono);color:var(--fg)}.play-payoff{margin:12px 0 0;font-size:13.5px;line-height:1.6;color:var(--fg);border-left:2px solid var(--accent);padding-left:11px}.doors{display:flex;flex-direction:column;gap:8px}.door{display:flex;align-items:flex-start;gap:10px;text-align:left;cursor:pointer;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;color:var(--fg-dim);font-size:13.5px;line-height:1.5;font-family:inherit;transition:border-color .15s ease,color .15s ease}.door:hover:not(:disabled){border-color:var(--border-strong);color:var(--fg)}.door:disabled{cursor:default}.door-key{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);padding-top:2px}.door-label{flex:1}.door-mark{font-size:13px}.door.is-right{border-color:var(--accent);color:var(--fg)}.door.is-right .door-mark{color:var(--accent)}.door.is-wrong{border-color:var(--primary)}.door.is-wrong .door-mark{color:var(--primary)}.play-why{margin-top:13px;display:flex;flex-direction:column;gap:9px}.play-why p{margin:0;font-size:13px;line-height:1.6;color:var(--fg-dim);padding-left:11px;border-left:2px solid var(--border-strong)}.play-why .why-right{border-left-color:var(--accent);color:var(--fg)}.play-why .why-wrong{border-left-color:var(--primary)}.order-slots{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:none}.slot{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);color:var(--fg-dim);font-size:13.5px;line-height:1.5}.slot.is-filled{border-style:solid;border-color:var(--accent);background:var(--surface);color:var(--fg)}.slot-n{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);padding-top:2px;min-width:12px}.slot.is-filled .slot-n{color:var(--accent)}.order-pool{display:flex;flex-wrap:wrap;gap:7px}.order-chip{cursor:pointer;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-dim);font-family:inherit;font-size:13px;line-height:1.45;padding:8px 11px;max-width:100%;transition:border-color .15s ease,color .15s ease}.order-chip:hover{border-color:var(--border-strong);color:var(--fg)}.order-chip.is-wrong{border-color:var(--primary);color:var(--primary);animation:orderNo .3s ease}@keyframes orderNo{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.order-chip.is-wrong{animation:none}}.order-hint{color:var(--primary)}.play-reveal-btn{cursor:pointer;background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--fg-dim);font-size:12.5px;padding:7px 15px;font-family:inherit}.play-reveal-btn:hover{border-color:var(--primary);color:var(--fg)}.reveal{font-size:13.5px;line-height:1.65;color:var(--fg-dim);border-left:2px solid var(--accent);padding-left:12px}.kata-ask{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;margin-top:16px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-family:inherit;transition:border-color .15s ease,background .15s ease}.kata-ask:hover{border-color:var(--primary);background:var(--primary-soft)}.kata-ask-lbl{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);white-space:nowrap}.kata-ask-q{flex:1;color:var(--fg);font-size:13.5px;line-height:1.45}.kata-ask-go{color:var(--fg-faint)}.kata-ask:hover .kata-ask-go{color:var(--primary)}.long-version-toggle{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.long-version .lesson-prose{margin-top:16px}@media(max-width:640px){.kata-ask{flex-wrap:wrap}.kata-ask-q{flex-basis:100%}}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.tour-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a8}.tour-catch{position:fixed;top:0;right:0;bottom:0;left:0;cursor:pointer}.tour-hole{position:fixed;border-radius:10px;pointer-events:none;box-shadow:0 0 0 9999px #000000a8,0 0 0 2px var(--primary),0 0 26px #fb2c3652;transition:top .24s ease,left .24s ease,width .24s ease,height .24s ease}.tour-card{position:fixed;z-index:1;box-sizing:border-box;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px 14px;outline:none;animation:tourIn .22s ease backwards}@keyframes tourIn{0%{opacity:0;transform:translateY(5px)}}.tour-card h3{margin:6px 0 8px;font-size:17px;font-weight:700;letter-spacing:-.015em;color:var(--fg);line-height:1.25}.tour-card p{margin:0;font-size:13.5px;line-height:1.6;color:var(--fg-dim)}.tour-step-of{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--primary)}.tour-card:before{content:"";position:absolute;width:10px;height:10px;background:var(--bg-elev);border-left:1px solid var(--border-strong);border-top:1px solid var(--border-strong);left:26px;display:none}.tour-card.arrow-up:before{display:block;top:-6px;transform:rotate(45deg)}.tour-card.arrow-down:before{display:block;bottom:-6px;transform:rotate(225deg)}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.tour-nav{display:flex;align-items:center;gap:8px;margin-left:auto}.tour-card button{cursor:pointer;font-family:inherit;font-size:12.5px;border-radius:var(--radius-pill);padding:7px 15px}.tour-skip{background:transparent;border:none;color:var(--fg-faint);padding-left:0}.tour-skip:hover{color:var(--fg-dim)}.tour-back{background:transparent;border:1px solid var(--border-strong);color:var(--fg-dim)}.tour-back:hover{border-color:var(--fg-faint);color:var(--fg)}.tour-next{background:var(--primary);border:1px solid var(--primary);color:#fff;font-weight:600}.tour-next:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.tour-dots{display:flex;gap:5px;margin-top:13px}.tour-dot{width:16px;height:3px;border-radius:2px;background:var(--border-strong)}.tour-dot.is-done{background:var(--fg-faint)}.tour-dot.is-here{background:var(--primary)}.cur-resume{display:inline-block;margin-top:18px}.cur-resume-done{margin-top:18px;color:var(--primary);font-size:14px}.cur-tour-link{margin-top:14px;color:var(--primary);font-size:13px}.cur-tour-link:hover{color:var(--primary-hover)}@media(prefers-reduced-motion:reduce){.tour-hole{transition:none}.tour-card{animation:none}}@media(max-width:520px){.tour-card{width:calc(100vw - 32px)!important;left:16px!important}}.side-email{font-size:11px;color:var(--fg-faint);padding:2px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-empty{color:var(--fg-faint);font-size:12.5px;padding:10px;line-height:1.5}.main-scroll{flex:1;min-height:0;overflow-y:auto}.curriculum{max-width:1080px;margin:0 auto;padding:44px 40px 90px}.cur-hero{position:relative;margin-bottom:8px}.targets-bg{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}.cur-hero-content{position:relative;z-index:1}.cur-hero .eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)}.empty-art{color:var(--fg-dim);margin-bottom:8px;opacity:.9}.cur-hero h1{font-size:40px;font-weight:800;letter-spacing:-.03em;margin:12px 0;line-height:1.08}.accent-red{color:var(--primary)}.cur-hero p{color:var(--fg-dim);font-size:16px;max-width:62ch;line-height:1.6}.cur-level{margin-top:42px}.cur-level-head{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}.cur-num{font-family:var(--font-mono);font-size:24px;font-weight:600;color:var(--primary);line-height:1}.cur-level-meta{flex:1;min-width:0}.cur-level-meta h2{font-size:20px;font-weight:700;margin:0;letter-spacing:-.01em}.cur-sub{color:var(--fg-dim);font-size:14px;margin:3px 0 0}.cur-checkpoint{color:var(--fg-faint);font-size:13px;margin:8px 0 0;max-width:62ch;line-height:1.5}.cur-checkpoint.is-met{color:var(--fg-dim)}.cur-checkpoint-lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);margin-right:8px}.cur-checkpoint.is-met .cur-checkpoint-lbl{color:var(--primary)}.cur-aud{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);border:1px solid var(--border);border-radius:var(--radius-pill);padding:5px 11px;white-space:nowrap}.cur-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px}.cur-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:9px;transition:border-color .14s,background .14s,transform .08s;min-height:118px}.cur-card:hover{border-color:var(--border-strong);background:var(--surface-2);transform:translateY(-2px)}.cur-card-idx{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.cur-card-title{font-size:15px;font-weight:600;color:var(--fg);line-height:1.35;flex:1}.cur-card-meta{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:11px;color:var(--fg-dim)}.cur-lab{display:inline-flex;align-items:center;gap:5px;color:var(--fg-dim)}.cur-lab-dot{width:5px;height:5px;border-radius:50%;background:var(--primary)}.cur-progress{display:flex;align-items:center;gap:10px;flex-shrink:0}.cur-progress-track{width:88px;height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.cur-progress-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .3s ease}.cur-progress-num{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);min-width:34px;text-align:right}.cur-card.done{border-color:var(--border)}.cur-card.done .cur-card-title{color:var(--fg-dim)}.cur-tick{color:var(--primary);font-weight:700}@media(max-width:980px){.workspace.split{flex-direction:column}.workspace.split .lesson-pane{flex:1 1 46%}.workspace.split .chat-col.docked{flex:1 1 54%;border-left:none;border-top:1px solid var(--border)}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{display:none}}.account-bar{position:fixed;top:12px;right:18px;z-index:60;display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-pill);background:color-mix(in oklab,var(--bg-elev) 88%,transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}.signout-btn{background:none;border:none;color:var(--fg-faint);font:inherit;font-size:12px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .12s,background .12s}.signout-btn:hover{color:var(--primary);background:var(--surface)}.topbar{padding-right:380px}@media(max-width:900px){.account-bar{top:8px;right:10px;gap:6px;padding:5px 6px}.account-bar .tier-badge{display:none}.signout-btn{font-size:11px;padding:3px 6px}.topbar{padding-right:260px}}.portal-nav-link{font-size:12.5px;color:var(--fg-dim);text-decoration:none;padding:4px 6px;border-radius:6px;background:none;border:none;font-family:inherit;text-align:left;cursor:pointer;transition:color .12s,background .12s}.portal-nav-link:hover{color:var(--fg);background:var(--surface)}.mode-go-back{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--fg-dim);padding:6px 13px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;transition:color .16s,border-color .16s,background .16s}.mode-go-back:hover:not(:disabled){color:var(--fg);border-color:var(--primary)}.mode-go-back:disabled{opacity:.6;cursor:default}.mode-go-back-arrow{transition:transform .16s ease}.mode-go-back:hover:not(:disabled) .mode-go-back-arrow{transform:translate(-3px)}@media(prefers-reduced-motion:reduce){.mode-go-back,.mode-go-back-arrow{transition:none}.mode-go-back:hover .mode-go-back-arrow{transform:none}}.portal-nav-row{display:flex;align-items:center;gap:8px}.tier-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:5px;color:var(--fg-dim);background:var(--surface-2);border:1px solid var(--border)}.tier-badge.tier-pro{color:var(--fg);border-color:var(--border-strong)}.tier-badge.tier-max{color:var(--accent);border-color:var(--accent);background:transparent}.theme-btn{margin-left:auto;background:none;border:1px solid var(--border);color:var(--fg-dim);width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:12px;line-height:1;transition:color .12s,border-color .12s}.theme-btn:hover{color:var(--fg);border-color:var(--border-strong)}.portal-upgrade{padding:7px 12px;font-size:13px}.portal-signout{color:var(--fg-faint)}.portal-signout:hover{color:var(--primary)}.lesson-gate{margin:24px 0;padding:28px 24px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.lesson-gate-badge{display:inline-block;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);background:var(--primary-soft);padding:4px 10px;border-radius:5px;margin-bottom:12px}.lesson-gate-copy{color:var(--fg-dim);font-size:14px;max-width:42ch;margin:0 auto 16px}.warp-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;width:100%;height:100%}.warp-layer{overflow:hidden;contain:strict}.warp-field,.warp-back{position:absolute;top:0;right:0;bottom:0;left:0}.warp-streak{position:absolute;left:50%;top:50%;width:100px;height:1px;margin-top:-.5px;transform-origin:0 50%;will-change:transform}.warp-streak.hub{height:2px;margin-top:-1px}.warp-dot{position:absolute;left:50%;top:50%;border-radius:50%;will-change:transform,opacity}.warp-in .app{animation:warp-arrive .75s cubic-bezier(.16,1,.3,1) both;will-change:transform,opacity}.warp-out .app{animation:warp-depart .55s cubic-bezier(.55,0,.9,.35) both;will-change:transform,opacity}@keyframes warp-depart{0%{opacity:1;transform:none}to{opacity:0;transform:scale(1.08)}}@keyframes warp-arrive{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.warp-canvas{display:none}.warp-in .app,.warp-out .app{animation:none!important}}.nav-row{position:relative;display:flex;align-items:center}.nav-row .nav-item{flex:1;min-width:0}.nav-more{flex-shrink:0;width:24px;height:24px;margin-right:2px;border:none;background:none;color:var(--fg-faint);font-size:15px;line-height:1;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,background .12s}.nav-row:hover .nav-more,.nav-row.menu-open .nav-more{opacity:1}.nav-more:hover{color:var(--fg);background:var(--surface-2)}@media(hover:none){.nav-more{opacity:1}}.nav-menu{position:absolute;top:100%;right:4px;z-index:50;min-width:148px;padding:4px;display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.nav-menu button{text-align:left;background:none;border:none;color:var(--fg-dim);font:inherit;font-size:13px;padding:7px 10px;border-radius:6px;cursor:pointer}.nav-menu button:hover{background:var(--surface-3);color:var(--fg)}.nav-menu button.danger:hover{color:var(--primary)}.nav-rename{flex:1;min-width:0;margin:1px 0;padding:7px 10px;font:inherit;font-size:13.5px;color:var(--fg);background:var(--bg-elev);border:1px solid var(--primary);border-radius:var(--radius-sm)}.nav-rename:focus{outline:none}.preview{min-height:100vh}.preview-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:color-mix(in oklab,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.preview-brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em}.preview-bar-actions{display:flex;align-items:center;gap:12px}.preview-bar-note{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.preview-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-fg, #fff);font-weight:600;font-size:14px;text-decoration:none;padding:9px 16px;border-radius:999px;transition:filter .16s}.preview-cta:hover{filter:brightness(1.08)}@media(prefers-reduced-motion:reduce){.preview-modal-scrim,.preview-modal{animation:none}}.shinobi-marquee{width:100%;max-width:620px;height:62px;overflow:hidden;margin-bottom:4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}.shinobi-marquee-inner{display:flex;width:max-content;animation:shinobi-scroll 38s linear infinite}.shinobi-track{display:flex;align-items:center;gap:34px;padding-right:34px}.shinobi-mark{display:grid;place-items:center;color:var(--fg);transition:opacity .4s ease}.shinobi-mark.lead{opacity:.72!important;animation:shinobi-pulse 6s ease-in-out infinite}@keyframes shinobi-scroll{to{transform:translate(-50%)}}@keyframes shinobi-pulse{0%,to{opacity:.5}50%{opacity:.9}}.empty:hover .shinobi-marquee-inner{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.shinobi-marquee-inner,.shinobi-mark.lead{animation:none}.shinobi-marquee{height:46px}}.assistant-head .av{transition:border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.assistant-head .av svg{transition:transform .25s cubic-bezier(.2,.8,.3,1)}.assistant-head:hover .av{color:var(--fg);border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 14%,transparent)}.assistant-head:hover .av svg{transform:scale(1.12) rotate(-4deg)}.assistant-head .av.thinking{border-color:color-mix(in oklab,var(--primary) 55%,var(--border));animation:av-breathe 1.6s ease-in-out infinite}.assistant-head .av.thinking:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(100deg,transparent 20%,color-mix(in oklab,var(--primary) 30%,transparent) 50%,transparent 80%);animation:av-scan 1.6s linear infinite}.assistant-head .av{position:relative;overflow:hidden}@keyframes av-breathe{0%,to{box-shadow:0 0 color-mix(in oklab,var(--primary) 26%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in oklab,var(--primary) 0%,transparent)}}@keyframes av-scan{0%{transform:translate(-120%)}to{transform:translate(120%)}}@media(prefers-reduced-motion:reduce){.assistant-head .av.thinking{animation:none}.assistant-head .av.thinking:after{animation:none;opacity:.35}.assistant-head:hover .av svg{transform:none}}.empty-critter{margin-top:-34px;margin-bottom:6px;display:grid;place-items:center}.assistant-head .av canvas{display:block}.cp-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:var(--primary-soft)}.cp-note{flex:1 1 240px;font-size:12.5px;color:var(--fg-dim);margin:0;line-height:1.5}.cp-grade{white-space:nowrap}.cp-verdict{flex:1 1 100%}.cp-verdict-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.cp-verdict.passed .cp-verdict-head{color:var(--primary)}.cp-verdict-body{margin:6px 0 0;font-size:14px;color:var(--fg);line-height:1.55}.cp-verdict-claim{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--border);font-size:13px;color:var(--fg-dim);line-height:1.5}.cur-checkpoint-btn{margin-left:14px;white-space:nowrap;font-size:13px}.cur-badge{margin-left:14px;padding:5px 11px;border:1px solid var(--primary);border-radius:999px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);white-space:nowrap}.cp-claim-preview{max-width:56ch;margin:4px auto 22px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;color:var(--fg-dim);font-size:13.5px;line-height:1.55;text-align:left}.cp-claim-lbl{display:block;margin-bottom:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--fg-faint)}.cp-begin{margin-top:4px}.account-bar--side{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;margin-top:10px;padding:10px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.account-bar--side .mode-go-back{grid-column:1 / -1;justify-content:center;width:100%}.account-bar--side .tier-badge{justify-self:start}.account-bar--side .theme-btn{margin-left:0}.account-bar--float{display:none}.topbar{padding-right:22px}@media(max-width:820px){.account-bar--float{display:flex}.topbar{padding-right:250px}.curriculum{padding-top:76px}}.targets-bg{opacity:.7;-webkit-mask-image:radial-gradient(ellipse 46% 70% at 50% 55%,transparent 55%,#000 100%);mask-image:radial-gradient(ellipse 46% 70% at 50% 55%,transparent 55%,#000 100%)}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border)}.side-section{letter-spacing:.16em}.curriculum{max-width:1120px;padding:56px 48px 110px}.cur-hero h1{font-size:clamp(30px,3.4vw,44px);font-weight:700;letter-spacing:-.035em;max-width:20ch}.cur-hero p{font-size:16.5px}.cur-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;letter-spacing:.16em}.cur-level{margin-top:64px}.cur-level-head{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:start;column-gap:24px;row-gap:10px;margin-bottom:22px;padding-bottom:20px}.cur-num{font-size:32px;font-weight:700;letter-spacing:-.04em;line-height:1;padding-top:2px}.cur-level-meta h2{font-size:22px;letter-spacing:-.02em;line-height:1.25}.cur-sub{margin-top:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.cur-checkpoint{font-size:14px;color:var(--fg-dim);margin-top:12px}.cur-progress{padding-top:6px}.cur-progress-track{width:72px;height:3px}.cur-level-head>.cur-badge,.cur-level-head>.cur-checkpoint-btn{grid-column:2 / -1;justify-self:start}.cur-grid{gap:10px}.cur-card{background:#ffffff06;border-radius:12px;padding:18px 18px 16px;min-height:128px}.cur-card:hover{background:#ffffff0d;border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}.cur-card-title{font-size:15.5px;letter-spacing:-.01em}.cur-card.done .cur-card-idx{color:var(--primary)}[data-theme=light] .cur-card{background:var(--surface)}[data-theme=light] .cur-card:hover{background:var(--surface-2)}@media(max-width:820px){.curriculum{padding-left:20px;padding-right:20px}.cur-level{margin-top:48px}.cur-level-head{grid-template-columns:minmax(0,1fr) auto;column-gap:16px}.cur-num{grid-column:1;font-size:22px}.cur-progress{grid-column:2;grid-row:1;padding-top:0;align-self:center}.cur-level-meta{grid-column:1 / -1}.cur-level-head>.cur-badge,.cur-level-head>.cur-checkpoint-btn{grid-column:1 / -1}}.rhyme{background:none;border-radius:0;padding:4px 0 4px 18px;font-size:17px;color:var(--fg)}.kata-title{font-size:21px;letter-spacing:-.02em}.kata{padding-bottom:40px;margin-bottom:40px}.suggests{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;max-width:720px;margin:0 auto}.suggest{width:auto;background:#ffffff06;padding:14px 16px}.suggest:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}[data-theme=light] .suggest{background:var(--surface)}.nav-row .nav-more{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.nav-row .nav-item{padding-right:30px}.suggest b{line-height:1.35;margin-bottom:6px}.suggest span{display:block;line-height:1.45}@media(max-width:820px){.cur-card{min-height:0}}.app-grid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(oklch(1 0 0 / 7%) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 460px);mask-image:linear-gradient(to bottom,#000,transparent 460px)}[data-theme=light] .app-grid{background-image:radial-gradient(oklch(0 0 0 / 9%) 1px,transparent 1.2px)}.side-nav{display:grid;gap:2px;margin:4px 0 18px}.side-link{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--fg-dim);font:inherit;font-size:13.5px;font-weight:500;text-align:left;cursor:pointer;transition:background .12s,color .12s}.side-link svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.side-link:hover{background:#ffffff0d;color:var(--fg)}.side-link.active{background:#ffffff14;color:var(--fg)}.side-kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.side-dev{font-size:11.5px;color:var(--fg-faint);padding:2px 4px;text-align:left}[data-theme=light] .side-link:hover{background:#0000000d}[data-theme=light] .side-link.active{background:#00000012}.curriculum.cx{max-width:1180px;padding:52px 48px 120px}.cx-head{margin-bottom:30px}.cx-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--primary)}.cx-kicker:before{content:"";width:14px;height:2px;border-radius:1px;background:var(--primary)}.cx-title{margin:12px 0 10px;font-size:clamp(30px,3.2vw,42px);font-weight:700;letter-spacing:-.035em;line-height:1.08}.cx-lede{margin:0;max-width:62ch;color:var(--fg-dim);font-size:15.5px;line-height:1.6}.cx-tour{margin-top:12px;color:var(--fg-dim);font-size:13px;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.cx-tour:hover{color:var(--fg);text-decoration-color:var(--primary)}.cx-now{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;margin-bottom:72px}.cx-next{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:236px;padding:26px 28px;text-align:left;cursor:pointer;border:1px solid color-mix(in oklab,var(--primary) 32%,var(--border));border-radius:18px;background:radial-gradient(120% 140% at 100% 0%,oklch(.637 .237 25.331 / 16%),transparent 55%),var(--surface);color:var(--fg);font:inherit;transition:border-color .16s,transform .16s,box-shadow .16s}.cx-next:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 18px 50px -24px #fb2c368c}.cx-next-done{cursor:default}.cx-next-done:hover{transform:none;box-shadow:none}.cx-next-lbl{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--primary)}.cx-next-lbl:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px #fb2c3638}.cx-next-level{margin-top:10px;font-size:13px;color:var(--fg-dim)}.cx-next-title{font-size:clamp(22px,2.2vw,28px);font-weight:700;letter-spacing:-.025em;line-height:1.15;max-width:22ch}.cx-next-meta{font-family:var(--font-mono);font-size:12px;color:var(--fg-faint)}.cx-next-go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--primary);color:#fff;font-size:14px;font-weight:600}.cx-next-go i{font-style:normal;transition:transform .16s}.cx-next:hover .cx-next-go i{transform:translate(3px)}.cx-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cx-stat{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:20px 22px;border:1px solid var(--border);border-radius:18px;background:#ffffff06}.cx-stat-wide{grid-column:1 / -1}.cx-stat-row{display:flex;align-items:baseline;justify-content:space-between}.cx-stat-num{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.cx-stat-num small{margin-left:3px;font-size:15px;font-weight:500;color:var(--fg-faint);letter-spacing:0}.cx-stat-pct{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim)}.cx-stat-lbl{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint)}.cx-stat.is-earned{border-color:color-mix(in oklab,var(--accent) 45%,var(--border))}.cx-bar{height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.cx-bar i{display:block;height:100%;min-width:6px;border-radius:inherit;background:var(--primary);box-shadow:0 0 14px #fb2c368c}[data-theme=light] .cx-stat{background:var(--surface)}[data-theme=light] .cx-bar{background:#00000014}.cx-path{display:grid;grid-template-columns:216px minmax(0,1fr);gap:56px;align-items:start}.cx-steps{position:sticky;top:24px;display:grid;gap:2px}.cx-step{display:grid;grid-template-columns:26px minmax(0,1fr);column-gap:10px;row-gap:7px;align-items:center;padding:9px 10px;border:0;border-radius:10px;background:none;color:var(--fg-dim);font:inherit;text-align:left;cursor:pointer;transition:background .12s,color .12s}.cx-step-num{grid-row:1 / 3;align-self:start;padding-top:1px;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);display:inline-flex}.cx-step-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cx-step-bar{height:2px;border-radius:2px;background:#ffffff14;overflow:hidden}.cx-step-bar i{display:block;height:100%;background:var(--primary)}.cx-step:hover{background:#ffffff0a;color:var(--fg)}.cx-step.is-active{background:#ffffff12;color:var(--fg)}.cx-step.is-active .cx-step-num,.cx-step.is-done .cx-step-num{color:var(--primary)}[data-theme=light] .cx-step:hover{background:#0000000a}[data-theme=light] .cx-step.is-active{background:#0000000f}[data-theme=light] .cx-step-bar{background:#00000014}.cx-levels{display:grid;gap:64px;min-width:0}.cx-level{scroll-margin-top:24px}.cx-level-head{display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;align-items:start}.cx-level-num{font-family:var(--font-mono);font-size:34px;font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--primary)}.cx-level-meta h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.2}.cx-level-sub{margin:4px 0 0;font-size:15px;color:var(--fg-dim)}.cx-level-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.cx-tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim);border:1px solid var(--border);border-radius:999px;padding:4px 10px;background:none}.cx-tag.is-passed{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 40%,var(--border))}.cx-tag.is-action{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 50%,var(--border));cursor:pointer;font-family:var(--font-mono)}.cx-tag.is-action:hover{background:var(--primary-soft)}.cx-outcome{margin:16px 0 0 84px;max-width:64ch;font-size:14px;line-height:1.6;color:var(--fg-dim)}.cx-outcome span{margin-right:8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint)}.cx-outcome.is-met span{color:var(--primary)}.cx-lessons{list-style:none;margin:20px 0 0 84px;padding:0;border-top:1px solid var(--border)}.cx-lesson{width:100%;display:grid;grid-template-columns:32px minmax(0,1fr) auto auto 16px;align-items:center;gap:14px;padding:14px 12px;border:0;border-bottom:1px solid var(--border);background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:background .12s}.cx-lessons li:last-child .cx-lesson{border-bottom:0}.cx-lesson:hover{background:#ffffff09}.cx-lesson-idx{display:inline-flex;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.cx-lesson-title{font-size:15px;font-weight:500;letter-spacing:-.005em}.cx-lesson-lab{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);border:1px solid color-mix(in oklab,var(--primary) 35%,transparent);border-radius:999px;padding:2px 8px}.cx-lesson-time{font-family:var(--font-mono);font-size:11.5px;color:var(--fg-faint);font-variant-numeric:tabular-nums}.cx-lesson-go{color:var(--fg-faint);opacity:0;transform:translate(-4px);transition:opacity .14s,transform .14s,color .14s}.cx-lesson:hover .cx-lesson-go{opacity:1;transform:none;color:var(--primary)}.cx-lesson.is-read .cx-lesson-idx{color:var(--primary)}.cx-lesson.is-read .cx-lesson-title{color:var(--fg-dim)}.cx-lesson.is-next{background:linear-gradient(90deg,oklch(.637 .237 25.331 / 9%),transparent 65%);box-shadow:inset 2px 0 0 var(--primary)}.cx-lesson.is-next .cx-lesson-idx{color:var(--primary)}.cx-lesson.is-next .cx-lesson-go{opacity:1;transform:none;color:var(--primary)}[data-theme=light] .cx-lesson:hover{background:#00000009}@media(max-width:980px){.cx-now{grid-template-columns:minmax(0,1fr)}.cx-path{grid-template-columns:minmax(0,1fr);gap:28px}.cx-steps{top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:10px 20px;background:color-mix(in oklab,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cx-steps::-webkit-scrollbar{display:none}.cx-step{flex:none;grid-template-columns:auto auto;row-gap:0;padding:7px 12px;border:1px solid var(--border);border-radius:999px}.cx-step-num{grid-row:auto;padding:0}.cx-step-bar{display:none}.cx-level{scroll-margin-top:72px}}@media(max-width:820px){.curriculum.cx{padding:76px 20px 90px}.cx-title{font-size:30px}.cx-next{min-height:0;padding:22px}.cx-level-head{grid-template-columns:44px minmax(0,1fr);gap:12px}.cx-level-num{font-size:24px}.cx-level-meta h2{font-size:20px}.cx-outcome,.cx-lessons{margin-left:0}.cx-lesson{grid-template-columns:26px minmax(0,1fr) auto;gap:10px;padding:13px 8px}.cx-lesson-lab,.cx-lesson-go{display:none}}.skmap .cx-now{margin-bottom:40px}.sk-skel{height:236px;border-radius:18px;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 40%,var(--surface) 60%);background-size:300% 100%;animation:sk 1.4s ease-in-out infinite}.sk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.sk-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:18px;align-items:start;padding:20px 22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.sk-row.is-practised{border-color:color-mix(in oklab,var(--accent) 35%,var(--border))}.sk-row.is-proven{border-color:color-mix(in oklab,var(--primary) 40%,var(--border))}.sk-row.is-locked{opacity:.55}.sk-idx{padding-top:3px;font-family:var(--font-mono);font-size:12px;color:var(--fg-faint)}.sk-row.is-proven .sk-idx{color:var(--primary)}.sk-main{min-width:0}.sk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sk-title{margin:0;font-size:17px;font-weight:650;letter-spacing:-.015em}.sk-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--fg-faint);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.sk-pill.is-learning{color:var(--fg-dim);border-color:var(--border-strong)}.sk-pill.is-practised{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 45%,transparent)}.sk-pill.is-proven{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 45%,transparent);background:var(--primary-soft)}.sk-claim{margin:6px 0 0;max-width:70ch;color:var(--fg-dim);font-size:13.5px;line-height:1.55}.sk-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:14px}.sk-meter-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.sk-meter-lbl{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint)}.sk-meter-num{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.sk-meter-num em{font-style:normal;color:var(--fg-faint)}.sk-bar{height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.sk-bar i{display:block;height:100%;border-radius:inherit;background:var(--fg-dim);transition:width .4s ease}.sk-row.is-practised .sk-bar i{background:var(--accent)}.sk-row.is-proven .sk-bar i{background:var(--primary)}.sk-score{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.sk-score small{margin-left:2px;font-size:13px;font-weight:500;color:var(--fg-faint)}.sk-row.is-not_started .sk-score{color:var(--fg-faint)}[data-theme=light] .sk-bar{background:#00000014}@media(max-width:820px){.sk-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}.sk-idx{display:none}.sk-meters{grid-template-columns:minmax(0,1fr);gap:10px}}.lab-review{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:4px;padding:0;border:0;background:none;color:var(--fg-dim);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.lab-review:hover,.lab-review:focus-visible{color:var(--fg);text-decoration-color:var(--primary)}.lab-coach{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}.lab-hints-done{margin-top:4px;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.lab-card.lab-row .lab-stuck{grid-column:1 / -1}.lab-stuck{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in oklab,var(--primary) 35%,var(--border));background:var(--primary-soft);animation:lab-stuck-in .24s ease-out}.lab-stuck p{margin:0;font-size:13px;line-height:1.5;color:var(--fg-dim)}.lab-stuck strong{color:var(--fg);font-weight:600}.lab-stuck-actions{display:flex;align-items:center;gap:8px}.lab-stuck-actions .btn-pill{padding:6px 13px;font-size:13px;white-space:nowrap}@media(max-width:520px){.lab-hint-name{display:none}}.lab-stuck-x{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:none;color:var(--fg-faint);cursor:pointer}.lab-stuck-x:hover{color:var(--fg);background:#ffffff0f}[data-theme=light] .lab-stuck-x:hover{background:#0000000d}@keyframes lab-stuck-in{0%{opacity:0;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.lab-stuck{animation:none}}.mode-edge{position:fixed;top:50%;right:0;z-index:60;display:flex;align-items:center;gap:9px;padding:15px 9px 15px 10px;border:1px solid var(--border);border-right:0;border-radius:12px 0 0 12px;background:color-mix(in oklab,var(--bg-elev) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--fg);font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.01em;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);box-shadow:0 10px 30px -12px #0000008c;cursor:pointer;transition:padding .16s ease,border-color .16s ease}.mode-edge:hover:not(:disabled),.mode-edge:focus-visible{padding-left:14px;border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}.mode-edge:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mode-edge:disabled{opacity:.7;cursor:default}.mode-edge-dot{width:6px;height:6px;border-radius:999px;background:var(--fg-dim)}[data-theme=light] .mode-edge{box-shadow:0 10px 30px -14px #0a0b0d40}@media(max-width:640px){.mode-edge{padding:12px 6px 12px 7px;font-size:11.5px}}@media(prefers-reduced-motion:reduce){.mode-edge{transition:none}}.side-badge{margin-left:auto;min-width:20px;padding:1px 6px;border-radius:999px;text-align:center;background:var(--primary);color:#fff;font-family:var(--font-mono);font-size:10.5px;font-weight:600;line-height:16px}.rv .cx-head{margin-bottom:30px}.rv-section+.rv-section{margin-top:34px}.rv-h{margin:0 0 12px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint)}.rv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rv-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.rv-row.is-due{border-color:color-mix(in oklab,var(--primary) 30%,var(--border))}.rv-main{display:flex;flex-direction:column;gap:4px;min-width:0}.rv-kind{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint)}.rv-row.is-due .rv-kind{color:var(--primary)}.rv-title{font-size:15.5px;font-weight:600;letter-spacing:-.01em}.rv-detail{max-width:70ch;font-size:13.5px;line-height:1.55;color:var(--fg-dim)}.rv-side{display:flex;align-items:center;gap:16px;flex:none}.rv-when{min-width:80px;text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--fg-dim)}.rv-rungs{display:inline-flex;gap:4px}.rv-rungs i{width:14px;height:4px;border-radius:999px;background:#ffffff1a}.rv-rungs i.on{background:var(--accent)}.rv-rungs i.at{background:var(--fg-dim)}[data-theme=light] .rv-rungs i{background:#0000001a}[data-theme=light] .rv-rungs i.on{background:var(--accent)}[data-theme=light] .rv-rungs i.at{background:var(--fg-dim)}.rv-none{margin:0;color:var(--fg-dim);font-size:14px}.rv-bar .rv-rate{display:inline-flex;gap:8px;margin-left:auto}.rv-bar .rv-rate .btn-pill{padding:6px 14px;font-size:13px}@media(max-width:720px){.rv-row{flex-direction:column;align-items:stretch;gap:12px}.rv-side{justify-content:space-between}}.fd .cx-head{margin-bottom:28px}.fd-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:18px;align-items:start}.fd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;position:sticky;top:16px}.fd-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:12px 14px;text-align:left;border:1px solid transparent;border-radius:12px;background:none;color:var(--fg);font:inherit;cursor:pointer;transition:background .12s,border-color .12s}.fd-item:hover{background:#ffffff0a}.fd-item.is-active{border-color:var(--border);background:var(--surface);box-shadow:inset 2px 0 0 var(--primary)}.fd-item.is-writing{border:1px dashed var(--border-strong);cursor:default}.fd-item-title{font-size:14px;font-weight:600;line-height:1.35}.fd-item-meta{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.fd-doc{min-width:0;padding:22px 26px 28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.fd-doc.sk-skel{height:420px}.fd-doc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--border)}.fd-doc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--fg-dim)}.fd-pill{padding:2px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.fd-pill.is-hinted{color:var(--fg-dim);border-color:var(--border-strong)}.fd-actions{display:flex;align-items:center;gap:6px}.fd-actions .btn-pill{padding:6px 14px;font-size:13px}.fd-icon{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:999px;background:none;color:var(--fg-dim);cursor:pointer;transition:color .12s,border-color .12s}.fd-icon:hover,.fd-icon:focus-visible{color:var(--fg);border-color:var(--border-strong)}.fd-icon.is-danger:hover{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 45%,transparent)}.fd-body{max-width:70ch;font-size:15px}.fd-note{margin:-8px 0 14px;font-size:12.5px;color:var(--fg-dim)}.fd-error{margin:0 0 16px;color:var(--primary);font-size:14px}.fd-edit{display:flex;flex-direction:column;gap:8px}.fd-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint)}.fd-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;font-size:14.5px}.fd-input:focus{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 3px var(--primary-soft)}.fd-textarea{min-height:420px;resize:vertical;font-family:var(--font-mono);font-size:13px;line-height:1.6}.fd-empty{display:flex;gap:14px;align-items:flex-start;max-width:62ch;padding:22px 24px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--fg-dim)}.fd-empty svg{flex:none;margin-top:2px;color:var(--primary)}.fd-empty p{margin:0;line-height:1.6}.fd-empty strong{color:var(--fg)}[data-theme=light] .fd-item:hover{background:#00000009}@media(max-width:900px){.fd-grid{grid-template-columns:minmax(0,1fr)}.fd-list{position:static}.fd-doc{padding:18px 16px 22px}}.lab-stuck.lab-solved{border-color:color-mix(in oklab,var(--accent) 40%,var(--border));background:color-mix(in oklab,var(--accent) 9%,transparent)}.kata{position:relative;padding-left:52px}.kata:before{content:"";position:absolute;left:15px;top:40px;bottom:-8px;width:1px;background:var(--border)}.kata:last-child:before{display:none}.kata-node{position:absolute;left:0;top:-4px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--fg-dim);border:1px solid var(--border-strong);background:var(--bg)}.kata.is-done .kata-node{color:#fff;background:var(--primary);border-color:var(--primary)}.kata-points li{font-size:15.5px;line-height:1.6}.lesson-prose{font-size:16px;line-height:1.75}@media(max-width:640px){.kata{padding-left:40px}.kata:before{left:12px}.kata-node{width:25px;height:25px;font-size:11px}}.side-foot{gap:8px}.side-dev{order:0}.side-account{display:flex;align-items:center;gap:10px;padding:12px 4px 0;border-top:1px solid var(--border)}.side-avatar{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:color-mix(in oklab,var(--primary) 22%,var(--surface));border:1px solid color-mix(in oklab,var(--primary) 45%,transparent);color:var(--fg);font-size:13px;font-weight:700}.side-account-meta{min-width:0}.side-account .side-email{padding:0;font-family:var(--font-sans);font-size:12.5px;color:var(--fg)}.side-plan{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.account-bar--side{grid-template-columns:minmax(0,1fr) auto auto;gap:4px;margin-top:0;padding-top:0;border-top:0}.account-bar--side .tier-badge{display:none}.account-bar--side .mode-go-back{grid-column:auto;width:auto;justify-content:flex-start;padding:6px 4px;border:0;background:none;color:var(--fg-dim);font-size:12.5px;font-weight:500}.account-bar--side .mode-go-back:hover:not(:disabled){color:var(--fg);border:0}.account-bar--side .theme-btn{border:0}.account-bar--side .signout-btn{font-size:12px}.nav-item.active{background:#ffffff14;color:var(--fg);box-shadow:inset 2px 0 0 var(--primary)}[data-theme=light] .nav-item.active{background:#00000012}.nav-toggle,.nav-scrim{display:none}@media(max-width:820px){.nav-toggle{display:grid;place-items:center;position:fixed;top:10px;left:10px;z-index:80;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--fg);cursor:pointer}.nav-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.sidebar.is-open{display:flex;position:fixed;top:0;bottom:0;left:0;z-index:75;width:min(300px,86vw);padding-top:56px;box-shadow:0 0 60px #00000080;animation:nav-in .18s cubic-bezier(.22,1,.36,1)}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#00000073}.topbar{padding-left:58px}.curriculum.cx{padding-top:70px}}@keyframes nav-in{0%{transform:translate(-100%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.sidebar.is-open{animation:none}}.cx-guest{display:flex;flex-direction:column;gap:12px;padding:22px 24px;border:1px solid var(--border);border-radius:18px;background:#ffffff06}.cx-guest ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.cx-guest li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.5;color:var(--fg-dim)}.cx-guest li b{color:var(--fg);font-weight:600}.cx-guest li:before{content:"";position:absolute;left:3px;top:6px;width:5px;height:9px;border:solid var(--primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.cx-guest-cta{align-self:flex-start;margin-top:4px}.cx-guest-fine{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}[data-theme=light] .cx-guest{background:var(--surface)}.cx-guest-cta{text-decoration:none}@media(max-width:820px){.account-bar--float{display:none}.topbar{padding-right:16px}}@media(max-width:520px){.preview-bar-note{display:none}.preview-cta{white-space:nowrap}}@media(max-width:820px){.preview .curriculum.cx{padding-top:36px}}.labs-grid{grid-template-columns:minmax(0,1fr);gap:10px}.lab-card.lab-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;column-gap:14px;row-gap:10px;padding:14px 16px;border-radius:14px;background:#ffffff06;transition:border-color .14s}.lab-card.lab-row:hover{border-color:var(--border-strong)}.lab-ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.lab-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.lab-main{display:flex;flex-direction:column;gap:2px;min-width:0}.lab-card.lab-row .name{font-family:var(--font-sans);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-sub{font-size:12.5px;color:var(--fg-dim)}.lab-card.is-running .lab-sub{color:var(--accent)}.lab-card.is-failed .lab-sub{color:var(--primary)}.lab-card.is-busy .lab-ico svg{animation:lab-spin 2.4s linear infinite}@keyframes lab-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.lab-card.is-busy .lab-ico svg{animation:none}}.lab-card.lab-row .lab-actions{display:flex;gap:8px}.lab-card.lab-row .flag-row,.lab-card.lab-row>.note{grid-column:1 / -1}.btn-pill{border-radius:999px;padding:8px 16px;font-size:13.5px}[data-theme=light] .lab-card.lab-row{background:var(--surface)}@media(max-width:520px){.lab-card.lab-row{grid-template-columns:36px minmax(0,1fr)}.lab-card.lab-row .lab-actions{grid-column:1 / -1}.lab-ico{width:36px;height:36px}}.lesson-nav{display:grid;grid-template-columns:1fr 1fr}.lesson-nav-btn{padding:14px 16px;border-radius:12px}.lesson-nav-btn.next{grid-column:2}@media(max-width:640px){.lesson-nav{grid-template-columns:minmax(0,1fr)}.lesson-nav-btn.next{grid-column:1}}.credits{flex-direction:column;align-items:flex-start;gap:2px}.credits-top{display:flex;align-items:center;gap:6px}.credits .credits-turns{margin-left:12px;font-size:11px}.critter{position:relative;display:inline-grid;place-items:center;isolation:isolate}.critter:before{content:"";position:absolute;top:-55%;right:-55%;bottom:-55%;left:-55%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(255,59,71,.22),rgba(255,59,71,.06) 55%,transparent 72%);animation:critter-glow 3.6s ease-in-out infinite}.critter canvas{display:block;animation:critter-bob 3.6s ease-in-out infinite;will-change:transform}.critter--thinking:before{animation-duration:1.4s}.critter--thinking canvas{animation:critter-think 1.4s ease-in-out infinite}.empty-critter:hover .critter:before{opacity:1;transform:scale(1.08)}@keyframes critter-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes critter-think{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-2deg)}}@keyframes critter-glow{0%,to{opacity:.75}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.critter:before,.critter canvas{animation:none}}.empty-critter{margin-top:0;margin-bottom:14px}.assistant-head .av.thinking .sh-eye{animation:sh-eye 1.2s ease-in-out infinite}.assistant-head .av.thinking .sh-eye-red{animation-delay:.15s}@keyframes sh-eye{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.assistant-head .av.thinking .sh-eye{animation:none}}.side-tools{display:flex;gap:6px;margin:2px 0 10px}.side-search{flex:1;min-width:0;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--border);background:#ffffff08;color:var(--fg);font:inherit;font-size:12.5px;outline:none}.side-search::placeholder{color:var(--fg-faint)}.side-search:focus{border-color:color-mix(in oklab,var(--primary) 50%,var(--border))}.side-sort{flex:none;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--border);background:none;color:var(--fg-dim);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.side-sort:hover{color:var(--fg);border-color:var(--border-strong)}.side-group{margin-bottom:8px}.side-group-head{display:flex;align-items:center;gap:6px;width:100%;padding:6px;border:0;background:none;color:var(--fg-faint);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-align:left}.side-group-head:hover{color:var(--fg-dim)}.side-group-head svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform .14s}.side-group.is-open .side-group-head svg{transform:rotate(90deg)}.side-group-count{margin-left:auto;font-size:10px;letter-spacing:0;color:var(--fg-faint)}.side-group-body{display:grid;gap:1px}.nav-row.is-archived .nav-item{color:var(--fg-faint);cursor:default;padding-right:64px}.nav-row.is-archived .nav-item:hover{background:none}.nav-restore{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-elev);color:var(--fg-dim);font:inherit;font-size:11px;cursor:pointer;opacity:0;transition:opacity .12s}.nav-row.is-archived:hover .nav-restore,.nav-restore:focus-visible{opacity:1}.nav-restore:hover{color:var(--fg);border-color:var(--border-strong)}@media(hover:none){.nav-restore{opacity:1}}[data-theme=light] .side-search{background:var(--surface)}.side-group-body .nav-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.composer-atts{display:flex;gap:8px;flex-wrap:wrap;padding:2px 0 6px}.att{position:relative;width:56px;height:56px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-elev)}.att img{width:100%;height:100%;object-fit:cover;display:block}.att button{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:999px;border:0;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#000000b8;color:#fff;cursor:pointer}.voice-bars rect{transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:no-preference){.voice-bars.live rect{animation:vbar .9s ease-in-out infinite}.voice-bars.live rect:nth-child(2){animation-delay:-.3s}.voice-bars.live rect:nth-child(3){animation-delay:-.6s}.voice-bars.live rect:nth-child(4){animation-delay:-.15s}.voice-bars.live rect:nth-child(5){animation-delay:-.45s}}@keyframes vbar{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}.bubble-imgs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.bubble-imgs img{max-width:200px;max-height:150px;border-radius:10px;display:block;border:1px solid rgba(255,255,255,.25)}.bubble-imgs:only-child{margin-bottom:0}@media(max-width:560px){.composer{padding:10px 12px 14px}}.msg-copy.msg-listen[aria-pressed=true]{opacity:1;color:var(--primary)}.report-done{display:flex;align-items:center;gap:8px}.report-done .ic{color:var(--accent);flex-shrink:0}.md .chat-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;font-family:var(--font-mono);font-size:12px;line-height:1.4;color:var(--fg-dim);background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:3px 10px 3px 8px}.md .chat-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md .chat-chip .ic{flex-shrink:0}.md .chip-search .ic,.md .chip-tool .ic{color:var(--fg-faint)}.md .chip-blocked,.md .chip-error{color:var(--fg);border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}.md .chip-blocked .ic,.md .chip-error .ic{color:var(--primary)}.att-chip{display:flex;width:fit-content;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;opacity:.9;background:#00000029;border-radius:999px;padding:3px 10px 3px 8px}.att-chip.solo{margin-top:0}.cp-verdict-head{display:flex;align-items:center;gap:6px}.text-btn .ic,.connector-icon .ic{vertical-align:-2px}.text-btn:has(.ic){display:inline-flex;align-items:center;gap:6px}.cx-next-go,.cx-tag,.lesson-nav-dir,.lab-pill-open,.rail-count,.btn-pill,.copy-btn,.note,.theme-btn,.connector-icon,.icon-btn,.kata-node,.cx-lesson-go,.kata-ask-go{display:inline-flex;align-items:center;justify-content:center;gap:5px}.lesson-nav-btn.next .lesson-nav-dir{justify-content:flex-end}
