:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45;font-weight:400;color:#f8fafc;background:#10184a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button{border:2px solid rgba(167,243,255,.22);border-radius:7px;padding:8px 10px;color:#f8fafc;background:#18255f;box-shadow:0 3px #050c2673;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}button:hover:not(:disabled){background:#22338a;border-color:#ffe66d9e}button:active:not(:disabled){box-shadow:0 1px #050c268c;transform:translateY(2px)}button:disabled{cursor:not-allowed;opacity:.45}button.primary{color:#08111f;border-color:#ffffff6b;background:#ffe66d}button.danger{border-color:#ff8a9ab3;background:#7f1d55}input,select,textarea{width:100%;min-width:0;border:1px solid rgba(248,250,252,.14);border-radius:7px;padding:8px 9px;color:#f8fafc;background:#0d1742;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#ffe66d;box-shadow:0 0 0 2px #ffe66d2e}.app-shell{position:relative;width:100%;height:100%;overflow:hidden;background:linear-gradient(#131c543d,#070a1e99),url(/art/magic-plinko-key-art.png),linear-gradient(135deg,#13235f,#15395f 46%,#33194f);background-position:center;background-size:cover}.game-surface{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;min-width:0}.game-topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:12px 18px;border-bottom:2px solid rgba(125,211,252,.2);background:#0e184cd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.game-topbar strong{display:block;font-size:17px;line-height:1.1}.game-topbar span{color:#c7f6ff;font-size:12px}.dev-only-label{padding:4px 8px;border:1px solid rgba(255,230,109,.5);border-radius:999px;color:#ffe66d;white-space:nowrap}.pixi-host{position:relative;flex:1;min-height:0}.app-shell.has-lab .pixi-host{margin-right:min(512px,46vw)}.game-canvas{display:block;width:100%;height:100%}.lab-host{position:absolute;top:74px;right:16px;z-index:5;width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 92px);pointer-events:none}.muted{margin:8px 0;color:#bdefff;font-size:12px}@media(max-width:760px){body{overflow:auto}.app-shell{min-height:100%;overflow:auto}.game-surface{position:relative;height:min(64svh,520px);min-height:440px}.game-topbar{align-items:center;flex-direction:row;gap:10px;min-height:58px;padding:10px 14px}.game-topbar>div{min-width:0}.dev-only-label{font-size:11px}.pixi-host{flex:0 1 auto;min-height:0;height:calc(100% - 58px)}.lab-host{position:relative;top:auto;right:auto;width:100%;max-height:none;padding:8px 12px 12px}.app-shell.has-lab .pixi-host{margin-right:0}}.lab-panel{pointer-events:auto;overflow:hidden;border:2px solid rgba(167,243,255,.24);border-radius:8px;background:#0c1440f0;box-shadow:0 18px 60px #0000005c,0 0 0 1px #ffe66d17 inset;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.lab-panel.is-collapsed{width:220px}.lab-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid rgba(167,243,255,.18);background:#142275}.lab-header>div{min-width:0}.lab-header button{flex:0 0 auto}.lab-header strong{display:block;font-size:15px;line-height:1.1}.lab-header span{display:block;max-width:300px;overflow:hidden;color:#bdefff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.lab-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;padding:1px;background:#a7f3ff1a}.lab-tabs button{min-width:0;border:0;border-radius:0;padding:8px 5px;color:#c7f6ff;background:#101a54;font-size:11px;box-shadow:none}.lab-tabs button.active{color:#08111f;background:#ffe66d}.lab-body{max-height:calc(100vh - 190px);overflow:auto;padding:12px}.lab-run-dock{position:sticky;top:-12px;z-index:4;margin:-12px -12px 12px;border-bottom:1px solid rgba(248,250,252,.12);padding:10px 12px 12px;background:linear-gradient(180deg,#142275fa,#0c1440f5);box-shadow:0 14px 28px #00000038}.lab-run-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lab-run-group{min-width:0;margin:0;border:1px solid rgba(148,163,184,.18);border-radius:8px;padding:8px 9px 9px;background:#07102d6b}.lab-run-group legend{padding:0 4px;color:#ffe66d;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lab-run-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lab-board-grid{grid-template-columns:minmax(0,1.5fr) 72px}.lab-board-grid label:last-child{grid-column:1 / -1}.lab-run-grid label{display:grid;min-width:0;gap:4px;color:#dffbff;font-size:11px}.lab-run-grid input,.lab-run-grid select{min-height:32px;padding:6px 8px;font-size:12px}.lab-run-grid .lab-run-check{display:flex;align-items:center;gap:7px;min-height:32px;padding-top:0;white-space:nowrap}.lab-run-grid .lab-run-check input{width:auto;min-height:0;margin:0;padding:0}.lab-volume-control{grid-column:1 / -1}.lab-volume-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;min-height:32px}.lab-run-grid .lab-volume-row input[type=range]{width:100%;min-height:0;padding:0;accent-color:#7dd3fc}.lab-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:8px}.lab-color-grid label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;min-width:0;color:#cbd5e1;font-size:10px;font-weight:800}.lab-color-grid input[type=color]{width:100%;min-width:0;height:28px;min-height:0;padding:2px}.lab-volume-row span{color:#fff1a8;font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.lab-run-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.lab-run-actions button{min-height:34px;padding:7px 8px;font-size:12px;white-space:nowrap}.lab-summary{display:grid;gap:10px;margin-bottom:12px;border:1px solid rgba(125,211,252,.3);border-radius:7px;padding:10px;background:#0c255875}.lab-summary strong{display:block;color:#f8fafc;font-size:13px;line-height:1.2}.lab-summary span{display:block;margin-top:2px;color:#bdefff;font-size:12px}.lab-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.lab-summary dl div{min-width:0}.lab-summary dl div:first-child{grid-column:1 / -1}.lab-summary dt{color:#8ee8ff;font-size:10px;text-transform:uppercase}.lab-summary dd{margin:1px 0 0;overflow-wrap:anywhere;color:#fff9d6;font-size:12px}.lab-workbench-section{margin-top:10px;border:1px solid rgba(167,243,255,.14);border-radius:7px;padding:0;background:#0a133ad1}.lab-workbench-section>summary{display:flex;align-items:center;min-height:38px;padding:9px 10px;color:#f8fafc;font-size:13px;font-weight:700}.lab-workbench-section[open]>summary{border-bottom:1px solid rgba(167,243,255,.12)}.lab-workbench-content{padding:10px}.lab-nested-section .lab-section{margin:0}.lab-nested-section .lab-section>h3{display:none}.lab-nested-section .lab-section+.lab-section{margin-top:12px}.lab-section+.lab-section{margin-top:12px}.lab-section h3,.lab-section h4{margin:0 0 10px;letter-spacing:0}.lab-section h3{color:#f8fafc;font-size:15px}.lab-section h4{margin-top:14px;color:#dbe4ee;font-size:12px;text-transform:uppercase}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.control-grid label,.spell-row,.check-row label,.overlay-grid label{color:#dffbff;font-size:12px}.control-grid label{display:grid;gap:5px}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.button-row button{flex:0 1 auto;font-size:12px}.check-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.check-row input,.spell-row input,.overlay-grid input{width:auto;margin-right:6px}.kv-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 0}.kv-list div{min-width:0;border:1px solid rgba(167,243,255,.14);border-radius:7px;padding:8px;background:#0d1742}.kv-list dt{color:#8ee8ff;font-size:11px}.kv-list dd{margin:2px 0 0;overflow-wrap:anywhere;color:#f8fafc;font-size:13px}.warning-list{display:grid;gap:6px;margin-top:10px}.warning-list div{border:1px solid rgba(250,204,21,.26);border-radius:7px;padding:8px;color:#fde68a;background:#6f430c61;font-size:12px}.resource-strip{margin:0 0 10px;border:1px solid rgba(102,255,204,.18);border-radius:7px;padding:8px;color:#d1fae5;background:#08585047;font-size:12px}.upgrade-list,.spell-list{display:grid;gap:8px}.upgrade-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid rgba(167,243,255,.14);border-radius:7px;padding:9px;background:#0d1742}.upgrade-row strong,.spell-row strong{display:block;font-size:13px}.upgrade-row span,.upgrade-row small,.spell-row small,.spell-row em{display:block;margin-top:2px;color:#bdefff;font-size:11px;font-style:normal}.spell-row{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:flex-start;border:1px solid rgba(167,243,255,.14);border-radius:7px;padding:9px;background:#0d1742}.overlay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.table-wrap{max-width:100%;overflow-x:auto;border:1px solid rgba(167,243,255,.14);border-radius:7px}table{width:100%;min-width:520px;border-collapse:collapse;font-size:12px}th,td{border-bottom:1px solid rgba(248,250,252,.08);padding:7px 8px;text-align:left}th{color:#cbd5e1;background:#13206b;font-weight:700}td{color:#eef2f7}.io-textarea{width:100%;min-height:260px;margin-top:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.collision-log{margin:8px 0 0;padding-left:22px;color:#dbe4ee;font-size:12px}.collision-log li+li{margin-top:6px}details{margin-top:10px;border:1px solid rgba(167,243,255,.14);border-radius:7px;padding:9px;background:#0d1742}summary{cursor:pointer;color:#f8fafc;font-size:13px}@media(max-width:760px){.lab-body{max-height:none}.lab-run-dock{top:0}.lab-run-groups{grid-template-columns:1fr}.lab-run-grid,.lab-run-actions,.lab-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.control-grid,.kv-list,.overlay-grid,.upgrade-row{grid-template-columns:1fr}}@media(max-width:440px){.lab-run-grid,.lab-run-actions,.lab-summary dl{grid-template-columns:1fr}}
