html,body{height:100%;margin:0;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation}body{background:#fbe54d;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}#root{height:100%}#stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.catphoto{position:fixed;width:clamp(140px,22vw,300px);z-index:9997;border-radius:12px;border:6px solid #fff;box-shadow:0 12px 30px #0000004d;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform:translate(-50%,-50%) rotate(var(--r, 0deg));animation:photopop 5s ease forwards}@keyframes photopop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(var(--r, 0deg))}10%{opacity:1;transform:translate(-50%,-50%) scale(1.05) rotate(var(--r, 0deg))}18%{transform:translate(-50%,-50%) scale(1) rotate(var(--r, 0deg))}85%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--r, 0deg))}to{opacity:0;transform:translate(-50%,-50%) scale(.9) rotate(var(--r, 0deg))}}.dropgif{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(200px,34vw,420px);z-index:9995;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:14px;box-shadow:0 16px 40px #00000059;animation:stairsin 2.6s ease forwards}@keyframes stairsin{0%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(-6deg)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.04) rotate(2deg)}20%{transform:translate(-50%,-50%) scale(1) rotate(0)}80%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) scale(.95) rotate(0)}}.raincat{position:fixed;top:-130px;z-index:9993;border-radius:18%;box-shadow:0 8px 18px #78500040;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform:translate(-50%);animation-name:raincat;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes raincat{0%{transform:translate(-50%) rotate(0);opacity:0}8%{opacity:1}to{transform:translate(-50%,118vh) rotate(var(--r, 360deg));opacity:1}}.ripple{position:fixed;border-radius:50%;border:6px solid #fff;z-index:9990;box-shadow:0 0 18px 6px #fff9,inset 0 0 12px #ffffff73;transform:translate(-50%,-50%) scale(0);pointer-events:none;animation:ripple .62s ease-out forwards}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.particle{position:fixed;width:14px;height:14px;border-radius:50%;background:#fff;z-index:9990;box-shadow:0 0 9px 2px #ffffffb3;pointer-events:none;transform:translate(-50%,-50%);animation:burst .66s ease-out forwards}@keyframes burst{0%{transform:translate(-50%,-50%) translate(0) scale(1.1);opacity:1}to{transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(.35);opacity:0}}.heart{position:fixed;font-size:34px;color:#ff3b67;z-index:9990;pointer-events:none;text-shadow:0 0 10px rgba(255,59,103,.7),0 2px 4px rgba(0,0,0,.25);transform:translate(-50%,-50%);animation:floatup 1s ease-out forwards}@keyframes floatup{0%{transform:translate(-50%,-50%) translate(0) scale(.6);opacity:1}to{transform:translate(-50%,-50%) translate(var(--dx),-120px) scale(1.5);opacity:0}}.sparkle{position:fixed;width:22px;height:22px;z-index:9990;pointer-events:none;background:#fff;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);transform:translate(-50%,-50%) scale(0);filter:drop-shadow(0 0 5px var(--g, #fff)) drop-shadow(0 0 11px var(--g, #fff));animation:spark .8s cubic-bezier(.2,.8,.3,1) forwards}@keyframes spark{0%{opacity:1;transform:translate(-50%,-50%) translate(0) scale(0) rotate(0)}35%{opacity:1;transform:translate(-50%,-50%) translate(calc(var(--dx) * .55),calc(var(--dy) * .55)) scale(1.6) rotate(calc(var(--spin) * .5))}to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(.35) rotate(var(--spin))}}.spark-bloom{position:fixed;width:80px;height:80px;z-index:9989;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fffffff2,#ffd67880 38%,#78c8ff00 72%);transform:translate(-50%,-50%) scale(0);animation:spark-bloom .6s ease-out forwards}@keyframes spark-bloom{0%{opacity:.95;transform:translate(-50%,-50%) scale(.2)}60%{opacity:.75}to{opacity:0;transform:translate(-50%,-50%) scale(2.6)}}#combo{position:fixed;left:50%;top:26%;transform:translate(-50%,-50%);z-index:9998;font-weight:800;font-size:clamp(26px,6vw,56px);color:#fff;text-shadow:0 3px 14px rgba(120,80,0,.55);pointer-events:none;-webkit-user-select:none;user-select:none;animation:combopop .25s ease}@keyframes combopop{0%{transform:translate(-50%,-50%) scale(.5)}60%{transform:translate(-50%,-50%) scale(1.25)}to{transform:translate(-50%,-50%) scale(1)}}#combo.t2{color:#ffd000;font-size:clamp(30px,7vw,64px)}#combo.t3{color:#ff7a00;font-size:clamp(34px,8vw,74px);text-shadow:0 0 18px rgba(255,122,0,.7)}#combo.t4{font-size:clamp(40px,9vw,90px);text-shadow:0 0 24px rgba(255,255,255,.6);animation:combopop .25s ease,hotrainbow 1s linear infinite}@keyframes hotrainbow{0%{color:#ff004d}33%{color:#ffec27}66%{color:#29adff}to{color:#ff004d}}#banner{position:fixed;left:50%;top:14%;transform:translate(-50%);z-index:10000;font-weight:800;font-size:clamp(20px,5vw,40px);color:#fff;background:#00000047;padding:10px 22px;border-radius:14px;pointer-events:none;-webkit-user-select:none;user-select:none;animation:bannerpop .4s ease}@keyframes bannerpop{0%{transform:translate(-50%) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.confetti{position:fixed;top:-20px;width:9px;height:14px;z-index:9997;pointer-events:none;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes confetti-fall{to{transform:translate(var(--dx),105vh) rotate(720deg);opacity:.3}}.flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9994;pointer-events:none;background:radial-gradient(circle at 50% 42%,#ffffffd9,#fff0 70%);animation:flashfade .45s ease-out forwards}@keyframes flashfade{0%{opacity:.9}to{opacity:0}}.zzz{position:fixed;font-size:30px;z-index:9996;pointer-events:none;-webkit-user-select:none;user-select:none;animation:zfloat 2.4s ease-out forwards}@keyframes zfloat{0%{transform:translateY(0) scale(.6);opacity:0}30%{opacity:.9}to{transform:translateY(-80px) scale(1.1);opacity:0}}#pets{position:fixed;left:0;bottom:0;width:100%;height:0;z-index:9992;pointer-events:none;opacity:0;transition:opacity .7s ease}body.sleepy #pets{opacity:1}img.pet{position:absolute;left:0;bottom:6px;height:clamp(48px,7vw,68px);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;image-rendering:pixelated;transform-origin:bottom center;filter:drop-shadow(0 4px 2px rgba(120,80,0,.35));transform:translate(0)}.sleepgif{position:fixed;width:clamp(120px,20vw,260px);z-index:9991;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:14px;box-shadow:0 12px 30px #00000040;transform:translate(-50%,-50%) rotate(var(--r, 0deg));animation:sleepdrift 7s ease forwards}@keyframes sleepdrift{0%{opacity:0;transform:translate(-50%,-40%) scale(.85) rotate(var(--r, 0deg))}18%{opacity:.92;transform:translate(-50%,-50%) scale(1) rotate(var(--r, 0deg))}82%{opacity:.92;transform:translate(-50%,-50%) scale(1) rotate(var(--r, 0deg))}to{opacity:0;transform:translate(-50%,-56%) scale(.95) rotate(var(--r, 0deg))}}body.shake{animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,1px)}}body.rave{animation:ravebg .5s steps(4) infinite}@keyframes ravebg{0%{background:#ff004d}25%{background:#00e756}50%{background:#29adff}75%{background:#ff77a8}to{background:#ffec27}}#hud{position:fixed;top:12px;left:14px;z-index:9999;pointer-events:none;-webkit-user-select:none;user-select:none;background:#ffffff8c;border:1px solid rgba(122,90,0,.22);border-radius:14px;padding:11px 14px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 6px 18px #7850001f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#7a5a00;min-width:150px}.hud-label{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9a7a30}.hud-score{font-size:30px;font-weight:800;line-height:1.02;color:#5a4300;margin:1px 0 3px;font-variant-numeric:tabular-nums}.hud-stats{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 8px}.hud-chip{display:inline-flex;align-items:center;gap:3px;background:#7a5a001a;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;color:#7a5a00;font-variant-numeric:tabular-nums}.hud-chip.fish{background:#ffc83c59}#global{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:9997;pointer-events:none;-webkit-user-select:none;user-select:none;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}#global b{display:block;font-size:27px;font-weight:800;line-height:1;color:#5a4300;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 rgba(255,255,255,.5)}#global span{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9a7a30}.tick{animation:tick .35s ease}@keyframes tick{0%,to{transform:scale(1)}45%{transform:scale(1.3);color:#d35400}}#hint{position:fixed;left:50%;top:72%;transform:translate(-50%,-50%);z-index:9998;color:#ffffffe6;font-weight:700;font-size:clamp(22px,5vw,42px);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;text-shadow:0 2px 10px rgba(120,80,0,.4);transition:opacity .5s ease}#hint.gone{opacity:0}#topright{position:fixed;top:12px;right:14px;z-index:9999;display:flex;flex-wrap:wrap;justify-content:flex-end;max-width:70vw;gap:8px}.ctrl{background:#ffffff8c;color:#7a5a00;text-decoration:none;border:1px solid rgba(122,90,0,.3);border-radius:10px;padding:7px 13px;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ctrl:hover{background:#ffffffd9}.ctrl:disabled{opacity:.45;cursor:not-allowed}.ctrl.open{background:#7a5a00;color:#fbe54d;border-color:#7a5a00}#menu{position:absolute;top:calc(100% + 8px);right:0;z-index:10000;display:flex;flex-direction:column;gap:3px;min-width:184px;background:#fffffff0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(122,90,0,.25);border-radius:12px;padding:6px;box-shadow:0 14px 34px #7850004d}.menu-item{display:block;width:100%;box-sizing:border-box;text-align:left;background:transparent;border:none;border-radius:8px;padding:10px 12px;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:#7a5a00;text-decoration:none;cursor:pointer}.menu-item:hover{background:#7a5a001a}#skins{position:fixed;bottom:14px;left:14px;z-index:9999;display:flex;gap:8px}.skin{background:#ffffff73;color:#7a5a00;border:1px solid rgba(122,90,0,.25);border-radius:999px;padding:6px 13px;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;text-transform:capitalize}.skin:hover{background:#ffffffb3}.skin.active{background:#7a5a00;color:#fbe54d;border-color:#7a5a00}.skin.locked{opacity:.7;border-style:dashed}.skin.locked:hover{opacity:1;background:#ffffffb3}#views{position:fixed;bottom:14px;right:14px;z-index:9999;font-size:12px;font-weight:700;color:#7a5a00;pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px 0 rgba(255,255,255,.4)}@media (max-width: 600px){#hud{padding:8px 11px;min-width:0}.hud-score{font-size:24px}#global b{font-size:18px}#global span{font-size:8px;letter-spacing:.1em}#topright{flex-wrap:wrap;justify-content:flex-end;max-width:60vw;gap:6px}.ctrl{padding:5px 9px;font-size:11px}.skin{padding:5px 10px;font-size:11px}#skins{gap:6px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100001;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}.modal-card{position:relative;background:#fff;color:#5a4300;border-radius:16px;padding:22px 22px 16px;width:min(92vw,480px);max-height:86vh;overflow-y:auto;box-shadow:0 20px 60px #00000073;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.modal-card h2{margin:0 0 8px;font-size:15px;color:#7a5a00;font-weight:700}.modal-close{position:absolute;top:8px;right:12px;border:none;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:#9a7a30}.stats-now{font-size:30px;font-weight:800;color:#d35400;margin-bottom:12px}.stats-now span{font-size:13px;font-weight:600;color:#9a7a30}.chart{width:100%;height:auto;display:block}.chart-lbl{fill:#9a7a30;font-size:11px}.chart-empty{padding:34px 10px;text-align:center;color:#9a7a30;font-size:13px}.modal-card.prompt{width:min(92vw,360px);text-align:center}.prompt-line{color:#9a7a30;font-size:13px;margin:4px 0 16px}.prompt-actions{display:flex;gap:10px;justify-content:center}.prompt-actions button{border:none;border-radius:9px;padding:10px 18px;font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.prompt-buy{background:#7a5a00;color:#fbe54d}.prompt-buy:disabled{background:#e2dccb;color:#a99;cursor:not-allowed}.prompt-cancel{background:#7a5a001f;color:#7a5a00}.shop-bank{font-size:24px;font-weight:800;color:#d35400;margin-bottom:8px}.shop-bank span{font-size:13px;font-weight:600;color:#9a7a30}.shop-sec{margin:16px 0 0;font-size:13px;font-weight:700;color:#7a5a00}.shop-sec small{font-weight:600;color:#9a7a30}.shop-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid rgba(122,90,0,.12)}.shop-row .info{display:flex;flex-direction:column}.shop-row .nm{font-weight:700;color:#7a5a00}.shop-row .nm small{font-weight:600;color:#9a7a30}.shop-row .ds{font-size:12px;color:#9a7a30}.shop-row button{border:none;border-radius:8px;padding:8px 13px;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;background:#7a5a00;color:#fbe54d;white-space:nowrap}.shop-row button:disabled{background:#e2dccb;color:#a99;cursor:not-allowed}.ach-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid rgba(122,90,0,.12)}.ach-row .em{font-size:26px;width:34px;text-align:center;filter:grayscale(1);opacity:.4}.ach-row.got .em{filter:none;opacity:1}.ach-row .info{display:flex;flex-direction:column}.ach-row .nm{font-weight:700;color:#9a7a30}.ach-row.got .nm{color:#7a5a00}.ach-row .ds{font-size:12px;color:#aa9050}#ach-toast{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:100002;background:#7a5a00;color:#fbe54d;font-weight:700;padding:10px 18px;border-radius:12px;box-shadow:0 10px 30px #00000059;pointer-events:none;animation:achpop .35s ease}@keyframes achpop{0%{transform:translate(-50%,-12px);opacity:0}to{transform:translate(-50%);opacity:1}}.name-input{width:100%;box-sizing:border-box;margin:0 0 14px;background:#0e1119;color:#fff;border:1px solid rgba(122,90,0,.35);border-radius:9px;padding:10px 12px;font:600 15px ui-monospace,SFMono-Regular,Menlo,monospace}.name-input:focus{outline:none;border-color:#d35400}.lb-you{font-size:13px;font-weight:700;color:#d35400;margin-bottom:10px}.lb-row{display:flex;align-items:center;gap:12px;padding:8px;border-top:1px solid rgba(122,90,0,.12);border-radius:8px}.lb-row.me{background:#d354001f}.lb-rank{width:28px;text-align:right;font-weight:800;color:#9a7a30;font-variant-numeric:tabular-nums}.lb-name{flex:1;min-width:0;font-weight:700;color:#7a5a00;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-score{font-weight:700;color:#d35400;font-variant-numeric:tabular-nums}.lb-join{display:block;width:100%;margin-top:14px;border:none;border-radius:9px;padding:10px;font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.name-btn{pointer-events:auto;cursor:pointer;background:none;border:none;margin:0;padding:0;text-align:left;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:#7a5a00}.name-btn:hover{color:#d35400;text-decoration:underline}#lb-preview{position:fixed;right:14px;bottom:36px;z-index:9999;width:186px;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff8c;border:1px solid rgba(122,90,0,.3);border-radius:12px;padding:8px 10px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-size:12px;color:#7a5a00}#lb-preview:hover{background:#ffffffd1}.lbp-head{font-weight:800;margin-bottom:5px}.lbp-row{display:flex;gap:7px;align-items:center;padding:1px 0}.lbp-row.me{color:#d35400;font-weight:800}.lbp-rank{width:14px;text-align:right;color:#9a7a30;font-variant-numeric:tabular-nums}.lbp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.lbp-score{font-variant-numeric:tabular-nums;font-weight:700}.lbp-empty{color:#9a7a30}@media (max-width: 600px){#lb-preview{width:150px;bottom:30px;font-size:11px;padding:6px 8px}}.gold-ring{position:fixed;z-index:9991;pointer-events:none;width:40px;height:40px;border-radius:50%;border:5px solid rgba(255,205,0,.95);box-shadow:0 0 22px 6px #ffcd0099;transform:translate(-50%,-50%) scale(0);animation:gold-ring .6s cubic-bezier(.2,.7,.3,1) forwards}@keyframes gold-ring{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(5);opacity:0}}.gold-bloom{position:fixed;z-index:9990;pointer-events:none;border-radius:50%;width:90px;height:90px;background:radial-gradient(circle,#ffe182f2,#ffc30080 40%,#ffc30000 72%);transform:translate(-50%,-50%) scale(.2);animation:gold-bloom .55s ease-out forwards}@keyframes gold-bloom{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}to{transform:translate(-50%,-50%) scale(2.6);opacity:0}}.gold-shard{position:fixed;z-index:9991;pointer-events:none;width:16px;height:16px;background:#ffd23f;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);filter:drop-shadow(0 0 6px rgba(255,205,0,.9));transform:translate(-50%,-50%) scale(0);animation:gold-shard .7s ease-out forwards}@keyframes gold-shard{0%{transform:translate(-50%,-50%) translate(0) scale(0) rotate(0);opacity:1}40%{opacity:1}to{transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(1.6) rotate(var(--spin));opacity:0}}
