*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;background:var(--stage);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}img,svg,video,canvas{max-width:100%;display:block}button{font:inherit;color:inherit}input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--h-primary:186;--h-accent:58;--radius:10px;--radius-sm:7px;--z-overlay:10;--text-display:1.75rem;--text-title:1.1rem;--text-body:1rem;--text-label:.8rem;--text-compact:.7rem;--text-mono:.65rem;--white-count:29;--key-press:color-mix(in srgb, var(--accent) 55%, transparent)}main{--kb-h:clamp(3.25rem, min(calc(100vw / var(--white-count) * 4.4), 38vh), 7.5rem)}[data-palette=verdigris]{--h-primary:186;--h-accent:58}[data-palette=amber]{--h-primary:70;--h-accent:235}[data-palette=indigo]{--h-primary:274;--h-accent:150}[data-palette=rose]{--h-primary:8;--h-accent:180}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--stage:oklch(.12 .01 var(--h-primary));--surface:oklch(.225 .014 var(--h-primary));--surface-2:oklch(.275 .016 var(--h-primary));--line:oklch(.31 .012 var(--h-primary));--ink:oklch(.96 .004 var(--h-primary));--muted:oklch(.71 .011 var(--h-primary));--primary:oklch(.82 .11 var(--h-primary));--on-primary:oklch(.18 .02 var(--h-primary));--accent:oklch(.8 .11 var(--h-accent));--danger:oklch(72% .14 28);--clean:#12b886;--clean-ink:#12b886;--key-white:var(--surface);--key-line:var(--line)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--stage:oklch(.995 .003 var(--h-primary));--surface:oklch(.945 .008 var(--h-primary));--surface-2:oklch(.905 .012 var(--h-primary));--line:oklch(.87 .01 var(--h-primary));--ink:oklch(.24 .02 var(--h-primary));--muted:oklch(.46 .018 var(--h-primary));--primary:oklch(.52 .13 var(--h-primary));--on-primary:oklch(.99 .004 var(--h-primary));--accent:oklch(.48 .13 var(--h-accent));--danger:oklch(52% .18 28);--clean:#099268;--clean-ink:#0a6e4f;--key-white:oklch(.975 .006 var(--h-primary));--key-line:oklch(.72 .014 var(--h-primary))}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main{background:var(--stage);touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100dvh;position:relative;overflow:hidden}input,textarea{-webkit-user-select:text;user-select:text}.band{top:calc(max(.75rem, env(safe-area-inset-top)) + 3rem);left:0;right:0;bottom:calc(4rem + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:absolute}.score{scrollbar-gutter:stable;touch-action:pan-x pan-y;flex-direction:column;flex:1;justify-content:safe center;align-items:center;min-height:0;display:flex;position:relative;overflow:auto}.score-osmd,.score-osmd svg{touch-action:pan-x pan-y}main[data-keyboard] .band{bottom:calc(var(--kb-h) + 4.75rem + env(safe-area-inset-bottom))}main[data-keyboard][data-dock-note] .band{bottom:calc(var(--kb-h) + 6.75rem + env(safe-area-inset-bottom))}.score-osmd{width:100%;max-width:80rem;margin-inline:auto}.score-osmd svg .score-tap{fill:color-mix(in oklab, var(--ink) 7%, transparent);cursor:pointer;transition:fill .15s ease-out}.score-osmd svg .score-tap:hover,.score-osmd svg .score-tap:focus-visible{fill:color-mix(in oklab, var(--ink) 15%, transparent)}@media (prefers-reduced-motion:reduce){.score-osmd svg .score-tap{transition:none}}.score-osmd svg .score-hit{fill:#0000;cursor:pointer}.score-osmd svg text{font-family:Times New Roman,Tinos,Liberation Serif,Noto Serif,serif}.score-osmd svg .live-note ellipse{fill:var(--accent)}.score-osmd svg .live-note line{stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round}.score-osmd svg .live-note .live-acc{fill:var(--accent);text-anchor:middle;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.score svg{margin:0 auto;display:block}.score-osmd svg{overflow:visible}.score-loading,.score-error{text-align:center;max-width:min(28rem,100vw - 2rem);color:var(--muted);font-size:var(--text-body);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-error{color:var(--danger)}.keyboard{pointer-events:auto;touch-action:none;width:100%}.keyboard[data-asleep]{position:relative}.keyboard[data-asleep] .keyboard-keys{opacity:.38;filter:saturate(.4)}.keyboard-note{z-index:1;pointer-events:none;font-size:var(--text-label);letter-spacing:.01em;text-align:center;color:var(--ink);text-shadow:0 1px 3px var(--surface), 0 0 6px var(--surface);justify-content:center;align-items:center;margin:0;font-weight:600;display:flex;position:absolute;inset:0}.keyboard:not([data-asleep]){position:relative}.keyboard:not([data-asleep]) .keyboard-note{opacity:.72;font-weight:500;font-size:var(--text-compact);padding-bottom:.15rem;inset:auto 0 100%}.key-label{border:1px solid var(--line);background:color-mix(in oklab, var(--surface) 88%, transparent);min-width:1.1rem;font-family:ui-monospace,monospace;font-size:var(--text-mono);text-align:center;color:var(--muted);pointer-events:none;border-radius:.25rem;padding:.05rem .15rem;font-weight:600;line-height:1.3;display:none;position:absolute;bottom:.3rem;left:50%;transform:translate(-50%)}.key--black .key-label{border-color:color-mix(in oklab, var(--key-white) 35%, transparent);background:color-mix(in oklab, var(--ink) 88%, var(--key-white) 12%);color:var(--key-white);bottom:.25rem}@media (hover:hover) and (pointer:fine){.key-label{display:block}}@media (prefers-reduced-motion:no-preference){.keyboard[data-asleep] .keyboard-keys{transition:opacity .25s,filter .25s}}.keyboard[data-disabled] .keyboard-keys{opacity:.38;filter:saturate(.4)}.keyboard[data-disabled] .key{cursor:not-allowed}.keyboard-keys{height:var(--kb-h);border-top:1px solid var(--key-line);background:var(--key-white);display:flex;position:relative;box-shadow:0 -2px 12px #0000002e}.key{border-right:1px solid var(--key-line);background:var(--key-white);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;flex:1 1 0;min-width:0;transition:background 60ms linear;position:relative}.key:last-child{border-right:0}.key--black{width:calc(var(--kw) * .62);height:62%;top:0;left:calc((var(--left-index) + 1) * var(--kw) - var(--kw) * .31);background:var(--ink);z-index:1;border:0;border-radius:0 0 .2rem .2rem;position:absolute}.chip{border:1px solid var(--line);background:color-mix(in oklab, var(--surface) 80%, transparent);width:36px;height:36px;color:var(--ink);cursor:pointer;z-index:var(--z-overlay);border-radius:999px;justify-content:center;align-items:center;font-size:1.15rem;line-height:1;text-decoration:none;display:inline-flex;position:relative}.chip:after{content:"";position:absolute;inset:-5px}.chip:hover:not(:disabled){background:var(--surface-2)}.chip:disabled{opacity:.4;cursor:not-allowed}.chip.is-on{color:var(--accent);border-color:color-mix(in oklab, var(--accent) 45%, var(--line))}.chip-primary{background:var(--primary);width:48px;height:48px;color:var(--on-primary);border-color:#0000;font-size:1.3rem}.chip-primary:hover:not(:disabled){filter:brightness(1.08);background:var(--primary)}.progress-heading{font-size:var(--text-label);color:var(--muted);margin:.75rem 0 .25rem;font-weight:600}.due-list{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.due-list>li{min-width:0}.cell-row-pick{text-align:left;width:100%;min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.5rem;flex-direction:column;justify-content:center;gap:.1rem;padding:.35rem .5rem;display:flex}button.cell-row-pick{border-color:color-mix(in oklab, var(--line) 65%, transparent)}button.cell-row-pick:hover{background:var(--surface-2);border-color:var(--line)}button.cell-row-pick[data-state=done]{border-color:color-mix(in oklab, var(--clean) 45%, transparent)}button.cell-row-pick[aria-current=step]{border-color:var(--primary);background:color-mix(in oklab, var(--primary) 12%, transparent)}button.cell-row-pick[aria-current=step]:hover{background:color-mix(in oklab, var(--primary) 18%, transparent)}button.cell-row-pick:disabled{opacity:.4;cursor:not-allowed}@media (height<=560px){main{--kb-h:clamp(2.75rem, calc(100vw / var(--white-count) * 3.2), 4.25rem)}}.dialog-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-self:flex-end;align-items:center;margin:.5rem .5rem 0;font-size:1rem;line-height:1;display:inline-flex;position:relative}.dialog-close:after{content:"";position:absolute;inset:-6px}.dialog-close:hover{color:var(--ink);background:var(--surface-2)}.modal{border-radius:var(--radius);background:var(--surface);color:var(--ink);border:none;width:calc(100vw - 2rem);max-width:22rem;max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:hidden}.modal[open]{flex-direction:column;display:flex}.modal::backdrop{background:oklab(0% 0 0/.5)}@media (width<=32rem){.modal{max-width:none}}.modal-body{flex-direction:column;gap:1.1rem;min-height:0;padding:0 1.5rem 1.25rem;display:flex;overflow-y:auto}.modal-body:first-child{padding-top:1.25rem}.modal-title{font-size:var(--text-title);font-weight:600}.modal-note{font-size:var(--text-label);color:var(--muted);text-align:center;margin:0}.stepper{justify-content:center;align-items:center;gap:1rem;display:flex}.stepper-value{font-size:var(--text-display);font-variant-numeric:tabular-nums;text-align:center;min-width:4ch}.stepper-value small{font-size:var(--text-label);color:var(--muted);margin-left:.3rem}.tempo-modal .stepper{gap:.5rem}.modal-note span{white-space:nowrap}@media (width<=340px){.modal-body{padding-inline:.5rem}}.setting-group{flex-direction:column;gap:.85rem;display:flex}.setting-group-title{font-size:var(--text-label);color:var(--muted);margin:0;font-weight:600}.setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem 1rem;display:flex}.setting>.setting-note,.setting>.setting-action{flex-basis:100%}.setting-label{font-size:var(--text-label)}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);font:inherit;font-size:var(--text-label);cursor:pointer;background:0 0;border:0;border-radius:5px;min-height:44px;padding:.3rem .6rem}.segmented button:hover{color:var(--ink)}.segmented button[aria-checked=true]{background:var(--primary);color:var(--on-primary)}.setting-note{font-size:var(--text-label);color:var(--muted);margin:-.3rem 0 0}.swatches{gap:.75rem;display:inline-flex}.swatch{border:2px solid var(--line);cursor:pointer;background:oklch(.7 .14 var(--h-primary));border-radius:50%;width:32px;height:32px;padding:0;position:relative}.swatch:after{content:"";position:absolute;inset:-6px}.swatch:hover{transform:scale(1.1)}.swatch[aria-checked=true]{border-color:var(--ink)}.welcome-letters{display:none}@media (hover:hover) and (pointer:fine){.welcome-letters{display:inline}}.welcome-start{border-radius:var(--radius-sm);background:var(--primary);width:100%;min-height:44px;color:var(--on-primary);font:inherit;cursor:pointer;border:0}.welcome-start:hover:not(:disabled):not([aria-disabled=true]){filter:brightness(1.08)}.setting-action{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:44px;color:var(--ink);font:inherit;font-size:var(--text-label);cursor:pointer;padding:.5rem .6rem}.setting-action:hover:not(:disabled):not([aria-disabled=true]){background:var(--line)}.welcome-start:disabled,.welcome-start[aria-disabled=true]{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.setting-action:disabled,.setting-action[aria-disabled=true]{color:var(--muted);cursor:not-allowed}.setting-footer{border-top:1px solid var(--line);flex-direction:column;gap:.25rem;padding-top:.9rem;display:flex}.setting-link{border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--ink);font:inherit;font-size:var(--text-label);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:.3rem .4rem;display:flex}.setting-link:hover{background:var(--surface-2)}.setting-link-chevron{color:var(--muted);font-size:1.1rem;line-height:1}.setting-stack{flex-flow:column;justify-content:flex-start;align-items:stretch;gap:.5rem;display:flex}.dock{z-index:var(--z-overlay);pointer-events:none;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.dock-row{flex-wrap:nowrap;justify-content:safe center;align-items:center;gap:.5rem;padding:.5rem;display:flex;position:relative;overflow-x:auto}.dock-row>*{pointer-events:auto;flex-shrink:0}.zoom-pair{flex-shrink:0;gap:.5rem;display:flex}@media (width>=30rem){.zoom-pair{z-index:var(--z-overlay);right:max(.5rem, env(safe-area-inset-right));bottom:calc(.5rem + env(safe-area-inset-bottom));position:fixed}main[data-keyboard] .zoom-pair{bottom:calc(var(--kb-h) + .5rem + env(safe-area-inset-bottom))}}.dock-note{text-align:center;max-width:min(28rem,100vw - 2rem);font-size:var(--text-label);color:var(--danger);margin:0 auto .25rem;padding-inline:.5rem}.ladder{background:color-mix(in oklab, var(--surface) 85%, transparent);border:1px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.ladder-rung{color:var(--muted);font:inherit;font-size:var(--text-label);cursor:pointer;text-transform:capitalize;background:0 0;border:0;border-radius:999px;padding:.35rem .7rem;position:relative}.ladder-rung:after{content:"";position:absolute;inset:-9px 0}.ladder-rung:hover{color:var(--ink)}.ladder-rung.is-on{background:var(--primary);color:var(--on-primary)}.ladder-rung.is-disabled{color:color-mix(in oklab, var(--muted) 82%, var(--stage));cursor:default}.ladder-rung.is-disabled:hover{color:color-mix(in oklab, var(--muted) 82%, var(--stage))}.ladder-rung.is-on.is-disabled{background:var(--surface-2);color:var(--muted)}.doc-page{padding:2rem 1.25rem 3rem;overflow:auto}.doc-page-inner{max-width:56ch;margin:0 auto}.doc-back{color:var(--muted);font-size:var(--text-label);text-decoration:none}.doc-back:hover{text-decoration:underline}.doc-page h1{font-size:var(--text-display);letter-spacing:-.02em;margin:1rem 0 .25rem;font-weight:600}.doc-updated{color:var(--muted);font-size:var(--text-label);margin-bottom:1.5rem}.doc-page h2{font-size:var(--text-title);margin:1.5rem 0 .4rem;font-weight:600}.doc-page p,.doc-page li{line-height:1.5}.doc-page ul{padding-left:1.25rem}.doc-page a{color:var(--primary)}.setting-legal{font-size:var(--text-label);color:var(--muted);margin-top:.5rem;line-height:1.4}.setting-legal a{color:inherit;text-decoration:underline}.setting-support,.notices{margin-top:.25rem}.notices summary{cursor:pointer;padding:.35rem 0;text-decoration:underline;display:list-item;position:relative}.notices summary:after{content:"";position:absolute;inset:-8px 0}.notices-text{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);max-height:40vh;font-family:ui-monospace,monospace;font-size:var(--text-compact);white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;margin:.5rem 0 0;padding:.6rem .7rem;line-height:1.45;overflow:auto}#trace-panel{z-index:9999;pointer-events:none;white-space:pre-wrap;word-break:break-all;color:#0f0;background:#000000c7;max-height:42vh;margin:0;padding:.25rem .4rem;font:9px/1.25 ui-monospace,monospace;position:fixed;inset:0 0 auto;overflow:hidden}.journey-header{top:max(.75rem, env(safe-area-inset-top));left:max(.75rem, env(safe-area-inset-left));right:max(.75rem, env(safe-area-inset-right));z-index:var(--z-overlay);justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:fixed}.journey-position{min-width:0;font-size:var(--text-label);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;padding:0;font-family:inherit;display:flex;position:relative}.journey-position:after{content:"";position:absolute;inset:-.875rem 0}.journey-position:disabled{opacity:.4;cursor:not-allowed}.journey-position>.journey-unit{text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=24.9375rem){.journey-position{justify-content:flex-start}}.journey-count{white-space:pre;flex:none}.journey-position-caret{opacity:.55;flex:none;width:.875em;height:.875em;margin-left:.125rem}.journey-door{flex-shrink:0}.cue-line{text-align:center;max-width:34rem;font-size:var(--text-label);color:var(--muted);pointer-events:none;flex:none;margin:0 auto;padding:0 1rem}.interstitial,.step-card{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;min-height:0;padding:1.5rem;display:flex}.step-card-inner{flex-direction:column;align-items:center;gap:.5rem;max-width:100%;display:flex}.interstitial h2,.step-card h2{font-size:var(--text-title);font-weight:600}.interstitial p,.step-card p{color:var(--muted);max-width:26rem;margin:0}.step-card-eyebrow{font-size:var(--text-label)}.step-card-cue{color:var(--ink);font-size:var(--text-body)}.step-card-continue{border-radius:var(--radius-sm);background:var(--primary);min-height:44px;color:var(--on-primary);font:inherit;cursor:pointer;border:0;margin-top:1rem;padding:0 1.25rem}.step-card-continue:hover{filter:brightness(1.08)}.step-card-action{border:1px solid var(--primary);border-radius:var(--radius-sm);min-height:44px;color:var(--primary);font:inherit;cursor:pointer;background:0 0;margin-top:.25rem;padding:0 1.25rem}.step-card-action:hover{background:color-mix(in oklab, var(--primary) 12%, transparent)}.save-alert{text-align:center;max-width:min(28rem,100vw - 2rem);font-size:var(--text-label);color:var(--danger);margin:0 auto .25rem;padding-inline:.5rem}.save-alert button{margin-left:.4rem}#diagnostics-review pre{white-space:pre-wrap;word-break:break-all;max-height:60vh;margin:1rem 1.5rem;font:11px/1.4 ui-monospace,monospace;overflow-y:auto}#diagnostics-review button{margin:0 1.5rem 1.25rem}
