:root{--bg: #120a16;--panel: #241428;--panel-2: #180d1c;--ink: #f6ecf7;--ink-dim: #b39ab8;--line: #3d2444;--candy: #ff5d8f;--gold: #ffd23f;--danger: #ff4d4d;--good: #9be36b;--font: "Trebuchet MS", system-ui, sans-serif;--display: Impact, "Haettenschweiler", "Arial Narrow Bold", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0b060d;color:var(--ink);font-family:var(--font);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation;overscroll-behavior:none}body{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}#stage{position:relative;flex:none;width:min(100vw,calc(100dvh * 16 / 9));height:min(100dvh,56.25vw);--s: 1}#game{width:100%;height:100%}#game canvas{display:block}#hud{position:absolute;top:0;left:0;width:1280px;height:720px;transform:scale(var(--s));transform-origin:0 0;pointer-events:none;display:grid;grid-template-rows:auto auto 1fr;padding:14px 18px}#topbar{display:flex;align-items:center;gap:14px;pointer-events:none}.wallet{display:flex;gap:10px}.chip{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;background:#120a16d1;border:2px solid var(--line);border-radius:999px;font-weight:700;font-size:19px;letter-spacing:.5px;text-shadow:0 2px 0 #000}.chip .ico{font-size:18px}#timer-wrap{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:7px 16px;background:#120a16d1;border:2px solid var(--line);border-radius:999px;font-family:var(--display);font-size:26px;letter-spacing:1px}#timer-wrap.urgent{border-color:var(--danger);color:#ffd0d0;animation:pulse .55s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.06)}}.ui-btn{pointer-events:auto;cursor:pointer;font-family:var(--font);font-size:15px;font-weight:700;padding:10px 16px;color:var(--ink);background:#2e1a34;border:2px solid var(--line);border-radius:10px;transition:transform .06s,background .15s,border-color .15s}.ui-btn:hover{background:#3c2244;border-color:#6a3d76}.ui-btn:active{transform:translateY(2px)}.ui-btn.primary{background:#b3255f;border-color:#ff5d8f}.ui-btn.primary:hover{background:#d02b6e}.ui-btn.ghost{background:transparent;color:var(--ink-dim);font-weight:400}#btn-tree{position:relative}#tree-badge{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 5px;display:grid;place-items:center;background:var(--good);color:#12240a;border-radius:999px;font-size:13px;font-weight:700}#diabetes-block{margin-top:12px;width:min(660px,55%);pointer-events:none}.bar-label{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--display);font-size:17px;letter-spacing:2px;color:#ffd9e8;text-shadow:0 2px 0 #000,0 0 10px rgba(255,93,143,.4);margin-bottom:5px}#diabetes-bar{position:relative;height:30px;background:#1d1020;border:3px solid #4a2b52;border-radius:8px;overflow:hidden;box-shadow:inset 0 3px 10px #000000a6}#diabetes-fill{height:100%;width:0%;transition:width .11s linear,background .4s;background:repeating-linear-gradient(115deg,var(--candy) 0 14px,#ff86ac 14px 28px);box-shadow:0 0 14px #ff5d8f8c}#diabetes-fill[data-zone=mid]{background:repeating-linear-gradient(115deg,#ff9e2c 0 14px,#ffc46a 14px 28px);box-shadow:0 0 14px #ff9e2c8c}#diabetes-fill[data-zone=high]{background:repeating-linear-gradient(115deg,#b6ff5c 0 14px,#e4ff9c 14px 28px);box-shadow:0 0 18px #b6ff5ca6;animation:shimmer .5s linear infinite alternate}@keyframes shimmer{0%{filter:brightness(1)}to{filter:brightness(1.25)}}#diabetes-goal{position:absolute;top:0;bottom:0;width:3px;background:var(--gold);box-shadow:0 0 8px var(--gold)}#diabetes-hint{margin-top:6px;font-size:13px;color:var(--ink-dim);text-shadow:0 1px 3px #000}#buffs{align-self:end;justify-self:start;width:270px;pointer-events:none}.buffs-title{font-family:var(--display);font-size:14px;letter-spacing:2px;color:var(--ink-dim);margin-bottom:6px;text-shadow:0 1px 3px #000}#buff-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}#buff-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 10px;font-size:13px;background:#120a16d6;border-left:4px solid var(--c, var(--line));border-radius:6px;animation:slide-in .22s ease-out}@keyframes slide-in{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}#buff-list li.empty{grid-template-columns:1fr;color:#7a6a80;font-style:italic;border-left-color:transparent;background:transparent}.bglyph{font-size:16px}.bname{font-weight:700}.bval{color:var(--c);font-weight:700;white-space:nowrap}#shoes-label{position:absolute;top:118px;right:22px;font-family:var(--display);font-size:14px;letter-spacing:2px;color:#ffcf8a;text-shadow:0 2px 0 #000;pointer-events:none}.overlay{position:fixed;inset:0;z-index:20;background:#09050bdb;backdrop-filter:blur(3px);display:grid;pointer-events:auto}.overlay[hidden]{display:none}#result{place-items:center}#result .panel{width:min(560px,90vw);padding:32px 34px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:3px solid var(--line);border-radius:16px;box-shadow:0 24px 70px #000000b3;text-align:center;animation:pop-in .24s cubic-bezier(.2,1.5,.4,1)}@keyframes pop-in{0%{opacity:0;transform:scale(.9) translateY(14px)}to{opacity:1;transform:none}}#result h1{margin:0 0 12px;font-family:var(--display);font-size:42px;letter-spacing:2px}#result h1[data-kind=win]{color:var(--good);text-shadow:0 0 26px rgba(155,227,107,.5)}#result h1[data-kind=loss]{color:var(--danger);text-shadow:0 0 26px rgba(255,77,77,.45)}#result p{margin:0 0 18px;color:var(--ink-dim);line-height:1.5}#result-rewards{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:7px}#result-rewards li{padding:9px 12px;background:#00000052;border-radius:8px;font-size:14px}.panel-actions{display:flex;gap:10px;justify-content:center}#tree{grid-template-rows:auto 1fr auto}#tree-head{display:flex;align-items:center;gap:18px;padding:16px 22px;border-bottom:2px solid var(--line);background:#120a16e6}#tree-head h2{margin:0;font-family:var(--display);font-size:26px;letter-spacing:2px;color:var(--gold)}.tree-wallet{display:flex;gap:10px}.tree-actions{margin-left:auto;display:flex;gap:10px}#tree-viewport{position:relative;overflow:hidden;cursor:grab;touch-action:none}#tree-viewport.grabbing{cursor:grabbing}#tree-canvas{position:absolute;top:0;left:0;transform-origin:0 0}#tree-links{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}#tree-links .link{fill:none;stroke:#402a48;stroke-width:4;stroke-dasharray:7 7}#tree-links .link.active{stroke:#8f5aa0;stroke-dasharray:none;stroke-width:5;filter:drop-shadow(0 0 5px rgba(143,90,160,.75))}#tree-nodes{position:absolute;top:0;left:0}.branch-head{position:absolute;width:250px;display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:19px;letter-spacing:2px;color:var(--c);text-shadow:0 2px 0 #000}.bicon{width:34px;height:34px;object-fit:contain;image-rendering:pixelated}.bicon.glyph{display:grid;place-items:center;font-size:24px}.node{position:absolute;width:250px;height:104px;display:grid;grid-template-rows:auto 1fr auto;gap:3px;padding:9px 12px;text-align:left;font-family:var(--font);color:var(--ink);background:linear-gradient(180deg,#2a1730,#1c1020);border:3px solid var(--line);border-radius:12px;cursor:pointer;transition:transform .08s,border-color .16s,box-shadow .16s,opacity .16s}.node:disabled{cursor:not-allowed}.node.owned{border-color:var(--c)}.node.affordable{border-color:var(--good);box-shadow:0 0 0 2px #9be36b33,0 0 20px #9be36b47}.node.affordable:hover{transform:translateY(-3px)}.node.locked{opacity:.42;filter:saturate(.35)}.node.maxed{border-color:var(--gold);opacity:.9}.node.bought{animation:bought .34s cubic-bezier(.2,1.6,.4,1)}@keyframes bought{0%{transform:scale(1)}40%{transform:scale(1.07);box-shadow:0 0 34px #ffd23fcc}to{transform:scale(1)}}.n-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.n-name{font-weight:700;font-size:15px;color:var(--c)}.n-lvl{font-size:12px;color:var(--ink-dim);background:#0006;padding:2px 7px;border-radius:999px;white-space:nowrap}.n-blurb{font-size:11.5px;line-height:1.32;color:#cbb6d0}.n-cost{font-size:13px;font-weight:700;color:var(--gold)}.node.maxed .n-cost{color:var(--good)}.node.locked .n-cost{color:#8a7a90;font-weight:400;font-size:11px}#tree-foot{padding:11px 22px;border-top:2px solid var(--line);background:#120a16e6;font-size:12.5px;color:var(--ink-dim);text-align:center}
