:root{color-scheme:light;--bg:#f4f2e9;--paper:#fffdf6;--ink:#263a3d;--muted:#72817e;--line:#d9e0d5;--teal:#328f83;--purple:#8d79b4;--orange:#be8550;--red:#b3604f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:var(--paper);border:1px solid var(--line);padding:8px 12px;border-radius:9px;min-height:38px}button:hover:not(:disabled){border-color:var(--teal)}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #deac66;outline-offset:3px}h1,h2,h3,p{margin:0}#game{max-width:1800px;margin:0 auto;padding:22px 28px}.topbar{display:flex;align-items:center;gap:25px;padding-bottom:18px}.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:39px;height:44px;background:var(--ink);color:var(--paper);border-radius:10px;font-size:24px;font-weight:600}.brand h1{font-size:20px;letter-spacing:.05em;font-weight:600}.brand div>span{font-size:9px;letter-spacing:.17em;color:var(--muted)}.chapter{display:flex;gap:12px;align-items:center;border-left:1px solid var(--line);padding-left:24px}.chapter span{font-size:11px;color:var(--muted)}.chapter strong{font-weight:500;font-size:16px}#about-open{margin-left:auto;font-size:12px}.route{display:flex;align-items:center;gap:13px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding:13px 0}.route i{font-style:normal;opacity:.5}.route strong{color:var(--teal);font-weight:600}.route-tail{margin-left:auto}main{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:18px}.arena{position:relative;height:calc(100vh - 205px);min-height:470px;max-height:850px;background:#faf9f2;border:1px solid var(--line);border-radius:18px;overflow:hidden}#scene,#labels{position:absolute;inset:0}#scene{touch-action:none}canvas{display:block;width:100%;height:100%}#labels{pointer-events:none}.scene-top{position:absolute;top:16px;left:17px;right:17px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font-size:12px;color:var(--muted)}.scene-top b{font-size:16px;color:var(--ink);margin:0 9px}.scene-top #sample-value{font:12px ui-monospace,monospace}.chip{padding:4px 10px;background:#e4ece2;color:#4d7468;border-radius:6px;font-size:11px;letter-spacing:.06em}.scene-bottom{position:absolute;bottom:12px;left:17px;right:17px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;pointer-events:none}.scene-bottom button{font-size:10px;min-height:29px;padding:4px 7px;pointer-events:auto;background:#fffdf6e6}aside{display:flex;flex-direction:column;gap:16px}.mission{padding:17px 17px 13px;border-radius:13px;background:#e8ede2}.eyebrow{font-size:10px;letter-spacing:.1em;color:var(--muted);margin-bottom:7px}.mission h2{font-size:19px;font-weight:600}.mission p{font-size:12px;margin-top:8px;color:#60736c}.mission-progress{display:flex;align-items:baseline;gap:10px;margin-top:15px;font-size:11px;color:#637f71}.mission-progress span:first-child{font:25px ui-monospace,monospace;color:var(--teal)}.inspector{padding:3px 8px;min-height:210px}.inspector h3{font-size:15px;font-weight:600}.inspector p{font-size:12px;color:var(--muted);margin-top:7px}#inspect-visual{margin-top:12px}.matrix{display:grid;gap:4px}.matrix span{font:12px/1.4 ui-monospace,monospace;background:#e5e9e0;text-align:center;padding:6px 3px;border-radius:4px}.matrix-label{font-size:10px;color:var(--muted);margin-bottom:5px}.value-line{margin-top:9px;font-size:11px;color:var(--muted)}.value-line b{color:var(--ink);font:12px ui-monospace,monospace;font-weight:400;display:block;overflow-wrap:anywhere;margin-top:3px}.side-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.side-actions button{font-size:11px;padding:6px 9px;min-height:32px}.test-row{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);padding:6px 8px;border-top:1px solid var(--line)}.test-row>span:last-child{margin-left:auto}.test-row.pass{color:var(--teal)}.test-row.fail{color:var(--red)}footer{display:flex;align-items:center;gap:20px;padding-top:15px}.run{background:var(--ink);color:var(--paper);border:0;padding:11px 20px;flex-shrink:0;font-weight:500}.run span{font-size:11px;margin-right:8px}.feedback{font-size:12px;color:var(--muted)}.feedback.error{color:var(--red)}.feedback.success{color:var(--teal)}.node-label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:#fffdf6eb;border:1px solid #d9e0d5;padding:5px 9px;border-radius:7px;font-size:11px;line-height:1.35;white-space:nowrap;min-height:30px;cursor:grab;box-shadow:0 3px 12px #3c5c4b0c;touch-action:none}.node-label small{font-size:9px;display:block;color:var(--muted)}.node-label.selected{outline:2px solid var(--orange);outline-offset:1px}.port{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1.5px solid #899c91;background:var(--paper);border-radius:50%;min-width:27px;min-height:27px;padding:2px 4px;font:10px ui-monospace,monospace;box-shadow:0 2px 4px #51694a0d;touch-action:none}.port.input{border-radius:5px}.port.pending{background:#deac66;border-color:#bb8649}.port.connected{border-color:#51a494;background:#edf6eb}.port.bad{border-color:var(--red);background:#f6d7c9}.source-label{position:absolute;transform:translate(-50%,-50%);font-size:11px;color:var(--muted);white-space:nowrap;text-align:center;line-height:1.5}.source-label b{font-weight:500;color:var(--ink)}.packet{position:absolute;transform:translate(-50%,-50%);color:var(--paper);background:var(--teal);font:10px ui-monospace,monospace;padding:4px 6px;border-radius:5px;white-space:nowrap;pointer-events:none;box-shadow:0 4px 8px #446a6033;z-index:3}.node-value{position:absolute;transform:translate(-50%,-50%);font:10px ui-monospace,monospace;white-space:nowrap;background:#fffdf6d9;padding:2px 5px;color:#557b6f;border-radius:3px}.floating-help{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-size:12px;color:var(--muted);pointer-events:none}#loading{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:12px;background:var(--paper);z-index:10;color:var(--muted);font-size:13px}#loading[hidden]{display:none}.loader{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{max-width:580px;width:calc(100% - 35px);padding:30px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 25px 80px #162d2933}dialog::backdrop{background:#14252166;backdrop-filter:blur(4px)}dialog h2{font-size:22px}dialog p{font-size:13px;color:var(--muted);margin-top:15px;line-height:1.8}.close{float:right;font-size:20px;border:0;padding:0 6px;min-height:25px}.sources{font-size:11px}a{color:var(--teal)}@media(prefers-reduced-motion:reduce){.loader{animation:none}}

@media(min-width:851px){aside{height:calc(100vh - 205px);min-height:470px;max-height:850px;overflow-y:auto;scrollbar-width:thin;padding-right:3px}.side-actions{position:sticky;bottom:0;background:var(--bg);padding:8px 0 2px}}

/* Desktop game workspace. No mobile-specific layout. */
body{min-width:1080px}#game{max-width:1920px;padding:18px 24px}main{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.arena{background:radial-gradient(ellipse at 48% 35%,#fcfcf4 12%,#edf1e5 82%);box-shadow:inset 0 1px 0 #ffffff,0 12px 32px #5d786d0a}.scene-top{align-items:center}.scene-identity{display:flex;align-items:center;gap:13px}.scene-legend{display:flex;align-items:center;gap:5px;font-size:10px;color:#7b8e7f}.scene-legend i{width:6px;height:6px;background:#76a295;border-radius:50%;display:inline-block;margin-left:3px}.scene-legend i.warm{background:#c79868}.scene-controls{display:flex;gap:7px;pointer-events:auto}.scene-expanded main{grid-template-columns:1fr}.scene-expanded aside{display:none}.scene-expanded .arena{height:calc(100vh - 205px);max-height:none}.node-label{background:#fffef5f0;box-shadow:0 4px 12px #46695112;border-color:#cad7c7}.node-label.selected{background:#fff6e2}.node-value{box-shadow:0 2px 8px #416b5110}.port{box-shadow:0 3px 7px #3d5e4120}.packet{border:1px solid #b5d4bb66;background:#355c50ed;padding:5px 8px;transform:translate(-50%,-135%)}

.row-marker{position:absolute;transform:translate(-100%,-50%);padding:4px 7px;border-radius:5px;background:var(--row-color);color:#fffdf6;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 3px 9px #344b3924;pointer-events:none}.row-marker::after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right:0;border-left-color:var(--row-color)}
.packet{display:flex;align-items:center;gap:5px;background:#fffdf6b3;color:var(--ink);border:1px solid color-mix(in srgb,var(--row-color) 65%,transparent);padding:4px 7px;transform:translate(-50%,-115%);box-shadow:0 3px 9px #304a3d14}.packet-title{font:600 11px/1.3 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--row-color)}.packet-values{font:11px/1.3 ui-monospace,monospace}.packet-morph{display:grid;align-items:center;white-space:nowrap}.packet-morph>.packet-values{grid-area:1/1;width:max-content}.packet[hidden]{display:none}
.inspect-focus{font-size:11px;margin-top:10px;padding:5px 10px;min-height:31px;color:var(--teal)}.focus-bar{position:absolute;top:14px;left:50%;transform:translateX(-50%);display:flex;gap:12px;align-items:center;background:#fffdf6ed;border:1px solid #c8d7c7;padding:6px 8px 6px 13px;border-radius:11px;box-shadow:0 5px 15px #41695113;font-size:12px;z-index:5}.focus-bar[hidden]{display:none}.focus-bar strong{font-weight:500}.focus-bar button{font-size:11px;min-height:28px;padding:4px 8px;background:#e8f0e3;border:0}.module-focused .scene-legend{display:none}.module-focused .node-label{cursor:grab;font-size:13px}.module-focused .port{font-size:13px;min-width:33px;min-height:33px}.module-focused .node-value{font-size:13px;padding:4px 7px}.module-focused .arena{border-color:#b7cbb6}
.module-focused .port:disabled{opacity:1;cursor:default}

/* A collectible operator card. The illustration is the live 3D module. */
.module-card{--card-accent:#75628e;width:960px;max-width:calc(100vw - 80px);max-height:calc(100vh - 40px);padding:24px 28px 18px;overflow:auto;border:2px solid #b7a477;border-radius:17px;background:radial-gradient(ellipse at 0 0,#fffdf2,transparent 65%),repeating-linear-gradient(98deg,#a9955e03 0px,#a9955e03 1px,transparent 1px,transparent 5px),#f6f0df;box-shadow:0 0 0 5px #324038,0 0 0 6px #9e9270,0 30px 100px #0c171b88;color:#34403a;isolation:isolate}
.module-card[open]{animation:card-reveal .5s cubic-bezier(.17,.8,.25,1) both}.module-card::backdrop{background:#10201fd1;backdrop-filter:blur(7px)}
.module-card:before{content:"";position:absolute;inset:7px;border:1px solid #c8b98d;border-radius:10px;pointer-events:none;z-index:-1}
.card-sheen{position:absolute;inset:0;overflow:hidden;border-radius:15px;pointer-events:none;z-index:5}.card-sheen:after{content:"";position:absolute;inset:-80% -50%;background:linear-gradient(115deg,transparent 38%,#fff8d661 47%,transparent 57%);transform:translateX(80%);animation:card-glint .9s ease-out both}
.card-header{display:flex;align-items:center;gap:16px;padding:0 0 18px;border-bottom:1px solid #cabd98;position:relative}.card-seal{width:55px;height:66px;display:grid;place-items:center;flex-shrink:0;background:var(--card-accent);color:#fff8e0;font:32px/1 Georgia,"Songti SC","STSong",serif;clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%);text-shadow:0 2px 3px #0003}.card-heading{flex:1}.card-kicker{font-size:10px;letter-spacing:.15em;color:#8b8066;display:flex;align-items:center;gap:12px}.card-kicker span:last-child{border:1px solid #c5b991;border-radius:3px;padding:0 5px;color:var(--card-accent);letter-spacing:.08em}.module-card h2{font:600 29px/1.4 Georgia,"Songti SC","STSong",serif;color:#2d3a34;letter-spacing:.09em;margin:3px 0 0}.card-heading>span{font:9px/1.5 ui-monospace,monospace;letter-spacing:.2em;color:#93866c}.card-number{align-self:flex-start;margin:7px 10px 0 0;color:#998968;font:12px Georgia,serif;letter-spacing:.1em}#card-close{width:30px;min-height:30px;padding:0;font-size:25px;font-weight:300;background:transparent;border-color:#c5b893;border-radius:50%;align-self:flex-start;line-height:26px;color:#807352}
.card-body{display:grid;grid-template-columns:43% minmax(0,1fr);gap:30px;padding:18px 0 16px}.card-illustration{min-width:0;display:flex;flex-direction:column}#card-portrait{height:292px;position:relative;overflow:hidden;border:1px solid #c7bb95;border-radius:100px 100px 10px 10px;background:radial-gradient(ellipse at 50% 47%,#fffdf4 0,#eee9d6 65%,#dce3d6 100%);box-shadow:inset 0 0 30px #a7956430}#card-portrait:before{content:"";position:absolute;width:66%;height:27%;left:17%;top:51%;background:#526a4d1b;border-radius:50%;filter:blur(12px)}#card-portrait:after{content:"";position:absolute;inset:10px;border:1px solid #ac9a7040;border-radius:90px 90px 4px 4px;pointer-events:none}.portrait-corner{position:absolute;width:35px;height:12px;z-index:2;pointer-events:none;border-top:1px solid #b0a078;left:calc(50% - 17px)}.portrait-corner.top{top:18px}.portrait-corner.bottom{bottom:12px}.card-model-tools{display:flex;align-items:center;justify-content:space-between;color:#8d8269;font-size:10px;padding:7px 3px}.card-model-tools button{font-size:10px;border:0;padding:1px 5px;min-height:22px;background:transparent;color:#7f765e}.card-stats{display:grid;grid-template-columns:1.05fr .85fr 1.25fr;border-top:1px solid #cdbf9c;border-bottom:1px solid #cdbf9c;padding:10px 0}.card-stats div{display:flex;flex-direction:column;gap:4px;align-items:center;border-right:1px solid #d7cdb4}.card-stats div:last-child{border-right:0}.card-stats span{font-size:9px;color:#99896e;letter-spacing:.08em}.card-stats b{font-size:12px;font-weight:500;color:var(--card-accent)}
.card-description{padding:2px 0;min-width:0}.card-ability{display:flex;align-items:center;gap:9px}.card-ability>span{font-size:10px;padding:2px 7px;border-radius:3px;background:var(--card-accent);color:#fff8e4;letter-spacing:.1em}.card-ability h3{font:600 18px/1.5 Georgia,"Songti SC","STSong",serif;color:var(--card-accent);letter-spacing:.03em}.module-card p{font-size:12px;line-height:1.8;color:#657064;margin:8px 0 0}.card-formula{font:17px/1.4 ui-monospace,monospace;color:var(--card-accent);background:#fffdf257;border-left:2px solid var(--card-accent);padding:10px 13px;margin:12px 0}.card-description h4{font-size:11px;letter-spacing:.05em;color:#706448;margin:0;font-weight:600}.card-description h4+p{margin-top:4px}.card-example{margin-top:12px;border-top:1px dashed #ccbf9e;padding-top:9px}.card-example-title{display:flex;justify-content:space-between;font-size:10px;color:#857756;gap:10px}.card-example-title>span{font:10px ui-monospace,monospace;color:#9a8c6f}.card-vector{display:flex;align-items:center;gap:9px;margin:5px 0}.card-vector>b{font:11px ui-monospace,monospace;width:15px;color:#7d7f70}.card-vector>span{display:flex;gap:4px;flex:1}.card-vector i{font:11px/1.4 ui-monospace,monospace;min-width:41px;padding:4px 6px;border:1px solid #d7d6c7;background:#eceee2;text-align:center;border-radius:3px;color:#617260}.card-vector.result i{background:color-mix(in srgb,var(--card-accent) 11%,#fff9e8);border-color:color-mix(in srgb,var(--card-accent) 35%,#fff9e8);color:var(--card-accent)}.card-vector i.negative{color:#a56841}.card-vector.result>b{color:var(--card-accent)}.card-example small{font-size:9px;color:#a0947b;display:block;margin-top:6px}.card-footer{border-top:1px solid #cabd98;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:15px}.card-path>span{font-size:9px;color:#9a8c70;letter-spacing:.08em}#card-path{display:flex;align-items:center;gap:8px;font-size:10px;color:#9f9a87;margin-top:4px}#card-path i{font-style:normal;color:#baad90}#card-path .active{color:var(--card-accent);font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--card-accent)}#card-return{font-size:11px;padding:8px 14px;border-radius:5px;border:1px solid #ad9e77;background:#eee5cc;color:#685d41;min-height:35px}#card-return span{margin-left:12px}.module-card .port{min-width:26px;min-height:26px;font-size:10px;background:#fffcf1;border-color:#ab9c78;box-shadow:0 2px 6px #4f5d3a1c}.module-card .node-value{font-size:10px}
@keyframes card-reveal{from{opacity:0;transform:perspective(1100px) translateY(30px) rotateY(-12deg) rotateZ(-2deg) scale(.88)}to{opacity:1;transform:perspective(1100px) translateY(0) rotateY(0) rotateZ(0) scale(1)}}@keyframes card-glint{from{transform:translateX(-65%)}to{transform:translateX(65%)}}
@media(prefers-reduced-motion:reduce){.module-card[open],.card-sheen:after{animation:none}.card-sheen{display:none}}

.module-card .card-vector>b{width:92px;flex-shrink:0;font-size:10px;white-space:nowrap}

/* Compare results only at the final outlet, after the run has completed. */
.fault-pin{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:24px;height:24px;border:2px solid #fff8ec;border-radius:50%;background:#b65b48;color:#fff8ec;box-shadow:0 0 0 4px #b65b4828;font:bold 13px ui-monospace,monospace;z-index:5;pointer-events:none}
.local-fault{position:absolute;min-width:225px;max-width:310px;padding:11px 14px;background:#fffcf4f7;border:1px solid #cf9a86;border-left:3px solid #b65b48;border-radius:8px;box-shadow:0 8px 24px #5e3b2c24;color:#824b3e;z-index:5;pointer-events:none;animation:fault-in .18s ease-out}
.local-fault .fault-close{position:absolute;right:5px;top:4px;width:28px;height:28px;min-height:0;padding:0;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#824b3e;font:22px/1 sans-serif;pointer-events:auto;cursor:pointer}.local-fault .fault-close:hover{background:#f3e6db}.local-fault .fault-close:focus-visible{outline:2px solid #824b3e;outline-offset:1px}.local-fault strong{padding-right:24px}
.local-fault strong{font-size:11px;font-weight:600;display:block;margin-bottom:7px}.local-fault div{display:flex;gap:12px;align-items:baseline;margin-top:5px;font-size:10px;color:#8c6a60}.local-fault div>span{min-width:22px}.local-fault b{font:12px/1.5 ui-monospace,monospace;overflow-wrap:anywhere;color:#9b493b}.local-fault .expected b{color:#456e61}.local-fault p{font-size:11px;color:#8c6a60;max-width:240px;margin:0}.fault-pin[hidden],.local-fault[hidden]{display:none}
@keyframes fault-in{from{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}
@media(prefers-reduced-motion:reduce){.local-fault{animation:none}}

/* Each chapter keeps its own small workbench and saved wiring. */
#levels-open{margin-left:auto;font-size:12px;padding:6px 14px}#about-open{margin-left:0}#next-level{margin-left:auto;flex-shrink:0;background:#e4eee0;color:#367763;border-color:#b5cbb7;font-size:12px}#next-level[hidden]{display:none}
#level-menu{width:630px;max-width:calc(100vw - 60px);padding:26px 30px;background:#faf8ef}#level-menu h2{font-family:Georgia,"Songti SC",serif;letter-spacing:.05em}.level-menu-intro{margin-top:8px!important;font-size:12px!important}#level-list{display:grid;gap:12px;margin-top:22px}.level-choice{display:flex;flex-direction:column;gap:7px;align-items:flex-start;text-align:left;padding:16px 19px;min-height:118px;background:#fffdf6;border-color:#d5dbc9;position:relative}.level-choice.current{border-color:#70a293;background:#edf2e7}.level-choice-top{display:flex;justify-content:space-between;width:100%;font-size:10px;color:#7b8b7c;letter-spacing:.06em}.level-choice-top>span:last-child{color:#398576}.level-choice strong{font:600 19px/1.4 Georgia,"Songti SC",serif;color:#2f5148}.level-choice>span:not(.level-choice-top){font-size:12px;color:#6e7e70}.level-choice small{font-size:10px;color:#8d9989}.level-choice:last-child{border-top:3px solid #b5a174}.level-choice:last-child strong{color:#6b5a39}

.scene-legend[hidden],.inspector[hidden]{display:none}

/* Learning campaign, same desk and collectible operator language. */
#level-menu{width:940px;max-height:calc(100vh - 50px);overflow-y:auto}#level-list{grid-template-columns:repeat(2,minmax(0,1fr))}.level-choice{min-height:145px}.level-choice>span:not(.level-choice-top){line-height:1.6}.level-choice:last-child{border-top:3px solid #b5a174}.port{font-size:9px}.device-badge{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:2px 7px;min-height:23px;border-radius:4px;font:10px ui-monospace,monospace;cursor:grab;background:#eee6d4;z-index:2}.device-gpu{background:#e4eee7;color:#398775}.device-ane{background:#e8e0ef;color:#806299}#device-docks{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);display:flex;gap:14px;z-index:4;padding:8px;border-radius:12px;background:#f7f5e9ed;border:1px solid #c6d1c1}#device-docks[hidden]{display:none}#device-docks button{display:flex;gap:5px;flex-direction:column;min-width:140px;min-height:52px;border:1px dashed #afbfaf;background:#fdfbef;color:#536958}#device-docks b{font:13px ui-monospace,monospace}#device-docks span{font-size:9px}#device-docks [data-device=ane]{border-color:#ab96b9;color:#806299}#device-docks [data-device=gpu]{border-color:#80afa2;color:#398775}.engine-level .scene-legend{display:none}#engine-controls{padding:8px}#engine-controls label{display:block;margin:10px 0;font-size:11px;color:#657b70}#engine-controls select{width:100%;margin-top:5px;padding:7px;border:1px solid #bdcdbb;border-radius:6px;background:#fffdf6;color:#344b40;font:11px inherit}.engine-model-note{font-size:10px;color:#89978b;line-height:1.7}.engine-level .inspector{min-height:0}/* Run results share the toolbar; their content never resizes the scene. */
.run-toolbar{position:relative;min-height:60px;flex-wrap:nowrap}
.playback-control{display:flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap;font-size:11px;color:var(--muted)}
.playback-control .playback-caption{color:#52796d;margin-right:2px}
#playback-rate{min-width:34px;color:#52796d;font:11px ui-monospace,monospace;text-align:right;font-variant-numeric:tabular-nums}
#playback-speed{appearance:none;-webkit-appearance:none;width:112px;height:26px;margin:0;background:transparent;cursor:pointer;accent-color:var(--teal);border-radius:6px;direction:ltr}
#playback-speed::-webkit-slider-runnable-track{height:4px;background:#cbd9cc;border-radius:4px}
#playback-speed::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:15px;height:15px;margin-top:-5.5px;border:2px solid var(--paper);border-radius:50%;background:var(--teal);box-shadow:0 0 0 1px #87ada0}
#playback-speed::-moz-range-track{height:4px;background:#cbd9cc;border-radius:4px}
#playback-speed::-moz-range-thumb{width:11px;height:11px;border:2px solid var(--paper);border-radius:50%;background:var(--teal);box-shadow:0 0 0 1px #87ada0}
#playback-speed:focus-visible{outline:2px solid #deac66;outline-offset:3px}
.run-toolbar .feedback{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#run-report{display:flex;align-items:center;gap:6px;flex:1 1 300px;min-width:0;height:44px;margin:0;padding:0 0 0 14px;border:0;border-left:1px solid var(--line);background:transparent;color:#657b70}
#run-report[hidden]{display:none}
.run-report-content{flex:1;min-width:0;max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;font-size:11px;line-height:1.6}
.run-report-content:focus-visible{outline:2px solid #deac66;outline-offset:-2px;border-radius:3px}
#run-report h3{font-size:11px;margin:8px 0 3px;color:#52796d}
#run-report h3:first-child{margin-top:0}
#run-report p{font-size:11px;line-height:1.6;color:#657b70;margin:0}
#run-report .report-close{flex-shrink:0;font-size:18px;line-height:1;min-height:26px;width:26px;padding:0;border:0;background:transparent;color:var(--muted)}
#run-report .report-close:hover{background:#e4ece2}
#run-report .word-trials{flex-wrap:wrap;gap:8px;margin:0}
#run-report .word-trials>div{min-width:0;overflow-wrap:anywhere;gap:1px;padding:0 8px 0 0;background:none;border-radius:0}
#run-report .word-trials strong{font:600 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0}
#run-report .word-trials small,#run-report .word-trials span{font-size:10px}
#run-report .metric-grid{gap:5px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
#run-report .metric-grid>div{padding:5px 8px;gap:1px}
#run-report .metric-grid strong{font-size:15px}
#run-report .attention-map>div{font-size:10px}
#run-report .attention-map span{padding:3px}
#run-report .campaign-complete{margin-top:8px;padding:8px}
#run-report .campaign-complete h3{font-size:13px!important;margin:0!important}
.word-trials{display:flex;gap:18px;margin-top:10px}.word-trials>div{display:flex;flex-direction:column;gap:5px;background:#eef1e5;padding:14px 22px;border-radius:8px}.word-trials strong{font:600 30px/1.5 Georgia,"Songti SC",serif;letter-spacing:.18em}.word-trials small,.word-trials span{font-size:11px;color:#788577}.good{color:#348471}.bad{color:#b65f46}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px}.metric-grid>div{padding:12px 15px;border:1px solid #d9e1d2;border-radius:9px;display:flex;flex-direction:column;gap:5px}.metric-grid .bad{background:#fbede3;border-color:#dbaf96}.metric-grid .good{background:#edf3e8}.metric-grid small,.metric-grid span{font-size:10px}.metric-grid strong{font:23px ui-monospace,monospace}.metric-grid em{font:10px inherit}.runtime-timeline{display:flex;gap:3px;margin-top:16px;min-height:75px;overflow:auto}.runtime-timeline>div{min-width:60px;padding:10px 7px;display:flex;flex-direction:column;justify-content:space-between;background:#e7e8dc;border-radius:5px;gap:5px}.runtime-timeline .lane-gpu{background:#d4e7dd}.runtime-timeline .lane-ane{background:#e0d7e8}.runtime-timeline .lane-gpu\+ane{background:linear-gradient(115deg,#d4e7dd,#e0d7e8)}.runtime-timeline .lane-memory{background:#ead6bf}.runtime-timeline b{font-size:10px}.runtime-timeline span,.runtime-timeline small{font-size:9px}.attention-map{display:grid;gap:5px;max-width:700px}.attention-map>div{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:5px;align-items:center;font-size:12px}.attention-map span{padding:10px;background:color-mix(in srgb,#4d9b86 calc(var(--weight)*80%),#edf2e5);border-radius:5px;color:#2b4b40}.token-verdict{font-size:15px!important;margin-bottom:10px!important}.module-card .card-vector>span{flex-wrap:wrap}.module-card .card-vector i{min-width:33px}.local-fault{max-width:330px;max-height:240px;overflow:auto;pointer-events:auto}.engine-level .arena{min-height:590px}
#mission-limits{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}#mission-limits:empty{display:none}#mission-limits span{font-size:10px;padding:3px 6px;background:#fffdf680;border:1px solid #ccd8c4;border-radius:4px;color:#527563}.vocab-scores{display:grid;gap:5px;max-width:650px}.vocab-scores>div{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.vocab-scores b,.vocab-scores span{text-align:center;padding:6px;font:12px ui-monospace,monospace;background:#f1f1e7;border-radius:4px}.vocab-scores .winner{background:#c9e1cf;color:#277958;font-weight:600}.device-badge.processing{box-shadow:0 0 0 4px #e6be665e;outline:2px solid #c99746;animation:device-pulse .55s ease-in-out infinite alternate}@keyframes device-pulse{to{filter:brightness(1.22)}}@media(prefers-reduced-motion:reduce){.device-badge.processing{animation:none}}.test-row{overflow-wrap:anywhere}.test-row>span:first-child{max-width:48%}
.campaign-complete{margin-top:22px;padding:23px 28px;border:1px solid #b9cbae;border-radius:12px;background:linear-gradient(120deg,#e6efdc,#faf2d9)}.campaign-complete>span{font-size:10px;letter-spacing:.12em;color:#69825c}.campaign-complete h3{font:600 22px Georgia,"Songti SC",serif!important;color:#3c6654!important;margin:10px 0!important}.campaign-complete p{max-width:760px}

.connection-guide{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.connection-guide[hidden]{display:none}.connection-guide path{fill:none;stroke:#418f83;stroke-width:2;stroke-linecap:round;stroke-dasharray:8 12;stroke-opacity:.55;animation:connection-drift 1.6s linear infinite}@keyframes connection-drift{to{stroke-dashoffset:-40}}@media(prefers-reduced-motion:reduce){.connection-guide path{animation:none}}

/* A small game shell: settings stay off the workbench. */
#settings-open{display:flex;gap:6px;align-items:center;font-size:12px;padding:6px 13px}#settings-open>span{font-size:17px}
#settings{width:450px;padding:30px 32px 23px;border:1px solid #c4d0bd;border-radius:18px;background:#faf8ef;box-shadow:0 24px 80px #273e3c40}#settings::backdrop{background:#203f3b5c;backdrop-filter:blur(5px)}#settings h2{font:600 28px/1.3 Georgia,"Songti SC",serif;margin:9px 0 27px;color:#355b50}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 0;border-top:1px solid #dce1d2}.setting-label{display:flex;flex-direction:column;gap:4px}.setting-label>label,.setting-label>span:first-child{font-size:14px;font-weight:600;color:#3f6054}.setting-label>span:not(:first-child){font-size:11px;color:#839084}.setting-row select{font:12px inherit;color:#3c6255;background:#fffdf6;border:1px solid #cad5c3;border-radius:8px;padding:9px 11px;max-width:170px}.setting-switch{width:43px;height:25px;min-height:25px;padding:3px;border:0;border-radius:20px;background:#acb6aa;flex-shrink:0;transition:background .18s}.setting-switch>span{display:block;width:19px;height:19px;border-radius:50%;background:#fffdf6;box-shadow:0 1px 4px #283c3929;transition:transform .18s}.setting-switch[aria-checked=true]{background:#408f7b}.setting-switch[aria-checked=true]>span{transform:translateX(18px)}#settings .playback-caption{display:none}#settings .playback-control{gap:7px}#settings #playback-speed{width:125px}.volume-row{font-size:12px;color:#748476;padding:0 0 23px;border-top:0;gap:15px}.volume-row input{flex:1;min-width:80px;accent-color:#408f7b;cursor:pointer}.volume-row output{font:11px ui-monospace,monospace;min-width:32px;text-align:right}.settings-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #dce1d2;padding-top:20px}.settings-footer button{font-size:12px}#intro-replay{background:transparent;border:0;padding-left:0;color:#7c8b7d}#settings-done{background:#377f6b;color:#fffdf2;border-color:#377f6b;padding-inline:24px}#audio-status{font-size:11px;color:#a5794c;margin:0 0 17px}#audio-status[hidden]{display:none}
html[lang=en] .chapter strong{font-size:19px;letter-spacing:0}html[lang=en] .mission h2{font-size:21px}html[lang=en] .module-card h2{font-size:25px;letter-spacing:0}html[lang=en] .card-kicker{letter-spacing:.04em}html[lang=en] .card-vector>b{white-space:normal;line-height:1.35}html[lang=en] .card-seal{font:26px Georgia,serif}html[lang=en] .card-example-title{flex-wrap:wrap}html[lang=en] .source-label{max-width:205px;font-size:11px}html[lang=en] .node-label{font-size:11px;white-space:normal;max-width:165px}html[lang=en] .level-choice strong{font-size:18px;letter-spacing:0}html[lang=en] .scene-bottom{font-size:10px}

/* A signal travels through a floating weight matrix, then lights the outputs. */
#welcome{position:fixed;inset:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:radial-gradient(ellipse at 74% 39%,#e5eddb 0,transparent 51%),#f6f3e9;color:#2d5248;isolation:isolate}#welcome::backdrop{background:#f6f3e9}.welcome-grid{position:absolute;inset:0;background-image:linear-gradient(#54785c08 1px,transparent 1px),linear-gradient(90deg,#54785c08 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(100deg,transparent,#000);pointer-events:none}.welcome-copy{position:absolute;z-index:2;top:50%;left:9%;width:39%;transform:translateY(-50%)}.welcome-kicker{font:10px/1.3 ui-monospace,monospace;letter-spacing:.26em;color:#7e9480}.welcome-copy h2{font:600 clamp(56px,5.5vw,90px)/1.12 Georgia,"Songti SC",serif;letter-spacing:.05em;margin:24px 0 25px;color:#31594c}.welcome-copy p{font:17px/1.8 Georgia,"Songti SC",serif;color:#799077;margin:0}.welcome-actions{display:flex;gap:16px;align-items:center;margin-top:43px}.welcome-actions button{font-size:13px;min-height:48px;border-radius:9px;padding:12px 21px}#enter-workshop{display:flex;gap:32px;align-items:center;background:#397f6b;border-color:#397f6b;color:#fff9e8;box-shadow:0 6px 19px #3f765329;transition:transform .2s,box-shadow .2s}#enter-workshop:hover{transform:translateY(-2px);box-shadow:0 9px 25px #3f765336}#enter-workshop span{font-size:22px;line-height:1}#welcome-settings{border:0;background:transparent;color:#76866f}.welcome-note{display:block;margin-top:18px;font-size:11px;color:#96a08d}.welcome-edition{position:absolute;left:9%;bottom:6%;font:10px ui-monospace,monospace;letter-spacing:.15em;color:#97a18d}.welcome-machine{position:absolute;right:-2%;top:50%;width:59%;height:560px;transform:translateY(-50%);perspective:1100px}.machine-table{position:absolute;left:4%;top:50%;width:700px;height:440px;transform:translateY(-50%) rotateX(53deg) rotateZ(-26deg) scale(.92);transform-style:preserve-3d;background:linear-gradient(135deg,#ecf1e3,#dce6d6);border:1px solid #c4d1bc;border-radius:24px;box-shadow:-15px 20px 0 #a9bdaa,-22px 27px 0 #bac9b5,-45px 65px 60px #53745828;animation:table-hover 7s ease-in-out infinite}.machine-traces{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#84b7a0;stroke-width:3}.machine-traces path{stroke-dasharray:1600;stroke-dashoffset:1600;animation:trace-awake 3s .3s ease forwards}.machine-inputs,.machine-outputs{position:absolute;top:55px;bottom:55px;display:flex;flex-direction:column;justify-content:space-between;transform:translateZ(13px)}.machine-inputs{left:17px}.machine-inputs>span{font:600 14px ui-monospace,monospace;padding:14px 16px;background:#d2e1d3;border:1px solid #b6cbb8;border-radius:8px;color:#426e5a;box-shadow:-4px 5px 0 #a9bfa9}.machine-inputs b{font-weight:400;margin-left:7px}.machine-inputs>span:nth-child(2){color:#836793}.machine-inputs>span:nth-child(3){color:#3c8a77}.machine-outputs{right:28px}.machine-outputs>i{width:45px;height:45px;border-radius:10px;background:#d4dfc7;border:1px solid #b2c2a3;box-shadow:-3px 4px 0 #a4b792;animation:output-awake 4.8s 2.1s infinite}.machine-outputs>i:nth-child(2){animation-delay:3.7s}.machine-outputs>i:nth-child(3){animation-delay:5.3s}.machine-core{position:absolute;left:295px;top:151px;width:135px;height:137px;transform:translateZ(66px);transform-style:preserve-3d}.core-matrix{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:12px;border:1px solid #adc8b3;border-radius:12px;background:#e0ead9;box-shadow:-8px 9px 0 #91b79f,-9px 10px 0 1px #749f88,0 0 50px #81b69f25}.core-matrix i{font:12px ui-monospace,monospace;display:grid;place-items:center;font-style:normal;background:#a5cab3;color:#326c50;border-radius:3px;animation:weight-awake 4.8s calc(1.1s + var(--cell)*.08s) infinite}.core-matrix i:nth-child(3n){background:#d8ba97;color:#8a6440}.core-label{position:absolute;top:-37px;left:50%;transform:translateX(-50%);font:italic 32px Georgia,serif;color:#68967b}.core-base{position:absolute;inset:-20px;border:1px dashed #9eb89a;border-radius:50%;transform:translateZ(-65px);box-shadow:0 0 30px #87a67b10}.machine-packet{--packet-y:73px;position:absolute;width:13px;height:13px;border-radius:4px;left:20px;top:73px;background:#579b9e;box-shadow:0 0 13px #5cafa399;transform:translateZ(16px);animation:signal-trip 4.8s 1s linear infinite;opacity:0}.packet-b{--packet-y:213px;top:213px;background:#a58cb7;animation-delay:2.6s}.packet-c{--packet-y:353px;top:353px;background:#459c81;animation-delay:4.2s}.machine-caption{position:absolute;bottom:10px;left:34%;font:9px ui-monospace,monospace;letter-spacing:.17em;color:#98a690}.machine-orbit{position:absolute;width:590px;height:590px;border:1px solid #94ae8622;border-radius:50%;left:2%;top:0;transform:rotateX(40deg);pointer-events:none}.orbit-two{width:750px;height:750px;top:-80px;left:-78px;border-style:dashed;opacity:.45}
#welcome[open] .welcome-copy{animation:welcome-copy-in .9s .1s both}#welcome.is-leaving{animation:welcome-out .42s both;pointer-events:none}html[lang=en] .welcome-copy h2{font-size:clamp(54px,5.3vw,84px);letter-spacing:-.04em;max-width:500px}html[lang=en] .welcome-copy p{font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;max-width:360px}
@keyframes table-hover{0%,100%{transform:translateY(-50%) rotateX(53deg) rotateZ(-26deg) scale(.92)}50%{transform:translateY(calc(-50% - 12px)) rotateX(51deg) rotateZ(-23deg) scale(.92)}}@keyframes trace-awake{to{stroke-dashoffset:0}}@keyframes weight-awake{0%,45%,100%{filter:brightness(1)}13%,24%{filter:brightness(1.35);box-shadow:0 0 9px #82b799}}@keyframes output-awake{0%,10%,45%,100%{background:#d4dfc7;box-shadow:-3px 4px 0 #a4b792}20%,32%{background:#90c5a6;box-shadow:-3px 4px 0 #87ab8c,0 0 24px #94c5a1}}@keyframes signal-trip{0%{opacity:0;left:70px;top:var(--packet-y)}6%{opacity:1}15%{left:170px;top:var(--packet-y)}25%{left:205px;top:213px}31%{left:298px;top:213px}43%{left:356px;top:213px;transform:translateZ(66px);opacity:.35}54%{left:420px;top:213px;transform:translateZ(16px);opacity:1}65%{left:500px;top:213px}75%{left:500px;top:var(--packet-y)}80%{left:639px;top:var(--packet-y);opacity:1}87%,100%{left:639px;top:var(--packet-y);opacity:0}}@keyframes welcome-copy-in{from{opacity:0;transform:translateY(calc(-50% + 18px))}to{opacity:1;transform:translateY(-50%)}}@keyframes welcome-out{to{opacity:0;transform:scale(1.025)}}
@media(max-width:1250px){.welcome-copy{left:6%;width:40%}.welcome-machine{right:-14%;transform:translateY(-50%) scale(.85)}.welcome-copy h2{font-size:60px}.welcome-copy p{font-size:15px}.welcome-edition{left:6%}}
@media(prefers-reduced-motion:reduce){.machine-table,.machine-packet,.machine-outputs>i,.core-matrix i,#welcome[open] .welcome-copy,#welcome.is-leaving{animation:none}.machine-traces path{animation:none;stroke-dashoffset:0}.machine-packet{display:none}.setting-switch,.setting-switch>span{transition:none}}

.brand{color:inherit;text-decoration:none;border-radius:10px;cursor:pointer}.brand:hover .brand-mark{background:var(--teal)}.brand:focus-visible{outline:3px solid #deac66;outline-offset:6px}
