/* AMANGO — desktop only, no build step */

/* ---------- fonts (self-hosted, latin subset) ---------- */
@font-face{
  font-family:'Baloo 2'; font-style:normal; font-weight:800; font-display:swap;
  src:url('assets/fonts/baloo2-800.woff2') format('woff2');
}
@font-face{
  font-family:'Nunito'; font-style:normal; font-weight:800 900; font-display:swap;
  src:url('assets/fonts/nunito-800.woff2') format('woff2');
}

/* ---------- base ---------- */
:root{
  --k:1;
  --red:#c51111;
  --deepred:#8e0e12;
  --navy:#1a284e;
  --card:#dfe8f0;
  --teal:#14968c;
  --orange:#ff9a1f;
  --yellow:#ffc23c;
  --cyan:#a7f9fa;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:#24384a}
body{
  font-family:'Nunito','Arial Rounded MT Bold',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  user-select:none;
}
.display,.wordmark,.label,.panelTitle,.cardLabel,.bandText,.ticker{
  font-family:'Baloo 2','Arial Rounded MT Bold',Arial,sans-serif;
  font-weight:800;
}
.stroke,.wordmark,.label,.panelTitle,.bandText,.tline,.cardLabel,.ticker{
  paint-order:stroke fill;
  -webkit-text-stroke:0;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
[hidden]{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- shake wrapper + stage ---------- */
#shake{position:absolute;inset:0;z-index:1;overflow:hidden}
#shakeMove{position:absolute;inset:0;will-change:transform}
#stage{
  position:absolute;left:0;top:0;width:2048px;height:1152px;
  transform-origin:0 0;
  opacity:0;transition:opacity .3s ease;
}
body.ready #stage{opacity:1}

#art{position:absolute;inset:0;pointer-events:none}

#l0wrap{position:absolute;left:-576px;top:-192px;width:3200px;height:1344px}
#l0wrap picture{display:block;width:100%;height:100%}
#L0{display:block;width:100%;height:100%}

.char{position:absolute;left:0;top:0;width:2048px;height:1152px}
.char .layer{display:block;width:100%;height:100%}
#corpseWrap,#topWrap{display:none}
#wholeWrap{transform-origin:1258px 1015px;will-change:transform}
#topWrap{transform-origin:1250px 400px;will-change:transform}
#L1{transform-origin:1258px 1015px;animation:bob 2.4s ease-in-out infinite}
#L2{transform-origin:1230px 600px;animation:seedWobble 3.6s ease-in-out infinite}
@keyframes bob{
  0%,100%{transform:translateY(0) scaleY(1)}
  50%{transform:translateY(-2px) scaleY(.995)}
}
@keyframes seedWobble{
  0%,100%{transform:rotate(0deg)}
  50%{transform:rotate(.4deg)}
}

#shadow{
  position:absolute;left:928px;top:970px;width:660px;height:68px;border-radius:50%;
  background:rgba(30,70,120,.35);filter:blur(6px);transform-origin:1258px 1004px;
  animation:shadowPulse 2.4s ease-in-out infinite;
}
@keyframes shadowPulse{0%,100%{transform:scale(1)}50%{transform:scale(.98)}}

#puddle{position:absolute;left:0;top:0;pointer-events:none;opacity:0}
#puddleG{transform-box:view-box;transform-origin:1200px 1040px;transform:scale(0)}

#slash{position:absolute;left:0;top:0;pointer-events:none;opacity:0}

#drops,#puff{position:absolute;left:0;top:0;width:2048px;height:1152px;pointer-events:none}
.drop{
  position:absolute;left:0;top:0;border-radius:50%;
  background:radial-gradient(circle at 36% 30%, #ffc674, var(--orange) 62%, #f08000);
  border:3px solid #3a1e00;
}
.drop::after{content:"";position:absolute;left:24%;top:22%;width:34%;height:30%;border-radius:50%;background:#fff;opacity:.95}
.puffc{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle at 50% 42%, rgba(246,250,254,.96) 0%, rgba(224,233,242,.82) 42%, rgba(210,222,234,.35) 62%, rgba(210,222,234,0) 76%);
}
#puffWrap,#ventPop{position:absolute;pointer-events:none}
#ventPop{
  left:312px;top:799px;width:505px;height:213px;border-radius:26px;
  background:rgba(200,220,240,.0);transform-origin:565px 905px;
}

/* ---------- scene UI ---------- */
#sceneUI{position:absolute;inset:0;pointer-events:none}
#sceneUI > *{pointer-events:auto}

#kill,#respawn{
  position:absolute;left:1688px;top:838px;width:224px;height:224px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:9px solid #000;color:#fff;
  box-shadow:0 0 0 0 rgba(0,0,0,0);
  transition:transform .12s ease, opacity .15s ease, background .15s ease;
}
#kill{background:radial-gradient(circle at 38% 32%,#e0322f,var(--red) 60%,var(--deepred))}
#respawn{background:radial-gradient(circle at 38% 32%,#25b7ab,var(--teal) 62%,#0c6a63);display:none}
#kill .glyph{width:96px;height:96px;margin-top:6px;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.35))}
#respawn .glyph{width:96px;height:96px;margin-top:6px}
#kill .label,#respawn .label{
  font-size:34px;line-height:1;color:#fff;-webkit-text-stroke:5px #000;paint-order:stroke fill;
  margin-top:2px;letter-spacing:.5px;
}
#kill:hover:not(:disabled){transform:scale(1.04) rotate(-2deg)}
#kill:active:not(:disabled){transform:scale(.97) rotate(1deg)}
#kill:disabled,#respawn:disabled{filter:grayscale(.55) brightness(.78);cursor:not-allowed;opacity:.85}
#kill:disabled .ring{animation:none;opacity:0}
#kill .ring{
  position:absolute;left:-9px;top:-9px;width:224px;height:224px;border-radius:50%;
  border:10px solid var(--red);pointer-events:none;
  animation:pulse 1.6s ease-out infinite;
}
@keyframes pulse{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(1.12);opacity:0}
}
#kill:focus-visible,#respawn:focus-visible{outline:6px solid #fff;outline-offset:6px}
#kill.cooling{background:radial-gradient(circle at 38% 32%,#bcc6d1,#7d8894 60%,#59616c)}
#kill.cooling .glyph,#kill.cooling .label{display:none}
.coolNum{
  font-family:'Baloo 2',sans-serif;font-weight:800;font-size:96px;line-height:1;color:#fff;
  -webkit-text-stroke:7px #000;paint-order:stroke fill;
}
.keycap{
  position:absolute;left:1598px;top:918px;width:64px;height:64px;border-radius:14px;
  background:#fff;border:6px solid #000;color:#111;
  display:flex;align-items:center;justify-content:center;
  font-family:'Baloo 2',sans-serif;font-weight:800;font-size:34px;
}

