@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#f7f3ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#221b32;--ink:#f7f3ff;--muted:#bdb0d4;--accent:#a58aff;--line:#443654;--control:#30253f;background:#15111f;font-family:DM Sans Variable,sans-serif}*{box-sizing:border-box}body{overscroll-behavior:none;margin:0}h1,h2,p{margin:0}button,select{font:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled,select:disabled{cursor:default;opacity:.4}button:focus-visible,select:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #d4c4ff}::selection{color:#15111f;background:#a58aff}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);z-index:3;background:#15111f;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{letter-spacing:-.04em;white-space:nowrap;align-items:center;gap:12px;font-size:27px;font-weight:900;line-height:1;display:flex}.brand-accent{color:var(--accent)}.brand-note{letter-spacing:.015em;color:var(--muted);margin-top:7px;font-size:10px;font-weight:500;display:block}.button-mark{fill:#9770f4;flex:none;width:45px;height:45px;transform:rotate(-15deg)}.button-mark>circle:first-child{stroke:#bd9fff;stroke-width:2px}.mark-rim{fill:none;stroke:#d4c4ff;stroke-width:1.5px}.mark-hole{fill:#241635}.game-mode{white-space:nowrap;align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.mode-divider{background:var(--line);width:1px;height:20px}.mode-select{background:var(--control);cursor:pointer;border:1px solid #514064;border-radius:10px;max-width:195px;min-height:44px;padding:8px 10px}.mode-select:hover:not(:disabled){background:#403052;border-color:#a58aff}.header-actions{align-items:center;gap:10px;display:flex}.quiet-button,.solid-button{white-space:nowrap;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 15px;font-size:12px;font-weight:750;transition:background .15s ease-out;display:inline-flex}.quiet-button{background:var(--control)}.quiet-button:hover:not(:disabled),.quiet-button.active{background:#49355e}.solid-button,.new-pile-button{color:#fff;background:#7950db;box-shadow:0 4px 12px #0d091b66}.solid-button:hover:not(:disabled),.new-pile-button:hover:not(:disabled){background:#8b61e8}.table-area{background:#1c1628;flex:1;min-height:0;position:relative;overflow:hidden}.game-canvas canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.game-canvas canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.collection-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.collection-title h2{color:var(--muted);font-size:12px;font-weight:650}.collection-title>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.collection-title strong{color:var(--ink);font-size:24px;font-weight:850}.progress-track{background:#40324f;border-radius:6px;height:7px;overflow:hidden}.progress-track>div{transform-origin:0;background:#ae91ff;height:100%;transition:transform .3s ease-out}.bottom-bar{border-top:1px solid var(--line);z-index:3;background:#15111f;justify-content:space-between;align-items:center;gap:20px;display:flex}.game-status{color:#c2b4d6;align-items:center;gap:9px;font-size:12px;line-height:1.5;display:flex}.game-status svg{color:#bca0ff;flex-shrink:0}.game-status.blocked,.game-status.blocked svg{color:#ff9d9a}.game-status.success,.game-status.success svg{color:#7be0b0}.control-hints{color:var(--muted);white-space:nowrap;gap:22px;font-size:11px;display:flex}.control-hints>span{align-items:center;gap:6px;display:flex}.help-panel,.restart-panel{background:var(--paper);z-index:5;scrollbar-color:#8f72b5 var(--paper);scrollbar-width:thin;border-radius:16px;width:360px;padding:24px;position:absolute;top:16px;right:24px;box-shadow:0 12px 48px #09051099}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.panel-heading h2,.restart-panel h2{letter-spacing:-.03em;font-size:26px;font-weight:850}.icon-button{background:var(--control);border:0;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button:hover{background:#49355e}.help-panel ol{counter-reset:step;gap:20px;margin:0;padding:0;list-style:none;display:grid}.help-panel li{counter-increment:step;padding-left:35px;font-size:13px;line-height:1.6;position:relative}.help-panel li:before{content:counter(step) ".";color:var(--accent);font-size:22px;font-weight:850;position:absolute;left:0}.help-panel li strong{margin-bottom:4px;font-weight:750;display:block}.help-panel li span{color:var(--muted)}.help-shortcuts{border-top:1px solid var(--line);color:var(--muted);gap:10px;margin-top:24px;padding-top:18px;font-size:12px;line-height:1.6;display:grid}kbd{font:inherit;color:var(--ink);background:#49355e;border-radius:4px;padding:2px 6px}.restart-panel p{color:var(--muted);margin:14px 0 24px;font-size:13px;line-height:1.65}.restart-panel>div{justify-content:flex-end;gap:8px;display:flex}.loading-state,.error-state,.completion{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-state p{color:var(--muted);margin-top:20px;font-size:22px;font-weight:750}.loading-state .button-mark{animation:4s linear infinite turn}.error-state{width:min(430px,90%)}.error-state h1,.completion h1{letter-spacing:-.035em;font-size:34px;font-weight:850;line-height:1.1}.error-state p,.completion p{color:var(--muted);margin:18px 0 24px;font-size:14px;line-height:1.7}.completion{background:var(--paper);border-radius:16px;width:min(450px,90%);padding:36px;animation:.5s cubic-bezier(.16,1,.3,1) arrive;box-shadow:0 12px 48px #09051099}.completion-check{color:#fff;background:#7950db;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:24px;display:inline-flex}@keyframes turn{to{transform:rotate(345deg)}}@keyframes arrive{0%{opacity:.6;filter:blur(4px)}to{opacity:1;filter:blur()}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app-shell{min-height:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.topbar{height:88px;padding:0 32px}.table-area{flex-direction:column;display:flex}.game-canvas{flex:1;order:2;min-height:0;position:relative}.table-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:22px 34px 12px;display:flex}.table-toolbar h1{letter-spacing:-.035em;font-size:clamp(24px,2.7vw,38px);font-weight:850;line-height:1.15}.table-toolbar h1 em{color:#ae91ff;font-style:normal;font-weight:700}.table-toolbar p{color:var(--muted);margin-top:8px;font-size:13px}.table-toolbar .collection{flex-shrink:0;width:215px}.table-toolbar .progress-track{margin:10px 0 0}.bottom-bar{flex-shrink:0;min-height:48px;padding:10px 32px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.help-panel,.restart-panel{max-height:calc(100% - 24px);overflow:auto}@media (width<=1100px){.topbar{gap:16px;padding:0 22px}.brand{gap:8px;font-size:24px}.brand-note{display:none}.game-mode{gap:8px;font-size:11px}.header-actions{gap:8px}.header-actions .quiet-button{padding:10px 12px}.control-hints{display:none}}@media (width<=760px){.topbar{flex-wrap:wrap;gap:8px 12px;height:124px;padding:12px 16px 10px}.brand{font-size:24px}.button-mark{width:36px;height:36px}.header-actions .quiet-button{width:44px;height:44px;padding:0}.header-actions .quiet-button span{display:none}.game-mode{flex:0 0 100%;order:3;gap:8px;font-size:12px}.brand{margin-right:auto}.header-actions{display:contents}.hint-button{order:3}.header-actions .hint-button .hint-wait{display:inline}.game-mode{flex:calc(100% - 56px);min-width:0}.mode-divider{display:none}.mode-select{flex:1;min-width:0;max-width:none}.table-toolbar{gap:12px;padding:16px 18px 6px}.table-toolbar h1{font-size:25px}.table-toolbar h1 em{display:none}.table-toolbar p{max-width:230px;margin-top:6px;font-size:11px;line-height:1.5}.table-toolbar .collection{width:86px}.collection-title{display:block}.collection-title h2{margin-bottom:2px;font-size:10px}.collection-title strong{font-size:22px}.collection-title>span{font-size:12px}.table-toolbar .progress-track{height:6px;margin-top:6px}.bottom-bar{min-height:48px;padding:9px 16px}.game-status{gap:7px;font-size:10px}.help-panel,.restart-panel{width:min(360px,100% - 24px);padding:20px;top:12px;right:12px}.completion{padding:28px 24px}.completion h1{font-size:28px}}@media (width<=360px){.topbar{padding-inline:12px}.header-actions{gap:6px}.topbar{column-gap:8px}.brand{gap:5px;font-size:19px}.button-mark{width:28px;height:28px}.header-actions .quiet-button{width:40px;height:40px;min-height:40px}.table-toolbar{padding:12px 14px 4px}.table-toolbar h1{font-size:22px}.table-toolbar .collection{width:72px}}@media (height<=500px) and (width>=620px){.topbar{flex-wrap:nowrap;gap:12px;height:58px;padding:6px 16px}.brand{font-size:21px}.brand-note{display:none}.button-mark{width:32px;height:32px}.game-mode{order:0;flex:initial;gap:6px;font-size:11px}.mode-select{min-height:40px}.mode-divider,.header-actions .quiet-button span{display:none}.header-actions .quiet-button{width:40px;min-height:40px;padding:0}.table-toolbar{padding:6px 18px}.table-toolbar h1{font-size:20px}.table-toolbar h1 em{display:inline}.table-toolbar p{display:none}.table-toolbar .collection{width:170px}.collection-title{display:flex}.collection-title strong{font-size:18px}.table-toolbar .progress-track{height:4px;margin-top:4px}.bottom-bar{min-height:32px;padding:4px 16px}}.run-clock{flex-shrink:0;margin-left:auto}.run-readout{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-top:8px;font-size:12px;display:flex}.run-time{color:var(--ink);font-size:14px;font-weight:800}.run-mixed{color:#d4c4ff;background:#49355e;border-radius:4px;padding:0 5px;font-size:10px;font-weight:750}.timer-toggle{gap:6px;min-height:32px;padding:4px 10px;font-size:11px}.timer-toggle[aria-pressed=false]{color:var(--muted)}.run-result{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;line-height:1.6}.completion .run-result{margin:-8px 0 20px}.run-result strong{color:#7be0b0}@media (width<=760px){.table-toolbar .collection:has(.run-readout){width:112px}.collection:has(.run-readout) .collection-title h2{display:none}.run-readout{flex-wrap:nowrap;gap:4px;margin-top:5px;font-size:10px}.run-time{font-size:12px}.timer-toggle{width:32px;padding:0}.timer-toggle span{display:none}}@media (width<=360px){.table-toolbar .collection:has(.run-readout){width:104px}}@media (height<=500px) and (width>=620px){.table-toolbar .collection:has(.run-readout){grid-template-columns:170px auto;align-items:center;column-gap:14px;width:316px;display:grid}:is(.collection:has(.run-readout) .collection-title,.collection:has(.run-readout) .progress-track){grid-column:1}.run-readout{grid-area:1/2/span 2;margin:0;font-size:11px}.run-time{font-size:13px}.timer-toggle{min-height:24px}}.count-setting{gap:8px;font-size:14px;font-weight:700;display:grid}.count-setting select,.count-setting input{box-sizing:border-box;border:1px solid var(--muted);background:var(--paper);width:100%;color:var(--ink);font:inherit;border-radius:8px;padding:10px 12px}.count-setting select:focus-visible,.count-setting input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.solid-button:disabled{opacity:.45;cursor:not-allowed}.room-bar{border-bottom:1px solid var(--line);background:#221b32;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 12px;padding:8px 24px;font-size:12px;display:flex}.room-bar>span{color:var(--muted)}.room-bar strong{letter-spacing:.02em}.room-bar .quiet-button{min-height:36px;padding:7px 10px}.room-players{flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;list-style:none;display:flex}.room-players li{color:#d4c4ff;overflow-wrap:anywhere}.connection-notice{color:#f5c34e;flex-basis:100%;align-items:center;gap:12px;display:flex}.online-paused{pointer-events:none;z-index:1;background:#15111f70;position:absolute;inset:0}.room-dialog{background:var(--paper);width:min(420px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:28px}.room-dialog::backdrop{background:#090510b0}.room-dialog form{gap:20px;display:grid}.room-dialog h2{letter-spacing:-.03em;font-size:27px}.room-dialog p{color:var(--muted);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.room-dialog label{gap:8px;font-size:14px;font-weight:700;display:grid}.room-dialog input{border:1px solid var(--muted);width:100%;min-height:44px;color:var(--ink);font:inherit;background:#30253f;border-radius:8px;padding:10px 12px}.room-dialog-actions{justify-content:flex-end;gap:10px;display:flex}@media (width<=760px){.room-bar{gap:6px 8px;padding:7px 12px;font-size:11px}.room-bar>span{display:none}.room-players{flex-basis:100%}}@media (height<=500px){.room-bar{padding:3px 12px}.room-players{flex-basis:auto}}.round-results{text-align:left;gap:6px;margin:-6px 0 22px;padding:0;font-size:13px;list-style:none;display:grid}.round-results li{border:1px solid var(--line);color:var(--muted);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:7px 12px;display:grid}.round-results li.top{border-color:var(--accent);color:var(--ink);background:#7950db33}.round-results strong{color:var(--ink);font-size:15px}.round-results-name{min-width:0;color:var(--ink);align-items:center;font-weight:700;display:flex}.round-results-name>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.round-results-badge{background:var(--accent);color:#15111f;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;flex-shrink:0;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:800}@media (width<=760px),(height<=700px){.completion.with-results{width:min(450px,100% - 24px);padding:18px 16px}.completion.with-results .completion-check{display:none}.completion.with-results h1{font-size:24px}.completion.with-results p{margin:6px 0 12px;font-size:13px;line-height:1.4}.round-results{gap:4px;margin:0 0 14px;font-size:12px}.round-results li{gap:8px;padding:5px 10px}}.daily-tag{color:#d4c4ff;align-items:center;gap:6px;margin-top:8px;font-size:12px;font-weight:700;display:inline-flex}.daily-option{border-top:1px solid var(--line);margin-top:4px;padding:14px 0 0}.daily-option .quiet-button{align-items:center;gap:8px;display:inline-flex}.daily-option p{margin:10px 0 18px}.daily-option strong{color:var(--ink)}.daily-result{justify-items:center;gap:10px;margin:-8px 0 20px;display:grid}.daily-result output{-webkit-user-select:text;user-select:text;overflow-wrap:anywhere;font-size:13px;font-weight:700}.daily-result .quiet-button{align-items:center;gap:8px;display:inline-flex}.daily-result p{margin:0;font-size:12px}@media (width<=760px){.daily-tag{display:none}}.bottom-bar .control-hints{margin-left:auto}.bottom-bar .sound-toggle{flex-shrink:0;width:40px;min-height:40px;margin:-6px 0;padding:0}@media (height<=500px) and (width>=620px){.bottom-bar .sound-toggle{width:32px;min-height:32px;margin:-4px 0}}@media (width<=760px){.bottom-bar{gap:12px}.bottom-bar .game-status{min-height:30px}}.hint-wait{font-variant-numeric:tabular-nums}.daily-streak{color:#ffb27a;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.daily-option .daily-streak{margin:-8px 0 12px}.daily-history{color:var(--muted);margin:0 0 18px;font-size:12px}.daily-history summary{cursor:pointer;color:var(--ink);font-weight:700}.daily-history ol{font-variant-numeric:tabular-nums;max-height:132px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}.daily-history li{border-top:1px solid var(--line);grid-template-columns:11ch 1fr auto;gap:8px;padding:3px 0;display:grid}.order-card{flex-wrap:wrap;gap:6px 8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.order-card li{border:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums;background:#2b213a;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 6px;font-size:13px;font-weight:700;display:inline-flex}.order-card svg{flex-shrink:0;width:18px;height:18px}.order-card .order-count{color:#d4c4ff}.order-card li.done{color:#7be0b0;border-color:#7be0b0}.order-card li.done .order-count{color:inherit}@media (width<=760px){.order-card{gap:4px 5px;margin-top:6px}.order-card li{gap:4px;padding:2px 7px 2px 4px;font-size:12px}.order-card .order-name{display:none}.order-card svg{width:16px;height:16px}}@media (height<=500px) and (width>=620px){.table-toolbar>div:has(.order-card){align-items:center;gap:14px;display:flex}.order-card{gap:4px 6px;margin:0}.order-card li{padding:1px 8px 1px 4px;font-size:11px}.order-card .order-name{display:none}.order-card svg{width:15px;height:15px}}
