:root{color-scheme:dark;font-family:Cascadia Mono,Consolas,Courier New,ui-monospace,monospace;background:#02040b;color:#e8fbff}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;overscroll-behavior:none;touch-action:none;background:radial-gradient(circle at 30% 18%,rgba(255,79,216,.12),transparent 28%),radial-gradient(circle at 70% 30%,rgba(79,245,255,.14),transparent 32%),linear-gradient(180deg,#02040b,#050512 56%,#02040b)}canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.hud-top{position:absolute;top:8px;left:50%;display:grid;grid-template-columns:repeat(6,minmax(76px,1fr));gap:8px;width:min(1040px,calc(100vw - 24px));transform:translate(-50%)}.hud-panel,.objective-panel,.boss-hud{border:1px solid rgba(119,244,255,.3);border-radius:6px;background:#030916ad;box-shadow:0 0 18px #3ee4ff1a,inset 0 0 16px #60f0ff0d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hud-panel{min-height:42px;padding:7px 9px}.hud-label{display:block;color:#d2f1ffb8;font-size:10px;font-weight:800;letter-spacing:0;line-height:1.1;text-transform:uppercase}.hud-value{display:block;margin-top:3px;color:#f3feff;font-size:18px;font-weight:900;line-height:1.05;text-shadow:0 0 8px rgba(102,252,255,.72),0 0 18px rgba(255,89,255,.2)}.beam-value{color:#aaf8ff}.battery-value.ready{color:#c7ff4f;text-shadow:0 0 8px rgba(199,255,79,.86),0 0 18px rgba(199,255,79,.34)}.heat-wrap,.progress-wrap,.boss-meter{overflow:hidden;border:1px solid rgba(178,240,255,.25);border-radius:999px;background:#ffffff14}.heat-wrap{margin-top:7px;height:9px}.heat-bar{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#45fbff,#c7ff4f 48%,#ffe066 68%,#ff4f78);box-shadow:0 0 16px #ff62738c;transition:width 80ms linear}.heat-bar.overheated{animation:heat-pulse .28s alternate infinite}@keyframes heat-pulse{0%{filter:saturate(1)}to{filter:saturate(1.9) brightness(1.25)}}.objective-panel{position:absolute;top:64px;left:50%;width:min(760px,calc(100vw - 24px));padding:8px 10px 10px;transform:translate(-50%)}.objective-row,.boss-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#effdffeb;font-size:12px;font-weight:800;line-height:1.25}.progress-count,.boss-row span:last-child{color:#ffe887;white-space:nowrap}.progress-wrap{height:10px;margin-top:7px}.progress-bar{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff59ff,#6ffcff,#c7ff4f);box-shadow:0 0 16px #6ffcff7a;transition:width .12s linear}.mode-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.mode-strip span{overflow:hidden;padding:5px 7px;border-left:2px solid rgba(120,255,239,.86);border-radius:4px;background:#040e1d8f;color:#eefdffe6;font-size:10px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.boss-hud{position:absolute;top:138px;left:50%;width:min(560px,calc(100vw - 24px));padding:8px 10px 10px;opacity:0;transform:translate(-50%);transition:opacity .14s ease}.boss-hud.visible{opacity:1}.boss-meter{height:11px;margin-top:7px;border-color:#ff78ff57}.boss-bar{height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,#ff54dc,#68f4ff);box-shadow:0 0 16px #ff58de80;transition:width .12s linear}.hud-reminder{position:absolute;right:14px;top:66px;display:flex;gap:8px;align-items:center;color:#eafdffdb;font-size:11px;font-weight:900;text-transform:uppercase}.hud-reminder span{padding:6px 8px;border:1px solid rgba(111,252,255,.24);border-radius:5px;background:#040a16ad;box-shadow:0 0 12px #6ffcff1f}.touch-controls{position:absolute;right:12px;bottom:12px;left:12px;z-index:6;display:none;grid-template-columns:1fr auto 1.3fr;gap:10px;align-items:end;pointer-events:auto}.touch-move,.touch-modes{display:grid;gap:7px}.touch-move{grid-template-columns:repeat(2,minmax(64px,1fr))}.touch-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.touch-fire button{width:82px;height:82px;border-color:#ffe887c7;border-radius:50%;background:radial-gradient(circle,#ffe88757,#ff59ff2e 48%,#040c1cf5);color:#fff7cf}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:7;display:grid;place-items:center;padding:24px;background:linear-gradient(#0000002e 50%,#0000004d 50%) 0 0 / 100% 4px,#00050e80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.overlay.hidden,.help-panel.hidden{display:none}.overlay-card,.help-card{border:2px solid rgba(111,252,255,.36);border-radius:8px;background:#030914e6;box-shadow:0 0 0 2px #ff59ff14,0 0 46px #50e8ff29,inset 0 0 32px #72f9ff0f}.overlay-card{width:min(540px,calc(100vw - 48px));max-width:100%;max-height:calc(100vh - 32px);min-width:0;overflow:auto;padding:18px;text-align:center}.start-card{width:min(560px,calc(100vw - 48px))}.eyebrow{margin:0 0 8px;color:#ffe887;font-size:12px;font-weight:900;text-transform:uppercase}.overlay-title{margin:0 0 12px;color:#f7feff;font-size:clamp(30px,6vw,48px);font-weight:900;letter-spacing:0;line-height:.98;text-transform:uppercase;text-shadow:0 0 14px rgba(99,255,255,.68),0 0 32px rgba(255,73,225,.38);overflow-wrap:anywhere}.overlay-copy{margin:0;color:#e9faffd1;font-size:14px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}.overlay-copy.small{margin-top:14px;font-size:11px}.overlay-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}.arcade-button,.touch-controls button{min-height:40px;padding:10px 14px;border:1px solid rgba(111,252,255,.62);border-radius:6px;background:linear-gradient(180deg,#6ffcff38,#030e20eb);color:#f3feff;cursor:pointer;font:inherit;font-size:12px;font-weight:900;line-height:1;text-shadow:0 0 10px rgba(111,252,255,.62);text-transform:uppercase;touch-action:none}.arcade-button{margin-top:12px}.arcade-button.danger{border-color:#ff526bb3;background:linear-gradient(180deg,#ff526b42,#220412eb)}.initials{display:flex;justify-content:center;gap:10px;margin:12px 0 4px}.initials span{display:grid;place-items:center;width:54px;height:60px;border:2px solid rgba(111,252,255,.52);border-radius:6px;background:#060e1ec7;color:#ffe887;font-size:32px;font-weight:900;text-shadow:0 0 16px rgba(255,232,135,.55);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.initials span.active{border-color:#ffe887;background:linear-gradient(#ffe8871f,#6ffcff14),#060e1eeb;box-shadow:0 0 0 2px #ffe8872e,0 0 26px #ffe8876b,inset 0 -7px #6ffcff38;color:#fff;transform:translateY(-4px)}.lab-splash-card{display:grid;justify-items:center;gap:12px}.lab-title{max-width:520px;margin:0;color:#f7feff;font-size:clamp(26px,6vw,44px);font-weight:900;line-height:1.08;text-transform:uppercase;text-shadow:0 0 18px rgba(111,252,255,.54),0 0 30px rgba(255,89,255,.28)}.lab-logo{width:min(210px,48vw);height:auto;filter:drop-shadow(0 0 20px rgba(111,252,255,.48)) drop-shadow(0 0 26px rgba(255,89,255,.34))}.scoreboard{margin:10px auto 0;width:min(420px,100%);text-align:left}.scoreboard h2{margin:0 0 6px;color:#aaf8ff;font-size:13px;text-align:center;text-transform:uppercase}.scoreboard ol,.mini-scores{display:grid;gap:4px;margin:0;padding:0;list-style:none}.scoreboard li{display:grid;grid-template-columns:32px 1fr auto 38px;gap:8px;align-items:center;padding:5px 8px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:#ffffff0a;color:#f2fdffe6;font-size:12px;font-weight:800}.scoreboard .empty-score{display:block;text-align:center}.scoreboard em,.mini-scores span{color:#ffe887;font-style:normal}.win-card{animation:win-glow .76s ease-in-out infinite alternate;background:linear-gradient(#ffe88714,#6ffcff0a),#030914f0}.win-title{color:#fff7c7;text-shadow:0 0 10px rgba(255,232,135,.88),0 0 26px rgba(111,252,255,.62),0 0 42px rgba(255,89,255,.42)}.win-copy{margin:12px auto;max-width:470px;color:#f7feff;font-size:16px;text-shadow:0 0 14px rgba(111,252,255,.4)}@keyframes win-glow{0%{border-color:#6ffcff70;box-shadow:0 0 0 2px #ff59ff14,0 0 42px #50e8ff2e,inset 0 0 32px #72f9ff14}to{border-color:#ffe887b8;box-shadow:0 0 0 2px #ffe8871f,0 0 60px #ffe88738,inset 0 0 40px #ff59ff1f}}.level-complete{animation:complete-pop .68s ease-in-out infinite alternate}@keyframes complete-pop{0%{box-shadow:0 0 28px #6ffcff24,inset 0 0 24px #6ffcff0d}to{box-shadow:0 0 56px #ff59ff38,inset 0 0 32px #ffe88714}}.help-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;display:grid;place-items:center;padding:18px;background:#00040cb3;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.help-card{width:min(1040px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;padding:18px}.help-header{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid rgba(111,252,255,.2);padding-bottom:10px}.help-header h2,.help-grid h3{margin:0;color:#f7feff;font-size:18px;line-height:1.1;text-transform:uppercase;text-shadow:0 0 16px rgba(111,252,255,.38)}.help-header span{color:#ffe887;font-size:12px;font-weight:900;text-transform:uppercase}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.help-grid section{min-width:0;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#ffffff09}.help-grid h3{margin-bottom:9px;color:#aaf8ff;font-size:14px}.help-grid p{margin:0 0 9px;color:#ebfbffd4;font-size:12px;font-weight:700;line-height:1.55}.guide-list{display:grid;gap:8px}.guide-row{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center;min-width:0}.guide-row strong,.guide-row span{display:block}.guide-row strong{color:#f7feff;font-size:12px;text-transform:uppercase}.guide-row span{color:#e2f8ffc2;font-size:11px;font-weight:700;line-height:1.35}.guide-row.locked{opacity:.42}.guide-icon{position:relative;display:grid;place-items:center;width:52px;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#0000003d;color:#f7feff;font-size:10px;font-weight:900;text-transform:uppercase}.guide-row:not(.locked) .guide-icon{font-size:0}.guide-row:not(.locked) .guide-icon:before,.guide-row:not(.locked) .guide-icon:after{content:"";display:block}.guide-icon.enemy-point:before{width:19px;height:19px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#7dffb1;box-shadow:0 0 14px #7dffb1e6}.guide-icon.enemy-point:after{position:absolute;width:34px;height:34px;background:linear-gradient(#7dffb1,#7dffb1) 50% 0 / 4px 9px no-repeat,linear-gradient(#7dffb1,#7dffb1) 50% 100% / 4px 9px no-repeat,linear-gradient(90deg,#7dffb1,#7dffb1) 0 50% / 9px 4px no-repeat,linear-gradient(90deg,#7dffb1,#7dffb1) 100% 50% / 9px 4px no-repeat;opacity:.8}.guide-icon.enemy-ring:before{width:29px;height:29px;border:7px solid #f2f7ff;border-radius:50%;box-shadow:0 0 14px #f2f7ffc2}.guide-icon.enemy-double:before{width:42px;height:24px;background:radial-gradient(circle at 24% 50%,#ffc15a 0 23%,transparent 25%),radial-gradient(circle at 76% 50%,#ffc15a 0 23%,transparent 25%),linear-gradient(90deg,transparent 0 28%,rgba(255,193,90,.7) 29% 71%,transparent 72%);filter:drop-shadow(0 0 10px rgba(255,193,90,.9))}.guide-icon.enemy-topological:before{width:32px;height:32px;border:7px solid transparent;border-radius:50%;background:linear-gradient(#050713,#050713) padding-box,conic-gradient(#6ffcff 0,#6ffcff 50%,#ff59ff 50%,#ff59ff) border-box;box-shadow:-6px 0 12px #6ffcffb3,6px 0 12px #ff59ffb3}.guide-icon.enemy-topological:after{position:absolute;width:43px;height:43px;border:2px solid rgba(255,255,255,.32);border-radius:50%}.guide-icon.enemy-armored:before{width:38px;height:24px;border:4px solid #ff7f4d;background:#ff7f4d38;box-shadow:0 0 14px #ff7f4dcc}.guide-icon.enemy-dust:before{width:42px;height:30px;border-radius:50%;background:radial-gradient(circle at 22% 45%,#d8f0ff 0 6%,transparent 7%),radial-gradient(circle at 48% 35%,#8aa0ad 0 7%,transparent 8%),radial-gradient(circle at 72% 54%,#b8c2ca 0 8%,transparent 9%),radial-gradient(circle at 38% 68%,#6ffcff 0 5%,transparent 6%),#9fb4c02e;box-shadow:0 0 14px #d8f0ff94}.guide-icon.enemy-boss:before{width:44px;height:22px;border:2px solid #a8fbff;background:linear-gradient(90deg,transparent 0 7px,#ff59ff 8px 12px,transparent 13px 20px,#6ffcff 21px 25px,transparent 26px),#10142a;box-shadow:0 0 14px #ff59ff9e}.guide-icon.optic-spiral:before{width:32px;height:32px;border:2px solid #6ffcff;border-radius:50%;background:conic-gradient(from 35deg,transparent 0 16%,#6ffcff 17% 22%,transparent 23% 45%,#dffcff 46% 52%,transparent 53%);box-shadow:0 0 14px #6ffcffd6}.guide-icon.optic-cylindrical:before{width:40px;height:30px;background:linear-gradient(90deg,transparent 0 11px,#ffc15a 12px 18px,transparent 19px 23px,#ffc15a 24px 30px,transparent 31px),linear-gradient(0deg,transparent 0 4px,rgba(255,193,90,.56) 5px 8px,transparent 9px 21px,rgba(255,193,90,.56) 22px 25px,transparent 26px);filter:drop-shadow(0 0 10px rgba(255,193,90,.86))}.guide-icon.optic-grating:before{width:42px;height:28px;border:2px solid #c7ff4f;border-radius:4px;background:repeating-linear-gradient(90deg,transparent 0 4px,#c7ff4f 5px 7px,transparent 8px 11px),#c7ff4f1f;box-shadow:0 0 14px #c7ff4fd6}.enemy-point{box-shadow:inset 0 0 16px #7dffb147,0 0 12px #7dffb129}.enemy-ring{box-shadow:inset 0 0 16px #f2f7ff47,0 0 12px #f2f7ff24}.optic-spiral{box-shadow:inset 0 0 16px #9f6bff52,0 0 12px #9f6bff2e}.enemy-double,.optic-cylindrical{box-shadow:inset 0 0 16px #ffc15a52,0 0 12px #ffc15a2e}.enemy-topological{box-shadow:inset 0 0 16px #ff59ff57,0 0 12px #ff59ff33}.enemy-armored,.enemy-boss{box-shadow:inset 0 0 16px #ff7f4d57,0 0 12px #ff7f4d33}.enemy-dust{box-shadow:inset 0 0 16px #d8f0ff33,0 0 12px #6ffcff1f}.optic-grating{box-shadow:inset 0 0 16px #c7ff4f47,0 0 12px #c7ff4f2e}.mini-scores li,.debug-note{color:#e2f8ffc2;font-size:11px;font-weight:700}.mini-scores b{color:#aaf8ff}.debug-note{margin-top:10px!important;color:#ffe887b3!important}@media (max-width: 700px) and (pointer: coarse){.touch-controls{display:grid}.hud-top{left:10px;right:10px;grid-template-columns:repeat(2,minmax(0,1fr));width:auto;transform:none}.hud-panel{min-height:42px;padding:7px 8px}.hud-value{font-size:15px}.objective-panel{top:168px;left:10px;right:10px;width:auto;transform:none}.boss-hud{top:250px}.hud-reminder{top:168px;right:10px;bottom:auto}.mode-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.help-grid{grid-template-columns:1fr}.touch-controls button{min-height:44px;padding:9px 8px;font-size:10px}}@media (max-width: 520px) and (pointer: coarse){.overlay{padding:12px}.hud-top,.objective-panel{width:min(370px,calc(100vw - 20px));right:auto}.objective-row{align-items:flex-start;flex-direction:column;gap:4px}.overlay-card{width:calc(100vw - 24px);padding:18px}.start-card{width:100%}.overlay-title{font-size:clamp(28px,9vw,38px)}.initials span{width:54px;height:62px;font-size:32px}}
