*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#07101e;color:#fff;font-family:Arial,Helvetica,sans-serif;touch-action:none}
.wrap{width:min(1000px,100%);margin:auto;padding:12px}
header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}
.brand{font-size:1.38rem;font-weight:1000;color:#ffe16a;text-shadow:0 0 18px rgba(255,225,106,.28)}
.sub{color:#9fb0cb;font-size:.84rem}
.stats{display:flex;gap:6px;flex-wrap:wrap}
.stats div{min-width:82px;background:#0e1930;border:1px solid rgba(255,225,106,.12);border-radius:12px;padding:7px 9px;text-align:center}
.stats span{display:block;color:#8ea0bd;font-size:.64rem;text-transform:uppercase}
.stats b{font-size:1rem}
.statusbar{display:flex;align-items:center;gap:7px;background:#101d35;border:1px solid rgba(255,225,106,.12);border-radius:12px;padding:9px 11px;margin-bottom:9px;color:#aab8d0}
.statusbar strong{color:#fff;flex:1}
.statusbar .time{white-space:nowrap}
.statusbar button{border:1px solid rgba(255,255,255,.13);background:#17243d;color:#fff;border-radius:10px;padding:8px 10px;font-weight:900}
.game-shell{position:relative;overflow:hidden;border-radius:20px;border:1px solid rgba(255,225,106,.15);box-shadow:0 20px 55px rgba(0,0,0,.42)}
canvas{display:block;width:100%;height:auto;background:#76c76c}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(3,8,18,.72);padding:16px}
.overlay.hidden{display:none}
.panel{width:min(500px,95%);max-height:94%;overflow:auto;background:linear-gradient(145deg,rgba(17,28,54,.98),rgba(7,16,34,.98));border:1px solid rgba(255,225,106,.18);border-radius:22px;padding:26px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.hero{font-size:4rem}
.panel h1{font-size:2.05rem;margin:5px 0}
.panel p{color:#b7c4da;line-height:1.42}
.panel>button,.mobile-controls button{border:0;border-radius:16px;background:linear-gradient(135deg,#ffb62e,#ff6a4a);color:#fff;font-weight:1000;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.24)}
.panel>button{padding:14px 25px;font-size:1rem}
.help{color:#8293b4;font-size:.79rem;margin-top:14px;line-height:1.4}
.online-box{margin:12px 0;padding:11px;border-radius:14px;background:#09142a;border:1px solid rgba(255,225,106,.14);text-align:left}
.online-box label{display:block;font-weight:800;font-size:.84rem;margin:5px 0}
.online-box input{width:100%;padding:10px 11px;border-radius:10px;border:1px solid rgba(255,255,255,.13);background:#050d1d;color:#fff;outline:none;font-size:.94rem}
.online-box input:focus{border-color:#ffe16a}
.online-box small{display:block;color:#8fa1c2;font-size:.7rem;line-height:1.35;margin-top:6px}
.online-message{min-height:17px;color:#ff8aa1;font-size:.75rem;margin-top:4px}
.toast{position:absolute;left:50%;bottom:14px;transform:translateX(-50%) translateY(18px);opacity:0;pointer-events:none;background:rgba(5,12,27,.94);border:1px solid rgba(255,225,106,.22);border-radius:13px;padding:9px 13px;font-weight:900;font-size:.86rem;transition:.18s;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.mobile-controls{display:none;grid-template-columns:1.2fr 1fr;gap:9px;margin-top:9px}
.dpad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dpad #upBtn{grid-column:2}
.dpad #leftBtn{grid-column:1;grid-row:2}
.dpad #downBtn{grid-column:2;grid-row:2}
.dpad #rightBtn{grid-column:3;grid-row:2}
.actions{display:grid;gap:7px}
.mobile-controls button{min-height:72px;padding:10px;font-size:1rem}
#runBtn{background:linear-gradient(135deg,#6d62ff,#00b8df)}
@media(max-width:760px){
  header{flex-direction:column;align-items:flex-start}
  .stats{width:100%}
  .stats div{flex:1;min-width:0}
  .sub{display:none}
  .mobile-controls{display:grid;position:sticky;bottom:0;z-index:20}
  .wrap{padding:7px}
}
@media(max-width:560px){
  .wrap{padding:4px}
  .brand{font-size:1.01rem}
  .stats{gap:5px}
  .stats div{padding:6px 4px;flex-basis:calc(50% - 5px)}
  .stats span{font-size:.57rem}
  .stats b{font-size:.91rem}
  .statusbar{font-size:.78rem;padding:8px}
  .statusbar .time{display:none}
  .game-shell{border-radius:15px}
  canvas{aspect-ratio:390/920}
  .overlay{padding:8px}
  .panel{width:min(322px,94%);max-height:calc(100% - 12px);border-radius:18px;padding:14px 12px}
  .hero{font-size:2.35rem}
  .panel h1{font-size:1.36rem}
  .panel p{font-size:.88rem;margin:6px 0 9px}
  .panel>button{width:100%;padding:11px 13px}
  .help{font-size:.68rem}
  .online-box{padding:9px;margin:8px 0}
  .toast{bottom:8px;font-size:.73rem}
  .mobile-controls{padding:8px 2px 2px;background:linear-gradient(180deg,rgba(3,8,18,0),rgba(3,8,18,.94) 28%,rgba(3,8,18,1))}
  .mobile-controls button{min-height:72px;border-radius:17px;font-size:.92rem}
  .actions button{min-height:94px;font-size:1rem}
}
