/* Fighting Ages — felület.
   Elrendezés: teljes képernyős aréna fekvő tájolásban; felül lebegő „chip”-ek (arany, korszak, kapuk),
   alul a parancssáv kerek, fényes gombokkal. Egyetlen, tudatosan sötét-meleg megjelenés. */
:root{
  --bg:#140d08; --bg-2:#241710; --bg-3:#33221479;
  --glass:linear-gradient(180deg, rgba(64,44,28,.94), rgba(30,20,12,.94));
  --line:rgba(255,214,150,.16); --line-2:rgba(255,214,150,.28);
  --gold:#ffcf3a; --gold-2:#ffb21e; --gold-ink:#3a2405;
  --pink:#ec4f88; --pink-2:#b4225c;
  --text:#fff3dd; --muted:#cdb090; --bad:#ff6f5e; --good:#8fdc63;
  --player:#e0555e; --enemy:#4c8fe0;
  --f-display:'Lilita One','Arial Rounded MT Bold','Arial Black',system-ui,sans-serif;
  --f-ui:'Nunito','Segoe UI',system-ui,sans-serif;
  --gx:max(14px, env(safe-area-inset-left, 0px)); --gxr:max(14px, env(safe-area-inset-right, 0px));
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-ui);font-weight:700;overflow:hidden;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
[hidden]{display:none!important}

#app{position:fixed;inset:0;display:flex;flex-direction:column}

/* ---------------- aréna + lebegő HUD ---------------- */
#stage{position:relative;flex:1;min-height:0;overflow:hidden;background:#1d2a33}
#cv{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}
#cv.drag{cursor:grabbing}
#hud{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;
  padding:max(8px, env(safe-area-inset-top, 0px)) var(--gxr) 0 var(--gx);pointer-events:none}
#hud > *{pointer-events:auto}
.hud-l,.hud-r{display:flex;gap:8px;align-items:center}
.chip{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px 0 4px;border-radius:999px;background:var(--glass);
  border:1px solid var(--line);box-shadow:0 3px 0 rgba(0,0,0,.35), inset 0 1px 0 rgba(255,230,180,.14)}
