@font-face{font-family:Baloo;src:url('../assets/fonts/baloo2.ttf') format('truetype');font-display:swap}
/* Tokens. --bp-rail is the desktop breakpoint: media queries cannot read it, so the same 1182px is written in the @media rule below. */
:root{--forest:#10251c;--surface:#1c3c2b;--green:#35633c;--leaf:#a9c664;--cream:#f4ecd8;--brass:#d5ad55;--muted:#c0cfb7;--line:#d5ad5533;--radius:18px;--ease:cubic-bezier(.16,1,.3,1);
--safe-t:env(safe-area-inset-top);--safe-b:env(safe-area-inset-bottom);--touch-min:44px;--gap-1:4px;--gap-2:8px;--gap-3:16px;--fade-ms:300ms;--glow-ms:800ms;
--ad-w-m:320px;--ad-h-m:100px;--ad-w-d:300px;--ad-h-d:250px;--ad-gap-board:150px;--ad-gap-btn:48px;--bp-md:500px;--bp-rail:1182px;
--roots-forest:#10251c;--roots-surface:#1c3c2b;--roots-green:#35633c;--roots-olive:#788548;--roots-red:#e0664a;--roots-gold:#d5ad55;
color-scheme:dark;font-family:system-ui,-apple-system,sans-serif;color:var(--cream);background:var(--forest);font-synthesis:none;scrollbar-color:#65794b var(--forest)}
*{box-sizing:border-box} [hidden]{display:none!important}
body{margin:0;min-height:100svh;background:var(--forest);isolation:isolate;display:flex;flex-direction:column}
::selection{background:var(--leaf);color:var(--forest)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation;transition:background .18s,border-color .18s,opacity .18s,transform .18s var(--ease);min-height:var(--touch-min)}
button:disabled{cursor:default;color:#acb99f}
button:focus-visible,a:focus-visible{outline:3px solid var(--leaf);outline-offset:3px}
button:active:not(:disabled){transform:translateY(1px)}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button svg{width:22px;height:22px}
h1,h2,h3,p{margin:0} h1,h2,h3{font-family:Baloo,system-ui;line-height:1.08;text-wrap:balance}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#10251c33,#10251c77),url('../assets/art/figma/gameplay_background.png') center/cover}
.topbar{width:min(100%,520px);margin:0 auto;padding:max(4px,var(--safe-t)) 8px 0;display:flex;align-items:center;justify-content:space-between;min-height:64px;flex-wrap:nowrap;position:relative;z-index:20}
.brand-art{width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 3px 4px #0006)}.header-right{display:flex;align-items:center;gap:var(--gap-2)}
.icon-button{width:var(--touch-min);height:var(--touch-min);flex-shrink:0;border:1px solid var(--line);background:#1b3a28cc;border-radius:50%;display:grid;place-items:center;color:var(--cream)}
.icon-button:disabled{opacity:.35}
.locale-switcher{position:relative;display:block;flex:0 0 108px}.locale-toggle{width:108px;height:var(--touch-min);min-height:var(--touch-min);border:1px solid var(--line);border-radius:18px;background:#1b3a28cc;color:var(--cream);display:flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.locale-flag{width:18px;height:12px;display:grid;place-items:center;overflow:hidden;font-size:16px;line-height:12px;flex:0 0 18px}.locale-chevron{width:12px;height:12px;flex:0 0 12px}.locale-toggle[aria-expanded="true"] .locale-chevron{transform:rotate(180deg)}
.locale-menu{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:min(248px,calc(100vw - 16px));padding:8px;display:grid;gap:4px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#27462e,#142e21);box-shadow:0 14px 34px #06140f99}.locale-menu button{position:relative;width:100%;min-height:44px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--cream);padding:8px 36px 8px 12px;text-align:left;font-size:14px}.locale-menu button[aria-checked="true"]{border-color:#a9c66488;background:#35633c}.locale-menu button[aria-checked="true"]::after{content:'✓';position:absolute;right:13px;top:50%;transform:translateY(-50%);font:700 18px/1 system-ui;color:var(--cream)}
@media(hover:hover){.icon-button:hover:enabled{background:var(--green)}button:hover:enabled{border-color:#a9c66488}}
.layout{max-width:520px;margin:0 auto;padding:0 8px max(18px,var(--safe-b));display:block;flex:1;width:100%}
.site-footer{width:min(100%,520px);margin:0 auto;padding:12px 16px max(14px,var(--safe-b));display:flex;justify-content:space-between;gap:var(--gap-2);flex-wrap:wrap;color:var(--muted);font-size:12px}.site-footer a{color:var(--leaf)}
.screen{min-width:0;animation:fade var(--fade-ms) ease both}
.loading{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:14px;background:#10251cf5;padding:16px}
.loading-leaf{object-fit:contain;animation:breath 2.4s ease-in-out infinite}.loading button{padding:10px 16px;border-radius:10px;border:1px solid var(--brass);background:var(--green)}
.fatal{text-align:center;padding:30px}

/* map */
.statusbar{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-3);padding:var(--gap-2) 8px}
.lives,.coins{display:flex;align-items:center;gap:var(--gap-2)}
.status-label,.hud-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.hearts{display:flex;gap:2px}.heart{display:grid}.heart svg{width:26px;height:26px;stroke:var(--roots-red)}.heart.full svg{fill:var(--roots-red)}.heart.empty svg{stroke:#8a6a5e;opacity:.6}
.timer,.coins b,.hud strong,.result-score,.reward,.node b{font-variant-numeric:tabular-nums}
.timer{font:600 16px Baloo;color:var(--muted)}
.coins{font:600 20px Baloo;color:var(--roots-gold)}.coins svg{width:24px;height:24px}
.regionhead{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-2);padding:var(--gap-2) 0}
.regiontitle{display:flex;align-items:center;gap:var(--gap-2);min-width:0}
.emblem{width:56px;height:56px;object-fit:contain;border-radius:50%;background:radial-gradient(#35633c,#1c3c2b);border:1px solid var(--line);padding:4px;filter:drop-shadow(0 3px 4px #0006)}
.regiontitle h2{font-size:26px}.level-tag{font-size:13px;color:var(--muted)}
.pathwrap{height:calc(100svh - 290px);min-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:var(--gap-3) 0 var(--gap-3);border-radius:var(--radius);background:linear-gradient(#0e211966,#0e211999)}
.path{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:18px;position:relative}
.path li{transform:translateX(calc(var(--x) * 70px))}
.node{width:64px;height:64px;min-height:64px;border-radius:50%;border:2px solid #a9c66499;background:linear-gradient(145deg,#365339,#1a3424);display:grid;place-items:center;position:relative;box-shadow:0 4px 10px #051b1366}
.node b{font:600 24px Baloo;color:var(--cream)}
.node-stars{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);display:flex;gap:0;pointer-events:none}.node-stars img{width:20px;height:20px;object-fit:contain}
.node.done{border-color:var(--leaf)}
.node.current{background:var(--leaf);border-color:var(--cream);animation:pulse 2.8s ease-in-out infinite}.node.current b{color:var(--forest)}
.node.future{opacity:.45;background:#152b20}.node .lock{position:absolute;right:-4px;top:-4px;width:18px;height:18px}
.pathwrap.locked .node{filter:brightness(0) opacity(.4)}.pathwrap.locked .emblem{filter:brightness(0)}
.mapfoot{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-3);padding:var(--gap-3) 8px 0}
.baile{flex:1;max-width:210px;font:500 14px Baloo;color:var(--muted);display:grid;gap:var(--gap-1)}
.baile i,.glowbar i,.goal-track i{display:block;height:100%;width:100%;transform:scaleX(var(--r,var(--to,0)));transform-origin:left;background:linear-gradient(90deg,var(--leaf),#e2c67d);border-radius:6px;transition:transform .35s var(--ease)}
.mural-btn{display:flex;align-items:center;gap:var(--gap-2);padding:0 var(--gap-3);border:1px solid var(--line);border-radius:14px;background:#1b3a28cc;font:500 17px Baloo;position:relative}
.dot{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--roots-red)}

/* play */
.play-level{font-size:18px;text-align:center;margin:2px 0;color:var(--cream)}
.hud{display:grid;grid-template-columns:.9fr 1.5fr 1.1fr;gap:2px;background:linear-gradient(125deg,#264632,#193224);border:1px solid #d5ad5555;border-radius:var(--radius);padding:var(--gap-2) 6px;box-shadow:0 5px 18px #05181055;text-align:center;margin:var(--gap-2) 0}
.hud-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;gap:2px}
.hud-cell+.hud-cell{border-left:1px solid var(--line)}
.hud strong{font:600 28px/1.1 Baloo}.hud small{font-size:16px;color:var(--muted);font-weight:500}
.hud-icon{display:grid;place-items:center;height:32px;color:var(--brass)}.hud-icon svg{width:26px;height:26px}.hud-icon img{width:32px;height:32px;object-fit:contain}
.hud-limit strong{color:#f0d28e}.hud-limit.low strong{color:var(--roots-red)}
.piece{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--piece) 35%,#10251c)}.piece img{width:28px;height:28px;object-fit:contain}
.goal-track{height:5px;width:88%;background:#0a201b;border-radius:5px;overflow:hidden}.goal-track i{transform:scaleX(0)}
.hud-stars-row,.modal-stars,.level-stars{display:flex;justify-content:center;align-items:center}.hud-stars-row{gap:2px}.hud-stars-row img{width:20px;height:20px;object-fit:contain}
.stage{width:100%;aspect-ratio:1;position:relative;touch-action:none;margin:0 auto;isolation:isolate}
.stage canvas{display:block;width:100%;height:100%;touch-action:none;position:absolute;inset:0;z-index:1;outline:0}
.board-access{position:absolute;inset:2.6%;z-index:2;display:grid;grid-template-rows:repeat(var(--n,9),1fr);pointer-events:none}
.access-row{display:grid;grid-template-columns:repeat(var(--n,9),1fr);min-height:0}.access-cell{min-height:0;min-width:0;border:0;background:none;opacity:0;pointer-events:none;padding:0;border-radius:8px}
.access-cell:focus-visible{opacity:1;background:#ffffff18;outline:3px solid var(--cream);outline-offset:-3px}
.combo{position:absolute;inset:38% 0 auto;z-index:4;text-align:center;pointer-events:none;font:800 46px/1 Baloo;color:#fff4c2;text-shadow:0 3px 6px #243319,0 1px 18px #25401d;opacity:0}.combo.show{animation:combo 1s both}
.float-score{position:absolute;z-index:5;pointer-events:none;font:800 24px Baloo;color:#ffe8a3;text-shadow:0 2px 4px #1a301d;animation:float-score .9s both}
.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:var(--gap-2)}
.tool{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:44px 24px auto;grid-template-areas:"icon copy" "badge badge" "reason reason";align-items:center;column-gap:7px;row-gap:4px;border:1px solid transparent;border-radius:14px;background:transparent;font-size:13px;color:var(--cream);padding:5px 8px;min-height:82px;min-width:0;text-align:left}
.tool-icon{grid-area:icon;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#365339,#1a3424);border:1px solid #a9c66466;box-shadow:0 4px 10px #051b1355}.tool-icon img{width:38px;height:38px;object-fit:contain}.tool-copy{grid-area:copy;display:grid;gap:2px;min-width:0;line-height:1.1}.tool-copy b{font:700 13px/1.1 Baloo}.tool-effect{font-size:12px;color:var(--muted);line-height:1.15}
.tool[data-state="active"]{background:#a9c66416;border-color:var(--leaf)}.tool[data-state="active"] .tool-icon{background:#41653a;border-color:var(--leaf)}
.tool[data-state="disabled"] .tool-icon{box-shadow:none;background:#193023;border-color:#526647;opacity:.45}
.badge{grid-area:badge;position:static;justify-self:center;display:inline-flex;align-items:center;gap:2px;max-width:100%;white-space:nowrap;font:600 13px/22px Baloo;min-width:24px;height:24px;padding-inline:5px;border:1px solid #b2bc75;border-radius:9px;background:#143521;color:#f5eacb;justify-content:center}
.badge svg{width:13px;height:13px}.tool[data-state="empty"] .badge,.badge.price{color:var(--roots-gold)}
.tool-reason{grid-area:reason;justify-self:center;max-width:100%;padding:1px 4px 2px;color:var(--cream);font-size:12px;line-height:1.15;text-align:center;text-wrap:balance}.tool:has(.tool-reason:not([hidden])){min-height:102px}
#toast{position:fixed;z-index:40;bottom:max(24px,var(--safe-b));left:50%;transform:translate(-50%,14px);opacity:0;pointer-events:none;background:var(--cream);color:var(--forest);padding:13px 20px;border-radius:14px;font-size:14px;max-width:calc(100vw - 30px);box-shadow:0 8px 32px #0006;transition:opacity .2s,transform .2s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}

/* dialogs */
dialog{width:min(430px,calc(100vw - 24px));max-height:calc(100svh - 32px);border:1px solid #d5ad5577;border-radius:26px;background:linear-gradient(145deg,#27462e,#142e21);padding:30px 24px 24px;color:var(--cream);box-shadow:0 24px 80px #0008;overscroll-behavior:contain}
dialog::backdrop{background:#06140fe6}dialog[open]{animation:dialog-in var(--fade-ms) var(--ease)}
dialog.m-lose{margin:auto auto max(12px,var(--safe-b))}dialog.m-lose::backdrop{background:#06140f66}
dialog h2{font-size:30px;text-align:center;margin:6px 0 12px}dialog h3{font-size:18px}
.close-modal{position:absolute;right:8px;top:8px;background:none;border:0;width:var(--touch-min);height:var(--touch-min);color:var(--muted);border-radius:50%;display:grid;place-items:center}
.primary,.secondary,.offer{display:flex;align-items:center;justify-content:center;gap:var(--gap-2);border:1px solid #b4c77488;border-radius:13px;min-height:52px;padding:10px 16px;width:100%;font:600 20px/1.25 Baloo;margin-top:10px}
.primary{background:var(--leaf);color:#17301a;box-shadow:0 5px 14px #06190f55}.secondary{background:#1c3c2b;color:var(--cream);border-color:var(--line);font-size:18px}
.primary:disabled,.secondary:disabled{background:#152b20;color:#acb99f;box-shadow:none;border-color:var(--line)}
.primary svg,.secondary svg{width:22px;height:22px}
.modal-stars{gap:5px;margin:12px 0 16px}.modal-stars img{width:64px;height:64px;object-fit:contain}.modal-stars img:nth-child(2){width:78px;height:78px}
.level-stars{gap:2px}.level-stars img{width:24px;height:24px;object-fit:contain}
.result-score{font:600 44px/1 Baloo;text-align:center;margin:4px 0 8px}.result-label,.stars-copy,.result-help,.best-result,.mural-help,.lives-copy{text-align:center;color:var(--muted);font-size:14px}.result-help,.mural-help{margin:0 0 var(--gap-2)}.best-result{margin:0 0 var(--gap-2)}.lives-copy{margin:var(--gap-1) 0}
.rewards{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--gap-3);margin-bottom:var(--gap-3)}
.reward{display:inline-flex;align-items:center;gap:6px;font:600 22px Baloo;color:var(--roots-gold)}.reward svg{width:24px;height:24px}.reward.seal{color:var(--leaf)}
.gains{list-style:none;margin:0 0 var(--gap-2);padding:0;display:grid;gap:var(--gap-2)}
.gain{display:flex;align-items:center;gap:var(--gap-2)}.gain img{width:44px;height:44px;object-fit:contain}.gain-body{min-width:0;flex:1;display:grid;gap:4px}.gain-name{font-size:13px;color:var(--cream)}.result-herbarium{margin:var(--gap-3) 0}.result-herbarium h3{font-size:18px}.result-herbarium>p{font-size:13px;color:var(--muted);margin:var(--gap-1) 0 var(--gap-2)}
.glowbar{flex:1;height:8px;border-radius:8px;background:#071c13;overflow:hidden;display:block}
.gain .glowbar i{animation:fill 1s var(--ease) both;transition:none}
.goalcard{display:flex;flex-direction:column;align-items:center;gap:var(--gap-1);margin:var(--gap-3) 0;padding:var(--gap-3);border-radius:var(--radius);background:#112b20;border:1px solid var(--line)}
.goalcard>img,.goalcard>svg,.goalcard>.piece{width:56px;height:56px}.goalcard>.piece img{width:46px;height:46px}.goalcard>svg{color:var(--brass)}
.goalcard strong{font:600 44px/1 Baloo}.goalcard span:last-child{font-size:13px;color:var(--muted)}
.boosts{display:flex;gap:var(--gap-2)}
.boost{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--gap-1);padding:var(--gap-2);border:1px solid var(--line);border-radius:14px;background:#1c3c2b;font-size:14px;min-height:88px}
.boost-icon{position:relative;display:grid;place-items:center;width:40px;height:40px;color:var(--brass)}.boost-icon svg{width:30px;height:30px}.boost-icon em{position:absolute;right:-4px;bottom:-2px;font:700 14px Baloo;font-style:normal;color:var(--cream)}
.boost.on{background:#41653a;border-color:var(--leaf)}.boost.poor{opacity:.4}
.boost .badge{top:6px;left:auto;right:6px}
.reason{margin-top:var(--gap-2);text-align:center;font-size:14px;color:var(--roots-red)}
.age-gate-copy{margin:var(--gap-3) auto;text-align:center;max-width:29ch;font-size:17px}
.bigheart{display:grid;place-items:center;margin:var(--gap-3) 0}.bigheart svg{width:112px;height:112px;stroke:var(--roots-red);stroke-width:1.4}.bigheart.empty svg{opacity:.7}
.rewarded{margin-top:var(--gap-2)}
.offer{background:#1c3c2b;color:var(--cream);border-color:var(--line);flex-wrap:wrap;font-size:18px;margin:var(--gap-3) 0 var(--gap-2)}.offer small{flex-basis:100%;text-align:center;font:400 12px system-ui;color:var(--muted)}
dialog.m-lose .hearts{justify-content:center;margin-top:var(--gap-2)}
.mural{list-style:none;margin:var(--gap-3) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.poster{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;background:#122b2077;border:1px solid var(--line);border-radius:16px;text-align:center}
.poster:nth-child(7){grid-column:1/-1}
.poster img{width:100%;height:120px;object-fit:contain;transition:filter var(--glow-ms) ease-in-out}
.poster.off img{filter:brightness(0) opacity(.5)}.poster.partial img{filter:brightness(.12) saturate(.6) opacity(.85)}.poster.lit img{filter:drop-shadow(0 6px 10px #0008);animation:light var(--glow-ms) ease-in-out}
.poster.lit{border-color:var(--leaf)}
.poster .name{font:500 16px Baloo}.poster-count{font-size:12px;color:var(--muted)}.poster .glowbar{width:80%;flex:none}
.collect{margin-top:var(--gap-1);min-height:var(--touch-min);font-size:17px}
.coin-fly{position:fixed;z-index:60;width:24px;height:24px;margin:-12px 0 0 -12px;color:var(--roots-gold);pointer-events:none}.coin-fly svg{width:24px;height:24px}
.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0;font-size:15px}
.setting-row button,.radio-panel>button{background:#35633c;border:1px solid #a9c66488;border-radius:10px;padding:8px 12px;font-size:14px;min-width:86px}
.setting-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px;max-width:24ch}
.radio-panel{display:grid;grid-template-columns:1fr auto;gap:var(--gap-2) 12px;align-items:center;margin-top:var(--gap-2);padding:12px;border:1px solid var(--line);border-radius:14px;background:#102b20aa}
.radio-volume{grid-column:1/-1;display:grid;grid-template-columns:112px 1fr;gap:10px;align-items:center;min-height:var(--touch-min);font-size:12px;color:var(--muted)}.radio-volume input{width:100%;min-height:var(--touch-min);accent-color:var(--leaf)}
.radio-panel p{grid-column:1/-1;font-size:12px;color:#ffe0a1}.radio-panel a{color:var(--leaf);font-size:12px;grid-column:1/-1}

/* ad placeholders: never fixed or sticky; hidden by default, the view unhides */
.ad{display:block;max-width:100%;min-height:var(--ad-h-m);width:var(--ad-w-m);margin:var(--ad-gap-btn) auto;border:1px solid var(--roots-olive);border-radius:12px;background:linear-gradient(145deg,var(--roots-surface),var(--roots-forest))}
.ad-label{display:block;padding:4px 8px;font-size:10px;letter-spacing:.35px;color:var(--muted);background:var(--roots-green)}
@media(min-width:500px){.ad{min-height:var(--ad-h-d);width:var(--ad-w-d)}}
.pathwrap .ad{margin:var(--gap-3) auto}
.ad-rail{display:none}.ad-rail[hidden]{display:none!important}
/* rail: 2nd grid column only when setRail(true) put .has-rail on .layout; >= --bp-rail (1182px) */
@media(min-width:1182px){.layout.has-rail{grid-template-columns:minmax(340px,520px) var(--ad-w-d);gap:24px;max-width:900px;display:grid}.layout.has-rail>.ad-rail:not([hidden]){display:block!important;grid-column:2;grid-row:1;align-self:start}.ad-rail .ad{margin:0}body:has(.layout.has-rail) .topbar{max-width:900px}}
.interstitial{position:fixed;inset:0;background:var(--roots-forest);z-index:10}

@media(min-width:900px){
 .topbar{max-width:900px;padding-inline:40px;min-height:64px}.brand-art{width:56px;height:56px}
 .stage{max-width:520px}.board-access{inset:10%}
 .pathwrap{height:calc(100svh - 330px)}.node{width:72px;height:72px;min-height:72px}
 .mural{grid-template-columns:repeat(4,minmax(0,1fr))}.poster:nth-child(7){grid-column:span 2}
 dialog.m-mural,dialog.m-settings{width:min(820px,calc(100vw - 48px))}.site-footer{max-width:900px;padding-inline:40px}
}
@media(max-width:348px){.topbar{padding-inline:8px}.brand-art{width:48px;height:48px}.header-right{gap:4px}.locale-switcher,.locale-toggle{flex-basis:108px;width:108px}.locale-toggle{gap:5px;padding-inline:6px}.play-level{font-size:16px;margin:1px 0}.hud{margin:2px 0;padding:4px}.hud-cell{min-height:52px}.hud strong{font-size:24px}.hud-icon{height:24px}.hud-icon svg{width:22px;height:22px}.hud-icon img{width:24px;height:24px}.hud-stars-row img{width:16px;height:16px}.tools{margin-top:2px;gap:6px}.tool{min-width:0;min-height:82px;grid-template-rows:44px 22px 14px;row-gap:0;padding:1px 4px;font-size:13px}.tool:has(.tool-reason:not([hidden])){min-height:82px}.tool-icon{width:44px;height:44px;border-radius:14px}.tool-icon img{width:38px;height:38px}.badge{font-size:13px;line-height:20px;height:22px;padding-inline:4px}.tool-reason{padding:0 2px;white-space:nowrap}.boosts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.boost{min-width:0;padding:6px 4px;gap:2px}.boost .badge{position:static;white-space:normal;height:auto;min-height:24px;line-height:1.1;padding:3px 4px;text-align:center}.boost-icon em{right:0;bottom:0}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes breath{50%{opacity:.65;transform:scale(.95)}}
@keyframes pulse{50%{box-shadow:0 0 0 10px #a9c66422,0 0 22px #a9c66455}}
@keyframes fill{from{transform:scaleX(var(--from,0))}to{transform:scaleX(var(--to,1))}}
@keyframes light{from{filter:brightness(.12) opacity(.85)}}
@keyframes dialog-in{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes combo{0%{opacity:0;transform:scale(.65)}20%,70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.06) translateY(-15px)}}
@keyframes float-score{0%{opacity:0;transform:translate(-50%,0) scale(.6)}20%{opacity:1;transform:translate(-50%,-15px) scale(1)}100%{opacity:0;transform:translate(-50%,-70px) scale(.85)}}

@media(max-width:499px){.statusbar{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.lives{flex-wrap:wrap}.timer{flex-basis:100%}.coins{justify-self:end}}
