@font-face{font-family:'Fredoka';font-style:normal;font-weight:500;font-display:swap;src:url(fredoka-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:600;font-display:swap;src:url(fredoka-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:700;font-display:swap;src:url(fredoka-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(nunito-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(nunito-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(nunito-latin-800-normal.woff2) format('woff2')}
[hidden]{display:none!important}
body{font-size:14px}
:root{
  --sky-top:#6FB7E9; --sky-mid:#A3D3F1; --sky-bot:#FCE1B0;
  --panel:rgba(30,26,22,.84); --panel-solid:#25211C;
  --cream:#FFF4DC; --cream-dim:#CDBB9A;
  --gold:#F5B841; --gold-deep:#8A4B1E; --red:#F0544F; --blue:#3E8EEA; --green:#7BD15A;
  --display:'Fredoka','Nunito',system-ui,sans-serif;
  --body:'Nunito',system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;overflow:hidden;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 48%,var(--sky-bot) 100%);color:var(--cream);font-family:var(--body);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
#app{position:fixed;inset:0;overflow:hidden}
#c{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}
button{font-family:var(--display);color:inherit;cursor:pointer}
button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* HUD */
.hud{position:absolute;inset:0;pointer-events:none;font-family:var(--display)}
.hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 0}
.panel{background:var(--panel);border:2px solid rgba(255,244,220,.16);border-radius:14px;padding:8px 12px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.teams{display:flex;flex-direction:column;gap:7px;min-width:170px;pointer-events:auto}
.team{display:flex;flex-direction:column;gap:3px}
.team .tn{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:600;letter-spacing:.02em}
.team .tn b{font-variant-numeric:tabular-nums;color:var(--cream-dim);font-weight:600}
.hpbar{height:8px;border-radius:4px;background:rgba(255,255,255,.14);overflow:hidden}
.hpbar i{display:block;width:100%;height:100%;border-radius:4px;transition:width .35s ease}
.clr0{color:#F0544F}.clr1{color:#3E8EEA}.bg0{background:#F0544F}.bg1{background:#3E8EEA}
.team.turn .tn{color:var(--cream)}
.center{display:flex;flex-direction:column;align-items:center;gap:6px}
.timer{font-size:36px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 rgba(0,0,0,.35);transition:color .2s}
.timer.low{color:#FF8A7A}
.wind{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px}
.wbar{position:relative;width:110px;height:10px;border-radius:5px;background:rgba(0,0,0,.4);overflow:hidden}
.wbar::after{content:"";position:absolute;left:calc(50% - 1px);top:0;bottom:0;width:2px;background:rgba(255,244,220,.55)}
.wbar i{position:absolute;top:0;bottom:0;left:50%;width:0;background:var(--gold);border-radius:5px}
.active{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right;pointer-events:auto;min-width:150px}
.aname{font-size:18px;font-weight:700;line-height:1.1}
.ahp{font-size:12px;color:var(--cream-dim);font-variant-numeric:tabular-nums}
.minis{display:flex;gap:5px;margin-top:2px;flex-wrap:wrap;justify-content:flex-end}
.mini{font-size:12px;font-weight:600;padding:4px 8px;border-radius:8px;border:1.5px solid rgba(255,244,220,.25);background:rgba(255,255,255,.06);line-height:1}
.mini:hover{background:rgba(255,255,255,.14)}
.mini.on{border-color:var(--gold);color:var(--gold)}
.banner{position:absolute;top:26%;left:50%;transform:translate(-50%,-50%);font-size:clamp(22px,4.2vw,42px);font-weight:700;text-shadow:0 3px 0 rgba(0,0,0,.4),0 0 24px rgba(0,0,0,.3);opacity:0;transition:opacity .25s;white-space:nowrap;letter-spacing:.01em}
.banner.show{opacity:1}
.dock{position:absolute;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;gap:6px;padding:6px;pointer-events:auto}
.wbtn{display:flex;flex-direction:column;align-items:center;gap:2px;width:76px;padding:6px 4px 5px;border-radius:10px;border:2px solid transparent;background:rgba(255,255,255,.05);font-size:11px;font-weight:600;line-height:1.1;position:relative;transition:background .15s,border-color .15s}
.wbtn:hover{background:rgba(255,255,255,.12)}
.wbtn.sel{border-color:var(--gold);background:rgba(245,184,65,.16)}
.wbtn.empty{opacity:.4}
.wbtn .ico{width:30px;height:30px;color:var(--cream)}
.wbtn .ico svg{width:100%;height:100%;display:block}
.wbtn .wk{position:absolute;top:3px;left:5px;font-size:10px;color:var(--cream-dim);font-weight:700}
.wbtn .wa{position:absolute;top:3px;right:5px;font-size:10px;color:var(--gold);font-weight:700}
.power{position:absolute;left:50%;bottom:calc(98px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(240px,70vw);height:16px;border-radius:8px;background:rgba(0,0,0,.45);border:2px solid rgba(255,244,220,.4);overflow:hidden;pointer-events:none}
.power i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7BD15A,#F5B841 55%,#F0544F)}
.hint{position:absolute;left:50%;bottom:calc(98px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);font-size:13px;font-weight:600;color:var(--cream);text-shadow:0 2px 0 rgba(0,0,0,.4);white-space:nowrap;pointer-events:none;opacity:.9}

/* touch controls */
.touch{position:absolute;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;align-items:flex-end;padding:0 12px;pointer-events:none}
.tc{display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:auto}
.tc .row{display:flex;gap:8px}
.tb{width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,244,220,.35);background:rgba(30,26,22,.7);font-size:20px;font-weight:700;color:var(--cream);touch-action:none;display:flex;align-items:center;justify-content:center;padding:0}
.tb.fire{width:82px;height:82px;background:rgba(240,84,79,.75);border-color:rgba(255,244,220,.5);font-size:18px;letter-spacing:.04em}
.tb.wide{width:124px;border-radius:29px;font-size:16px}
.tb:active,.tb.held{background:rgba(245,184,65,.55);color:#1e1a16}
.touchmode .dock{bottom:calc(160px + env(safe-area-inset-bottom,0px))}
.touchmode .power,.touchmode .hint{bottom:calc(246px + env(safe-area-inset-bottom,0px))}

/* overlays */
.overlay{position:absolute;inset:0;display:flex;padding:16px;background:rgba(20,16,12,.42);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);overflow:auto;padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.card{margin:auto;width:min(560px,100%);background:var(--panel-solid);border:3px solid var(--gold);border-radius:22px;padding:26px 28px;box-shadow:0 22px 60px rgba(0,0,0,.45);font-family:var(--body)}
.card h1{font-family:var(--display);font-size:clamp(38px,8vw,60px);margin:0;line-height:.95;color:var(--gold);text-shadow:0 4px 0 var(--gold-deep);letter-spacing:.01em;text-wrap:balance}
.card h2{font-family:var(--display);font-size:24px;margin:0 0 6px;color:var(--gold)}
.card .tag{margin:10px 0 0;font-size:16px;color:var(--cream-dim);line-height:1.4;max-width:42ch}
.modes{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 8px}
.big{flex:1 1 200px;font-size:19px;font-weight:700;padding:14px 18px;border-radius:14px;border:0;background:var(--gold);color:#2b1a08;box-shadow:0 5px 0 var(--gold-deep);transition:transform .08s,box-shadow .08s}
.big:hover{filter:brightness(1.05)}
.big:active{transform:translateY(4px);box-shadow:0 1px 0 var(--gold-deep)}
.big.alt{background:#3E8EEA;color:#fff;box-shadow:0 5px 0 #1e4f8f}
.big.alt:active{box-shadow:0 1px 0 #1e4f8f}
.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:14px 0 0;font-size:14px;line-height:1.35;align-items:center}
.keys dt{margin:0;font-family:var(--display);font-weight:600;color:var(--gold);white-space:nowrap}
.keys dd{margin:0;color:var(--cream)}
kbd{font-family:var(--display);font-size:12px;padding:2px 6px;border-radius:6px;background:rgba(255,244,220,.12);border:1px solid rgba(255,244,220,.3);border-bottom-width:3px;color:var(--cream)}
.tips{margin:14px 0 0;padding-left:18px;color:var(--cream-dim);font-size:14px;line-height:1.45}
.tips li{margin:3px 0}
.rows{display:flex;flex-direction:column;gap:10px;margin:14px 0 0}
.stat{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,244,220,.12)}
.stat b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:18px}
.closebtn{margin-top:18px;width:100%}
/* title screen */
.menu{position:absolute;inset:0;pointer-events:none;font-family:var(--display)}
.title-block{position:absolute;left:16px;right:16px;top:calc(50% - 28.125vw + 8px);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
@media (orientation:landscape){.title-block{top:calc(max(16px,6vh) + env(safe-area-inset-top,0px))}}
.logo{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(34px,min(11vw,8.5vh),72px);line-height:1;letter-spacing:.01em;color:var(--gold);text-wrap:balance;
  text-shadow:0 3px 0 var(--gold-deep),2px 0 0 var(--gold-deep),-2px 0 0 var(--gold-deep),0 -2px 0 var(--gold-deep),2px 3px 0 var(--gold-deep),-2px 3px 0 var(--gold-deep),0 10px 22px rgba(40,20,5,.35)}
.subtitle{margin:0;padding:4px 12px;border-radius:999px;background:rgba(30,26,22,.8);color:var(--cream);font-weight:600;font-size:clamp(13px,1.9vh,17px);letter-spacing:.02em}
.menu-actions{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));pointer-events:auto}
.menu-row{display:flex;gap:10px;width:min(480px,100%)}
.menu-row .big{flex:1 1 0;min-width:0;padding:13px 10px;font-size:clamp(16px,2.4vh,20px);white-space:nowrap}
.linkbtn{border:0;border-radius:999px;padding:8px 16px;background:rgba(30,26,22,.8);color:var(--cream);font-size:14px;font-weight:600}
.linkbtn:hover{background:rgba(30,26,22,.92)}

@media (max-width:560px){
  .teams{min-width:118px;padding:6px 8px}
  .team .tn{font-size:11px}
  .timer{font-size:28px}
  .wbar{width:68px}
  .wind{padding:4px 8px;font-size:10px}
  .active{min-width:0;padding:6px 8px}
  .aname{font-size:14px}
  .ahp{display:none}
  .mini{padding:4px 6px;font-size:11px}
  .wbtn{width:60px;font-size:10px}
  .wbtn .ico{width:24px;height:24px}
  .card{padding:20px 18px}
}
@media (prefers-reduced-motion:reduce){
  .banner,.hpbar i,.big{transition:none}
}
