:root{--bg: #0a0e14;--panel: #131a26;--panel2: #1a2333;--ink: #dce6f2;--dim: #7d8da3;--accent: #38e0c8;--hot: #ff6b3d;--crit: #ff3355;--ok: #4dd07a}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,#16202f 0%,var(--bg) 70%);color:var(--ink);font:15px/1.4 Segoe UI,system-ui,sans-serif;-webkit-user-select:none;user-select:none}#app{max-width:760px;margin:0 auto;padding:16px}.ct{display:flex;flex-direction:column;gap:14px}.ct.melt{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}h1{font-size:22px;margin:0;letter-spacing:.5px}h1:before{content:"❄ ";color:var(--accent)}.modes{display:flex;gap:6px}.mode{background:var(--panel);color:var(--dim);border:1px solid #243047;padding:6px 12px;border-radius:8px;cursor:pointer;font-size:13px}.mode.on{color:var(--bg);background:var(--accent);border-color:var(--accent);font-weight:600}.readouts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:var(--panel);border:1px solid #1f2a3d;border-radius:10px;padding:8px 10px}.stat .lbl{display:block;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}.stat .val{font-size:18px;font-weight:700}.core{background:var(--panel);border:1px solid #1f2a3d;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:14px}.gauge-wrap{display:flex;flex-direction:column;gap:6px}.gauge{position:relative;height:38px;border-radius:10px;overflow:hidden;background:#0c121c;border:1px solid #243047}.gauge-fill{position:absolute;inset:0 auto 0 0;width:0%;transition:width .08s linear,background .2s}.gauge-line{position:absolute;right:0;top:0;bottom:0;width:3px;background:repeating-linear-gradient(180deg,var(--crit) 0 6px,transparent 6px 10px)}.gauge-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:1px;text-shadow:0 1px 3px #000c;z-index:2}.gauge.danger{animation:pulse .6s infinite;box-shadow:0 0 0 1px var(--crit) inset,0 0 16px var(--crit)}@keyframes pulse{0%,to{box-shadow:0 0 0 1px var(--crit) inset,0 0 8px var(--crit)}50%{box-shadow:0 0 0 2px var(--crit) inset,0 0 22px var(--crit)}}.warn{min-height:18px;font-size:13px;font-weight:600;text-align:center}.warn.hot{color:var(--hot)}.warn.crit{color:var(--crit);animation:blink .5s infinite}@keyframes blink{50%{opacity:.35}}.generate{font-size:26px;font-weight:800;letter-spacing:2px;padding:18px;border:none;border-radius:14px;cursor:pointer;color:#06231f;background:linear-gradient(180deg,#5af0d8,#2bc9b1);box-shadow:0 6px #169683,0 8px 18px #0008;display:flex;flex-direction:column;align-items:center;gap:2px;transition:transform .04s,box-shadow .04s}.generate:active{transform:translateY(4px);box-shadow:0 2px #169683,0 4px 10px #0008}.generate .sub{font-size:12px;font-weight:600;letter-spacing:.5px;opacity:.8}.rates{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;color:var(--dim);font-size:13px}.rates b{color:var(--ink)}.upgrades h2{font-size:16px;margin:0 0 8px;color:var(--dim);text-transform:uppercase;letter-spacing:1px}.up-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.up{text-align:left;background:var(--panel2);border:1px solid #243047;border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:4px;transition:border-color .15s,transform .04s}.up:disabled{opacity:.5;cursor:default}.up.afford{border-color:var(--accent)}.up.afford:active{transform:scale(.98)}.up.maxed{opacity:.6;border-color:var(--ok)}.up-main{display:flex;justify-content:space-between;align-items:baseline}.up-name{font-weight:700}.up-own{font-size:12px;color:var(--accent)}.up-desc{font-size:12px;color:var(--dim)}.up-cost{font-size:13px;font-weight:700}.win{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#04070cdd;z-index:10}.win.hidden{display:none}.win-card{background:var(--panel);border:1px solid var(--accent);border-radius:16px;padding:28px 36px;text-align:center;box-shadow:0 0 40px #38e0c855}.win-card h2{margin:0 0 8px;color:var(--accent)}.win-card .score{font-size:22px;font-weight:800;margin-top:12px}
