*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#000}body{font-family:"Press Start 2P",ui-monospace,monospace;color:#fff;-webkit-user-select:none;user-select:none}#game{position:fixed;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;font-size:12px;text-shadow:2px 2px 0 #000}#hud>div{position:absolute}.hud-tl{top:16px;left:16px;line-height:2}.hud-tr{top:16px;right:16px;line-height:2;text-align:right}#hud-world{color:#ffd84a}#hud-combo{color:#ff8a3d;min-height:1em}.hud-top{top:14px;left:50%;transform:translate(-50%);text-align:center}#ring-arrow{font-size:22px;color:#ffd84a;display:inline-block;transition:transform .08s linear}#ring-dist{font-size:10px;margin-top:4px}#popup{top:34%;left:50%;transform:translate(-50%);font-size:18px;color:#ffe066;text-align:center;white-space:nowrap;opacity:0;transition:opacity .25s}#popup.show{opacity:1}#popup.parry{color:#8affea}.hud-bottom{bottom:44px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px}.boost-label{font-size:10px}.boost-bar{width:180px;height:12px;border:2px solid #fff;background:#0006}#boost-fill{height:100%;width:0;background:#4ad7ff}#hint{bottom:14px;left:50%;transform:translate(-50%);font-size:9px;opacity:.85;white-space:nowrap;transition:opacity 1s}#menu{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#0a081e73;padding:16px;text-align:center}#menu h1{margin:0;font-size:clamp(22px,5vw,48px);color:#ffd84a;text-shadow:4px 4px 0 #b3361f,8px 8px 0 #000;letter-spacing:2px}#menu .sub{margin:0;font-size:11px;text-shadow:2px 2px 0 #000}#menu .small{font-size:9px;opacity:.9}#world-list{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.world-card{font:inherit;color:#fff;cursor:pointer;width:220px;padding:14px 12px;border:4px solid #fff;background:#1c1a3a;box-shadow:6px 6px #000;text-align:left}.world-card:hover,.world-card.selected{background:#3b2f7a;border-color:#ffd84a}.world-card .key{color:#ffd84a;font-size:10px}.world-card .name{font-size:13px;margin:8px 0}.world-card .tag{font-size:8px;line-height:1.6;opacity:.9}.world-card .swatch{height:10px;margin-top:10px;border:2px solid #000}.controls{display:grid;grid-template-columns:repeat(2,auto);gap:6px 24px;font-size:9px;text-align:left;background:#00000080;padding:12px 16px;border:2px solid #fff}.controls b{color:#4ad7ff;font-weight:400}#nogl{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;font-size:12px;line-height:2;background:#1c1a3a}@media(max-width:640px){.controls{grid-template-columns:1fr}#hint{display:none}}.hud-bl{bottom:44px;left:16px}.hp-label{font-size:10px;margin-bottom:6px}.hp-bar{width:200px;height:14px;border:2px solid #fff;background:#00000080}#hp-fill{height:100%;width:100%;background:#5ae05a;transition:width .15s}#crosshair{width:22px;height:22px;transform:translate(-50%,-50%);border:2px solid rgba(255,230,102,.9);box-shadow:0 0 0 2px #00000080}#crosshair:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);background:#ffe066}#threat{display:none;font-size:22px;color:#ff3b3b}#damage{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(255,30,30,.85) 100%)}#parry-flash{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(74,215,255,.8) 100%)}#parry-status{right:16px;bottom:44px;padding:10px;border:2px solid #5592a3;background:#051423cc;line-height:1.7}.parry-label{color:#4ad7ff;font-size:9px}#parry-state{font-size:12px}#parry-tip{color:#bed9e0;font-size:7px}#parry-status.active{border-color:#8affea;background:#004650e6;box-shadow:0 0 16px #4ad7ff80}#parry-status.active #parry-state{color:#8affea}#gameover{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#2800008c;padding:16px;text-align:center;text-shadow:2px 2px 0 #000}#gameover h2{margin:0;font-size:clamp(22px,5vw,44px);color:#ff4a3a;text-shadow:4px 4px 0 #000}#gameover p{margin:0;font-size:12px}#gameover .small{font-size:10px}#gameover b{color:#4ad7ff;font-weight:400}@media(max-width:640px){.hp-bar{width:140px}.hud-bl{bottom:80px}#parry-status{bottom:80px;padding:6px}.parry-label{font-size:7px}#parry-state{font-size:9px}#parry-tip{font-size:5px}}
