*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;}
[hidden]{display:none !important;} /* ensure the hidden attr always wins over .lblink/.lbtoggle */
html,body{height:100%;}
body{font-family:'Space Mono',monospace;overflow:hidden;display:flex;justify-content:center;background:#0a0014;}

#app{
  width:100%;max-width:430px;height:100dvh;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#ff00cc,#3333ff,#00ffd5,#ffcc00,#ff0066);
  background-size:400% 400%;animation:bg 9s ease infinite;
  display:flex;flex-direction:column;
}
@keyframes bg{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}

/* floating emoji layer */
#fx{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.float{position:absolute;font-size:34px;opacity:.35;animation:rise linear forwards;}
@keyframes rise{from{transform:translateY(110vh) rotate(0);}to{transform:translateY(-15vh) rotate(360deg);}}

/* shake */
#app.shake{animation:bg 9s ease infinite, shk .25s;}
@keyframes shk{0%,100%{}25%{transform:translate(3px,-3px) rotate(.4deg);}75%{transform:translate(-3px,3px) rotate(-.4deg);}}

/* HUD */
header{position:relative;z-index:3;padding:12px 14px 8px;}
.title{font-family:'Bungee';font-size:26px;color:#fff;text-shadow:3px 3px 0 #000,0 0 18px #ff00cc;letter-spacing:1px;line-height:1;text-align:center;cursor:default;}
.title .cook{color:#ffe600;animation:wob 1.2s infinite;display:inline-block;}
@keyframes wob{50%{transform:scale(1.12) rotate(-4deg);}}
.sub{text-align:center;font-size:9px;letter-spacing:3px;color:#0a0014;font-weight:700;margin-top:4px;}
.hud{display:flex;gap:8px;margin-top:10px;}
.chip{flex:1;background:rgba(0,0,0,.78);border:2px solid #fff;border-radius:12px;padding:6px 8px;text-align:center;}
.chip .k{font-size:8px;letter-spacing:1px;color:#00ffd5;}
.chip .v{font-family:'Luckiest Guy';font-size:19px;color:#fff;line-height:1;letter-spacing:.5px;}
.chip .v.aura{color:#ffe600;text-shadow:0 0 10px #ffcc00;}
.rankbar{margin-top:8px;background:rgba(0,0,0,.78);border:2px solid #fff;border-radius:12px;padding:6px 10px;}
.rankbar .row{display:flex;justify-content:space-between;font-size:9px;color:#fff;letter-spacing:1px;align-items:center;}
.rankbar .row b{font-family:'Luckiest Guy';color:#ff4df0;letter-spacing:1px;font-size:13px;}
.track{height:9px;background:#1a0a2a;border-radius:6px;margin-top:5px;overflow:hidden;border:1px solid #000;}
.track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#00ffd5,#ffe600,#ff00cc);transition:width .4s;}

/* STAGE */
main{flex:1;position:relative;z-index:3;display:flex;align-items:center;justify-content:center;padding:8px 14px;}
.card{
  width:100%;background:#fff;border:5px solid #000;border-radius:22px;
  box-shadow:8px 8px 0 #000, 0 0 40px rgba(255,0,204,.6);
  padding:16px 14px 14px;position:relative;text-align:center;
}
.card.pop{animation:pop .35s cubic-bezier(.2,1.6,.4,1);}
@keyframes pop{0%{transform:scale(.8) rotate(-2deg);opacity:0;}100%{transform:scale(1);opacity:1;}}
.card.rare{border-color:#ffcc00;box-shadow:8px 8px 0 #b8860b,0 0 60px #ffcc00;background:linear-gradient(#fff,#fff8d8);}
.card.spon{border-color:#00ffd5;box-shadow:8px 8px 0 #007a6a,0 0 60px #00ffd5;}
.tag{position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-3deg);background:#ff0066;color:#fff;font-family:'Bungee';font-size:11px;padding:4px 12px;border:3px solid #000;border-radius:8px;white-space:nowrap;}
.card.rare .tag{background:#ffcc00;color:#000;}
.card.spon .tag{background:#00ffd5;color:#000;}
.imgbox{height:96px;border:3px dashed #000;border-radius:12px;margin:10px 0 12px;display:flex;align-items:center;justify-content:center;font-size:42px;background:linear-gradient(45deg,#ffd6f5,#d6f5ff);overflow:hidden;letter-spacing:6px;}
.headline{font-family:'Luckiest Guy';font-size:24px;line-height:1.05;color:#10001f;letter-spacing:.4px;}
.headline .hl{color:#ff009d;}
.flavor{font-size:12px;color:#333;margin-top:8px;line-height:1.35;}
.gain{font-family:'Bungee';font-size:13px;color:#0a8a00;margin-top:8px;min-height:16px;}

/* floating +aura popups */
.pophit{position:absolute;font-family:'Luckiest Guy';font-size:26px;color:#ffe600;text-shadow:2px 2px 0 #000;pointer-events:none;z-index:8;animation:fly 1s ease-out forwards;}
@keyframes fly{to{transform:translateY(-70px) scale(1.4);opacity:0;}}

/* ACTIONS */
footer{position:relative;z-index:3;padding:8px 12px calc(14px + env(safe-area-inset-bottom));}
.ask{text-align:center;font-family:'Bungee';font-size:12px;color:#fff;text-shadow:2px 2px 0 #000;margin-bottom:8px;}
.btns{display:flex;gap:8px;}
.b{flex:1;border:4px solid #000;border-radius:16px;padding:14px 4px;font-family:'Luckiest Guy';font-size:15px;color:#000;cursor:pointer;box-shadow:4px 4px 0 #000;transition:transform .06s;letter-spacing:.5px;}
.b:active{transform:translate(4px,4px);box-shadow:0 0 0 #000;}
.b .em{display:block;font-size:24px;margin-bottom:2px;}
.b.real{background:#3dff7a;}
.b.cap{background:#ff5b7a;}
.b.skibidi{background:#ffe600;}
.b:disabled{opacity:.55;cursor:default;}
.b:focus-visible{outline:4px solid #fff;outline-offset:2px;}

/* COOKED UP toast */
#toast{position:absolute;inset:0;z-index:20;display:none;align-items:center;justify-content:center;flex-direction:column;background:rgba(10,0,20,.6);}
#toast.show{display:flex;animation:tin .3s;}
@keyframes tin{from{opacity:0;}}
#toast .lvlup{font-family:'Bungee';font-size:16px;color:#00ffd5;letter-spacing:2px;}
#toast .rank{font-family:'Luckiest Guy';font-size:40px;color:#ffe600;text-shadow:4px 4px 0 #000;text-align:center;line-height:1;margin:6px 0;animation:wob .5s infinite;}

/* END / COOKED DIAGNOSIS */
#endWrap{position:absolute;inset:0;z-index:30;display:none;flex-direction:column;justify-content:center;background:rgba(10,0,20,.94);padding:16px;overflow:auto;}
#endWrap.show{display:flex;animation:tin .3s;}
#diag{background:linear-gradient(150deg,#ff00cc,#5b00ff,#00ffd5);border:5px solid #000;border-radius:22px;box-shadow:8px 8px 0 #000;padding:18px 16px;text-align:center;color:#fff;}
#diag .dt{font-family:'Bungee';font-size:14px;color:#0a0014;}
#diag .du{font-size:8px;letter-spacing:3px;color:rgba(0,0,0,.6);font-weight:700;margin-bottom:10px;}
#diag .face{font-size:54px;margin:4px 0;}
#diag .verdict{font-family:'Luckiest Guy';font-size:30px;line-height:1;text-shadow:3px 3px 0 #000;margin:2px 0 4px;}
#diag .flav{font-size:12px;background:rgba(0,0,0,.35);border-radius:10px;padding:8px;margin:8px 0;line-height:1.4;}
#diag .stats{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
#diag .st{flex:1 1 40%;background:rgba(0,0,0,.5);border-radius:10px;padding:8px 4px;}
#diag .st .sk{font-size:8px;letter-spacing:1px;color:#00ffd5;}
#diag .st .sv{font-family:'Luckiest Guy';font-size:18px;}
#diag .wm{font-size:9px;letter-spacing:2px;margin-top:10px;color:rgba(255,255,255,.9);font-weight:700;}
.dbtns{display:flex;gap:8px;margin-top:14px;}
.dbtns button{flex:1;font-family:'Luckiest Guy';font-size:14px;padding:14px;border:4px solid #000;border-radius:14px;cursor:pointer;box-shadow:4px 4px 0 #000;}
.dbtns button:active{transform:translate(4px,4px);box-shadow:0 0 0 #000;}
.dbtns button:focus-visible{outline:4px solid #fff;outline-offset:2px;}
.dbtns .share{background:#00ffd5;}
.dbtns .save{background:#ffe600;}
#diag .lbpos{font-family:'Luckiest Guy';font-size:15px;color:#ffe600;text-shadow:2px 2px 0 #000;margin-top:10px;letter-spacing:.5px;}
#diag .lbpos:empty{display:none;}
.again{display:block;width:100%;margin-top:8px;font-family:'Luckiest Guy';font-size:14px;padding:12px;border:4px solid #000;border-radius:14px;cursor:pointer;box-shadow:4px 4px 0 #000;background:#3dff7a;}
.again:active{transform:translate(4px,4px);box-shadow:0 0 0 #000;}
.again:focus-visible,.lblink:focus-visible{outline:4px solid #fff;outline-offset:2px;}
.lblink{display:block;width:100%;margin-top:10px;background:rgba(0,0,0,.45);color:#fff;border:2px solid #fff;border-radius:12px;padding:11px;font-family:'Bungee';font-size:12px;letter-spacing:1px;cursor:pointer;}
.lblink:active{transform:translateY(1px);}
.dhint{text-align:center;font-size:11px;color:#fff;letter-spacing:1px;margin-top:12px;font-weight:700;}

/* LEADERBOARD */
#lbWrap{position:absolute;inset:0;z-index:35;display:none;flex-direction:column;justify-content:center;background:rgba(10,0,20,.96);padding:16px;}
#lbWrap.show{display:flex;animation:tin .3s;}
.lbcard{background:rgba(0,0,0,.55);border:4px solid #fff;border-radius:20px;padding:14px;display:flex;flex-direction:column;max-height:calc(100dvh - 32px);}
.lbhead{text-align:center;margin-bottom:8px;}
.lbtitle{font-family:'Bungee';font-size:18px;color:#ffe600;text-shadow:2px 2px 0 #000;}
.lbdate{font-size:9px;letter-spacing:2px;color:#00ffd5;font-weight:700;margin-top:3px;}
.lbtoggle{display:flex;gap:6px;margin-bottom:8px;}
.lbtoggle button{flex:1;font-family:'Bungee';font-size:10px;letter-spacing:1px;padding:8px;border:2px solid #fff;border-radius:10px;background:rgba(0,0,0,.4);color:#fff;cursor:pointer;}
.lbtoggle button.on{background:#ff00cc;color:#fff;}
.lblist{flex:1;overflow:auto;border-radius:12px;}
.lbrow{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border-radius:10px;padding:8px 10px;margin-bottom:5px;}
.lbrow .pos{font-family:'Luckiest Guy';font-size:15px;color:#00ffd5;min-width:34px;}
.lbrow .nm{flex:1;font-family:'Space Mono';font-weight:700;font-size:13px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lbrow .sc{font-family:'Luckiest Guy';font-size:14px;color:#ffe600;}
.lbrow.me{background:linear-gradient(90deg,#ff00cc,#5b00ff);border:2px solid #ffe600;}
.lbrow.me .pos{color:#fff;}
.lbrow.top .pos{color:#ffe600;}
.lbmsg{text-align:center;color:#fff;font-size:12px;padding:24px 8px;font-weight:700;}
.lbself{margin-top:6px;}
.lbself .lbrow{margin-bottom:0;}
.lbbtns{display:flex;gap:8px;margin-top:10px;}
.lbbtns button{flex:1;font-family:'Luckiest Guy';font-size:13px;padding:13px 6px;border:4px solid #000;border-radius:14px;cursor:pointer;box-shadow:4px 4px 0 #000;}
.lbbtns button:active{transform:translate(4px,4px);box-shadow:0 0 0 #000;}
.lbbtns button:focus-visible{outline:4px solid #fff;outline-offset:2px;}
.lbbtns .challenge{background:#ffe600;}
.lbbtns .lbback{background:#fff;}

/* HANDLE PROMPT */
#handleWrap{position:absolute;inset:0;z-index:45;display:none;flex-direction:column;align-items:center;justify-content:center;background:rgba(10,0,20,.96);padding:22px;}
#handleWrap.show{display:flex;animation:tin .3s;}
.hcard{background:linear-gradient(150deg,#ff00cc,#5b00ff,#00ffd5);border:5px solid #000;border-radius:22px;box-shadow:8px 8px 0 #000;padding:20px 16px;text-align:center;width:100%;max-width:340px;}
.htitle{font-family:'Bungee';font-size:20px;color:#fff;text-shadow:2px 2px 0 #000;}
.hsub{color:#10001f;font-weight:700;font-size:11px;line-height:1.4;margin:8px 0 14px;}
.hsub b{color:#ffe600;text-shadow:1px 1px 0 #000;}
#handleInput{width:100%;font-family:'Luckiest Guy';font-size:20px;text-align:center;padding:12px;border:4px solid #000;border-radius:14px;background:#fff;color:#10001f;letter-spacing:1px;}
#handleInput:focus-visible{outline:4px solid #ffe600;outline-offset:2px;}
.herr{min-height:16px;color:#fff;background:rgba(0,0,0,.5);border-radius:8px;font-size:12px;font-weight:700;margin:8px 0;padding:4px 6px;opacity:0;transition:opacity .15s;}
.herr.show{opacity:1;}
#handleSave{font-family:'Bungee';font-size:16px;background:#ffe600;color:#000;border:5px solid #000;border-radius:16px;padding:13px 22px;cursor:pointer;box-shadow:5px 5px 0 #000;width:100%;}
#handleSave:active{transform:translate(5px,5px);box-shadow:0 0 0 #000;}
#handleSave:focus-visible{outline:4px solid #fff;outline-offset:3px;}
.hhint{font-size:9px;letter-spacing:1px;color:#10001f;font-weight:700;margin-top:10px;}

/* mini toast (share fallback / copied) */
.minitoast{position:absolute;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;background:#000;color:#fff;border:2px solid #ffe600;border-radius:12px;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.5px;max-width:90%;text-align:center;animation:tin .2s;}

/* SPLASH */
#splash{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;}
#splash .big{font-family:'Bungee';font-size:40px;color:#fff;text-shadow:4px 4px 0 #000,0 0 24px #ff00cc;line-height:1.02;}
#splash .big span{color:#ffe600;}
#splash p{color:#0a0014;font-weight:700;font-size:12px;letter-spacing:1px;margin:14px 0 14px;max-width:300px;line-height:1.5;}
.streakline{max-width:300px;font-family:'Space Mono',monospace;font-weight:700;color:#ffe600;font-size:12px;line-height:1.35;letter-spacing:.5px;background:rgba(0,0,0,.72);border:2px solid #fff;border-radius:12px;padding:8px 14px;margin-bottom:18px;}
.streakline:empty{display:none;} /* no empty pill for first-time players */
#goBtn{font-family:'Bungee';font-size:18px;background:#ffe600;color:#000;border:5px solid #000;border-radius:18px;padding:16px 28px;cursor:pointer;box-shadow:6px 6px 0 #000;}
#goBtn:active{transform:translate(6px,6px);box-shadow:0 0 0 #000;}
#goBtn:disabled{opacity:.6;cursor:default;}
#goBtn:focus-visible{outline:4px solid #fff;outline-offset:3px;}
.loadnote{font-size:9px;letter-spacing:2px;color:#0a0014;font-weight:700;margin-top:14px;min-height:12px;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important;animation-iteration-count:1 !important;}
  #app{animation:none;background-position:0% 50%;}
  .float{display:none;}
}
