:root{
  --ink:#140a24; --panel:rgba(18,10,34,.78); --edge:rgba(170,110,255,.55);
  --lime:#9dff3a; --lime2:#46d61a; --orange:#ffb020; --pink:#ff4fd8; --cyan:#4fe3ff; --red:#ff3b4f;
  --text:#fff6e8;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#1a0b2e;color:var(--text);font-family:Nunito,system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:none}
#backdrop{position:fixed;left:0;right:0;top:-16vh;height:116vh;background:#2a0f45 url(assets/backdrop.jpg) center top/cover no-repeat}
#backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,6,40,0) 45%,rgba(20,6,40,.55) 75%,rgba(12,4,24,.9))}
#gl,#fx,#goo{position:fixed;inset:0;width:100%;height:100%;display:block}
#fx,#goo{pointer-events:none}
body.playing #gl{cursor:none}
.hidden{display:none!important}

/* ---------- logo ---------- */
.logo{font-family:Creepster,cursive;font-size:clamp(64px,11vw,150px);line-height:.82;text-align:center;letter-spacing:4px;
  color:var(--lime);-webkit-text-stroke:3px #1b3a06;
  text-shadow:0 5px 0 #1b3a06,0 0 28px rgba(157,255,58,.55),0 10px 30px rgba(0,0,0,.6)}
.logo span{color:var(--orange);-webkit-text-stroke:3px #4a1d00;text-shadow:0 5px 0 #4a1d00,0 0 28px rgba(255,176,32,.55),0 10px 30px rgba(0,0,0,.6)}
.logo.small{font-size:clamp(28px,3.6vw,48px);-webkit-text-stroke:1.5px #1b3a06;letter-spacing:2px}
.logo.small span{-webkit-text-stroke:1.5px #4a1d00}

/* ---------- panels / HUD ---------- */
.panel{background:var(--panel);border:2px solid var(--edge);border-radius:16px;box-shadow:0 0 18px rgba(150,80,255,.35),inset 0 0 12px rgba(150,80,255,.2);backdrop-filter:blur(4px)}
#hud{position:fixed;inset:0;pointer-events:none;font-family:"Luckiest Guy",cursive}
.score-panel{position:absolute;left:18px;top:18px;padding:8px 20px 6px;display:flex;flex-direction:column;min-width:190px}
.score-panel .lbl{font-size:18px;letter-spacing:1px}
.big{font-size:44px;line-height:1;color:var(--orange);text-shadow:0 3px 0 #6a2a00}
.center-top{position:absolute;left:50%;top:10px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}
.timer{padding:6px 22px 3px;font-size:32px}
.timer.low{color:var(--red);animation:pulse .5s infinite alternate}
.right-top{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.coins{padding:6px 18px 3px;font-size:28px}
.hearts{padding:6px 14px 3px;font-size:24px;letter-spacing:2px}
.combo{display:flex;flex-direction:column;align-items:center;justify-content:center;width:120px;height:110px;margin-top:4px;
  background:radial-gradient(circle,#1b2d06 55%,transparent 56%),conic-gradient(from 0deg,var(--lime) 0 10%,transparent 10% 14%,var(--lime) 14% 30%,transparent 30% 33%,var(--lime) 33% 55%,transparent 55% 58%,var(--lime) 58% 80%,transparent 80% 84%,var(--lime) 84%);
  border-radius:50%;transform:rotate(-8deg);filter:drop-shadow(0 0 12px rgba(157,255,58,.6))}
.combo span{font-size:42px;line-height:.9;color:var(--lime);-webkit-text-stroke:1px #0b1a02}
.combo small{font-size:15px;color:var(--lime)}
.combo.bump{animation:bump .18s}
#bossbar{position:absolute;top:150px;left:50%;transform:translateX(-50%);width:min(420px,70vw);display:flex;align-items:center;gap:10px;font-size:22px;color:var(--pink)}
#bossbar div{flex:1;height:16px;border-radius:9px;background:#2a0b2f;border:2px solid var(--pink);overflow:hidden}
#bossbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff2d6f,#ff9bf0);transition:width .12s}
.bottom-left{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:8px;pointer-events:auto}
.ability{display:flex;align-items:center;gap:10px;font-size:15px;padding:0 6px}
.ability div{width:260px;height:12px;border-radius:7px;background:rgba(0,0,0,.5);border:2px solid var(--cyan);overflow:hidden}
.ability i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1d8bff,var(--cyan));transition:width .12s}
.ability.full i{background:linear-gradient(90deg,#fff,var(--cyan));animation:pulse .3s infinite alternate}
.weaponbar{display:flex;gap:8px;padding:8px;background:var(--panel);border:2px solid var(--edge);border-radius:16px}
.slot{position:relative;width:78px;height:86px;border-radius:12px;background:linear-gradient(#2b1a47,#170d29);border:2px solid #3d2a63;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}
.slot img{width:74px;height:74px;object-fit:contain;pointer-events:none}
.slot .n{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:#0d0719;border:1px solid #6f55a0;font-size:13px;display:flex;align-items:center;justify-content:center}
.slot.on{border-color:var(--orange);box-shadow:0 0 16px var(--orange),inset 0 0 14px rgba(255,176,32,.4)}
.slot.locked img{filter:grayscale(1) brightness(.35)}
.slot.locked::after{content:"🔒";position:absolute;top:6px;right:6px;font-size:14px}
.slot.disabled{opacity:.35;cursor:not-allowed}
.leaders{position:absolute;right:14px;bottom:14px;padding:10px 14px;min-width:230px;font-family:Nunito,sans-serif}
.leaders .lh{font-family:"Luckiest Guy";font-size:18px;margin-bottom:6px}
.leaders ol{list-style:none;display:flex;flex-direction:column;gap:6px}
.leaders li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.05);border-radius:10px;padding:5px 8px;font-weight:900;font-size:14px}
.leaders li b{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1a0b2e;font-size:13px}
.leaders li:nth-child(1) b{background:#ffcf3a}.leaders li:nth-child(2) b{background:#cfd6e6}.leaders li:nth-child(3) b{background:#e98b3a}
.leaders li.me{outline:2px solid var(--lime)}
.leaders li em{font-style:normal;color:var(--orange);margin-left:auto}
.icon-btn{position:absolute;right:18px;top:50%;pointer-events:auto;background:var(--panel);border:2px solid var(--edge);border-radius:50%;width:44px;height:44px;font-size:20px;cursor:pointer;color:#fff}

/* ---------- screens ---------- */
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:16px;
  background:radial-gradient(ellipse at center,rgba(20,6,40,.35),rgba(10,3,20,.8));text-align:center}
.tag{font-size:20px;font-weight:900;text-shadow:0 2px 6px #000}
.tag em{opacity:.6;font-weight:700}
.menu{display:flex;flex-direction:column;gap:12px;align-items:center}
.menu.row{flex-direction:row;flex-wrap:wrap;justify-content:center}
.btn{font-family:"Luckiest Guy",cursive;font-size:26px;letter-spacing:1px;padding:12px 34px 8px;min-width:280px;border-radius:16px;border:3px solid #6b3fb5;background:linear-gradient(#3b2168,#231242);color:#fff;cursor:pointer;box-shadow:0 5px 0 #120824,0 0 20px rgba(150,80,255,.35);transition:transform .08s}
.btn:hover{transform:translateY(-2px) scale(1.03)}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 #120824}
.btn.primary{background:linear-gradient(#b6ff5a,#46c61a);border-color:#1b5a06;color:#10310a;box-shadow:0 5px 0 #1b3a06,0 0 26px rgba(157,255,58,.5)}
.menu.row .btn{min-width:200px}
.howto{max-width:720px;font-size:15px;line-height:1.6;background:rgba(10,4,20,.6);padding:12px 18px;border-radius:14px;border:1px solid rgba(170,110,255,.35)}
.stats{font-family:"Luckiest Guy";font-size:18px;opacity:.9}
.res-title{font-family:"Luckiest Guy";font-size:clamp(40px,6vw,72px);color:var(--lime);text-shadow:0 4px 0 #1b3a06,0 0 20px rgba(157,255,58,.5)}
.res-score{font-family:"Luckiest Guy";font-size:clamp(56px,9vw,110px);color:var(--orange);text-shadow:0 5px 0 #6a2a00}
.res-best{font-family:"Luckiest Guy";font-size:22px;color:var(--pink)}
.res-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:10px}
.res-grid div{background:var(--panel);border:2px solid var(--edge);border-radius:14px;padding:10px 14px;font-weight:900}
.res-grid b{display:block;font-family:"Luckiest Guy";font-size:30px;font-weight:400;color:var(--lime)}
.shop-coins{font-family:"Luckiest Guy";font-size:30px;color:var(--orange)}
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(200px,260px));gap:14px}
.card{background:var(--panel);border:2px solid var(--edge);border-radius:18px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px}
.card.eq{border-color:var(--orange);box-shadow:0 0 18px rgba(255,176,32,.5)}
.card img{width:110px;height:110px}
.card h3{font-family:"Luckiest Guy";font-weight:400;font-size:24px}
.card p{font-size:14px;min-height:40px;opacity:.9}
.card .btn{min-width:0;width:100%;font-size:20px;padding:8px 10px 5px}
.card .btn[disabled]{opacity:.4;cursor:not-allowed}
.note{max-width:760px;font-size:14px;opacity:.8}

/* ---------- popups ---------- */
#popups{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.pop{position:absolute;transform:translate(-50%,-50%);font-family:"Luckiest Guy",cursive;font-size:34px;white-space:nowrap;color:#fff4a8;
  -webkit-text-stroke:2px #3a1a00;text-shadow:0 3px 0 #3a1a00,0 0 16px rgba(255,220,80,.7);animation:rise .85s ease-out forwards}
.pop small{display:block;text-align:center;font-size:.8em;color:var(--pink);-webkit-text-stroke:1.5px #3a0030}
.pop.bad{color:#ff6b6b;-webkit-text-stroke:2px #3a0000}
.pop.huge{font-size:60px;color:var(--lime);-webkit-text-stroke:3px #0b2a00}
.banner{position:absolute;left:50%;top:27%;transform:translate(-50%,-50%);font-family:"Luckiest Guy";font-size:clamp(48px,8vw,96px);color:var(--pink);-webkit-text-stroke:3px #2a0030;text-shadow:0 6px 0 #2a0030,0 0 30px rgba(255,79,216,.7);animation:banner 1.4s ease-out forwards;white-space:nowrap}

@keyframes rise{0%{opacity:0;transform:translate(-50%,-30%) scale(.4)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.25)}30%{transform:translate(-50%,-70%) scale(1)}100%{opacity:0;transform:translate(-50%,-190%) scale(.9)}}
@keyframes banner{0%{opacity:0;transform:translate(-50%,-50%) scale(2.2)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-80%) scale(1)}}
@keyframes pulse{to{opacity:.55}}
@keyframes bump{50%{transform:rotate(-8deg) scale(1.25)}}

@media (max-width:820px),(max-height:620px){
  .score-panel{min-width:120px;padding:6px 12px 4px}.big{font-size:30px}.score-panel .lbl{font-size:13px}
  .timer{font-size:22px}.coins{font-size:20px}.hearts{font-size:17px}
  .combo{width:84px;height:78px}.combo span{font-size:28px}
  .slot{width:48px;height:54px}.slot img{width:46px;height:46px}.slot .n{display:none}
  .ability div{width:150px}
  .leaders{display:none}
  .shop-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.res-grid{grid-template-columns:repeat(2,1fr)}
  .btn{min-width:220px;font-size:22px}
}

/* ================= v0.2 additions ================= */
body.ad #backdrop{background-image:url(assets/backdrop_afterdark.jpg)}
body.ad #backdrop::after{background:linear-gradient(to bottom,rgba(5,5,12,0) 40%,rgba(8,4,8,.6) 75%,rgba(4,2,4,.92))}
body.ad .logo{font-family:Creepster,cursive;color:#d8d8d8;-webkit-text-stroke:3px #2a0000;text-shadow:0 5px 0 #2a0000,0 0 26px rgba(200,0,0,.55),0 10px 30px rgba(0,0,0,.8)}
body.ad .logo span{color:#c0101a;-webkit-text-stroke:3px #1a0000;text-shadow:0 5px 0 #1a0000,0 0 28px rgba(255,0,0,.5)}
body.ad .panel{--edge:rgba(200,30,40,.55);background:rgba(10,8,12,.82);box-shadow:0 0 18px rgba(200,0,0,.3),inset 0 0 12px rgba(200,0,0,.15)}
body.ad .btn{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:2px;border-color:#6a1a1a;background:linear-gradient(#2a1414,#140808);box-shadow:0 5px 0 #080404,0 0 18px rgba(200,0,0,.3)}
body.ad .btn.primary{background:linear-gradient(#d41a24,#7a0a10);border-color:#3a0000;color:#fff;box-shadow:0 5px 0 #2a0000,0 0 24px rgba(255,20,20,.45)}
body.ad .big,body.ad .res-score{color:#e8e0d0;text-shadow:0 3px 0 #400}
body.ad .combo{background:radial-gradient(circle,#1a0404 55%,transparent 56%),conic-gradient(from 0deg,#c0101a 0 10%,transparent 10% 14%,#c0101a 14% 30%,transparent 30% 33%,#c0101a 33% 55%,transparent 55% 58%,#c0101a 58% 80%,transparent 80% 84%,#c0101a 84%);filter:drop-shadow(0 0 12px rgba(255,0,0,.5))}
body.ad .combo span,body.ad .combo small{color:#ff4040}
body.ad .res-title{color:#e8e0d0;text-shadow:0 4px 0 #400,0 0 20px rgba(255,0,0,.4)}
.ad-tag{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:12px;font-size:clamp(20px,3vw,34px);color:#ff3a3a;text-shadow:0 0 18px rgba(255,0,0,.7);margin-top:-8px}
.chip{font-family:Nunito,sans-serif;font-weight:900;font-size:12px;opacity:.85;margin-top:2px;letter-spacing:.5px}
.editions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.ed-card{position:relative;display:flex;flex-direction:column;gap:4px;align-items:center;min-width:230px;padding:12px 18px;border-radius:16px;cursor:pointer;color:#fff;
  background:rgba(20,10,34,.75);border:2px solid rgba(170,110,255,.35);font-family:Nunito,sans-serif}
.ed-card b{font-family:"Luckiest Guy";font-size:24px;font-weight:400;letter-spacing:1px}
.ed-card[data-ed=afterdark] b{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:4px;color:#ff4a4a}
.ed-card span{font-size:13px;opacity:.85}
.ed-card em{position:absolute;top:-10px;right:10px;font-style:normal;font-size:10px;font-weight:900;background:#c0101a;padding:2px 8px;border-radius:8px;letter-spacing:1px}
.ed-card.on{border-color:var(--lime);box-shadow:0 0 18px rgba(157,255,58,.45)}
.ed-card[data-ed=afterdark].on{border-color:#ff3a3a;box-shadow:0 0 18px rgba(255,40,40,.5)}
.menu.tight{gap:12px}
.btn.small{min-width:160px;font-size:20px;padding:9px 18px 6px}
.side-btns{position:absolute;right:18px;top:45%;display:flex;flex-direction:column;gap:8px;pointer-events:auto}
.side-btns .icon-btn{position:static}
.tip{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);max-width:min(620px,90vw);padding:16px 22px;border-radius:18px;text-align:center;
  background:rgba(12,6,24,.88);border:2px solid var(--edge);font-family:Nunito,sans-serif;font-weight:800;font-size:18px;line-height:1.45;animation:tipIn .35s ease-out}
.tip b{display:block;font-family:"Luckiest Guy";font-weight:400;font-size:28px;color:var(--lime);margin-bottom:6px}
body.ad .tip b{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:2px;color:#ff4a4a}
@keyframes tipIn{from{opacity:0;transform:translate(-50%,-40%) scale(.9)}}
.level-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,170px));gap:12px}
.lvl{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 8px 10px;border-radius:16px;cursor:pointer;color:#fff;
  background:var(--panel);border:2px solid var(--edge);font-family:Nunito,sans-serif}
.lvl .num{font-family:"Luckiest Guy";font-size:34px;color:var(--orange);line-height:1}
.lvl b{font-size:15px}
.lvl small{font-size:12px;opacity:.8}
.lvl .st{color:#ffcf3a;font-size:20px;letter-spacing:2px}
.lvl.boss{border-color:var(--pink)}
.lvl.locked{opacity:.35;cursor:not-allowed}
.lvl:not(.locked):hover{transform:translateY(-2px)}
.stars{display:flex;gap:10px;font-size:64px;line-height:1}
.stars i{font-style:normal;color:#3a2a4a;text-shadow:0 3px 0 #120a1a}
.stars i.on{color:#ffcf3a;text-shadow:0 3px 0 #7a4a00,0 0 20px rgba(255,200,40,.8);animation:starIn .4s both}
@keyframes starIn{from{transform:scale(2.4) rotate(-40deg);opacity:0}}
.scrap-break{font-weight:800;font-size:15px;max-width:760px;opacity:.95}
.scrap-break b{color:var(--orange);font-size:20px;margin-right:6px}
.tabs{display:flex;gap:8px}
.tab{font-family:"Luckiest Guy";font-size:18px;padding:8px 22px 5px;border-radius:12px;border:2px solid var(--edge);background:transparent;color:#fff;cursor:pointer}
.tab.on{background:var(--edge)}
.statline{font-size:12px;font-weight:900;letter-spacing:1px;opacity:.75}
.upg-ico{font-size:64px;line-height:110px}
.settings{display:flex;flex-direction:column;gap:12px;min-width:min(460px,90vw);background:var(--panel);border:2px solid var(--edge);border-radius:18px;padding:18px 22px;text-align:left}
.settings label{display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:900}
.settings select,.settings input[type=range]{min-width:200px}
.settings select{background:#1a0e2a;color:#fff;border:1px solid var(--edge);border-radius:8px;padding:6px}
.settings input[type=checkbox]{width:22px;height:22px}
.pop.good{color:#9dff3a;-webkit-text-stroke:2px #0b2a00}
#pause{z-index:5}
@media (max-width:820px),(max-height:620px){
  .level-grid{grid-template-columns:repeat(2,1fr)}
  .ed-card{min-width:150px;padding:8px 10px}
  .side-btns{top:38%}
  .tip{font-size:15px}
}

/* ================= v0.3 additions ================= */
body.stunned #gl{filter:blur(2.5px) saturate(1.6) hue-rotate(-25deg)}
body.stunned::after{content:"";position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 160px 40px rgba(255,40,160,.45);animation:pulse .15s infinite alternate}
.tip b.new{display:inline;font-size:18px;color:var(--orange)}
body.ad .tip b.new{color:#ff8a4a}

/* ================= v0.5: meta screens ================= */
.topbar{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.chip-btn{font-family:"Luckiest Guy";font-size:18px;padding:8px 16px 5px;border-radius:14px;border:2px solid var(--edge);background:var(--panel);color:#fff;cursor:pointer}
.net{font-weight:900;font-size:13px;opacity:.75}.net.on{color:var(--lime);opacity:1}
.ed-card .rating{position:absolute;bottom:-10px;right:10px;font-style:normal;font-size:11px;font-weight:900;background:#fff;color:#111;padding:2px 7px;border-radius:6px;border:2px solid #111}
.ed-card .rating.m{background:#111;color:#fff;border-color:#fff}
.rating-line{font-size:13px;max-width:760px;opacity:.9}.rating-line b{background:#fff;color:#111;border-radius:5px;padding:1px 6px;margin-right:6px}
.rating-line b.warn{background:#c0101a;color:#fff}.muted{opacity:.6}
.legal{position:absolute;bottom:10px;font-size:12px;opacity:.7}.legal a{color:#fff}
.res-online{font-family:"Luckiest Guy";font-size:20px;color:var(--cyan);min-height:1em}
.board-list{list-style:none;width:min(560px,92vw);max-height:48vh;overflow:auto;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:2px solid var(--edge);border-radius:16px;padding:10px}
.board-list li{display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.05);font-weight:900}
.board-list li b{width:34px;text-align:center;font-family:"Luckiest Guy";font-size:20px;color:var(--orange)}
.board-list li span{flex:1;text-align:left}.board-list li em{font-style:normal;color:var(--lime)}
.board-list li.me{outline:2px solid var(--lime)}
.profile-body{max-width:640px;background:var(--panel);border:2px solid var(--edge);border-radius:18px;padding:18px 22px;display:flex;flex-direction:column;gap:12px;align-items:center}
.pname{font-family:"Luckiest Guy";font-size:40px;color:var(--orange)}
.code-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.code-row code{background:#0c0616;padding:8px 12px;border-radius:8px;font-size:13px;max-width:360px;overflow-wrap:anywhere}
.code-row input{background:#0c0616;color:#fff;border:1px solid var(--edge);border-radius:8px;padding:8px;min-width:260px}
.btn.danger{border-color:#7a1010;background:linear-gradient(#5a1414,#2a0808)}
.note.warn{color:#ffb0a0}
.age-select{font-size:22px;padding:8px 14px;border-radius:10px;background:#1a0e2a;color:#fff;border:2px solid var(--edge)}
.how-body{width:min(1040px,94vw);max-height:60vh;overflow:auto;background:var(--panel);border:2px solid var(--edge);border-radius:18px;padding:16px 20px;text-align:left}
.how-body ul{margin:6px 0 12px 20px;line-height:1.6}.how-body h3{font-family:"Luckiest Guy";font-weight:400;font-size:22px;color:var(--lime);margin:6px 0}
.how-body a{color:var(--cyan)}
.how-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.zgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.zcard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;background:rgba(255,255,255,.05);border-radius:14px;padding:8px}
.zcard img{width:120px;height:120px}.zcard b{font-family:"Luckiest Guy";font-weight:400;font-size:20px}
.zcard i{font-style:normal;font-size:12px;font-weight:900;color:var(--orange)}.zcard span{font-size:13px;opacity:.9}
.zcard.bad{outline:2px solid #ff3b4f}.zcard.bad i{color:#ff6b6b}
#recBtn.rec{background:#c0101a;animation:pulse .5s infinite alternate}
@media (max-width:820px){.how-cols{grid-template-columns:1fr}.topbar{top:8px}}
/* title fits short screens */
#title{gap:10px;padding-top:56px}
#title .logo{font-size:clamp(46px,min(11vw,14vh),150px)}
#title .btn{padding-top:9px;padding-bottom:6px}
#title .btn.small{font-size:18px}
.legal{position:static;margin-top:2px}
@media (max-height:760px){#title .editions .ed-card{padding:7px 14px}#title .ed-card span{font-size:12px}}
@media (max-width:820px){#title{justify-content:flex-start;overflow-y:auto;padding-bottom:24px}}
/* every menu screen scrolls instead of clipping on short (e.g. landscape phone) screens */
.screen{overflow-y:auto;justify-content:safe center}
@media (max-height:620px){.res-score{font-size:48px}.stars{font-size:40px}.res-grid div{padding:6px 10px}.res-grid b{font-size:22px}.screen{gap:10px}}

/* ================= v0.7: scares + yells ================= */
.yell{position:absolute;transform:translate(-50%,-100%);font-family:"Luckiest Guy",cursive;font-size:26px;color:#1a0b0b;background:#fff;border:3px solid #1a0b0b;border-radius:18px;padding:6px 14px 3px;white-space:nowrap;animation:yell 1.5s ease-out forwards;pointer-events:none;z-index:4}
.yell::after{content:"";position:absolute;left:24px;bottom:-14px;border:8px solid transparent;border-top:10px solid #1a0b0b}
body.ad .yell{background:#fff2e6;color:#7a0000;border-color:#7a0000}
@keyframes yell{0%{transform:translate(-50%,-60%) scale(.3) rotate(-8deg)}12%{transform:translate(-50%,-100%) scale(1.15) rotate(3deg)}20%{transform:translate(-50%,-100%) scale(1) rotate(-2deg)}85%{opacity:1}100%{opacity:0;transform:translate(-50%,-130%)}}
body.jolt #gl,body.jolt #goo{animation:jolt .26s}
@keyframes jolt{0%{transform:scale(1.06) translate(-1%,1%)}40%{transform:scale(1.03) translate(1%,-1%)}100%{transform:none}}

/* ================= v0.8: special bombs ================= */
body.smoked #goo{background:radial-gradient(ellipse at 30% 40%,rgba(200,200,210,.55),transparent 45%),radial-gradient(ellipse at 70% 60%,rgba(190,190,200,.5),transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(180,180,190,.45),transparent 55%),rgba(150,150,160,.25);animation:smoke 4s ease-in-out infinite alternate}
@keyframes smoke{to{background-position:40px -20px,-30px 30px,20px 10px,0 0}}
body.zapped #gl{filter:saturate(1.5) hue-rotate(-15deg) brightness(1.1)}
body.zapped::before{content:"";position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 120px 20px rgba(255,226,58,.55);animation:pulse .12s infinite alternate;z-index:3}

/* ================= v0.9: combos & specials ================= */
.streak{display:flex;flex-direction:column;align-items:center;padding:4px 14px 2px;min-width:92px}
.streak small{font-size:12px;letter-spacing:1px}.streak b{font-size:34px;line-height:1;font-weight:400;color:#fff}
.streak.hot{border-color:#ff7a1a;box-shadow:0 0 18px rgba(255,122,26,.7)}.streak.hot b{color:#ffb020;animation:pulse .3s infinite alternate}
.special{display:flex;align-items:center;gap:10px}
.special-btn{font-family:"Luckiest Guy";font-size:16px;padding:8px 14px 5px;border-radius:12px;border:2px solid #555;background:#1a1224;color:#888;cursor:pointer;min-width:190px}
.special-btn.ready{color:#fff;border-color:#ffe23a;background:linear-gradient(#ff9a1a,#c03a0a);box-shadow:0 0 16px rgba(255,200,40,.7);animation:pulse .5s infinite alternate}
.special-btn.max{background:linear-gradient(#ff2a8a,#7a0aa0);border-color:#fff}
.special-bar{width:120px;height:10px;border-radius:6px;background:rgba(0,0,0,.5);border:2px solid #ffb020;overflow:hidden}
.special-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff7a1a,#ffe23a);transition:width .15s}
.chain{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);font-family:"Luckiest Guy";font-size:clamp(34px,5vw,56px);color:#ffe23a;-webkit-text-stroke:3px #5a1a00;text-shadow:0 5px 0 #5a1a00,0 0 26px rgba(255,160,0,.8);white-space:nowrap;animation:chainIn 1.1s ease-out forwards;pointer-events:none}
.chain small{display:block;text-align:center;font-size:.55em;color:#fff}
.chain.mega{font-size:clamp(46px,7vw,84px);color:#ff4fd8;-webkit-text-stroke:3px #2a0030}
@keyframes chainIn{0%{opacity:0;transform:translate(-50%,-50%) scale(2.2) rotate(-6deg)}15%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(2deg)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-80%)}}
.pop.streak{color:#ffb020;font-size:40px}
body.frenzy::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 140px 30px rgba(255,90,10,.6);animation:pulse .1s infinite alternate}
.settings input[type=text],.settings input:not([type]){background:#1a0e2a;color:#fff;border:1px solid var(--edge);border-radius:8px;padding:6px 8px;min-width:200px}

/* ================= v0.10: beta ================= */
.beta{font-weight:900;font-size:11px;letter-spacing:1px;background:#ffb020;color:#1a0b2e;border-radius:6px;padding:2px 8px;margin-left:auto;margin-right:10px}
.fb-stars{display:flex;gap:8px}.fb-stars button{font-size:44px;background:none;border:none;color:#4a3a5a;cursor:pointer}.fb-stars button.on{color:#ffcf3a;text-shadow:0 0 12px rgba(255,200,40,.7)}
.fb-text{width:min(560px,90vw);height:140px;border-radius:12px;background:#140a24;color:#fff;border:2px solid var(--edge);padding:10px;font:600 15px Nunito,sans-serif}
.consent{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:20;width:min(640px,94vw);background:rgba(14,6,26,.96);border:2px solid var(--orange);border-radius:16px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex;flex-direction:column;gap:8px}
.consent a{color:var(--cyan)}.consent div{display:flex;gap:10px;justify-content:flex-end}.consent .btn{min-width:0}

/* aim reticle for aimed weapons (cursor is hidden in play) */
.reticle{position:fixed;left:-22px;top:-22px;width:44px;height:44px;border:3px solid rgba(255,255,255,.85);border-radius:50%;pointer-events:none;z-index:6;box-shadow:0 0 8px rgba(0,0,0,.7)}
.reticle::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff}
.reticle.flame{border-color:rgba(255,150,40,.9);border-style:dashed}
.icon-btn.off{opacity:.55;border-style:dashed}