/* ---------- meeting panel ---------- */
#meeting{
  position:absolute;left:70px;top:300px;width:770px;
  background:var(--navy);border:10px solid #000;border-radius:28px;padding:24px 26px 4px;
  transform:translateX(-60px);opacity:0;
  box-shadow:0 14px 0 rgba(0,0,0,.25);
}
#meeting.shown{transform:none;opacity:1;transition:transform .35s cubic-bezier(.2,1.3,.5,1),opacity .3s ease}
.panelTitle{
  margin:0 0 14px;text-align:center;color:#fff;font-size:44px;line-height:1;
  -webkit-text-stroke:6px #000;paint-order:stroke fill;
}
.card{
  display:flex;align-items:center;gap:16px;width:100%;height:88px;margin-bottom:12px;
  background:var(--card);border:6px solid #000;border-radius:16px;padding:0 20px 0 14px;
  transition:transform .12s ease;position:relative;
}
.card:last-of-type{margin-bottom:2px}
.card:hover:not(:disabled){transform:translateY(-2px)}
.card:disabled{opacity:.45;cursor:not-allowed}
.card:focus-visible{outline:5px solid #fff;outline-offset:3px}
.cardIcon{width:64px;height:64px;flex:0 0 64px;position:relative;object-fit:contain}
.card:hover:not(:disabled) .cardIcon::after{
  content:"✓";position:absolute;right:-8px;bottom:-6px;width:30px;height:30px;border-radius:50%;
  background:var(--red);color:#fff;font-weight:900;font-size:20px;display:flex;align-items:center;justify-content:center;
  border:3px solid #000;
}
.cardLabel{font-size:34px;line-height:1;color:#111;letter-spacing:.5px}
.cardSub{margin-left:auto;font-weight:800;font-size:22px;color:#3a4a63;white-space:nowrap}
#meetingStatus{
  text-align:center;font-weight:900;font-size:22px;line-height:1.1;min-height:24px;color:var(--yellow);
  text-shadow:0 0 0 #000,-2px 0 #000,0 -2px #000,2px 0 #000,0 2px #000;
}
#meetingStatus.green{color:#78ffa0}
#meetingStatus.red{color:#ff6b6b}

/* ---------- flash ---------- */
#flash{
  position:fixed;inset:0;background:rgba(255,0,0,.35);opacity:0;pointer-events:none;z-index:6;
}

/* ---------- DEAD BODY band ---------- */
#band{
  position:fixed;left:0;right:0;top:30vh;height:22vh;z-index:8;pointer-events:none;
  display:flex;align-items:center;justify-content:center;gap:calc(30px * var(--k,1));
  background:rgba(14,18,40,.94);border-top:8px solid #000;border-bottom:8px solid #000;
  transform:scaleY(0);transform-origin:50% 50%;
  overflow:hidden;
}
#band .bandRays{
  position:absolute;inset:-25%;pointer-events:none;
  background:repeating-conic-gradient(from 0deg at 50% 50%, rgba(197,17,17,.42) 0deg 7deg, rgba(197,17,17,0) 7deg 20deg);
  -webkit-mask:radial-gradient(circle at 50% 50%, #000 0%, rgba(0,0,0,.35) 42%, transparent 70%);
          mask:radial-gradient(circle at 50% 50%, #000 0%, rgba(0,0,0,.35) 42%, transparent 70%);
}
.bandIcon{
  position:relative;width:calc(80px * var(--k,1));height:calc(80px * var(--k,1));flex:0 0 auto;
  filter:drop-shadow(0 0 0 rgba(0,0,0,0));
}
.bandText{
  position:relative;color:#fff;font-size:calc(92px * var(--k,1));line-height:1;letter-spacing:1px;
  -webkit-text-stroke:calc(9px * var(--k,1)) #000;paint-order:stroke fill;white-space:nowrap;
}

/* ---------- ejection lines ---------- */
#eject{
  position:fixed;left:0;right:0;top:calc(104px * var(--k));z-index:9;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:calc(4px * var(--k));
}
#eject span{
  font-family:'Baloo 2',sans-serif;font-weight:800;color:#fff;
  font-size:calc(34px * var(--k));line-height:1.1;
  -webkit-text-stroke:calc(6px * var(--k)) #000;paint-order:stroke fill;white-space:nowrap;
  min-height:calc(38px * var(--k));
}
#eject span#eject2{color:var(--yellow)}

