:root{
  color-scheme:dark;
  --panel:rgba(7,10,15,.84);
  --line:rgba(122,239,255,.27);
  --cyan:#75efff;
  --hot:#ff4f7d;
  --amber:#ffc65a;
  --text:#eafaff;
}
*{box-sizing:border-box}
html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#05070a;font-family:Consolas,"Courier New",monospace;color:var(--text);user-select:none}
body{touch-action:none}
#game{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;background:#05070a;cursor:crosshair}
.glass{background:linear-gradient(135deg,rgba(13,20,29,.9),rgba(4,7,11,.78));border:1px solid var(--line);box-shadow:0 12px 40px #0008,inset 0 0 30px rgba(92,227,255,.035);backdrop-filter:blur(8px)}
#hud{position:absolute;left:14px;top:14px;width:310px;padding:12px 14px;pointer-events:none}
.brand{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:8px}.brand b{font-size:22px;letter-spacing:1px}.brand span,.logo span{color:var(--hot)}.brand small{font-size:8px;color:#8db4bf;letter-spacing:1px}
#objective{min-height:42px;font-size:12px;line-height:1.35;color:#d5faff}#objective b{display:block;color:var(--amber);font-size:10px;letter-spacing:1px;margin-bottom:2px}
.meters{margin-top:7px}.meters label{font-size:10px;color:#a7c8d1}.meters strong{color:#fff}.bar{height:6px;border:1px solid #43616b;margin:4px 0 2px;background:#071015}.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#36bbd5,#affcff);box-shadow:0 0 10px #55ddff}.tiny{display:block;text-align:right;font-size:8px!important}
#stats{font-size:9px;line-height:1.5;color:#8fb0ba;margin-top:6px;white-space:pre-line}
#eventFeed{position:absolute;right:14px;top:14px;width:280px;min-height:30px;max-height:165px;padding:9px 11px;overflow:hidden;pointer-events:none}.feedItem{font-size:9px;line-height:1.35;border-left:2px solid var(--cyan);padding:3px 7px;margin:3px 0;color:#bcd4da;animation:feedin .25s ease-out}.feedItem.hot{border-color:var(--hot);color:#ffd1dd}.feedItem.good{border-color:#7aff9c;color:#d1ffdc}@keyframes feedin{from{opacity:0;transform:translateX(12px)}}
#toolbar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:5px;padding:7px;max-width:calc(100vw - 24px)}
#toolbar button{position:relative;width:104px;height:54px;border:1px solid #29434d;background:#0b131a;color:#c7e2e9;font-family:inherit;text-align:left;padding:7px 6px 5px 30px;cursor:pointer;transition:.12s;overflow:hidden}#toolbar button:hover{border-color:#69ddef;background:#11232c}#toolbar button.active{border-color:var(--cyan);color:#fff;background:linear-gradient(145deg,#12313c,#0b171d);box-shadow:0 0 17px #44dfff44,inset 0 -2px var(--cyan)}#toolbar button.locked{filter:saturate(.2);opacity:.42}#toolbar kbd{position:absolute;left:7px;top:7px;width:17px;height:17px;display:grid;place-items:center;border:1px solid #58717a;background:#061015;color:#fff;font:10px inherit}#toolbar span{display:block;font-weight:bold;font-size:10px;letter-spacing:.6px}#toolbar small{display:block;color:#708e97;font-size:7px;margin-top:3px}
#minimap{position:absolute;right:14px;bottom:84px;width:128px;height:128px;image-rendering:pixelated;border:1px solid var(--line);background:#081017;box-shadow:0 8px 30px #0008}
#debugPanel{position:absolute;left:14px;bottom:83px;width:285px;padding:10px}#debugPanel b{font-size:10px;color:var(--cyan)}#debugText{font:9px/1.35 Consolas,monospace;color:#9ab9c2;white-space:pre-wrap}.debugButtons{display:flex;gap:4px}.debugButtons button{font:8px inherit;background:#101b22;color:#cbeaf0;border:1px solid #36515a;padding:6px;cursor:pointer}
#crosshair{position:absolute;display:none;pointer-events:none;color:#fff;text-shadow:0 0 5px #000;font:bold 16px monospace;transform:translate(-50%,-50%)}
#toast{position:absolute;left:50%;top:23%;transform:translate(-50%,-50%);font-weight:bold;letter-spacing:2px;font-size:15px;color:#fff;text-shadow:0 2px 12px #000,0 0 14px #ff3f6f;opacity:0;pointer-events:none;transition:opacity .2s}
#menu{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 60% 30%,#14303d99,#05070af2 58%),repeating-linear-gradient(0deg,transparent 0 3px,#0002 4px);z-index:20}.menuCard{width:min(720px,calc(100vw - 28px));padding:34px}.logo{font-weight:900;font-size:clamp(38px,8vw,78px);line-height:.9;letter-spacing:-5px;text-shadow:0 0 35px #67eaff33}.menuCard h1{font-size:19px;line-height:1.45;margin:22px 0 8px}.menuCard h1 em{font-style:normal;color:var(--hot)}.menuCard p{max-width:620px;color:#a9c1c8;font-size:12px;line-height:1.55}.seedRow{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin:22px 0 10px}.seedRow label{font-size:9px;color:#7896a0}.seedRow input{height:38px;background:#050b0f;border:1px solid #365965;color:#dffaff;font:14px inherit;padding:0 10px;outline:none}.seedRow button,.primary{font-family:inherit;border:1px solid #43717e;background:#0c1a20;color:#dffaff;padding:11px 15px;cursor:pointer}.primary{width:100%;background:linear-gradient(90deg,#153b48,#1a2631);border-color:var(--cyan);font-weight:bold;letter-spacing:2px;font-size:13px;box-shadow:0 0 22px #55ddff22}.primary:hover{background:linear-gradient(90deg,#1b5364,#292438)}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:13px}.features span{border:1px solid #203840;background:#071015;padding:8px 5px;text-align:center;font-size:7px;color:#82acb7}.controls{display:block;margin-top:16px;color:#607a83;font-size:8px;text-align:center}
.modal{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#000a}.modalCard{position:relative;width:min(650px,calc(100vw - 28px));padding:26px}.modalCard h2{margin-top:0;color:var(--cyan)}.modalCard p{font-size:11px;line-height:1.6;color:#a9c2ca}.close{position:absolute;right:10px;top:8px;background:none;border:0;color:white;font-size:25px;cursor:pointer}.helpGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.helpGrid div{border:1px solid #29414a;padding:12px;color:#91afb8;font-size:10px;line-height:1.6}.helpGrid b{color:#fff}
.hidden{display:none!important}
@media(max-width:850px){#toolbar button{width:64px;padding-left:24px}#toolbar small{display:none}#toolbar span{font-size:8px}#hud{width:260px}#eventFeed{display:none}#minimap{width:96px;height:96px}.features{grid-template-columns:repeat(2,1fr)}}
@media(max-height:620px){#hud{transform:scale(.82);transform-origin:top left}#minimap{display:none}#toolbar{bottom:5px}.menuCard{padding:20px}.menuCard p{display:none}}

/* v0.2 apocalypse deck */
#toolbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;justify-content:flex-start}
#toolbar::-webkit-scrollbar{display:none}
#toolbar button{flex:0 0 94px;width:94px}
#toolbar button:nth-last-child(-n+4){border-color:#613958;background:linear-gradient(145deg,#21101d,#0d1118)}
#toolbar button:nth-last-child(-n+4).active{border-color:#ff65b6;box-shadow:0 0 20px #ff4f9d55,inset 0 -2px #ff65b6}
@media(max-width:1100px){#toolbar{left:10px;right:10px;transform:none;max-width:none}#toolbar button{flex-basis:86px}}

/* v0.3.2 legends, timers, and human vision */
.panelTitle{font-size:10px;font-weight:bold;letter-spacing:1px;color:var(--cyan);border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:6px}
.panelTitle small{float:right;font-size:7px;color:#758f98;font-weight:normal}
#eventTimers{position:absolute;left:14px;top:238px;width:310px;padding:9px 11px;max-height:150px;overflow:hidden;pointer-events:none}
.eventTimer{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:4px 0;font-size:8px;color:#b7d0d6}
.eventTimer i{grid-column:1/3;height:3px;background:#111d23;display:block;overflow:hidden}
.eventTimer i span{height:100%;display:block;background:linear-gradient(90deg,#ff4f7d,#ffc65a)}
#humanScoreboard{position:absolute;right:14px;top:187px;width:330px;padding:9px 10px;max-height:330px;overflow:hidden}
.scoreColumns{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scoreColumns>div{min-width:0}.heroHead,.villainHead{display:block;font-size:9px;margin-bottom:4px}.heroHead{color:#79ffad}.villainHead{color:#ff7896}
.humanList{display:flex;flex-direction:column;gap:3px}.humanRow{display:grid;grid-template-columns:16px 1fr auto;gap:4px;align-items:center;width:100%;border:1px solid #21363e;background:#091116;color:#bcd3d9;padding:4px;text-align:left;font:7px/1.2 Consolas,monospace;cursor:pointer;min-width:0}.humanRow:hover,.humanRow.selected{border-color:#6ee8fa;background:#10242c}.humanRow.villain:hover,.humanRow.villain.selected{border-color:#ff678a}.humanRow .rank{color:#617d85}.humanRow .humanName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.humanRow .humanScore{color:#fff;font-weight:bold}.humanRow.dead{opacity:.55}.emptyRecord{font-size:7px;color:#68818a;padding:7px 2px}
#humanPip{position:absolute;right:14px;bottom:220px;width:266px;padding:8px;z-index:9}#pipCanvas{display:block;width:240px;height:135px;background:#05070a;image-rendering:pixelated;border:1px solid #31525d}#pipStatus{font-size:8px;line-height:1.35;color:#9ab8c1;white-space:pre-line;margin-top:6px}.pipClose{position:absolute;right:6px;top:4px;border:0;background:transparent;color:white;font-size:18px;cursor:pointer;z-index:2}
@media(max-width:1050px){#humanScoreboard{width:282px}.humanRow{font-size:6px}#eventTimers{top:auto;bottom:150px;width:250px}#humanPip{right:8px;bottom:195px}}
@media(max-height:720px){#humanScoreboard{top:120px;max-height:240px;transform:scale(.85);transform-origin:top right}#eventTimers{display:none}#humanPip{transform:scale(.82);transform-origin:bottom right}}

/* v0.3.3 readability, higher fidelity, and enhanced human vision */
#powerReadout{position:absolute;left:50%;bottom:91px;transform:translateX(-50%);width:min(620px,calc(100vw - 40px));padding:7px 12px;text-align:center;pointer-events:none;background:rgba(5,10,15,.94);border-color:rgba(135,243,255,.5)}
#powerReadout b{font-size:14px;letter-spacing:1.4px;color:#fff;text-shadow:0 0 8px #61eaff}
#powerReadout span{display:block;margin-top:2px;font-size:10px;line-height:1.3;color:#d2f4fa}
#toolbar{bottom:10px;gap:7px;padding:8px;background:rgba(4,8,12,.94)}
#toolbar button{flex:0 0 128px;width:128px;height:70px;padding:10px 8px 7px 37px;border-width:2px;background:#08131a;color:#f1fbff;box-shadow:inset 0 0 15px #0008}
#toolbar button:hover{transform:translateY(-2px)}
#toolbar button.active{background:linear-gradient(145deg,#17404f,#0a1a22);box-shadow:0 0 18px #44dfff66,inset 0 -3px var(--cyan)}
#toolbar button.locked{opacity:.58}
#toolbar kbd{left:9px;top:10px;width:21px;height:21px;font-size:12px;border-color:#8db8c4;background:#02070a}
#toolbar span{font-size:12px;line-height:1.15;letter-spacing:.7px;text-shadow:0 1px 2px #000}
#toolbar small{font-size:9px;line-height:1.25;color:#b6d0d7;margin-top:5px;white-space:normal}
#humanPip{right:14px;bottom:184px;width:386px;padding:10px;background:rgba(3,8,12,.96);border-color:#5dcfe3}
#pipCanvas{width:360px;height:203px;border:2px solid #4c8594;image-rendering:pixelated;box-shadow:inset 0 0 24px #000,0 0 18px #35cde433}
#pipStatus{font-size:9px;line-height:1.45;color:#c0dce3;margin-top:7px}
.pipHint{font-size:7px;color:#6f929c;text-align:center;margin-top:5px;letter-spacing:.4px}
#humanScoreboard{max-height:350px}
.humanRow{font-size:8px;min-height:27px;padding:5px}
.humanRow .humanName small{font-size:7px;color:#91aeb6}
#eventFeed{font-size:10px}
@media(max-width:1100px){#toolbar button{flex-basis:116px;width:116px}#powerReadout{bottom:88px}#humanPip{width:326px}#pipCanvas{width:300px;height:169px}}
@media(max-height:720px){#powerReadout{display:none}#toolbar button{height:60px}#humanPip{bottom:145px}}

/* v0.3.3 movable interface and clear power deck */
.draggablePanel{touch-action:none}
.dragHandle{cursor:move}
.draggingPanel{opacity:.96;box-shadow:0 18px 55px #000c,0 0 0 1px #7eefff88!important;z-index:60!important}
#eventFeed{pointer-events:auto;max-height:210px}
#eventFeedItems{max-height:160px;overflow:hidden}
.toolbarDrag{flex:0 0 44px;align-self:stretch;display:grid;place-items:center;text-align:center;font-size:7px;line-height:1.3;letter-spacing:.8px;color:#8eb6c0;border:1px dashed #33505a;background:#050c10;padding:4px;cursor:move}
#powerReadout{pointer-events:auto;cursor:move}
#minimap{cursor:move;touch-action:none}
#debugPanel>.dragHandle{display:block;border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:5px}
@media(max-width:850px){#toolbar button{flex-basis:106px!important;width:106px!important;padding-left:34px!important}#toolbar small{display:block!important;font-size:8px!important}#toolbar span{font-size:11px!important}.toolbarDrag{flex-basis:36px}}

/* v0.4.0 one-screen power grid + full 3D takeover */
#toolbar{
  display:grid!important;
  grid-template-columns:44px repeat(9,minmax(72px,1fr));
  grid-template-rows:repeat(2,58px);
  width:min(1180px,calc(100vw - 20px));
  max-width:none!important;
  gap:5px!important;
  overflow:visible!important;
  padding:6px!important;
}
#toolbar .toolbarDrag{grid-row:1/3;grid-column:1;width:auto!important;min-width:0;flex:none}
#toolbar button{width:auto!important;min-width:0!important;height:58px!important;flex:none!important;padding:7px 5px 5px 29px!important}
#toolbar button kbd{left:5px;top:7px;width:18px;height:18px;font-size:10px}
#toolbar button span{font-size:10px!important;white-space:normal;line-height:1.05}
#toolbar button small{font-size:7px!important;line-height:1.1;margin-top:3px}
#powerReadout{bottom:137px}
@media(max-width:1050px){
  #toolbar{grid-template-columns:38px repeat(6,minmax(72px,1fr));grid-template-rows:repeat(3,54px);width:calc(100vw - 12px)}
  #toolbar .toolbarDrag{grid-row:1/4}
  #toolbar button{height:54px!important}
  #powerReadout{bottom:182px}
}
@media(max-width:720px){
  #toolbar{grid-template-columns:32px repeat(6,minmax(54px,1fr));gap:3px!important}
  #toolbar button{padding-left:24px!important}
  #toolbar button small{display:none!important}
  #toolbar button span{font-size:8px!important}
  #toolbar button kbd{width:15px;height:15px;font-size:8px}
}
#game3d{position:absolute;inset:0;width:100%;height:100%;display:none;background:#071018;cursor:crosshair}
body.takeoverMode #game{display:none}
body.takeoverMode #game3d{display:block}
body.takeoverMode #hud,body.takeoverMode #eventFeed,body.takeoverMode #powerReadout,body.takeoverMode #toolbar,body.takeoverMode #eventTimers,body.takeoverMode #humanScoreboard,body.takeoverMode #humanPip,body.takeoverMode #debugPanel,body.takeoverMode #minimap{display:none!important}
#takeoverHud{position:absolute;inset:0;pointer-events:none;z-index:80}
.takeoverTop{position:absolute;left:18px;right:18px;top:14px;min-height:52px;padding:10px 13px;display:flex;align-items:center;gap:12px;background:rgba(5,10,15,.82)}
.takeoverTop b{font-size:17px;color:#fff;letter-spacing:1px}.takeoverTop span{font-size:10px;color:#87ddea}.takeoverTop button{margin-left:auto;pointer-events:auto;border:1px solid #5f9da9;background:#0d2028;color:#eaffff;font:9px Consolas,monospace;padding:9px 12px;cursor:pointer}
.takeoverBottom{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:5px;width:min(620px,calc(100vw - 24px));padding:7px;background:rgba(4,9,14,.88)}
.takeoverBottom>div{border:1px solid #29454e;padding:7px;text-align:center;background:#071118}.takeoverBottom small{display:block;font-size:7px;color:#76959f}.takeoverBottom b{display:block;margin-top:2px;font-size:11px;color:#ecfdff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takeoverControls{position:absolute;left:50%;bottom:105px;transform:translateX(-50%);padding:6px 10px;font-size:8px;color:#aacbd3;background:rgba(4,9,14,.78);white-space:nowrap}
#takeoverCrosshair{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%)}#takeoverCrosshair i{position:absolute;background:#eaffff;box-shadow:0 0 5px #000,0 0 8px #74eaff}#takeoverCrosshair i:first-child{left:2px;right:2px;top:9px;height:2px}#takeoverCrosshair i:last-child{top:2px;bottom:2px;left:9px;width:2px}
.takeControlBtn{display:block;width:100%;margin-top:7px;border:1px solid #68e6ff;background:linear-gradient(90deg,#143746,#19243c);color:#efffff;font:bold 10px Consolas,monospace;letter-spacing:1px;padding:9px;cursor:pointer}.takeControlBtn:disabled{opacity:.35;cursor:not-allowed}
body.takeoverMode #toast{z-index:90}
@media(max-width:650px){.takeoverBottom{grid-template-columns:repeat(2,1fr);bottom:10px}.takeoverControls{display:none}.takeoverTop span{display:none}}

/* v0.5.0 Resistance Protocol */
#powerReadout{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;text-align:left;cursor:default}
.powerReadoutText{min-width:0;cursor:move;text-align:center}.editPowerBtn{pointer-events:auto;border:1px solid #ffd76b;background:linear-gradient(180deg,#3a2d0c,#171105);color:#fff3bd;font:bold 9px Consolas,monospace;letter-spacing:.7px;padding:9px 10px;cursor:pointer;white-space:nowrap}.editPowerBtn:hover{box-shadow:0 0 16px #ffc95566;border-color:#fff0a0}
#godcash,#forgeCash{color:#ffd76b;text-shadow:0 0 8px #ffc32f88}
.chaosEditorCard{width:min(760px,calc(100vw - 28px));padding:24px;background:linear-gradient(145deg,rgba(20,14,4,.97),rgba(5,10,15,.97));border-color:#bc8d2e}.forgeHeader{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #76591f;padding-bottom:10px}.forgeHeader b{font-size:22px;color:#fff4bf}.forgeHeader span{font-size:11px;color:#c8aa58}.forgeStats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:16px 0}.forgeStat{border:1px solid #4e4226;background:#0d0d0a;padding:10px;text-align:center}.forgeStat small{display:block;color:#9c8b61;font-size:8px}.forgeStat b{display:block;color:#fff2b2;font-size:16px;margin-top:4px}.forgeButtons{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.forgeButtons button,.forgeFooter button{font:9px Consolas,monospace;border:1px solid #76591f;background:#1b1609;color:#ffe7a0;padding:11px 7px;cursor:pointer}.forgeButtons button:hover,.forgeFooter button:hover{background:#33270a;border-color:#ffd76b}.forgeButtons button:disabled{opacity:.35;cursor:not-allowed}.forgeFooter{display:flex;gap:8px;margin-top:12px}.forgeFooter button:first-child{flex:1;background:linear-gradient(90deg,#44250b,#4e1034);border-color:#ffb14a;font-weight:bold}.forgeFooter button:last-child{background:#11171a;color:#9fb3b8;border-color:#34464d}
#takeoverCameraMode{padding:5px 8px;border:1px solid #38616c;color:#fff!important;background:#07151b;font-size:8px!important}#toggleCameraMode{margin-left:auto!important}#exitTakeover{margin-left:0!important}
body.takeoverMode.fpsMode #takeoverCrosshair i{background:#ffefd0;box-shadow:0 0 5px #000,0 0 9px #ffad4d}
@media(max-width:850px){.forgeStats,.forgeButtons{grid-template-columns:repeat(2,1fr)}#powerReadout{grid-template-columns:1fr}.editPowerBtn{justify-self:center;padding:6px 10px}.takeoverTop{flex-wrap:wrap}.takeoverTop button{margin-left:0!important}}
