:root{--bg: #0d0f14;--bg-soft: #14171f;--panel: #1a1e28;--panel-2: #222734;--ink: #e7e9ee;--ink-dim: #a3a9b8;--ink-faint: #6a7080;--line: #2a2f3c;--orange: #e87d0d;--orange-soft: #f5a04a;--blue: #4a8cff;--green: #3fcf8e;--red: #ff6b6b;--yellow: #ffce5c;--radius: 12px;--shadow: 0 12px 44px rgba(0, 0, 0, .45);--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(1100px 520px at 85% -8%,rgba(232,125,13,.16),transparent 60%),radial-gradient(800px 460px at -8% 4%,rgba(74,140,255,.1),transparent 55%),var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.65;min-height:100vh}a{color:var(--orange-soft)}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:#0d0f14b8;backdrop-filter:blur(10px)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;text-decoration:none;color:var(--ink)}.brand-cube{width:16px;height:16px;border-radius:4px;transform:rotate(45deg);background:linear-gradient(135deg,var(--orange),var(--orange-soft));box-shadow:0 0 18px #e87d0d8c}.site-nav{display:flex;gap:22px;align-items:center}.site-nav a{color:var(--ink-dim);text-decoration:none;font-size:.92rem}.site-nav a:hover{color:var(--ink)}.site-footer{border-top:1px solid var(--line);margin-top:70px;padding:24px 0;color:var(--ink-faint);font-size:.85rem}.hero{padding:58px 0 22px}.hero h1{font-size:2.5rem;line-height:1.1;margin:0 0 14px;max-width:880px;background:linear-gradient(120deg,#fff,var(--orange-soft) 70%,var(--orange));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero p{font-size:1.12rem;color:var(--ink-dim);max-width:720px;margin:0 0 8px}.philosophy{margin-top:18px;padding:16px 20px;border-left:3px solid var(--orange);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-dim)}.philosophy strong{color:var(--ink)}.pipeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;margin:34px 0}.stage-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.stage-card .stage-tag{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--orange)}.stage-card h3{margin:6px 0 4px;font-size:1.05rem}.stage-card p{margin:0;color:var(--ink-faint);font-size:.85rem}.pipeline-arrow{color:var(--ink-faint);font-size:1.4rem;text-align:center}@media(max-width:760px){.pipeline{grid-template-columns:1fr}.pipeline-arrow{transform:rotate(90deg)}}.stage-group{margin-top:40px}.stage-group>h2{font-size:1.4rem;margin:0 0 4px}.stage-group>.stage-blurb{color:var(--ink-dim);margin:0 0 16px}.module-list{display:grid;gap:12px}.module-card{display:block;text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;transition:transform .12s ease,border-color .12s ease}.module-card:hover{transform:translate(4px);border-color:var(--orange)}.module-card .mc-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}.module-card h3{margin:0;font-size:1.12rem;flex:1}.mc-min{color:var(--ink-faint);font-size:.82rem}.module-card .mc-hook{color:var(--ink-dim);font-size:.95rem;margin:0}.course-card{padding:22px 24px}.course-num{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--orange)}.course-blurb{color:var(--ink-faint);font-size:.9rem;margin:8px 0 0}.course-flow{display:inline-block;margin-top:12px;font-size:.8rem;color:var(--blue)}.track-chip{font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:99px;border:1px solid var(--line);color:var(--ink-dim)}.track-A{color:var(--orange-soft);border-color:#e87d0d80}.track-B{color:var(--blue);border-color:#4a8cff80}.track-C{color:var(--green);border-color:#3fcf8e80}.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:none;background:linear-gradient(135deg,var(--orange),var(--orange-soft));color:#1a1206;border:none;border-radius:10px;padding:10px 18px;font:inherit;font-weight:800;transition:filter .12s,transform .08s}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-dim);font-weight:600}.btn-ghost:hover{color:var(--ink);border-color:var(--ink-faint);filter:none}.btn-small{padding:7px 13px;font-size:.85rem}.deck{position:fixed;inset:64px 0 66px;overflow:hidden}.slide{position:absolute;inset:0;overflow-y:auto;padding:40px 24px 48px;opacity:0;pointer-events:none;transition:opacity .28s ease}.slide.active{opacity:1;pointer-events:auto}.slide-inner{max-width:880px;margin:0 auto}.slide-center{min-height:100%;display:flex;flex-direction:column;justify-content:center}.deck-h1{font-size:2.4rem;line-height:1.1;margin:8px 0 18px;background:linear-gradient(120deg,#fff,var(--orange-soft) 70%,var(--orange));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.slide-h2{font-size:1.5rem;margin:0 0 16px}.pattern-big{font-size:1.2rem;line-height:1.55;padding:24px 26px}.deck-nav{position:fixed;bottom:0;left:0;right:0;height:66px;z-index:25;display:flex;align-items:center;gap:16px;padding:0 22px;background:#0d0f14eb;backdrop-filter:blur(10px);border-top:1px solid var(--line)}.deck-dots{display:flex;gap:7px;flex:1;justify-content:center;flex-wrap:wrap}.deck-dot{width:9px;height:9px;border-radius:50%;background:var(--line);cursor:pointer;transition:transform .1s,background .1s}.deck-dot:hover{transform:scale(1.25)}.deck-dot.seen{background:var(--ink-faint)}.deck-dot.active{background:var(--orange)}.deck-hint{color:var(--ink-faint);font-size:.8rem;font-style:italic;white-space:nowrap}.deck-meta{color:var(--ink-faint);font-size:.85rem;min-width:54px;text-align:right}#deck-next.locked{opacity:.4;cursor:not-allowed}@media(max-width:640px){.deck-hint{display:none}.deck-h1{font-size:1.8rem}}.module-layout{display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:start;padding-top:26px}.module-side{position:sticky;top:88px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.module-side .ms-stage{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--orange)}.module-side h4{margin:8px 0;font-size:.82rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.ms-meta{color:var(--ink-dim);font-size:.85rem}.ms-meta li{margin:3px 0}.module-side .btn{width:100%;justify-content:center;margin-top:12px}.ms-back{display:block;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--ink-faint);text-decoration:none;font-size:.85rem}@media(max-width:820px){.module-layout{grid-template-columns:1fr}.module-side{position:static}}.module-main{min-width:0}.module-crumb{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--orange)}.module-main h1{font-size:2.1rem;margin:6px 0 14px}.hook{font-size:1.22rem;line-height:1.5;color:var(--ink);border-left:3px solid var(--orange);padding:6px 0 6px 18px;margin:0 0 26px}.section-label{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:30px 0 10px}.prose{color:var(--ink)}.prose p{margin:0 0 14px}.prose h2{font-size:1.4rem;margin:28px 0 10px}.prose h3{font-size:1.12rem;margin:22px 0 8px}.prose ul{color:var(--ink-dim);padding-left:22px}.prose code{font-family:var(--mono);background:var(--bg-soft);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:.88em;color:var(--orange-soft)}.prose pre{background:#0a0c11;border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow:auto}.prose pre code{background:none;border:none;padding:0;color:#d7dbe6}.prose blockquote{margin:0 0 14px;padding:10px 16px;border-left:3px solid var(--blue);background:var(--panel);color:var(--ink-dim);border-radius:0 8px 8px 0}.journey{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:16px 0}.journey-step{padding:14px 16px;border-top:1px solid var(--line)}.journey-step:first-child{border-top:none}.journey-step .js-tag{font-family:var(--mono);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.js-prompt .js-tag{color:var(--blue)}.js-output .js-tag{color:var(--ink-faint)}.js-failure .js-tag{color:var(--red)}.js-fix .js-tag{color:var(--green)}.journey-step p{margin:4px 0 0}.fail-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:6px 0 10px}.fail-card{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:10px;padding:14px 16px}.fail-n{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:#ff6b6b29;color:var(--red);font-weight:800;font-size:.82rem}.fail-text{margin:0;color:var(--ink-dim);font-size:.92rem}.fail-foot{color:var(--ink-faint);font-size:.88rem;margin-top:8px}.media-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:280px;border:2px dashed var(--line);border-radius:var(--radius);background:repeating-linear-gradient(45deg,var(--bg-soft),var(--bg-soft) 12px,var(--panel) 12px,var(--panel) 24px);text-align:center;padding:28px}.media-slot.is-video{border-color:#e87d0d80}.media-icon{font-size:2.4rem;opacity:.7}.media-cap{color:var(--ink);font-size:1.02rem;max-width:520px}.media-note{color:var(--ink-faint);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.pattern-box{background:linear-gradient(135deg,rgba(232,125,13,.12),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin:8px 0}.exercise-box{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:0 var(--radius) var(--radius) 0;padding:18px 20px}.cheatsheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-top:16px;box-shadow:var(--shadow)}.cheatsheet h3{margin:0 0 14px;font-size:1.2rem;color:var(--orange-soft)}.cheat-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.cheat-grid{grid-template-columns:1fr}}.cheat-zone h5{margin:0 0 6px;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.cheat-zone ul{margin:0;padding-left:18px;color:var(--ink-dim);font-size:.9rem}.cheat-zone code,.cheat-skel{font-family:var(--mono);font-size:.84rem;color:var(--orange-soft)}.cheat-skel{display:block;background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;padding:10px 12px;white-space:pre-wrap}.reflection{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-top:16px;box-shadow:var(--shadow)}.reflection h3{margin:0 0 4px;font-size:1.2rem;color:var(--green)}.reflection .r-sub{margin:0 0 16px;color:var(--ink-faint);font-size:.9rem}.r-q{margin-bottom:16px}.r-q label{display:block;font-weight:600;margin-bottom:6px}.r-q textarea{width:100%;min-height:64px;resize:vertical;background:var(--bg-soft);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:inherit;padding:10px 12px}.r-q textarea:focus{outline:none;border-color:var(--orange)}.r-actions{display:flex;align-items:center;gap:14px}.r-status{color:var(--green);font-weight:700;font-size:.9rem}.viewer-shell{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#0a0c11;margin:16px 0}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}.viewer-bar span{font-family:var(--mono);font-size:.78rem;color:var(--orange-soft)}.viewer-canvas{height:320px}.bsim{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#1d1d20;margin:16px 0;box-shadow:var(--shadow)}.bsim-header{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#2b2b30;border-bottom:1px solid #111;font-size:.8rem}.bsim-tab{color:var(--ink-faint);padding:2px 8px;border-radius:5px}.bsim-tab.active{color:#fff;background:#3d6db5}.bsim-spacer{flex:1}.bsim-scene{color:var(--ink-dim);font-family:var(--mono);font-size:.76rem}.bsim-body{display:grid;grid-template-columns:132px 1fr;min-height:320px}.bsim-tools{display:flex;flex-direction:column;gap:5px;padding:8px;background:#252529;border-right:1px solid #111}.bsim-tool{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:#34343a;border:1px solid #45454d;border-radius:7px;padding:7px 9px;color:var(--ink);font:inherit;cursor:pointer;transition:background .1s,box-shadow .1s}.bsim-tool:hover{background:#3e3e46}.bsim-tool.active{background:#3d6db5;border-color:#5b8bd6}.bsim-tool.expected{box-shadow:0 0 0 2px var(--orange);animation:bsimpulse 1.4s ease-in-out infinite}@keyframes bsimpulse{0%,to{box-shadow:0 0 0 2px #e87d0d80}50%{box-shadow:0 0 0 3px #e87d0df2}}.bsim-tool.ghost{background:transparent}.bsim-tool-label{font-size:.86rem;font-weight:600}.bsim-tool-key{font-family:var(--mono);font-size:.68rem;color:var(--ink-faint)}.bsim-viewport{position:relative}.bsim-viewport canvas{display:block;height:320px}.bsim-vp-hint{position:absolute;bottom:8px;right:10px;font-size:.72rem;color:var(--ink-faint);pointer-events:none}.bsim-guide{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#2b2b30;border-top:1px solid #111}.bsim-step-n{flex:none;font-family:var(--mono);font-size:.74rem;font-weight:800;color:var(--orange)}.bsim-step-n.done{color:var(--green)}.bsim-step-text{flex:1;color:var(--ink-dim);font-size:.9rem}.bsim-reset{flex:none;background:transparent;border:1px solid var(--line);color:var(--ink-dim);border-radius:7px;padding:5px 11px;font:inherit;font-size:.82rem;cursor:pointer}.bsim-reset:hover{color:var(--ink);border-color:var(--ink-faint)}@media(max-width:640px){.bsim-body{grid-template-columns:110px 1fr}}.tracks{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 4px}.track-btn{cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink-dim);font:inherit;text-align:left;max-width:320px}.track-btn.active{border-color:var(--orange);color:var(--ink);background:var(--panel-2)}.track-btn b{display:block;color:var(--ink)}.track-btn small{color:var(--ink-faint)}.track-note{margin-top:10px;padding:12px 16px;border-radius:10px;background:var(--bg-soft);border:1px dashed var(--line);color:var(--ink-dim);font-size:.92rem}
