:root{--tg-safe-top:0px;--tg-safe-bottom:0px;--tg-safe-left:0px;--tg-safe-right:0px;--bg:#f6f3ec;--bg-grid:#5a4a340f;--surface:#fffdf8;--surface-2:#f1ece1;--surface-3:#e6dfd1;--line:#e2dacb;--line-strong:#cdc2ac;--text:#22201c;--text-muted:#7a7266;--accent:#7c5cff;--accent-ink:#fff;--accent-soft:#7c5cff1f;--success:#047857;--success-soft:#0478571f;--danger:#b42318;--danger-soft:#b423181a;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 10px -4px #10182829, 0 12px 28px -16px #1018283d;--shadow-lg:0 18px 48px -20px #10182859;--radius:14px;--radius-lg:20px}[data-theme=dark]{--bg:#14101f;--bg-grid:#ffffff0b;--surface:#1e1830;--surface-2:#271f3d;--surface-3:#33294e;--line:#33294e;--line-strong:#453765;--text:#efe9fb;--text-muted:#a396c2;--accent:#a78bfa;--accent-ink:#17122a;--accent-soft:#a78bfa2e;--success:#34d399;--success-soft:#34d39924;--danger:#f87171;--danger-soft:#f8717124;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 16px -6px #0009;--shadow-lg:0 24px 56px -24px #000c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:IBM Plex Sans,ui-sans-serif,system-ui,-apple-system,sans-serif}button,input{font:inherit;color:inherit}.app{height:100dvh;padding:calc(var(--tg-safe-top) + 8px) calc(var(--tg-safe-right) + 10px) calc(var(--tg-safe-bottom) + 8px) calc(var(--tg-safe-left) + 10px);background-color:var(--bg);background-image:linear-gradient(var(--bg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);background-size:28px 28px;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;display:grid}.app--splash{grid-template-rows:1fr;place-items:center}.splash{color:var(--text-muted);text-align:center;justify-items:center;gap:16px;padding:0 32px;display:grid}.splash__mark{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.topbar__progress{align-items:center;gap:10px;min-width:0;display:flex}.progress-ring__text{fill:var(--text);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:600}.topbar__counts{gap:1px;min-width:0;display:grid}.topbar__value{letter-spacing:-.02em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:17px;font-weight:600;line-height:1.1}.topbar__value em{color:var(--text-muted);font-size:12px;font-style:normal}.topbar__caption{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.topbar__actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.hint-button{border:1px solid var(--line-strong);background:var(--surface-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;height:36px;padding:0 10px;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.hint-button:active:not(:disabled){transform:scale(.96)}.hint-button:disabled{opacity:.55}.hint-button__label{font-size:12.5px;font-weight:500}.hint-button__count{background:var(--accent);min-width:20px;height:20px;color:var(--accent-ink);border-radius:999px;place-items:center;padding:0 5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-weight:600;display:grid}.icon-button{border:1px solid var(--line-strong);background:var(--surface-2);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:50%;place-items:center;transition:color .15s,transform .1s;display:grid}.icon-button:active{transform:scale(.94)}.workbench{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);touch-action:none;position:relative;overflow:hidden}.workbench__decor{width:100%;height:100%;color:var(--line);opacity:.65;pointer-events:none;position:absolute;inset:0}.workbench__hint{text-align:center;pointer-events:none;align-content:center;justify-items:center;gap:6px;padding:0 44px;display:grid;position:absolute;inset:0}.workbench__hint strong{letter-spacing:-.01em;font-size:14px}.workbench__hint span{color:var(--text-muted);font-size:12.5px;line-height:1.5}.workbench__clear{z-index:5;border:1px solid var(--line-strong);background:var(--surface-2);height:28px;color:var(--text-muted);cursor:pointer;border-radius:999px;padding:0 12px;font-size:11.5px;position:absolute;top:10px;right:10px}.token{z-index:2;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-items:center;gap:4px;width:84px;margin:-42px 0 0 -42px;display:grid;position:absolute}.token__disc{background:radial-gradient(circle at 35% 28%, var(--surface), var(--surface-2));border:1.5px solid var(--line-strong);width:60px;height:60px;box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff8c;border-radius:50%;place-items:center;line-height:1;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.token__disc .element-icon,.tray__chip-icon.element-icon,.hint-card__icon .element-icon,.toast__icon .element-icon,.drag-ghost__disc .element-icon{display:block}.token__label{background:var(--surface);border:1px solid var(--line);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:84px;padding:1px 6px;font-size:10px;line-height:1.5;overflow:hidden}.token:active .token__disc{border-color:var(--accent);transform:scale(1.06)}.token--spawn .token__disc{animation:.42s cubic-bezier(.2,1.2,.4,1) pop}.token--reject .token__disc{border-color:var(--danger);animation:.4s shake}.token--pending{pointer-events:none}.token--pending .token__disc{border-color:var(--accent);animation:.9s ease-in-out infinite pulse}@keyframes pop{0%{opacity:0;transform:scale(.35)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes pulse{0%,to{box-shadow:var(--shadow-md)}50%{box-shadow:0 0 0 6px var(--accent-soft)}}.hint-card{z-index:6;border-radius:var(--radius);border:1px solid var(--accent);background:var(--surface);box-shadow:var(--shadow-lg);justify-items:center;gap:5px;padding:10px 14px;animation:.3s rise;display:grid;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.hint-card__title{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:10px;font-weight:600}.hint-card__pair{align-items:center;gap:7px;display:flex}.hint-card__chip{background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 9px 4px 4px;font-size:12px;display:inline-flex}.hint-card__icon{place-items:center;display:grid}.hint-card__plus{color:var(--text-muted);font-size:13px}.hint-card__note{color:var(--text-muted);font-size:11px}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.tray{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);height:38dvh;min-height:210px;box-shadow:var(--shadow-sm);grid-template-rows:auto minmax(0,1fr);gap:8px;padding:10px;display:grid}.tray__controls{gap:8px;display:grid}.tray__search{border:1px solid var(--line);background:var(--surface-2);height:36px;color:var(--text-muted);border-radius:10px;align-items:center;gap:8px;padding:0 10px;display:flex}.tray__search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13.5px}.tray__search input::placeholder{color:var(--text-muted)}.tray__search button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.tray__filters{scrollbar-width:none;gap:6px;padding-bottom:1px;display:flex;overflow-x:auto}.tray__filters::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--line);background:var(--surface-2);height:27px;color:var(--text-muted);white-space:nowrap;cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:0 10px;font-size:11.5px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.filter-chip--active{color:var(--text);border-color:var(--accent);background:var(--accent-soft);font-weight:500}.filter-chip__dot{background:var(--chip-tone,var(--accent));border-radius:50%;width:7px;height:7px}.tray__grid{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}.tray__rows{align-content:start;gap:8px;display:grid;position:absolute;top:0;left:0;right:0}.tray__chip{background:var(--surface-2);cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;align-content:center;justify-items:center;gap:2px;height:66px;padding:4px 2px;transition:transform .1s,border-color .12s,background .12s;display:grid}.tray__chip:active{border-color:var(--accent);background:var(--accent-soft);transform:scale(.93)}.tray__chip--base{box-shadow:inset 0 0 0 1px var(--line-strong)}.tray__chip-name{max-width:100%;color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.15;overflow:hidden}.tray__empty{text-align:center;color:var(--text-muted);margin:24px 0;font-size:12.5px}.toast{left:50%;bottom:calc(var(--tg-safe-bottom) + max(38dvh, 210px) + 22px);z-index:40;border:1px solid var(--line-strong);background:var(--surface);max-width:calc(100vw - 40px);box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:9px;padding:8px 14px 8px 9px;animation:.25s rise;display:flex;position:fixed;transform:translate(-50%)}.toast__icon{background:var(--surface-2);border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;line-height:1;display:grid}.toast__body{gap:1px;min-width:0;display:grid}.toast__label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:10px}.toast__name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.bonus-reveal{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;background:#00000080;place-items:center;animation:.25s bonusFade;display:grid;position:fixed;inset:0}.bonus-reveal__card{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);cursor:default;flex-direction:column;align-items:center;gap:10px;padding:32px 36px;animation:.45s cubic-bezier(.2,1.4,.4,1) bonusPop;display:flex;position:relative}.bonus-reveal__label{text-transform:uppercase;letter-spacing:.09em;color:var(--accent);font-size:11px;font-weight:700}.bonus-reveal__glow{z-index:-1;background:radial-gradient(circle, var(--accent-soft), transparent 70%);animation:1.8s ease-in-out infinite bonusGlow;position:absolute;inset:-30%}.bonus-reveal__disc{background:var(--surface-2);border:1px solid var(--line);border-radius:50%;place-items:center;width:96px;height:96px;display:grid}.bonus-reveal__name{font-size:19px;font-weight:700}.bonus-reveal__hint{color:var(--text-muted);font-size:12px}@keyframes bonusFade{0%{opacity:0}to{opacity:1}}@keyframes bonusPop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes bonusGlow{0%,to{opacity:.6;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}.toast--discovery{border-color:var(--success);background:var(--success-soft)}.toast--discovery .toast__label{color:var(--success)}.toast--error{border-color:var(--danger);background:var(--danger-soft)}.toast--error .toast__label{color:var(--danger)}.sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080c1880;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{overscroll-behavior:contain;width:100%;max-height:88dvh;padding:10px 16px calc(var(--tg-safe-bottom) + 18px);border-top:1px solid var(--line);background:var(--bg);border-radius:22px 22px 0 0;gap:18px;animation:.28s cubic-bezier(.2,.9,.3,1) slide-up;display:grid;overflow-y:auto}@keyframes slide-up{0%{transform:translateY(14%)}to{transform:translateY(0)}}.sheet__grip{background:var(--line-strong);border-radius:3px;justify-self:center;width:36px;height:4px}.sheet__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet__title{letter-spacing:-.02em;margin:0;font-size:19px}.sheet__x{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;transition:color .15s,border-color .15s;display:grid}.sheet__x:active{color:var(--text);border-color:var(--line-strong)}.sheet__section{gap:9px;display:grid}.sheet__heading{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0;font-size:10.5px;font-weight:600}.sheet__note{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.55}.sheet__primary{background:var(--accent);width:100%;height:46px;color:var(--accent-ink);cursor:pointer;border:none;border-radius:12px;font-size:15px;font-weight:600}.sheet__primary:disabled{background:var(--surface-3);color:var(--text-muted);cursor:default}.hint-balance{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:baseline;gap:10px;padding:14px;display:flex}.hint-balance__value{color:var(--accent);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:32px;font-weight:600;line-height:1}.hint-balance__caption{color:var(--text-muted);font-size:12.5px}.pack__note{color:var(--text-muted);font-size:10px}.drag-ghost{z-index:70;pointer-events:none;justify-items:center;gap:4px;animation:.14s grab;display:grid;position:fixed;transform:translate(-50%,-60%)}.drag-ghost__disc{background:var(--surface);border:1px solid var(--accent);width:60px;height:60px;box-shadow:var(--shadow-lg);border-radius:50%;place-items:center;line-height:1;display:grid}.drag-ghost__label{background:var(--surface);border:1px solid var(--line);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:92px;padding:1px 6px;font-size:10px;overflow:hidden}@keyframes grab{0%{transform:translate(-50%,-60%)scale(.8)}to{transform:translate(-50%,-60%)scale(1)}}.theme-switch{grid-template-columns:1fr 1fr;gap:8px;display:grid}.theme-switch__option{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:9px;padding:11px 12px;font-size:13.5px;transition:border-color .15s,background .15s;display:flex}.theme-switch__option--active{border-color:var(--accent);background:var(--accent-soft);font-weight:500}.theme-switch__swatch{border:1px solid var(--line-strong);border-radius:7px;width:22px;height:22px}.theme-switch__swatch--light{background:linear-gradient(140deg,#fff,#e3e8f2)}.theme-switch__swatch--dark{background:linear-gradient(140deg,#1a2338,#090d19)}.toggle{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle__text{gap:2px;min-width:0;display:grid}.toggle__label{font-size:13.5px}.toggle__description{color:var(--text-muted);font-size:11.5px}.toggle__track{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:999px;flex-shrink:0;width:44px;height:26px;transition:background .18s,border-color .18s;position:relative}.toggle__thumb{background:var(--surface);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .18s cubic-bezier(.3,1.4,.5,1);position:absolute;top:2px;left:2px}.toggle input:checked+.toggle__track{background:var(--accent);border-color:var(--accent)}.toggle input:checked+.toggle__track .toggle__thumb{transform:translate(18px)}.pack-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pack{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;justify-items:center;gap:3px;padding:12px 6px;transition:border-color .15s,transform .1s;display:grid}.pack:active:not(:disabled){border-color:var(--accent);transform:scale(.96)}.pack:disabled{opacity:.6}.pack__count{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:19px;font-weight:600}.pack__price{color:var(--text-muted);font-size:11.5px}.mode-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.mode-card--active{border-color:var(--accent);background:var(--accent-soft)}.mode-card__body{gap:2px;min-width:0;display:grid}.mode-card__name{font-size:13.5px;font-weight:500}.mode-card__desc{color:var(--text-muted);font-size:11.5px;line-height:1.45}.mode-card__badge{background:var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;flex-shrink:0;padding:4px 9px;font-size:10px;font-weight:600}.mode-card__badge--soon{background:var(--surface-3);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.howto{border:1px solid var(--line);background:var(--line);border-radius:12px;gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.howto li{background:var(--surface);align-items:baseline;gap:10px;padding:10px 12px;display:flex}.howto__key{min-width:118px;color:var(--accent);flex-shrink:0;font-size:12px;font-weight:600}.howto__text{color:var(--text-muted);font-size:12.5px;line-height:1.45}
