@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&family=Press+Start+2P&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&family=Press+Start+2P&display=swap";@keyframes barGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glowPulse{0%,to{box-shadow:0 0 0 1px #58a6ff40,0 0 16px #58a6ff38}50%{box-shadow:0 0 0 1px #58a6ff80,0 0 30px #58a6ff8c}}@keyframes glowPulseGold{0%,to{box-shadow:0 0 0 1px #ffc24b4d,0 0 16px #ffc24b38}50%{box-shadow:0 0 0 1px #ffc24b99,0 0 34px #ffc24b99}}@keyframes nodePulse{0%,to{box-shadow:0 0 0 1px #1f6feb,0 0 0 5px #58a6ff1f}50%{box-shadow:0 0 0 1px #58a6ff,0 0 0 7px #58a6ff38}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scan{0%{transform:translateY(-120%)}to{transform:translateY(820%)}}@keyframes floaty{0%{opacity:0;transform:translateY(0)scale(1)}12%{opacity:.9}to{opacity:0;transform:translateY(-86px)scale(.4)}}@keyframes fall{0%{opacity:0;transform:translateY(-14px)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(150px)rotate(420deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.completion-recap{border:1px solid var(--success-edge);background:#3fb95014;border-radius:8px;margin-top:14px;padding:14px}.completion-recap-kicker{color:var(--success);text-transform:uppercase;letter-spacing:0;margin-bottom:10px;font-size:10.5px;display:block}.completion-recap-grid{gap:10px;display:grid}.completion-recap-item{border-top:1px solid #3fb9502e;padding-top:10px}.completion-recap-item:first-child{border-top:0;padding-top:0}.completion-recap-item span{color:var(--text-faint);text-transform:uppercase;letter-spacing:0;margin-bottom:4px;font-size:10px;display:block}.completion-recap-item p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.5}.dojo{padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);max-width:var(--desktop-page-reading);margin:0 auto}.dojo-intro h2{margin:0 0 8px;font-size:28px;font-weight:700}.dojo-intro p{color:var(--text-dim);max-width:760px;font-size:15.5px;line-height:1.55}.scenario-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:24px;display:grid}.scenario-card{text-align:left;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 16px 18px;transition:border-color .15s,transform .12s;display:flex}.scenario-card:hover,.scenario-card:focus-visible{border-color:var(--accent);transform:translateY(-1px)}.scenario-card{position:relative}.scenario-card.card-done{border-color:var(--success)}.scenario-tier{font-family:var(--font-mono);color:var(--accent);background:#58a6ff1a;border-radius:4px;padding:2px 8px;font-size:11px}.scenario-title{margin-top:4px;font-size:15px;font-weight:600}.scenario-goal{color:var(--text-dim);font-size:13px;line-height:1.4}.dim{color:var(--text-dim)}.dojo-empty{padding:var(--desktop-page-bottom) var(--desktop-page-gutter);text-align:center}.dojo-active{grid-template-columns:380px 1fr;height:100%;min-height:600px;display:grid}.dojo-active:has(.editor-panel){grid-template-columns:340px 1fr 340px}.briefing-panel{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;padding:24px;display:flex;overflow-y:auto}.back-btn{color:var(--text-dim);background:0 0;border:none;margin-bottom:16px;padding:0;font-size:13px}.briefing-panel h3{margin:0 0 12px;font-size:17px}.dojo-status{border-radius:8px;align-items:flex-start;gap:9px;margin:0;padding:10px 12px;font-size:13.5px;line-height:1.45;display:flex}.dojo-status-icon{flex:none;font-weight:800}.dojo-status-checking{color:var(--accent);background:#58a6ff14;border:1px solid #58a6ff3d;font-size:12px}.dojo-status-pass{color:var(--success);background:var(--success-bg);border:1px solid #3fb9505c}.dojo-status-fail{color:var(--fail);background:var(--fail-bg);border:1px solid #f781665c}.briefing-text{color:var(--text);margin-bottom:16px;font-size:14px;line-height:1.6}.why-box,.goal-box{background:var(--panel-raised);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px 14px}.why-box{border-left:3px solid var(--accent)}.goal-box{border-left:3px solid var(--success)}.why-label,.goal-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0;color:var(--text-dim);margin-bottom:6px;font-size:10.5px;display:block}.why-box p,.goal-box p{margin:0;font-size:13.5px;line-height:1.55}.dojo-graph{border:1px solid var(--border);background:#0b1018;border-radius:8px;margin:14px 0;padding:13px 14px 14px}.dojo-graph-caption{color:var(--text-soft);margin-bottom:12px;font-size:12.5px;line-height:1.45}.dojo-graph-svg{width:100%;display:block;overflow:visible}.git-live{border:1px solid var(--border);background:#09111c;border-radius:8px;margin:14px 0;padding:13px 14px}.git-live-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.git-live-kicker,.git-live-label,.git-live-list-title{color:var(--text-dim);letter-spacing:0;text-transform:uppercase;font-size:10px}.git-live-badge{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:10px}.git-live-badge-clean{color:var(--success);background:var(--success-bg);border-color:#3fb95057}.git-live-badge-dirty{color:var(--accent);background:#58a6ff14;border-color:#58a6ff52}.git-live-badge-conflicts{color:var(--fail);background:var(--fail-bg);border-color:#f781665c}.git-live-now{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.git-live-now>div,.git-live-list{background:#ffffff06;border:1px solid #ffffff0f;border-radius:7px;min-width:0;padding:9px 10px;animation:.18s ease-out git-live-rise}.git-live-now strong{color:var(--text);overflow-wrap:anywhere;margin-top:4px;font-size:13px;display:block}.git-live-section{margin-bottom:12px}.git-live-branches{flex-direction:column;gap:5px;margin-top:7px;display:flex}.git-live-branch{color:var(--text-soft);background:#8b949e14;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;font-size:12px;animation:.18s ease-out git-live-rise;display:grid}.git-live-branch.is-active{color:var(--accent);background:#58a6ff1f}.git-live-branch.is-remote{border-left:2px solid #d2992273}.git-live-branch span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.git-live-branch code{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.git-live-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.git-live-list{min-height:86px}.git-live-list ul{flex-direction:column;gap:5px;margin:8px 0 0;padding:0;list-style:none;display:flex}.git-live-list li,.git-live-list p{color:var(--text-soft);overflow-wrap:anywhere;margin:8px 0 0;font-size:12px;line-height:1.35}.git-live-list li{border-left:2px solid #58a6ff61;margin:0;padding-left:9px}.git-live-stage li{border-left-color:#3fb95080}.git-live-conflict li{color:var(--fail);border-left-color:#f78166a6}.git-live-stash li{border-left-color:#d29922a6}@keyframes git-live-rise{0%{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.hint-toggle{border:1px solid var(--border);color:var(--text-dim);background:0 0;border-radius:6px;margin:4px 0 10px;padding:6px 12px;font-size:12.5px}.hint-toggle:hover,.hint-toggle:focus-visible{border-color:var(--accent);color:var(--accent)}.hint-list{flex-direction:column;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:flex}.hint-list li{color:var(--text-dim);background:#ffffff08;border-radius:6px;padding:8px 10px;font-size:12.5px;line-height:1.5}.dojo-action-zone{z-index:2;background:color-mix(in srgb, var(--panel) 92%, transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:10px;margin:auto -24px -24px;padding:14px 24px 18px;display:grid;position:sticky;bottom:-24px;box-shadow:0 -14px 24px #00000038}.action-row{gap:8px;display:flex}.primary-btn{background:var(--accent-dim);color:#fff;border:none;border-radius:7px;flex:1;padding:9px 16px;font-size:13.5px;font-weight:600}.primary-btn:hover{background:var(--accent)}.primary-btn:disabled{opacity:.62;cursor:default}.ghost-btn{border:1px solid var(--border);color:var(--text-dim);background:0 0;border-radius:7px;padding:9px 14px;font-size:13.5px}.ghost-btn:hover,.ghost-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.result-box{border-radius:8px;margin-top:14px;padding:12px 14px;font-size:13.5px;line-height:1.55}.result-pass{background:var(--success-bg);color:var(--success);border:1px solid #3fb9504d}.result-fail{background:var(--fail-bg);color:var(--fail);border:1px solid #f781664d}.terminal-panel{background:var(--bg);flex-direction:column;display:flex}.terminal-bar{border-bottom:1px solid var(--border);background:#1c2128;align-items:center;gap:8px;padding:10px 14px;display:flex}.dot{border-radius:50%;width:11px;height:11px;display:inline-block}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27c93f}.terminal-title{color:var(--text-dim);margin-left:8px;font-size:12px}.terminal-body{flex:1;padding:16px 18px;font-size:13px;line-height:1.6;overflow-y:auto}.term-line{white-space:pre-wrap;word-break:break-word;margin-bottom:2px}.term-system{color:var(--text-dim);margin-bottom:12px;font-style:italic}.term-prompt{color:var(--accent);margin-top:10px;font-weight:600}.term-output{color:var(--text);opacity:.9}.term-error{color:var(--fail)}.term-explain{color:var(--success);background:#3fb95014;border-left:2px solid #3fb95073;margin:4px 0;padding:4px 8px}.terminal-input-row{z-index:2;border-top:1px solid var(--border);background:var(--panel);align-items:center;gap:8px;padding:12px 18px;display:flex;position:sticky;bottom:0}.prompt-sign{color:var(--accent);font-weight:600}.terminal-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13.5px}.terminal-input:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.terminal-input:disabled{color:var(--text-dim)}.terminal-run-btn{background:var(--accent-dim);border:1px solid var(--accent-dim);color:#fff;border-radius:7px;flex:none;padding:8px 12px;font-size:12.5px;font-weight:700}.terminal-run-btn:hover:not(:disabled){background:var(--accent)}.terminal-run-btn:disabled{opacity:.55;cursor:default}@media (width<=560px){.terminal-input-row{flex-wrap:wrap}.terminal-run-btn{width:100%}.dojo-graph-row{grid-template-columns:1fr;gap:6px}.dojo-graph-track{padding-bottom:3px;overflow-x:auto}.dojo-graph-commit{flex-shrink:0;flex-basis:72px}.git-live-now,.git-live-grid{grid-template-columns:1fr}}@media (width<=880px){:is(.dojo-active,.dojo-active:has(.editor-panel)){grid-template-rows:auto 1fr auto;grid-template-columns:1fr;height:auto;min-height:0}.briefing-panel{border-right:none;border-bottom:1px solid var(--border);max-height:45vh}.editor-panel{border-left:none;border-top:1px solid var(--border);max-height:40vh}}@media (width>=881px){:is(.dojo-active,.dojo-active:has(.editor-panel)){height:var(--desktop-active-lab-height);min-height:0}}@media (prefers-reduced-motion:reduce){.git-live-now>div,.git-live-list,.git-live-branch{animation:none}}.editor-panel{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;display:flex}.editor-bar{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.editor-title{color:var(--accent);font-size:13px;font-weight:600}.editor-hint{color:var(--text-dim);font-size:11px}.editor-textarea{background:var(--bg);color:var(--text);resize:none;border:none;outline:none;flex:1;padding:14px;font-size:13px;line-height:1.6}.save-btn{background:var(--success);color:var(--bg);border:none;border-radius:7px;margin:12px 14px;padding:9px 14px;font-size:13px;font-weight:600;position:sticky;bottom:0}.save-btn:disabled{background:var(--panel-raised);color:var(--text-dim);cursor:default}.primer{padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);max-width:var(--desktop-page-reading);margin:0 auto}.primer-loading{padding:var(--desktop-page-bottom) var(--desktop-page-gutter);color:var(--text-dim)}.primer-empty{padding:var(--desktop-page-bottom) var(--desktop-page-gutter);text-align:center;max-width:480px;margin:0 auto}.primer-empty .dim{color:var(--text-dim);margin-top:8px}.primer-intro h2{margin:0 0 8px;font-size:28px}.primer-intro p{color:var(--text-dim);max-width:760px;font-size:15.5px;line-height:1.55}.primer-tabs{border-bottom:1px solid var(--border);gap:8px;margin:22px 0;display:flex}.ptab{color:var(--text-dim);background:0 0;border:none;border-bottom:2px solid #0000;margin-right:18px;padding:8px 4px 10px;font-size:13.5px;font-weight:500}.ptab:hover{color:var(--text)}.ptab-active{color:var(--accent);border-bottom-color:var(--accent)}.process-lifecycle{background:linear-gradient(135deg, #58a6ff14, #3fb9500a), var(--panel);border:1px solid var(--border-mid);border-radius:10px;margin-bottom:16px;padding:18px;overflow:hidden}.lifecycle-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.lifecycle-kicker{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:10px}.lifecycle-head h3{margin:5px 0 0;font-size:17px}.lifecycle-badge{color:var(--success);background:var(--success-bg);border:1px solid var(--success-edge);border-radius:7px;flex-shrink:0;padding:6px 9px;font-size:10px}.lifecycle-rail{grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;padding-bottom:3px;display:grid;overflow-x:auto}.lifecycle-step{border:1px solid var(--border);background:#0b1018;border-radius:8px;min-height:150px;padding:13px 13px 12px;position:relative}.lifecycle-step:not(:last-child):after{content:">";z-index:1;color:var(--accent);font-family:var(--font-mono);font-size:14px;position:absolute;top:44px;right:-9px}.lifecycle-index{color:var(--text-faint);margin-bottom:10px;font-size:10px;display:block}.lifecycle-step strong{margin-bottom:6px;font-size:14px;display:block}.lifecycle-step span:not(.lifecycle-index){color:var(--text-soft);font-size:12px;line-height:1.35;display:block}.lifecycle-step p{color:var(--text-dim);margin:10px 0 0;font-size:12px;line-height:1.45}.board{gap:14px;padding-bottom:12px;display:flex;overflow-x:auto}.board-col{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:1;min-width:220px;max-height:540px;display:flex}.board-col-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13.5px;font-weight:600;display:flex}.col-count{font-family:var(--font-mono);color:var(--text-dim);background:var(--panel-raised);border-radius:10px;padding:1px 7px;font-size:11px}.board-col-body{flex-direction:column;gap:8px;padding:10px;display:flex;overflow-y:auto}.ticket-card{background:var(--panel-raised);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.ticket-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.ticket-type{text-transform:uppercase;letter-spacing:0;border-radius:4px;padding:2px 7px;font-size:10.5px;font-weight:600}.type-bug{color:var(--fail);background:#f7816626}.type-story{color:var(--accent);background:#58a6ff26}.type-task{color:var(--warn);background:#d2992226}.ticket-points{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.ticket-title{margin-bottom:6px;font-size:13px;line-height:1.4}.ticket-id{color:var(--text-dim);font-size:10.5px}.glossary{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.glossary-item{background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:14px 16px}.glossary-term{font-family:var(--font-mono);color:var(--accent);margin-bottom:6px;font-size:13.5px;font-weight:700}.glossary-def{color:var(--text);font-size:13px;line-height:1.55}.scenario-panel{max-width:640px}.scenario-counter{color:var(--text-dim);margin-bottom:10px;font-size:11px}.primer-progress{color:var(--success)}.situation-text{background:var(--panel);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;margin-bottom:20px;padding:14px 16px;font-size:15.5px;line-height:1.6}.option-list{flex-direction:column;gap:8px;display:flex}.option-btn{text-align:left;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.5;transition:border-color .15s,opacity .15s}.option-btn:not(:disabled):hover{border-color:var(--accent)}.option-correct{border-color:var(--success);background:var(--success-bg)}.option-incorrect{border-color:var(--fail);background:var(--fail-bg)}.option-dim{opacity:.45}.feedback-box{background:var(--panel-raised);border-radius:8px;margin-top:16px;padding:14px 16px;font-size:13.5px;line-height:1.55}.feedback-box p{margin:0 0 12px}.primer-next-btn{background:var(--accent-dim);color:#fff;border:none;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:600}.primer-next-btn:hover{background:var(--accent)}.process-exercises{gap:14px;max-width:760px;display:grid}.exercise-summary{color:var(--text-dim);font-size:11px}.exercise-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.exercise-done{border-color:#3fb95073}.exercise-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.exercise-head h3{margin:0;font-size:16px}.exercise-card p{color:var(--text-soft);line-height:1.55}.exercise-badge{color:var(--success);background:var(--success-bg);border:1px solid #3fb95059;border-radius:999px;padding:3px 8px;font-size:10px}.vague-update{background:var(--fail-bg);border-left:3px solid var(--fail);border-radius:0 8px 8px 0;margin-bottom:12px;padding:12px 14px}.vague-update span{color:var(--fail);text-transform:uppercase;letter-spacing:0;font-size:10px}.vague-update p{margin:5px 0 0}.standup-textarea{resize:vertical;width:100%;min-height:110px;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);font:inherit;border-radius:8px;outline:none;padding:12px 14px;line-height:1.5}.standup-textarea:focus{border-color:var(--accent)}.rubric-list{color:var(--text-dim);margin:12px 0;padding-left:18px;font-size:13px;line-height:1.6}@media (width<=600px){.board{flex-direction:column}.board-col{max-height:320px}.lifecycle-head{flex-direction:column}.lifecycle-rail{grid-template-columns:1fr;overflow-x:visible}.lifecycle-step:not(:last-child):after{top:auto;bottom:-12px;right:50%;transform:rotate(90deg)}}.pipe{padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);max-width:var(--desktop-page-reading);margin:0 auto}.pipe-intro h2{margin:0 0 8px;font-size:28px}.pipe-intro p{color:var(--text-dim);max-width:760px;font-size:15.5px;line-height:1.55}.pipe-empty{padding:var(--desktop-page-bottom) var(--desktop-page-gutter);text-align:center;max-width:480px;margin:0 auto}.pipe-empty .dim{color:var(--text-dim);margin-top:8px}.pipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:24px;display:grid}.pipe-card{text-align:left;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex}.pipe-card:hover,.pipe-card:focus-visible{border-color:var(--accent);transform:translateY(-1px)}.pipe-card{transition:border-color .15s,transform .12s;position:relative}.pipe-card.card-done{border-color:var(--success)}.card-done-badge{font-family:var(--font-mono);color:var(--success);background:var(--success-bg);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:600;position:absolute;top:12px;right:12px}.pipe-card-title{font-size:15px;font-weight:600}.pipe-card-brief{color:var(--text-dim);font-size:13px;line-height:1.45}.pipe-active{grid-template-columns:1fr 1fr;height:100%;min-height:600px;display:grid}.pipe-side{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;padding:24px;display:flex;overflow-y:auto}.pipe-side h3{margin:0 0 10px;font-size:17px}.pipe-brief{margin-bottom:14px;font-size:13.5px;line-height:1.55}.why-box{background:var(--panel-raised);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;margin-bottom:16px;padding:12px 14px}.why-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0;color:var(--text-dim);margin-bottom:6px;font-size:10.5px;display:block}.why-box p{margin:0;font-size:13.5px;line-height:1.55}.file-label{color:var(--text-dim);margin-bottom:6px;font-size:12px}.code-editor{background:var(--bg);border:1px solid var(--border);min-height:220px;color:var(--text);resize:vertical;border-radius:8px;flex:1;margin-bottom:14px;padding:14px;font-size:13px;line-height:1.6}.code-editor:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}.pipe-action-zone{z-index:2;background:color-mix(in srgb, var(--panel) 92%, transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:9px;margin:auto -24px -24px;padding:13px 24px 18px;display:grid;position:sticky;bottom:-24px;box-shadow:0 -14px 24px #00000038}.pipe-action-status{color:var(--text-soft);font-size:12.5px;line-height:1.4}.pipe-action-running,.pipe-action-ready{color:var(--accent)}.pipe-action-pass{color:var(--success)}.push-btn{background:var(--accent-dim);color:#fff;font-size:13.5px;font-weight:600;font-family:var(--font-mono);border:none;border-radius:7px;padding:11px 16px}.push-btn:hover:not(:disabled){background:var(--accent)}.push-btn:disabled{opacity:.6;cursor:default}.back-btn{color:var(--text-dim);text-align:left;background:0 0;border:none;align-self:flex-start;margin-bottom:16px;padding:0;font-size:13px}.back-btn:hover{color:var(--accent)}.pipe-stages{background:var(--bg);padding:24px;overflow-y:auto}.stages-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:0;margin-bottom:16px;font-size:12px}.pipe-map{background:var(--panel);border:1px solid var(--border-dim);border-radius:10px;margin-bottom:16px;padding:12px}.pipe-map-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.pipe-map-step{border:1px solid var(--border-dim);min-height:62px;color:var(--text-faint);background:var(--void);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.pipe-map-dot{background:var(--panel-raised);width:24px;height:24px;color:var(--text-faint);border-radius:999px;place-items:center;font-size:12px;display:grid}.map-pass{color:var(--success);border-color:#3fb95059}.map-pass .pipe-map-dot{background:var(--success-bg);color:var(--success)}.map-fail,.map-focus{color:var(--fail);background:#f7816614;border-color:#f7816699}.map-fail .pipe-map-dot,.map-focus .pipe-map-dot{background:var(--fail-bg);color:var(--fail)}.map-skipped{opacity:.55}.map-running{color:var(--accent);border-color:#58a6ff80}.map-running .pipe-map-dot{color:var(--accent);animation:1s linear infinite spin}.pipe-diagnosis{border-top:1px solid var(--border-dim);color:var(--text-dim);margin-top:11px;padding-top:11px;font-size:13px;line-height:1.45}.pipe-diagnosis span{letter-spacing:0;color:var(--text-faint);margin-bottom:4px;font-size:10px;display:block}.pipe-diagnosis strong{color:var(--text);margin-bottom:3px;display:block}.pipe-diagnosis p{margin:0}.pipe-diagnosis-fail span,.pipe-diagnosis-fail strong{color:var(--fail)}.pipe-diagnosis-pass span,.pipe-diagnosis-pass strong{color:var(--success)}.stages-empty{color:var(--text-dim);text-align:center;padding:40px 0;font-size:13.5px}.stage-list{flex-direction:column;gap:10px;display:flex}.stage-card{border:1px solid var(--border);background:var(--panel);border-radius:9px;padding:12px 14px}.stage-pass{background:var(--success-bg);border-color:#3fb95066}.stage-fail{background:var(--fail-bg);border-color:#f7816666}.stage-skipped{opacity:.5}.stage-card-top{align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.stage-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:inline-flex}.stage-pass .stage-icon{background:var(--success);color:var(--bg)}.stage-fail .stage-icon{background:var(--fail);color:var(--bg)}.stage-skipped .stage-icon{background:var(--border);color:var(--text-dim)}.spin{background:var(--panel-raised);color:var(--accent);animation:1s linear infinite spin}.stage-log{white-space:pre-wrap;color:var(--text-dim);margin:8px 0 0 30px;font-size:12px;line-height:1.6}.stage-pass .stage-log{color:var(--success);opacity:.85}.stage-fail .stage-log{color:var(--fail)}.pipe-success-banner{background:var(--success-bg);color:var(--success);text-align:center;border:1px solid #3fb95066;border-radius:8px;margin-top:18px;padding:12px 14px;font-size:13.5px}@media (width<=880px){.pipe-active{grid-template-columns:1fr;height:auto;min-height:0}.pipe-side{border-right:none;border-bottom:1px solid var(--border)}.pipe-map-row{grid-template-columns:repeat(2,minmax(0,1fr))}.pipe-action-zone{bottom:0}}@media (width>=881px){.pipe-active{height:var(--desktop-active-lab-height);min-height:0}}.dash{max-width:var(--desktop-page-reading);padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);margin:0 auto}.oc-hero{background:radial-gradient(120% 130% at 80% -10%, #38e0ff1f, transparent 55%), var(--panel);border:1px solid var(--border-mid);border-radius:14px;padding:28px 32px;position:relative;overflow:hidden}.oc-hero-glow{animation:4s ease-in-out infinite glowPulse}.oc-scan{pointer-events:none;background:linear-gradient(#58a6ff1a,#0000);height:40px;animation:5.5s linear infinite scan;position:absolute;top:0;left:0;right:0}.particles{pointer-events:none;position:absolute;inset:0}.particles span{position:absolute}.particles-rise span{width:4px;height:4px;bottom:14px}.particles-fall span{width:6px;height:6px;top:0}.oc-hero-inner{align-items:center;gap:34px;display:flex;position:relative}.oc-ring{flex-shrink:0;width:148px;height:148px;position:relative}.oc-ring-glow{filter:blur(2px);background:conic-gradient(#38e0ff00,#38e0ff73,#38e0ff00);border-radius:50%;animation:6s linear infinite spin;position:absolute;inset:-6px}.oc-ring-track{border-radius:50%;transition:background .6s;position:absolute;inset:0}.oc-ring-core{background:var(--void);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:14px}.oc-ring-pct{color:var(--accent);font-size:22px}.oc-ring-label{color:var(--text-faint);margin-top:6px;font-size:10px}.oc-hero-text{flex:1;min-width:0}.oc-status{letter-spacing:0;text-transform:uppercase;color:var(--text-faint);font-size:11px}.oc-status-up{color:var(--success)}.oc-level{color:var(--text);margin:12px 0 6px;font-size:30px;line-height:1.25}.oc-clocklevel{color:var(--text-faint);font-size:13px}.oc-cycles{margin-top:22px}.oc-cycles-head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.oc-cycles-head .mono{color:var(--text-dim);font-size:13px}.oc-cycles-num{color:var(--cyan);font-weight:600}.oc-cycles-next{color:var(--text-faint);font-size:12px}.oc-cycles-track{background:var(--track);border:1px solid var(--border-dim);border-radius:6px;height:12px;overflow:hidden}.oc-cycles-fill{background:var(--bar);transform-origin:0;border-radius:6px;height:100%;animation:1s cubic-bezier(.22,1,.36,1) both barGrow;box-shadow:0 0 12px #38e0ff99}.dash-cols{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:start;gap:28px;display:grid}.oc-section{justify-content:space-between;align-items:center;margin:30px 2px 14px;display:flex}.oc-section-title{letter-spacing:0;text-transform:uppercase;color:var(--text-faint);font-size:12px}.oc-section-meta{color:var(--text-ghost);font-size:11.5px}.oc-section-meta-arcade{color:var(--accent);font-size:9px}.oc-subs{flex-direction:column;gap:12px;display:flex}.oc-sub{background:var(--panel);border:1px solid var(--border-mid);border-radius:10px;padding:17px 20px}.oc-sub-maxed{border-color:var(--success-edge)}.oc-sub-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.oc-sub-label{color:var(--text);font-size:15px;font-weight:700}.oc-sub-maxed .oc-sub-label{color:var(--text)}.oc-maxed-tag{color:var(--success);margin-left:6px;font-size:8px}.oc-sub-count{color:var(--accent);font-size:13px}.oc-sub-count.count-maxed{color:var(--success)}.oc-sub-track{background:var(--track);border-radius:6px;height:10px;overflow:hidden}.oc-sub-fill{background:var(--bar);transform-origin:0;border-radius:5px;height:100%;animation:1.1s cubic-bezier(.22,1,.36,1) both barGrow}.oc-sub-fill.fill-maxed{background:var(--bar-maxed);box-shadow:0 0 10px #3fb95080}.oc-sub-blurb{color:var(--text-ghost);margin-top:9px;font-size:12px}.oc-badges{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.oc-badge{flex-direction:column;align-items:center;gap:10px;min-height:122px;padding:16px 8px 12px;display:flex;position:relative;overflow:hidden}.oc-badge-icon{width:52px;height:52px;box-shadow:inset 0 0 0 2px var(--void);place-items:center;font-size:14px;display:grid}.oc-badge-title{text-align:center;font-size:7.5px;line-height:1.55}.badge-earned{border:1px solid var(--border-dim);background:#0e1622}.badge-earned .oc-badge-icon{border:3px solid var(--accent);color:var(--accent);box-shadow:inset 0 0 0 2px var(--void), 0 0 14px #58a6ff66;background:#0a1320;animation:3.4s ease-in-out infinite bob}.badge-earned .oc-badge-title{color:var(--text-soft)}.badge-locked{opacity:.55;background:#0b0f16;border:1px solid #161d27}.badge-locked .oc-badge-icon{border:3px solid var(--border-mid);color:var(--text-ghost);filter:grayscale();background:#0c1119}.badge-locked .oc-badge-title{color:var(--text-ghost)}.badge-fresh{background:radial-gradient(120% 120% at 50% 0,#ffc24b24,#0000 60%),#0e1622;border:1px solid #5a4a1e}.badge-fresh .oc-badge-icon{border:3px solid var(--fresh);color:var(--fresh);box-shadow:inset 0 0 0 2px var(--void), 0 0 18px #ffc24b99;background:#1a1606;animation:1.8s ease-in-out infinite glowPulseGold}.badge-fresh .oc-badge-title{color:#ffd98a}.oc-new-tag{color:var(--void);background:var(--fresh);padding:2px 4px;font-size:6px;position:absolute;top:5px;right:5px}.oc-sync{border:1px solid var(--border);max-width:680px;color:var(--text-dim);text-align:center;background:#ffffff06;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:28px auto 0;padding:10px 14px;display:flex}.oc-sync-label{letter-spacing:0;text-transform:uppercase;font-size:11px}.oc-sync-detail{color:var(--text-ghost);font-size:12px}.oc-sync-ok{color:var(--success);background:var(--success-bg);border-color:#3fb95052}.oc-sync-warning{color:var(--fresh);background:#d2992214;border-color:#d2992257}.oc-sync-error{color:var(--fail);background:var(--fail-bg);border-color:#f7816661}.oc-sync-pending{color:var(--accent);background:#58a6ff14;border-color:#58a6ff4d}.oc-sync-retry{color:inherit;background:0 0;border:1px solid;border-radius:7px;padding:5px 10px;font-size:10px}.oc-sync-retry:hover{background:#ffffff0f}.oc-footer{justify-content:center;gap:18px;margin-top:30px;display:flex}.oc-toggle,.oc-reset{border:1px solid var(--border);color:var(--text-faint);background:0 0;border-radius:8px;padding:7px 14px;font-size:11px;transition:color .15s,border-color .15s}.oc-toggle:hover{color:var(--text);border-color:var(--text-dim)}.toggle-on{color:var(--accent)}.toggle-off{color:var(--text-ghost)}.oc-reset:hover{color:var(--fail);border-color:var(--fail)}@media (width<=480px){.dash{padding:24px 18px 48px}.oc-hero{padding:24px 18px}.oc-hero-inner{text-align:center;flex-direction:column}.oc-level{font-size:22px}.oc-badges{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.dash{max-width:720px}.dash-cols{grid-template-columns:1fr;gap:0}}.lp{max-width:var(--desktop-page-wide);padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);grid-template-columns:var(--desktop-sidebar) minmax(0, 1fr);align-items:start;gap:clamp(44px,4vw,58px);margin:0 auto;display:grid}.lp-main{min-width:0;max-width:980px}.lp-side{flex-direction:column;gap:12px;display:flex;position:sticky;top:20px}.lp-side-card{background:var(--panel);border:1px solid var(--border-dim);border-radius:12px;padding:16px}.lp-side-top{align-items:center;gap:9px;margin-bottom:12px;display:flex}.lp-side-lv{color:var(--accent);font-size:9px}.lp-side-clock{color:var(--text-soft);letter-spacing:0;font-size:11.5px}.lp-side-track{background:var(--track);border-radius:5px;height:8px;overflow:hidden}.lp-side-fill{background:var(--bar);transform-origin:0;border-radius:5px;height:100%;animation:.9s cubic-bezier(.22,1,.36,1) both barGrow}.lp-side-sub{color:var(--text-faint);margin-top:9px;font-size:10px}.lp-side-stat{color:var(--text-dim);justify-content:space-between;align-items:baseline;padding:5px 0;font-size:12px;display:flex}.lp-side-stat:not(:last-child){border-bottom:1px solid var(--border-dim)}.lp-side-stat .mono{color:var(--text);font-size:12px}.lp-side-cardtitle{letter-spacing:0;text-transform:uppercase;color:var(--text-faint);margin-bottom:11px;font-size:10px}.lp-side-empty{color:var(--text-ghost);font-size:11px;line-height:1.5}.lp-side-badges{flex-wrap:wrap;gap:8px;display:flex}.lp-side-badge{width:34px;height:34px;color:var(--accent);border:2px solid var(--accent);box-shadow:inset 0 0 0 2px var(--void), 0 0 10px #58a6ff4d;background:#0a1320;place-items:center;font-size:11px;display:grid}.lp-next{text-align:left;border:1px solid var(--accent-dim);color:var(--text);background:linear-gradient(135deg,#1f6feb2e,#38e0ff14);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;transition:border-color .15s,transform .12s;display:flex}.lp-next:hover{border-color:var(--accent);transform:translateY(-1px)}.lp-next-kicker{letter-spacing:0;color:var(--accent);font-size:9px}.lp-next-label{font-size:15px;font-weight:800}.lp-next-sub{color:var(--text-dim);font-size:11.5px;line-height:1.35}.lp-next-go{color:var(--cyan);font-size:11px}.lp-side-progresslink{border:1px solid var(--border);color:var(--text-faint);background:0 0;border-radius:8px;padding:8px;font-size:11px;transition:color .15s,border-color .15s}.lp-side-progresslink:hover{color:var(--accent);border-color:var(--accent)}.lp-intro h2{letter-spacing:0;margin:0 0 9px;font-size:28px;font-weight:900;line-height:1.2}.lp-intro p{color:var(--text-dim);margin:0 0 14px;font-size:15px;line-height:1.55}.lp-clockchip{color:var(--text-faint);background:var(--panel);border:1px solid var(--border-dim);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:11px;display:inline-flex}.lp-clockchip-tag{color:var(--accent);font-size:8px}.lp-clockchip-name{color:var(--text-soft)}.lp-clockchip-div{color:var(--border-mid)}.lp-timeline{margin-top:24px}.lp-phase{gap:16px;display:flex}.lp-rail{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.lp-node{border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:11px;display:grid}.node-active{border:1px solid var(--accent-dim);color:var(--accent);background:#0a1320;animation:3s ease-in-out infinite nodePulse}.node-complete{background:var(--success);color:#06210e;border:1px solid var(--success)}.node-dim{border:1px solid var(--border-mid);color:var(--text-faint);background:#0c1119}.node-ghost{border:1px solid var(--border-dim);color:var(--text-ghost);background:#0c1119;font-size:9px}.lp-conn{background:var(--border-dim);flex:1;width:2px;min-height:20px;margin:6px 0}.lp-conn-live{background:linear-gradient(var(--accent-dim), var(--border-dim))}.lp-body{flex:1;min-width:0;padding-bottom:18px}.lp-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lp-kicker{letter-spacing:0;text-transform:uppercase;color:var(--text-faint);font-size:10px}.lp-title{margin:3px 0;font-size:17px;font-weight:800}.lp-title-soft{color:var(--text-soft)}.lp-tagline{color:var(--text-dim);margin:0;font-size:12px}.lp-pbadge{white-space:nowrap;border-radius:6px;flex-shrink:0;padding:4px 9px;font-size:10px;font-weight:600}.pb-active{color:var(--accent);background:#58a6ff1a;border:1px solid #58a6ff59}.pb-complete{color:var(--success);background:var(--success-bg);border:1px solid var(--success-edge)}.pb-soon{color:var(--text-dim);background:var(--panel-raised);border:1px solid var(--border-mid)}.lp-progress{align-items:center;gap:10px;margin:13px 0;display:flex}.lp-progress-track{background:var(--track);border-radius:5px;flex:1;height:8px;overflow:hidden}.lp-progress-fill{background:var(--bar);transform-origin:0;border-radius:5px;height:100%;animation:1s cubic-bezier(.22,1,.36,1) both barGrow}.lp-progress-fill.fill-maxed{background:var(--bar-maxed)}.lp-progress-count{color:var(--text-dim);font-size:11px}.lp-modules{flex-direction:column;gap:7px;display:flex}.lp-module{text-align:left;background:var(--panel);border:1px solid var(--border-mid);color:var(--text);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;transition:border-color .15s,transform .12s;display:flex}.lp-module:hover:not(:disabled){border-color:var(--accent);transform:translate(2px)}.lp-module:disabled{cursor:default;opacity:.6}.lp-module-done{border-color:var(--success-edge)}.lp-module-text{min-width:0}.lp-module-label{font-size:13px;font-weight:700}.lp-module-check{color:var(--success)}.lp-module-sub{color:var(--text-faint);margin-top:2px;font-size:11px}.lp-module-count{color:var(--accent);flex-shrink:0;font-size:11px}.lp-module-count.count-maxed{color:var(--success)}.lp-topics{grid-template-columns:1fr 1fr;gap:7px 16px;margin:13px 0 0;padding:0;list-style:none;display:grid}.lp-topics li{color:var(--text-dim);padding-left:14px;font-size:11px;position:relative}.lp-topics li:before{content:"›";color:var(--text-ghost);position:absolute;left:0}.lp-ai{background:#58a6ff0d;border:1px solid #58a6ff33;border-radius:8px;align-items:center;gap:9px;margin-top:13px;padding:9px 12px;display:flex}.lp-ai-tag{color:var(--accent);flex-shrink:0;font-size:7px}.lp-ai-text{color:#9db4d0;font-size:11.5px;line-height:1.45}.lp-road-kicker{margin-bottom:9px}.lp-road{flex-direction:column;gap:6px;display:flex}.lp-road-row{opacity:.8;background:#0b0f16;border:1px solid #161d27;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.lp-road-capstone{opacity:1;background:linear-gradient(90deg,#58a6ff0f,#0000);border-color:#234a6e}.lp-road-name{color:#9db0c4;font-size:12.5px;font-weight:600}.lp-road-capstone .lp-road-name{color:var(--text-soft);font-weight:700}.lp-capstone-tag{color:var(--accent);margin-left:7px;font-size:6px}.lp-road-clock{color:var(--text-ghost);font-size:9.5px}.lp-road-clock.clock-live{color:var(--accent)}.lp-footnote{color:var(--text-ghost);text-align:center;margin-top:26px;font-size:10.5px}@media (width<=900px){.lp{grid-template-columns:1fr;gap:22px;max-width:680px}.lp-main{max-width:none}.lp-side{flex-flow:wrap;order:2;position:static}.lp-side>*{flex:1;min-width:200px}}@media (width<=560px){.lp-topics{grid-template-columns:1fr}.lp-head,.lp-side{flex-direction:column}}.learn{max-width:var(--desktop-page-wide);padding:var(--desktop-page-gutter) var(--desktop-page-gutter) var(--desktop-page-bottom);grid-template-columns:var(--desktop-sidebar) minmax(0, 1fr);gap:clamp(34px,3.4vw,48px);margin:0 auto;display:grid}.learn-side{align-self:start;position:sticky;top:24px}.learn-picker-scrim,.learn-mobile-orientation{display:none}.learn-side-head{background:var(--panel);border:1px solid var(--border-dim);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px;display:flex}.learn-side-head strong{margin-top:4px;display:block}.learn-picker-close{color:var(--text-dim);border:1px solid var(--border);background:0 0;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:800;display:none}.learn-chapter-picker{gap:8px;margin-bottom:12px;padding-bottom:2px;display:none;overflow-x:auto}.learn-chapter-chip{min-width:116px;color:var(--text-dim);background:var(--panel);border:1px solid var(--border-dim);border-radius:999px;flex:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.learn-chapter-chip span{font-size:11px;font-weight:800}.learn-chapter-chip strong{color:var(--text-faint);font-family:var(--font-mono);font-size:10px}.learn-chapter-chip-active{color:var(--accent);border-color:var(--accent);background:#58a6ff14}.learn-kicker{color:var(--text-dim);letter-spacing:0;text-transform:uppercase;font-size:10px}.learn-topic-list{flex-direction:column;gap:10px;display:flex}.learn-chapter{border-left:1px solid var(--border-dim);padding:4px 0 12px 12px}.learn-chapter+.learn-chapter{margin-top:8px}.learn-chapter-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.learn-chapter-head strong{margin-top:4px;font-size:13px;line-height:1.3;display:block}.learn-chapter-track,.learn-chapter-count{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:9px}.learn-chapter-count{color:var(--text-faint);flex-shrink:0}.learn-chapter p{color:var(--text-faint);margin:0 0 10px;font-size:12px;line-height:1.45}.learn-chapter-topics{flex-direction:column;gap:8px;display:flex}.learn-topic-btn{text-align:left;background:var(--panel);border:1px solid var(--border-dim);color:var(--text);border-radius:10px;flex-direction:column;gap:6px;padding:15px 16px;transition:border-color .15s,transform .12s;display:flex}.learn-topic-btn:hover,.learn-topic-btn:focus-visible{border-color:var(--accent);transform:translateY(-1px)}.learn-topic-active{border-color:var(--accent);background:linear-gradient(135deg,#1f6feb24,#38e0ff0d)}.learn-topic-track{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:9px}.learn-topic-title{font-size:14px;font-weight:800;line-height:1.35}.learn-topic-meta{color:var(--text-dim);font-size:10px}.learn-check{color:var(--success)}.learn-main{min-width:0}.learn-main-readiness{max-width:980px}.learn-hero{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.learn-hero h2{margin:5px 0 8px;font-size:30px;font-weight:900;line-height:1.15}.learn-hero p{max-width:760px;color:var(--text-dim);margin:0;font-size:15px;line-height:1.55}.learn-status{color:var(--accent);background:#58a6ff14;border:1px solid #58a6ff59;border-radius:7px;flex-shrink:0;padding:6px 10px;font-size:10px}.learn-status-done{color:var(--success);border-color:var(--success-edge);background:var(--success-bg)}.learn-diagram{background:radial-gradient(120% 120% at 80% 0%, #38e0ff1a, transparent 55%), var(--panel);border:1px solid var(--border-mid);border-radius:12px;min-height:180px;margin-bottom:18px;position:relative;overflow:hidden}.diagram-caption{color:var(--text-dim);border-top:1px solid var(--border-dim);align-items:center;gap:14px;padding-top:10px;display:flex;position:absolute;bottom:14px;left:18px;right:18px}.diagram-caption span{color:var(--accent);letter-spacing:0;text-transform:uppercase;flex-shrink:0;font-size:10px}.diagram-caption p{margin:0;font-size:12.5px;line-height:1.4}.git-map{position:relative}.git-lines{pointer-events:none;width:100%;height:180px;position:absolute;inset:0}.git-line{stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.git-main-line{stroke:var(--accent)}.git-feature-line{stroke:var(--success)}.git-dot{border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #58a6ff1f}.main-dot{background:var(--accent)}.feature-dot{background:var(--success);box-shadow:0 0 0 5px #3fb9501f}.dot-a{top:95px;left:11%}.dot-b{top:95px;left:29%}.dot-c{top:55px;left:52.5%}.dot-d{top:55px;left:80.5%}.git-label{color:var(--text-dim);font-size:11px;position:absolute}.git-main-label{top:118px;left:8%}.git-feature-label{color:var(--success);top:74px;right:8%}.pipeline-map{grid-template-columns:repeat(5,1fr);gap:10px;padding:24px 24px 76px;display:grid}.pipe-step{border:1px solid var(--border-mid);background:#0b1018;border-radius:10px;flex-direction:column;justify-content:space-between;min-height:112px;padding:14px;display:flex}.pipe-step-num{color:var(--accent);font-size:12px}.pipe-step-label{font-size:18px;font-weight:900}.pipe-step-note{color:var(--text-faint);text-transform:uppercase;letter-spacing:0;font-size:10px}.flow-map{align-items:center;gap:12px;padding:34px;display:flex}.flow-step{text-align:center;min-height:78px;color:var(--text-soft);border:1px solid var(--border-mid);background:#0b1018;border-radius:10px;flex:1;place-items:center;font-weight:800;display:grid;position:relative}.flow-step:not(:last-child):after{content:">";color:var(--accent);position:absolute;right:-21px}.lint-map,.test-map,.done-map,.command-map,.review-map,.contract-map,.prompt-map,.pr-map,.history-map,.architecture-map,.api-contract-map,.security-map,.quality-map{min-height:230px;padding:24px 24px 78px}.lint-map{gap:10px;display:grid}.lint-row{border:1px solid var(--border-mid);background:#0b1018;border-radius:8px;grid-template-columns:minmax(150px,.8fr) 54px 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.lint-row span{color:var(--text-soft);font-size:11px}.lint-row strong{color:var(--fail);font-size:11px}.lint-pass strong{color:var(--success)}.lint-row p{color:var(--text-dim);margin:0;font-size:13px}.test-map,.done-map,.command-map,.review-map{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:12px;display:grid}.done-map{grid-template-columns:repeat(4,1fr)}.test-step,.done-step,.command-tile,.review-node{border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;padding:16px}.test-step span,.command-tile span,.review-node span{color:var(--accent);font-size:11px}.test-step p,.done-step p,.command-tile p,.review-node p{color:var(--text-soft);margin:12px 0 0;font-size:13px;line-height:1.45}.done-check{color:var(--success);background:var(--success-bg);border:1px solid var(--success-edge);border-radius:5px;margin-bottom:12px;padding:2px 6px;font-size:10px;display:inline-block}.done-step strong{font-size:15px;display:block}.pr-map{place-items:start center;display:grid}.pr-card{border:1px solid var(--border-mid);background:#0b1018;border-radius:10px;width:min(520px,100%);padding:18px}.pr-card>span{color:var(--accent);font-size:11px}.pr-card strong{margin-top:7px;font-size:18px;display:block}.pr-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px;display:grid}.pr-grid span{color:var(--text-soft);background:var(--panel-raised);border:1px solid var(--border);text-align:center;border-radius:7px;padding:9px 8px;font-size:12px;font-weight:700}.history-map{grid-template-rows:1fr 1fr;gap:16px;display:grid}.history-lane{border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;min-height:54px;padding:10px 14px;position:relative}.history-lane span{color:var(--text-dim);font-size:11px}.history-line{background:var(--accent);border-radius:3px;height:3px;position:absolute;top:33px;left:78px;right:34px}.history-dot{background:var(--accent);border-radius:50%;width:16px;height:16px;position:absolute;top:26px;box-shadow:0 0 0 5px #58a6ff1a}.history-dot.feature{background:var(--success);box-shadow:0 0 0 5px #3fb9501a}.history-dot.merge{background:var(--warn);box-shadow:0 0 0 5px #d299221f}.h-a{left:100px}.h-b{left:220px}.h-c{top:12px;left:355px}.h-d{right:64px}.h-e{left:355px}.h-f{right:64px}.contract-map{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.contract-node{border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;padding:16px;position:relative}.contract-node:not(.contract-2):after{content:">";color:var(--accent);position:absolute;top:50%;right:-11px;transform:translateY(-50%)}.contract-node span{color:var(--accent);font-size:11px}.contract-node p{color:var(--text-soft);margin:12px 0 0;font-size:13px;line-height:1.45}.contract-1,.contract-2{border-color:#f7816673}.prompt-map{grid-template-columns:repeat(4,1fr);align-items:start;gap:10px;display:grid}.prompt-token{color:var(--text);border:1px solid var(--border-mid);text-align:center;background:#0b1018;border-radius:8px;padding:14px 10px;font-weight:800}.prompt-output{color:var(--text-soft);border:1px solid var(--success-edge);background:#3fb95014;border-radius:8px;grid-column:1/-1;padding:14px 16px}.prompt-output span{color:var(--success);text-transform:uppercase;letter-spacing:0;font-size:10px}.prompt-output p{margin:5px 0 0;font-size:13px}.architecture-map,.quality-map{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.arch-node,.quality-node{border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;padding:16px;position:relative}.arch-node:not(:last-of-type):after,.quality-node:not(:last-of-type):after{content:">";color:var(--accent);position:absolute;top:50%;right:-11px;transform:translateY(-50%)}.arch-node span,.quality-node span{color:var(--accent);font-size:11px}.arch-node p,.quality-node p{color:var(--text-soft);margin:12px 0 0;font-size:13px;line-height:1.45}.api-contract-map{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.api-contract-piece{min-height:74px;color:var(--text);border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;place-items:center;font-weight:900;display:grid}.api-contract-error{color:var(--text-soft);background:#f7816614;border:1px solid #f781664d;border-radius:8px;grid-column:1/-1;padding:14px 16px}.api-contract-error span{color:var(--fail);letter-spacing:0;text-transform:uppercase;font-size:10px}.api-contract-error p{margin:5px 0 0;font-size:13px;line-height:1.45}.security-map{grid-template-columns:1fr 170px 1fr;align-items:stretch;gap:12px;display:grid}.security-zone,.security-boundary{border:1px solid var(--border-mid);background:#0b1018;border-radius:9px;padding:16px}.security-zone span{color:var(--accent);font-size:11px}.security-zone p{color:var(--text-soft);margin:12px 0 0;font-size:13px;line-height:1.45}.security-zone.untrusted{border-color:#f7816661}.security-zone.trusted{border-color:#3fb95061}.security-boundary{text-align:center;color:var(--warn);letter-spacing:0;text-transform:uppercase;border-color:#d2992261;place-items:center;font-size:11px;display:grid}.learn-exercise{background:var(--panel);border:1px solid var(--border-dim);border-radius:10px;margin-bottom:18px;padding:18px 20px}.learn-exercise-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.learn-exercise-head strong{font-size:16px}.learn-exercise p{color:var(--text-soft);margin:0 0 14px;font-size:14px;line-height:1.6}.learn-artifact{max-height:360px;color:var(--text);border:1px solid var(--border-mid);white-space:pre-wrap;background:#080d14;border-radius:8px;padding:14px 16px;font-size:12px;line-height:1.55;overflow:auto}.learn-related{border-top:1px solid var(--border-dim);margin-top:14px;padding:15px 0 2px}.learn-related-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.learn-related-head p{color:var(--text-dim);margin:0;font-size:12px;line-height:1.45}.learn-related-grid{gap:8px;display:grid}.learn-related-row{grid-template-columns:140px 1fr;align-items:baseline;gap:12px;display:grid}.learn-related-row>span{color:var(--text-dim);letter-spacing:0;text-transform:uppercase;font-size:9px}.learn-related-links{flex-wrap:wrap;gap:7px 12px;display:flex}.learn-related-links button{color:var(--text-soft);background:0 0;border:0;border-bottom:1px solid #58a6ff40;border-radius:0;padding:0 0 2px;font-size:12.5px;line-height:1.35}.learn-related-links button:hover{color:var(--accent);border-bottom-color:var(--accent)}.learn-related-links em{color:var(--text-dim);font-size:12.5px;font-style:normal}.learn-playbook{background:var(--panel);border:1px solid var(--border-dim);border-radius:10px;margin-bottom:18px;padding:18px 20px}.learn-playbook-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:13px;display:grid}.learn-playbook-item{border-left:2px solid var(--accent-dim);min-width:0;padding-left:11px}.learn-playbook-item strong{margin-bottom:7px;font-size:13px;display:block}.learn-playbook-item p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.55}.learn-active-object{background:linear-gradient(135deg, #58a6ff14, #3fb9500d), var(--panel);border:1px solid var(--border-mid);border-radius:10px;margin-bottom:18px;padding:18px 20px}.learn-active-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.learn-active-head strong{font-size:16px}.learn-active-artifact{color:var(--text);border:1px solid var(--border-mid);white-space:pre-wrap;background:#080d14;border-radius:8px;padding:13px 14px;font-size:12px;line-height:1.5}.learn-active-object>p{color:var(--text-soft);margin:13px 0;font-size:14px;font-weight:800;line-height:1.5}.learn-active-options{gap:9px;display:grid}.learn-active-option{text-align:left;color:var(--text);border:1px solid var(--border);background:#0b1018;border-radius:8px;padding:11px 13px;font-size:13px;line-height:1.45}.learn-active-option:hover,.learn-active-option:focus-visible{border-color:var(--accent)}.learn-active-correct{border-color:var(--success);background:var(--success-bg)}.learn-active-wrong{border-color:var(--fail);background:var(--fail-bg)}.learn-active-feedback{color:var(--text-soft);border-left:3px solid var(--accent);background:#0b1018;border-radius:0 8px 8px 0;margin-top:12px;padding:12px 14px;font-size:13.5px;line-height:1.55}.learn-body-grid{grid-template-columns:1.2fr .8fr;gap:14px;display:grid}.learn-reading{grid-row:span 3}.learn-panel,.learn-quiz{background:var(--panel);border:1px solid var(--border-dim);border-radius:10px;padding:18px 20px}.learn-panel h3{margin:0 0 9px;font-size:16px}.learn-section+.learn-section{margin-top:18px}.learn-section p{color:var(--text-soft);margin:0;font-size:14px;line-height:1.65}.learn-list{color:var(--text-soft);margin:0;padding-left:18px;font-size:13px;line-height:1.7}.learn-chip-row{flex-wrap:wrap;gap:8px;display:flex}.learn-chip{color:var(--accent);background:#58a6ff14;border:1px solid #58a6ff38;border-radius:999px;padding:5px 9px;font-size:10.5px}.learn-chip-soft{color:var(--text-soft);font-family:var(--font-sans)}.learn-quiz{margin-top:16px}.learn-quiz-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.learn-quiz-head p{color:var(--text-dim);margin:5px 0 0;font-size:12.5px;line-height:1.45}.learn-done-note{color:var(--success);font-size:10px}.learn-check-card{border:1px solid var(--border-dim);background:#0b1018;border-radius:9px;margin-top:15px;padding:16px}.learn-check-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.learn-check-meta{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:10px}.learn-check-score{color:var(--text-dim);letter-spacing:0;text-transform:uppercase;margin-top:5px;font-size:10px}.learn-check-dots{gap:7px;padding-top:4px;display:flex}.learn-check-dot{background:var(--panel-raised);border:1px solid var(--border);border-radius:50%;width:11px;height:11px;padding:0}.learn-check-dot-active{border-color:var(--accent);box-shadow:0 0 0 4px #58a6ff1a}.learn-check-dot-correct{background:var(--success);border-color:var(--success)}.learn-check-dot-wrong{background:var(--fail);border-color:var(--fail)}.learn-quiz-prompt{margin:12px 0 14px;font-size:16px;font-weight:700;line-height:1.45}.learn-options{gap:9px;display:grid}.learn-option{text-align:left;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.45}.learn-option:hover:not(:disabled),.learn-option:focus-visible{border-color:var(--accent)}.learn-option-correct{border-color:var(--success);background:var(--success-bg)}.learn-option-wrong{border-color:var(--fail);background:var(--fail-bg)}.learn-option-dim{opacity:.55}.learn-feedback{color:var(--text-soft);border-left:3px solid var(--accent);background:#0b1018;border-radius:0 8px 8px 0;margin-top:12px;padding:12px 14px;font-size:13.5px;line-height:1.55}.learn-quiz-result{color:var(--warn);background:#d2992214;border:1px solid #d2992247;border-radius:8px;margin-top:12px;padding:11px 13px;font-size:13px;line-height:1.45}.learn-quiz-result-pass{color:var(--success);background:var(--success-bg);border-color:var(--success-edge)}.learn-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.learn-primary,.learn-secondary{border-radius:8px;padding:10px 14px;font-weight:700}.learn-primary{background:var(--accent-dim);border:1px solid var(--accent-dim);color:#fff}.learn-primary:disabled{opacity:.5;cursor:default}.learn-secondary{border:1px solid var(--border);color:var(--text-dim);background:0 0}.learn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.readiness-launcher{border-top:1px solid var(--border-dim);justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding-top:16px;display:flex}.readiness-launcher strong{margin-top:5px;font-size:15px;display:block}.readiness-launcher p{max-width:720px;color:var(--text-dim);margin:5px 0 0;font-size:12.5px;line-height:1.45}.readiness-test{background:var(--panel);border:1px solid var(--border-mid);border-radius:10px;padding:20px}.readiness-back{color:var(--text-dim);border:1px solid var(--border);background:0 0;border-radius:8px;margin-bottom:18px;padding:8px 11px;font-size:12px;font-weight:800}.readiness-back:hover{color:var(--accent);border-color:var(--accent)}.readiness-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.readiness-head h3{margin:6px 0 8px;font-size:20px}.readiness-head p{max-width:760px;color:var(--text-dim);margin:0;font-size:14px;line-height:1.55}.readiness-score{color:var(--accent);background:#58a6ff14;border:1px solid #58a6ff47;border-radius:7px;flex-shrink:0;padding:6px 10px;font-size:11px}.readiness-pass{color:var(--success);background:var(--success-bg);border-color:var(--success-edge)}.readiness-card{border:1px solid var(--border-dim);background:#0b1018;border-radius:9px;min-width:0;padding:16px}.readiness-card-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.readiness-step{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin-bottom:8px;font-size:10px}.readiness-domains{flex-wrap:wrap;gap:6px;display:flex}.readiness-domains span{color:var(--accent);background:#58a6ff14;border:1px solid #58a6ff33;border-radius:999px;padding:4px 7px;font-size:9px}.readiness-dots{gap:7px;padding-top:3px;display:flex}.readiness-dot{background:var(--panel-raised);border:1px solid var(--border);border-radius:50%;width:11px;height:11px;padding:0}.readiness-dot-active{border-color:var(--accent);box-shadow:0 0 0 4px #58a6ff1a}.readiness-dot-correct{background:var(--success);border-color:var(--success)}.readiness-dot-wrong{background:var(--fail);border-color:var(--fail)}.readiness-card>p{color:var(--text);margin:0 0 14px;font-size:15px;font-weight:700;line-height:1.5}.readiness-options{gap:8px;display:grid}.readiness-option{text-align:left;color:var(--text-soft);background:var(--panel-raised);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.readiness-option:hover:not(:disabled),.readiness-option:focus-visible{border-color:var(--accent)}.readiness-correct{border-color:var(--success);background:var(--success-bg)}.readiness-wrong{border-color:var(--fail);background:var(--fail-bg)}.readiness-dim{opacity:.55}.readiness-feedback{color:var(--text-soft);border-left:3px solid var(--accent);margin-top:10px;padding:8px 11px;font-size:13px;line-height:1.5}@media (width<=900px){.learn{grid-template-columns:1fr;gap:0;max-width:760px;position:relative}.learn-main{order:1}.learn-side{z-index:30;background:var(--void);border:1px solid var(--border-mid);opacity:0;pointer-events:none;border-radius:12px;flex-direction:column;max-width:560px;margin:0 auto;padding:14px;transition:opacity .16s,transform .16s;display:flex;position:fixed;inset:104px 14px 18px;transform:translateY(10px);box-shadow:0 22px 80px #00000073}.learn-side-open{opacity:1;pointer-events:auto;transform:translateY(0)}.learn-picker-is-open .learn-picker-scrim{z-index:20;background:#010409ad;border:0;border-radius:0;padding:0;display:block;position:fixed;inset:0}.learn-side-head{flex-shrink:0;padding:13px 14px}.learn-picker-close{display:inline-flex}.learn-chapter-picker{flex-shrink:0;display:flex}.learn-topic-list{min-height:0;padding-right:2px;overflow-y:auto}.learn-chapter{display:none}.learn-chapter-active{display:block}.learn-chapter+.learn-chapter{margin-top:0}.learn-mobile-orientation{z-index:8;background:var(--void);border-bottom:1px solid var(--border-dim);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:-2px 0 16px;padding:10px 0 12px;display:grid;position:sticky;top:0}.learn-mobile-orientation div{min-width:0}.learn-mobile-orientation strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.35;display:block;overflow:hidden}.learn-mobile-orientation>span:last-child{color:var(--text-dim);font-size:11px}.learn-topic-picker-button{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:12px;font-weight:800}.learn-topic-picker-button:hover,.learn-picker-close:hover{color:var(--accent);border-color:var(--accent)}.learn-body-grid{grid-template-columns:1fr}.learn-reading{grid-row:auto}.learn-related-row{grid-template-columns:1fr;gap:5px}.learn-playbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pipeline-map,.test-map,.done-map,.command-map,.review-map,.contract-map,.prompt-map,.architecture-map,.api-contract-map,.security-map,.quality-map{grid-template-columns:1fr}.flow-map{flex-direction:column}.flow-step:not(:last-child):after,.contract-node:not(.contract-2):after,.arch-node:not(:last-of-type):after,.quality-node:not(:last-of-type):after{display:none}.pr-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.learn{padding:24px 18px 48px}.learn-hero{flex-direction:column}.learn-hero h2{font-size:24px}.readiness-head{flex-direction:column}.git-map,.pipeline-map,.lint-map,.test-map,.done-map,.command-map,.review-map,.contract-map,.prompt-map,.pr-map,.history-map,.architecture-map,.api-contract-map,.security-map,.quality-map{padding:18px 18px 80px}.lint-row,.pr-grid,.learn-playbook-grid{grid-template-columns:1fr}}.env-next{border:1px solid var(--accent);background:linear-gradient(135deg,#1f6feb38,#38e0ff14)}.env-next span:first-child{color:var(--cyan);font-size:11px}.env-flow{border:1px solid var(--border-dim);background:#0b1018;border-radius:8px;margin-top:18px;padding:14px}.env-flow-head{gap:5px;margin-bottom:12px;display:grid}.env-flow-head span{color:var(--accent);text-transform:uppercase;font-size:11px}.env-flow-head small{color:var(--text-soft);line-height:1.45}.env-flow-steps{gap:8px;display:grid}.env-flow-step{border:1px solid var(--border-dim);background:#ffffff06;border-radius:7px;grid-template-columns:34px 1fr;align-items:center;gap:3px 10px;padding:9px 10px;display:grid;position:relative}.env-flow-step:not(:last-child):after{content:"";background:var(--border);width:2px;height:9px;position:absolute;bottom:-9px;left:26px}.env-flow-active{background:#58a6ff13;border-color:#58a6ff6b}.env-flow-index{color:var(--text-faint);grid-row:span 2;font-size:11px}.env-flow-step strong{color:var(--text);overflow-wrap:anywhere;font-size:13px;line-height:1.25}.env-flow-step span:last-child{color:var(--text-soft);font-size:11.5px;line-height:1.35}.env-editor{flex-direction:column;min-height:0;display:flex;overflow:hidden}.env-file-tabs{border-bottom:1px solid var(--border-dim);gap:6px;padding:10px;display:flex;overflow-x:auto}.env-file-tab{background:var(--void);color:var(--text-dim);border:1px solid var(--border);white-space:nowrap;border-radius:7px;padding:8px 10px}.env-file-active{color:var(--text);border-color:var(--accent)}.env-textarea{flex:1;min-height:0;padding:18px;font-size:14px}@media (width<=900px){.env,.env-active,.env-empty{padding:18px}.env-editor{min-height:520px}.env-textarea{min-height:420px}}.arch-next{border:1px solid var(--success-edge);background:linear-gradient(135deg,#3fb9502e,#58a6ff14)}.arch-next span:first-child,.arch-flow-node span,.arch-artifact-head span{color:var(--cyan);font-size:11px}.arch-flow{border:1px solid var(--border-dim);border-radius:8px;margin-top:18px;padding:14px}.arch-connection-selected{background:#58a6ff14;border-color:#58a6ff57}.api-next{border:1px solid var(--success-edge);background:linear-gradient(135deg,#3fb9502e,#58a6ff14)}.api-next span:first-child,.api-flow-node span,.api-artifact-head span{color:var(--cyan);font-size:11px}.api-flow{border:1px solid var(--border-dim);border-radius:8px;margin-top:18px;padding:14px}:root{--void:#0a0e14;--bg:#0a0e14;--panel:#0d1117;--panel-raised:#11161f;--track:#070a10;--border:#232c3a;--border-dim:#1c2430;--border-mid:#2b3648;--text:#e6edf3;--text-soft:#c9d4e3;--text-dim:#8b949e;--text-faint:#7b889b;--text-ghost:#5f6f86;--accent:#58a6ff;--accent-dim:#1f6feb;--cyan:#38e0ff;--success:#3fb950;--success-bg:#3fb9501f;--success-edge:#1d4b2a;--fail:#f78166;--fail-bg:#f781661f;--warn:#d29922;--warn-bg:#d299221f;--fresh:#ffc24b;--bar:linear-gradient(90deg, #1f6feb, #58a6ff 60%, #38e0ff);--bar-maxed:linear-gradient(90deg, #2ea043, #3fb950);--font-mono:"JetBrains Mono", "SF Mono", Consolas, monospace;--font-sans:"Inter", -apple-system, sans-serif;--font-arcade:"Press Start 2P", "JetBrains Mono", monospace;--desktop-chrome-height:138px;--desktop-page-gutter:clamp(34px, 3.2vw, 44px);--desktop-page-bottom:72px;--desktop-page-wide:1440px;--desktop-page-reading:1120px;--desktop-sidebar:360px;--desktop-active-lab-height:calc(100vh - var(--desktop-chrome-height))}*{box-sizing:border-box}html,body,#root{background:var(--void);height:100%;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}code,.mono{font-family:var(--font-mono)}.arcade{font-family:var(--font-arcade)}::selection{background:var(--accent-dim);color:#fff}button{cursor:pointer;color:inherit;font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--cyan)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--void)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.env-primary,.arch-primary,.api-primary,.learn-primary,.primary-btn,.push-btn,.env-secondary,.arch-secondary,.api-secondary,.learn-secondary,.secondary-btn{border-radius:8px;font-weight:800}.env-primary,.arch-primary,.api-primary,.primary-btn,.push-btn{background:var(--accent);color:#07111f;border:1px solid var(--accent)}.env-primary:hover:not(:disabled),.arch-primary:hover:not(:disabled),.api-primary:hover:not(:disabled),.primary-btn:hover:not(:disabled),.push-btn:hover:not(:disabled){background:var(--cyan);border-color:var(--cyan);color:#07111f}.env-primary:disabled,.arch-primary:disabled,.api-primary:disabled,.push-btn:disabled,.learn-primary:disabled{opacity:.6;cursor:default}.env-secondary,.arch-secondary,.api-secondary,.secondary-btn{background:var(--void);color:var(--text);border:1px solid var(--border)}.env-secondary:hover:not(:disabled),.arch-secondary:hover:not(:disabled),.api-secondary:hover:not(:disabled),.secondary-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.learn-secondary:disabled{opacity:.45;cursor:default}.card-done-badge,.env-done,.arch-done,.api-done{color:var(--success);font-size:11px}.env-card,.arch-card,.api-card,.pipe-card,.scenario-card{text-align:left;background:var(--panel);border:1px solid var(--border);color:var(--text);position:relative}.env-card:hover,.arch-card:hover,.api-card:hover,.pipe-card:hover,.scenario-card:hover{border-color:var(--accent)}.env-card-done,.arch-card-done,.api-card-done{border-color:var(--success-edge);background:linear-gradient(180deg, #3fb9501f, var(--panel))}.env,.env-active,.env-empty,.arch,.arch-active,.arch-empty,.api,.api-active,.api-empty{padding:var(--desktop-page-gutter)}.env-intro,.arch-intro,.api-intro{max-width:900px;margin-bottom:24px}.env-kicker,.arch-kicker,.api-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:0;margin-bottom:10px;font-size:12px;display:block}.env-intro h2,.env-side h2,.arch-intro h2,.arch-side h2,.api-intro h2,.api-side h2{margin:0 0 10px;font-size:32px}.env-intro p,.env-side p,.arch-intro p,.arch-side p,.api-intro p,.api-side p{color:var(--text-soft);margin:0;line-height:1.6}.env-next,.arch-next,.api-next{text-align:left;width:min(720px,100%);color:var(--text);border-radius:8px;gap:7px;margin-bottom:22px;padding:18px 20px;display:grid}.env-next strong,.arch-next strong,.api-next strong{font-size:19px}.env-next span:last-child,.arch-next span:last-child,.api-next span:last-child,.env-goal,.arch-goal,.api-goal{color:var(--text-soft);line-height:1.45}.env-grid,.arch-grid,.api-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.env-card,.arch-card,.api-card{border-radius:8px;flex-direction:column;gap:11px;min-height:176px;padding:18px;display:flex}.env-done,.arch-done,.api-done{position:absolute;top:14px;right:14px}.env-tier,.arch-tier,.api-tier{color:var(--text-faint);font-size:11px}.env-title,.arch-title,.api-title{font-size:18px;font-weight:800}.env-active,.arch-active,.api-active{grid-template-columns:minmax(300px,390px) minmax(420px,1fr);gap:18px;display:grid}.env-side,.env-editor,.env-lock-panel,.arch-side,.arch-work,.arch-lock-panel,.api-side,.api-work,.api-lock-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px}.env-side,.arch-side,.arch-work,.api-side,.api-work{padding:22px;overflow-y:auto}.env-back,.arch-back,.api-back{color:var(--text-dim);background:0 0;border:0;margin-bottom:22px;padding:0}.env-back:hover,.arch-back:hover,.api-back:hover{color:var(--text)}.env-why,.env-goal-box,.arch-why,.arch-goal-box,.api-why,.api-goal-box{border:1px solid var(--border-dim);background:var(--void);border-radius:8px;margin-top:18px;padding:14px}.env-why span,.env-goal-box span,.arch-why span,.arch-goal-box span,.api-why span,.api-goal-box span{color:var(--accent);text-transform:uppercase;font-size:11px}.env-why p,.env-goal-box p,.arch-why p,.arch-goal-box p,.api-why p,.api-goal-box p{margin-top:8px}.env-actions,.arch-actions,.api-actions{flex-wrap:wrap;gap:10px;display:flex}.arch-actions,.api-actions{margin-top:16px}.env-actions{margin-top:18px}.env-action-zone,.arch-action-zone,.api-action-zone{z-index:2;background:color-mix(in srgb, var(--panel) 92%, transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;margin-bottom:-22px;margin-left:-22px;margin-right:-22px;padding:14px 22px 18px;position:sticky;bottom:-22px;box-shadow:0 -14px 24px #0003}.arch-action-zone,.api-action-zone{margin-top:18px}.env-primary,.env-secondary,.arch-primary,.arch-secondary,.api-primary,.api-secondary{padding:11px 14px}.env-result,.env-saved,.arch-result,.arch-saved,.api-result,.api-saved{border-radius:8px;flex:1 0 100%;margin-top:0;padding:13px;line-height:1.5}.env-action-zone .completion-recap,.arch-action-zone .completion-recap,.api-action-zone .completion-recap{flex:1 0 100%;width:100%;margin-top:0}.env-saved,.env-pass,.arch-saved,.arch-pass,.api-saved,.api-pass{background:var(--success-bg);border:1px solid var(--success-edge);color:var(--text)}.env-fail,.arch-fail,.api-fail{background:var(--warn-bg);color:var(--text);border:1px solid #d2992266}.env-lock-panel,.arch-lock-panel,.api-lock-panel{max-width:560px;padding:20px}.env-lock-count,.arch-lock-count,.api-lock-count{color:var(--text-soft);margin-bottom:12px}.env-lock-track,.arch-lock-track,.api-lock-track{background:var(--void);border-radius:999px;height:11px;margin-bottom:18px;overflow:hidden}.env-lock-fill,.arch-lock-fill,.api-lock-fill{background:var(--bar);height:100%}.env-empty .env-primary,.arch-empty .arch-primary,.api-empty .api-primary{margin-top:14px}.arch-flow,.api-flow{background:#0b1018;gap:8px;display:grid}.arch-flow-node,.api-flow-node{border:1px solid var(--border-dim);background:#ffffff06;border-radius:7px;grid-template-columns:34px 1fr;align-items:center;gap:3px 10px;padding:10px;display:grid;position:relative}.arch-flow-node:not(:last-child):after,.api-flow-node:not(:last-child):after{content:"";background:var(--border);width:2px;height:9px;position:absolute;bottom:-9px;left:26px}.arch-flow-node span,.api-flow-node span{color:var(--text-faint);grid-row:span 2}.arch-flow-node strong,.api-flow-node strong{color:var(--text);overflow-wrap:anywhere;font-size:13px;line-height:1.25}.arch-flow-node p,.api-flow-node p{color:var(--text-soft);font-size:11.5px;line-height:1.35}.arch-work,.api-work{min-width:0}.arch-artifact-head,.api-artifact-head{gap:6px;margin-bottom:12px;display:grid}.arch-artifact-head span,.api-artifact-head span{text-transform:uppercase;letter-spacing:0}.arch-artifact-head strong,.api-artifact-head strong{font-size:16px}.arch-artifact,.api-artifact{max-height:430px;color:var(--text);border:1px solid var(--border-mid);white-space:pre-wrap;background:#070a10;border-radius:8px;padding:18px;font-size:13px;line-height:1.58;overflow:auto}.arch-options,.api-options,.arch-connections{gap:10px;margin-top:16px;display:grid}.arch-option,.api-option{text-align:left;min-height:74px;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:8px;grid-template-columns:34px 1fr;align-items:start;gap:12px;padding:13px 14px;display:grid}.arch-option:hover:not(:disabled),.api-option:hover:not(:disabled){border-color:var(--accent)}.arch-option:focus-visible,.api-option:focus-visible,.arch-step-option:focus-visible,.arch-order-step:focus-visible,.arch-connection:focus-visible,.api-step-option:focus-visible,.api-order-step:focus-visible{border-color:var(--cyan)}.arch-option span,.api-option span{width:28px;height:28px;color:var(--accent);border:1px solid #58a6ff47;border-radius:6px;place-items:center;display:grid}.arch-option p,.api-option p{color:var(--text-soft);margin:0;line-height:1.48}.arch-option-correct,.api-option-correct{border-color:var(--success-edge);background:var(--success-bg)}.arch-option-wrong,.api-option-wrong{border-color:var(--fail);background:var(--fail-bg)}.arch-option-dim,.api-option-dim{opacity:.55}.arch-sequence,.api-sequence{grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);gap:14px;margin-top:16px;display:grid}.arch-sequence-column,.api-sequence-column{align-content:start;gap:10px;min-width:0;display:grid}.arch-sequence-label,.api-sequence-label{color:var(--cyan);text-transform:uppercase;letter-spacing:0;font-size:11px}.arch-step-option,.arch-order-step,.arch-connection,.api-step-option,.api-order-step{text-align:left;width:100%;min-height:82px;color:var(--text);border-radius:8px;grid-template-columns:54px 1fr;align-items:start;gap:12px;padding:13px 14px;display:grid}.arch-step-option,.arch-connection,.api-step-option{background:var(--panel-raised);border:1px solid var(--border)}.arch-step-option:hover:not(:disabled),.arch-order-step:hover:not(:disabled),.arch-connection:hover:not(:disabled),.api-step-option:hover:not(:disabled),.api-order-step:hover:not(:disabled){border-color:var(--accent)}.arch-step-option:disabled,.api-step-option:disabled{opacity:.56}.arch-step-option span,.arch-order-step span,.arch-connection span,.api-step-option span,.api-order-step span{color:var(--accent);font-size:11px;line-height:1.45}.arch-step-option p,.arch-order-step p,.arch-connection p,.arch-order-empty,.api-step-option p,.api-order-step p,.api-order-empty{color:var(--text-soft);margin:0;line-height:1.48}.arch-order-list,.api-order-list{border:1px dashed var(--border-mid);background:#070a10;border-radius:8px;align-content:start;gap:10px;min-height:266px;padding:12px;display:grid}.arch-order-empty,.api-order-empty{padding:12px}.arch-order-step,.api-order-step,.arch-connection-selected{background:#58a6ff14;border:1px solid #58a6ff3d}@media (width<=900px){.env-active,.arch-active,.api-active,.arch-sequence,.api-sequence{grid-template-columns:1fr}}@media (width>=901px){.env-active,.arch-active,.api-active{height:var(--desktop-active-lab-height);min-height:0}}@media (width<=560px){.arch,.arch-active,.arch-empty,.api,.api-active,.api-empty{padding:24px 18px 48px}.arch-intro h2,.arch-side h2,.api-intro h2,.api-side h2{font-size:26px}.arch-option,.arch-step-option,.arch-order-step,.arch-connection,.api-option,.api-step-option,.api-order-step{grid-template-columns:1fr}}.env-textarea{resize:none;width:100%;color:var(--text);background:#070a10;border:0;outline:none;line-height:1.6}.env-textarea:focus-visible,.code-editor:focus-visible,.terminal-input:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}.shell{flex-direction:column;width:100vw;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border-dim);background:var(--panel);flex-shrink:0;justify-content:space-between;align-items:center;gap:22px;min-height:82px;padding:19px 32px;display:flex}.brand{align-items:center;gap:15px;display:flex}.brand-mark{color:var(--accent);font-size:18px}.brand-text{flex-direction:column;gap:1px;display:flex}.brand-title{font-family:var(--font-mono);color:var(--text);font-size:17px;font-weight:600}.brand-sub{color:var(--text-faint);font-size:13px}.topbar-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.auth-panel{flex-shrink:0;position:relative}.auth-trigger{background:var(--void);border:1px solid var(--border-mid);border-radius:999px;align-items:center;gap:10px;min-height:43px;padding:7px 13px;transition:border-color .15s,background .15s;display:flex}.auth-trigger:hover{border-color:var(--accent)}.auth-dot{background:var(--text-ghost);border-radius:999px;width:9px;height:9px;box-shadow:0 0 0 4px #7b889b1f}.auth-supabase-ready .auth-dot{background:var(--success);box-shadow:0 0 0 4px #3fb95024}.auth-signed-in .auth-dot{background:var(--success);box-shadow:0 0 0 4px #3fb9502e}.auth-blocked .auth-dot{background:var(--fail);box-shadow:0 0 0 4px #f7816624}.auth-copy{text-align:left;gap:1px;line-height:1.05;display:grid}.auth-copy strong{max-width:118px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.auth-copy small{max-width:118px;color:var(--text-dim);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.auth-menu{z-index:20;background:var(--panel);border:1px solid var(--border-mid);border-radius:8px;gap:12px;width:min(310px,100vw - 24px);padding:14px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 44px #00000057}.auth-cloud{gap:10px;display:grid}.auth-menu-copy{gap:4px;display:grid}.auth-menu-copy strong{color:var(--text);font-size:13px}.auth-menu-copy span,.auth-menu label{color:var(--text-dim);font-size:12px;line-height:1.45}.auth-menu label{color:var(--text-soft);gap:7px;font-weight:700;display:grid}.auth-menu input{width:100%;min-height:38px;color:var(--text);background:var(--void);border:1px solid var(--border);font:inherit;border-radius:6px;padding:8px 10px}.auth-save{min-height:38px;color:var(--void);background:var(--accent);border:0;border-radius:6px;padding:8px 12px;font-weight:800}.auth-save:disabled,.auth-secondary:disabled{cursor:not-allowed;opacity:.58}.auth-secondary{min-height:38px;color:var(--text);background:var(--void);border:1px solid var(--border-mid);border-radius:6px;padding:8px 12px;font-weight:800}.auth-status{border-radius:6px;padding:9px 10px;font-size:12px;line-height:1.35}.auth-notice{color:var(--success);background:#3fb95014;border:1px solid #3fb95038}.auth-error{color:var(--fail);background:#f7816614;border:1px solid #f781663d}.header-progress{background:var(--void);border:1px solid var(--border-mid);border-radius:999px;flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;transition:border-color .15s;display:flex}.header-progress:hover{border-color:var(--accent)}.hp-level{color:var(--accent);font-size:10px}.hp-bar-track{background:var(--panel-raised);border-radius:5px;width:118px;height:9px;overflow:hidden}.hp-bar-track:focus{outline:none}.hp-bar-fill{background:var(--bar);transform-origin:0;height:100%;animation:.9s cubic-bezier(.22,1,.36,1) both barGrow;display:block}.hp-pct{color:var(--text-dim);text-align:right;min-width:38px;font-size:13px}.tabs{background:var(--panel);border-bottom:1px solid var(--border-dim);flex-shrink:0;gap:12px;padding:0 28px;display:flex;overflow-x:auto}.tab{color:var(--text-faint);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:16px 18px;font-size:16px;font-weight:600;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab:focus-visible,.mobile-nav-tab:focus-visible,.mobile-lab-option:focus-visible,.header-progress:focus-visible,.auth-trigger:focus-visible,.auth-menu input:focus-visible,.auth-save:focus-visible{z-index:1;position:relative}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.mobile-nav{display:none}.content{background:var(--void);flex:1;overflow-y:auto}@media (width<=720px){.topbar{min-height:70px;padding:14px 16px}.brand-mark{font-size:15px}.brand-title{font-size:14px}.brand-sub{font-size:10.5px}.topbar-actions{gap:8px}.auth-trigger{min-height:36px;padding:6px 9px}.auth-copy strong{max-width:80px;font-size:11px}.auth-copy small{max-width:80px;font-size:9px}.header-progress{gap:8px;padding:6px 10px}.hp-level{font-size:8px}.hp-bar-track{width:72px;height:7px}.hp-pct{min-width:30px;font-size:10.5px}.tabs{display:none}.mobile-nav{background:var(--panel);border-bottom:1px solid var(--border-dim);flex-shrink:0;gap:0;display:grid}.mobile-nav-primary{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;display:grid}.mobile-nav-tab{min-width:0;min-height:52px;color:var(--text-faint);background:0 0;border:0;border-bottom:3px solid #0000;align-content:center;place-items:center;gap:2px;padding:8px 4px;font-size:13px;font-weight:800;line-height:1.1;display:grid}.mobile-nav-tab span,.mobile-nav-tab small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-nav-tab small{color:var(--text-dim);font-family:var(--font-mono);font-size:9.5px;font-weight:600}.mobile-nav-active{color:var(--accent);border-bottom-color:var(--accent);background:#58a6ff14}.mobile-nav-active small{color:var(--text-soft)}.mobile-lab-menu{background:var(--void);border-top:1px solid var(--border-dim);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 12px 12px;display:grid}.mobile-lab-option{min-width:0;min-height:42px;color:var(--text-soft);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:9px 10px;font-size:12px;font-weight:700;line-height:1.2}.mobile-lab-active{color:var(--accent);border-color:var(--accent);background:#58a6ff1a}}@media (width<=420px){.topbar{gap:10px}.brand,.brand-text{min-width:0}.brand-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-progress{flex:none}}
