:root{
  --navy-1:#241a3d;
  --navy-2:#3a2a63;
  --pitch-1:#3fae52;
  --pitch-2:#379a49;
  --accent-gold:#ffcc33;
  --sprint-green:#37d67a;
  --pass-blue:#2f8fe0;
  --shoot-red:#ff4d5e;
  --ink:#0e1420;
  font-family:'Inter',system-ui,sans-serif;
}

*{box-sizing:border-box;}

html,body{
  margin:0;
  padding:0;
  width:100%;
  height:100%;
  overflow:hidden;
  background:var(--ink);
  -webkit-user-select:none;
  user-select:none;
  touch-action:none;
}

#game{
  position:fixed;
  top:0; left:0;
  width:100vw;
  height:100vh;
  display:block;
  background:var(--pitch-1);
}

/* ===================== TOP HUD ===================== */
#hud-top{
  position:fixed;
  top:0; left:0; right:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  padding-top:max(8px, env(safe-area-inset-top));
  background:linear-gradient(180deg, var(--navy-2), var(--navy-1) 85%);
  box-shadow:0 4px 18px rgba(0,0,0,.45);
  z-index:40;
  font-family:'Rajdhani',sans-serif;
}

.hud-icon-btn{
  width:34px; height:34px;
  min-width:34px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.hud-icon-btn:active{ background:rgba(255,255,255,.22); }

.team-chip{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  min-width:0;
}
.team-chip--right{ justify-content:flex-end; }

.crest{
  width:30px; height:30px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:15px;
  flex:none;
}
.crest--blue{ background:radial-gradient(circle at 30% 30%, #4a8fe0, #1c4b91); box-shadow:0 0 0 2px rgba(255,255,255,.25) inset; }
.crest--red{ background:radial-gradient(circle at 30% 30%, #ff6b6b, #a11f2b); box-shadow:0 0 0 2px rgba(255,255,255,.25) inset; }

.team-meta{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.team-meta--right{ align-items:flex-end; text-align:right; }
.team-name{
  color:#fff;
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.team-sub{
  color:#b8b0d6;
  font-size:.62rem;
  font-family:'Inter',sans-serif;
  display:flex;
  align-items:center;
  gap:4px;
}
.coin-dot{ color:var(--accent-gold); font-size:.5rem; }
.ai-badge{
  background:rgba(255,255,255,.12);
  padding:1px 5px;
  border-radius:6px;
  font-weight:700;
  color:#fff;
  font-size:.6rem;
}

.score-pill{
  background:#12182a;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  padding:5px 16px;
  color:#fff;
  font-size:1.15rem;
  font-weight:700;
  letter-spacing:1px;
  display:flex;
  gap:8px;
  flex:none;
  box-shadow:0 0 12px rgba(0,0,0,.35) inset;
}
.score-dash{ color:#6b6390; }

/* ===================== TIMER ===================== */
#hud-timer{
  position:fixed;
  top:52px;
  left:50%;
  transform:translateX(-50%);
  background:var(--navy-1);
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
  padding:3px 14px;
  color:var(--accent-gold);
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:1px;
  z-index:39;
  box-shadow:0 3px 10px rgba(0,0,0,.4);
}
#hud-timer.low-time{
  color:#ff5b5b;
  animation:pulse-time 1s infinite;
}
@keyframes pulse-time{ 50%{ opacity:.4; } }

/* ===================== BANNER (goal / out-of-bounds / kickoff) ===================== */
#hud-banner{
  position:fixed;
  top:38%;
  left:50%;
  transform:translate(-50%,-50%) scale(.4);
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  font-size:2.4rem;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:3px;
  padding:10px 28px;
  border-radius:16px;
  background:rgba(20,10,35,.55);
  border:3px solid var(--accent-gold);
  text-shadow:0 3px 0 rgba(0,0,0,.4);
  box-shadow:0 0 30px rgba(255,204,51,.5);
  opacity:0;
  pointer-events:none;
  transition:all .28s cubic-bezier(.2,.9,.3,1.4);
  z-index:41;
  white-space:nowrap;
}
#hud-banner.show{ opacity:1; transform:translate(-50%,-50%) scale(1); }
#hud-banner.banner--out{ border-color:#7fd6ff; box-shadow:0 0 30px rgba(127,214,255,.5); font-size:1.6rem; }

/* ===================== JOYSTICK ===================== */
/* Sized with clamp() so it stays a comfortably large, thumb-friendly
   target on small phones without becoming oversized on tablets. */
#joystick-zone{
  position:fixed;
  bottom:max(26px, env(safe-area-inset-bottom));
  left:16px;
  width:clamp(140px, 36vw, 190px);
  height:clamp(140px, 36vw, 190px);
  z-index:38;
  touch-action:none;
}
#joystick-base{
  position:relative;
  width:100%; height:100%;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  border:3px solid rgba(255,255,255,.38);
  box-shadow:0 6px 20px rgba(0,0,0,.35), inset 0 0 24px rgba(0,0,0,.25);
  display:flex;
  align-items:center;
  justify-content:center;
}
#joystick-arrows{ position:absolute; top:0; left:0; width:100%; height:100%; opacity:.85; }
#joystick-stick{
  width:44%; height:44%;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #ffffff, #aeb9de 70%);
  border:2px solid rgba(255,255,255,.9);
  box-shadow:0 4px 12px rgba(0,0,0,.45);
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
}

/* ===================== ACTION BUTTONS ===================== */
#action-cluster{
  position:fixed;
  bottom:max(20px, env(safe-area-inset-bottom));
  right:14px;
  display:grid;
  grid-template-columns:auto auto;
  gap:14px;
  align-items:end;
  z-index:38;
}
.action-btn{
  border:none;
  border-radius:50%;
  color:#fff;
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  box-shadow:0 6px 18px rgba(0,0,0,.45);
  -webkit-tap-highlight-color:transparent;
  transition:transform .1s ease, filter .1s ease, box-shadow .15s ease;
}
.action-btn:active{ transform:scale(.9); filter:brightness(1.2); }

.action-icon{ font-size:1.25em; line-height:1; }
.action-label{ font-size:.62em; letter-spacing:.8px; margin-top:1px; }

.action-btn--shoot{
  grid-column:2; grid-row:1 / span 2;
  width:clamp(84px, 22vw, 112px); height:clamp(84px, 22vw, 112px);
  background:radial-gradient(circle at 35% 30%, #ff8b96, var(--shoot-red) 78%);
  border:3px solid rgba(255,255,255,.55);
}
.action-btn--shoot .action-icon{ font-size:1.5em; }

.action-btn--pass{
  grid-column:1; grid-row:1;
  width:clamp(62px, 17vw, 82px); height:clamp(62px, 17vw, 82px);
  background:radial-gradient(circle at 35% 30%, #85c4f5, var(--pass-blue) 78%);
  border:3px solid rgba(255,255,255,.5);
  justify-self:end;
}

.action-btn--sprint{
  grid-column:1; grid-row:2;
  width:clamp(62px, 17vw, 82px); height:clamp(62px, 17vw, 82px);
  background:radial-gradient(circle at 35% 30%, #92f4b8, var(--sprint-green) 78%);
  border:3px solid rgba(255,255,255,.5);
  justify-self:end;
}
.action-btn--sprint.active{ box-shadow:0 0 0 5px rgba(55,214,122,.45), 0 6px 18px rgba(0,0,0,.45); }

/* ===================== OVERLAYS ===================== */
.game-overlay{
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:rgba(10,8,20,.86);
  backdrop-filter:blur(5px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:60;
  padding:16px;
}
.overlay-card{
  width:100%;
  max-width:420px;
  background:linear-gradient(160deg, #211736, #171025);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:28px 24px;
  text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  font-family:'Inter',sans-serif;
  max-height:92vh;
  overflow-y:auto;
}
.overlay-card h1{
  font-family:'Rajdhani',sans-serif;
  color:#fff;
  font-size:1.9rem;
  letter-spacing:1px;
  margin:2px 0 6px;
}
.eyebrow{
  color:var(--accent-gold);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:2.5px;
  text-transform:uppercase;
  margin-bottom:4px;
}
.overlay-sub{
  color:#a79fc4;
  font-size:.85rem;
  margin-bottom:20px;
}
.option-row{
  margin-bottom:16px;
  text-align:left;
}
.option-label{
  display:block;
  color:#a79fc4;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  margin-bottom:6px;
}
.option-group{ width:100%; display:flex; }
.opt-btn{
  flex:1;
  background:#1c1530;
  border:1.5px solid rgba(255,255,255,.14);
  color:#cfc8e6;
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  padding:9px 6px;
  cursor:pointer;
  letter-spacing:.5px;
}
.opt-btn:first-child{ border-radius:10px 0 0 10px; }
.opt-btn:last-child{ border-radius:0 10px 10px 0; }
.opt-btn:not(:first-child){ border-left:none; }
.opt-btn.active{
  background:linear-gradient(160deg, var(--pitch-1), var(--pitch-2));
  color:#fff;
  border-color:transparent;
}

.btn-primary-kick{
  width:100%;
  border:none;
  border-radius:14px;
  padding:13px;
  margin-top:8px;
  background:linear-gradient(160deg, #4fd873, #2ea44f);
  color:#0c2213;
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:1px;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(47,164,79,.35);
}
.btn-primary-kick:active{ transform:scale(.98); }

.btn-secondary-kick{
  width:100%;
  border:1.5px solid rgba(255,255,255,.18);
  border-radius:14px;
  padding:11px;
  margin-top:8px;
  background:transparent;
  color:#cfc8e6;
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  letter-spacing:1px;
  cursor:pointer;
}

.controls-hint{
  color:#75708f;
  font-size:.68rem;
  margin-top:16px;
  line-height:1.5;
}

.ft-score{
  font-family:'Rajdhani',sans-serif;
  font-size:2.6rem;
  font-weight:700;
  color:#fff;
  margin:10px 0 20px;
}

.pause-modal-content{
  background:linear-gradient(160deg, #211736, #171025);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  color:#fff;
  font-family:'Inter',sans-serif;
}

/* ===================== RESPONSIVE ===================== */
@media (max-width:480px){
  #hud-top{ gap:5px; padding:7px 6px; }
  .hud-icon-btn{ width:30px; height:30px; min-width:30px; }
  .crest{ width:24px; height:24px; font-size:12px; }
  .team-chip{ gap:5px; }
  .team-name{ font-size:.74rem; }
  .team-sub{ font-size:.54rem; }
  .score-pill{ font-size:.9rem; padding:4px 10px; gap:5px; }
  #hud-timer{ font-size:.78rem; top:46px; padding:2px 12px; }
  .overlay-card h1{ font-size:1.5rem; }
}

@media (max-width:360px){
  .team-sub{ display:none; }
}

@media (max-height:420px){
  #joystick-zone{ width:110px; height:110px; }
  .action-btn--shoot{ width:68px; height:68px; }
  .action-btn--pass, .action-btn--sprint{ width:52px; height:52px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  #hud-banner, .action-btn, .btn-primary-kick{ transition:none !important; animation:none !important; }
}
