@property --hint-progress{syntax: "<number>"; initial-value: 0; inherits: true;}:root{--bg: #0f1115;--bg-elevated: #171a21;--surface: #1f2430;--surface-strong: #262c3a;--border: #2e3342;--border-strong: #3a4152;--text: #e6e8ee;--text-muted: #9aa3b2;--text-dim: #828b9b;--digit-solved: #f2f4f9;--candidate: #a6afc0;--accent: #7aa2f7;--accent-soft: #7aa2f722;--accent-strong: #8ebaff;--accent-alt: #f7a27a;--accent-alt-soft: #f7a27a22;--accent-alt-strong: #ffb68e;--select: #e0af68;--select-soft: #e0af6822;--select-strong: #f0c27a;--shared: #a78bfa;--shared-soft: #a78bfa22;--danger: #f07178;--success: #9ece6a;--warning: #c9772a;--warning-soft: #c9772a22;--warning-strong: #e6a35a;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-fast: .12s;--dur-med: .22s;--wah: 0;--chroma-rest: .72;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-digit: "Atkinson Hyperlegible", "Inter", system-ui, sans-serif;--font-display: "Archivo Narrow", "Saira Condensed", "Arial Narrow", sans-serif;--grid-max: min(100vw, 100vmin);--cage-dash: 2px}@media(min-width:640px){:root{--grid-max: min(72vmin, 560px)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.board app-grid{filter:saturate(var(--chroma-rest, .72));transition:filter var(--dur-med) var(--ease-out);will-change:filter}.board.is-casting app-cell:not([data-cast]){animation:cast-recede 1.65s var(--ease-out) forwards}@keyframes cast-recede{0%{opacity:1}24%{opacity:.52}46%{opacity:.52}70%{opacity:1}to{opacity:1}}.board.is-casting app-cell[data-cast=premise]:before,.board.is-casting app-cell[data-cast=target]:before,.board.is-casting app-cell[data-cast=solved]:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:3px;opacity:0;box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--select) 88%,transparent),0 0 12px 1px color-mix(in oklab,var(--select) 45%,transparent);animation:cast-focus-ring 1.65s var(--ease-out) forwards}@keyframes cast-focus-ring{0%{opacity:0;transform:scale(1.5)}24%{opacity:1;transform:scale(1)}46%{opacity:.55;transform:scale(1)}62%{opacity:0;transform:scale(1)}to{opacity:0;transform:scale(1)}}.board.is-casting{--sw: 1}.board.is-casting[data-cast-tier="1"]{--sw: 1.15}.board.is-casting[data-cast-tier="2"]{--sw: 1.35}.board.is-casting[data-cast-tier="3"]{--sw: 1.6}.board.is-casting app-cell[data-cast=premise],.board.is-casting app-cell[data-cast=target]{position:relative;z-index:2;animation:cell-swell 1.65s var(--ease-out) forwards}.board.is-casting app-cell[data-cast=target]{--sw-boost: 1.35}@keyframes cell-swell{0%{transform:scale(1);filter:none}24%{transform:scale(1);filter:none}42%{transform:scale(calc(1 + .06 * var(--sw, 1) * var(--sw-boost, 1)));filter:brightness(1.35) saturate(1.5)}60%{transform:scale(1);filter:brightness(1.12) saturate(1.2)}to{transform:scale(1);filter:none}}.board app-cell[data-cast=autoclean] :is(.candidates,.digit),.board app-cell[data-cast=solved] :is(.candidates,.digit),.board app-cell[data-cast=target] :is(.candidates,.digit){position:relative;animation:cell-bloom-shimmer 1.65s var(--ease-out) forwards}.board app-cell[data-cast=autoclean] :is(.candidates,.digit):after,.board app-cell[data-cast=solved] :is(.candidates,.digit):after,.board app-cell[data-cast=target] :is(.candidates,.digit):after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 35%,color-mix(in oklab,var(--success) 55%,transparent) 50%,transparent 65%);background-size:300% 100%;background-position:150% 0;animation:cell-shimmer-sweep 1.65s var(--ease-out) forwards}.board app-cell[data-cast=autoclean] :is(.candidates,.digit):before,.board app-cell[data-cast=solved] :is(.candidates,.digit):before,.board app-cell[data-cast=target] :is(.candidates,.digit):before{content:"";position:absolute;inset:-6%;pointer-events:none;border-radius:4px;opacity:0;box-shadow:0 0 0 2px color-mix(in oklab,var(--success) 80%,transparent),0 0 10px 1px color-mix(in oklab,var(--success) 45%,transparent);animation:autoclean-focus-ring 1.65s var(--ease-out) forwards}@keyframes autoclean-focus-ring{0%{opacity:0;transform:scale(1.5)}12%{opacity:1;transform:scale(1)}33%{opacity:1;transform:scale(1)}44%{opacity:0;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes cell-bloom-shimmer{0%{transform:scale(1);filter:none}33%{transform:scale(1);filter:none}44%{transform:scale(1.09);filter:brightness(1.3) drop-shadow(0 0 5px color-mix(in oklab,var(--success) 55%,transparent))}to{transform:scale(1);filter:none}}@keyframes cell-shimmer-sweep{0%,33%{opacity:0;background-position:150% 0}44%{opacity:1}74%{opacity:1;background-position:-150% 0}86%,to{opacity:0;background-position:-150% 0}}.board.is-sweeping:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;border-radius:inherit;background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--success) 32%,transparent) 0%,transparent 55%);opacity:0;transform:scale(.4);animation:sweep-radial-shimmer 1.4s var(--ease-out)}@keyframes sweep-radial-shimmer{0%{opacity:0;transform:scale(.4)}35%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}.board.is-casting app-cell .cast-flight{position:absolute;inset:0;padding:18% 4% 4% 14%;display:grid;grid-template-columns:repeat(var(--cand-grid, 3),1fr);grid-template-rows:repeat(var(--cand-grid, 3),1fr);place-items:center;pointer-events:none;z-index:4;grid-template-areas:"d1 d2 d3" "d4 d5 d6" "d7 d8 d9"}.board.is-casting app-cell .cast-flight .cast-fly{display:grid;place-items:center;color:var(--danger, #f07178);font-family:var(--font-digit);line-height:1;animation:cand-flight 1.65s var(--ease-out) forwards}@keyframes cand-flight{0%{opacity:.9;transform:translateY(0) scale(1)}24%{opacity:.9;transform:translateY(0) scale(1)}60%{opacity:0;transform:translateY(-140%) scale(.6)}to{opacity:0;transform:translateY(-140%) scale(.6)}}.board--no-fx app-cell .cast-flight{display:none}.board--no-fx app-grid{filter:saturate(1);transition:none}.board--no-fx.is-casting app-grid{animation:none;filter:saturate(1)}.board--no-fx app-cell[data-cast]{animation:none;transform:none;box-shadow:none}.board--no-fx app-cell:not([data-cast]){animation:none;opacity:1;filter:none}.board--no-fx app-cell[data-cast]:before{animation:none;opacity:0}.board--no-fx app-cell[data-cast=autoclean] :is(.candidates,.digit),.board--no-fx app-cell[data-cast=solved] :is(.candidates,.digit),.board--no-fx app-cell[data-cast=target] :is(.candidates,.digit){animation:none;transform:none;filter:none}.board--no-fx app-cell[data-cast=autoclean] :is(.candidates,.digit):after,.board--no-fx app-cell[data-cast=solved] :is(.candidates,.digit):after,.board--no-fx app-cell[data-cast=target] :is(.candidates,.digit):after{display:none}.board--no-fx app-cell[data-cast=autoclean] :is(.candidates,.digit):before,.board--no-fx app-cell[data-cast=solved] :is(.candidates,.digit):before,.board--no-fx app-cell[data-cast=target] :is(.candidates,.digit):before{display:none}.board--no-fx app-cage-overlay .cage-edge{transition:none}.board--no-fx app-cell.is-revealing .cell{animation:none;transform:none}@media(prefers-reduced-motion:reduce){.board app-grid{filter:saturate(1);transition:none}.board.is-casting app-grid{animation:none;filter:saturate(1)}.board.is-casting app-cell[data-cast]{animation:none;transform:none;box-shadow:none}.board.is-casting app-cell .cast-flight{display:none}.board.is-casting app-cell:not([data-cast]){animation:none;opacity:1;filter:none}.board.is-casting app-cell[data-cast]:before{animation:none;opacity:0}.board app-cell[data-cast=autoclean] :is(.candidates,.digit),.board app-cell[data-cast=solved] :is(.candidates,.digit),.board app-cell[data-cast=target] :is(.candidates,.digit){animation:none;transform:none;filter:none}.board app-cell[data-cast=autoclean] :is(.candidates,.digit):after,.board app-cell[data-cast=solved] :is(.candidates,.digit):after,.board app-cell[data-cast=target] :is(.candidates,.digit):after{display:none}.board app-cell[data-cast=autoclean] :is(.candidates,.digit):before,.board app-cell[data-cast=solved] :is(.candidates,.digit):before,.board app-cell[data-cast=target] :is(.candidates,.digit):before{animation:none;opacity:0}.board.is-sweeping:after{animation:none;opacity:0}}.board-row{position:relative}.method-stamp-layer{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:5}.method-stamp{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:clamp(1.4rem,6vw,2.4rem);color:var(--select-strong);padding:.1em .55em;border-radius:999px;background:color-mix(in oklab,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(6px) saturate(1.2);backdrop-filter:blur(6px) saturate(1.2);box-shadow:0 0 0 1px color-mix(in oklab,var(--select-strong) 42%,transparent),0 8px 30px color-mix(in oklab,var(--bg) 70%,transparent),0 0 28px color-mix(in oklab,var(--select-strong) 45%,transparent);text-shadow:0 1px 3px color-mix(in oklab,var(--bg) 85%,transparent);animation:method-stamp-in 1.65s var(--ease-out) forwards}@keyframes method-stamp-in{0%{opacity:0;transform:scale(.7)}18%{opacity:1;transform:scale(1.08)}30%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.method-stamp{animation:none;opacity:1;transform:none}}.rejection.is-locked{background:color-mix(in oklab,var(--danger, #d0454b) 22%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--danger, #d0454b) 60%,transparent),0 8px 26px -8px color-mix(in oklab,var(--danger, #d0454b) 55%,transparent),0 2px 6px #0000004d;font-weight:600}.rejection.is-locked .lock-icon{display:inline-block;margin-inline-end:.35em;animation:lock-shake .52s var(--ease-out, ease-out) both}.lock-stamp{animation:lock-stamp-in .46s var(--ease-out, ease-out) both}@keyframes lock-stamp-in{0%{opacity:0;transform:scale(.82)}40%{opacity:1;transform:scale(1.06)}70%{transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes lock-shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-3px) rotate(-7deg)}45%{transform:translate(3px) rotate(6deg)}70%{transform:translate(-2px) rotate(-4deg)}85%{transform:translate(1px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.lock-stamp{animation:none;opacity:1;transform:none}.rejection.is-locked .lock-icon{animation:none}}.settings-fx{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 22px 0}.settings-fx .sfx-toggle.is-on{background:color-mix(in oklab,var(--success) 20%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--success) 70%,transparent)}.sfx-hint{padding-inline:22px;margin-top:4px}.sound-debug-overlay{position:fixed;top:50%;left:8px;transform:translateY(-50%);z-index:60;width:220px;max-height:90vh;overflow:auto;padding:10px 12px;border-radius:10px;background:#12141aeb;color:#e8eaf0;border:1px solid rgba(138,92,255,.4);box-shadow:0 4px 20px #0006;font-family:system-ui,sans-serif;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.sound-debug-overlay .sd-title{display:block;font-size:.82rem;font-weight:700;letter-spacing:.02em;color:#b49aff;margin-bottom:4px}.sound-debug-overlay .sd-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:6px 0 4px;font-size:.82rem}.sound-debug-overlay .sd-facts dt{color:var(--text-dim, #6b7280)}.sound-debug-overlay .sd-facts dd{margin:0;font-variant-numeric:tabular-nums}.sound-debug-overlay .sd-atmo{font-weight:600}.sound-debug-overlay .sd-bar{display:inline-block;width:70px;height:8px;border-radius:4px;background:#7f7f7f40;overflow:hidden;vertical-align:middle;margin-right:6px}.sound-debug-overlay .sd-fill{display:block;height:100%;background:linear-gradient(90deg,#3d5cff,#8a5cff);transition:width .4s ease-out}.sound-debug-overlay .sd-note{margin:4px 0 0;font-size:.72rem;color:var(--text-dim, #6b7280);font-style:italic}.settings-overlay{position:relative;width:min(96vw,640px);max-width:640px;height:min(92vh,760px);overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg, 14px);background:var(--bg-elevated);box-shadow:0 24px 64px #0000008c;animation:fade-in var(--dur-med, .22s) var(--ease-out, ease-out);display:flex;flex-direction:column}.settings-overlay .settings-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;flex:none}.settings-overlay .settings-head .drawer-title{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.settings-overlay .settings-head .settings-close{position:static;width:32px;height:32px;display:grid;place-items:center;border-radius:999px;font-size:1.3rem;line-height:1;color:var(--text-muted);background:transparent;transition:background var(--dur-fast),color var(--dur-fast)}.settings-overlay .settings-head .settings-close:hover{background:var(--surface);color:var(--text)}.settings-overlay .settings-head .settings-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-overlay .settings-tabs{display:flex;gap:2px;padding:0 12px;flex:none;border-bottom:1px solid var(--border);overflow-x:auto}.settings-overlay .settings-tabs .settings-tab{flex:0 0 auto;padding:9px 14px;font-size:.85rem;font-weight:600;color:var(--text-muted);background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.settings-overlay .settings-tabs .settings-tab:hover{color:var(--text)}.settings-overlay .settings-tabs .settings-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.settings-overlay .settings-tabs .settings-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-overlay .settings-body{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:18px}.settings-overlay .automate-intro{margin-top:0}.settings .drawer-title{margin:0;padding-right:36px;font-size:1.3rem;font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--text)}.settings .drawer-section{display:flex;flex-direction:column;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--border)}.settings .drawer-section:last-of-type{border-bottom:none;padding-bottom:0}.settings .drawer-heading{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.settings .ft-expand.auto-apply-row{justify-content:space-between;width:100%;padding:14px 12px;border-radius:var(--radius-md, 8px);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}.settings .ft-expand.auto-apply-row .ft-label{font-size:1rem;font-weight:600}.settings .ft-expand.auto-apply-row .ft-caret{font-size:1.1rem;transform:rotate(0)}.settings .ft-expand.auto-apply-row:hover{background:var(--surface-strong)}.settings .ft-expand.auto-apply-row.is-open .ft-caret{transform:rotate(90deg)}.settings .auto-apply-body{margin-top:8px;padding-left:6px;box-shadow:inset 2px 0 0 0 var(--border)}.settings .auto-apply-body ul{padding:8px}.settings .auto-apply-body .settings-hint{margin:0 0 6px}.settings .auto-apply-body .auto-do-group{display:flex;flex-direction:column;gap:8px;padding:8px 8px 12px;margin-bottom:4px;border-bottom:1px solid var(--border)}.settings .auto-apply-body .auto-do-heading{margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.settings .auto-apply-body>.auto-do-heading{padding:4px 8px 0}.settings .settings-fx{padding:0}.settings .sfx-hint{padding-inline:0}.settings .sfx-label{font-size:.95rem;color:var(--text)}.settings .settings-lang{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.settings .lang-opts{display:inline-flex;gap:4px}.settings .lang-opt{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.88rem;cursor:pointer;box-shadow:inset 0 0 0 1px var(--border-strong);transition:background var(--dur-fast),color var(--dur-fast)}.settings .lang-opt:hover{background:var(--surface-strong);color:var(--text)}.settings .lang-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings .lang-opt.is-active{background:color-mix(in oklab,var(--accent) 22%,var(--surface));color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}.settings .settings-atmosphere{display:flex;flex-direction:column;gap:8px;margin-top:4px}.settings .atmosphere-opts{display:flex;flex-direction:column;gap:6px}.settings .atmosphere-opt{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:none;border-radius:var(--radius-md, 8px);background:transparent;color:var(--text-muted);text-align:start;cursor:pointer;box-shadow:inset 0 0 0 1px var(--border-strong);transition:background var(--dur-fast),color var(--dur-fast)}.settings .atmosphere-opt:hover{background:var(--surface-strong);color:var(--text)}.settings .atmosphere-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings .atmosphere-opt.is-active{background:color-mix(in oklab,var(--accent) 22%,var(--surface));color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}.settings .atmosphere-name{font-size:.95rem;font-weight:600}.settings .atmosphere-desc{font-size:.8rem;color:var(--text-muted)}.settings .settings-fullscreen{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings .ft-expand.about-row{justify-content:space-between;width:100%;padding:4px;border-radius:var(--radius-sm, 6px)}.settings .ft-expand.about-row:hover{background:var(--surface)}.settings .ft-expand.about-row .ft-caret{transform:rotate(0)}.settings .ft-expand.about-row.is-open .ft-caret{transform:rotate(90deg)}.settings .settings-update{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings .drawer-about .tagline{margin:0;font-size:.92rem;font-weight:600;color:var(--text)}.settings .drawer-about .blurb{margin:0;font-size:.82rem;line-height:1.5;color:var(--text-muted)}.settings .drawer-about .about-facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline;font-size:.82rem}.settings .drawer-about .about-facts dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.settings .drawer-about .about-facts dd{margin:0;color:var(--text);font-weight:600}.settings .drawer-about .about-facts .about-version{font-family:var(--font-mono, ui-monospace, monospace);font-weight:500;font-size:.76rem;color:var(--text-muted);word-break:break-word}.settings .drawer-about .copyright{margin:4px 0 0;font-size:.7rem;color:var(--text-dim)}.settings .drawer-about .about-howto{display:inline-block;margin:2px 0 0;font-size:.82rem;font-weight:600;color:var(--accent);text-decoration:none}.settings .drawer-about .about-howto:hover{text-decoration:underline}.settings-toggle .cleaning-ring{position:absolute;inset:-3px;border-radius:50%;pointer-events:none;z-index:1;background:conic-gradient(from 0deg,transparent 0deg,color-mix(in oklab,var(--success) 78%,transparent) 90deg,transparent 150deg);-webkit-mask:radial-gradient(closest-side,transparent 64%,#000 70%);animation:cleaning-spin .9s linear infinite}.settings-toggle .icon{position:relative;z-index:2}@keyframes cleaning-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.settings-toggle .cleaning-ring{animation:none;background:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--success) 55%,transparent)}}.settings-toggle.no-fx .cleaning-ring{animation:none;background:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--success) 55%,transparent)}.topbar-actions .settings-toggle .icon{font-size:1.2rem}@media(min-width:640px)and (orientation:landscape){.topbar .topbar-actions .settings-toggle .icon,.topbar .topbar-actions .report-bug,.topbar .topbar-actions .leave{font-size:1.3rem}}.layer-hint.is-partner-ping{color:var(--accent-alt-strong);background:linear-gradient(180deg,color-mix(in oklab,var(--accent-alt) 24%,var(--surface)),color-mix(in oklab,var(--accent-alt) 9%,var(--surface)));box-shadow:inset 0 0 0 2px var(--accent-alt),0 0 14px color-mix(in oklab,var(--accent-alt) 42%,transparent)}.layer-hint.is-partner-ping .lh-icon{text-shadow:0 0 12px color-mix(in oklab,var(--accent-alt) 60%,transparent)}.layer-hint.is-stuck-cold{color:var(--text-muted);background:color-mix(in oklab,#5f7896 16%,var(--surface));box-shadow:inset 0 0 0 2px color-mix(in oklab,#5f7896 70%,var(--border));filter:saturate(.7)}.layer-hint.is-stuck-cold .lh-icon{text-shadow:none}.board--no-fx .layer-hint.is-partner-ping{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent-alt)}.board--no-fx .layer-hint.is-stuck-cold{background:var(--surface);box-shadow:inset 0 0 0 2px color-mix(in oklab,#5f7896 70%,var(--border))}.hp-more:disabled{opacity:.45;cursor:not-allowed}.hp-method{margin:0;font-size:.82rem;font-weight:600;color:color-mix(in oklab,var(--success) 70%,var(--text))}.hp-cost{margin:0 0 2px;font-size:.8rem;letter-spacing:.12em;line-height:1;color:color-mix(in oklab,var(--select, gold) 82%,var(--text))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.lh-consumed-pip{position:absolute;top:2px;right:3px;z-index:3;font-size:.62rem;line-height:1;color:color-mix(in oklab,gold 78%,#fff);text-shadow:0 0 6px color-mix(in oklab,gold 70%,transparent);pointer-events:none;will-change:transform,opacity;animation:hint-pip .9s var(--ease-out, ease) forwards}@keyframes hint-pip{0%{opacity:0;transform:translateY(2px) scale(.6)}30%{opacity:1;transform:translateY(-2px) scale(1.15)}to{opacity:0;transform:translateY(-7px) scale(.9)}}@media(prefers-reduced-motion:reduce){.lh-consumed-pip{animation:none;opacity:0}}.board--no-fx .lh-consumed-pip{display:none}.hint-used-glyph{margin-left:4px;font-size:.72rem;line-height:1;color:color-mix(in oklab,gold 74%,var(--text));flex:0 0 auto}@media(hover:hover)and (pointer:fine){.side-rail .activity{scrollbar-gutter:stable;opacity:.6;transition:opacity var(--dur-med, .2s) var(--ease-out, ease);scrollbar-width:thin;scrollbar-color:transparent transparent}.side-rail .activity::-webkit-scrollbar{width:8px}.side-rail .activity::-webkit-scrollbar-thumb{background:transparent}.side-rail .activity::-webkit-scrollbar-track{background:transparent}.side-rail .activity:hover{opacity:1;scrollbar-color:color-mix(in oklab,var(--text, #c8c8c8) 40%,transparent) transparent}.side-rail .activity:hover::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--text, #c8c8c8) 40%,transparent);border-radius:4px}}@media(prefers-reduced-motion:reduce)and (hover:hover)and (pointer:fine){.side-rail .activity{transition:none}}@keyframes penalty-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.penalty{align-self:center;display:flex;align-items:center;gap:8px;max-width:var(--grid-max, 32rem);margin:4px 12px;padding:8px 14px;border-radius:10px;background:color-mix(in oklab,var(--danger, #f07178) 20%,var(--surface));box-shadow:inset 0 1px #ffffff1f,0 6px 18px -6px #00000073,0 2px 6px #00000047;color:var(--text);font-size:.85rem;text-align:center;animation:penalty-in .16s var(--ease-out, ease-out) both}.penalty .penalty-msg{flex:1 1 auto}.penalty .penalty-dismiss{appearance:none;border:0;background:none;cursor:pointer;color:var(--text);font-size:1.1rem;line-height:1;padding:2px 4px;opacity:.7}.penalty .penalty-dismiss:hover{opacity:1}.penalty .penalty-dismiss:focus-visible{outline:2px solid var(--danger);outline-offset:2px;border-radius:3px}.shared-counters{display:inline-flex;gap:8px;margin-left:auto;font-size:.75rem;font-variant-numeric:tabular-nums}.shared-counters .counter{opacity:.85;white-space:nowrap}.shared-counters .counter.is-penalty{color:var(--danger, #f07178)}.board--no-fx .penalty,:where([data-reduced-motion]) .penalty{animation:none}@media(prefers-reduced-motion:reduce){.penalty{animation:none}}.board.is-scrubbing app-grid{filter:saturate(.58) hue-rotate(195deg) brightness(.97);transition:filter var(--dur-med, .2s) var(--ease-out, ease)}.scrub-smog{position:absolute;inset:0;border-radius:8px;overflow:hidden;pointer-events:none;z-index:1}.scrub-smog:before,.scrub-smog:after{content:"";position:absolute;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,#4ca3d4 42%,transparent),transparent 72%);filter:blur(26px);will-change:transform,opacity}.scrub-smog:before{inset:-20% -30% auto;height:90%;animation:scrub-smog-a 9s ease-in-out infinite alternate}.scrub-smog:after{inset:auto -30% -20%;height:100%;background:radial-gradient(closest-side,color-mix(in oklab,#3a7fc0 40%,transparent),transparent 72%);animation:scrub-smog-b 11s ease-in-out infinite alternate}@keyframes scrub-smog-a{0%{transform:translate3d(-12%,4%,0) scale(1.05);opacity:.55}50%{transform:translate3d(18%,-6%,0) scale(1.25);opacity:.8}to{transform:translate3d(40%,2%,0) scale(1.1);opacity:.5}}@keyframes scrub-smog-b{0%{transform:translate3d(20%,-4%,0) scale(1.15);opacity:.5}50%{transform:translate3d(-14%,8%,0) scale(1.3);opacity:.78}to{transform:translate3d(-34%,-2%,0) scale(1.08);opacity:.52}}@media(prefers-reduced-motion:reduce){.scrub-smog:before,.scrub-smog:after{animation:none;opacity:.6;transform:none}}.board--no-fx .scrub-smog:before{animation:none;opacity:.5;transform:none}.board--no-fx .scrub-smog:after{display:none}.board--no-fx.is-scrubbing app-grid{filter:saturate(.58) hue-rotate(195deg) brightness(.97);transition:none}.settings-tempo .tempo-row{display:flex;align-items:center;gap:.6rem}.settings-tempo .tempo-slider{flex:1;min-width:0}.settings-tempo .tempo-readout{min-width:2.5ch;text-align:right;font-variant-numeric:tabular-nums;opacity:.85}.partition-panel .pp-digit.is-required{text-decoration:underline;font-weight:800}.partition-panel .pp-required{margin:6px 0 0;font-size:.78rem;color:var(--text-dim, #6b7280)}.partition-panel .pp-place{font:inherit;font-weight:800;cursor:pointer;color:var(--accent, #2563eb);border:1px solid currentColor;border-radius:5px;padding:0 5px;background:transparent}.partition-panel .pp-partition.is-ruled-out{opacity:.4;text-decoration:line-through}.partition-panel .pp-tristate{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.partition-panel .pp-tri{display:inline-flex;align-items:center;gap:2px;min-width:1.9rem;justify-content:center;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;padding:2px 5px;border-radius:6px;border:1px solid color-mix(in oklab,var(--accent, #4a78d6) 30%,transparent);background:color-mix(in oklab,var(--accent, #4a78d6) 8%,var(--surface));color:inherit;transition:background .12s var(--ease-out, ease-out),border-color .12s var(--ease-out, ease-out)}.partition-panel .pp-tri:hover{background:color-mix(in oklab,var(--accent, #4a78d6) 18%,var(--surface))}.partition-panel .pp-tri.is-must{border-color:color-mix(in oklab,#16a34a 65%,transparent);background:color-mix(in oklab,#16a34a 20%,var(--surface));font-weight:700}.partition-panel .pp-tri.is-cannot{border-color:color-mix(in oklab,#dc2626 65%,transparent);background:color-mix(in oklab,#dc2626 20%,var(--surface));font-weight:700}.partition-panel .pp-tri-mark{font-size:.8em;line-height:1}@media(pointer:coarse){.fuse .fuse-apply,.fuse .fuse-cancel{display:none}.fuse .fuse-fling-hint{display:block}.fuse .fuse-fling-hint{position:relative;color:var(--accent-strong);opacity:1;font-weight:700;overflow:hidden}.fuse .fuse-fling-hint:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,color-mix(in oklab,var(--accent-strong) 55%,transparent) 50%,transparent 100%);transform:translate(-100%);animation:fuse-swipe-sweep 1.9s ease-in-out infinite;pointer-events:none}.fuse:not(.is-dragging){box-shadow:inset 0 1px #ffffff24,inset 0 0 0 2px color-mix(in oklab,var(--accent, #4a78d6) 70%,transparent),0 0 16px -2px color-mix(in oklab,var(--accent, #4a78d6) 45%,transparent),0 6px 18px -6px #00000073}}@keyframes fuse-swipe-sweep{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}@media(pointer:coarse)and (prefers-reduced-motion:reduce){.fuse .fuse-fling-hint:after{animation:none;opacity:0}}@media(pointer:fine)and (not (any-pointer:coarse)){.fuse .fuse-fling-hint{display:none}}.scrub-review .scrub-fling-hint{display:none}@media(pointer:coarse){.scrub-review .nav-btn.nav-prev,.scrub-review .nav-btn.nav-next{display:none}.scrub-review .scrub-fling-hint{display:block}}.portal-border{position:absolute;inset:0;border-radius:8px;pointer-events:none;z-index:4;will-change:transform,opacity;box-shadow:inset 0 0 0 2px color-mix(in oklab,#9a6bff 82%,transparent),inset 0 0 22px 2px color-mix(in oklab,#6f4bd8 42%,transparent),0 0 26px 2px color-mix(in oklab,#9a6bff 34%,transparent);opacity:0;animation:portal-ripple 1.3s var(--ease-out, ease) 2 both}.portal-border:before,.portal-border:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px color-mix(in oklab,#9a6bff 60%,transparent);opacity:0;will-change:transform,opacity;animation:portal-ring-out 1.3s var(--ease-out, ease) 2 both}.portal-border:after{animation-delay:.42s}@keyframes portal-ripple{0%{opacity:0;transform:scale(.985)}18%{opacity:.95;transform:scale(1.006)}40%{opacity:.72;transform:scale(.994)}62%{opacity:.92;transform:scale(1.004)}84%{opacity:.8;transform:scale(.997)}to{opacity:0;transform:scale(1)}}@keyframes portal-ring-out{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}.portal-border--penalty{box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--danger, #f0506e) 86%,transparent),inset 0 0 22px 2px color-mix(in oklab,var(--danger, #f0506e) 44%,transparent),0 0 26px 2px color-mix(in oklab,var(--danger, #f0506e) 36%,transparent)}.portal-border--penalty:before,.portal-border--penalty:after{box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--danger, #f0506e) 62%,transparent)}.portal-border--stuck{animation:portal-stuck-breathe 3.4s ease-in-out infinite both}.portal-border--stuck:before,.portal-border--stuck:after{animation:none;opacity:.34}.portal-border--stuck:after{animation-delay:0s}@keyframes portal-stuck-breathe{0%{opacity:.42;transform:scale(.995)}50%{opacity:.68;transform:scale(1.004)}to{opacity:.42;transform:scale(.995)}}@media(prefers-reduced-motion:reduce){.portal-border{animation:none;opacity:.9;transform:none}.portal-border:before,.portal-border:after{animation:none;opacity:0}.portal-border--stuck{animation:none;opacity:.66;transform:none}}.stuck-cloud{position:absolute;inset:0;border-radius:8px;overflow:hidden;pointer-events:none;z-index:1}.stuck-cloud:before,.stuck-cloud:after{content:"";position:absolute;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,#9a6bff 58%,transparent),transparent 72%);filter:blur(30px);will-change:transform,opacity}.stuck-cloud:before{inset:-24% -34% auto;height:96%;animation:stuck-cloud-a 8.5s ease-in-out infinite alternate}.stuck-cloud:after{inset:auto -34% -24%;height:104%;background:radial-gradient(closest-side,color-mix(in oklab,#7a4fe0 56%,transparent),transparent 72%);animation:stuck-cloud-b 10.5s ease-in-out infinite alternate}@keyframes stuck-cloud-a{0%{transform:translate3d(-14%,4%,0) scale(1.08);opacity:.62}50%{transform:translate3d(16%,-6%,0) scale(1.3);opacity:.9}to{transform:translate3d(38%,2%,0) scale(1.12);opacity:.58}}@keyframes stuck-cloud-b{0%{transform:translate3d(18%,-4%,0) scale(1.18);opacity:.56}50%{transform:translate3d(-16%,8%,0) scale(1.34);opacity:.88}to{transform:translate3d(-36%,-2%,0) scale(1.1);opacity:.6}}.stuck-cloud-border{position:absolute;inset:0;border-radius:8px;overflow:hidden;pointer-events:none;z-index:1;background:linear-gradient(to bottom,color-mix(in oklab,#9a6bff 26%,transparent),transparent 22%,transparent 78%,color-mix(in oklab,#9a6bff 26%,transparent));will-change:transform,opacity}.stuck-cloud-border:before,.stuck-cloud-border:after{content:"";position:absolute;top:-10%;bottom:-10%;width:46%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,#9a6bff 52%,transparent),transparent 74%);filter:blur(26px);will-change:transform,opacity}.stuck-cloud-border:before{left:-22%;animation:stuck-border-l 7.5s ease-in-out infinite alternate}.stuck-cloud-border:after{right:-22%;animation:stuck-border-r 9s ease-in-out infinite alternate}@keyframes stuck-border-l{0%{transform:translate3d(-6%,12%,0) scaleX(.9) scaleY(1.05);opacity:.5}50%{transform:translate3d(6%,-4%,0) scaleX(1.15) scaleY(1.2);opacity:.82}to{transform:translate3d(-4%,10%,0) scaleX(.95) scaleY(1.08);opacity:.52}}@keyframes stuck-border-r{0%{transform:translate3d(6%,-10%,0) scaleX(.92) scaleY(1.08);opacity:.52}50%{transform:translate3d(-6%,6%,0) scaleX(1.16) scaleY(1.22);opacity:.84}to{transform:translate3d(4%,-8%,0) scaleX(.96) scaleY(1.06);opacity:.5}}@media(prefers-reduced-motion:reduce){.stuck-cloud:before,.stuck-cloud:after,.stuck-cloud-border:before,.stuck-cloud-border:after{animation:none;transform:none;opacity:.72}}.stuck-veil{position:absolute;inset:0;border-radius:8px;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 50%,transparent 30%,color-mix(in oklab,#6f4bd8 30%,transparent) 72%,color-mix(in oklab,#6f4bd8 62%,transparent) 100%);opacity:0;will-change:transform,opacity;animation:stuck-veil-pulse 2.4s ease-in-out infinite both}@keyframes stuck-veil-pulse{0%{opacity:.18;transform:scale(1.06)}50%{opacity:.62;transform:scale(.9)}to{opacity:.18;transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.stuck-veil{animation:none;opacity:.42;transform:none}}.loading-overlay{position:fixed;inset:0;z-index:55;overflow:hidden;pointer-events:none;background:var(--bg);opacity:1;transition:opacity var(--dur-med, .22s) var(--ease-out, ease);will-change:opacity}.loading-overlay .loading-backdrop{opacity:.85}.loading-overlay.is-hidden{opacity:0}.loading-caption{position:fixed;left:0;right:0;bottom:18vh;z-index:56;margin:0;text-align:center;pointer-events:none;font-family:var(--font-digit, inherit);font-size:clamp(1rem,4.5vw,1.4rem);letter-spacing:.02em;color:var(--text, #e6e8ee);text-shadow:0 1px 8px rgba(0,0,0,.6);animation:loading-caption-pulse 2.2s ease-in-out infinite}@keyframes loading-caption-pulse{0%,to{opacity:.72}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.loading-caption{animation:none;opacity:.92}}.refusal-veil{position:absolute;inset:0;border-radius:8px;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 50%,transparent 22%,color-mix(in oklab,#ff2d2d 34%,transparent) 66%,color-mix(in oklab,#ff1a1a 74%,transparent) 100%);opacity:0;will-change:opacity;animation:refusal-flash .6s ease-out both}@keyframes refusal-flash{0%{opacity:0}12%{opacity:.92}38%{opacity:.6}to{opacity:0}}.board.is-refused{animation:refusal-shake .6s cubic-bezier(.36,.07,.19,.97) both}@keyframes refusal-shake{0%{transform:translate(0)}10%{transform:translate(-8px)}22%{transform:translate(7px)}34%{transform:translate(-6px)}46%{transform:translate(5px)}58%{transform:translate(-3px)}70%{transform:translate(2px)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.board.is-refused{animation:none}.refusal-veil{animation:refusal-flash-rm .6s ease-out both}}@keyframes refusal-flash-rm{0%{opacity:0}15%{opacity:.66}to{opacity:0}}.update-toast{position:fixed;bottom:clamp(8px,3vh,24px);left:50%;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:10px;max-width:min(94vw,420px);padding:8px 12px;border-radius:10px;background:var(--surface-strong);box-shadow:inset 0 0 0 1px var(--accent),0 4px 16px #00000059;color:var(--text);font-size:.9rem}.update-toast .update-toast-reload{flex:0 0 auto;padding:4px 12px;border:0;border-radius:999px;background:var(--accent);color:#0b0d12;cursor:pointer}.update-toast .update-toast-dismiss{flex:0 0 auto;width:24px;height:24px;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font-size:1.1rem;cursor:pointer}.coop-stuck-notice{position:fixed;top:clamp(8px,3vh,24px);left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:2px;max-width:min(94vw,440px);padding:8px 14px;border-radius:10px;background:var(--surface-strong);box-shadow:inset 0 0 0 1px var(--shared),0 4px 16px #00000059;color:var(--text);text-align:center;pointer-events:none}.coop-stuck-notice .coop-stuck-notice-title{font-size:.95rem;font-weight:600;color:var(--shared)}.coop-stuck-notice .coop-stuck-notice-msg{font-size:.85rem;color:var(--text-muted)}.coop-stuck-notice .coop-stuck-notice-action{align-self:center;margin-top:6px;padding:4px 12px;border:1px solid var(--shared);border-radius:8px;background:transparent;color:var(--shared);font-size:.85rem;font-weight:600;cursor:pointer;pointer-events:auto}.coop-stuck-notice .coop-stuck-notice-action:hover{background:color-mix(in srgb,var(--shared) 14%,transparent)}.settings-update{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.settings-update .update-reload-btn{color:var(--accent-strong)}
