:root{
  --blue:#2f7bff; --blue-dark:#1c4fd6; --gold:#ffc94d; --green:#3ddc84; --red:#ff5a5a;
  --ink:#0e1b2e; --card:rgba(14,27,46,.82);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{
  position:fixed; inset:0; width:100%; height:100%; overflow:hidden;
  touch-action:none; overscroll-behavior:none;
  user-select:none;-webkit-user-select:none;
  background:#0e1b2e;
  font-family:'Fredoka',-apple-system,'SF Pro Rounded',system-ui,sans-serif;
  color:#fff;
}
#game{position:fixed;inset:0;width:100%;height:100%;display:block}
.hidden{display:none!important}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;z-index:5}
.hud-top{
  position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:8px;
}
.hud-left{display:flex;flex-direction:column;gap:6px}
.hud-right{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.pill{
  background:var(--card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;
  padding:7px 13px;font-size:15px;font-weight:500;letter-spacing:.2px;
  display:flex;align-items:center;gap:7px;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1);
}
.pill b{font-weight:600}
.pill.soft{opacity:.85;font-size:13px;padding:5px 11px}
.pill.pop{transform:scale(1.14)}
.hp-pill{padding:7px 13px 7px 9px}
.hp-heart{font-size:14px}
.hp-bar{width:110px;height:10px;border-radius:99px;background:rgba(255,255,255,.16);overflow:hidden}
#hpfill{
  height:100%;width:100%;border-radius:99px;
  background:linear-gradient(90deg,#ff7a7a,#ff4757);
  transition:width .25s cubic-bezier(.22,1,.36,1);
}
#bossbar{
  position:absolute;top:calc(env(safe-area-inset-top,0px) + 132px);left:50%;transform:translateX(-50%);
  width:min(72vw,340px);text-align:center;
}
.boss-label{font-size:13px;font-weight:600;letter-spacing:2px;color:#ffb3b3;text-shadow:0 2px 8px rgba(0,0,0,.6);margin-bottom:4px}
.boss-track{height:12px;border-radius:99px;background:rgba(0,0,0,.45);border:1px solid rgba(255,90,90,.5);overflow:hidden}
#bossfill{height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,#ff8a5a,#ff3d3d);transition:width .2s linear}
#hint{
  position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 22vh);left:50%;transform:translateX(-50%);
  background:var(--card);border:1px solid rgba(255,255,255,.14);border-radius:999px;
  padding:9px 18px;font-size:14px;opacity:.9;white-space:nowrap;
  animation:hintfloat 1.6s ease-in-out infinite;
}
@keyframes hintfloat{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-6px)}}
#popup{
  position:absolute;top:34%;left:50%;transform:translate(-50%,-50%) scale(1);
  font-size:26px;font-weight:700;color:var(--gold);
  text-shadow:0 3px 0 rgba(0,0,0,.35),0 6px 24px rgba(0,0,0,.5);
  text-align:center;white-space:nowrap;
}
#popup.show{animation:popupin 1.8s cubic-bezier(.22,1,.36,1) forwards}
@keyframes popupin{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}
  12%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}
  20%{transform:translate(-50%,-50%) scale(1)}
  80%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1) translateY(-30px)}
}
#banner{
  position:absolute;top:26%;left:50%;transform:translate(-50%,-50%);
  font-size:44px;font-weight:700;letter-spacing:6px;color:var(--red);
  text-shadow:0 4px 0 rgba(0,0,0,.4),0 8px 30px rgba(255,60,60,.4);
}
#banner.show{animation:bannerin 2.2s cubic-bezier(.22,1,.36,1) forwards}
@keyframes bannerin{
  0%{opacity:0;transform:translate(-50%,-50%) scale(2.4)}
  14%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  78%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(.94)}
}
#vignette{
  position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at center,transparent 52%,rgba(255,30,30,.42) 100%);
  transition:opacity .09s linear;
}