.coin{flex:none;width:28px;height:28px;border-radius:50%;position:relative;
  background:radial-gradient(circle at 35% 30%, #fff3b0 0 18%, #ffd23f 42%, #e09a10 78%);box-shadow:inset 0 -2px 0 #a86c08, 0 0 0 2px #1b110b}
.coin::after{content:"";position:absolute;inset:8px;border-radius:50%;border:2px solid rgba(160,100,10,.55)}
.chip b{font-family:var(--f-display);font-weight:400;font-size:21px;letter-spacing:.01em;font-variant-numeric:tabular-nums;line-height:1}
.chip.xp{gap:9px;min-width:0}
.era-badge{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:400;font-style:normal;font-size:13px;
  background:radial-gradient(circle at 35% 30%, #ffe37a, #f0a31a 70%);color:var(--gold-ink);box-shadow:0 0 0 2px #1b110b}
.xp-in{display:grid;gap:3px;min-width:0}
.xp-in span{font-size:12px;line-height:1;color:var(--muted);white-space:nowrap}
.xp-in span em{font-style:normal;color:var(--text)}
.bar{height:7px;border-radius:99px;background:rgba(0,0,0,.5);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.6)}
.bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#ffe37a,#ffb21e);transition:width .25s}
.chip.xp .bar{width:96px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 16px;border-radius:999px;font-weight:800;font-size:15px;
  background:#fff6e6;color:#1b110b;box-shadow:0 3px 0 rgba(0,0,0,.35);white-space:nowrap}
.pill.dim{background:var(--glass);color:var(--muted);border:1px solid var(--line)}
.pill.gold{background:linear-gradient(180deg,#ffe37a,#ffbf1f);color:var(--gold-ink);box-shadow:0 3px 0 #9a6407, 0 0 20px rgba(255,200,60,.45)}
.pill.gold.pulse{animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 3px 0 #9a6407, 0 0 32px rgba(255,200,60,.85)}}
.hud-c{display:flex;justify-content:center;gap:10px;min-width:0}
.hp{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:999px;background:var(--glass);border:1px solid var(--line);min-width:0;flex:0 1 230px}
.hp .nm{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.hp .bar{flex:1;min-width:40px;height:9px}
.hp.me .bar i{background:var(--player)} .hp.foe .bar i{background:var(--enemy);margin-left:auto}
.hp b{font-family:var(--f-display);font-weight:400;font-size:15px;font-variant-numeric:tabular-nums}
.rbtn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--glass);border:1px solid var(--line);
  box-shadow:0 3px 0 rgba(0,0,0,.35);font-family:var(--f-display);font-size:15px}
.rbtn svg{width:17px;height:17px;fill:currentColor}
.rbtn:disabled{opacity:.4;cursor:not-allowed}

#toast{position:absolute;left:50%;top:58px;transform:translate(-50%,-6px);padding:8px 18px;border-radius:999px;background:#fff6e6;color:#1b110b;
  font-weight:800;font-size:15px;box-shadow:0 4px 0 rgba(0,0,0,.35);white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis;
  pointer-events:none;opacity:0;transition:opacity .18s, transform .18s}
#toast.show{opacity:1;transform:translate(-50%,0)}
#toast.gold{background:linear-gradient(180deg,#ffe37a,#ffbf1f);color:var(--gold-ink)}
#toast.bad{background:#ffd9d2;color:#6a1308}
#banner{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:7px 16px;border-radius:999px;background:rgba(20,12,8,.88);border:1px solid #8a3a2a;
  font-size:14px;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis;pointer-events:none}

/* ---------------- parancssáv ---------------- */
#dock{position:relative;flex:none;display:flex;align-items:flex-end;justify-content:center;gap:16px;
  padding:8px var(--gxr) calc(8px + env(safe-area-inset-bottom, 0px)) var(--gx);
  background:linear-gradient(180deg,#3a2716,#1c120a 70%);border-top:1px solid var(--line-2);box-shadow:0 -10px 24px rgba(0,0,0,.35)}
.queue{position:absolute;left:var(--gx);bottom:calc(10px + env(safe-area-inset-bottom, 0px));display:grid;grid-template-columns:repeat(5,26px);gap:4px}
.qs{width:26px;height:26px;border-radius:8px;background:rgba(0,0,0,.4);border:1px solid var(--line);position:relative;overflow:hidden;display:grid;place-items:center}
.qs canvas{width:22px!important;height:22px!important}
.qs i{position:absolute;left:0;bottom:0;height:3px;background:var(--gold)}
.qlabel{grid-column:1/-1;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:146px}
.cmds{display:flex;align-items:flex-end;gap:12px}
.sep{width:2px;height:44px;border-radius:2px;background:var(--line);margin:0 2px 18px}
.cbtn{position:relative;display:grid;justify-items:center;gap:3px;width:64px}
.orb{position:relative;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 35% 28%, #5a412a, #23170d 72%);box-shadow:0 0 0 2px #0e0905, 0 4px 0 #0b0704, inset 0 2px 0 rgba(255,220,160,.16);transition:transform .08s}
.cbtn:active .orb{transform:translateY(2px) scale(.97)}
.orb canvas{display:block}
.cbtn.ok .orb{box-shadow:0 0 0 2px #0e0905, 0 0 0 4px var(--gold), 0 4px 0 #0b0704}
.cbtn.hero.ok .orb{background:radial-gradient(circle at 35% 28%, #fff4a3, #ffd23f 45%, #e09a10 82%);box-shadow:0 0 0 2px #0e0905, 0 0 22px rgba(255,210,63,.7), 0 4px 0 #8a5a06}
.cbtn.special.ok .orb{background:radial-gradient(circle at 35% 28%, #ff9cc0, #ec4f88 50%, #a3184f 85%);box-shadow:0 0 0 2px #0e0905, 0 0 20px rgba(236,79,136,.6), 0 4px 0 #6a0f33}
.cbtn.poor .orb canvas,.cbtn.done .orb canvas{opacity:.42;filter:grayscale(.6)}
.cbtn .cd{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:conic-gradient(rgba(10,6,3,.72) calc(var(--p,0)*1turn), transparent 0)}
.cbtn .badge{position:absolute;top:-3px;right:0;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#ff3b3b;color:#fff;font-size:12px;font-weight:900;display:grid;place-items:center;box-shadow:0 0 0 2px #1b110b}
.cbtn .cost{position:absolute;top:44px;display:flex;align-items:center;gap:3px;height:18px;padding:0 7px 0 2px;border-radius:99px;background:#1b110b;border:1px solid var(--line-2);
  font-family:var(--f-display);font-weight:400;font-size:12.5px;color:var(--gold);white-space:nowrap}
.cbtn .cost .coin{width:13px;height:13px;box-shadow:inset 0 -1px 0 #a86c08}
.cbtn .cost .coin::after{display:none}
.cbtn .lab{margin-top:8px;font-size:12px;color:var(--muted);white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}
.cbtn .key{position:absolute;top:-2px;left:2px;font-size:10px;color:var(--muted);display:none}
@media (hover:hover) and (pointer:fine){.cbtn .key{display:block}}
.cbtn.shake{animation:shake .25s}
@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}

/* kis magasságú (fekvő telefon) */
@media (max-height:480px){
  .chip,.pill,.hp,.rbtn{height:32px} .rbtn{width:32px} .coin,.era-badge{width:24px;height:24px}
  .chip b{font-size:18px} .chip.xp .bar{width:70px} .pill{font-size:13px;padding:0 12px}
  #dock{padding-top:5px;gap:10px} .cmds{gap:8px} .cbtn{width:54px} .orb{width:46px;height:46px}
  .cbtn .cost{top:35px;font-size:11.5px;height:16px} .cbtn .lab{margin-top:5px;font-size:11px}
  .sep{height:36px;margin-bottom:14px}
  .queue{grid-template-columns:repeat(5,22px);gap:3px} .qs{width:22px;height:22px} .qs canvas{width:18px!important;height:18px!important} .qlabel{display:none}
  #toast{top:48px;font-size:13px}
}
@media (max-width:900px){ .hp .nm{display:none} .hud-c{gap:6px} .xp-in span{display:none} }
@media (max-width:760px){ .queue{display:none} #speedBtn{display:none} }

/* ---------------- átfedő képernyők ---------------- */
#overlay{position:fixed;inset:0;z-index:20;overflow:auto;display:grid;place-items:center;
  padding:max(14px, env(safe-area-inset-top, 0px)) var(--gxr) max(14px, env(safe-area-inset-bottom, 0px)) var(--gx);
  background:radial-gradient(120% 90% at 28% 30%, rgba(74,48,24,.92), rgba(20,13,8,.96) 65%)}
#overlay.dimmed{background:rgba(14,9,6,.72)}
.menu{width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(14px,3vw,40px);align-items:center}
.brand{position:relative;display:grid;justify-items:start;gap:clamp(6px,1.4vh,14px);min-width:0}
.title{margin:0;font-family:var(--f-display);font-weight:400;line-height:.9;font-size:clamp(34px,min(7.4vw,12vh),78px);color:var(--gold);
  text-shadow:0 3px 0 #1b110b, 0 -1px 0 #1b110b, 3px 0 0 #1b110b, -3px 0 0 #1b110b, 0 8px 22px rgba(0,0,0,.45);letter-spacing:.01em;text-wrap:balance}
.title small{display:block;font-family:var(--f-ui);font-weight:900;font-size:clamp(11px,1.6vh,13px);letter-spacing:.22em;color:var(--muted);text-shadow:none;margin-bottom:6px;text-transform:uppercase}
.tape{position:relative;width:calc(100% + 40px);margin-left:-20px;transform:rotate(-3deg);background:#ffd23f;color:#1b110b;overflow:hidden;
  box-shadow:0 3px 0 #1b110b, 0 -3px 0 #1b110b;height:clamp(22px,4vh,30px);display:flex;align-items:center}
.tape span{display:inline-block;white-space:nowrap;font-family:var(--f-display);font-size:clamp(13px,2.4vh,17px);animation:tape 22s linear infinite;padding-left:10px}
@keyframes tape{to{transform:translateX(-50%)}}
.heroes{position:relative;width:100%;max-width:520px}
.heroes canvas{display:block;width:100%;height:auto}
.bubble{position:absolute;left:1%;top:-7%;max-width:44%;background:#fff;color:#1b110b;border:3px solid #1b110b;border-radius:18px;padding:7px 12px;
  font-family:var(--f-display);font-size:clamp(12px,2.2vh,16px);line-height:1.1;transform:rotate(-6deg)}
.bubble::after{content:"";position:absolute;right:18%;bottom:-12px;width:16px;height:16px;background:#fff;border-right:3px solid #1b110b;border-bottom:3px solid #1b110b;transform:rotate(35deg)}
.panel{display:grid;gap:clamp(8px,1.8vh,14px);padding:clamp(14px,2.4vh,22px);border-radius:24px;background:var(--glass);border:1px solid var(--line-2);
  box-shadow:0 10px 30px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,230,180,.12);min-width:0}
.lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:-4px}
.lbl span{text-transform:none;letter-spacing:0;color:var(--text)}
.swatches{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}
.sw{aspect-ratio:1;max-width:100%;border-radius:50%;background:radial-gradient(circle at 35% 30%, var(--b), var(--c) 60%);box-shadow:0 0 0 2px #0e0905, 0 3px 0 rgba(0,0,0,.4)}
.sw[aria-pressed="true"]{box-shadow:0 0 0 2px #0e0905, 0 0 0 5px var(--gold), 0 0 16px rgba(255,210,63,.6)}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg button{height:36px;border-radius:999px;background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--muted);font-weight:800;font-size:14px}
.seg button[aria-pressed="true"]{background:#fff6e6;color:#1b110b;border-color:#fff6e6}
.go{display:flex;align-items:center;gap:14px}
.start{display:grid;place-items:center;flex:none;width:clamp(70px,13vh,92px);height:clamp(70px,13vh,92px);border-radius:50%;
  background:radial-gradient(circle at 35% 28%, #ff9cc0, #ec4f88 48%, #a3184f 86%);box-shadow:0 0 0 4px #1b110b, 0 0 0 9px rgba(236,79,136,.28), 0 6px 0 #5a0b2a, 0 0 30px rgba(236,79,136,.45)}
.start svg{width:42%;height:42%;fill:#fff;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35));margin-left:6%}
.start:active{transform:translateY(3px)}
.go-txt{display:grid;gap:6px;min-width:0}
.go-txt strong{font-family:var(--f-display);font-weight:400;font-size:clamp(26px,5vh,36px);line-height:1;color:#fff;text-shadow:0 3px 0 #1b110b}
.row2{display:flex;gap:8px;flex-wrap:wrap}
.help{margin:0;padding:0;list-style:none;display:grid;gap:3px;font-size:13px;font-weight:700;color:var(--muted);line-height:1.35}
.help b{color:var(--text)}
.card{width:min(460px,100%);display:grid;gap:14px;padding:22px;border-radius:26px;background:var(--glass);border:1px solid var(--line-2);box-shadow:0 14px 40px rgba(0,0,0,.5)}
.card h2{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(30px,6vh,42px);line-height:1;color:var(--gold);text-shadow:0 3px 0 #1b110b;text-wrap:balance}
.card h2 small{display:block;font-family:var(--f-ui);font-weight:900;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-shadow:none;margin-bottom:6px}
.card h2.lose{color:var(--bad)}
.card p{margin:0;color:var(--muted);font-size:15px;line-height:1.4}
.card p b{color:var(--text)}
.btns{display:grid;gap:8px}
.btn{height:46px;border-radius:999px;font-weight:900;font-size:16px;background:#fff6e6;color:#1b110b;box-shadow:0 4px 0 rgba(0,0,0,.4)}
.btn.gold{background:linear-gradient(180deg,#ffe37a,#ffbf1f);color:var(--gold-ink);box-shadow:0 4px 0 #9a6407}
.btn.ghost{background:rgba(0,0,0,.35);color:var(--text);border:1px solid var(--line-2);box-shadow:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:active:not(:disabled){transform:translateY(2px)}
.inp{width:100%;min-width:0;height:44px;border-radius:14px;background:rgba(0,0,0,.4);border:1px solid var(--line-2);color:var(--text);font:800 17px var(--f-ui);padding:0 14px}
#codeIn{text-transform:uppercase;letter-spacing:.3em}
.joinrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.joinrow .btn{padding:0 20px}
.code{font-family:var(--f-display);font-size:56px;letter-spacing:.2em;text-align:center;color:var(--gold);text-shadow:0 4px 0 #1b110b;user-select:all;-webkit-user-select:all}
.note{font-size:14px;color:var(--muted)} .note.bad{color:var(--bad)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.stat{background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:16px;padding:8px 10px}
.stat span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.stat b{font-family:var(--f-display);font-weight:400;font-size:20px;font-variant-numeric:tabular-nums}
@media (max-height:480px){
  .menu{gap:14px} .panel{padding:12px;border-radius:18px} .help{display:none} .heroes{max-width:380px}
  .card{padding:14px;gap:10px} .card h2{font-size:28px} .stats{gap:6px} .stat b{font-size:17px} .btn{height:40px}
}
@media (max-width:700px) and (orientation:landscape){ .menu{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)} }

/* ---------------- álló tájolás: forgatásra kérünk ---------------- */
#rotate{position:fixed;inset:0;z-index:50;display:none;place-items:center;text-align:center;padding:24px;
  background:radial-gradient(120% 80% at 50% 30%, #4a3018, #140d08 70%)}
#rotate div{display:grid;gap:14px;justify-items:center}
#rotate svg{width:90px;height:90px;animation:turn 2.2s ease-in-out infinite}
@keyframes turn{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}100%{transform:rotate(0)}}
#rotate strong{font-family:var(--f-display);font-weight:400;font-size:30px;color:var(--gold);text-shadow:0 3px 0 #1b110b}
#rotate p{margin:0;color:var(--muted);font-size:16px;max-width:30ch}
@media (orientation:portrait) and (max-width:900px){ #rotate{display:grid} }
@media (prefers-reduced-motion:reduce){ .tape span,.pill.gold.pulse,#rotate svg{animation:none} }
