:root{
  --bg:#0b0d0a;
  --bg-2:#12160f;
  --panel:#171c14;
  --panel-2:#1c2318;
  --line:#2a3421;
  --fg:#dcd7c1;
  --fg-dim:#9a9682;
  --accent:#ff6a00;
  --accent-2:#ffb54a;
  --danger:#c8322a;
  --ok:#7db751;
  --stencil: "Impact","Oswald","Arial Narrow Bold",sans-serif;
  --mono: "JetBrains Mono","Consolas",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(255,106,0,.10), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(255,181,74,.06), transparent 60%),
    linear-gradient(180deg, #0a0d09 0%, #0b0d0a 100%);
  color:var(--fg);
  font-family:var(--mono);
  min-height:100vh;
  letter-spacing:.02em;
}
a{color:var(--accent-2);text-decoration:none}
a:hover{color:#fff}
h1,h2,h3{margin:0 0 12px;letter-spacing:.06em}
.stencil{font-family:var(--stencil);font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:#fff;text-shadow:0 2px 0 #000,0 0 24px rgba(255,106,0,.25)}
.stencil .accent{color:var(--accent)}

/* HUD header */
.hud{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,#0e120b,#0a0d09);border-bottom:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.6)}
.hud-inner{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:18px}
.brand{font-family:var(--stencil);font-size:22px;color:#fff;letter-spacing:.2em}
.brand .glitch{background:linear-gradient(90deg,#fff 0%,var(--accent-2) 50%,#fff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav{display:flex;gap:14px;margin-left:24px;flex:1;flex-wrap:wrap}
.nav a{font-family:var(--stencil);letter-spacing:.18em;color:var(--fg-dim);padding:8px 4px;border-bottom:2px solid transparent}
.nav a:hover{color:#fff;border-color:var(--accent)}
.nav a.admin-link{color:var(--accent)}
.user{display:flex;align-items:center;gap:10px}
.callsign{font-family:var(--stencil);letter-spacing:.16em;color:var(--fg)}
.chip{display:inline-flex;flex-direction:column;padding:6px 12px;border:1px solid var(--line);background:#0e120b;border-radius:2px}
.chip-label{font-size:9px;color:var(--fg-dim);letter-spacing:.2em}
.chip-value{font-family:var(--stencil);font-size:16px;color:var(--accent-2)}
.scanline{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.6}

/* Layout */
.wrap{max-width:1200px;margin:0 auto;padding:28px 20px 80px}
.hero{padding:36px 24px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,106,0,.05),transparent 60%),var(--panel);margin-bottom:28px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.02) 0 8px,transparent 8px 16px);pointer-events:none}
.hero h1{font-size:44px;line-height:1}
.hero .sub{color:var(--fg-dim);margin:14px 0 20px;max-width:640px}
.hero .hint{color:var(--fg-dim);font-size:13px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* Grid of games */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.card{display:block;padding:18px;background:var(--panel);border:1px solid var(--line);position:relative;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 24px rgba(255,106,0,.15)}
.game-card h3{font-family:var(--stencil);letter-spacing:.14em;font-size:22px;color:#fff;margin-top:8px}
.game-card p{color:var(--fg-dim);font-size:13px;min-height:38px}
.card-tag{position:absolute;top:8px;right:10px;font-size:10px;letter-spacing:.2em;color:var(--accent);border:1px solid var(--line);padding:2px 6px;background:#0e120b}
.deploy{display:inline-block;margin-top:8px;color:var(--accent-2);font-family:var(--stencil);letter-spacing:.16em;font-size:12px}

/* Panels / forms */
.panel{background:var(--panel);border:1px solid var(--line);padding:22px;margin-bottom:22px}
.panel.narrow{max-width:460px;margin:40px auto}
.panel h2{font-size:26px}
.stack{display:flex;flex-direction:column;gap:12px}
label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--fg-dim);letter-spacing:.14em;text-transform:uppercase}
input, select{background:#0d110a;color:var(--fg);border:1px solid var(--line);padding:10px 12px;font-family:var(--mono);font-size:14px;outline:none}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(255,106,0,.2)}
.btn{display:inline-block;background:#1b2214;color:#fff;border:1px solid var(--line);padding:10px 16px;font-family:var(--stencil);letter-spacing:.16em;font-size:13px;cursor:pointer;text-transform:uppercase;transition:all .12s ease}
.btn:hover{border-color:var(--accent);color:var(--accent-2)}
.btn.primary{background:linear-gradient(180deg,var(--accent),#c24d00);border-color:#7a3200;color:#000}
.btn.primary:hover{filter:brightness(1.05);color:#000}
.btn.ghost{background:transparent}
.btn.big{padding:14px 22px;font-size:16px}
.btn.tiny{padding:6px 10px;font-size:11px}
.inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}

.alert{padding:10px 14px;border:1px solid var(--danger);background:rgba(200,50,42,.12);color:#ffb2ad;margin-bottom:14px}
.alert.ok{border-color:var(--ok);background:rgba(125,183,81,.1);color:#c9e6a5}

.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tbl th{color:var(--fg-dim);font-family:var(--stencil);letter-spacing:.16em;font-size:11px}
.pos{color:var(--ok)}
.neg{color:#ff8a80}
.tag{display:inline-block;padding:2px 6px;border:1px solid var(--line);font-size:10px;letter-spacing:.14em;color:var(--accent);margin-right:4px}
.tag.danger{color:#ff8a80;border-color:var(--danger)}
.hint{color:var(--fg-dim);font-size:13px}
.stats{display:flex;gap:24px;flex-wrap:wrap;margin-top:6px}
.stats .k{display:block;font-size:10px;color:var(--fg-dim);letter-spacing:.2em}
.stats .v{font-family:var(--stencil);font-size:22px;color:var(--accent-2)}

/* Game panel */
.game-panel{min-height:520px}

/* Mines / Towers grid */
.mines-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:420px}
.tile{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#0d110a;border:1px solid var(--line);cursor:pointer;font-family:var(--stencil);font-size:20px;color:var(--fg-dim);user-select:none;transition:all .1s}
.tile:hover{border-color:var(--accent);color:#fff}
.tile.safe{background:linear-gradient(180deg,#1a2612,#0d110a);color:var(--ok);border-color:#3c5423}
.tile.mine{background:linear-gradient(180deg,#3a1010,#1a0808);color:#ff8a80;border-color:var(--danger)}
.tile.pending{opacity:.4;pointer-events:none}

.towers-grid{display:flex;flex-direction:column-reverse;gap:6px;max-width:420px}
.towers-row{display:grid;grid-template-columns:60px repeat(4,1fr);gap:6px;align-items:center}
.towers-row .lvl{font-family:var(--stencil);color:var(--fg-dim);font-size:12px;text-align:right;padding-right:8px}
.towers-row.active .tile{border-color:var(--accent)}

/* Plinko */
.plinko-board{position:relative;width:100%;max-width:560px;height:420px;background:#0d110a;border:1px solid var(--line);overflow:hidden}
.peg{position:absolute;width:6px;height:6px;background:#3a4a29;border-radius:50%}
.ball{position:absolute;width:12px;height:12px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px rgba(255,106,0,.7);transition:top .12s linear,left .12s linear}
.plinko-mults{display:flex;justify-content:space-between;gap:2px;margin-top:6px;max-width:560px;font-family:var(--stencil);font-size:11px}
.plinko-mults span{flex:1;text-align:center;padding:4px 2px;background:#0d110a;border:1px solid var(--line);color:var(--fg-dim)}
.plinko-mults span.hit{background:var(--accent);color:#000}

/* Slots */
.reels{display:flex;gap:10px;justify-content:center;margin:20px 0}
.reel{width:96px;height:120px;background:#0d110a;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:48px;overflow:hidden;position:relative}
.reel.spin .sym{animation:spin .2s linear infinite}
@keyframes spin{from{transform:translateY(-100%)}to{transform:translateY(100%)}}

/* Blackjack */
.bj-table{display:grid;gap:22px;padding:14px}
.bj-hand{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.card-face{width:60px;height:86px;background:#f6efd8;color:#111;border:1px solid #555;border-radius:6px;display:flex;flex-direction:column;justify-content:space-between;padding:6px;font-family:var(--stencil);font-size:16px}
.card-face.red{color:#a4141a}
.card-face.back{background:repeating-linear-gradient(45deg,#3a1a00,#3a1a00 6px,#5b2900 6px,#5b2900 12px);color:transparent}
.hand-label{font-family:var(--stencil);letter-spacing:.16em;color:var(--fg-dim);margin-right:12px}

/* Utility */
.controls{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:14px 0}
.controls label{min-width:120px}
.result{margin-top:12px;font-family:var(--stencil);letter-spacing:.14em}
.result.win{color:var(--ok)}
.result.lose{color:#ff8a80}
.fair{margin-top:14px;font-size:11px;color:var(--fg-dim);word-break:break-all}
.foot{max-width:1200px;margin:0 auto;padding:20px;color:var(--fg-dim);font-size:11px;letter-spacing:.14em;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media (max-width:640px){
  .hud-inner{flex-wrap:wrap}
  .nav{order:3;width:100%;margin-left:0}
  .hero h1{font-size:30px}
}