:root{--bg:#120a14;--panel:#1e1424;--panel2:#2a1d33;--ink:#f3e9f7;--muted:#a993b6;--accent:#ff8205;--accent2:#ffaf00;--m-yellow:#ffd800;--m-orange:#fa500f;--m-red:#e10500;--good:#9ef01a;--bad:#ff3b3b;--line:#3d2b4a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);margin:0;font-family:VT323,ui-monospace,monospace;font-size:19px}#app:before{content:"";background:linear-gradient(90deg,#ffd800,#ffaf00,#ff8205,#fa500f,#e10500);height:6px;display:block}#app{flex-direction:column;min-height:100vh;display:flex}header{border-bottom:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{flex-direction:column;display:flex}.logo{letter-spacing:1px;background:linear-gradient(#ffd800 0%,#ffaf00 30%,#ff8205 55%,#fa500f 75%,#e10500 100%);color:#0000;filter:drop-shadow(3px 3px #3a0a00);-webkit-background-clip:text;background-clip:text;font-family:"Press Start 2P",monospace;font-size:22px}.tag{color:var(--muted)}nav{flex-wrap:wrap;gap:8px;display:flex}.btn{background:var(--panel2);color:var(--ink);border:2px solid var(--line);cursor:pointer;padding:9px 12px;font-family:"Press Start 2P",monospace;font-size:11px;text-decoration:none;box-shadow:3px 3px #000}.btn:hover{border-color:var(--accent)}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px #000}.btn.hot{border-color:var(--accent);background:#5a1f00}.btn.ghost{background:0 0}.btn.small{padding:6px 8px;font-size:9px}.btn:disabled{opacity:.4;cursor:default}main{flex:1;grid-template-columns:minmax(0,1fr);gap:14px;min-height:0;padding:14px 16px;display:grid}body.brain-open main{grid-template-columns:minmax(0,1fr) 420px}#brain{display:none!important}body.brain-open #brain{display:flex!important}#stage{flex-direction:column;align-items:center;gap:8px;min-width:0;display:flex}#screen-wrap{aspect-ratio:384/240;border:3px solid var(--line);background:#000;width:100%;max-width:calc(160vh - 240px);position:relative;box-shadow:0 0 0 3px #000,6px 6px #000}#screen{cursor:crosshair;width:100%;height:100%;display:block}body.retro #screen{image-rendering:pixelated;image-rendering:crisp-edges}#help{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 16px;max-width:1000px;font-size:17px;display:flex}#help .keys{align-items:center;gap:6px;display:flex}#help .k{align-items:center;gap:3px;display:inline-flex}#help em{color:#6e5e77;font-size:14px;font-style:normal}kbd{text-align:center;color:#1a0d00;background:linear-gradient(#ffe2b8,#ffb45c);border:2px solid #3a1a05;border-bottom-width:4px;border-radius:3px;min-width:24px;height:24px;padding:0 5px;font-family:"Press Start 2P",monospace;font-size:9px;line-height:20px;display:inline-block;box-shadow:1px 1px #000}kbd.wide{min-width:44px}#bubble{color:#2a1206;pointer-events:none;background:#fff8e8;border:3px solid #2a1206;max-width:62%;padding:8px 12px;font-size:clamp(14px,1.6vw,22px);line-height:1.05;position:absolute;top:4%;left:3%;box-shadow:4px 4px #0009}#bubble:after{content:"";border:7px solid #0000;border-top-color:#2a1206;position:absolute;bottom:-14px;left:30px}#bubble b{color:#c2410c}#thinking{color:#ffd23f;pointer-events:none;background:#000000b3;border:2px solid #ffd23f;flex-direction:column;align-items:flex-end;gap:4px;padding:8px 10px;font-family:"Press Start 2P",monospace;font-size:clamp(8px,1vw,12px);display:flex;position:absolute;top:4%;right:2%}#thinking small{color:var(--muted);font-family:VT323;font-size:15px}#thinking .paw{animation:.6s infinite alternate bob;display:inline-block}#thinking .dots:after{content:"";animation:1.2s steps(4,end) infinite dots}#click-hint{text-align:center;color:#fff;text-shadow:2px 2px #000;pointer-events:none;font-family:"Press Start 2P";font-size:11px;position:absolute;bottom:22%;left:0;right:0}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.hidden{display:none!important}#brain{background:var(--panel);border:2px solid var(--line);flex-direction:column;min-height:0;max-height:calc(100vh - 110px);display:flex;box-shadow:4px 4px #000}.panel-title{color:var(--accent2);border-bottom:2px solid var(--line);padding:10px;font-family:"Press Start 2P";font-size:12px}details{border-bottom:2px solid var(--line);padding:6px 10px}summary{cursor:pointer;color:var(--muted);padding:4px 0;font-family:"Press Start 2P";font-size:9px}label{color:var(--muted);flex-direction:column;flex:1;gap:2px;margin:4px 0;font-size:16px;display:flex}input,select{color:var(--ink);border:2px solid var(--line);background:#0d0710;width:100%;padding:3px 6px;font-family:VT323,monospace;font-size:18px}.row{gap:8px;display:flex}.note{color:var(--good);font-size:15px}.controls{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.controls .speed{flex-direction:row;align-items:center;gap:6px;margin:0 0 0 auto}.controls .speed select{width:auto}.stats{border-bottom:2px solid var(--line);grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 10px;display:grid}.stat{border:1px solid var(--line);background:#0d0710;padding:3px 5px}.stat b{color:var(--ink);font-size:20px;display:block}.stat span{color:var(--muted);font-size:13px}.status{color:#ffd23f;border-bottom:2px solid var(--line);padding:6px 10px;font-size:17px}.status.error{color:var(--bad)}#log{flex-direction:column;flex:1;gap:8px;min-height:120px;padding:6px 10px;display:flex;overflow-y:auto}.turn{border:1px solid var(--line);background:#170f1c;padding:6px 8px}.turn header{color:var(--muted);border:0;justify-content:space-between;padding:0;font-size:14px;display:flex}.turn .thought{color:#fff1d6;margin:3px 0;line-height:1.05}.turn .reasoning{color:#8a7a96;white-space:pre-wrap;border-left:2px solid var(--line);max-height:80px;padding-left:6px;font-size:14px;overflow:auto}.turn ol{color:var(--muted);margin:3px 0 0 18px;padding:0;font-size:15px}.turn li .act{color:#7fdbff}.turn li.int{color:#ffb347}.turn img{width:100%;image-rendering:pixelated;border:1px solid var(--line);margin-top:4px}.turn .err{color:var(--bad)}dialog{background:var(--panel);color:var(--ink);border:3px solid var(--accent);max-width:560px}dialog h3{color:var(--accent);font-family:"Press Start 2P";font-size:13px}dialog menu{justify-content:flex-end;padding:0;display:flex}#replay-bar{align-items:center;gap:8px;width:100%;max-width:calc(160vh - 240px);display:flex}#replay-bar input[type=range]{flex:1}@media (max-width:1000px){main{grid-template-columns:1fr}#brain{max-height:none}#screen-wrap{max-width:100%}}#replay-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}#replay-list h4{color:var(--accent2);margin:4px 0;font-family:"Press Start 2P";font-size:9px}.replay-item{text-align:left;flex-direction:column;gap:4px;display:flex}.replay-item small{color:var(--muted);font-family:VT323;font-size:15px}body.smooth{font-family:Fredoka,system-ui,sans-serif;font-size:16px}body.smooth .logo{letter-spacing:0;filter:drop-shadow(2px 2px #3a0a0080);font-family:Fredoka;font-size:30px;font-weight:700}body.smooth .btn{border-width:1px;border-radius:10px;font-family:Fredoka;font-size:14px;font-weight:600;box-shadow:0 2px 8px #00000059}body.smooth .btn.small{font-size:12px}body.smooth .panel-title,body.smooth summary,body.smooth dialog h3,body.smooth #replay-list h4{font-family:Fredoka;font-size:15px;font-weight:700}body.smooth #thinking{border-width:1px;border-radius:10px;font-family:Fredoka;font-size:clamp(11px,1.2vw,15px);font-weight:600}body.smooth #thinking small{font-family:Fredoka;font-size:12px}body.smooth #click-hint{font-family:Fredoka;font-size:15px;font-weight:600}body.smooth #screen-wrap{border-width:1px;border-radius:14px;overflow:hidden;box-shadow:0 10px 40px #00000080}body.smooth #brain{border-width:1px;border-radius:14px;overflow:hidden;box-shadow:0 10px 40px #0006}body.smooth #bubble{border-width:2px;border-radius:14px;font-family:Fredoka;font-size:clamp(13px,1.3vw,18px);line-height:1.25}body.smooth input,body.smooth select{border-width:1px;border-radius:6px;font-family:Fredoka;font-size:14px}body.smooth label{font-size:13px}body.smooth .turn{border-radius:8px;font-size:14px}body.smooth .turn ol,body.smooth .turn header{font-size:12px}body.smooth .stat{border-radius:6px}body.smooth .stat b{font-size:16px}body.smooth .stat span{font-size:11px}body.smooth .status{font-size:14px}body.smooth kbd{border-width:1px 1px 3px;border-radius:6px;font-family:Fredoka;font-size:12px;font-weight:600}body.smooth #help{font-size:14px}#stage-bar{justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:calc(160vh - 240px);display:flex}#stage-bar #help{justify-content:flex-start}#pause-btn{flex:none}#pause-overlay{z-index:4;background:#2e222fb3;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}#pause-overlay .pause-title{color:#fff;text-shadow:4px 4px #2e222f;font-family:Pixelify Sans,monospace;font-size:clamp(28px,5vw,56px);font-weight:400}.btn.big{padding:12px 22px;font-size:15px}#agent-start{width:100%;margin:10px 0 4px}.panel-title{justify-content:space-between;align-items:center;display:flex}.panel-title .x{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px}#help .hint span{font-style:italic}body.smooth #pause-overlay .pause-title{font-family:Fredoka}body.storybook{--bg:#f4e4cc;--panel:#fbf1e1;--panel2:#f6e2c2;--ink:#2b1d17;--muted:#7a5a44;--line:#2b1d17;--accent:#d62828;color:var(--ink);background:radial-gradient(at 50% 0,#fde3b8 0%,#f4e4cc 60%,#ecd3b0 100%);font-family:Patrick Hand,Comic Sans MS,cursive;font-size:19px}body.storybook #app:before{background:linear-gradient(90deg,#e63946,#ffd166,#06d6a0,#4cc9f0,#ff8fab)}body.storybook header{border-bottom:2px solid var(--ink)}body.storybook .logo{letter-spacing:1px;color:#f28c28;-webkit-text-stroke:1.5px var(--ink);filter:drop-shadow(2px 2px 0 var(--ink));background:0 0;font-family:Patrick Hand;font-size:38px}body.storybook .btn{color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff7ea;border-radius:14px 10px;font-family:Patrick Hand;font-size:19px}body.storybook .btn.hot{background:#ffd166}body.storybook .btn.small{font-size:16px}body.storybook .btn:hover{background:#ffe8b5}body.storybook #screen-wrap{border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:18px 12px 20px 14px;overflow:hidden}body.storybook #brain{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:#fbf1e1;border-radius:16px 12px;overflow:hidden}body.storybook .panel-title,body.storybook summary{color:#d62828;font-family:Patrick Hand;font-size:20px}body.storybook input,body.storybook select{color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:8px;font-family:Patrick Hand;font-size:18px}body.storybook .stat{border:1.5px solid var(--ink);background:#fff7ea;border-radius:8px}body.storybook .stat b{color:var(--ink)}body.storybook .status{color:#b5179e}body.storybook .turn{border:1.5px solid var(--ink);background:#fff7ea;border-radius:10px}body.storybook .turn .thought{color:var(--ink)}body.storybook .turn li .act{color:#1d6fa5}body.storybook .turn li.int{color:#c2410c}body.storybook #bubble{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:18px 14px 18px 12px;font-family:Patrick Hand;font-size:clamp(15px,1.6vw,22px)}body.storybook #thinking{color:var(--ink);border:2px solid var(--ink);background:#ffd166;border-radius:12px;font-family:Patrick Hand;font-size:clamp(14px,1.4vw,19px)}body.storybook #thinking small{color:#6b3b22;font-family:Patrick Hand;font-size:15px}body.storybook kbd{color:var(--ink);border:2px solid var(--ink);box-shadow:none;background:#fff;border-bottom-width:4px;border-radius:8px;font-family:Patrick Hand;font-size:16px}body.storybook #help{color:var(--muted);font-size:18px}body.storybook #pause-btn{color:var(--ink);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#ffd166}body.storybook #pause-overlay{background:#f4e4cc8c}body.storybook #pause-overlay .pause-title{color:#f28c28;-webkit-text-stroke:2px var(--ink);text-shadow:4px 4px 0 var(--ink);font-family:Patrick Hand}body.storybook .note{color:#2d6a4f}body.pixel{--bg:#2e222f;--panel:#3e3546;--panel2:#45293f;--ink:#fff;--muted:#9babb2;--line:#625565;--accent:#fb6b1d;--accent2:#f9c22b;background:#241b26;font-family:Inter,system-ui,sans-serif;font-size:15px}body.pixel #app:before{background:linear-gradient(90deg,#f9c22b,#fb6b1d,#e83b3b,#f04f78,#a884f3,#4d9be6,#1ebc73);height:4px}body.pixel header{border-bottom:2px solid #3e3546}body.pixel .logo{letter-spacing:1px;background:linear-gradient(#f9c22b 0%,#fb6b1d 55%,#e83b3b 100%);color:#0000;filter:drop-shadow(3px 3px #45293f);-webkit-background-clip:text;background-clip:text;font-family:Pixelify Sans;font-size:30px;font-weight:400}body.pixel .btn{letter-spacing:.2px;color:#fff;background:#3e3546;border:2px solid #625565;border-radius:4px;padding:8px 14px;font-family:Inter,system-ui,sans-serif;font-size:14px;font-weight:700;box-shadow:0 3px #1b141c}body.pixel .btn:hover{border-color:#fb6b1d}body.pixel .btn:active{transform:translateY(2px);box-shadow:0 1px #1b141c}body.pixel .btn.hot{color:#2e222f;background:#fb6b1d;border-color:#f9c22b}body.pixel .btn.big{padding:11px 22px;font-size:16px}body.pixel .btn.small{padding:6px 10px;font-size:12px}body.pixel #screen{image-rendering:pixelated}body.pixel #screen-wrap{border:3px solid #625565;border-radius:6px;overflow:hidden;box-shadow:0 6px #1b141c}body.pixel #brain{background:#3e3546;border:2px solid #625565;border-radius:6px;box-shadow:0 6px #1b141c}body.pixel .panel-title,body.pixel summary{letter-spacing:.5px;color:#f9c22b;font-family:Inter;font-size:14px;font-weight:800}body.pixel input,body.pixel select{background:#2e222f;border:2px solid #625565;border-radius:4px;font-family:Inter;font-size:14px}body.pixel label{font-size:13px;font-weight:600}body.pixel .stat{background:#2e222f;border:1px solid #625565;border-radius:4px}body.pixel .stat b{font-size:16px;font-weight:700}body.pixel .stat span{font-size:11px}body.pixel .status{color:#f9c22b;font-size:14px;font-weight:600}body.pixel .turn{background:#2e222f;border-radius:4px;font-size:14px}body.pixel .turn ol,body.pixel .turn header{font-size:12px}body.pixel .turn li .act{color:#8fd3ff}body.pixel #bubble{color:#2e222f;background:#fff;border:3px solid #2e222f;border-radius:6px;font-family:Inter;font-size:clamp(13px,1.25vw,18px);font-weight:600;line-height:1.3;box-shadow:0 4px #0006}body.pixel #bubble b{color:#fb6b1d}body.pixel #thinking{color:#2e222f;background:#f9c22b;border:3px solid #2e222f;border-radius:6px;font-family:Inter;font-size:clamp(12px,1.1vw,15px);font-weight:800}body.pixel #thinking small{color:#45293f;font-family:Inter;font-size:12px;font-weight:600}body.pixel kbd{color:#2e222f;box-shadow:none;background:#c7dcd0;border:2px solid #2e222f;border-bottom-width:4px;border-radius:4px;min-width:26px;height:28px;font-family:Inter;font-size:13px;font-weight:800;line-height:22px}body.pixel #help{color:#c7dcd0;font-size:14px;font-weight:600}body.pixel .note{color:#1ebc73}.btn{white-space:nowrap;box-sizing:border-box;vertical-align:middle;justify-content:center;align-items:center;gap:8px;height:40px;line-height:1;display:inline-flex}.btn.big{height:46px}.btn.small{gap:6px;height:30px}.btn .ico{flex:none;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:17px;line-height:1;display:block}nav{align-items:center}body.pixel nav .btn{min-width:0;padding:0 16px}body.pixel .btn{letter-spacing:.3px;font-family:Fredoka,Inter,system-ui,sans-serif;font-size:16px;font-weight:600}body.pixel .btn.big{font-size:18px}body.pixel .btn.small{font-size:14px}body.pixel .panel-title,body.pixel summary{letter-spacing:.3px;font-family:Fredoka,Inter,sans-serif;font-size:16px;font-weight:700}body.pixel #help,body.pixel kbd{font-family:Fredoka,Inter,sans-serif}body.pixel #help{font-size:15px;font-weight:500}body.pixel kbd{font-size:14px;font-weight:700}.seg{border:2px solid var(--line);border-radius:6px;margin:4px 0 6px;display:flex;overflow:hidden}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:1;padding:7px 8px;font-family:Fredoka,Inter,sans-serif;font-size:14px;font-weight:600}.seg button.on{color:#2e222f;background:#fb6b1d}#model{margin-top:4px}@media (max-width:1000px){body.brain-open main{grid-template-columns:minmax(0,1fr)}#brain{max-height:none}}#bubble{pointer-events:none;align-items:flex-start;gap:14px;max-width:66%;display:flex;position:absolute;top:3%;left:2%;box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}#bubble:after{display:none}#bubble-face{width:clamp(44px,6vw,72px);height:auto;image-rendering:pixelated;background:#45293f;border:3px solid #fb6b1d;border-radius:50%;flex:none;padding:4px;box-shadow:0 4px #00000073}#bubble-text{color:#2e222f;background:#fff;border:3px solid #2e222f;border-radius:14px;padding:8px 12px;font-family:Inter,system-ui,sans-serif;font-size:clamp(12px,1.2vw,17px);font-weight:600;line-height:1.3;position:relative;box-shadow:0 4px #0006}#bubble-text b{color:#fb6b1d;margin-bottom:2px;font-family:Fredoka,Inter,sans-serif;font-size:.95em;font-weight:700;display:block}#bubble-text:before{content:"";border:8px solid #0000;border-left:0;border-right:11px solid #2e222f;position:absolute;top:14px;left:-14px}#bubble-text:after{content:"";border:6px solid #0000;border-left:0;border-right:8px solid #fff;position:absolute;top:16px;left:-9px}#thinking{flex-direction:column;align-items:center;gap:2px;top:10%;right:2%;padding:8px 14px!important}#thinking .t-row{white-space:nowrap;text-transform:none;align-items:center;gap:8px;font-family:Fredoka,Inter,sans-serif;font-weight:700;display:flex}#thinking .dots{text-align:left;width:1.4em;display:inline-block}#thinking small{white-space:nowrap}.stage-btns{flex:none;gap:10px;display:flex}#map-btn.on{background:#45293f;border-color:#f9c22b}#replay-box{background:#fb6b1d0f;border:2px dashed #625565;border-radius:6px;margin:6px 0 10px;padding:10px}#replay-box .replay-title{color:#f9c22b;font-family:Fredoka,Inter,sans-serif;font-size:16px;font-weight:700}#replay-box .replay-desc{color:var(--muted);margin:4px 0 8px;font-size:13px;line-height:1.35}#replay-box select{margin-bottom:8px}#replay-box #replay-start{width:100%}#replay-box .replay-or{text-align:center;color:var(--muted);margin-top:8px;font-size:12px}.menu-toggle{display:none}#touchpad{-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:640px;padding:4px 0 10px;display:none}#touchpad .tp{-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-user-select:none;user-select:none;color:#fff;cursor:pointer;background:#3e3546;border:2px solid #625565;border-radius:12px;font-family:Fredoka,Inter,sans-serif;font-weight:700;box-shadow:0 4px #160f17}#touchpad .tp.on{background:#625565;transform:translateY(3px);box-shadow:0 1px #160f17}#touchpad .dpad{grid-template-rows:repeat(2,64px);grid-template-columns:repeat(3,64px);gap:6px;display:grid}#touchpad .dpad .tp{font-size:26px}#touchpad .dpad .up{grid-area:1/2}#touchpad .dpad .left{grid-area:2/1}#touchpad .dpad .down{grid-area:2/2}#touchpad .dpad .right{grid-area:2/3}#touchpad .tp-side{flex-direction:column;flex:1;gap:8px;max-width:260px;display:flex}#touchpad .tp-weapons{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}#touchpad .wpn{height:40px;font-size:16px}#touchpad .fire{letter-spacing:1px;color:#fff;text-shadow:2px 2px #2e222f;background:#e83b3b;border-color:#f9c22b;height:86px;font-size:22px}#touchpad .fire.on{background:#b33831}@media (pointer:coarse),(max-width:760px){#touchpad{display:flex}body[data-mode=agent] #touchpad,body.brain-open #touchpad,#help{display:none}#stage-bar{justify-content:center}}@media (max-width:760px){header{flex-wrap:nowrap}.logo{font-size:16px}.menu-toggle{padding:0 14px;font-size:20px;display:inline-flex}#topnav{z-index:20;background:var(--panel);border:2px solid var(--line);border-radius:10px;flex-direction:column;align-items:stretch;gap:8px;padding:12px;display:none;position:absolute;top:62px;left:10px;right:10px;box-shadow:0 10px 30px #00000080}body.menu-open #topnav{display:flex}#topnav .btn{justify-content:flex-start;width:100%}header{position:relative}main{padding:10px 8px}#touchpad .dpad{grid-template-rows:repeat(2,58px);grid-template-columns:repeat(3,58px)}}
