@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/jetbrains-mono-800.woff2)format("woff2")}:root{--bg-primary:#0d0d0f;--bg-secondary:#151519;--bg-card:#1a1a20;--bg-tile:#22222a;--bg-tile-hover:#2a2a34;--lava-50:#fff7ed;--lava-100:#ffedd5;--lava-200:#fed7aa;--lava-300:#fdba74;--lava-400:#fb923c;--lava-500:#f97316;--lava-600:#ea580c;--lava-700:#c2410c;--lava-glow:#f9731666;--lava-glow-strong:#f97316b3;--magma-400:#f87171;--magma-500:#ef4444;--magma-600:#dc2626;--magma-glow:#ef44444d;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#8494a7;--text-accent:#fb923c;--border-subtle:#ffffff0f;--border-medium:#ffffff1a;--border-fault:#f9731680;--solved-bg:#22c55e26;--solved-border:#22c55e80;--solved-text:#4ade80;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 32px #0009;--shadow-glow:0 0 20px var(--lava-glow);--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--duration-shift:.35s;--tile-min:34px;--tile-max:56px;--tile-gap:3px;--game-chrome:393px;--game-hpad:46px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;font-size:16px}body{color:var(--text-primary);background-color:var(--bg-primary);background-image:linear-gradient(#0d0d0f8c,#0d0d0f8c),url(/basalt-texture.webp);background-repeat:no-repeat,repeat;background-size:cover,512px 512px;height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.header{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header__title{letter-spacing:.05em;background:linear-gradient(135deg, var(--lava-400), var(--magma-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:700}.header__nav{gap:var(--space-sm);display:flex}.header__btn{border:1px solid var(--border-medium);color:var(--text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);background:0 0;font-family:Inter,sans-serif;font-size:.85rem;font-weight:500}.header__btn:hover{color:var(--text-primary);border-color:var(--lava-500);background:#f9731614}.header__btn--active{color:var(--lava-400);border-color:var(--lava-500);background:#f973161a}.streak-bar{justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-xs) var(--space-lg);background:linear-gradient(180deg, var(--bg-secondary), transparent);flex-shrink:0;display:flex}.streak-stat{align-items:baseline;gap:var(--space-sm);flex-direction:row;display:flex}.streak-stat__value{color:var(--lava-400);font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:800;line-height:1}.streak-stat__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;font-weight:500}.streak-stat--fire .streak-stat__value{background:linear-gradient(135deg, var(--lava-400), var(--magma-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.streak-divider{background:var(--border-medium);width:1px;height:18px}.game-page{min-height:0;padding:var(--space-sm) var(--space-md) var(--space-md);flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;max-width:600px;margin:0 auto;display:flex}.game-info{text-align:center;margin-bottom:var(--space-sm)}.game-info__category{text-transform:uppercase;letter-spacing:.12em;color:var(--lava-400);margin-bottom:2px;font-size:.75rem;font-weight:600}.game-info__date{color:var(--text-muted);font-size:.7rem}.move-counter{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);flex-shrink:0;display:flex}.move-counter__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.move-counter__pips{gap:6px;display:flex}.move-pip{border:2px solid var(--lava-500);width:14px;height:14px;transition:all var(--duration-normal) var(--ease-out-expo);background:0 0;border-radius:50%}.move-pip--used{background:var(--lava-500);box-shadow:0 0 8px var(--lava-glow)}.move-pip--over{background:var(--magma-500);border-color:var(--magma-500);box-shadow:0 0 8px var(--magma-glow)}.move-counter__text{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:600}.grid-container{margin-bottom:var(--space-sm);touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;position:relative}.grid{--tile:clamp(var(--tile-min), min((100dvh - var(--game-chrome)) / var(--grid-rows,8), (100vw - var(--game-hpad)) / var(--grid-cols,8)), var(--tile-max));--cell:calc(var(--tile) + var(--tile-gap));gap:var(--tile-gap);padding:var(--tile-gap);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);display:grid;position:relative}@keyframes gridRumble{0%{transform:translate(0)}15%{transform:translate(1px,-1px)}30%{transform:translate(-1px,1px)}45%{transform:translate(1px,1px)}60%{transform:translate(-1px,-1px)}75%{transform:translate(1px)}to{transform:translate(0)}}.grid--rumble{animation:.3s linear gridRumble}.lava-overlay{z-index:0;pointer-events:none;position:absolute;inset:0}.lava-line__fissure{stroke:#050505;opacity:.85}.lava-line__glow{opacity:.5;transition:opacity .4s var(--ease-in-out)}.lava-line__core{stroke-dasharray:12 10;opacity:.75;transition:opacity .4s var(--ease-in-out);animation:1.6s linear infinite lavaFlow}@keyframes lavaFlow{to{stroke-dashoffset:-22px}}.lava-line__hot{stroke-dasharray:5 39;opacity:.9;animation:1.1s linear infinite lavaFlowHot}@keyframes lavaFlowHot{to{stroke-dashoffset:-44px}}.lava-line--active .lava-line__glow{opacity:1;animation:lavaPulseGlow 1.8s var(--ease-in-out) infinite alternate}@keyframes lavaPulseGlow{0%{opacity:.8}to{opacity:1}}.lava-line--active .lava-line__core{opacity:1;animation-duration:.9s}.lava-line--cool .lava-line__glow{opacity:.35}.lava-line--cool .lava-line__core{opacity:.5;animation-duration:3.2s}.tile{width:var(--tile);height:var(--tile);background-image:linear-gradient(150deg,#2b2b3566 0%,#22222a70 50%,#1b1b2280 100%),url(/basalt-texture-light.webp);background-repeat:no-repeat,repeat;background-size:auto,220px;background-position:0 0, calc(var(--tx,0) * -53px) calc(var(--ty,0) * -71px);border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:calc(var(--tile) * .42);color:var(--text-primary);cursor:default;z-index:1;text-shadow:0 2px 3px #000c;transition:background var(--duration-normal) var(--ease-in-out), box-shadow var(--duration-normal) var(--ease-in-out), color var(--duration-normal) var(--ease-in-out);justify-content:center;align-items:center;font-weight:700;display:flex;position:relative;box-shadow:inset 0 1px #ffffff12,inset 0 -2px #00000073,0 2px #101014,0 3px 5px #00000073}.tile__letter{z-index:2;will-change:transform;display:inline-block;position:relative}@keyframes letterSlide{0%{transform:translate(calc(var(--dx) * var(--cell)), calc(var(--dy) * var(--cell)))}to{transform:translate(0)}}.tile__letter--slide{animation:letterSlide .28s var(--ease-out-expo);z-index:5}@keyframes letterEmerge{0%{opacity:0;transform:scale(.2)translateY(10px)}55%{opacity:1}75%{transform:scale(1.15)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.tile__letter--emerge{animation:letterEmerge .34s var(--ease-out-back)}.tile--fault{cursor:pointer;background:linear-gradient(150deg,#2b2320d1,#1a1412b8)}.tile--fault:hover{box-shadow:inset 0 1px 0 #ffffff12, inset 0 -2px 0 #00000073, 0 2px 0 #101014, 0 0 14px var(--lava-glow)}.tile--selected{color:var(--lava-100);text-shadow:0 0 10px #fb923c99,0 2px 3px #000000e6;box-shadow:inset 0 1px 0 #ffc8961f, inset 0 -2px 0 #00000073, 0 2px 0 #101014, 0 0 16px var(--lava-glow);background:linear-gradient(150deg,#341e1299,#1e100a80)}@keyframes tileClunk{0%{transform:translateY(-3px)}45%{transform:translateY(2px)scale(.97)}70%{transform:translateY(-1px)scale(1.01)}to{transform:translateY(0)scale(1)}}.tile--snap{animation:tileClunk .24s var(--ease-out-back)}.tile--solved{color:var(--solved-text);background:linear-gradient(150deg,#22c55e38,#1665342e);box-shadow:inset 0 1px #86efac26,inset 0 -2px #00000073,0 2px #101014,0 0 12px #22c55e40}@keyframes winPulse{0%,to{box-shadow:0 0 #22c55e00}50%{box-shadow:0 0 20px 4px #22c55e66}}.tile--win{animation:winPulse 1.5s var(--ease-in-out) infinite}.fault-controls{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);flex-shrink:0;min-height:42px;display:flex}.fault-btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--bg-card);border:1px solid var(--border-fault);border-radius:var(--radius-md);color:var(--lava-400);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;display:flex}.fault-btn:hover{border-color:var(--lava-400);box-shadow:var(--shadow-glow);background:#f973161a;transform:scale(1.03)}.fault-btn:active{transform:scale(.97)}.fault-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.fault-btn__arrow{font-size:1.2rem;line-height:1}.fault-selector{gap:var(--space-sm);align-items:center;display:flex}.fault-selector__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.fault-chip{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-medium);color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-in-out);background:0 0;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600}.fault-chip:hover{border-color:var(--lava-500);color:var(--lava-400)}.fault-chip--active{border-color:var(--lava-500);color:var(--lava-400);box-shadow:0 0 8px var(--lava-glow);background:#f9731626}.target-category{margin-bottom:var(--space-sm);flex-shrink:0;justify-content:center;display:flex}.target-words{gap:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;flex-shrink:0;justify-content:center;display:flex}.target-word{padding:3px var(--space-md);border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);transition:color var(--duration-normal) var(--ease-in-out), background-color var(--duration-normal) var(--ease-in-out), border-color var(--duration-normal) var(--ease-in-out);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600}.target-word--category{color:var(--lava-400);border-color:var(--lava-700);padding:var(--space-xs) var(--space-xl);background:#f973160d;border-style:dashed;font-size:.95rem;font-weight:700}.target-word--found{color:var(--solved-text);border-color:var(--solved-border);background:var(--solved-bg)}.win-overlay{z-index:200;animation:overlayFadeIn .5s var(--ease-out-expo);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.win-overlay__backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;position:absolute;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.win-card{background:var(--bg-card);border:1px solid var(--solved-border);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);text-align:center;width:90%;max-width:360px;box-shadow:var(--shadow-lg), 0 0 40px #22c55e33;animation:cardPop .5s var(--ease-out-back);position:relative}@keyframes cardPop{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.win-card__volcano{width:96px;height:auto;margin-bottom:var(--space-md);animation:volcanoGlow 2s var(--ease-in-out) infinite alternate}@keyframes volcanoGlow{0%{filter:drop-shadow(0 6px 14px #f9731659)}to{filter:brightness(1.15)drop-shadow(0 6px 22px #f97316a6)}}.win-card__title{color:var(--solved-text);margin-bottom:var(--space-sm);font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:800}.win-card__subtitle{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.9rem}.win-card__stats{justify-content:center;gap:var(--space-xl);margin-bottom:var(--space-lg);display:flex}.win-card__stat{flex-direction:column;align-items:center;gap:2px;display:flex}.win-card__stat-value{color:var(--lava-400);font-family:JetBrains Mono,monospace;font-size:1.8rem;font-weight:800}.win-card__stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.win-card__btn{padding:var(--space-sm) var(--space-xl);background:linear-gradient(135deg, var(--lava-500), var(--magma-500));border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);border:none;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600}.win-card__btn:hover{box-shadow:0 4px 20px var(--lava-glow);transform:scale(1.03)}.win-card__actions{gap:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}.win-card__btn--share{background:linear-gradient(135deg,#16a34a,#15803d)}.win-card__btn--share:hover{box-shadow:0 4px 20px #22c55e66}.win-card__btn--ghost{border:1px solid var(--border-medium);color:var(--text-secondary);background:0 0}.howto-overlay{z-index:200;animation:overlayFadeIn .3s var(--ease-out-expo);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.howto-card{background:var(--bg-card);border:1px solid var(--border-fault);border-radius:var(--radius-xl);padding:var(--space-xl);width:92%;max-width:420px;max-height:85vh;box-shadow:var(--shadow-lg), 0 0 40px var(--lava-glow);animation:cardPop .4s var(--ease-out-back);position:relative;overflow-y:auto}.howto-card__title{text-align:center;margin-bottom:var(--space-lg);background:linear-gradient(135deg, var(--lava-400), var(--magma-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:800}.howto-step{gap:var(--space-md);margin-bottom:var(--space-md);align-items:flex-start;display:flex}.howto-step__icon{flex-shrink:0;font-size:1.4rem;line-height:1.3}.howto-step__text{color:var(--text-secondary);font-size:.88rem;line-height:1.5}.howto-step__text strong{color:var(--text-primary)}.howto-card .win-card__btn{margin:var(--space-lg) auto 0;display:block}.header__btn--help{width:36px;padding:var(--space-sm) 0;text-align:center;font-weight:700}.calendar-page{min-height:0;padding:var(--space-lg) var(--space-md);flex-direction:column;flex:1;align-items:center;width:100%;max-width:500px;margin:0 auto;display:flex;overflow-y:auto}.calendar-page__title{color:var(--text-primary);margin-bottom:var(--space-lg);font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:700}.calendar-nav{width:100%;margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.calendar-nav__month{color:var(--text-primary);font-size:1rem;font-weight:600}.calendar-nav__btn{border:1px solid var(--border-medium);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;transition:all var(--duration-fast) var(--ease-in-out);background:0 0;justify-content:center;align-items:center;font-size:1rem;display:flex}.calendar-nav__btn:hover{border-color:var(--lava-500);color:var(--lava-400)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;width:100%;display:grid}.calendar-day-header{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) 0;font-size:.7rem;font-weight:600}.calendar-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text-muted);cursor:default;transition:all var(--duration-fast) var(--ease-in-out);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;font-size:.8rem;font-weight:500;display:flex;position:relative}.calendar-day--available{color:var(--text-secondary);cursor:pointer;background:var(--bg-card);border-color:var(--border-subtle)}.calendar-day--available:hover{border-color:var(--lava-500);color:var(--text-primary);background:#f9731614}.calendar-day--today{border-color:var(--lava-500);color:var(--lava-400);font-weight:700}.calendar-day--solved{background:var(--solved-bg);border-color:var(--solved-border)}.calendar-day__volcano{font-size:1.2rem;line-height:1}.calendar-day__number{margin-top:1px;font-size:.65rem}.loading{padding:var(--space-2xl);flex:1;justify-content:center;align-items:center;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.loading__spinner{border:3px solid var(--border-medium);border-top-color:var(--lava-500);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.error-msg{text-align:center;padding:var(--space-2xl);color:var(--text-muted)}.app-notice{text-align:center;color:var(--lava-300);border:1px solid var(--border-fault);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) auto 0;background:#f9731614;max-width:420px;font-size:.8rem}.drag-hint{color:var(--text-muted);text-align:center;margin-bottom:var(--space-xs);opacity:.7;flex-shrink:0;font-size:.72rem}.reset-btn{margin-top:var(--space-md);padding:var(--space-sm) var(--space-lg);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);background:0 0;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600}.reset-btn:hover{border-color:var(--lava-400);color:var(--lava-400)}@media (width<=480px){:root{--game-hpad:40px}.header{padding:var(--space-xs) var(--space-md)}.header__title{font-size:1rem}.streak-bar{gap:var(--space-md);padding:var(--space-xs) var(--space-md)}.win-card{padding:var(--space-xl) var(--space-md)}}@media (prefers-reduced-motion:reduce){.tile__letter--slide,.tile__letter--emerge,.tile--snap,.grid--rumble,.lava-line__core,.lava-line__hot,.lava-line--active .lava-line__glow,.lava-bg:before{animation:none!important}}.lava-bg{pointer-events:none;z-index:-1;position:fixed;inset:0;overflow:hidden}.lava-bg:before{content:"";width:120%;height:100%;animation:lavaPulse 8s var(--ease-in-out) infinite alternate;background:radial-gradient(at bottom,#ea580c0f 0%,#dc262608 30%,#0000 70%);position:absolute;bottom:-50%;left:-10%}@keyframes lavaPulse{0%{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}.game-actions{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;flex-shrink:0;display:flex}.game-actions .reset-btn{min-height:40px;margin-top:0}.hint-btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:40px;padding:var(--space-sm) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-fault);border-radius:var(--radius-md);color:var(--lava-400);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;display:inline-flex}.hint-btn:hover:not(:disabled){border-color:var(--lava-400);box-shadow:var(--shadow-glow);background:#f973161a}.hint-btn:active:not(:disabled){transform:scale(.97)}.hint-btn:disabled{opacity:.5;cursor:not-allowed}.hint-btn__icon{font-size:1rem;line-height:1}.hint-btn__count{color:var(--text-muted);padding-left:var(--space-xs);border-left:1px solid var(--border-medium);font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600}.reset-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.win-card__stats{gap:var(--space-lg);flex-wrap:wrap}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--lava-400);outline-offset:2px}.howto-card__actions{align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-direction:column;display:flex}.howto-card__actions .win-card__btn{margin:0}.tutorial-overlay{z-index:200;padding:var(--space-md);animation:overlayFadeIn .3s var(--ease-out-expo);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tutorial-stage{z-index:1;background:var(--bg-card);border:1px solid var(--border-fault);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-lg) var(--space-xl);width:min(94vw,440px);max-height:92vh;box-shadow:var(--shadow-lg), 0 0 40px var(--lava-glow);animation:cardPop .4s var(--ease-out-back);flex-direction:column;align-items:center;display:flex;position:relative;overflow-y:auto}.tutorial-stage:focus{outline:none}.tutorial-stage__header{width:100%;margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.tutorial-stage__title{letter-spacing:.02em;background:linear-gradient(135deg, var(--lava-400), var(--magma-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:JetBrains Mono,monospace;font-size:1.05rem;font-weight:800}.tutorial-skip{padding:var(--space-xs) var(--space-md);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);background:0 0;font-family:Inter,sans-serif;font-size:.78rem;font-weight:600}.tutorial-skip:hover{border-color:var(--lava-400);color:var(--lava-400)}.move-counter--tut-focus{border-color:var(--border-fault);box-shadow:0 0 0 1px var(--lava-glow), 0 0 18px var(--lava-glow);animation:tutPipPulse 1.4s var(--ease-in-out) infinite alternate}@keyframes tutPipPulse{0%{box-shadow:0 0 0 1px var(--lava-glow), 0 0 10px var(--lava-glow)}to{box-shadow:0 0 0 1px var(--lava-glow-strong), 0 0 24px var(--lava-glow-strong)}}.tutorial-stage__board{position:relative;overflow:visible}.tutorial-hand{pointer-events:none;z-index:20;transform-origin:50% 12%;filter:drop-shadow(0 3px 5px #0009);transition:left var(--tut-glide,.6s) var(--ease-out-expo), top var(--tut-glide,.6s) var(--ease-out-expo), transform .15s var(--ease-out-back), opacity .2s var(--ease-in-out);font-size:2.1rem;line-height:1;position:absolute;top:0;left:0;transform:translate(-50%,12%)}.tutorial-hand--press{transform:translate(-50%,12%)scale(.78)}.tutorial-hand--hidden{opacity:0}.tutorial-tooltip{width:100%;margin-top:var(--space-xs);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-fault);border-radius:var(--radius-md);animation:tutTooltipIn .26s var(--ease-out-expo);box-shadow:inset 0 1px #ffffff0a}@keyframes tutTooltipIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tutorial-tooltip__title{color:var(--lava-400);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-xs);font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.tutorial-tooltip__text{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.tutorial-tooltip__text strong{color:var(--text-primary)}.tutorial-dots{gap:var(--space-sm);margin:var(--space-md) 0 var(--space-xs);display:flex}.tutorial-dot{background:var(--border-medium);width:8px;height:8px;transition:all var(--duration-normal) var(--ease-out-expo);border-radius:50%}.tutorial-dot--active{background:var(--lava-500);box-shadow:0 0 8px var(--lava-glow);transform:scale(1.15)}.tutorial-actions{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}@media (prefers-reduced-motion:reduce){.tutorial-hand{transition:none!important}.move-counter--tut-focus,.tutorial-tooltip{animation:none!important}}.win-card,.howto-card,.tutorial-stage{background-image:linear-gradient(#1a1a20e6,#1a1a20e6),url(/basalt-texture-light.webp);background-repeat:no-repeat,repeat;background-size:cover,320px 320px}.header__btn--mute{width:36px;padding:var(--space-sm) 0;text-align:center;line-height:1}.header__btn--mute[aria-pressed=true]{color:var(--lava-400);border-color:var(--lava-500);background:#f973161a}.win-card__countdown{color:var(--text-muted);margin:calc(-1 * var(--space-sm)) 0 var(--space-lg);font-family:JetBrains Mono,monospace;font-size:.78rem}.win-card__countdown-time{color:var(--text-secondary);font-weight:600}.move-counter{gap:var(--space-sm);padding-left:var(--space-md);padding-right:var(--space-md);flex-wrap:nowrap}.move-counter__label,.move-counter__text{white-space:nowrap}