/* ---------- header ---------- */
#header{
  position:fixed;left:0;right:0;top:0;z-index:10;pointer-events:none;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(32px * var(--k));
}
#header .brand{display:flex;align-items:center;gap:calc(20px * var(--k));pointer-events:none}
.wordmark{
  font-size:calc(58px * var(--k));line-height:1;color:#fff;
  -webkit-text-stroke:calc(7px * var(--k)) #000;paint-order:stroke fill;letter-spacing:1px;
}
.ticker{
  background:var(--red);color:#fff;border:4px solid #000;border-radius:999px;
  padding:calc(4px * var(--k)) calc(18px * var(--k));font-size:calc(26px * var(--k));line-height:1;
}
#header .controls{display:flex;align-items:center;gap:calc(12px * var(--k))}
.controls button{pointer-events:auto}
.iconBtn{
  width:calc(52px * var(--k));height:calc(52px * var(--k));border-radius:50%;
  background:rgba(16,22,38,.85);border:4px solid #000;display:flex;align-items:center;justify-content:center;
}
.iconBtn .ico{width:calc(28px * var(--k));height:calc(28px * var(--k))}
.iconBtn .ico-off{display:none}
.iconBtn.muted .ico-on{display:none}
.iconBtn.muted .ico-off{display:block}
.pill{
  height:calc(52px * var(--k));padding:0 calc(20px * var(--k));border-radius:999px;
  background:rgba(16,22,38,.85);border:4px solid #000;color:#fff;
  font-family:'Baloo 2',sans-serif;font-weight:800;font-size:calc(24px * var(--k));line-height:1;
  display:flex;align-items:center;gap:calc(8px * var(--k));
}
.pill-green{color:#78ffa0}
.controls button:disabled{cursor:not-allowed}
.controls button:disabled .ico,
.controls button:disabled .inlbl{opacity:.45}
.pill .inlbl{display:inline-block}

/* ---------- task list ---------- */
#tasks{
  position:fixed;left:calc(32px * var(--k));top:calc(122px * var(--k));z-index:10;
  width:calc(420px * var(--k));background:rgba(0,0,0,.45);border-radius:calc(16px * var(--k));
  padding:calc(14px * var(--k)) calc(20px * var(--k));
}
.tline{font-weight:900;font-size:calc(22px * var(--k));line-height:1.45;color:#fff;
  -webkit-text-stroke:calc(3.5px * var(--k)) #000;paint-order:stroke fill;}
.t-red{color:#ff5b5b}
.t-white{color:#fff}
.t-count{color:#cfe0f2}
.t-count.hot{color:var(--yellow)}
.t-count.pop{animation:pop .35s ease}
.t-cool{color:var(--yellow)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}

/* frame-rate friendliness */
#wholeWrap,#topWrap,#L3,#L1{backface-visibility:hidden}

@media (prefers-reduced-motion: reduce){
  #L1,#L2,#shadow{animation:none}
  #kill .ring{animation:none}
}
