:root{--bg:#fff9f0;--surface:#ffffff;--ink:#2c2440;--ink-soft:#6b6480;--brand:#7c5cff;--brand-ink:#ffffff;--accent:#ff8a5c;--ok:#34c77b;--warn:#ffb020;--line:#ece6f5;--radius:18px;--tap:48px;--shadow:0 6px 20px rgba(60,40,120,0.1);--maxw:480px}@media (prefers-color-scheme:dark){:root{--bg:#17131f;--surface:#221b2e;--ink:#f3eeff;--ink-soft:#b3a9c9;--line:#33294a;--shadow:0 6px 20px rgba(0,0,0,0.4)}}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--ink);font-family:Rubik,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh}a{color:inherit;text-decoration:none}.app-shell{max-width:var(--maxw);margin:0 auto;min-height:100dvh;padding:24px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:20px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 22px;border:none;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:17px;font-weight:600;cursor:pointer}.btn--ghost{background:transparent;color:var(--brand);border:2px solid var(--line)}.box-placeholder{display:flex;align-items:center;justify-content:center;border:2px dashed var(--line);border-radius:var(--radius);background:repeating-linear-gradient(45deg,rgba(124,92,255,.05),rgba(124,92,255,.05) 12px,transparent 0,transparent 24px);font-size:13px;text-align:center;min-height:120px;padding:12px}.box-placeholder,.muted{color:var(--ink-soft)}.stack{gap:12px}.game,.stack{display:flex;flex-direction:column}.game{align-items:center;gap:16px;width:100%}.g-prompt{font-size:17px;font-weight:600;min-height:24px}.g-prompt,.g-sub{text-align:center}.g-sub{font-size:14px;color:var(--ink-soft)}.g-board{display:grid;grid-template-columns:repeat(var(--n,3),1fr);grid-gap:8px;gap:8px;width:100%;max-width:360px}.g-cell{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:14px;background:var(--surface);font-size:clamp(18px,6vw,30px);font-weight:700;color:var(--ink);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .08s ease,background .12s ease,border-color .12s ease}.g-cell:active{transform:scale(.94)}.g-cell--found{background:color-mix(in srgb,var(--ok) 18%,var(--surface));border-color:var(--ok);color:var(--ok)}.g-cell--wrong{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-color:var(--accent)}.g-cell--active{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 25%,transparent)}.g-cell--hint{border-color:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 35%,transparent)}.g-cell--selected{background:color-mix(in srgb,var(--brand) 15%,var(--surface));border-color:var(--brand)}.g-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}.g-input{min-height:var(--tap);border:2px solid var(--line);padding:0 14px;font-size:20px;background:var(--surface);color:var(--ink);width:100%;max-width:220px}.g-hint,.g-input{border-radius:12px;text-align:center}.g-hint{font-size:14px;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);padding:8px 12px}.g-chip{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border-radius:12px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));font-size:24px;font-weight:700}.mozglik{display:block;margin:0 auto;max-width:100%;filter:drop-shadow(0 8px 16px rgba(60,40,120,.18))}.mozglik--pop{animation:art-pop .5s cubic-bezier(.34,1.56,.64,1) both}.mozglik--float{animation:art-pop .5s cubic-bezier(.34,1.56,.64,1) both,art-float 3.2s ease-in-out .5s infinite}.art-img{display:block;margin:0 auto;max-width:100%;filter:drop-shadow(0 8px 16px rgba(60,40,120,.16))}.art-img--pop{animation:art-pop .5s cubic-bezier(.34,1.56,.64,1) both}.chest-glow{animation:art-pop .5s cubic-bezier(.34,1.56,.64,1) both,chest-wiggle 1.8s ease-in-out .5s infinite;filter:drop-shadow(0 0 22px color-mix(in srgb,var(--warn) 65%,transparent))}.neuron-coin{display:inline-block;vertical-align:middle;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(120,90,20,.25))}.zone-banner{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;background-size:cover;background-position:50%;box-shadow:var(--shadow);animation:art-fade .5s ease both}.zone-banner__overlay{position:relative;min-height:inherit;display:flex;align-items:flex-end;gap:10px;padding:14px 16px;background:linear-gradient(0deg,rgba(20,12,40,.55),rgba(20,12,40,0) 62%);color:#fff;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.45)}.guard-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 14%,var(--surface)),var(--surface));border:1px solid var(--line)}.guard-card__emoji{font-size:34px;line-height:1;filter:drop-shadow(0 3px 6px rgba(60,40,120,.2));animation:art-float 3.4s ease-in-out infinite}.sfx-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 10px;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:18px;cursor:pointer;transition:transform .08s ease}.sfx-btn:active{transform:scale(.9)}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.confetti__piece{position:absolute;top:-14px;width:10px;height:14px;border-radius:2px;opacity:0;animation:confetti-fall 1.5s ease-in forwards}.scene-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px;border-radius:var(--radius);background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface));border:1px solid var(--line);overflow:hidden}@keyframes art-pop{0%{opacity:0;transform:scale(.6) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes art-fade{0%{opacity:0}to{opacity:1}}@keyframes art-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes chest-wiggle{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-10px) rotate(0deg)}10%{opacity:1}to{opacity:0;transform:translateY(240px) rotate(var(--r,20deg))}}@media (prefers-reduced-motion:reduce){.art-img--pop,.chest-glow,.confetti__piece,.guard-card__emoji,.mozglik--float,.mozglik--pop,.zone-banner{animation:none!important}.confetti__piece{display:none}.dementus-loom{animation:none!important}}.dementus-loom{opacity:.9;animation:art-pop .5s cubic-bezier(.34,1.56,.64,1) both,art-float 4.4s ease-in-out .5s infinite}.test-badge{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:9999;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;color:#fff;background:#e2504a;box-shadow:0 2px 8px rgba(0,0,0,.2);pointer-events:none}.cg-board{display:grid;grid-template-columns:repeat(var(--cg-cols,6),minmax(0,1fr));grid-gap:6px;gap:6px;width:100%;max-width:360px;margin:0 auto}.cg-cell{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;aspect-ratio:1/1;padding:0;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,Roboto Mono,Courier New,monospace;font-size:clamp(20px,5vw,26px);font-weight:700;line-height:1.2;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .08s ease,background .12s ease,border-color .12s ease}.cg-cell:active{transform:scale(.94)}.cg-cell:disabled{cursor:default;opacity:1}.cg-cell--found{background:color-mix(in srgb,var(--ok) 18%,var(--surface));border-color:var(--ok);color:var(--ok)}.cg-cell--found:after{content:"";position:absolute;left:14%;right:14%;top:50%;height:3px;border-radius:2px;background:currentColor;transform:translateY(-50%) rotate(-18deg)}.cg-cell--wrong{background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-color:var(--accent);animation:cg-shake .25s ease}.cg-cell--hint{border-color:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 35%,transparent)}@keyframes cg-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@media (prefers-reduced-motion:reduce){.cg-cell--wrong{animation:none}.cg-cell:active{transform:none}}