/* ---------- Carga ---------- */
#loading{
  position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#16294a 0%,#0e1b2e 100%);
}
.load-card{width:min(78vw,320px);text-align:center}
.load-title{font-size:34px;font-weight:700;letter-spacing:3px;margin-bottom:22px}
.load-title span{color:var(--blue);margin-left:8px}
.load-bar{height:12px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;border:1px solid rgba(255,255,255,.12)}
#loadfill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--blue),#6ea8ff);transition:width .2s ease}
.load-sub{margin-top:12px;font-size:13px;opacity:.65}

/* ---------- Overlays ---------- */
.overlay{
  position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 30%,rgba(20,40,80,.55),rgba(8,14,26,.82));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:fadein .35s ease;
}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.menu-inner{width:min(84vw,360px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;max-height:92vh;overflow:hidden}
.title{
  font-size:46px;font-weight:700;letter-spacing:4px;line-height:1.05;
  text-shadow:0 4px 0 rgba(0,0,0,.3),0 10px 34px rgba(47,123,255,.35);
  animation:titlebob 3s ease-in-out infinite;
}
.title span{display:block;color:var(--blue);font-size:56px}
.title.small{font-size:38px;letter-spacing:3px;animation:none}
@keyframes titlebob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.subtitle{font-size:15px;opacity:.8;line-height:1.45}
.how{display:flex;flex-direction:column;gap:9px;width:100%;margin:4px 0}
.how-row{
  display:flex;align-items:center;gap:11px;text-align:left;font-size:13.5px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  padding:9px 13px;border-radius:16px;
}
.how-ic{
  min-width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:14px;flex-shrink:0;
}
.how-ic.green{background:rgba(61,220,132,.2);color:var(--green);border:1px solid rgba(61,220,132,.4)}
.how-ic.gold{background:rgba(255,201,77,.18);color:var(--gold);border:1px solid rgba(255,201,77,.4)}
.how-ic.red{background:rgba(255,90,90,.16);border:1px solid rgba(255,90,90,.35);font-size:17px}
.btn-primary{
  pointer-events:auto;border:none;cursor:pointer;
  font-family:inherit;font-size:21px;font-weight:700;letter-spacing:2.5px;color:#fff;
  background:linear-gradient(180deg,#4a90ff,#1c4fd6);
  padding:16px 58px;border-radius:999px;
  box-shadow:0 6px 0 #12308f,0 12px 30px rgba(28,79,214,.45);
  transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .12s;
}
.btn-primary:active{transform:translateY(4px) scale(.97);box-shadow:0 2px 0 #12308f,0 6px 16px rgba(28,79,214,.4)}
.btn-ghost{
  pointer-events:auto;border:1px solid rgba(255,255,255,.25);cursor:pointer;background:transparent;
  font-family:inherit;font-size:14px;font-weight:500;color:rgba(255,255,255,.75);
  padding:10px 26px;border-radius:999px;
}
.best{font-size:13px;opacity:.75}
.menu-foot{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:2px}
.btn-round{
  pointer-events:auto;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);font-size:20px;cursor:pointer;
}
.credits{font-size:11px;opacity:.45}
.stats{display:flex;gap:12px;width:100%;justify-content:center}
.stat{
  flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  border-radius:18px;padding:14px 6px;
}
.stat-v{font-size:24px;font-weight:700}
.stat-k{font-size:11px;opacity:.6;margin-top:3px;letter-spacing:1px;text-transform:uppercase}
.newbest{
  font-size:16px;font-weight:700;color:var(--gold);
  animation:bestpulse 1s ease-in-out infinite;
}
@keyframes bestpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

#popup{white-space:pre-line;width:90%;font-size:22px}

.ui-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}
.hp-heart{display:flex}.hp-heart .ui-icon{width:17px;height:17px;fill:currentColor}
.how-ic .ui-icon{width:22px;height:22px}
.btn-round{display:flex;align-items:center;justify-content:center;color:#fff}
.btn-round .ui-icon{width:24px;height:24px}
#hint{display:flex;align-items:center;gap:10px}
#hint .ui-icon{width:18px;height:18px}
