:root{--bg: #2f6f78;--panel: rgba(22, 30, 34, .92);--ink: #e8f1ef;--muted: #8aa3a6;--line: #3a4c52;--accent: #f08a3c;--ok: #7dcea0;--okbg: rgba(40, 72, 58, .92);--warn: #f0c14a;--bad: #e07a6a;--badbg: rgba(78, 36, 32, .94);--paper: #1c262b}*{box-sizing:border-box}html,body,#app{margin:0;height:100%;height:100dvh;background:var(--bg);color:var(--ink);font-family:"Source Sans 3",Trebuchet MS,sans-serif}html,body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%}#app{-webkit-touch-callout:none}#app{position:relative}button,select,input{font-family:inherit}canvas{display:block;width:100%;height:100%}body.dragging{cursor:grabbing}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui>*{pointer-events:auto}.layer{position:absolute;top:0;right:0;bottom:0;left:0}#gameui{pointer-events:none!important}#gameui>*{pointer-events:auto}.hidden{display:none!important}@font-face{font-family:Nabla UI;font-style:normal;font-weight:400;font-display:swap;src:url(/systems-quest/assets/nabla-outline-9D1yslOR.woff2) format("woff2")}@font-face{font-family:Honk UI;font-style:normal;font-weight:400;font-display:swap;src:url(/systems-quest/assets/honk-outline-5CZ-oA1t.woff2) format("woff2")}h1,h2,h3,.inspect .name,.coach b{font-family:Honk UI,Trebuchet MS,sans-serif;margin:0;font-weight:400;letter-spacing:.01em;line-height:1.2;background-image:linear-gradient(180deg,var(--glyph-top, #7ee7ff) 0%,var(--glyph-mid, #3aa0ff) 48%,var(--glyph-face, #2454d6) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;-webkit-text-stroke:0;text-shadow:none}.select-head h1{--glyph-edge: #101418;--glyph-top: #8ef0ff;--glyph-mid: #3cb4ff;--glyph-face: #1f4fd0}.boot h1,.kicker.wordmark{font-family:Nabla UI,Trebuchet MS,sans-serif;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.25;background-image:linear-gradient(102deg,#ffe14a,#ff9a1a 32%,#ff4d3a 62%,#e43dff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;-webkit-text-stroke:.7px #1a1008;paint-order:stroke fill}.kicker{color:var(--accent);letter-spacing:.08em;font-size:14px;font-weight:800;text-transform:uppercase}.kicker.wordmark{font-size:100px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.25;margin-bottom:4px}.boot{display:flex;flex-direction:column;justify-content:flex-end;padding:64px;background:linear-gradient(180deg,#12242826,#12242833 40%,#0e1c20d1);pointer-events:none}.boot>*{pointer-events:auto}.boot h1{font-size:100px;margin:8px 0 16px}.boot p{max-width:520px;color:#c5d6d4;font-size:18px;line-height:1.45}.boot-actions{margin-top:22px}.btn{border:1px solid var(--line);background:#243034;color:var(--ink);padding:10px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:800}.btn:hover{border-color:#6a8086}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1c140c}.btn.primary:hover{filter:brightness(1.06)}.btn:disabled{opacity:.45;cursor:not-allowed}.select{padding:48px 40px 32px;overflow:auto;background:#101c20d1}.select-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.select-head h1{font-size:48px}.levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.card{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:14px;text-align:left;color:inherit;cursor:pointer;min-height:128px;box-shadow:0 10px 24px #00000038}.card:hover:not(:disabled){border-color:var(--accent)}.card:disabled{opacity:.45;cursor:default}.card .meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:8px}.card h3{font-size:24px;margin-bottom:6px;line-height:1.15}.card p{margin:0;color:var(--muted);font-size:14px;line-height:1.35}.card .count{margin-top:8px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.card.cleared{background:var(--okbg);border-color:#3d6b52}.hud-top{position:absolute;top:14px;left:328px;right:400px;display:flex;gap:16px;align-items:center;overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 16px;box-shadow:0 12px 28px #00000047}.metric{min-width:78px}.metric b{display:block;font-size:18px;font-weight:800}.metric span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.metric.bad b{color:var(--bad)}.metric.good b{color:var(--ok)}.live{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.live.on,.live.won{color:var(--ok)}.slo{width:150px}.slo span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.slo .bar{height:8px;background:#2a3840;border-radius:2px;margin-top:6px;overflow:hidden}.slo .bar>i{display:block;height:100%;width:0;background:var(--accent)}.slo.good .bar>i{background:var(--ok)}.slo.good span{color:var(--ok)}.slo.bad .bar>i{background:var(--bad)}.slo.bad span{color:var(--bad)}.palette,.inspect{position:absolute;top:92px;width:250px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 14px 32px #00000047}.palette{left:14px;width:300px;bottom:16px;max-height:none;overflow:auto}.inspect{right:14px;width:250px;bottom:84px;max-height:none;overflow:auto}.palette h2,.inspect h2{font-size:22px;text-transform:uppercase;margin-bottom:10px}.tool{width:100%;text-align:left;background:#243034;border:1px solid transparent;color:var(--ink);padding:8px;border-radius:8px;cursor:grab;display:flex;gap:8px;align-items:center;margin-bottom:6px}.tool:hover{border-color:var(--line)}.tool.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.tool.cable{cursor:pointer}.tool img,.inspect-icon{width:48px;height:60px;object-fit:contain;border-radius:6px;background:#142024}.tool small{display:block;color:var(--muted);font-size:12px;font-weight:700}.tray-group{margin:12px 0 6px;font-size:20px;text-transform:uppercase}.cables-head{margin-top:14px}.cable-lead{color:var(--muted);font-size:13px;line-height:1.35;margin:-4px 0 8px}.inspect .empty{color:var(--muted);font-size:14px;line-height:1.45}.inspect .name{font-size:32px;margin:4px 0}.inspect .blurb{color:#c5d4d2;font-size:14px;line-height:1.4}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;font-size:13px}.statgrid span{color:var(--muted);display:block;font-size:11px;font-weight:800;text-transform:uppercase}.field{margin-bottom:10px}.field label{display:block;font-size:13px;font-weight:800;margin-bottom:4px}.field select,.field input{width:100%;background:#142024;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px}.hint{color:var(--muted);font-size:12px;line-height:1.4;margin-top:4px}.coach{position:absolute;left:328px;right:400px;bottom:18px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 14px;box-shadow:0 12px 28px #00000047}.coach b{display:block;font-size:24px;margin-bottom:4px}.coach p{margin:0;font-size:14px;line-height:1.4;color:#c5d4d2}.coach.bad{background:var(--badbg);border-color:#6a3a34;border-left-color:var(--bad)}.coach.bad b{color:#ffc2b8}.coach.good{background:var(--okbg);border-color:#3d6b52;border-left-color:var(--ok)}.coach.good b{color:#c8f0d6}.coach.wait{border-left-color:var(--warn)}.tray-foot{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.4;font-weight:700}.controls{display:flex;gap:8px}.sheet-done{display:none}.dock{position:absolute;right:14px;bottom:16px;display:flex;gap:8px;align-items:center}.dock-note,.dock-btn{display:none}.dock-btn.active{background:var(--accent);border-color:var(--accent);color:#1c140c}button,select,input{touch-action:manipulation}html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%}#board{touch-action:none}@media(max-width:1200px),(max-height:760px){.boot{padding:max(20px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));overflow:auto}.boot h1,.kicker.wordmark{font-size:clamp(48px,12vw,100px)}.boot p{font-size:16px}.btn{min-height:44px;font-size:16px}.select{padding:max(20px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.select-head{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px}.select-head h1{font-size:clamp(32px,8vw,48px)}.levels{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.card h3{font-size:20px}.tray-foot{display:none}.hud-top{top:max(8px,env(safe-area-inset-top));left:8px;right:8px;transform:none;width:auto;max-width:none;gap:10px 12px;flex-wrap:wrap;overflow:visible;padding:8px 12px}.metric{min-width:64px;flex:0 0 auto}.metric b{font-size:16px}.slo{width:120px;flex:0 0 auto}.coach{left:10px;right:10px;bottom:calc(156px + env(safe-area-inset-bottom));max-height:22dvh;overflow:auto;padding:10px 12px}.coach b{font-size:15px}.coach p{font-size:14px}#gameui.sheet-palette .coach,#gameui.sheet-inspect .coach{visibility:hidden}.dock{left:0;right:0;bottom:0;flex-wrap:wrap;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);z-index:6}.dock-note{display:block;flex:1 0 100%;margin:0;color:var(--muted);font-size:13px;font-weight:700;line-height:1.3}.dock-btn{display:inline-flex;align-items:center;justify-content:center;flex:1}.controls{flex:1 1 100%}.controls .btn{flex:1;padding:8px 6px}.palette,.inspect{left:0;right:0;top:auto;bottom:calc(148px + env(safe-area-inset-bottom));width:auto;max-height:min(52dvh,480px);border-radius:16px 16px 0 0;z-index:5;transform:translateY(120%);transition:transform .16s ease}#gameui.sheet-palette .palette,#gameui.sheet-inspect .inspect{transform:none}.sheet-done{display:inline-flex;margin-bottom:8px}.tray-items{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool{margin:0;min-height:52px}.field select,.field input{font-size:16px;min-height:44px}.modal{width:min(680px,calc(100% - 16px));padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.modal h2{font-size:clamp(28px,8vw,40px)}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:1}}@media(max-width:640px){.facts{grid-template-columns:1fr}}@media(max-height:520px){.dock-note{display:none}.coach{max-height:64px;bottom:calc(72px + env(safe-area-inset-bottom))}.dock{flex-wrap:nowrap;overflow-x:auto}.controls{flex:0 0 auto}.palette,.inspect{bottom:calc(64px + env(safe-area-inset-bottom));max-height:min(46dvh,280px)}}.world-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none!important;overflow:hidden}.tag{position:absolute;transform:translate(-50%,-130%);background:var(--bad);color:#1c140c;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:800}.ghost{position:fixed;width:64px;height:80px;pointer-events:none!important;z-index:30;transform:translate(-50%,-70%)}.modal-back{position:absolute;top:0;right:0;bottom:0;left:0;background:#0812168c;display:flex;align-items:center;justify-content:center;z-index:20}.modal{width:min(680px,calc(100% - 40px));max-height:min(82vh,820px);overflow:auto;background:#1c262b;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:0 24px 60px #0006}.modal h2{font-size:40px;margin:6px 0 10px}.modal .lead,.modal p{font-size:16px;line-height:1.5;color:#d5e4e2}.modal .rank{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:16px 0}.facts span{display:block;color:var(--muted);font-size:12px;font-weight:800}.glossary{display:grid;gap:8px;margin:8px 0 12px}.gloss{background:#142024;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.gloss b{display:block;font-size:13px}.gloss span{color:#c5d4d2;font-size:14px}.war{color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.modal ul{padding-left:18px;font-size:16px;line-height:1.5}.modal-actions{display:flex;gap:8px;margin-top:16px}.success-mark{width:64px;height:64px;border-radius:8px;background:var(--okbg);color:var(--ok);display:grid;place-items:center;font-size:34px;font-weight:800}.pass{color:var(--ok)}.budget-over{color:var(--bad)}
