:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Fredoka", "Arial Rounded MT Bold", sans-serif;--font-body:"Nunito", "Trebuchet MS", sans-serif;font-family:var(--font-body);color:#2a2118;--ink:#2a2118;--ink-soft:#2a2118b8;--ink-muted:#2a21188f;--panel:#fff9e6eb;--gold:#e8a832;--gold-deep:#c7891a;--shadow-card:0 20px 48px #64300833, 0 2px 8px #64300814;--safe-top:calc(env(safe-area-inset-top,0px) + 14px);--safe-bottom:calc(env(safe-area-inset-bottom,0px) + 18px);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--text-2xs:clamp(.5625rem, .53rem + .16vw, .625rem);--text-xs:clamp(.6875rem, .625rem + .25vw, .75rem);--text-sm:clamp(.75rem, .7rem + .25vw, .875rem);--text-base:clamp(.875rem, .82rem + .28vw, 1rem);--space-xs:clamp(.375rem, .3rem + .375vw, .5rem);--space-sm:clamp(.5rem, .4rem + .5vw, .75rem);--space-md:clamp(.75rem, .6rem + .75vw, 1.125rem);--space-lg:clamp(1rem, .8rem + 1vw, 1.5rem);--space-xl:clamp(1.25rem, 1rem + 1.25vw, 2rem);--font-heading:var(--font-display);--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;background:radial-gradient(at 50% 0,#fffcf0f5,#ffda8c99 34%,#e8944e66 68%,#96482459 100%),linear-gradient(#fff6dc 0%,#f0a64e 100%)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100svh}button{font:inherit;font-family:var(--font-body);cursor:pointer;touch-action:manipulation;border:0;font-weight:600}:focus{outline:none}:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}.action-button:focus-visible{outline-offset:3px;border-radius:var(--radius-lg)}.icon-button:focus-visible{outline-offset:1px;border-radius:16px}.primary-button:focus-visible{outline-offset:3px;outline-color:#5a3010}.app-shell{min-height:100svh;padding:var(--space-sm);place-items:center;display:grid}.game-frame{border-radius:var(--radius-lg);contain:content;background:linear-gradient(#fffbefeb,#f7ba64bd),#fef4d5;width:min(520px,100vw - 24px,56.25svh - 13.5px);height:min(100svh - 24px,177.778vw - 42.6667px);position:relative;overflow:hidden;box-shadow:0 0 0 1px #fff0c880,0 40px 80px #56240c4d,0 12px 24px #56240c26}.game-frame:after{content:"";pointer-events:none;background:radial-gradient(circle at 50% 0,#ffffff52,#0000 36%),linear-gradient(#ffffff1a,#0000 18%);position:absolute;inset:0}.phaser-root,.ui-root,.phaser-root canvas{width:100%;height:100%}.phaser-root canvas{touch-action:none;display:block}.ui-root{pointer-events:none;position:absolute;inset:0}.hud,.controls{position:absolute;inset-inline:0}.overlay{position:absolute;inset:0}.hud[data-visible=false],.controls[data-visible=false],.overlay[data-visible=false]{opacity:0;pointer-events:none;visibility:hidden;transform:translateY(8px)translateZ(0)}.hud[data-visible=true],.controls[data-visible=true],.overlay[data-visible=true]{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)translateZ(0)}.hud{z-index:40;padding:var(--safe-top) var(--space-md) 0;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);pointer-events:none;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);display:flex;top:0}.hud-cluster{gap:var(--space-xs);flex-wrap:wrap;min-width:0;max-width:calc(100% - 124px);display:flex}.hud-chip{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(16px);min-width:88px;transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out);contain:layout paint;background:linear-gradient(#ffffff70 0%,#ffffff0f 50%),#fff8e2e0;border:1px solid #ffffff59;position:relative;box-shadow:0 10px 28px #64341024,inset 0 1px #fff9}.hud-chip span{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;display:block}.hud-chip strong{font-family:var(--font-display);color:var(--ink);margin-top:3px;font-size:clamp(1.125rem,1rem + .625vw,1.375rem);font-weight:700;line-height:1.1;display:block}.hud-chip[data-hot=true]{border-color:#e8a83280;animation:2s ease-in-out infinite goldPulseTransform;transform:translateY(-2px)}.hud-chip[data-hot=true]:after{content:"";border-radius:inherit;pointer-events:none;animation:2s ease-in-out infinite goldPulseGlow;position:absolute;inset:-3px;box-shadow:0 14px 32px #b4641433,0 0 0 3px #e8a83252}.stars-chip strong{color:#c43848;letter-spacing:.06em;text-shadow:0 1px #fff6}.stars-chip[data-critical=true]{border-color:#c838484d;animation:1.2s ease-in-out infinite criticalPulseTransform;position:relative}.stars-chip[data-critical=true]:after{content:"";border-radius:inherit;pointer-events:none;animation:1.2s ease-in-out infinite criticalPulseGlow;position:absolute;inset:-3px;box-shadow:0 0 0 4px #c838482e}.hud-buttons{gap:var(--space-xs);pointer-events:auto;display:flex}.icon-button,.secondary-button{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);color:var(--ink);background:linear-gradient(#fff6 0%,#fff0 48%),#fff8e2e0;border:1px solid #ffffff4d;box-shadow:0 8px 22px #6434101f,inset 0 1px #ffffff80}.icon-button,.secondary-button,.primary-button,.action-button{transition:transform .14s var(--ease-spring), box-shadow .14s var(--ease-out);transform:translateZ(0)}.icon-button:hover,.secondary-button:hover,.primary-button:hover,.action-button:hover{transform:translateY(-2px)translateZ(0);box-shadow:0 16px 32px #6434102e,inset 0 1px #ffffff80}.icon-button:active,.secondary-button:active,.primary-button:active,.action-button:active{transition:transform 50ms var(--ease-spring);transform:translateY(1px)scale(.96)translateZ(0)}@media (hover:none){.icon-button:hover,.secondary-button:hover,.primary-button:hover,.action-button:hover{transform:translateZ(0);box-shadow:0 8px 22px #6434101f,inset 0 1px #ffffff80}}.icon-button{min-height:48px;padding:0 14px;font-weight:600}.primary-button,.secondary-button{min-height:54px;padding:0 24px}.primary-button{border-radius:var(--radius-md);color:#2c1a04;font-family:var(--font-display);font-weight:700;font-size:var(--text-base);background:linear-gradient(#fff8dc59,#fff0 48%),linear-gradient(#f0be3c 0%,#d48a18 100%);border:1px solid #ffdc784d;position:relative;overflow:hidden;box-shadow:0 16px 32px #b4641047,inset 0 1px #ffffff4d,inset 0 -1px #0000000f}.primary-button:after,.action-button:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 20%,#ffffff38 44%,#0000 66%);position:absolute;inset:0;transform:translate(-130%)}.primary-button:hover:after,.action-button:hover:after{transition:transform .56s;transform:translate(130%)}.secondary-button{color:var(--ink);font-weight:600}.controls{z-index:35;gap:var(--space-sm);padding:0 var(--space-md) var(--safe-bottom);pointer-events:none;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);grid-template-columns:1fr 1fr;display:grid;bottom:0}.controls:before{content:"";filter:blur(8px);pointer-events:none;background:linear-gradient(#48200c00,#48200c38);height:128px;position:absolute;inset:auto 0 0}.controls[data-visible=true]{pointer-events:none}.controls[data-visible=true] .action-button{pointer-events:auto}.action-button{border-radius:var(--radius-lg);color:#fff9ef;pointer-events:auto;contain:layout paint;align-items:center;gap:10px;min-height:88px;padding:14px 16px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px #3c140847,inset 0 1px #fff3,inset 0 -2px #00000014}.action-button:before{content:"";pointer-events:none;background:linear-gradient(#ffffff24,#0000);height:50%;position:absolute;top:0;left:0;right:0}.action-icon{background:#ffffff2e;border:1px solid #ffffff38;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:28px;line-height:1;display:flex}.action-text{flex:1;min-width:0}.action-button--danger{background:linear-gradient(#e06050 0%,#b83830 100%);border:1px solid #ff8c7833}.action-button--good{background:linear-gradient(#52b060 0%,#2e7a38 100%);border:1px solid #8cffa026}.action-title{font-family:var(--font-display);text-shadow:0 2px 8px #0003;font-size:clamp(1.15rem,1rem + .65vw,1.4rem);font-weight:700;display:block}.action-hint{font-family:var(--font-body);font-size:var(--text-xs);opacity:.75;margin-top:2px;font-weight:500;display:block}.action-badge{color:#2d6e3a;min-width:24px;height:24px;font-family:var(--font-display);text-align:center;background:#fff;border-radius:12px;padding:0 6px;font-size:14px;font-weight:700;line-height:24px;position:absolute;top:8px;right:10px;box-shadow:0 2px 6px #00000026}.overlay{z-index:50;padding:var(--space-lg) var(--space-md);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;transition:opacity .22s var(--ease-out), transform .22s var(--ease-out);justify-content:center;align-items:center;display:flex;overflow:hidden auto}.overlay::-webkit-scrollbar{display:none}.overlay--title{z-index:45;padding-top:max(46px, var(--safe-top));padding-bottom:max(18px, var(--safe-bottom));align-items:flex-start}.overlay--modal{z-index:60;-webkit-backdrop-filter:blur(12px);background:#2a180c52}.card{border-radius:var(--radius-lg);width:100%;padding:var(--space-xl);background:linear-gradient(180deg, #ffffff7a 0%, #fff0 32%), var(--panel);box-shadow:var(--shadow-card);border:1px solid #fff6}.title-card{text-align:center;max-width:440px;margin:auto;position:relative}.title-card:after{content:"";pointer-events:none;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff4d,#0000 30%),radial-gradient(circle at 50% 6%,#ffe8a84d,#0000 28%);position:absolute;inset:0}.modal-card{text-align:center;max-width:420px;margin:auto}.modal-card>.primary-button{width:100%;margin-top:var(--space-lg)}.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);font-weight:700}h1,h2{margin:var(--space-sm) 0 0;font-family:var(--font-display);color:var(--ink);font-weight:700;line-height:.95}h1{text-shadow:0 3px #c8822833,0 6px 20px #783c0a26;letter-spacing:-.01em;font-size:clamp(50px,12vw,76px)}h2{text-shadow:0 2px 12px #783c0a1a;font-size:clamp(34px,7vw,48px)}.subtitle{margin:var(--space-md) auto 0;max-width:28ch;font-family:var(--font-body);color:var(--ink-soft);font-size:clamp(1rem,.92rem + .4vw,1.125rem);font-weight:500;line-height:1.45}.best-chip{align-items:center;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);color:#6a3e10;font-family:var(--font-display);font-weight:700;font-size:var(--text-base);pointer-events:none;background:linear-gradient(#ffffff52,#fff0 50%),linear-gradient(#ffe8a8,#f8d478);border:1px solid #ffe6a080;display:inline-flex;box-shadow:0 8px 20px #b46e142e,inset 0 1px #ffffff80}.title-actions,.meta-actions,.stack-actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;justify-content:center;display:flex}.meta-actions--compact{margin-top:var(--space-md)}.instruction-strip{margin-top:var(--space-md);font-family:var(--font-body);text-align:center;pointer-events:none;margin-inline:auto}.instruction-heading{font-family:var(--font-heading);font-size:var(--text-sm);color:var(--ink);letter-spacing:.02em;margin-bottom:var(--space-xs);font-weight:700}.instruction-line{font-size:var(--text-sm);color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.6;overflow:hidden}.instruction-line strong{color:var(--ink);font-weight:700}.stat-line{margin-top:var(--space-sm);font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-muted);text-align:center;pointer-events:none;font-weight:600}.stat-line[hidden]{display:none}.app-footer-inline{margin:var(--space-md) 0 0;font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-muted);text-align:center;pointer-events:auto;font-weight:500}.app-footer-inline a{color:var(--ink-soft);font-weight:700;text-decoration:none}.app-footer-inline a:hover{text-decoration:underline}.pause-note,.gameover-summary,.reward-line{margin:var(--space-md) 0 0;font-family:var(--font-body);color:var(--ink-soft);line-height:1.45}.reward-line{font-family:var(--font-display);color:#6a3a10;font-weight:700}.tip-line{margin:var(--space-lg) 0 0;font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-soft);pointer-events:none;font-weight:500;line-height:1.45}.reward-strip{margin-top:var(--space-md);gap:var(--space-sm);pointer-events:none;display:grid}.reward-badge{gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);background:linear-gradient(#ffffff47,#fff0 48%),#fffaebd1;border:1px solid #ffffff40;grid-template-columns:auto 1fr;align-items:start;display:grid;box-shadow:0 10px 28px #6434101a,inset 0 1px #fff6}.reward-badge[data-kind=challenge]{border-color:#e8a83240}.reward-badge__icon{background:linear-gradient(#fff6,#fff0 60%),#fff0c8eb;border-radius:14px;place-items:center;width:40px;height:40px;font-size:22px;display:grid;box-shadow:0 4px 12px #8c50141a,inset 0 1px #ffffff80}.reward-badge strong,.reward-badge span{display:block}.reward-badge strong{font-family:var(--font-display);color:var(--ink);font-weight:600}.reward-badge span{font-family:var(--font-body);color:var(--ink-soft);margin-top:3px;line-height:1.35}.score-showcase{margin-top:var(--space-lg);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);text-align:center;background:linear-gradient(#fff8d2e6,#ffe8a8d9),#fff4cf;box-shadow:0 16px 36px #a05a1029,inset 0 0 0 1px #ffe6a066,inset 0 1px #ffffff80}.score-showcase span{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:#503010b8;font-weight:700;display:block}.score-showcase strong{font-family:var(--font-display);color:#5a3010;text-shadow:0 2px #ffffff47,0 6px 16px #783c0a1f;margin-top:4px;font-size:clamp(48px,10vw,66px);font-weight:700;line-height:.95;display:block}.summary-grid{margin-top:var(--space-lg);gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.summary-grid div{padding:var(--space-md);border-radius:var(--radius-md);background:linear-gradient(#ffffff42,#fff0 48%),#fffaebd1;border:1px solid #ffffff38}.summary-grid span{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;display:block}.summary-grid strong{font-family:var(--font-display);color:var(--ink);margin-top:4px;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;display:block}.gameover-card{background:linear-gradient(#ffffff8f,#ffffff0f 36%),#fff6daf0;border:1px solid #fff6}.gameover-card[data-best=true]{background:linear-gradient(#fff9,#ffffff1a 36%),#fff4d2f5;border-color:#e8b43c66;animation:2.4s ease-in-out infinite celebrateGlow;box-shadow:0 24px 56px #b464103d,0 0 0 1px #ffdc7859,0 0 80px #e8a8321f}.gameover-card [data-focus-primary]{animation:1.8s ease-in-out 1.5s infinite replayPulse}.app-footer{bottom:0;z-index:48;padding:10px 16px max(10px, env(safe-area-inset-bottom,0px));text-align:center;font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-muted);pointer-events:auto;font-weight:500;position:absolute;inset-inline:0}.app-footer a{color:var(--ink-soft);font-weight:700;text-decoration:none}.app-footer a:hover{text-decoration:underline}.app-footer[hidden]{display:none}.shell-live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}.install-button{background:linear-gradient(#fff6 0%,#fff0 48%),#fff8e2eb;border:1px solid #e8a83233}.install-button:hover{border-color:#e8a83259}@media (width<=560px){.game-frame{width:100vw;height:100svh;box-shadow:none;border-radius:0}.app-shell{padding:0}.action-button{border-radius:var(--radius-md);gap:8px;min-height:64px;padding:10px 12px}.action-icon{border-radius:10px;width:42px;height:42px;font-size:22px}.action-badge{min-width:20px;height:20px;padding:0 5px;font-size:12px;line-height:20px;top:6px;right:8px}.hud{padding:var(--safe-top) 10px 0}.hud-cluster{max-width:calc(100% - 96px)}.hud-chip{border-radius:var(--radius-sm);min-width:64px;padding:8px 10px}.hud-chip span{font-size:var(--text-2xs)}.hud-chip strong{font-size:16px}.icon-button{border-radius:var(--radius-sm);min-height:44px;padding:0 10px;font-size:12px}.controls{padding:0 8px var(--safe-bottom);gap:8px}.controls:before{height:88px}.overlay{padding:12px 10px}.overlay--title{padding-top:max(28px, var(--safe-top));padding-bottom:max(12px, var(--safe-bottom))}.title-card{padding:16px 14px}h1{font-size:clamp(40px,11vw,60px)}.primary-button,.secondary-button{min-height:46px;padding:0 18px;font-size:15px}.modal-card{max-width:100%;padding:16px 14px}.score-showcase{padding:14px 16px}.score-showcase strong{font-size:clamp(36px,10vw,52px)}.summary-grid strong{font-size:20px}.stack-actions{grid-template-columns:1fr 1fr;display:grid}.stack-actions .primary-button{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.hud,.controls,.overlay{transition:none}.title-card,.hud-chip[data-hot=true],.hud-chip[data-hot=true]:after,.gameover-card[data-best=true],.stars-chip[data-critical=true],.stars-chip[data-critical=true]:after,.gameover-card [data-focus-primary]{animation:none}.action-button:after,.primary-button:after{display:none}}@media (prefers-contrast:more){:root{--ink:#000;--ink-soft:#000000d9;--ink-muted:#000000b3;--panel:#fffffff5}.card,.hud-chip,.icon-button,.secondary-button{border:2px solid #0006}.primary-button{border:2px solid #2c1a04}.action-button--danger{border:2px solid #6a1a14}.action-button--good{border:2px solid #1a4a20}.stars-chip strong{color:#a01020}:focus-visible{outline-offset:3px;outline:3px solid #000}}@keyframes goldPulseTransform{0%,to{opacity:1;transform:translateY(-2px)scale(1)translateZ(0)}50%{opacity:.92;transform:translateY(-2px)scale(1.02)translateZ(0)}}@keyframes goldPulseGlow{0%,to{opacity:.5}50%{opacity:1}}@keyframes celebrateGlow{0%,to{box-shadow:0 24px 56px #b464103d,0 0 0 1px #ffdc7859,0 0 60px #e8a8321a}50%{box-shadow:0 24px 56px #b4641047,0 0 0 2px #ffdc7873,0 0 100px #e8a8322e}}@keyframes criticalPulseTransform{0%,to{opacity:1;transform:scale(1)translateZ(0)}50%{opacity:.9;transform:scale(1.04)translateZ(0)}}@keyframes criticalPulseGlow{0%,to{opacity:0}50%{opacity:1}}@keyframes replayPulse{0%,to{transform:scale(1)translateZ(0)}50%{transform:scale(1.03)translateZ(0)}}
