:root{--bg:#f3f2ef;--surface:#fff;--surface-2:#f6f6f8;--text:#1d2226;--text-muted:#5e6670;--border:#e3e2df;--grid-line:#c9c7c2;--cell:#fff;--cell-path:#d6f1fa;--line:#00b4d8;--line-glow:#00b4d859;--checkpoint:#2b2b2b;--checkpoint-text:#fff;--wall:#2b2b2b;--accent:#0077b6;--accent-text:#fff;--danger:#cf3a2e;--danger-text:#fff;--success:#1a8f4c;--success-text:#fff;--shadow:0 1px 3px #00000014, 0 4px 16px #0000000f;--easy:#1a8f4c;--medium:#c97a0a;--hard:#c0392b;--ultra:#6b21a8;--rarity-bronze:#a8702f;--rarity-silver:#8a93a0;--rarity-gold:#c8960c;--rarity-platinum:#4aa6b8;--benefit-common:#6f7884;--benefit-uncommon:#1a8f4c;--benefit-rare:#2f6fe0;--benefit-epic:#8b3fd6;--benefit-legendary:#c8960c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#1b1f23;--surface:#25292e;--surface-2:#2d3238;--text:#f2f3f5;--text-muted:#a3acb5;--border:#3a4047;--grid-line:#444b53;--cell:#2b3036;--cell-path:#0c3a4f;--line:#00c8f5;--line-glow:#00c8f566;--checkpoint:#f2f3f5;--checkpoint-text:#1b1f23;--wall:#f2f3f5;--accent:#34c5e8;--accent-text:#1b1f23;--danger:#e0574d;--danger-text:#fff;--success:#2fa86a;--success-text:#fff;--shadow:0 1px 3px #0006, 0 4px 16px #0000004d;--easy:#2fa86a;--medium:#e0992f;--hard:#e05a4b;--ultra:#b07be0;--rarity-bronze:#c08641;--rarity-silver:#aab2bd;--rarity-gold:#e3ad28;--rarity-platinum:#5fc3d6;--benefit-common:#aab2bd;--benefit-uncommon:#2fa86a;--benefit-rare:#5a93f0;--benefit-epic:#b07be0;--benefit-legendary:#e9b53a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}.route-fallback{width:100%;min-height:50dvh;color:var(--text-muted);place-items:center;gap:12px;display:grid}html,body,#root{min-height:100%;margin:0}html,body{width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#root{justify-content:center;width:100%;padding:16px;display:flex}.btn{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:10px 20px;font-weight:600;transition:transform 80ms,background .15s,opacity .15s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--danger{background:var(--danger);color:var(--danger-text)}.btn--success{background:var(--success);color:var(--success-text)}.btn--primary:hover,.btn--danger:hover,.btn--success:hover{filter:brightness(1.06)}.btn--ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn--icon{background:var(--surface-2);border:1px solid var(--border);color:var(--text);place-items:center;width:42px;height:42px;padding:0;font-size:18px;line-height:1;display:grid}.badge{text-transform:capitalize;color:#fff;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.badge--easy{background:var(--easy)}.badge--medium{background:var(--medium)}.badge--hard{background:var(--hard)}.badge--ultra{background:var(--ultra)}.library{width:100%;max-width:520px}.library__header{justify-content:space-between;align-items:center;margin:8px 0 20px;display:flex}.library__title{letter-spacing:-.02em;margin:0;font-size:1.7rem}.brand-logo{width:auto;height:34px;display:block}.brand-logo--dark,:root[data-theme=dark] .brand-logo--light{display:none}:root[data-theme=dark] .brand-logo--dark{display:block}.chips{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;display:grid}@media (width>=440px){.chips{grid-template-columns:repeat(4,1fr)}}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:.9rem;font-weight:600;transition:transform 80ms,border-color .15s,background .15s;display:flex}.chip:active{transform:scale(.96)}.chip__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.chip--easy .chip__dot{background:var(--easy)}.chip--medium .chip__dot{background:var(--medium)}.chip--hard .chip__dot{background:var(--hard)}.chip--ultra .chip__dot{background:var(--ultra)}.chip__count{color:var(--text-muted);background:var(--surface-2);border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:700}.chip--on{color:#fff;border-color:#0000}.chip--easy.chip--on{background:var(--easy)}.chip--medium.chip--on{background:var(--medium)}.chip--hard.chip--on{background:var(--hard)}.chip--ultra.chip--on{background:var(--ultra)}.chip--on .chip__dot{background:#ffffffe6}.chip--on .chip__count{color:#fff;background:#ffffff38}.library__controls{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}@media (width>=480px){.library__controls{flex-direction:row;justify-content:space-between;align-items:center}}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px;display:flex}.segmented__btn{font:inherit;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;flex:1;padding:6px 12px;font-size:.82rem;font-weight:600;transition:background .15s,color .15s}.segmented__btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.sort{align-items:center;gap:6px;min-width:0;display:flex}.sort__label{color:var(--text-muted);flex-shrink:0;font-size:.82rem;font-weight:600}.sort__select{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:999px;min-width:0;max-width:100%;padding:6px 10px;font-size:.82rem;font-weight:600}.library__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.puzzle-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow);color:var(--text);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:transform 80ms,border-color .15s;display:flex}.puzzle-card:hover{border-color:var(--accent)}.puzzle-card:active{transform:scale(.99)}.puzzle-card__main{flex-direction:column;gap:4px;min-width:0;display:flex}.puzzle-card__name{font-size:1.05rem;font-weight:700}.puzzle-card__meta{color:var(--text-muted);align-items:center;gap:4px;font-size:.82rem;display:flex}.puzzle-card__status{color:var(--text-muted);flex-shrink:0;align-items:center;gap:8px;display:flex}.puzzle-card__check{color:var(--easy);font-size:1.1rem;font-weight:800}.puzzle-card__best{font-variant-numeric:tabular-nums;font-weight:600}.puzzle-card__play{color:var(--accent)}.library__empty{color:var(--text-muted);text-align:center;margin-top:40px}.game{flex-direction:column;gap:14px;width:100%;max-width:520px;display:flex}.game__header{align-items:center;gap:12px;display:flex}.game__heading{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.game__heading h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.2rem;overflow:hidden}.game__heading .badge{align-self:flex-start}.game__board{margin-top:54px}.game__board.is-celebrating .board{animation:.7s cubic-bezier(.2,1.1,.4,1) board-celebrate}@keyframes board-celebrate{0%{transform:scale(1);box-shadow:0 0 #0000}45%{box-shadow:0 0 0 6px var(--line-glow), 0 10px 36px var(--line-glow);transform:scale(1.05)}to{transform:scale(1);box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.game__board.is-celebrating .board{animation:none}}.timer{font-variant-numeric:tabular-nums;color:var(--text);align-items:center;gap:6px;font-weight:700;display:flex}.timer__icon{width:20px;height:20px;stroke:var(--text-muted);fill:none}.timer__value{font-size:1.05rem}.controls{justify-content:center;gap:10px;display:flex}.board{background:var(--grid-line);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:12px;width:100%;max-width:min(92vw,460px);margin:0 auto;position:relative;overflow:hidden}.board__grid{grid-template-columns:repeat(var(--cols), 1fr);grid-template-rows:repeat(var(--rows), 1fr);gap:1px;width:100%;height:100%;display:grid}.cell{background:var(--cell);transition:background 60ms}.cell--path{background:var(--cell-path)}.board__overlay{pointer-events:none;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.board__line{stroke:var(--line)}.board__wall{stroke:var(--wall);stroke-width:.12px}.board__checkpoint circle{fill:var(--checkpoint)}.board__checkpoint text{fill:var(--checkpoint-text);font-size:.42px;font-weight:700}.win{z-index:10;background:#00000073;place-items:center;padding:20px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.win__card{background:var(--surface);text-align:center;box-shadow:var(--shadow);border-radius:20px;width:100%;max-width:340px;padding:32px 28px;animation:.3s cubic-bezier(.2,1.2,.4,1) pop-in;position:relative}.win__title{margin:0 0 8px;font-size:1.6rem}.win__time{font-variant-numeric:tabular-nums;color:var(--accent);margin:0;font-size:2.6rem;font-weight:800}.win__best{color:var(--text-muted);margin:4px 0 20px}.win__best--new{color:var(--medium);font-weight:700}.win__actions{flex-direction:column;gap:10px;display:flex}.win__confetti{pointer-events:none;border-radius:20px;position:absolute;inset:0;overflow:hidden}.win__confetti span{top:-10px;left:calc(var(--i) * 7%);background:hsl(calc(var(--i) * 45), 80%, 60%);width:8px;height:8px;animation:confetti 1.1s ease-in calc(var(--i) * 60ms) forwards;border-radius:2px;position:absolute}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}}@keyframes confetti{to{opacity:0;transform:translateY(360px)rotate(540deg)}}.home{width:100%;max-width:520px}.home__header{justify-content:space-between;align-items:center;margin:8px 0 12px;display:flex}.home__title{letter-spacing:-.02em;margin:0;font-size:1.7rem}.home__tagline{color:var(--text-muted);margin:0 0 8px}.home__modes{flex-direction:column;gap:14px;margin-top:20px;display:flex}.home__mode{text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:6px;padding:22px 20px;transition:transform 80ms,border-color .15s;display:flex}.home__mode:hover{border-color:var(--accent)}.home__mode:active{transform:scale(.99)}.home__mode-icon{color:var(--accent);font-size:1.6rem;line-height:1}.home__mode-name{font-size:1.25rem;font-weight:800}.home__mode-desc{color:var(--text-muted);font-size:.9rem}.home__mode-badge{color:var(--accent-text);background:var(--accent);border-radius:999px;align-self:flex-start;margin-top:6px;padding:3px 10px;font-size:.74rem;font-weight:700}.home__mode--story{background:linear-gradient(160deg, var(--surface), var(--surface-2))}.story-avatar{color:#fff;box-shadow:var(--shadow);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden}.story-avatar--lg{aspect-ratio:1;border:1px solid var(--border);border-radius:22px;width:clamp(220px,68vw,320px);font-size:3.2rem}.story-avatar--md{width:64px;height:64px;font-size:1.4rem}.story-avatar--sm{width:40px;height:40px;font-size:.9rem}.story-avatar__initials{letter-spacing:.02em;text-shadow:0 1px 4px #00000040;font-weight:800}.story-avatar__img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}.story-dialogue{border-radius:20px;flex-direction:column;justify-content:flex-end;gap:16px;width:100%;max-width:560px;min-height:calc(100dvh - 32px);padding:16px;display:flex;position:relative;overflow:hidden}.story-dialogue:before{content:"";z-index:0;opacity:.5;background:radial-gradient(120% 80% at 50% 18%, var(--story-tint,var(--accent)), transparent 70%);position:absolute;inset:0}.story-dialogue--intro{--story-tint:var(--accent)}.story-dialogue--win{--story-tint:var(--easy)}.story-dialogue--lose,.story-dialogue--retry{--story-tint:var(--hard)}.story-dialogue--final{--story-tint:var(--medium)}.story-dialogue__stage{z-index:1;flex:1;place-items:center;padding:24px 0;display:grid;position:relative}.story-dialogue__stage .story-avatar{animation:.35s cubic-bezier(.2,1.2,.4,1) pop-in}.story-dialogue__box{z-index:1;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:20px;animation:.3s slide-up;position:relative}.story-dialogue__nameplate{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.story-dialogue__name{font-size:1.2rem;font-weight:800}.story-dialogue__role{color:var(--text-muted);font-size:.8rem;font-weight:600}.story-dialogue__text{margin:0 0 18px;font-size:1.02rem;line-height:1.5}.story-dialogue__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}}.story-combat{flex-direction:column;gap:12px;width:100%;max-width:520px;display:flex}.story-combat__hud{align-items:center;gap:12px;display:flex}.story-combat__meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.story-combat__meeting{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:800;overflow:hidden}.story-combat__role{color:var(--text-muted);font-size:.8rem;font-weight:600}.story-combat__timer{font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:4px 12px;font-size:1.4rem;font-weight:800}.story-combat__timer.is-warning{color:#fff;background:var(--hard);border-color:#0000;animation:1s ease-in-out infinite timer-pulse}.story-combat__subhud{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:.85rem;display:flex}.story-combat .board{margin-top:8px}.story-combat__character{color:var(--text);font-weight:700}.story-combat__lives,.story-map__lives{gap:2px;font-size:1.05rem;display:inline-flex}.story-heart{color:var(--hard)}.story-heart.is-empty{color:var(--border)}.story-combat__status{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}@keyframes timer-pulse{50%{opacity:.65}}.story-confirm{z-index:10;background:#00000073;place-items:center;padding:20px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.story-confirm__card{background:var(--surface);text-align:center;box-shadow:var(--shadow);border-radius:20px;width:100%;max-width:340px;padding:28px 24px;animation:.3s cubic-bezier(.2,1.2,.4,1) pop-in}.story-confirm__title{margin:0 0 8px;font-size:1.3rem}.story-confirm__text{color:var(--text-muted);margin:0 0 20px}.story-confirm__actions{justify-content:center;gap:10px;display:flex}.story-map{width:100%;max-width:560px}.story-map__header{align-items:center;gap:12px;margin:8px 0 12px;display:flex}.story-map__title{flex:1;margin:0;font-size:1.5rem}.story-map__difficulty{background:var(--accent)}.story-map__summary{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.story-map__meetings{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.story-meeting{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:14px 16px}.story-meeting--locked{opacity:.55}.story-meeting--current{border-color:var(--accent)}.story-meeting--teaser{filter:blur(3px);opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none;border-style:dashed;min-height:96px;position:relative;-webkit-mask-image:linear-gradient(#000 38%,#0000 100%);mask-image:linear-gradient(#000 38%,#0000 100%)}.story-meeting__head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.story-meeting__order{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.story-meeting__name{flex:1;margin:0;font-size:1.05rem}.story-meeting__status{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.story-meeting__status--current{color:var(--accent-text);background:var(--accent);border-color:#0000}.story-meeting__status--completed{color:#fff;background:var(--easy);border-color:#0000}.story-meeting__stages{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.story-stage{border-radius:10px;align-items:center;gap:10px;padding:6px 8px;font-size:.9rem;display:flex}.story-stage.is-current{background:var(--surface-2);font-weight:700}.story-stage.is-done{color:var(--text-muted)}.story-stage__index{font-variant-numeric:tabular-nums;color:var(--text-muted);min-width:28px;font-weight:700}.story-stage__role{flex:1;min-width:0}.story-stage__mark{color:var(--accent);font-weight:800}.story-stage.is-done .story-stage__mark{color:var(--easy)}.story-stage.is-locked .story-stage__role{filter:blur(5px);opacity:.75;color:var(--text-muted);-webkit-user-select:none;user-select:none;pointer-events:none}.story-stage.is-locked .story-stage__index{color:var(--text-muted);opacity:.6}.story-map__footer{justify-content:center;margin:18px 0 8px;display:flex}.story-screen{place-items:center;width:100%;max-width:560px;min-height:calc(100dvh - 32px);display:grid}.story-screen__card{background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);text-align:center;border-radius:22px;padding:32px 24px;animation:.3s cubic-bezier(.2,1.2,.4,1) pop-in}.story-screen__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px;font-size:.74rem;font-weight:700}.story-screen__title{letter-spacing:-.01em;margin:0 0 12px;font-size:2rem;line-height:1.1}.story-screen__title--sm{font-size:1.5rem}.story-gameover .story-screen__title{color:var(--hard)}.story-final .story-screen__title{color:var(--medium)}.story-screen__subtitle{color:var(--text-muted);margin:0 0 22px;line-height:1.5}.story-screen__actions{flex-direction:column;gap:10px;display:flex}.story-gameover__meeting{margin:0 0 20px;font-weight:700}.story-difficulty__list{flex-direction:column;gap:10px;margin:0 0 20px;padding:0;list-style:none;display:flex}.story-difficulty__option{text-align:left;width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;padding:16px;transition:transform 80ms,border-color .15s;display:flex}.story-difficulty__option:hover{border-color:var(--accent)}.story-difficulty__option:active{transform:scale(.99)}.story-difficulty__label{font-size:1.1rem;font-weight:800}.story-difficulty__detail{color:var(--text-muted);font-size:.85rem}.story-final__card{max-width:480px}.story-final__stats{text-align:left;flex-direction:column;gap:6px;margin:0 0 18px;display:flex}.story-final__stat{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 4px;display:flex}.story-final__stat dt{color:var(--text-muted);font-size:.9rem}.story-final__stat dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.story-final__review{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:4px;margin-bottom:22px;padding:16px;display:flex}.story-final__review-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.74rem;font-weight:700}.story-final__review-value{color:var(--accent);font-size:1.3rem;font-weight:800}.story-final__share{flex-direction:column;align-items:center;gap:10px;margin-top:18px;display:flex}.story-final__share-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.74rem;font-weight:700}.rarity-badge{letter-spacing:.03em;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--rarity) 55%, transparent);color:var(--rarity);background:color-mix(in srgb, var(--rarity) 14%, transparent);border-radius:999px;align-items:center;gap:5px;padding:2px 9px 2px 7px;font-size:.66rem;font-weight:700;display:inline-flex}.rarity-badge__glyph{font-size:.8em;line-height:1}.rarity-badge--bronze{--rarity:var(--rarity-bronze)}.rarity-badge--silver{--rarity:var(--rarity-silver)}.rarity-badge--gold{--rarity:var(--rarity-gold)}.rarity-badge--platinum{--rarity:var(--rarity-platinum)}.home__achievements{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:14px;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;transition:transform 80ms,background .15s;display:flex}.home__achievements:hover{background:var(--surface-2)}.home__achievements:active{transform:scale(.99)}.home__achievements-icon{font-size:1.2rem}.home__achievements-text{text-align:left;flex:1;font-weight:700}.home__achievements-badge{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.8rem;font-weight:700}.share-sheet{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.share-sheet__native{width:100%;max-width:260px}.share-sheet__buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.share-sheet__net{padding:8px 14px;font-size:.85rem}.ach-toasts{z-index:20;pointer-events:none;flex-direction:column;gap:10px;max-width:min(90vw,340px);display:flex;position:fixed;bottom:16px;left:16px}.ach-toast{pointer-events:auto;text-align:left;border:1px solid var(--border);border-left:4px solid var(--rarity,var(--accent));background:var(--surface);color:var(--text);box-shadow:var(--shadow);cursor:pointer;border-radius:12px;flex-direction:column;gap:3px;padding:12px 14px;animation:.32s cubic-bezier(.2,1.1,.4,1) ach-toast-in;display:flex}.ach-toast--bronze{--rarity:var(--rarity-bronze)}.ach-toast--silver{--rarity:var(--rarity-silver)}.ach-toast--gold{--rarity:var(--rarity-gold)}.ach-toast--platinum{--rarity:var(--rarity-platinum)}.ach-toast__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--rarity,var(--accent));font-size:.64rem;font-weight:800}.ach-toast__name{font-size:.98rem;font-weight:800}.ach-toast__desc{color:var(--text-muted);font-size:.82rem}.ach-toast .rarity-badge{align-self:flex-start;margin-top:4px}@keyframes ach-toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.ach-modal{z-index:30}.ach-modal__card{text-align:center;flex-direction:column;gap:10px;max-width:420px;display:flex}.ach-modal__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.72rem;font-weight:800}.ach-modal__title{margin:0;font-size:1.3rem}.ach-modal__text{color:var(--text-muted);margin:0;font-size:.92rem;line-height:1.45}.ach-modal__close{margin-top:4px}.achievements{flex-direction:column;gap:18px;width:100%;max-width:640px;display:flex}.achievements__header{align-items:center;gap:12px;display:flex}.achievements__title{margin:0;font-size:1.5rem}.achievements__summary{border:1px solid var(--border);background:var(--surface);border-radius:16px;flex-wrap:wrap;align-items:center;gap:18px;padding:16px;display:flex}.achievements__count{flex-direction:column;display:flex}.achievements__count-num{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.achievements__count-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.achievements__pct{flex-direction:column;flex:1;gap:6px;min-width:160px;display:flex}.achievements__bar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.achievements__bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.achievements__pct-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.82rem}.achievements__group{flex-direction:column;gap:10px;display:flex}.achievements__group-title{margin:0;font-size:1.05rem}.achievements__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.achievement{border:1px solid var(--border);border-left:4px solid var(--rarity,var(--border));background:var(--surface);border-radius:14px;flex-direction:column;gap:7px;padding:14px;display:flex}.achievement--bronze{--rarity:var(--rarity-bronze)}.achievement--silver{--rarity:var(--rarity-silver)}.achievement--gold{--rarity:var(--rarity-gold)}.achievement--platinum{--rarity:var(--rarity-platinum)}.achievement.is-locked{opacity:.62}.achievement__top{align-items:center;gap:8px;display:flex}.achievement__state{font-size:.9rem}.achievement__name{flex:1;min-width:0;font-weight:800}.achievement__desc{color:var(--text-muted);margin:0;font-size:.85rem}.achievement__progress{align-items:center;gap:8px;display:flex}.achievement__bar{background:var(--surface-2);border-radius:999px;flex:1;height:7px;overflow:hidden}.achievement__bar-fill{background:var(--rarity,var(--accent));border-radius:999px;height:100%;transition:width .3s}.achievement__progress-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.76rem}.achievement__date{color:var(--text-muted);font-size:.74rem}.achievements__dev{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:8px;display:flex}.home__mode--sprint{background:linear-gradient(160deg, var(--surface), var(--surface-2))}.sprint-game{flex-direction:column;gap:12px;width:100%;max-width:520px;display:flex;position:relative}.sprint-game__hud{align-items:center;gap:12px;display:flex}.sprint-game__timer{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 12px;display:flex}.sprint-game__timer.is-warning{background:var(--hard);color:#fff;border-color:#0000;animation:1s ease-in-out infinite timer-pulse}.sprint-game__timer-label{letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-size:.6rem;font-weight:700}.sprint-game__timer-value{font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:800;line-height:1}.sprint-game__score{flex-direction:column;align-items:flex-end;gap:2px;min-width:72px;display:flex}.sprint-game__score-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.6rem;font-weight:700}.sprint-game__score-value{font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.3rem;font-weight:800}.sprint-game__stats{gap:8px;display:flex}.sprint-stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 6px;display:flex}.sprint-stat.is-hot{border-color:var(--medium)}.sprint-stat__value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800}.sprint-stat__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;font-weight:700}.sprint-board{flex-direction:column;gap:12px;display:flex}.sprint-board .board{margin-top:4px}.sprint-game__actions{justify-content:center;display:flex}.sprint-game__skip{font-size:.85rem}.sprint-game__flash{z-index:12;background:var(--accent);color:var(--accent-text);letter-spacing:.02em;box-shadow:var(--shadow);pointer-events:none;border-radius:999px;padding:10px 18px;font-size:.9rem;font-weight:800;animation:.25s sprint-flash;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes sprint-flash{0%{opacity:0;transform:translate(-50%,10px)}}@media (prefers-reduced-motion:reduce){.sprint-game__flash{animation:none}}.home__mode--survival{background:linear-gradient(160deg, var(--surface), var(--surface-2))}.home__mode--survival .home__mode-icon{filter:saturate(1.1)}.survival-game .sprint-game__timer{position:relative;overflow:visible}.survival-game__time-bonus{color:var(--easy);font-variant-numeric:tabular-nums;text-shadow:0 1px 6px var(--bg);pointer-events:none;font-size:1rem;font-weight:800;animation:1s ease-out forwards survival-time-bonus;position:absolute;top:-10px;right:10px}.survival-game .sprint-game__timer.is-warning .survival-game__time-bonus{color:#fff}@keyframes survival-time-bonus{0%{opacity:0;transform:translateY(6px)scale(.85)}20%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:0;transform:translateY(-22px)scale(1)}}@media (prefers-reduced-motion:reduce){.survival-game__time-bonus{opacity:0;animation:none}}.sprint-select__record{color:var(--accent);font-variant-numeric:tabular-nums;margin-top:6px;font-size:.74rem;font-weight:700}.sprint-results__record{color:var(--medium);margin:0 0 16px;font-weight:800}.story-final__stat.is-record dd{color:var(--medium)}.home__benefits{margin-top:10px}.home__benefits .home__achievements-icon{color:var(--benefit-legendary)}.benefit-rarity--common{--rarity:var(--benefit-common)}.benefit-rarity--uncommon{--rarity:var(--benefit-uncommon)}.benefit-rarity--rare{--rarity:var(--benefit-rare)}.benefit-rarity--epic{--rarity:var(--benefit-epic)}.benefit-rarity--legendary{--rarity:var(--benefit-legendary)}.benefits__subtitle{color:var(--text-muted);margin:-6px 0 0}.benefits__summary{align-items:flex-start}.benefits__memo{flex-direction:column;flex:1;gap:4px;min-width:180px;display:flex}.benefits__memo-line{margin:0;font-size:.85rem;font-weight:700}.benefits__memo-line--muted{color:var(--text-muted);font-weight:400}.benefits__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.benefit-card{border:1px solid var(--border);border-left:4px solid var(--rarity,var(--border));background:var(--surface);width:100%;height:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;transition:transform 80ms,border-color .15s;display:flex}.benefit-card:hover{border-color:var(--rarity,var(--accent))}.benefit-card:active{transform:scale(.98)}.benefit-card.is-locked{opacity:.7}.benefit-card__media{align-self:center;position:relative}.benefit-image--locked{filter:grayscale(.95)brightness(.78)blur(8px)}.benefit-card__lock{background:#00000052;border-radius:16px;place-items:center;font-size:1.8rem;display:grid;position:absolute;inset:0}.benefit-card__name{font-size:1rem;font-weight:800}.benefit-card.is-locked .benefit-card__name{filter:blur(5px);-webkit-user-select:none;user-select:none}.benefit-card__status{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700}.benefit-card__status.is-unlocked{color:var(--benefit-uncommon)}.benefit-card__desc{color:var(--text-muted);margin:0;font-size:.84rem}.benefit-card--legendary{border:1px solid var(--benefit-legendary);background:linear-gradient(160deg, var(--surface), color-mix(in srgb, var(--benefit-legendary) 12%, var(--surface)));border-left-width:4px}.benefit-image{color:#fff;box-shadow:var(--shadow);border-radius:14px;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden}.benefit-image--md{width:96px;height:96px}.benefit-image--lg{width:150px;height:150px;margin:0 auto}.benefit-image__emoji{font-size:2.4rem;line-height:1}.benefit-image--lg .benefit-image__emoji{font-size:3.6rem}.benefit-image__img{object-fit:cover;filter:drop-shadow(0 3px 6px #00000047);width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}@keyframes benefit-dance{0%,to{transform:rotate(-5deg)scale(1)}50%{transform:rotate(5deg)scale(1.08)}}.benefit-modal__card .benefit-image--lg:not(.benefit-image--locked){transform-origin:50%;animation:1.8s ease-in-out infinite benefit-dance}@media (prefers-reduced-motion:reduce){.benefit-modal__card .benefit-image--lg:not(.benefit-image--locked){animation:none}}.benefit-image--interactive{cursor:pointer}@keyframes benefit-pop-jelly{0%{transform:scale(1)}25%{transform:scale(1.28,.72)}45%{transform:scale(.82,1.18)}62%{transform:scale(1.12,.88)}78%{transform:scale(.96,1.04)}to{transform:scale(1)}}@keyframes benefit-pop-spin{0%{transform:rotate(0)scale(1)}55%{transform:rotate(210deg)scale(1.22)}to{transform:rotate(360deg)scale(1)}}@keyframes benefit-pop-tada{0%{transform:scale(1)rotate(0)}10%,20%{transform:scale(.9)rotate(-8deg)}30%,50%,70%,90%{transform:scale(1.18)rotate(8deg)}40%,60%,80%{transform:scale(1.18)rotate(-8deg)}to{transform:scale(1)rotate(0)}}.benefit-modal__card{border-top:4px solid var(--rarity,var(--accent));flex-direction:column;align-items:center;gap:10px;max-width:420px;display:flex}.benefit-modal__card--legendary{border:2px solid var(--benefit-legendary);box-shadow:0 0 0 1px var(--benefit-legendary), 0 8px 40px color-mix(in srgb, var(--benefit-legendary) 35%, transparent)}.benefit-modal__title{margin:0;font-size:1.4rem}.benefit-modal__badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.benefit-modal__desc{color:var(--text);margin:0;font-size:.95rem}.benefit-modal__condition{background:var(--surface-2);width:100%;color:var(--text-muted);border-radius:12px;flex-direction:column;gap:3px;margin:0;padding:10px 12px;font-size:.85rem;display:flex}.benefit-modal__condition-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.66rem;font-weight:800}.benefit-modal__flavor{color:var(--text-muted);margin:0;font-size:.88rem;font-style:italic;line-height:1.45}.benefit-modal__share{width:100%}.benefit-modal__close{margin-top:4px}.benefit-toast--legendary{border-color:var(--benefit-legendary);box-shadow:0 0 0 1px var(--benefit-legendary), var(--shadow)}
