:root{--bg:#f3f0e8;--paneel:#fff;--paneel-2:#f8f6f0;--lijn:#ddd8cc;--ink:#1c1f17;--ink-2:#5a6050;--ink-3:#9aa08f;--lime:#a3e635;--lime-ink:#4d7c0f;--lime-zacht:#eaf7cf;--rood:#c93038;--rood-zacht:#fbe3e3;--oranje:#b45309;--schaduw:0 10px 28px #1c1f171f;--ease:cubic-bezier(.32, .72, 0, 1);--font:"Bricolage Grotesque", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--year:"Bebas Neue", "Oswald", Impact, "Arial Narrow", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.3;overflow-x:clip}body{overscroll-behavior:none;min-height:100dvh}#root{min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--lime-ink);outline-offset:2px}.mono{font-family:var(--mono)}.small{color:var(--ink-2);font-size:13px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}.bad{color:var(--rood)}.btn{border:1px solid var(--lijn);background:var(--paneel);min-height:48px;transition:transform .12s var(--ease), background .12s;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.97)}.btn.primary{background:var(--lime);color:var(--ink);border-color:#86c51f}.btn.primary:hover{background:#aeeb4b}.btn.ghost{color:var(--ink);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.btn:disabled{opacity:.55}.icon-btn{border:1px solid var(--lijn);background:var(--paneel);min-width:48px;height:48px;transition:transform .12s var(--ease);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.icon-btn:active{transform:scale(.95)}.icon-btn:disabled{opacity:.4}.icon-btn[data-hint="1"],.icon-btn[data-hint="2"],.icon-btn[data-hint="3"]{background:var(--lime-zacht);border-color:#c7e89a}.btn-label{font-size:15px;font-weight:600}.level{grid-template-rows:auto auto 1fr;gap:10px;max-width:1480px;min-height:100dvh;margin:0 auto;padding:12px 20px 20px;display:grid}.hud{align-items:center;gap:14px;display:flex}.hud-title{flex:1;min-width:0}.hud-title h1{letter-spacing:-.01em;margin:2px 0 0;font-size:28px;font-weight:800;line-height:1.1}.hud-actions{gap:8px;display:flex}.goal{color:var(--ink-2);max-width:72ch;min-height:24px;margin:0;font-size:17px;transition:color .2s}.goal.bad{color:var(--rood);font-weight:600}.goal.note{color:var(--lime-ink);font-weight:600}.stage{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 360px;gap:14px;min-height:0;display:grid}.machine{box-shadow:var(--schaduw);background:var(--paneel);border-radius:18px;grid-area:1/2;overflow:hidden}.machine-svg{width:100%;height:auto;display:block}.board-wrap{flex-direction:column;grid-area:1/1/span 2;gap:10px;min-width:0;display:flex}.board{touch-action:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 12px 22px #3a2a142e);border-radius:20px;width:100%;height:auto;max-height:calc(100dvh - 190px);display:block}.side{flex-direction:column;grid-area:2/2;gap:12px;min-width:0;display:flex}.test-btn{width:100%;min-height:56px;font-size:18px}.tray{background:var(--paneel);box-shadow:var(--schaduw);border-radius:18px;padding:12px}.tray-head{all:unset;margin-bottom:8px;display:block}.tray-items{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.tray-item{border:1px solid var(--lijn);background:var(--paneel-2);touch-action:none;min-height:92px;transition:transform .12s var(--ease);border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;padding:8px 6px 6px;display:flex;position:relative}.tray-item:active{transform:scale(.97)}.tray-item:disabled{opacity:.4}.tray-name{text-align:center;font-size:13px;font-weight:600;line-height:1.1}.tray-count{color:var(--ink-2);font-size:12px;position:absolute;top:6px;right:8px}.drag-ghost{pointer-events:none;z-index:50;opacity:.85;filter:drop-shadow(0 12px 16px #00000040);position:fixed}.colors{flex-wrap:wrap;gap:8px;padding:4px 2px;display:flex}.colors .dot{border:2px solid #00000026;border-radius:999px;width:30px;height:30px;padding:0;position:relative}.colors .dot:after{content:"";position:absolute;inset:-8px}.colors .dot.on{box-shadow:0 0 0 3px var(--paneel), 0 0 0 5px var(--lime-ink)}.check{background:var(--paneel);box-shadow:var(--schaduw);border-radius:18px;max-height:260px;padding:10px 12px;overflow:auto}.check table{border-collapse:collapse;width:100%;font-size:14px}.check td{text-align:center;padding:3px 6px}.check th{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-align:center;padding:2px 6px 6px;font-size:11px;font-weight:700}.check tr{transition:background .16s}.check tr.now{background:var(--lime-zacht)}.check tr.ok .mark{color:var(--lime-ink);font-weight:800}.check tr.bad{background:var(--rood-zacht)}.check tr.bad .mark{color:var(--rood);font-weight:800}.check .arrow{color:var(--ink-3)}.check.seq{flex-wrap:wrap;gap:6px;display:flex}.check .step{background:var(--paneel-2);border:1px solid var(--lijn);width:30px;height:30px;font-family:var(--mono);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.check .step.now{background:var(--lime-zacht);border-color:var(--lime-ink)}.check .step.ok,.check .step.done{background:var(--lime);border-color:#86c51f}.check .step.bad{background:var(--rood);color:#fff;border-color:var(--rood)}.timebar{background:var(--paneel);box-shadow:var(--schaduw);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 12px;display:flex}.tick-led{background:#35532a;border-radius:999px;width:14px;height:14px}.tick-led.on{background:var(--lime);box-shadow:0 0 10px var(--lime)}.speed{align-items:center;gap:8px;display:flex}.speed input{accent-color:var(--lime-ink);width:120px}.board-label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;font-size:14px;font-weight:700}.pin-label{font-family:var(--mono);letter-spacing:.04em;pointer-events:none;opacity:.8;font-size:11px;font-weight:700}.part{cursor:default}.part.lifted{filter:drop-shadow(0 16px 14px #00000047)}.board .lever{transition:transform .14s cubic-bezier(.2,1.4,.4,1)}.board .armature{transition:transform 60ms cubic-bezier(.2,1.4,.4,1)}.flow{animation:1s linear infinite flow}.flow.rev{animation-direction:reverse}.flow.still{stroke-dasharray:none;opacity:.5;animation:none}@keyframes flow{to{stroke-dashoffset:-70px}}.pulse{transform-box:fill-box;transform-origin:50%;animation:.8s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.55;transform:scale(1)}to{opacity:1;transform:scale(1.12)}}.wiggle{transform-box:fill-box;transform-origin:50%;animation:.18s ease-in-out 2 wiggle}@keyframes wiggle{0%,to{transform:rotate(0)}33%{transform:rotate(-4deg)}66%{transform:rotate(4deg)}}.ghost{animation:1.1s ease-in-out infinite ghost}@keyframes ghost{50%{opacity:.35}}.spin{transform-box:view-box;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ring{animation:.12s ease-in-out infinite alternate ring}@keyframes ring{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.clapper{animation:.12s ease-in-out infinite alternate clap}@keyframes clap{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}.waves{animation:.4s ease-in-out infinite ghost}.cable-x{cursor:pointer}.pop{animation:pop .42s var(--ease) both}@keyframes pop{0%{opacity:0;transform:scale(.2)}}.grow{transform-origin:180px 214px;animation:growx .9s var(--ease) both}@keyframes growx{0%{transform:scaleX(.1)}}.drop{animation:.7s ease-in both drop}@keyframes drop{0%{transform:translate(-30px,-40px)rotate(0)}}.climb{animation:climb 2.4s var(--ease) both}@keyframes climb{to{transform:translate(190px,-80px)}}.wave-arm{animation:.5s ease-in-out infinite ghost}.blink{animation:.9s steps(2,end) infinite ghost}.click{animation:.7s steps(2,end) infinite ghost}.modal-back{z-index:40;background:#1c1f1761;place-items:center;padding:16px;animation:.2s both fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--paneel);width:min(460px,100%);max-height:calc(100dvh - 32px);animation:rise .36s var(--ease) both;border-radius:18px;padding:24px;overflow:auto;box-shadow:0 30px 60px #1c1f174d}@keyframes rise{0%{opacity:0;transform:translateY(24px)scale(.97)}}.result h2{letter-spacing:-.02em;margin:6px 0 4px;font-size:40px;font-weight:800}.result .aha{color:var(--ink-2);margin:4px 0 16px;font-size:18px}.stars{gap:6px;display:flex}.star{color:var(--lijn);animation:pop .42s var(--ease) both}.star.on{color:#e5b32e}.chip-card{background:var(--paneel-2);border:1px solid var(--lijn);border-radius:14px;align-items:center;gap:14px;margin:8px 0 12px;padding:12px;display:flex}.chip-card p{margin:4px 0 0}.real{margin:8px 0 12px}.real summary{cursor:pointer;min-height:32px;font-weight:700}.real ul{color:var(--ink-2);margin:6px 0 0;padding-left:20px}.modal-actions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.act-card{grid-template-columns:5fr 7fr;align-items:center;gap:32px;max-width:1280px;min-height:100dvh;margin:0 auto;padding:32px 48px;display:grid}.act-card h2{letter-spacing:-.02em;margin:8px 0 12px;font-size:56px;font-weight:800;line-height:1}.act-card p{color:var(--ink-2);max-width:46ch;margin:0 0 24px;font-size:20px;line-height:1.45}.act-card-art svg{width:100%;height:auto}.map{max-width:1320px;margin:0 auto;padding:24px 20px 48px}.map-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 24px;margin-bottom:20px;display:flex}.map-head h1{letter-spacing:-.02em;text-wrap:balance;margin:4px 0 6px;font-size:46px;font-weight:800;line-height:1}.map-head .sub{color:var(--ink-2);max-width:56ch;margin:0;font-size:16px}.map-head .sub b{color:var(--ink)}.map-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.era-nav{flex-wrap:wrap;gap:6px;display:flex}.era-chip{border:1px solid var(--lijn);background:var(--paneel);border-radius:10px;align-items:baseline;gap:6px;min-height:44px;padding:5px 10px;display:inline-flex}.era-chip .y{font-family:var(--year);letter-spacing:.02em;font-size:23px;line-height:1}.era-chip .p{color:var(--ink-3);font-size:11px}.era-chip.live{background:var(--lime-zacht);border-color:#86c51f}.era-chip.live .p{color:var(--lime-ink)}.map-layout{gap:20px;display:grid}@media (width>=960px){.map-layout{grid-template-columns:minmax(320px,390px) 1fr;align-items:start}}.time-window{background:var(--paneel);box-shadow:var(--schaduw);border-radius:20px;overflow:hidden}@media (width>=960px){.time-window{position:sticky;top:16px}}.tw-stage{background:var(--m-bg);justify-content:center;height:210px;display:flex;position:relative}.tw-stage>svg{width:100%;height:100%;display:block}.tw-stage>.snake-grid{width:auto;padding:14px 0}.tw-tag{background:var(--lime);color:#1d1d1f;letter-spacing:.06em;text-transform:uppercase;border:1px solid #86c51f;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;position:absolute;top:12px;left:12px}.tw-body{gap:10px;padding:16px 18px 18px;display:grid}.tw-num{color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.tw-title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:26px;font-weight:800;line-height:1.05}.tw-goal{color:var(--ink-2);max-width:44ch;margin:0;font-size:15px}.tw-go{width:100%;min-height:54px;font-size:17px}.tw-stats{color:var(--ink-2);border-top:1px solid var(--lijn);flex-wrap:wrap;gap:14px;padding-top:10px;font-size:13px;display:flex}.tw-stats b{color:var(--ink);font-weight:700}.wire-line{gap:14px;min-width:0;display:grid}.era{--m-bg:#fff;--m-ink:var(--ink);--m-sub:var(--ink-2);--m-wire:#00000029;--m-node:#fff;--m-node-edge:#0003;background:var(--m-bg);color:var(--m-ink);box-shadow:var(--schaduw);border-radius:20px;padding:18px 16px 18px 22px;scroll-margin-top:16px;position:relative;overflow:hidden}.era-head{z-index:1;align-items:flex-end;gap:14px;margin-bottom:12px;display:flex;position:relative}.era-year{font-family:var(--year);letter-spacing:.01em;font-size:clamp(54px,9vw,74px);line-height:.82}.era-title{margin:0;font-size:21px;font-weight:800;line-height:1.05}.era-promise{color:var(--m-sub);max-width:46ch;margin:3px 0 0;font-size:14px}.era-count{color:var(--m-sub);white-space:nowrap;align-self:flex-start;margin-left:auto;font-size:12px}.era.locked .era-head{opacity:.55}.wire{background:var(--m-wire);width:7px;position:absolute;top:0;bottom:0;left:0}.wire .lit{background:var(--lime);background-image:repeating-linear-gradient(#fffffff2 0 4px,#0000 4px 26px);background-size:100% 26px;width:100%;animation:.9s linear infinite wire-flow;position:absolute;top:0;left:0;box-shadow:0 0 14px #a3e635d9}@keyframes wire-flow{to{background-position:0 26px}}.nodes{z-index:1;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid;position:relative}.node button{text-align:left;border:1px solid var(--m-node-edge);background:var(--m-node);width:100%;min-height:84px;color:inherit;transition:transform .14s var(--ease), box-shadow .14s;border-radius:14px;grid-template-rows:auto 1fr;place-items:start;gap:6px;padding:10px;display:grid}.node button:not(:disabled):hover{transform:translateY(-2px)}.node .term{align-items:center;gap:7px;width:100%;display:flex}.node .dot{background:var(--m-wire);border-radius:50%;flex:none;width:18px;height:18px;box-shadow:inset 0 0 0 2px #0000001f}.node .n{opacity:.8;font-size:12px;font-weight:700}.node .t{font-size:13.5px;font-weight:700;line-height:1.15}.node.done .dot{box-shadow:0 0 0 3px #a3e63547,0 0 12px #a3e635cc;background:var(--lime)!important}.node.now button{box-shadow:0 0 0 3px var(--lime), 0 8px 20px #0000002e;border-color:#86c51f}.node.now .dot{animation:1.4s ease-in-out infinite node-pulse;background:var(--lime)!important}.node.locked button{opacity:.5}@keyframes node-pulse{0%,to{box-shadow:0 0 #a3e635e6}50%{box-shadow:0 0 0 9px #a3e63500}}.pips{gap:2px;margin-left:auto;display:flex}.pips i{background:#0000002e;border-radius:99px;width:5px;height:5px}.pips i.on{background:#e5b32e}.m-hout{--m-bg:#c9a46c;--m-ink:#3a2a14;--m-sub:#5e4524;--m-wire:#8e6b3a;--m-node:#efe6ce;--m-node-edge:#8e6b3a;background-image:repeating-linear-gradient(92deg,#6e51291a 0 2px,#0000 2px 19px),repeating-linear-gradient(88deg,#ffffff12 0 1px,#0000 1px 37px)}.m-hout .node .dot{background:radial-gradient(circle at 35% 35%,#f2d27a,#d4a93c 55%,#8c6a1e)}.m-hout .node .n{font-family:Caveat,cursive;font-size:20px;line-height:.8}.m-rek{--m-bg:#343a41;--m-ink:#efe6ce;--m-sub:#b8c0c8;--m-wire:#5c6670;--m-node:#434a52;--m-node-edge:#5c6670;background-image:repeating-linear-gradient(0deg,#ffffff0a 0 1px,#0000 1px 22px)}.m-rek .node .dot{background:linear-gradient(#c2703b,#8a4a22);border-radius:4px}.m-breadboard{--m-bg:#f4f3ee;--m-ink:#2a2e33;--m-sub:#5b6168;--m-wire:#c4c7cc;--m-node:#fff;--m-node-edge:#d5d7db;background-image:radial-gradient(#c4c7cc 1.6px,#0000 2px);background-position:8px 8px;background-size:16px 16px}.era.m-breadboard{border-top:6px solid #d9463b;border-bottom:6px solid #2f6fd6}.m-breadboard .node .dot{box-shadow:none;background:#1f2226;border-radius:3px}.m-pcb{--m-bg:#1e6b3f;--m-ink:#f4f4f0;--m-sub:#cfe3d6;--m-wire:#17593a;--m-node:#17593a;--m-node-edge:#3f9a69;background-image:linear-gradient(90deg,#0000 0 60%,#3f9a6959 60% 61%,#0000 61%),linear-gradient(0deg,#0000 0 40%,#3f9a694d 40% 41%,#0000 41%);background-size:140px 90px}.m-pcb .node .dot{background:radial-gradient(circle,#1f2226 30%,#d9a441 32%)}.m-paneel{--m-bg:#2e4a3a;--m-ink:#e8ece4;--m-sub:#bfd0c4;--m-wire:#1f2226;--m-node:#3a5a48;--m-node-edge:#53735f;background-image:repeating-linear-gradient(90deg,#d9a44124 0 2px,#0000 2px 64px)}.m-paneel .node .dot{background:#1f2226;border-radius:3px;width:26px;height:12px;box-shadow:inset 0 0 0 2px #d9a441}.tw-stage.m-hout,.tw-stage.m-rek,.tw-stage.m-breadboard,.tw-stage.m-pcb,.tw-stage.m-paneel{background-image:none}.goal-snake{color:#fdecec;box-shadow:var(--schaduw);background:#1f1111;border-radius:20px;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:16px;display:grid}.goal-snake .snake-grid{width:128px;height:128px;display:block}.goal-snake h2{margin:0;font-size:22px;font-weight:800}.goal-snake p{color:#e7bdbd;max-width:40ch;margin:4px 0 0;font-size:14px}.goal-snake .state{color:#ff8c8c;margin-top:8px;font-size:12px}.warp{pointer-events:none;z-index:50;animation:warp-flash .52s var(--ease) forwards;background:radial-gradient(circle at var(--wx) var(--wy), #a3e6358c, #a3e63500 45%), repeating-conic-gradient(from 0deg at var(--wx) var(--wy), #a3e63538 0 2deg, transparent 2deg 12deg);position:fixed;inset:0}@keyframes warp-flash{0%{opacity:0;transform:scale(1.4)}30%{opacity:1}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.wire .lit,.node.now .dot{animation:none}.node button{transition:none}}.cpu{flex-direction:column;gap:10px;display:flex}@media (width<=1023px){.level{gap:6px;padding:8px 12px 120px}.hud-title h1{font-size:20px}.hud .eyebrow{font-size:11px}.btn-label{display:none}.goal{font-size:15px}.stage{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);gap:10px}.level{max-width:100vw;overflow-x:clip}.hud-actions .icon-btn{min-width:44px;padding:0 8px}.hud{gap:8px}.machine{height:24dvh;min-height:150px;box-shadow:none;background:0 0;grid-area:1/1;justify-content:center;display:flex}.machine-svg{width:auto;max-width:100%;height:100%;box-shadow:var(--schaduw);border-radius:16px}.hud .eyebrow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board-wrap{grid-area:2/1}.board{border-radius:14px;max-height:none}.side{grid-area:3/1}.test-btn{z-index:20;width:auto;box-shadow:var(--schaduw);position:fixed;bottom:12px;left:12px;right:12px}.tray-items{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.tray-item{min-width:96px}.check{max-height:200px}.act-card{grid-template-columns:1fr;align-content:start;gap:12px;padding:24px 16px}.act-card-art{order:-1;max-width:420px}.act-card h2{font-size:40px}.act-card p{font-size:17px}.map-head h1{font-size:34px}.map{padding:16px 16px 40px}.tw-stage{height:170px}.map-actions{flex-wrap:nowrap;width:100%}.era-nav{scrollbar-width:none;flex-wrap:nowrap;flex:1;min-width:0;overflow-x:auto}.era-nav::-webkit-scrollbar{display:none}.era-chip{flex:none}.era-year{font-size:56px}.bench{scroll-snap-type:x mandatory;gap:14px;margin:0 -16px;padding-bottom:8px;padding-left:16px;padding-right:16px;display:flex;overflow-x:auto}.act-tile{scroll-snap-align:center;flex:0 0 min(80vw,340px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.cpu-side{box-shadow:none;background:0 0;grid-row:1/span 2;overflow:visible}.cpu-panel{flex-direction:column;gap:10px;display:flex}.front{width:100%;height:auto;box-shadow:var(--schaduw);-webkit-user-select:none;user-select:none;border-radius:12px;display:block}.panel-buttons{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.btn.red{color:#fff;background:#b8332e;border-color:#8e1f25}.cpu-speed{background:var(--paneel);box-shadow:var(--schaduw);border-radius:12px;padding:8px 12px}.cpu-speed input{flex:1}.screen-wrap{background:var(--paneel);box-shadow:var(--schaduw);border-radius:16px;align-items:center;gap:12px;padding:12px;display:flex}.matrix{touch-action:none;width:min(100%,260px);height:auto}.dpad{grid-template-rows:repeat(3,52px);grid-template-columns:repeat(3,52px);gap:4px;display:grid}.dpad .d{border:1px solid var(--lijn);background:var(--paneel-2);touch-action:none;border-radius:12px;place-items:center;display:grid}.dpad .d:active{background:var(--lime)}.dpad .up{grid-area:1/2}.dpad .up svg{transform:rotate(-90deg)}.dpad .left{grid-area:2/1}.dpad .fire{background:#b8332e;border-color:#8e1f25;grid-area:2/2}.dpad .right{grid-area:2/3}.dpad .down{grid-area:3/2}.dpad .down svg{transform:rotate(90deg)}.listing{background:var(--paneel);box-shadow:var(--schaduw);border-radius:14px;max-height:320px;padding:10px 12px;overflow:auto}.listing summary{cursor:pointer;min-height:32px;font-weight:700}.listing ol{margin:6px 0 0;padding:0;font-size:13px;list-style:none}.listing li{border-radius:6px;align-items:center;gap:10px;padding:2px 6px;display:flex}.listing li.now{background:var(--lime-zacht)}.listing .addr{color:var(--ink-3);text-align:right;width:3ch}.listing .src{white-space:pre;flex:1}.listing .bin{color:var(--ink-2);font-size:12px}.mini{border:1px solid var(--lijn);background:var(--paneel-2);border-radius:8px;min-height:30px;padding:4px 8px;font-size:12px}.zoom{background:var(--bg);z-index:45;animation:zoomin .35s var(--ease) both;flex-direction:column;gap:8px;padding:14px 18px;display:flex;position:fixed;inset:0}@keyframes zoomin{0%{opacity:0;transform:scale(.4)}}.zoom-head{align-items:center;gap:10px;display:flex}.crumbs{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.crumb{font-weight:700;font-family:var(--mono);min-height:36px;color:var(--ink-2);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:14px}.crumb.on{color:var(--ink);background:var(--lime-zacht)}.crumb+.crumb:before{content:"›";color:var(--ink-3);margin-right:8px}.zoom-note{color:var(--ink-2);margin:0}.zoom-board{flex:1;justify-content:center;align-items:flex-start;min-height:0;display:flex}.zoom-board .board{width:auto;max-width:100%;max-height:calc(100dvh - 140px)}.zoom-card{background:var(--paneel);max-width:760px;box-shadow:var(--schaduw);border-radius:16px;padding:16px;overflow:auto}.isa{border-collapse:collapse;font-size:13px}.isa td{border-bottom:1px solid var(--lijn);padding:3px 8px}.isa tr.now{background:var(--lime-zacht)}@media (width<=1023px){.cpu-side{grid-row:1}.screen-wrap{flex-direction:column}}.stage.with-cpu{grid-template-columns:minmax(0,1fr) 420px}.stage.with-cpu .board-wrap{grid-row:1}.stage.with-cpu .side{flex-flow:wrap;grid-area:2/1;align-items:flex-start}.stage.with-cpu .side .tray{flex:1;min-width:260px}.stage.with-cpu .tray-items{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}@media (width<=1023px){.stage.with-cpu{grid-template-columns:1fr}.stage.with-cpu .board-wrap{grid-row:2}.stage.with-cpu .side{grid-row:3}}.act-board .lock svg{width:30px;height:30px;color:var(--ink-2);background:var(--paneel);box-sizing:content-box;box-shadow:var(--schaduw);border-radius:999px;padding:8px}.act-board .lock{background:#f3f0e859}.act-tile.locked{opacity:.82}.act-tile.locked .act-meta h2{color:var(--ink-2)}.act-blurb{color:var(--ink-2);margin:0;font-size:14px;line-height:1.35}.bench{padding-bottom:26px;position:relative}.bench:after{content:"";z-index:-1;background:linear-gradient(#c9a46c,#a9844f);border-radius:6px;height:18px;position:absolute;bottom:0;left:-12px;right:-12px;box-shadow:0 8px 18px #3a2a1433}@media (width<=1023px){.bench:after{display:none}}.level>*,.stage>*{min-width:0}@media (width<=1023px){.stage.with-cpu{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr)}.stage.with-cpu .cpu-side{grid-area:1/1;height:auto;display:block}.stage.with-cpu .board-wrap{grid-area:2/1}.stage.with-cpu .side{grid-area:3/1}.panel-buttons .btn{padding:0 10px}.dpad{grid-template-rows:repeat(3,60px);grid-template-columns:repeat(3,60px)}}.machine-svg.shake{animation:.42s ease-in-out 2 shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)rotate(-.6deg)}40%{transform:translate(6px)rotate(.6deg)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.flash{animation:.9s ease-out both flash}@keyframes flash{0%{opacity:.35}to{opacity:0}}.smoke{transform-box:fill-box;animation:1.6s ease-out infinite smoke}@keyframes smoke{0%{opacity:.8;transform:translateY(10px)scale(.6)}to{opacity:0;transform:translateY(-30px)scale(1.3)}}.trip{transform-box:fill-box;transform-origin:bottom;animation:.9s cubic-bezier(.5,0,.8,.6) both trip}@keyframes trip{0%{transform:translateY(0)rotate(0)}60%{transform:translateY(8px)rotate(-50deg)}to{transform:translateY(14px)rotate(-80deg)}}.run-off{animation:1.8s ease-in both runoff}@keyframes runoff{0%{transform:translate(-120px)}to{transform:translate(80px)}}.walk-off{animation:3s linear both walkoff}@keyframes walkoff{0%{transform:translate(-60px)}to{transform:translate(160px)}}.car-in{animation:1.2s cubic-bezier(.2,.8,.3,1) both carin}@keyframes carin{0%{transform:translate(-120px)}to{transform:translate(0)}}.derail{animation:pop .5s var(--ease) both}.bounce{animation:.7s ease-in-out infinite alternate bounce}@keyframes bounce{to{transform:translateY(-24px)}}.flutter{animation:.9s ease-in-out infinite alternate bounce}.blur-photo{filter:blur(1.6px)}.zzz{animation:1.4s ease-in-out infinite ghost}.flowv{animation:.8s linear infinite flow}.shrink-film{width:100%;height:auto;display:block}.shrink-film *{animation-duration:7s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:both}.sf-rack{transform-box:view-box;transform-origin:240px 164px;animation-name:sf-rack}@keyframes sf-rack{0%,18%{opacity:1;transform:scale(1)}42%{transform:scale(.42)}64%{opacity:1;transform:scale(.42)}80%{opacity:1;transform:translateY(80px)scale(.05)}84%,to{opacity:0;transform:translateY(80px)scale(.04)}}.sf-rackbg{animation-name:sf-fadeout}@keyframes sf-fadeout{0%,44%{opacity:1}60%,to{opacity:0}}.sf-relay{animation-name:sf-fadeout}.sf-transistor{animation-name:sf-fadein}@keyframes sf-fadein{0%,46%{opacity:0}60%,to{opacity:1}}.sf-click{animation:.3s steps(2,end) 8 ghost!important}.sf-chip{transform-box:fill-box;transform-origin:50%;animation-name:sf-chip}@keyframes sf-chip{0%,78%{opacity:0;transform:scale(.3)}86%,to{opacity:1;transform:scale(1)}}.sf-finger{animation-name:sf-finger}@keyframes sf-finger{0%,70%{transform:translateY(160px)}86%,to{transform:translateY(0)}}.sf-cap{opacity:0}.sf-cap1{animation-name:sf-c1}.sf-cap2{animation-name:sf-c2}.sf-cap3{animation-name:sf-c3}@keyframes sf-c1{0%,3%{opacity:0}8%,36%{opacity:1}40%,to{opacity:0}}@keyframes sf-c2{0%,40%{opacity:0}45%,68%{opacity:1}72%,to{opacity:0}}@keyframes sf-c3{0%,74%{opacity:0}80%,to{opacity:1}}.film-wrap{flex-direction:column;justify-content:center;align-items:center;gap:14px;max-width:720px;min-height:100dvh;margin:0 auto;padding:16px;display:flex}.film-wrap .shrink-film{box-shadow:var(--schaduw);border-radius:18px}.hot-glow{filter:blur(1.5px);animation:.18s steps(2,end) infinite sizzle}.hot-core{animation:.24s steps(2,end) infinite sizzle}@keyframes sizzle{50%{opacity:.55}}.heat{animation:.9s ease-in-out infinite heat}@keyframes heat{0%{opacity:.9;transform:translateY(0)}to{opacity:.2;transform:translateY(-8px)}}.pencil{letter-spacing:0;text-transform:none;font-family:Caveat,cursive;font-weight:700}.board-label.pencil{font-size:26px}.legend{background:var(--paneel);box-shadow:var(--schaduw);border-radius:18px;flex-direction:column;gap:8px;padding:12px;display:flex}.legend-items{flex-wrap:wrap;gap:6px;display:flex}.legend-item{border:1px solid var(--lijn);background:var(--paneel-2);border-radius:12px;align-items:center;gap:6px;min-height:44px;padding:4px 10px 4px 4px;font-size:14px;font-weight:600;display:flex}.legend-item svg{width:34px;height:34px}.legend-item.on{background:var(--lime-zacht);border-color:#c7e89a}.part-card{border-top:1px solid var(--lijn);animation:rise .28s var(--ease) both;padding-top:8px}.part-card-head{align-items:center;gap:10px;display:flex}.part-card-head strong{flex:1;font-size:17px}.part-card .sym{width:60px;height:40px;color:var(--ink)}.part-card .demo{border-radius:12px;width:100%;max-height:150px;margin:4px auto;padding:4px;display:block}.part-card p{color:var(--ink-2);margin:4px 0 0;font-size:15px;line-height:1.4}.icon-btn.small{min-width:36px;height:36px;padding:0}.board-box{min-width:0;position:relative}.fit-btn{z-index:5;border:1px solid var(--lijn);background:var(--paneel);min-height:40px;box-shadow:var(--schaduw);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex;position:absolute;top:10px;right:10px}.tt{border-collapse:collapse;font-family:var(--mono);margin-top:8px;font-size:13px}.tt th,.tt td{text-align:center;padding:2px 8px}.tt th{color:var(--ink-2);font-size:11px}.tt td.on{color:var(--lime-ink);font-weight:700}.field{animation:.6s ease-in-out infinite ghost}.board-wrap{position:relative}.card-float{z-index:6;background:var(--paneel);width:min(320px,100% - 24px);animation:rise .28s var(--ease) both;border-radius:16px;padding:12px;position:absolute;top:12px;left:12px;box-shadow:0 16px 40px #1c1f1740}.card-float .part-card{border-top:none;padding-top:0}@media (width<=1023px){.card-float{width:auto;margin-bottom:8px;position:static}}.scope{box-shadow:var(--schaduw);border-radius:12px;max-width:760px;overflow:hidden}.scope svg{width:100%;height:auto;display:block}.explain{color:#d9f99d;box-shadow:var(--schaduw);background:#1f2a22;border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:10px 12px;font-size:15px;display:flex}.explain .op{color:#a3e635;font-weight:700}.explain .regs{color:#8fd9a8;width:100%;font-size:12px}.codex-btn{gap:6px;min-height:44px;padding:0 14px;font-size:15px}.era-side{flex-direction:column;align-self:flex-start;align-items:flex-end;gap:8px;margin-left:auto;display:flex}.era-side .era-count{margin:0}.era-codex{border:1px solid var(--m-node-edge);background:var(--m-node);width:36px;height:36px;color:var(--m-ink);opacity:.9;border-radius:10px;place-items:center;display:grid}.era-codex:hover{opacity:1}.codex-back{align-items:center}.codex{--m-bg:var(--paneel-2);background:var(--paneel);width:min(820px,100%);max-height:calc(100dvh - 32px);animation:rise .36s var(--ease) both;border-radius:20px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 60px #1c1f174d}.codex-top{border-top:6px solid var(--m-bg);align-items:center;gap:10px;padding:10px 10px 0 12px;display:flex}.codex-tabs{scrollbar-width:none;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.codex-tabs::-webkit-scrollbar{display:none}.codex-tab{min-height:40px;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:10px;flex:none;align-items:baseline;gap:6px;padding:6px 10px;display:flex}.codex-tab .y{font-family:var(--year);color:var(--ink);font-size:22px;line-height:1}.codex-tab .ctt{white-space:nowrap;font-size:13px;font-weight:700}.codex-tab.on{background:var(--lime-zacht);color:var(--lime-ink);border-color:#86c51f}.codex-close{flex:none}.codex-body{overscroll-behavior:contain;gap:18px;padding:14px 22px 26px;display:grid;overflow-y:auto}.codex-hero{grid-template-columns:180px 1fr;align-items:center;gap:18px;display:grid}.codex-art{background:var(--m-bg);border-radius:14px;overflow:hidden}.codex-art svg{width:100%;height:auto;display:block}.codex-hero h2{letter-spacing:-.01em;text-wrap:balance;margin:4px 0 0;font-size:30px;font-weight:800;line-height:1.02}.codex-year{font-family:var(--year);letter-spacing:.01em;margin-right:4px;font-size:1.25em;font-weight:400}.codex-sec h3{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0 0 8px;font-size:12px;font-weight:700}.codex-sec p{max-width:66ch;margin:0 0 10px;font-size:16px;line-height:1.55}.codex-people{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.codex-people li{border:1px solid var(--lijn);background:var(--paneel-2);border-radius:12px;gap:3px;padding:10px 12px;display:grid}.codex-people b{font-size:15px}.codex-people .yrs{color:var(--ink-3);font-size:12px}.codex-people .did{color:var(--ink-2);font-size:14px;line-height:1.35}.codex-how{counter-reset:how;gap:10px;max-width:70ch;margin:0;padding:0;list-style:none;display:grid}.codex-how li{counter-increment:how;grid-template-columns:30px 1fr;gap:10px;font-size:16px;line-height:1.5;display:grid}.codex-how li:before{content:counter(how);font-family:var(--mono);background:var(--lime-zacht);width:26px;height:26px;color:var(--lime-ink);border-radius:8px;place-items:center;margin-top:1px;font-size:13px;font-weight:700;display:grid}.codex-facts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:0;display:grid}.codex-facts div{border-left:4px solid var(--lime);padding:4px 0 4px 10px}.codex-facts dt{color:var(--ink-2);font-size:12px}.codex-facts dd{margin:2px 0 0;font-size:17px;font-weight:800}.codex-in p{background:var(--lime-zacht);border-radius:12px;padding:10px 12px;font-size:15px}.codex-src ul{color:var(--ink-2);gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:1.4;display:grid}@media (width<=640px){.codex-back{align-items:end;padding:0}.codex{border-radius:20px 20px 0 0;max-height:92dvh}.codex-hero{grid-template-columns:1fr}.codex-art{max-width:260px}.codex-hero h2{font-size:26px}.codex-body{padding:12px 16px 28px}.codex-tab .ctt{display:none}}
