* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: #0f1220; color: #e9ecf1; }
#app { min-height: 100%; display: flex; flex-direction: column; }
.topbar { padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,0.08); position: sticky; top: 0; background: rgba(15,18,32,0.8); backdrop-filter: blur(6px); z-index: 5; }
.topbar h1 { margin: 0; font-size: 22px; letter-spacing: 0.5px; }
.content { flex: 1; width: 100%; max-width: 980px; margin: 0 auto; padding: 20px; display: grid; gap: 20px; }
.card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 16px; }
.intro { display: grid; grid-template-columns: 1fr; align-items: center; gap: 16px; justify-items: center; text-align: center; position: relative; z-index: 1; pointer-events: auto; }
.intro-left h2 { margin: 0 0 8px; }
.intro-left ul { margin: 0 12px 12px; padding-left: 18px; text-align: left; -webkit-user-select: none; user-select: none; }
.intro-right { display: grid; gap: 10px; justify-items: center; }
.intro-asset img { border-radius: 8px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.06); object-fit: contain; }
.opensea { display: inline-flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.12); text-decoration: none; color: #cfe6ff; background: rgba(29,161,242,0.12); }
.opensea:hover { filter: brightness(1.05); }
.primary { background: #6c5ce7; color: #fff; border: none; padding: 10px 16px; border-radius: 10px; cursor: pointer; font-weight: 600; }
.primary:hover { filter: brightness(1.05); }
.hidden { display: none; }
.game { display: grid; place-items: center; position: relative; z-index: 1; }
.game.hidden { display: none; }
canvas { background: #fff; width: 100%; height: auto; border-radius: 8px; border: 1px solid rgba(0,0,0,0.12); }
.game canvas { touch-action: none; }
.game-box { position: relative; width: 100%; }
.overlay { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0,0,0,0.45); pointer-events: auto; z-index: 20; }
.overlay.hidden { display: none; pointer-events: none; }
.overlay-card { background: #0f1220; color: #fff; border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; padding: 18px; width: min(520px, 92%); text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,0.4); }
.overlay-card h2 { margin: 4px 0 8px; color: #ff6262; font-size: 28px; }
.overlay-form { display: grid; gap: 10px; margin-top: 8px; }
.overlay-form input { padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: #e9ecf1; }
.overlay-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 8px; }
.btn { border: none; padding: 10px 14px; border-radius: 999px; font-weight: 600; cursor: pointer; text-decoration: none; }
.btn.primary { background: #6c5ce7; color: #fff; }
.btn.info { background: #1DA1F2; color: #fff; }
.btn.success { background: #2ecc71; color: #fff; }
.btn:hover { filter: brightness(1.05); }

.grids.in-game { margin-top: 10px; }
.primary { background: #6c5ce7; color: #fff; border: none; padding: 12px 20px; border-radius: 12px; cursor: pointer; font-weight: 700; font-size: 16px; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.play-button { 
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 99999 !important; 
  pointer-events: auto !important; 
  display: inline-block !important;
  min-width: 180px !important;
  min-height: 60px !important;
  line-height: 60px !important;
  text-align: center;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  isolation: isolate;
  cursor: pointer;
  font-size: 20px !important;
  font-weight: 800 !important;
}
.intro, .intro * { pointer-events: auto; }
.hud { display: none; }
.controls-hint { font-size: 12px; color: #b8c1cc; }
.upload { margin: 10px 0; }
.upload-label { display: inline-flex; flex-direction: column; gap: 6px; font-size: 14px; color: #cdd6e0; }
.form { display: grid; gap: 10px; }
.form input { padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: #e9ecf1; }
.grids { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; border-bottom: 1px solid rgba(255,255,255,0.08); padding: 8px; font-size: 14px; }
.footer { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,0.08); color: #b8c1cc; }
@media (max-width: 720px) {
  .grids { grid-template-columns: 1fr; }
  canvas { height: 300px; }
}




/* Mobile touch fixes */
button, .btn, .primary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
canvas { touch-action: none; }
