:root{--bg: #f5f4f0;--panel: #ffffff;--panel-2: #faf9f6;--panel-3: #f2f0ea;--ink: #191817;--ink-soft: #56534d;--ink-faint: #8b877f;--line: #e4e0d8;--line-strong: #d3cec4;--accent: #2c6b4c;--accent-bright: #3a8a62;--accent-soft: #e7f1ea;--warn: #8f5b06;--warn-soft: #fdf3e0;--danger: #9e2b2b;--danger-soft: #fbeaea;--info: #2b5f8f;--info-soft: #e8f0f7;--term-bg: #1c1b19;--term-panel: #262421;--term-line: #35322d;--term-ink: #eae7e1;--term-dim: #918d84;--term-good: #93d1a0;--term-warn: #e6b566;--term-bad: #f0938a;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--shadow-sm: 0 1px 2px rgba(25, 24, 23, .05);--shadow: 0 1px 2px rgba(25, 24, 23, .05), 0 4px 16px rgba(25, 24, 23, .045);--shadow-lg: 0 12px 40px rgba(25, 24, 23, .16);--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--topbar-h: 58px;--nav-h: 60px}@media(prefers-color-scheme:dark){:root{--bg: #141312;--panel: #1e1d1b;--panel-2: #252321;--panel-3: #2c2a27;--ink: #edeae4;--ink-soft: #b2ada4;--ink-faint: #837f77;--line: #322f2b;--line-strong: #45413b;--accent: #82caa0;--accent-bright: #9adcb5;--accent-soft: #1f2e27;--warn: #dfab60;--warn-soft: #2f2719;--danger: #e88b83;--danger-soft: #31201e;--info: #86b6dd;--info-soft: #1d2833;--term-bg: #0f0e0d;--term-panel: #1c1b19;--term-line: #2c2926;--shadow-sm: none;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .55)}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;cursor:pointer;color:inherit}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:grid;grid-template-rows:auto 1fr;height:100dvh;overflow:hidden}.app.mobile{grid-template-rows:auto 1fr auto}.topbar{display:flex;align-items:center;gap:14px;padding:0 14px;height:var(--topbar-h);background:var(--panel);border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{font-weight:650;letter-spacing:-.02em;font-size:16px;flex-shrink:0}.brand span{color:var(--accent)}.level-tabs{display:flex;gap:5px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;padding:4px 0}.level-tabs::-webkit-scrollbar{display:none}.level-tab{display:flex;align-items:center;gap:7px;border:1px solid transparent;background:transparent;color:var(--ink-faint);border-radius:999px;padding:5px 12px 5px 5px;font-size:13px;white-space:nowrap;transition:background .14s ease,color .14s ease}.level-tab:hover{background:var(--panel-2);color:var(--ink-soft)}.level-tab[aria-current=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:560}.level-num{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--panel-3);color:var(--ink-faint);font-size:11.5px;font-weight:640;flex-shrink:0}.level-tab.complete .level-num,.level-tab[aria-current=true] .level-num{background:var(--accent);color:#fff}.level-name{max-width:15ch;overflow:hidden;text-overflow:ellipsis}.level-tab[aria-current=true] .level-name{max-width:none}.level-select{flex:1;min-width:0}.level-select select{width:100%;font:inherit;font-size:16px;padding:8px 30px 8px 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--panel-2);color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:right 14px center,right 9px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.progress-pill{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.progress-track{width:54px;height:5px;border-radius:999px;background:var(--panel-3);overflow:hidden}.progress-fill{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;color:var(--ink-soft);transition:background .14s ease,color .14s ease}.icon-btn:hover{background:var(--panel-2);color:var(--ink)}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 8px);right:0;width:288px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:8px;z-index:40}.menu-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:660;color:var(--ink-faint);padding:6px 8px 4px}.menu-divider{height:1px;background:var(--line);margin:6px 4px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;padding:9px 8px;border-radius:var(--r-sm);font-size:14px;text-align:left;color:var(--ink)}.menu-item:hover{background:var(--panel-2)}.menu-item svg{color:var(--ink-faint);flex-shrink:0}.toggle{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-sm);cursor:pointer}.toggle:hover{background:var(--panel-2)}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-text{flex:1;min-width:0}.toggle-label{display:block;font-size:14px}.toggle-hint{display:block;font-size:12px;color:var(--ink-faint);line-height:1.4}.toggle-track{position:relative;width:38px;height:22px;border-radius:999px;background:var(--line-strong);flex-shrink:0;transition:background .18s ease}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .18s ease}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent-bright);outline-offset:2px}.columns{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(430px,1.5fr) minmax(330px,1.05fr);gap:14px;padding:14px;overflow:hidden;min-height:0}.columns.no-reference{grid-template-columns:minmax(300px,1fr) minmax(460px,1.7fr) minmax(330px,1fr)}.column{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;padding-right:3px}.column-terminal{overflow:hidden}.pane{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.pane>*{flex-shrink:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;flex-shrink:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 15px;border-bottom:1px solid var(--line);background:var(--panel-2)}.panel-title{font-size:11.5px;font-weight:660;letter-spacing:.055em;text-transform:uppercase;color:var(--ink-faint)}.panel-body{padding:16px}.level-title{font-size:20px;font-weight:660;margin:0 0 10px;letter-spacing:-.02em;line-height:1.25}.story p{margin:0 0 11px;color:var(--ink-soft);font-size:14.5px}.goals{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px}.goal{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-soft);transition:color .2s ease}.goal.done{color:var(--ink-faint)}.goal.done .goal-text{text-decoration:line-through;text-decoration-color:var(--line-strong)}.checkbox{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line-strong);flex-shrink:0;margin-top:1px;display:grid;place-items:center;font-size:11px;color:transparent;transition:background .2s ease,border-color .2s ease,color .2s ease}.goal.done .checkbox{background:var(--accent);border-color:var(--accent);color:#fff}.chip-row{display:flex;gap:6px;flex-wrap:wrap}.hint-box{margin-top:14px;padding:12px 14px;background:var(--warn-soft);border-radius:var(--r-md);font-size:13.5px;color:var(--ink-soft);line-height:1.55}.hint-box strong{color:var(--ink)}.hint-btn{margin-top:12px}.ghost-btn{border:1px solid var(--line);background:transparent;color:var(--ink-soft);border-radius:var(--r-sm);padding:6px 12px;font-size:13px;transition:border-color .14s ease,color .14s ease,background .14s ease}.ghost-btn:hover{border-color:var(--line-strong);color:var(--ink);background:var(--panel-2)}.file-list{list-style:none;margin:0;padding:0}.file-row{display:flex;align-items:center;gap:8px;width:100%;padding:11px 15px;border:none;background:transparent;border-bottom:1px solid var(--line);text-align:left;color:var(--ink);font-family:var(--mono);font-size:13px;min-height:44px}.file-row:hover{background:var(--panel-2)}.file-row[aria-selected=true]{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.badge{font-family:var(--sans);font-size:11px;padding:2px 8px;border-radius:999px;font-weight:580;white-space:nowrap}.badge.staged{background:var(--accent-soft);color:var(--accent)}.badge.modified{background:var(--warn-soft);color:var(--warn)}.badge.untracked{background:var(--panel-3);color:var(--ink-faint)}.badge.conflict{background:var(--danger-soft);color:var(--danger)}.editor{width:100%;min-height:180px;border:none;border-top:1px solid var(--line);padding:14px 15px;font-family:var(--mono);font-size:16px;line-height:1.65;resize:vertical;background:var(--panel-2);color:var(--ink);-moz-tab-size:2;tab-size:2}.editor:focus{outline:2px solid var(--accent);outline-offset:-2px}.editor-note{padding:10px 15px;font-size:12.5px;color:var(--ink-faint);border-top:1px solid var(--line);line-height:1.5}.editor-note code{font-family:var(--mono);font-size:11.5px}.terminal{background:var(--term-bg);border-radius:var(--r-lg);border:1px solid var(--line);display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;box-shadow:var(--shadow)}.term-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 15px;border-bottom:1px solid var(--term-line);color:var(--term-dim);font-size:11.5px;font-family:var(--mono)}.term-head span:last-child{color:var(--term-good);white-space:nowrap}.term-scroll{flex:1;overflow-y:auto;padding:14px 15px;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--term-ink);min-height:180px;-webkit-overflow-scrolling:touch}.term-line{white-space:pre-wrap;word-break:break-word}.term-line.dim{color:var(--term-dim)}.term-line.good{color:var(--term-good)}.term-line.warn{color:var(--term-warn)}.term-line.bad{color:var(--term-bad)}.term-line.heading{color:#fff;font-weight:600}.term-echo{color:#fff;margin-top:14px;word-break:break-word}.term-echo:before{content:"$ ";color:var(--term-good)}.explain{margin:9px 0 4px;padding:11px 13px;border-left:2px solid var(--term-good);background:#93d1a017;color:#d9ded7;font-family:var(--sans);font-size:13.5px;line-height:1.58;border-radius:0 var(--r-sm) var(--r-sm) 0}.explain.error{border-left-color:var(--term-bad);background:#f0938a17}.explain-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--term-dim);margin-bottom:4px;font-weight:620}.term-input-wrap{border-top:1px solid var(--term-line);position:relative;background:var(--term-bg)}.term-input-label{display:flex;align-items:center;gap:7px;padding:12px 16px 0;font-size:12.5px;font-weight:620;letter-spacing:.01em;color:var(--term-good)}.term-input-label span:last-child{font-size:14px;animation:nudge 1.6s ease-in-out infinite}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.term-input-row{display:flex;align-items:center;gap:9px;margin:10px 14px;padding:10px 12px;background:var(--term-panel);border:1.5px solid #3d3a35;border-radius:var(--r-md);transition:border-color .15s ease,box-shadow .15s ease}.term-input-row:focus-within{border-color:var(--term-good);box-shadow:0 0 0 3px #93d1a02b}.term-input-row.waiting{animation:waiting 2.4s ease-in-out infinite}@keyframes waiting{0%,to{box-shadow:0 0 #93d1a000}50%{box-shadow:0 0 0 4px #93d1a024}}.term-input-row.waiting:focus-within{animation:none}.term-prompt{color:var(--term-good);font-family:var(--mono);font-size:15px;font-weight:700}.term-input{flex:1;min-width:0;background:transparent;border:none;color:#fff;font-family:var(--mono);font-size:16px;outline:none}.term-input::placeholder{color:#7b7770}.run-btn{border:1px solid #423e39;background:#322f2b;color:var(--term-ink);border-radius:var(--r-sm);padding:8px 15px;font-size:13px;font-family:var(--sans);font-weight:560;flex-shrink:0;min-height:40px;transition:background .14s ease,color .14s ease,border-color .14s ease}.run-btn:disabled{opacity:.4;cursor:default}.run-btn:not(:disabled):hover{background:var(--accent-bright);border-color:var(--accent-bright);color:#fff}.token-strip{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}.token{display:inline-flex;align-items:baseline;gap:6px;font-size:11.5px;background:var(--term-panel);border-radius:var(--r-sm);padding:4px 9px;color:#b6b2aa;max-width:100%}.token code{font-family:var(--mono);color:#fff;font-size:11.5px}.token.caution{background:#3a2f1c;color:#e2c48c}.token.destructive{background:#3d2320;color:#f0a49c}.suggestions{position:absolute;bottom:100%;left:10px;right:10px;background:var(--term-panel);border:1px solid #3a3733;border-radius:var(--r-md);overflow-y:auto;box-shadow:0 -8px 28px #0006;max-height:250px}.suggestion{display:flex;align-items:baseline;gap:10px;width:100%;border:none;background:transparent;padding:9px 12px;text-align:left;color:#d6d2ca;font-size:13px;min-height:40px}.suggestion[aria-selected=true]{background:#383530}.suggestion code{font-family:var(--mono);color:#fff;flex-shrink:0}.suggestion .hint{color:#918d85;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion .flag{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;font-weight:620}.suggestion .flag.caution{color:var(--term-warn)}.suggestion .flag.destructive{color:var(--term-bad)}.term-foot{padding:4px 15px 11px;font-size:11.5px;color:var(--term-dim);font-family:var(--sans)}.term-foot kbd{font-family:var(--mono);background:var(--term-panel);border:1px solid var(--term-line);border-radius:4px;padding:1px 5px;font-size:11px;margin:0 1px}.graph{padding:13px 15px;font-family:var(--mono);font-size:12.5px;overflow-x:auto}.graph-row{display:flex;align-items:center;gap:10px;padding:3px 0}.node{width:11px;height:11px;border-radius:50%;background:var(--line-strong);flex-shrink:0}.node.head{background:var(--accent);box-shadow:0 0 0 3.5px var(--accent-soft)}.node.merge{background:var(--warn)}.graph-rail{width:11px;display:flex;justify-content:center;flex-shrink:0}.graph-rail:after{content:"";width:2px;height:14px;background:var(--line)}.commit-id{color:var(--ink-faint);flex-shrink:0}.commit-msg{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-chip{font-family:var(--sans);font-size:10.5px;font-weight:620;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.ref-chip.remote{background:var(--panel-3);color:var(--ink-faint)}.pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}.stage{background:var(--panel);padding:11px;min-height:96px}.stage-name{font-size:10.5px;text-transform:uppercase;letter-spacing:.055em;color:var(--ink-faint);font-weight:660;margin-bottom:3px}.stage-sub{font-size:11px;color:var(--ink-faint);margin-bottom:8px;line-height:1.35}.stage-item{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-empty{font-size:11.5px;color:var(--ink-faint);font-style:italic}.doc-search{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;background:var(--panel-2);color:var(--ink);font-size:16px;font-family:inherit}.doc-search:focus{outline:2px solid var(--accent);outline-offset:-1px}.doc-category{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:660;margin:16px 0 6px}.doc-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:7px 9px;border-radius:var(--r-sm);color:var(--ink)}.doc-item:hover{background:var(--panel-2)}.doc-item code{font-family:var(--mono);font-size:12.5px}.doc-item .one-line{display:block;font-size:12px;color:var(--ink-faint);line-height:1.4}.doc-item .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;background:var(--accent)}.doc-item .dot.caution{background:var(--warn)}.doc-item .dot.destructive{background:var(--danger)}.doc-detail h3{margin:0 0 6px;font-family:var(--mono);font-size:16px}.doc-detail h4{margin:18px 0 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:660}.doc-detail p{margin:0 0 10px;color:var(--ink-soft);font-size:14px}.doc-detail ul{margin:0;padding-left:18px;color:var(--ink-soft);font-size:13.5px}.doc-detail li{margin-bottom:6px}.doc-detail code{font-family:var(--mono);font-size:12.5px;background:var(--panel-3);border-radius:4px;padding:1px 5px}.danger-pill{display:inline-block;font-size:11px;font-weight:640;padding:3px 10px;border-radius:999px;margin-bottom:12px}.danger-pill.safe{background:var(--accent-soft);color:var(--accent)}.danger-pill.caution{background:var(--warn-soft);color:var(--warn)}.danger-pill.destructive{background:var(--danger-soft);color:var(--danger)}.callout{padding:11px 13px;border-radius:var(--r-md);font-size:13.5px;margin:11px 0;line-height:1.55}.callout.analogy{background:var(--panel-2);border:1px solid var(--line);color:var(--ink-soft)}.callout.gotcha{background:var(--warn-soft);color:var(--ink-soft)}.callout strong{color:var(--ink)}.example{border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;margin-bottom:7px;background:var(--panel-2)}.example code{display:block;font-family:var(--mono);font-size:12.5px;color:var(--ink);background:none;padding:0;margin-bottom:3px}.example span{font-size:12.5px;color:var(--ink-faint)}.back-link{border:none;background:none;color:var(--accent);padding:0 0 12px;font-size:13px}.pr-panel .pr-host{font-size:11.5px;color:var(--ink-faint);font-family:var(--mono)}.pr-note{padding:11px 15px;font-size:12.5px;color:var(--ink-soft);background:var(--info-soft);border-bottom:1px solid var(--line);line-height:1.5}.pr-note code{font-family:var(--mono);font-size:11.5px}.pr-note.fork-note{background:var(--warn-soft)}.inline-link{border:none;background:none;padding:0;color:var(--accent);font-size:12.5px;text-decoration:underline;text-underline-offset:2px}.pr-empty{font-size:13px;color:var(--ink-faint)}.pr-empty code{font-family:var(--mono);font-size:12px}.pr-card{padding:14px 15px;border-bottom:1px solid var(--line)}.pr-card.merged{opacity:.72}.pr-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.pr-state{font-size:10px;font-weight:660;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;flex-shrink:0}.pr-state.open{background:var(--accent-soft);color:var(--accent)}.pr-state.merged{background:#ece4f5;color:#6b4a9c}@media(prefers-color-scheme:dark){.pr-state.merged{background:#2e2640;color:#b39ae0}}.pr-title{font-size:13.5px;font-weight:570}.pr-branches{font-size:12px;color:var(--ink-faint);margin-bottom:10px;word-break:break-word}.pr-branches code{font-family:var(--mono);background:var(--panel-3);border-radius:4px;padding:2px 6px;font-size:11.5px}.pr-commits{margin-bottom:11px}.pr-commits-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.055em;color:var(--ink-faint);font-weight:660;margin-bottom:5px}.pr-commit{font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pr-commit code{font-family:var(--mono);color:var(--ink-faint);font-size:11.5px}.pr-review{border-radius:var(--r-md);padding:11px 13px;font-size:13px;color:var(--ink-soft);margin-bottom:11px;line-height:1.55}.pr-review-head{display:flex;gap:6px;align-items:baseline;margin-bottom:4px}.pr-review-head strong{color:var(--ink);font-size:13px}.pr-review-head span{font-size:12px;color:var(--ink-faint)}.pr-review.approved{background:var(--accent-soft)}.pr-review.changes-requested{background:var(--warn-soft)}.pr-review.commented,.pr-review.pending{background:var(--panel-2);border:1px solid var(--line);font-size:12.5px;color:var(--ink-faint)}.pr-review.conflicted{background:var(--danger-soft)}.pr-review.conflicted strong{color:var(--danger)}.pr-review code{font-family:var(--mono);font-size:11.5px}.pr-card-actions,.pr-actions{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.pr-actions{padding:14px 15px}.pr-card-actions .btn:disabled{opacity:.45;cursor:default}.pr-hint{font-size:12px;color:var(--ink-faint);margin:0;line-height:1.5}.pr-hint code{font-family:var(--mono);font-size:11.5px;background:var(--panel-3);border-radius:4px;padding:1px 5px}.repo-card{padding:14px 15px;border-bottom:1px solid var(--line)}.repo-card-head{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}.repo-name{font-family:var(--mono);font-size:13px;color:var(--ink-soft)}.repo-name strong{color:var(--ink)}.access-badge{font-size:10px;font-weight:640;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;white-space:nowrap}.access-badge.write{background:var(--accent-soft);color:var(--accent)}.access-badge.read{background:var(--warn-soft);color:var(--warn)}.access-badge.yours{background:var(--info-soft);color:var(--info)}.repo-forked-from{font-size:11.5px;color:var(--ink-faint);margin-top:3px}.repo-meta{font-size:11.5px;color:var(--ink-faint);margin:6px 0 8px}.repo-url{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.repo-url code{font-family:var(--mono);font-size:11.5px;color:var(--ink);overflow-wrap:anywhere}.repo-hint,.repo-cloned{font-size:11px;color:var(--ink-faint);margin-left:auto;white-space:nowrap}.repo-cloned{color:var(--accent);font-weight:580}.repo-hint code{font-size:11px}.repo-actions{margin-top:11px;display:flex;flex-direction:column;gap:7px;align-items:flex-start}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1413118c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:50}.modal{background:var(--panel);border-radius:16px;max-width:540px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden;max-height:88dvh;overflow-y:auto}.modal-head{padding:20px 24px 14px;border-bottom:1px solid var(--line)}.modal-head.danger{background:var(--danger-soft)}.modal-head h2{margin:0;font-size:19px;letter-spacing:-.02em;line-height:1.3}.modal-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:660;color:var(--danger);margin-bottom:5px}.modal-body{padding:20px 24px}.modal-body ul{margin:0 0 16px;padding-left:19px;color:var(--ink-soft);font-size:14px}.modal-body li{margin-bottom:8px;line-height:1.55}.shared-warning{background:var(--danger-soft);border-radius:var(--r-md);padding:12px 14px;font-size:13.5px;color:var(--ink-soft);margin-bottom:16px;line-height:1.55}.shared-warning strong{color:var(--danger)}.safer{background:var(--accent-soft);border-radius:var(--r-md);padding:13px 15px;margin-bottom:18px}.safer-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:660;color:var(--accent);margin-bottom:6px}.safer code{display:block;font-family:var(--mono);font-size:13px;margin-bottom:6px;white-space:pre-line}.safer p{margin:0;font-size:13.5px;color:var(--ink-soft);line-height:1.55}.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.btn{border-radius:var(--r-sm);padding:10px 17px;font-size:14px;font-weight:570;border:1px solid transparent;transition:filter .14s ease,background .14s ease;min-height:42px}.btn.primary{background:var(--accent);color:#fff}.btn.primary:not(:disabled):hover{filter:brightness(1.12)}.btn.secondary{background:transparent;border-color:var(--line-strong);color:var(--ink)}.btn.secondary:hover{background:var(--panel-2)}.btn.destructive{background:transparent;border-color:var(--danger);color:var(--danger);font-weight:520}.btn.destructive:hover{background:var(--danger-soft)}.celebrate .modal-head{background:var(--accent-soft);text-align:center;padding:28px 24px 20px}.celebrate h2{font-size:23px}.celebrate-mark{font-size:36px;line-height:1;margin-bottom:10px}.taught{list-style:none;padding:0;margin:0 0 18px}.taught li{display:flex;gap:10px;font-size:14px;color:var(--ink-soft);margin-bottom:8px;line-height:1.5}.taught li:before{content:"✓";color:var(--accent);font-weight:700;flex-shrink:0}.real-world{background:var(--panel-2);border-left:3px solid var(--accent);padding:13px 15px;border-radius:0 var(--r-md) var(--r-md) 0;font-size:13.5px;color:var(--ink-soft);margin-bottom:20px;line-height:1.55}.real-world strong{display:block;color:var(--ink);margin-bottom:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none}.tour-dim,.tour-spotlight{position:fixed;pointer-events:auto}.tour-dim{top:0;right:0;bottom:0;left:0;background:#1413119e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tour-spotlight{top:0;left:0;border-radius:var(--r-lg);box-shadow:0 0 0 9999px #1413119e;border:2px solid var(--accent-bright);pointer-events:none}.tour-card{position:fixed;top:0;left:0;width:340px;max-width:calc(100vw - 20px);background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:20px 22px;pointer-events:auto}.tour-progress{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:660;color:var(--accent);margin-bottom:7px}.tour-card h2{margin:0 0 9px;font-size:17px;letter-spacing:-.015em;line-height:1.3}.tour-card p{margin:0 0 15px;font-size:13.5px;line-height:1.58;color:var(--ink-soft)}.tour-demo{display:block;width:100%;border:1px dashed var(--accent);background:var(--accent-soft);color:var(--ink);border-radius:var(--r-md);padding:10px 13px;font-size:13px;margin-bottom:15px;text-align:left}.tour-demo code{font-family:var(--mono);font-size:12.5px;font-weight:620}.tour-demo:hover{background:var(--panel-2)}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tour-nav{display:flex;gap:8px;margin-left:auto}.tour-skip{border:none;background:none;padding:0;color:var(--ink-faint);font-size:12.5px;text-decoration:underline;text-underline-offset:2px}.tour-skip:hover{color:var(--ink)}.tour-card .btn{padding:8px 15px;font-size:13.5px;min-height:38px}.bottom-nav{display:flex;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0);z-index:20}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;padding:8px 2px;min-height:var(--nav-h);color:var(--ink-faint);position:relative;transition:color .14s ease}.nav-item[aria-current=true]{color:var(--accent)}.nav-item[aria-current=true]:before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;border-radius:0 0 2px 2px;background:var(--accent)}.nav-icon{position:relative;display:grid;place-items:center}.nav-dot{position:absolute;top:-1px;right:-3px;width:7px;height:7px;border-radius:50%;background:var(--danger);border:1.5px solid var(--panel)}.nav-label{font-size:10.5px;font-weight:560;letter-spacing:.01em}.nav-badge{position:absolute;top:5px;left:50%;transform:translate(6px);font-size:9.5px;font-weight:660;background:var(--panel-3);color:var(--ink-faint);border-radius:999px;padding:1px 5px;font-variant-numeric:tabular-nums}@media(max-width:1000px){.panel{border-radius:var(--r-md)}.terminal{min-height:calc(100dvh - var(--topbar-h) - var(--nav-h) - 26px)}.pipeline{grid-template-columns:repeat(2,1fr)}.level-title{font-size:19px}.modal{max-height:92dvh}.modal-head,.modal-body{padding-left:18px;padding-right:18px}.modal-actions .btn{flex:1;min-width:132px}.tour-card{width:calc(100vw - 20px)}}@media(max-width:420px){.topbar{gap:10px;padding:0 10px}.brand{font-size:15px}.progress-track{display:none}.nav-label{font-size:10px}.pane{padding:10px;gap:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
