:root{color-scheme:dark;--cyan:#65f6ff;--pink:#ff4fa3;--gold:#ffe68a}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#050713;color:#e9faff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}body{display:grid;place-items:center}.shell{width:100vw;height:100dvh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#151b40 0,#080b1e 52%,#04050d 100%);display:flex;flex-direction:column}.top{height:58px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(12px,3vw,40px);border-bottom:1px solid #65f6ff25;background:#070a19cc;z-index:2}.brand{font-size:clamp(12px,1.35vw,17px);letter-spacing:.2em;color:var(--cyan);text-shadow:0 0 14px #65f6ff8a}.stats{display:flex;gap:clamp(12px,4vw,56px);font-size:11px;letter-spacing:.14em;color:#94a2c7}.stats b{display:block;font-size:17px;color:white;letter-spacing:.04em;margin-top:3px}.right{display:flex;align-items:center;gap:15px}.right button{background:transparent;border:1px solid #416075;color:#b8e9f5;padding:7px 10px;border-radius:3px;font:inherit;font-size:10px;letter-spacing:.1em}.right button:hover{border-color:var(--cyan);color:white}.stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;padding:12px 12px 0}.field{position:relative;height:100%;width:min(100%,calc((100dvh - 90px)*1.35));max-width:1300px;overflow:hidden;border:1px solid #5de8ff28;box-shadow:0 0 60px #145d9b24,inset 0 0 80px #1e3d7524;background:linear-gradient(#081129bb,#080b1bcc),radial-gradient(ellipse at 50% 20%,#202953,#080b18 68%)}canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#b5eeff06 4px);mix-blend-mode:screen}.overlay{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:#050816bd;backdrop-filter:blur(5px);text-align:center;padding:24px}.overlay[hidden]{display:none}.panel{max-width:470px}.eyebrow{font-size:10px;letter-spacing:.32em;color:var(--pink);margin-bottom:12px}.title{font-size:clamp(32px,7vw,62px);font-weight:900;letter-spacing:.08em;line-height:.95;color:#f3fbff;text-shadow:0 0 24px #65f6ff68}.title span{color:var(--cyan)}.desc{font-size:12px;line-height:1.8;color:#abb9d5;margin:22px 0 24px}.start{background:var(--cyan);color:#07101b;border:0;padding:14px 23px;font:inherit;font-size:12px;font-weight:bold;letter-spacing:.18em;cursor:pointer;box-shadow:0 0 22px #65f6ff54}.start:hover{background:white}.hint{font-size:10px;line-height:1.7;color:#7686a7;margin-top:19px}.bottom{height:32px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(12px,3vw,40px);font-size:9px;letter-spacing:.15em;color:#64708f}.mobile-controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:none;gap:14px;z-index:2;align-items:center}.pad{display:flex;gap:8px}.mobile-controls button{width:52px;height:46px;border:1px solid #65f6ff68;background:#081529bb;color:#c5f9ff;border-radius:5px;font-size:20px;touch-action:none}.mobile-controls .fire{width:70px;color:#fff;background:#92285c80;border-color:#ff4fa3a0;font-size:12px;font-weight:bold;letter-spacing:.1em;box-shadow:0 0 16px #ff4fa333}.mobile-controls .fire:active{background:#ff4fa380;box-shadow:0 0 22px #ff4fa399}.mobile-controls button:active{background:#65f6ff45}@media(pointer:coarse),(max-width:700px){.mobile-controls{display:flex}.stage{padding-bottom:72px}.bottom{height:27px}.top{height:51px}.stats{gap:12px}.stats b{font-size:14px}.right button{padding:6px 8px}}@media(max-width:460px){.brand{display:none}.top{padding-left:10px;padding-right:10px}.stats{gap:9px;font-size:9px}.right{gap:6px}.right button{padding:6px 7px;font-size:9px}.right button:first-child{font-size:0;width:31px;height:30px;padding:0}.right button:first-child::after{content:'♪';font-size:16px}.right button:last-child{width:31px;height:30px;padding:0;font-size:0;position:relative}.right button:last-child::after{content:'Ⅱ';font-size:14px;position:absolute;inset:7px 0 0;text-align:center}}@media(max-height:500px){.top{height:43px}.bottom{height:22px}.stage{padding-top:5px}.mobile-controls{bottom:5px}.mobile-controls button{height:36px;width:45px}}
