*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #07060f;--ink: #eef0ff;--quiet: #9aa0c3;--rule: #262544;--danger: #ff4d5e;--panel: #0c0b18;--scrim: rgba(7, 6, 15, .78);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--r-control: 6px;--r-card: 8px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-enter: cubic-bezier(.22, 1, .36, 1);--t-enter: .18s;color-scheme:dark}html,body{height:100%;width:100%;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}button,input,output{font:inherit;color:inherit}ol,ul{list-style:none}.num,output,kbd{font-family:var(--mono);font-variant-numeric:tabular-nums}#game{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;touch-action:none}#ui{position:fixed;inset:0;z-index:10;pointer-events:none}#ui.ui-hidden{display:none}.screen{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;display:flex;flex-direction:column;align-items:center;padding:max(var(--s6),env(safe-area-inset-top)) max(var(--s5),env(safe-area-inset-right)) max(var(--s6),env(safe-area-inset-bottom)) max(var(--s5),env(safe-area-inset-left));background:var(--scrim);animation:screen-in var(--t-enter) var(--ease-enter) backwards}.screen>*{margin-block:auto;width:100%}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes screen-fade-in{0%{opacity:0}to{opacity:1}}.screen-results{animation-name:screen-fade-in}.screen.no-enter{animation:none}.heading{font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.01em}.heading-xl{font-size:40px;line-height:1.1}.meta,.meta-heading,.eyebrow{font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet)}.meta-heading{margin-bottom:var(--s3)}.note{font-size:13px;color:var(--quiet)}.panel{max-width:720px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--r-card);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s5)}.panel-stages{max-width:1040px}.panel-settings{max-width:640px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}.actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}.actions-col{flex-direction:column;align-items:stretch}.btn{min-height:44px;padding:var(--s3) var(--s5);border-radius:var(--r-control);border:1px solid var(--rule);background:transparent;color:var(--ink);font-size:15px;font-weight:600;line-height:1.2;cursor:pointer;transition:border-color .12s linear,background-color .12s linear}.btn:hover{border-color:var(--quiet)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-primary:hover{background:#fff;border-color:#fff}.btn-lg{min-height:52px;padding:var(--s4) var(--s6);font-size:16px}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.btn-danger.armed{background:var(--danger);color:var(--bg)}button:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}button:disabled,button[aria-disabled=true]{cursor:not-allowed}.level{display:flex;flex-direction:column;gap:var(--s2);max-width:360px}.level-row{display:flex;justify-content:space-between;gap:var(--s4);font-size:13px}.level-label{font-weight:600}.level-xp{color:var(--quiet)}.progress-rule{height:3px;background:var(--rule)}.progress-fill{height:100%;background:var(--ink)}.screen-title{align-items:flex-start;padding-inline:max(clamp(24px,8vw,128px),env(safe-area-inset-left)) var(--s5);background:none}.title-block{max-width:520px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4)}.mark{display:inline-flex;flex-direction:column;gap:var(--s3);margin-bottom:var(--s2)}.wordmark{font-size:clamp(40px,8vw,56px);line-height:1;font-weight:800;letter-spacing:.1em;margin-right:-.1em;white-space:nowrap;color:var(--ink)}.thread-rule{display:flex;flex-direction:column;gap:3px}.thread-rule span{display:block;height:3px}.tagline{font-size:20px;line-height:1.3;font-weight:600}.pitch{font-size:16px;color:var(--quiet);text-wrap:balance}.title-block .actions{margin-top:var(--s2)}.title-block .level{width:100%;margin-top:var(--s3)}.howto-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s4)}.card{border:1px solid var(--rule);border-radius:var(--r-card);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2)}.card-num{font-size:28px;line-height:1;color:var(--quiet)}.card-title{font-size:16px;font-weight:700}.card-body{font-size:15px;color:var(--quiet)}.key-row{display:flex;gap:var(--s2);margin-top:var(--s2)}.key{min-width:36px;padding:var(--s1) var(--s2);text-align:center;font-size:16px;font-weight:700;color:var(--lane);border:1px solid var(--rule);border-bottom:3px solid var(--lane);border-radius:var(--r-control)}.stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s3)}.stage-item{display:flex}.stage-card{flex:1;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s4);align-items:start;text-align:left;padding:var(--s4) var(--s2);background:transparent;border:0;border-top:1px solid var(--rule);border-radius:0;cursor:pointer;transition:background-color .12s linear}.stage-card:hover:not(:disabled):not([aria-disabled=true]){background:#ffffff08}.stage-index{font-size:28px;line-height:1;font-weight:600;color:var(--quiet)}.stage-body{display:flex;flex-direction:column;gap:var(--s1);min-width:0}.stage-name{font-size:20px;line-height:1.2;font-weight:700;overflow-wrap:break-word}.stage-sub{font-size:13px;color:var(--quiet)}.stage-meta{display:flex;flex-wrap:wrap;white-space:nowrap;align-items:center;gap:var(--s2);margin-top:var(--s2);font-size:13px;color:var(--quiet)}.thread-marks{display:inline-flex;gap:3px}.thread-mark{display:block;width:3px;height:12px}.stage-side{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:var(--s2)}.stage-best{font-size:15px}.stage-lock{margin-top:var(--s1);font-size:13px;color:var(--quiet)}.stage-best.unplayed{font-size:13px;color:var(--quiet)}.stage-card.locked .stage-name{color:var(--quiet)}.stage-card.locked .stage-index,.stage-card.locked .thread-marks{opacity:.4}.stars{display:inline-flex;gap:2px;font-size:15px;line-height:1}.star.on{color:var(--ink)}.star.off{color:var(--quiet)}.stars-lg{font-size:20px;gap:var(--s1)}.screen-pause{background:var(--bg)}.pause-block{max-width:320px;display:flex;flex-direction:column;align-items:stretch;gap:var(--s4);text-align:center}.pause-stage{font-size:16px;color:var(--quiet);margin-top:calc(-1 * var(--s2));margin-bottom:var(--s3)}.pause-block .note{margin-top:var(--s2)}.screen-results{background:var(--bg)}.results-grid{max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6);align-items:start}.results-main,.results-side{display:flex;flex-direction:column;gap:var(--s4);min-width:0}.results-side{gap:var(--s6)}.results-side>.actions{position:sticky;bottom:0;z-index:1;padding-block:var(--s3);background:var(--bg);border-top:1px solid var(--rule)}.panel-settings .panel-head{align-items:center}.outcome{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.01em}.outcome-collapse{color:var(--danger)}.score-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s4)}.score{font-size:56px;line-height:1;font-weight:700}.badge{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:var(--s1) var(--s2);border:1px solid var(--ink);border-radius:4px}.cloth{margin:var(--s4) 0 0;display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s4) var(--s6);padding-top:var(--s4);border-top:1px solid var(--rule)}.cloth-canvas{display:block;flex:none;height:320px}.cloth-key{flex:1 1 180px;min-width:0;display:flex;flex-direction:column;gap:var(--s2)}.cloth-title{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet)}.cloth-caption{font-size:13px;color:var(--quiet)}.cloth-legend{display:flex;flex-direction:column;gap:var(--s3);margin:var(--s2) 0 0}.cloth-legend-row{display:flex;flex-direction:column;gap:2px}.cloth-legend-term{display:flex;align-items:center;gap:var(--s2);font-size:13px;color:var(--quiet)}.cloth-legend-value{display:flex;align-items:baseline;gap:var(--s1);margin:0 0 0 calc(12px + var(--s2))}.cloth-legend-value .num{font-size:17px;font-weight:600;color:var(--ink)}.cloth-legend-value .unit{font-size:13px;color:var(--quiet)}.cloth-mark{flex:none;display:inline-block;width:12px;height:12px;position:relative}.cloth-mark-stitch:after,.cloth-mark-thread:after,.cloth-mark-weft:after,.cloth-mark-knot:after{content:"";position:absolute}.cloth-mark-stitch:after{left:3px;top:2px;width:6px;height:8px;background:var(--l0)}.cloth-mark-thread:after{left:5px;top:0;width:2px;height:12px;background:var(--l0);opacity:.55}.cloth-mark-weft:after{left:0;top:5px;width:12px;height:2px;background:var(--ink);opacity:.85}.cloth-mark-knot:after{left:4px;top:4px;width:4px;height:4px;background:var(--danger)}.ledger-table{width:100%;border-collapse:collapse}.ledger-table tr{border-bottom:1px solid var(--rule)}.ledger-table th,.ledger-table td{padding:var(--s2) 0;vertical-align:baseline}.ledger-label{text-align:left;font-weight:400}.ledger-name{display:block;font-size:15px}.ledger-help{display:block;font-size:13px;line-height:1.4;color:var(--quiet);padding-right:var(--s3)}.ledger-value{text-align:right;font-size:16px;white-space:nowrap}.ledger-unit{width:52px;padding-left:var(--s2)!important;font-size:13px;color:var(--quiet);white-space:nowrap}.versus{display:flex;flex-direction:column;gap:var(--s3)}.versus-row{display:flex;flex-direction:column;gap:var(--s1)}.versus-head{display:flex;justify-content:space-between;gap:var(--s3);font-size:15px}.versus-row.serial .versus-head{color:var(--quiet)}.versus-track{height:10px;background:var(--rule);border-radius:2px;overflow:hidden}.versus-fill{height:100%;border-radius:2px}.versus-row.you .versus-fill{background:linear-gradient(90deg,var(--l0),var(--l1),var(--l2))}.versus-row.serial .versus-fill{background:#5a5d7a}.progression{display:flex;flex-direction:column;gap:var(--s3)}.xp-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}.xp-gain{font-size:20px;font-weight:600}.progression .level{max-width:none}.unlocks{display:flex;flex-direction:column;gap:var(--s1);font-size:15px}.unlock:before{content:"";display:inline-block;width:3px;height:12px;margin-right:var(--s2);background:var(--l0);vertical-align:-1px}@media(min-width:760px){.results-grid{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:var(--s7)}.cloth-canvas{height:420px}}.settings-list{display:flex;flex-direction:column}.setting{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3) var(--s5);align-items:center;padding:var(--s4) 0;border-bottom:1px solid var(--rule)}.setting:first-child{border-top:1px solid var(--rule)}.setting-text{display:flex;flex-direction:column;gap:2px;min-width:0}.setting-label{font-size:16px;font-weight:600}.setting-help{font-size:13px;color:var(--quiet)}.setting-control{display:flex;align-items:center;gap:var(--s3);justify-content:flex-end}.setting-value{min-width:64px;text-align:right;font-size:15px}.range{-webkit-appearance:none;appearance:none;width:200px;height:20px;background:transparent;cursor:pointer}.range::-webkit-slider-runnable-track{height:4px;background:var(--rule);border-radius:2px}.range::-moz-range-track{height:4px;background:var(--rule);border-radius:2px}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--ink);border:none}.range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ink);border:none}.switch{-webkit-appearance:none;appearance:none;position:relative;flex:none;width:44px;height:24px;border:1px solid var(--rule);border-radius:var(--r-control);background:var(--bg);cursor:pointer;transition:background-color .12s linear,border-color .12s linear}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:4px;background:var(--quiet);transition:transform .12s var(--ease-enter),background-color .12s linear}.switch:checked{background:var(--ink);border-color:var(--ink)}.switch:checked:after{background:var(--bg);transform:translate(20px)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s3)}.theme-btn{display:flex;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s3) var(--s2);text-align:left;font-size:15px;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;cursor:pointer;transition:border-color .12s linear,background-color .12s linear}.theme-btn:hover:not(:disabled):not([aria-disabled=true]){background:#ffffff08}.theme-btn[aria-checked=true]{border-bottom-color:var(--ink);font-weight:600}.theme-btn:disabled,.theme-btn[aria-disabled=true]{color:var(--quiet)}.theme-btn:disabled .swatches,.theme-btn[aria-disabled=true] .swatches{opacity:.4}.swatches{display:inline-flex;gap:3px;flex:none}.swatch{display:block;width:3px;height:16px}.theme-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.theme-name{overflow-wrap:break-word}.theme-lock{font-size:13px;color:var(--quiet)}.danger-zone{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);padding-top:var(--s5);border-top:1px solid var(--rule)}#perf{position:fixed;top:max(var(--s2),env(safe-area-inset-top));right:max(var(--s2),env(safe-area-inset-right));z-index:30;padding:var(--s1) var(--s2);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;line-height:1.4;white-space:pre-line;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:var(--r-control);pointer-events:none}#perf[hidden]{display:none}#toast{position:fixed;left:50%;bottom:max(var(--s5),env(safe-area-inset-bottom));z-index:40;max-width:min(480px,calc(100vw - 32px));padding:var(--s2) var(--s4) var(--s2) var(--s3);font-size:14px;line-height:1.4;text-align:left;color:var(--ink);background:#07060ff0;border:0;border-left:3px solid var(--ink);border-radius:0;transform:translate(-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s linear,visibility 0s linear .18s}#toast.show{opacity:1;visibility:visible;transition:opacity .18s linear,visibility 0s}@media(max-width:560px){.screen{padding-inline:max(var(--s4),env(safe-area-inset-left))}.screen-title{align-items:center;padding-inline:var(--s4)}.title-block{align-items:center;text-align:center;margin-inline:auto;width:min(100%,320px)}.title-block .actions{justify-content:center;width:100%}.title-block .actions .btn{flex:1}.title-block .level{margin-inline:auto;max-width:320px}.panel{padding:var(--s5) var(--s4)}.stage-grid,.setting{grid-template-columns:minmax(0,1fr)}.setting-control{justify-content:space-between}.setting-range .setting-control .range{flex:1;width:auto}.setting-toggle{grid-template-columns:minmax(0,1fr) auto}.outcome{font-size:28px}.score{font-size:40px}}.reduced-motion .screen,.reduced-motion.ui-root .screen{animation:none}.reduced-motion *,.reduced-motion #toast,html.reduced-motion #toast{transition:none!important}@media(prefers-reduced-motion:reduce){.screen{animation:none}*,#toast,#toast.show{transition:none!important}}.screen-results{padding-bottom:0}.results-side>.actions{padding-bottom:max(var(--s3),env(safe-area-inset-bottom))}@media(max-width:759px){.results-side>.actions{position:fixed;left:0;right:0;bottom:0;z-index:5;padding-inline:max(var(--s4),env(safe-area-inset-left)) max(var(--s4),env(safe-area-inset-right))}.results-side>.actions:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:32px;background:linear-gradient(to bottom,rgba(7,6,15,0),var(--bg));pointer-events:none}.screen-results{padding-bottom:calc(var(--bar-h, 76px) + var(--s3))}}body:has(#perf:not([hidden])) .screen{padding-top:calc(max(var(--s6),env(safe-area-inset-top)) + 64px)}.switch:disabled{opacity:.55;cursor:not-allowed}.storage-status{margin:0 0 var(--s3);padding-left:var(--s3);border-left:3px solid var(--danger);font-size:13px;line-height:1.4;color:var(--ink);max-width:60ch;text-align:left;align-self:stretch}.panel-stages,.panel-howto,.panel-settings{border-color:transparent;background:transparent}.howto-card{border:none;border-top:1px solid var(--rule);border-radius:0;background:transparent;padding-inline:0}.screen-stages,.screen-settings,.screen-howto{background:var(--bg)}.board{position:fixed;inset:0;z-index:2;pointer-events:none}.board[hidden]{display:none}.thread{position:absolute;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);pointer-events:auto;background:var(--bg);border-top:3px solid var(--thread);overflow:hidden}.thread[data-phase=snapped]{border-top-color:var(--rule);opacity:.55}.thread-head{display:flex;align-items:baseline;gap:var(--s2);min-width:0}.thread-num{font-size:13px;font-weight:700;color:var(--thread)}.thread-title{min-width:0;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--quiet);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--s1);min-height:0;text-align:center}.thread-kicker{font-size:13px;color:var(--quiet)}.thread-big{font-family:var(--mono);font-size:clamp(32px,5vw,56px);font-weight:700;line-height:1;color:var(--ink)}.thread-correct{color:var(--thread)}.thread-wrong,.thread-expired{color:var(--danger)}.thread-seq,.thread-expr{font-family:var(--mono);font-size:clamp(16px,1.8vw,24px);font-weight:600;line-height:1.3;color:var(--ink);overflow-wrap:anywhere}.thread-inputs{font-size:15px;color:var(--quiet)}.thread-question{min-height:1.4em;font-size:17px;font-weight:700;text-align:center;color:var(--ink)}.thread[data-phase=ask]{box-shadow:inset 0 0 0 1px var(--thread),0 0 32px -8px var(--thread);animation:ask-in .42s cubic-bezier(.22,1,.36,1) both}.thread[data-phase=ask] .thread-question{padding:var(--s2) var(--s3);font-size:21px;line-height:1.25;color:var(--ink);background:color-mix(in srgb,var(--thread) 22%,transparent);border-left:4px solid var(--thread);border-radius:2px;animation:question-in .42s cubic-bezier(.22,1,.36,1) both}.thread[data-phase=ask] .thread-option{border-color:color-mix(in srgb,var(--thread) 55%,var(--rule))}.thread[data-phase=ask] .thread-timer{height:5px}@keyframes ask-in{0%{box-shadow:inset 0 0 0 2px var(--thread),0 0 64px 4px var(--thread)}}@keyframes question-in{0%{transform:scale(1.08);background:color-mix(in srgb,var(--thread) 55%,transparent)}}.board-pause{position:fixed;top:calc(max(var(--s2),env(safe-area-inset-top)) + 34px);right:max(var(--s2),env(safe-area-inset-right));display:inline-flex;align-items:center;gap:var(--s2);min-width:44px;min-height:44px;padding:0 var(--s3);font:inherit;font-size:13px;font-weight:600;color:var(--quiet);background:var(--bg);border:1px solid var(--rule);border-radius:var(--r-control);cursor:pointer;pointer-events:auto;touch-action:manipulation}.board-pause:hover{color:var(--ink);border-color:var(--quiet)}.board-pause-icon{width:10px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor}.board-collapse .thread{animation:card-fall 1.5s cubic-bezier(.55,0,.9,.4) both;animation-delay:calc(var(--i) * 90ms + .12s)}.board-collapse .thread:nth-of-type(2n){--tilt: -9deg}.board-collapse .board-pause,.board-collapse .board-status{visibility:hidden}@keyframes card-fall{0%{transform:none;opacity:1}12%{transform:translate(-6px) rotate(-1.5deg)}22%{transform:translate(6px) rotate(1.5deg)}to{transform:translateY(75vh) rotate(var(--tilt, 9deg));opacity:0}}.board-collapse-label{position:fixed;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s5);text-align:center;pointer-events:none}.board-collapse .board-collapse-label{display:flex;animation:collapse-label 2.2s ease-out both}.board-collapse-title{font-size:clamp(28px,6vw,48px);font-weight:700;color:var(--danger)}.board-collapse-reason{font-size:16px;color:var(--ink)}@keyframes collapse-label{0%,25%{opacity:0;transform:scale(.96)}45%,to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.thread[data-phase=ask],.thread[data-phase=ask] .thread-question{animation:none}.board-collapse .thread{animation:card-fade .6s linear both}.board-collapse .board-collapse-label{animation:none}}html.reduced-motion .thread[data-phase=ask],html.reduced-motion .thread[data-phase=ask] .thread-question,html.reduced-motion .board-collapse .board-collapse-label{animation:none}html.reduced-motion .board-collapse .thread{animation:card-fade .6s linear both}@keyframes card-fade{to{opacity:0}}.thread-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}.thread-option{display:flex;flex-direction:column;align-items:center;gap:var(--s1);min-height:56px;padding:var(--s2);font:inherit;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:var(--r-control);cursor:pointer;touch-action:manipulation}.thread-option:hover:not(:disabled){border-color:var(--thread)}.thread-option[hidden]{display:none}.thread-key{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--thread)}.thread-option-label{font-family:var(--mono);font-size:16px;font-weight:600;overflow-wrap:anywhere}.thread-timer{height:3px;background:var(--rule)}.thread-timer[hidden]{display:none}.thread-timer-fill{display:block;height:100%;background:var(--thread);transform-origin:left center}.thread[data-phase=idle] .thread-timer-fill{background:var(--quiet);opacity:.5}.thread-note{min-height:2.6em;font-size:13px;line-height:1.35;color:var(--quiet)}.board-narrow .thread{padding:var(--s2)}.board-narrow .thread-options{grid-template-columns:1fr}.board-narrow .thread-option{min-height:44px}.board-narrow .thread-question{font-size:14px}.board-narrow .thread-note{display:none}.board-status{position:fixed;left:50%;bottom:max(var(--s2),env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100vw - 32px);font-size:12px;color:var(--quiet);text-align:center;pointer-events:none}.board-status[data-mode=local]{color:var(--ink)}.key-pair{display:inline-flex;gap:var(--s1);margin-right:var(--s3)}.stage-kinds{color:var(--quiet)}.panel-brief{max-width:760px;background:transparent;border-color:transparent}.screen-brief{background:var(--bg)}.brief-subtitle{font-size:16px;color:var(--quiet)}.brief-lead{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4) 0;border-top:1px solid var(--rule)}.brief-focus{font-size:22px;font-weight:700}.brief-steps{display:flex;flex-direction:column;gap:var(--s2);padding-left:1.3em;font-size:16px;line-height:1.45}.brief-label{margin-bottom:var(--s2);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet)}.brief-kinds,.brief-keys{padding:var(--s4) 0;border-top:1px solid var(--rule)}.brief-kind-list{display:flex;flex-direction:column;gap:var(--s3)}.brief-kind dt{font-weight:700}.brief-kind dd{margin:2px 0 0;font-size:15px;line-height:1.45;color:var(--quiet)}.brief-keys .note{margin-top:var(--s3)}.btn-key{margin-left:var(--s2);padding:0 5px;font-family:var(--mono);font-size:12px;font-weight:700;line-height:18px;color:inherit;opacity:.75;border:1px solid currentColor;border-radius:3px}@media(max-width:559px){.thread[data-phase=ask] .thread-question{font-size:16px;padding:var(--s1) var(--s2)}.brief-focus{font-size:19px}}.board-narrow .thread[data-phase=ask] .thread-question{font-size:14px;padding:var(--s1) var(--s2);border-left-width:3px}@media(max-height:460px){.thread{gap:var(--s1);padding:var(--s2)}.thread-big{font-size:28px}.thread-note{display:none}.thread-option{min-height:40px;padding:var(--s1)}.thread[data-phase=ask] .thread-question{font-size:15px;padding:2px var(--s2)}.board-pause{top:max(var(--s1),env(safe-area-inset-top));right:auto;left:calc(50% + 48px)}}.screen-progress{background:var(--bg)}.panel-progress{max-width:1040px;background:transparent;border-color:transparent}.progress-lede,.progress-empty{max-width:70ch;font-size:15px;line-height:1.45;color:var(--quiet)}.progress-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);padding:0;list-style:none;font-size:13px;color:var(--quiet)}.progress-legend-item{display:inline-flex;align-items:center;gap:var(--s2)}.progress-dot{width:9px;height:9px;border-radius:50%}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s5)}.progress-card{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--rule);min-width:0}.progress-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}.progress-title{font-size:17px;font-weight:700}.progress-trend{font-family:var(--mono);font-size:13px;font-weight:700}.progress-trend.up{color:#5ef0a8}.progress-trend.down{color:var(--danger)}.progress-trend.flat{color:var(--quiet)}.progress-help{font-size:13px;line-height:1.4;color:var(--quiet)}.progress-canvas{display:block;width:100%;height:180px}.progress-canvas-compact{height:90px}.progress-data summary{font-size:13px;color:var(--quiet);cursor:pointer}.progress-table{width:100%;margin-top:var(--s2);border-collapse:collapse;font-size:13px}.progress-table th,.progress-table td{padding:4px var(--s2);text-align:right;border-bottom:1px solid var(--rule)}.progress-table th{color:var(--quiet);font-weight:600}.wave-history{display:flex;flex-direction:column;gap:var(--s2)}@media(max-width:559px){.progress-grid{grid-template-columns:minmax(0,1fr)}.progress-canvas{height:150px}}.board-slow-btn{position:fixed;top:calc(max(var(--s2),env(safe-area-inset-top)) + 34px);right:calc(max(var(--s2),env(safe-area-inset-right)) + 128px);display:inline-flex;align-items:center;gap:var(--s1);min-height:44px;padding:0 var(--s3);font:inherit;font-size:13px;font-weight:600;color:var(--quiet);background:var(--bg);border:1px solid var(--rule);border-radius:var(--r-control);cursor:pointer;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board-slowed .board-slow-btn{color:var(--bg);background:#7fb2ff;border-color:#7fb2ff}.board-practice{position:fixed;top:calc(max(var(--s2),env(safe-area-inset-top)) + 40px);left:max(var(--s3),env(safe-area-inset-left));padding:2px var(--s2);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7fb2ff;border:1px solid #7fb2ff;border-radius:3px;pointer-events:none}.board-practice[hidden]{display:none}.badge-practice{color:#7fb2ff;border-color:#7fb2ff}@media(max-height:460px){.board-slow-btn{top:max(var(--s1),env(safe-area-inset-top));right:auto;left:calc(50% + 140px)}}.thread[data-phase=rest]{opacity:.35;border-top-color:var(--rule)}.thread[data-phase=rest] .thread-kicker{font-size:12px}.thread-trail{font-family:var(--mono);font-size:clamp(18px,2.2vw,28px);font-weight:700;line-height:1.35;word-spacing:.25em;color:var(--ink);overflow-wrap:anywhere}.anchor-item{display:inline-flex;flex-direction:column;align-items:center;gap:var(--s1)}.anchor-big .anchor-swatch{width:clamp(56px,8vw,96px);height:clamp(56px,8vw,96px);border-radius:12px;box-shadow:0 0 36px -6px currentColor}.anchor-big .anchor-icon{font-size:clamp(48px,7vw,84px);line-height:1}.anchor-big .anchor-name{font-size:15px;font-weight:600}.anchor-chip{flex-direction:row;gap:var(--s2)}.anchor-chip .anchor-swatch{width:18px;height:18px;border-radius:4px}.anchor-chip .anchor-icon{font-size:22px;line-height:1}.anchor-chip .anchor-name{font-size:14px;font-weight:600}.anchor-set{display:inline-flex;gap:4px;font-size:22px;line-height:1}.board-narrow .anchor-chip{flex-direction:column;gap:2px}.board-narrow .anchor-chip .anchor-name{font-size:11px}.board-narrow .anchor-set{font-size:16px;gap:1px}.board-coach{position:fixed;left:50%;bottom:calc(max(var(--s2),env(safe-area-inset-bottom)) + 26px);max-width:min(620px,calc(100vw - 32px));padding:var(--s2) var(--s4);font-size:15px;font-style:italic;line-height:1.4;text-align:center;color:var(--ink);background:#07060fcc;border-radius:999px;transform:translate(-50%);opacity:0;pointer-events:none}.board-coach.show{animation:coach 5.5s ease both}@keyframes coach{0%{opacity:0;transform:translate(-50%) translateY(8px)}8%,82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.board-celebrate{position:fixed;top:38%;left:50%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s4) var(--s6);text-align:center;background:#07060fe0;border:1px solid var(--rule);border-radius:14px;transform:translate(-50%,-50%);opacity:0;pointer-events:none;z-index:3}.board-celebrate.is-up,.board-celebrate.is-column{border-color:#ffe14a;box-shadow:0 0 60px -12px #ffe14a}.board-celebrate.is-column{border-color:#5ef0a8;box-shadow:0 0 90px -8px #5ef0a8}.board-celebrate.show.is-up,.board-celebrate.show.is-column{animation:celebrate 2.2s cubic-bezier(.22,1,.36,1) both}.board-celebrate.show.is-down{animation:ease-note 1.6s ease both}.celebrate-kicker{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet)}.celebrate-level{font-size:clamp(30px,5vw,46px);font-weight:800;color:var(--ink)}.celebrate-title{font-size:16px;color:var(--ink)}@keyframes celebrate{0%{opacity:0;transform:translate(-50%,-30%) scale(.9)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}30%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-62%) scale(.98)}}@keyframes ease-note{0%,to{opacity:0}15%,75%{opacity:.85}}@media(prefers-reduced-motion:reduce){.board-celebrate.show.is-up,.board-celebrate.show.is-column{animation:ease-note 1.8s linear both}.board-coach.show{animation:ease-note 5.5s linear both}}html.reduced-motion .board-celebrate.show.is-up,html.reduced-motion .board-celebrate.show.is-column{animation:ease-note 1.8s linear both}html.reduced-motion .board-coach.show{animation:ease-note 5.5s linear both}.brief-philosophy{padding:var(--s3) 0;font-size:19px;font-style:italic;line-height:1.4;color:var(--ink)}.flow-ladder{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s2) var(--s4);padding:0;list-style:none}.flow-ladder-item{display:flex;align-items:baseline;gap:var(--s2);font-size:14px}.flow-ladder-n{min-width:1.6em;color:var(--quiet)}.panel-flowresults{max-width:820px;background:transparent;border-color:transparent}.screen-flowresults{background:var(--bg)}.flow-peak-title{font-size:18px;color:var(--quiet)}.flow-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.flow-stat dt{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet)}.flow-stat dd{margin:2px 0 0;font-size:24px;font-weight:700}.essay-link{display:inline-block;margin-top:var(--s2);font-size:14px;color:var(--quiet);text-underline-offset:3px}.essay-link:hover{color:var(--ink)}@media(max-width:559px){.board-slow-btn{top:auto;bottom:max(var(--s2),env(safe-area-inset-bottom));right:max(var(--s2),env(safe-area-inset-right))}.board-slow-btn kbd{display:none}.board-coach{bottom:calc(max(var(--s2),env(safe-area-inset-bottom)) + 56px);max-width:calc(100vw - 24px);padding:var(--s1) var(--s3);font-size:13px;border-radius:12px}}.thread.win{--win-bg: #111019;--win-bar: #1a1926;--win-edge: rgba(255, 255, 255, .09);padding:0;gap:0;background:var(--win-bg);border:1px solid var(--win-edge);border-top:1px solid var(--win-edge);border-radius:10px;box-shadow:0 14px 34px -22px #000000e6;transition:box-shadow .22s var(--ease-enter),border-color .22s var(--ease-enter)}.win>:not(.win-bar){margin-inline:var(--s3)}.win .thread-body,.win .thread-question,.win .thread-options,.win .thread-timer{margin-top:var(--s2)}.win .thread-note{margin-top:var(--s1);margin-bottom:var(--s2)}.win-bar{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s2);height:30px;padding:0 var(--s3);background:var(--win-bar);border-bottom:1px solid var(--win-edge);box-shadow:inset 0 -2px 0 -1px color-mix(in srgb,var(--thread) 55%,transparent)}.win-bar:after{content:"";width:48px}.win-lights{display:inline-flex;gap:6px;width:48px}.win-light{width:11px;height:11px;border-radius:50%;background:#3b3a4a;box-shadow:inset 0 0 0 .5px #00000059;transition:background-color .22s var(--ease-enter)}.win-label{display:flex;justify-content:center;align-items:baseline;gap:6px;min-width:0;font-size:12px;color:var(--quiet);white-space:nowrap}.win .thread-num{font-size:12px}.win .thread-title{flex:0 1 auto;font-size:12px;letter-spacing:0;text-transform:none;color:var(--ink);opacity:.8}.win-proc{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;opacity:.7}.thread.win[data-phase=ask]{border-color:color-mix(in srgb,var(--thread) 60%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--thread) 40%,transparent),0 24px 48px -18px #000000f2,0 0 36px -10px var(--thread);animation:win-focus .42s var(--ease-enter) both}.thread.win[data-phase=ask] .win-bar{background:color-mix(in srgb,var(--thread) 16%,var(--win-bar))}.thread.win[data-phase=ask] .win-close{background:#ff5f57}.thread.win[data-phase=ask] .win-min{background:#febc2e}.thread.win[data-phase=ask] .win-zoom{background:#28c840}.thread.win[data-phase=ask] .thread-title{opacity:1}@keyframes win-focus{0%{transform:translateY(4px) scale(.985)}}.thread.win[data-phase=rest]{opacity:.4;border-style:dashed;box-shadow:none}.thread.win[data-phase=rest] .win-bar{box-shadow:none}.thread.win[data-phase=snapped] .win-bar{background:color-mix(in srgb,var(--danger) 14%,var(--win-bar))}.win .thread-options{padding-top:var(--s2);border-top:1px solid var(--win-edge)}.win .thread-options:has(.thread-option:not([hidden])){margin-inline:0;padding-inline:var(--s3)}.win .thread-options:not(:has(.thread-option:not([hidden]))){display:none}.win-terminal{--win-bg: #07080b;--win-bar: #17171d;font-family:var(--mono)}.win-terminal .thread-body{align-items:flex-start;text-align:left}.win-terminal .thread-kicker{font-family:var(--mono);color:#7ee787}.win-terminal .thread-kicker:before{content:"$ ";color:var(--thread)}.win-terminal .thread-big{text-shadow:0 0 12px rgba(126,231,135,.18)}.win-terminal .thread-question{font-family:var(--mono);text-align:left}.win-terminal .thread-question:not(:empty):before{content:"? ";color:var(--thread)}.win-terminal .thread-question:not(:empty):after{content:"";display:inline-block;width:.55em;height:1em;margin-left:4px;vertical-align:text-bottom;background:currentColor;animation:win-caret 1.05s steps(1) infinite}@keyframes win-caret{50%{opacity:0}}.win-terminal .thread-note{font-family:var(--mono);font-size:12px}.win-terminal .thread-note:not(:empty):before{content:"# ";color:var(--rule)}.win-terminal .thread-option{flex-direction:row;justify-content:flex-start;gap:var(--s2);border-radius:4px}.win-terminal .thread-key:before{content:"[";opacity:.6}.win-terminal .thread-key:after{content:"]";opacity:.6}.win-chat{--win-bg: #121119}.win-chat .thread-body{align-items:flex-start;text-align:left}.win-chat .thread-kicker{font-size:12px;color:var(--quiet)}.win-chat .thread-big,.win-chat .thread-trail,.win-chat .thread-expr,.win-chat .anchor-big{max-width:100%;padding:10px 16px;background:#22212e;border-radius:18px 18px 18px 5px}.win-chat .thread-big{font-size:clamp(26px,4vw,44px)}.win-chat .thread-question{align-self:flex-start;max-width:100%;text-align:left}.win.win-chat[data-phase=ask] .thread-question{border-left:0;border-radius:18px 18px 18px 5px}.win-chat .thread-options{display:flex;flex-wrap:wrap;justify-content:flex-end}.win-chat .thread-option{flex:0 1 auto;flex-direction:row;gap:var(--s2);min-width:40%;padding:var(--s2) var(--s4);border-radius:999px}.win.win-chat[data-phase=ask] .thread-option{background:color-mix(in srgb,var(--thread) 12%,transparent)}.win-chat .thread-note{font-size:12px}.thread.win-app{--win-bg: #15141f}.thread.win-app .win-bar,.thread.win-preview .win-bar{background:linear-gradient(#232231,#1b1a27)}.thread.win-app .thread-option,.thread.win-preview .thread-option{border-radius:7px;background:#22212f;box-shadow:inset 0 1px #ffffff0f}.thread.win-preview{--win-bg: #101017}.win-preview .thread-body{background:repeating-conic-gradient(#15151e 0 25%,#111118 0 50%) 0 0 / 16px 16px;border-radius:6px}@media(prefers-reduced-motion:reduce){.thread.win[data-phase=ask]{animation:none}.win-terminal .thread-question:not(:empty):after{animation:none}}html.reduced-motion .thread.win[data-phase=ask],html.reduced-motion .win-terminal .thread-question:not(:empty):after{animation:none}.board-narrow .win-bar{gap:4px;height:24px;padding:0 6px}.board-narrow .win-bar:after{width:0}.board-narrow .win-lights{gap:3px;width:auto}.board-narrow .win-light{width:7px;height:7px}.board-narrow .win-proc{display:none}.board-narrow .win>:not(.win-bar){margin-inline:6px}.board-narrow .win .thread-options:has(.thread-option:not([hidden])){padding-inline:6px}.board-narrow .win-chat .thread-option{min-width:100%}.board-coach{border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#181724eb;box-shadow:0 18px 40px -20px #000000e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.win .thread-body{overflow:hidden}.board-narrow .win-terminal .thread-option,.board-narrow .win-chat .thread-option{flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--s1)}.board-narrow .thread.win[data-phase=ask] .thread-body .thread-big{display:none}.board-narrow .win-terminal .thread-kicker:before{content:none}.thread-option:disabled{cursor:default;opacity:.42}.thread-option-idle{font-family:var(--font);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--quiet)}.board-narrow .thread-option-idle{display:none}.board-pause .btn-key{margin-left:2px}.board-slow-btn kbd,.board-pause kbd{pointer-events:none}@media(max-width:559px){.board-pause .btn-key{display:none}}.welcome-back{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s3);font-size:15px;color:var(--quiet)}.welcome-points{font-weight:700;color:var(--ink)}.essay-link .btn-key{margin-left:var(--s2)}.panel-hands{max-width:820px}.hands-lead{margin:var(--s2) 0 var(--s4);font-size:16px;line-height:1.5;color:var(--quiet)}.hands-kbd{display:flex;justify-content:center;gap:6px;padding:var(--s4) var(--s3);background:var(--panel);border:1px solid var(--rule);border-radius:12px;overflow-x:auto}.hk{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:52px}.hk-gap{width:22px;flex:0 0 22px}.hk-key{position:relative;display:grid;place-items:center;width:52px;height:52px;font-family:var(--mono);font-size:18px;font-weight:700;color:var(--quiet);background:#12111d;border:1px solid var(--rule);border-bottom-width:3px;border-radius:8px;opacity:.55}.hk-bump:after{content:"";position:absolute;bottom:9px;width:12px;height:2px;border-radius:1px;background:currentColor}.hk-used .hk-key{color:var(--lane);background:color-mix(in srgb,var(--lane) 14%,#12111d);border-color:color-mix(in srgb,var(--lane) 55%,var(--rule));border-bottom-color:var(--lane);box-shadow:0 0 22px -8px var(--lane);opacity:1}.hk-col{font-size:13px;font-weight:700;color:var(--lane)}.hk-finger{font-size:11px;color:var(--quiet);white-space:nowrap}.hands-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:var(--s4) 0 var(--s2);padding:0;list-style:none;font-size:15px}.hands-legend li{display:flex;align-items:center;gap:6px}.hands-legend .key,.panel-hands .note .key{min-width:28px;padding:0 6px;font-size:13px}.panel-hands .note .key{--lane: var(--ink)}.hands-dot{width:10px;height:10px;border-radius:50%;background:var(--lane)}.hands-turn{display:none;align-items:center;gap:var(--s3);margin:var(--s3) 0;padding:var(--s3) var(--s4);font-size:16px;background:var(--panel);border:1px solid var(--rule);border-radius:12px}@media(orientation:portrait){.hands-turn{display:flex}}.hands-phone{font-size:34px;animation:hands-turn 2.4s ease-in-out infinite}@keyframes hands-turn{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media(prefers-reduced-motion:reduce){.hands-phone{animation:none;transform:rotate(-90deg)}}html.reduced-motion .hands-phone{animation:none;transform:rotate(-90deg)}.hands-steps{display:grid;gap:var(--s2);margin:var(--s3) 0;padding-left:1.4em;font-size:16px;line-height:1.5}@media(max-width:559px){.hk,.hk-key{min-width:30px;width:30px}.hk-key{height:38px;font-size:14px}.hk-finger{font-size:9px;writing-mode:vertical-rl}.hk-gap{width:6px;flex-basis:6px}}.screen-leaderboard{background:var(--bg)}.panel-leaderboard{max-width:760px}.lb-account{margin:var(--s3) 0 var(--s5);padding:var(--s4);background:var(--panel);border:1px solid var(--rule);border-radius:12px}.lb-signed{margin-bottom:var(--s3);font-size:15px;color:var(--quiet)}.lb-form{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:var(--s3);margin-top:var(--s3)}.lb-form .actions,.lb-error{grid-column:1 / -1}.lb-field{display:grid;gap:var(--s1)}.lb-field-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet)}.lb-input{min-height:44px;padding:0 var(--s3);font:inherit;font-size:17px;color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:var(--r-control)}.lb-input:focus-visible{outline:2px solid var(--l0);outline-offset:1px}.lb-pin{font-family:var(--mono);letter-spacing:.4em;text-align:center}.lb-error{min-height:1.3em;font-size:14px;color:var(--danger)}.lb-error:empty{min-height:0}.lb-tabs{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}.lb-tab{min-height:36px;padding:0 var(--s3);font-size:14px}.lb-tab.is-on{color:var(--bg);background:var(--ink);border-color:var(--ink)}.lb-table{width:100%;border-collapse:collapse;font-size:16px}.lb-table th{padding:var(--s2);font-size:12px;font-weight:700;letter-spacing:.12em;text-align:left;text-transform:uppercase;color:var(--quiet);border-bottom:1px solid var(--rule)}.lb-table td{padding:var(--s2);border-bottom:1px solid color-mix(in srgb,var(--rule) 60%,transparent)}.lb-table td:first-child{width:3em;color:var(--quiet)}.lb-table .lb-num{text-align:right}.lb-table tr.is-me td{color:var(--ink);font-weight:700;background:color-mix(in srgb,var(--l0) 12%,transparent)}.lb-me{margin-top:var(--s3);font-size:15px;color:var(--quiet)}@media(max-width:559px){.lb-form{grid-template-columns:minmax(0,1fr)}}.lb-keys{grid-column:1 / -1}.lb-keys .btn-key{margin-left:0}@media(hover:none)and (pointer:coarse){.btn-key,.lb-keys{display:none}}
