.octo{flex:none;display:block}.octo__move,.octo__wave{transform-origin:0 0}.octo--moving.octo--happy .octo__move{animation:2.4s ease-in-out infinite octo-bob}html[data-motion=calm] .octo--moving.octo--happy .octo__move{animation:none}.octo--moving.octo--happy .octo__wave{animation:.9s ease-in-out infinite alternate octo-wave}html[data-motion=calm] .octo--moving.octo--happy .octo__wave{animation:none}.octo--moving.octo--cheer .octo__move{animation:1.1s ease-in-out infinite octo-hop}html[data-motion=calm] .octo--moving.octo--cheer .octo__move{animation:none}.octo--moving.octo--listen .octo__move{animation:2.8s ease-in-out infinite octo-sway}html[data-motion=calm] .octo--moving.octo--listen .octo__move{animation:none}.octo--moving.octo--oops .octo__move{animation:3.6s ease-in-out infinite octo-bob}html[data-motion=calm] .octo--moving.octo--oops .octo__move{animation:none}@keyframes octo-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.6px)}}@keyframes octo-hop{0%,60%,to{transform:translateY(0)scale(1)}20%{transform:translateY(0)scale(1.04,.96)}40%{transform:translateY(-4px)scale(.98,1.02)}}@keyframes octo-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes octo-wave{0%{transform:rotate(-9deg)}to{transform:rotate(7deg)}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .octo .octo__move,html:not([data-motion]) .octo .octo__wave{animation:none!important}}html[data-motion=off] .octo .octo__move,html[data-motion=off] .octo .octo__wave{animation:none!important}@font-face{font-family:Fraunces;src:url(/fonts/fraunces.woff)format("woff");font-weight:300 900;font-style:normal;font-display:swap;unicode-range:U+??,U+2000-206F,U+2070-209F,U+20AC}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/fonts/atkinson-hyperlegible-next.woff)format("woff");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+??,U+2000-206F,U+2070-209F,U+20AC}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/fonts/atkinson-hyperlegible-next-italic.woff)format("woff");font-weight:200 900;font-style:italic;font-display:swap;unicode-range:U+??,U+2000-206F,U+2070-209F,U+20AC}:root{--brand-cream:#f6efdd;--brand-teal:#2fb5a3;--brand-teal-under:#1d8f81;--brand-teal-behind:#177a6e;--brand-teal-shine:#8fe3d5;--brand-orange:#f28a2e;--brand-ember:#cf6519;--brand-navy:#16334a;--brand-coral:#f47e6b;--brand-eye:#123241;--brand-blush:#f59a8c;--bg:#0f1117;--panel:#171a22;--panel-2:#1f232d;--line:#2a2f3b;--text:#e8eaf0;--muted:#8f97aa;--accent:#2fb5a3;--accent-fill:#177a6e;--next:#2fb5a3;--next-soft:#2fb5a32e;--key-next:var(--brand-teal);--key-next-deep:var(--brand-teal-behind);--ok:#2fb5a3;--ok-soft:#c5ede7;--ok-ink:#146b61;--warn:#f0b429;--error:#f28a2e;--star:#d8b24a;--paper:#f6f4ee;--paper-ink:#1f2937;--shadow:0 1px 2px #00000059, 0 8px 24px #00000040;--r-sm:8px;--r-md:12px;--r-lg:16px;--font-ui:"Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", "Segoe UI Symbol", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif:"Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Segoe UI Symbol", serif;--font-display:var(--font-serif);--font:var(--font-ui);--key-bg:#177a6e;--key-bg-hover:#146b61;--key-text:#fff;--key-coral-bg:#f28a2e;--key-coral-hover:#f59a48;--key-coral-text:#16334a;--key-sea-bg:#1d6aa8;--key-sea-hover:#185c93;--key-sea-text:#fff;--key-radius:3px 3px 12px 12px;--key-radius-big:4px 4px 14px 14px;--key-press:2px;--key-ease:.156s cubic-bezier(.2, .9, .3, 1);--key-highlight:inset 0 1px 0 #fff3;--key-shadow-night:0 1px 2px #00000073, 0 10px 18px -8px #000000bf;--key-shadow-night-pressed:0 1px 1px #00000080, 0 3px 6px -3px #0009;--key-shadow-day:0 1px 2px #16334a33, 0 10px 18px -8px #16334a73;--key-shadow-day-pressed:0 1px 1px #16334a40, 0 3px 6px -3px #16334a59;--key-shadow:var(--key-shadow-night);--key-shadow-pressed:var(--key-shadow-night-pressed);--key-outline:#8fe3d5;--key-outline-text:#8fe3d5;--key-outline-bg:transparent;--focus-ring:#f47e6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.score,.activity,.beat,.gym__card,.concept__card,.ex__card,.rhythm__card,.meet__card,.summary__sheet{--focus-ring:#16334a}[data-screen-heading]:focus{outline:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:15px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased;margin:0}button,select,input{font-family:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.segmented--mode .segmented__btn{padding:7px 16px;font-weight:600}.app-loading{place-items:center;display:grid}.app-loading .octo{animation:.4s ease-out .7s both app-loading-in}@keyframes app-loading-in{0%{opacity:0}to{opacity:1}}.unlock{border:0;border-bottom:1px solid var(--line);background:var(--accent-fill);color:#fff;cursor:pointer;text-align:center;width:100%;padding:10px 20px;font-size:14px;font-weight:600}[data-mode=kids] .unlock{padding:14px 20px;font-size:18px;font-weight:800}.devicebar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px 18px;padding:10px 20px;display:flex}.devicebar__group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.devicebar__group--grow{flex:1;min-width:240px}.devicebar__label{color:var(--muted);letter-spacing:.06em;font-size:13px;font-variant-caps:all-small-caps;font-weight:700}.devicebar__octave{text-align:center;font-variant-numeric:tabular-nums;min-width:34px}.devicebar__tempo{text-align:center;font-variant-numeric:tabular-nums;min-width:96px}.devicebar__hint{color:var(--muted);font-size:12px}@media (pointer:coarse){.devicebar .segmented__btn,.devicebar .btn,.devicebar .select{min-height:44px}.devicebar .btn{min-width:44px}}kbd{border:1px solid var(--line);background:var(--panel-2);font:inherit;border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:11px}.segmented{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);display:inline-flex;overflow:hidden}.segmented__btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:13px;transition:background .12s,color .12s}.segmented__btn:hover{color:var(--text)}.segmented__btn--on{background:var(--accent-fill);color:#fff}.segmented__btn:first-child{border-top-left-radius:calc(var(--r-sm) - 1px);border-bottom-left-radius:calc(var(--r-sm) - 1px)}.segmented__btn:last-child{border-top-right-radius:calc(var(--r-sm) - 1px);border-bottom-right-radius:calc(var(--r-sm) - 1px)}.segmented:has(.segmented__btn:focus-visible){overflow:visible}.segmented__btn:focus-visible{z-index:1;position:relative}.select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);color:var(--text);max-width:280px;padding:6px 28px 6px 10px;font-size:13px}.select--compact{max-width:130px;padding:3px 24px 3px 8px;font-size:12px}.btn{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);color:var(--text);cursor:pointer;padding:6px 12px;font-size:13px;transition:border-color .12s,background .12s,transform 80ms}.btn:active{transform:translateY(1px)}.btn--ghost:hover{border-color:var(--accent)}.btn--primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;width:100%;padding:10px;font-weight:600}.btn--primary:hover{filter:brightness(1.08)}.btn--inline{width:auto;padding:7px 16px}.linkbtn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.toggle input{accent-color:var(--accent)}.pill{background:var(--panel-2);color:var(--muted);border-radius:12px;max-width:460px;padding:4px 10px;font-size:12px;line-height:1.4}.pill--ok{color:var(--ok);background:#2fb5a324}.pill--warn{color:var(--warn);background:#f0b42924}.pill--error{color:var(--error);background:#f28a2e24}.notice{border-radius:var(--r-sm);color:var(--warn);background:#f0b42924;margin:0;padding:8px 12px;font-size:13px}.main,.stats{padding:16px;overflow-y:auto}.stats{border-left:1px solid var(--line)}.main{flex-direction:column;gap:12px;min-width:0;display:flex}.main__head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.main__head h2{font-family:var(--font-display);margin:0;font-size:18px}.main__head span{color:var(--muted);font-size:13px}.topbar__settings{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);width:40px;height:40px;color:var(--text);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;display:none;position:relative}.topbar__settings[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.topbar__dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.instr{flex:none;position:relative}.instr__button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:inline-flex}.instr__button[aria-expanded=true]{border-color:var(--accent)}.instr__menu{z-index:40;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:280px;max-width:calc(100vw - 24px);padding:6px;animation:.14s ease-out instr-in;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0006}.instr__item{border-radius:var(--r-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.instr__item:hover{background:var(--panel-2)}.instr__item--on{border-color:var(--accent);background:var(--panel-2)}.instr__item--loading{opacity:.6}.instr__plus{border:1.5px solid var(--accent);color:var(--text);letter-spacing:.06em;border-radius:999px;margin-left:auto;padding:0 7px;font-size:11px;font-variant-caps:all-small-caps;font-weight:800;line-height:1.5}@keyframes instr-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .instr__menu{animation:none}}html[data-motion=off] .instr__menu{animation:none}.score{background:var(--paper);border-radius:var(--r-md);min-height:160px;box-shadow:var(--shadow);padding:10px 12px 6px}.score__canvas{width:100%}.score__canvas svg{display:block}.score__notice{color:#444;margin:8px;font-size:13px}.score__notice--error{color:#b42318}.coach{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--r-md);background:var(--panel);align-items:center;gap:12px;min-height:56px;padding:10px 14px;transition:border-color .12s,background .12s;display:flex;position:relative;overflow:hidden}.coach__body{flex-direction:column;gap:2px;min-width:0;display:flex}.coach__icon{flex-shrink:0;font-size:34px;line-height:1}.coach__text{font-size:16px;font-weight:600;line-height:1.35}.coach__detail{color:var(--muted);font-size:13px}.coach--good{border-left-color:var(--ok)}.coach--good .coach__text{color:var(--ok)}.coach--oops{border-left-color:var(--error)}.coach--oops .coach__text{color:var(--error)}.coach--hold{border-left-color:var(--next)}.coach--hold .coach__text{color:var(--next)}.coach--done{border-left-color:var(--ok)}.coach--done .coach__text{color:var(--ok)}.playarea{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.piano-scroll{overscroll-behavior-x:contain;min-width:0;overflow-x:auto}.piano,.handrow-box{--next:var(--key-next)}.piano{--key-held:#b9c2d6;--key-demo:color-mix(in srgb, var(--next) 32%, #f4f5f7);--key-demo-black:color-mix(in srgb, var(--next) 55%, #23262e);-webkit-user-select:none;user-select:none;touch-action:pan-x;width:100%;height:auto;max-height:150px;display:block}.key{cursor:pointer;transform-box:fill-box;transform-origin:50%;transition:fill 90ms linear}.key--white{fill:#f4f5f7;stroke:#9aa0ad;stroke-width:1px}.key--black{fill:#23262e;stroke:#0c0e12;stroke-width:1px}.key--expected{fill:var(--next)}.key--satisfied{fill:var(--ok-soft)}.key--black.key--satisfied{fill:var(--ok-ink)}.key--held{fill:var(--key-held)}.key--wrong{fill:var(--error)}.key__hold{fill:var(--ok);opacity:.75;pointer-events:none}.key__tick{fill:var(--ok-ink);text-anchor:middle;pointer-events:none;font-size:22px;font-weight:800}.key__tick--black{fill:#fff;font-size:16px}.key__label{fill:#6b7280;text-anchor:middle;pointer-events:none;font-size:9px}.key--expected~.key__label{fill:#16334a}.key__tip rect{fill:var(--key-next-deep);stroke:#fff;stroke-width:2.5px;pointer-events:none}.key__tip--done rect{fill:var(--ok-ink)}.key__tip-number{fill:#fff;text-anchor:middle;pointer-events:none;font-size:19px;font-weight:800}.key__tip-number--black{font-size:12px}.key__strip{opacity:.85;pointer-events:none}.key__letter{fill:#4b5563;text-anchor:middle;pointer-events:none;font-size:13px;font-weight:700}.marker{pointer-events:none}.piano--kids .marker,.activity--kids .marker{animation:.7s ease-in-out infinite bounce}html[data-motion=calm] .piano--kids .marker,html[data-motion=calm] .activity--kids .marker{animation:none}.marker__letter{text-anchor:middle;font-size:18px;font-weight:800}.key--demo{fill:var(--key-demo)}.key--black.key--demo{fill:var(--key-demo-black)}.piano--kids .key--demo{fill:#ffd60a;animation:.5s ease-in-out infinite pulse}html[data-motion=calm] .piano--kids .key--demo{animation:none}.hint-arrow__path{fill:none;stroke:var(--next);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:6 6}.hint-arrow__head{fill:var(--next)}.piano--kids .hint-arrow__path{animation:.7s linear infinite dash}html[data-motion=calm] .piano--kids .hint-arrow__path{animation:none}.piano--kids .hint-arrow__head{animation:.7s ease-in-out infinite bounce}html[data-motion=calm] .piano--kids .hint-arrow__head{animation:none}.piano:not(.piano--kids) .hint-arrow{animation:.16s ease-out hint-in}.piano:not(.piano--kids) .hint-arrow__path{stroke-width:2.5px;stroke-dasharray:5 4}@keyframes hint-in{0%{opacity:0}}@keyframes dash{to{stroke-dashoffset:-24px}}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:inline-flex}.legend__swatch{border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:800;display:inline-flex}.legend__swatch--next{background:var(--key-next)}.legend__swatch--done{background:var(--ok-soft);color:var(--ok-ink)}.legend__swatch--wrong{background:var(--error)}.legend__swatch--hold{background:linear-gradient(to top, var(--ok) 55%, var(--ok-soft) 55%)}:root{--hand-skin:#fde7d0;--hand-edge:#d9ae86;--hand-ink:#8a6546}.hand__outline{fill:var(--hand-edge);stroke:var(--hand-edge);stroke-width:3.2px;stroke-linejoin:round}.hand__palm,.hand__finger{fill:var(--hand-skin);transition:fill .12s linear}.hand__finger--active{fill:var(--key-next-deep);animation:.9s ease-in-out infinite pulse}html[data-motion=calm] .hand__finger--active{animation:none}.hand__finger--done{fill:var(--ok-soft)}.hand__number{fill:var(--hand-ink);text-anchor:middle;pointer-events:none;font-size:10px;font-weight:800}.hand__number--active{fill:#fff}.hand__number--done{fill:var(--ok-ink)}.stats{flex-direction:column;gap:16px;display:flex}.stats__bar{background:var(--panel-2);border-radius:999px;height:6px;overflow:hidden}.stats__fill{background:var(--accent);height:100%;transition:width .12s linear}.stats__progress-label{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:6px;font-size:13px;display:block}.stats__progress-label strong{color:var(--text);font-size:18px}.stats__caption{letter-spacing:.06em;color:var(--muted);font-size:13px;font-variant-caps:all-small-caps}.stats__done{border-radius:var(--r-sm);color:var(--ok);background:#2fb5a31f;flex-direction:column;gap:3px;padding:11px;font-size:13px;display:flex}.stats__grid{grid-template-columns:1fr 1fr;gap:12px 10px;margin:0;display:grid}.stats__grid dt{color:var(--muted);letter-spacing:.05em;font-size:13px;font-variant-caps:all-small-caps}.stats__grid dd{font-variant-numeric:tabular-nums;margin:1px 0 0;font-size:20px;font-weight:600}.stats__trouble ul{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.stats__trouble li{color:var(--muted);justify-content:space-between;display:flex}.kids{text-align:center;align-items:stretch}.kids__bar{background:var(--panel-2);border-radius:999px;height:14px;overflow:hidden}.kids__fill{background:linear-gradient(90deg,#f4832b,#f2c230);border-radius:999px;height:100%;transition:width .16s ease-out}.activity{border-radius:var(--r-md);background:var(--paper);min-height:200px;color:var(--paper-ink);box-shadow:var(--shadow);justify-content:center;align-items:center;padding:16px;display:flex}.activity__keys{filter:drop-shadow(0 2px 4px #00000026);width:min(420px,100%);height:auto}.activity__key{fill:#fff;stroke:#b8bcc6}.activity__key--lit{stroke:#1f2937;stroke-width:2px}.activity__key-letter{fill:#1f2937;text-anchor:middle;font-size:18px;font-weight:800}.activity__black{fill:#2f2a3a;stroke:#1e1a26}.activity__black--lit{fill:var(--next);stroke:#1f2937;stroke-width:2px}.activity--kids .activity__black--lit{animation:.9s ease-in-out infinite pulse}html[data-motion=calm] .activity--kids .activity__black--lit{animation:none}.pic{flex-direction:column;align-items:center;gap:14px;display:flex}.pic__pair{align-items:center;gap:18px;display:flex}.pic__pair--left{flex-direction:row-reverse}.pic__dyn,.pic__ear,.pic__finger{align-items:center;gap:12px;display:flex}.pic__number{background:var(--next);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;font-size:52px;font-weight:800;display:inline-flex}.mini{width:min(320px,100%);height:auto}.mini__key{fill:#fff;stroke:#b8bcc6}.mini__key--lit{fill:var(--next);stroke:#1f2937;animation:.9s ease-in-out infinite pulse}html[data-motion=calm] .mini__key--lit{animation:none}.mini__black{fill:#2f2a3a}.activity__black-marker{fill:var(--next)}.prestaff{width:100%;max-height:180px}.prestaff__note--todo{opacity:.45}.prestaff__note--done{opacity:.85}.prestaff__ring{fill:none;stroke:var(--next);stroke-width:3px;animation:.9s ease-in-out infinite pulse}html[data-motion=calm] .prestaff__ring{animation:none}.prestaff__head{fill:var(--note)}.activity:not(.activity--kids) .prestaff__head{fill:var(--paper-ink)}.activity:not(.activity--kids) .prestaff__note--current .prestaff__head{fill:var(--next)}.activity:not(.activity--kids) .prestaff__ring{animation:none}.prestaff__letter{fill:#fff;text-anchor:middle;pointer-events:none;font-size:15px;font-weight:800}.beat{border-radius:var(--r-md);background:var(--paper);color:var(--paper-ink);box-shadow:var(--shadow);padding:16px}.beat__stage{flex-direction:column;align-items:center;gap:14px;display:flex}.beat__pulse{border:4px solid var(--next);background:#eef3ff;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;font-size:48px;font-weight:800;display:flex}.beat__pulse--live{animation:.26s ease-out beatpulse}.beat__pulse--accent{background:#dbe6ff}.beat__dots{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.beat__dot{background:#e5e7eb;border-radius:50%;width:14px;height:14px}.beat__dot--on{background:var(--ok)}.beat__status{text-align:center;min-height:24px;font-size:16px}.pic__hand{width:min(260px,40vw);height:auto;overflow:visible}.pic__finger--left{flex-direction:row-reverse}.pic__hands{justify-content:space-between;align-items:flex-end;gap:8%;width:min(640px,100%);display:flex}.pic__hands .pic__hand{width:44%;transition:opacity .2s,transform .2s}.pic__hand--off{opacity:.25;transform:scale(.85)}.pic__hand--on{transform:scale(1.05)}.activity__keys--adult{filter:none}.activity__keys--adult .activity__key{fill:#fff;stroke:color-mix(in srgb, var(--paper-ink) 45%, transparent)}.activity__keys--adult .activity__key--lit{fill:color-mix(in srgb, var(--next) 28%, #fff);stroke:var(--next);stroke-width:2px}.activity__keys--adult .activity__key-letter{fill:var(--paper-ink)}.activity__keys--adult .activity__black{fill:var(--paper-ink);stroke:var(--paper-ink)}.activity__keys--adult .activity__black--lit{fill:var(--next);stroke:var(--paper-ink);stroke-width:2px}.activity__marker{fill:var(--next)}.mini--adult .mini__key{fill:#fff;stroke:color-mix(in srgb, var(--paper-ink) 40%, transparent)}.mini--adult .mini__key--lit{fill:color-mix(in srgb, var(--next) 30%, #fff);stroke:var(--next);animation:none}.mini--adult .mini__black{fill:var(--paper-ink)}.pic__caption{color:#5f6470;font-size:14px}.pic__dynamic{color:var(--paper-ink);font-family:Georgia,Times New Roman,serif;font-size:64px;font-style:italic;font-weight:700;line-height:1}.pic__listen{color:var(--paper-ink)}.steps{width:min(220px,100%);height:auto}.steps__step{fill:color-mix(in srgb, var(--paper-ink) 18%, transparent)}.steps__step--on{fill:var(--next)}.chips{flex-direction:column;align-items:center;gap:8px;display:flex}.chips__label{color:#5f6470;font-size:13px;font-weight:600}.chips__row{gap:6px;display:flex}.chips__chip{border:1.5px solid color-mix(in srgb, var(--paper-ink) 35%, transparent);border-radius:var(--r-sm);width:32px;height:32px;color:var(--paper-ink);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:15px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.chips__chip--on{background:var(--next);border-color:var(--next);color:#fff}.chips--muted{opacity:.4}.pic__chips-pair{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:16px 40px;display:flex}.beat__pulse--start{cursor:pointer;width:180px;height:180px;font-size:84px;animation:1.6s ease-in-out infinite pulse}html[data-motion=calm] .beat__pulse--start{animation:none}.pic__hand{width:auto;height:min(190px,25dvh)}.pic__hands{--pic-hand:min(170px, 23dvh, 36vw);gap:calc(var(--pic-hand) * .16);max-width:100%}.pic__hands .pic__hand{width:auto;height:var(--pic-hand)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.72}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes pop{0%{transform:scale(.97)}60%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes beatpulse{0%{transform:scale(1.18);box-shadow:0 0 #2fb5a373}to{transform:scale(1);box-shadow:0 0 0 26px #2fb5a300}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .marker,html:not([data-motion]) .key--expected,html:not([data-motion]) .key--wrong,html:not([data-motion]) .key--demo,html:not([data-motion]) .hint-arrow__path,html:not([data-motion]) .hint-arrow__head,html:not([data-motion]) .hand__finger--active,html:not([data-motion]) .prestaff__ring,html:not([data-motion]) .activity__black--lit,html:not([data-motion]) .mini__key--lit,html:not([data-motion]) .kids__dot--now,html:not([data-motion]) .beat__pulse--live,html:not([data-motion]) .beat__pulse--start,html:not([data-motion]) .picker__button--loading,html:not([data-motion]) .start__play,html:not([data-motion]) .coach--oops,html:not([data-motion]) .coach--good{animation:none!important}}html[data-motion=off] .marker,html[data-motion=off] .key--expected,html[data-motion=off] .key--wrong,html[data-motion=off] .key--demo,html[data-motion=off] .hint-arrow__path,html[data-motion=off] .hint-arrow__head,html[data-motion=off] .hand__finger--active,html[data-motion=off] .prestaff__ring,html[data-motion=off] .activity__black--lit,html[data-motion=off] .mini__key--lit,html[data-motion=off] .kids__dot--now,html[data-motion=off] .beat__pulse--live,html[data-motion=off] .beat__pulse--start,html[data-motion=off] .picker__button--loading,html[data-motion=off] .start__play,html[data-motion=off] .coach--oops,html[data-motion=off] .coach--good{animation:none!important}:root[data-mode=kids]{--bg:#fff6ea;--panel:#fff;--panel-2:#ffefdc;--line:#f0d9bf;--text:#2b2d42;--muted:#6b6058;--accent:#ff8c42;--accent-fill:#b8520e;--next:#3b6cff;--next-soft:#3b6cff24;--ok:#1d8f81;--warn:#c98a00;--error:#d9661a;--paper:#fff;--shadow:0 1px 2px #50321414, 0 8px 24px #50321414;--r-sm:12px;--r-md:16px;--r-lg:20px;--font-display:var(--font-ui);--key-shadow:var(--key-shadow-day);--key-shadow-pressed:var(--key-shadow-day-pressed);--key-outline:#177a6e;--key-outline-text:#146b61;--key-outline-bg:#fff;--focus-ring:#16334a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-mode=kids] body{font-family:var(--font-ui);font-size:17px;font-weight:600}[data-mode=kids] .devicebar{background:var(--panel)}[data-mode=kids] .lesson{padding:10px}[data-mode=kids] .score,[data-mode=kids] .activity,[data-mode=kids] .beat{border:2px solid var(--line);box-shadow:none}[data-mode=kids] .coach{text-align:center;border-width:2px;justify-content:center;min-height:90px;padding:14px 20px}[data-mode=kids] .coach__icon{font-size:44px}[data-mode=kids] .hand__finger--active{transform-box:fill-box;transform-origin:bottom;animation:.6s ease-in-out infinite wiggle}html[data-motion=calm] [data-mode=kids] .hand__finger--active{animation:none}@keyframes wiggle{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.kids__dots{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.kids__dot{background:var(--panel-2);border:2px solid var(--line);border-radius:50%;width:16px;height:16px}.kids__dot--on{background:var(--ok);border-color:var(--ok)}.kids__dot--now{border-color:var(--next);animation:.9s ease-in-out infinite pulse}html[data-motion=calm] .kids__dot--now{animation:none}.kids__stars--won .kids__star--on{animation:.5s cubic-bezier(.34,1.56,.64,1) both star-in;animation-delay:calc(var(--i) * .18s);display:inline-block}@keyframes star-in{0%{transform:scale(0)rotate(-30deg)}to{transform:scale(1)rotate(0)}}[data-mode=kids] .coach__text{font-family:var(--font-display);font-size:26px;font-weight:800}[data-mode=kids] .coach__detail{font-size:16px}[data-mode=kids] .coach--oops{background:#fff3ea;border-color:#d9661a73;animation:.26s ease-out pop}[data-mode=kids] .coach--good{background:#eaf7f5;border-color:#1d8f8173;animation:.22s ease-out pop}[data-mode=kids] .coach--hold{background:#eef3ff;border-color:#3b6cff73}[data-mode=kids] .piano{max-height:260px}[data-mode=kids] .key--white{fill:#fffdf9;stroke:#d9cbb8}[data-mode=kids] .key--black{fill:#2f2a3a;stroke:#1e1a26}[data-mode=kids] .key--expected{stroke:var(--next);stroke-width:3px;animation:.9s ease-in-out infinite pulse}html[data-motion=calm] [data-mode=kids] .key--expected{animation:none}[data-mode=kids] .key--wrong{stroke:#a84d0e;stroke-width:2px;animation:.32s ease-out shake}[data-mode=kids] .key--satisfied{stroke:#146b61;stroke-width:2px}[data-mode=kids] .legend{justify-content:center;font-size:14px}[data-mode=kids] .legend__swatch{border-radius:6px;width:20px;height:20px}[data-mode=kids] .beat__pulse{width:160px;height:160px;font-size:64px}[data-mode=kids] .beat__status{font-size:22px;font-weight:800}[data-mode=kids] .btn--primary{font-weight:800}[data-mode=kids] .key--white.key--many{fill:#fff;stroke-width:4px}[data-mode=kids] .key--black.key--many,[data-mode=kids] .key--black.key--expected{fill:#2f2a3a;stroke-width:4px}[data-mode=kids] .key--white.key--expected{stroke:#2b2d42;stroke-width:4px}@media (width<=1000px){.stats{border-left:0;border-top:1px solid var(--line)}.playarea{grid-template-columns:1fr}.hands{justify-content:center}}@media (width<=700px){.devicebar,.main,.stats{padding-left:16px;padding-right:16px}.topbar__settings{display:inline-flex}.app:not(.app--focus)>.settings-panel:not(.settings-panel--open),.devicebar__hint{display:none}.piano-body{min-width:var(--piano-min)}.piano{max-height:190px}[data-mode=kids] .piano{max-height:260px}[data-mode=kids] .coach__text{font-size:21px}.app:not(.app--focus) .main>.score{overscroll-behavior:contain;max-height:44dvh;overflow-y:auto}}.piano--gentle .key--wrong{fill:#f6c56b;stroke:#c98a00;stroke-width:2px;animation:none}.tip{border-radius:var(--r-md);background:var(--panel-2);text-align:left;margin-top:auto;padding:10px 12px}.tip__label{letter-spacing:.06em;color:var(--muted);font-size:13px;font-variant-caps:all-small-caps;font-weight:700;display:block}.tip__text{color:var(--text);margin:4px 0 0;font-size:13px;font-weight:500;line-height:1.4}.done{border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:var(--r-md);background:var(--panel);flex-wrap:wrap;align-items:center;gap:18px;padding:14px 16px;display:flex}.done--kids .done__star--on{color:#f2c230;animation:.5s cubic-bezier(.34,1.56,.64,1) both star-in;animation-delay:calc(var(--i) * .16s)}[data-mode=kids] .done{background:#eaf7f5;border-width:2px;border-color:#1d8f8173;justify-content:center;padding:18px 20px}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .done--kids .done__star--on{animation:none}}html[data-motion=off] .done--kids .done__star--on{animation:none}body:has(.app--focus){overscroll-behavior:none;overflow:hidden}.app--focus{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100dvh;min-height:0;overflow:hidden}.app--focus .focus__stage>.score{touch-action:pan-y}.app--focus input,.app--focus textarea,.app--focus select{-webkit-user-select:auto;user-select:auto}.focus{box-sizing:border-box;height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:12px;display:flex}.focus .kids__dots{flex-wrap:nowrap;justify-content:flex-start;gap:clamp(2px,4%,5px)}.focus .kids__dot{aspect-ratio:1;flex:1 1 0;min-width:2px;max-width:16px;height:auto}.focus__listen{border:2px solid var(--line);background:var(--panel);cursor:pointer;border-radius:50%;flex:none;width:52px;height:52px;font-size:26px}.focus__listen[aria-pressed=true]{border-color:var(--key-next-deep);color:var(--key-next-deep)}@property --hold-deg{syntax:"<angle>";inherits:false;initial-value:0deg}.hold{width:44px;height:44px;color:var(--muted);opacity:.45;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:50%;flex:none;margin-left:auto;position:relative}.hold:hover,.hold:focus-visible,.hold--on{opacity:1}.hold__glyph{font-size:20px;position:relative}.hold__ring{background:conic-gradient(var(--accent) var(--hold-deg), transparent 0);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 17px,#000 18px);mask:radial-gradient(circle,#0000 17px,#000 18px)}.hold--on .hold__ring{animation:hold-fill var(--hold-ms,1.5s) linear forwards}@keyframes hold-fill{to{--hold-deg:360deg}}.focus__stage{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.focus__stage>.activity,.focus__stage>.beat{flex:1;min-height:0}.focus__stage>.score{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:hidden auto}.focus>.coach,.focus>.done,.focus>.playarea{flex:none}.app--focus .piano{max-height:min(260px,30dvh)}.app--focus{position:relative}.art{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.focus{z-index:1;position:relative}.art--front{z-index:2}.app--focus .activity,.app--focus .coach,.app--focus .done,.app--focus .beat{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;border-color:#ffffffe6;box-shadow:0 2px 10px #2b2d421a}.freestyle{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;flex:1}.app--focus .activity:has(.activity__free){box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;flex:1}.app--focus .focus__listen,.app--focus .hold{opacity:1;background:#ffffffd9}.picker{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;border-radius:22px;flex-wrap:wrap;flex:none;justify-content:center;gap:10px 22px;padding:10px 14px;display:flex;box-shadow:0 2px 10px #2b2d421a}.picker__group{gap:8px;display:flex}.picker__button{width:64px;height:64px;box-shadow:var(--key-shadow-day);cursor:pointer;background:#fff;border:3px solid #0000;border-radius:20px;place-items:center;padding:0;transition:transform .12s;display:grid}.picker__button:active{box-shadow:var(--key-shadow-day-pressed);transform:translateY(3px)}.picker__button[aria-pressed=true]{border-color:var(--next);box-shadow:var(--key-shadow-day)}.picker__button--loading{animation:1.2s ease-in-out infinite pulse}html[data-motion=calm] .picker__button--loading{animation:none}@media (width<=700px){.picker{gap:8px 12px;padding:8px}.picker__button{border-radius:16px;width:50px;height:50px}.picker__button canvas,.picker__button svg{transform:scale(.8)}}.start{z-index:50;cursor:pointer;background:#fff6eaf0;border:0;place-items:center;display:grid;position:fixed;inset:0}.start__invite{--octo:min(150px, 30vw, 26vh);justify-items:center;display:grid}.start__octo{z-index:1;width:var(--octo);height:var(--octo);margin-bottom:calc(var(--octo) * -.16);position:relative}.start__play{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:160px;height:160px;padding-left:12px;font-size:72px;animation:1.6s ease-in-out infinite pulse;display:grid;box-shadow:0 10px 30px #ff8c4259}html[data-motion=calm] .start__play{animation:none}.drawer{border:0;border-left:1px solid var(--line);background:var(--bg);width:min(480px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--text);overscroll-behavior:contain;margin:0 0 0 auto;padding:0;overflow-y:auto}.drawer::backdrop{background:#281e1459}.drawer__inner{padding:max(16px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) 18px;flex-direction:column;gap:18px;display:flex}.drawer__head{justify-content:space-between;align-items:center;display:flex}.drawer__title{margin:0;font-size:20px}.drawer__section{flex-direction:column;gap:10px;display:flex}.drawer__heading{letter-spacing:.06em;color:var(--muted);margin:0;font-size:14px;font-variant-caps:all-small-caps;font-weight:700}.drawer__desc{color:var(--muted);margin:2px 0 0;font-size:14px;font-weight:500}.drawer__actions{flex-wrap:wrap;gap:8px;display:flex}.drawer__actions .btn{min-height:44px}.drawer .devicebar{background:0 0;border:0;flex-direction:column;align-items:stretch;gap:12px;padding:0}.drawer .devicebar__group--grow{min-width:0}@media (width<=700px){.focus{gap:10px}.app--focus .piano{max-height:min(200px,28dvh)}}@media (height<=520px) and (orientation:landscape){.focus{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8px 12px;display:grid}.focus__stage{grid-area:2/1}.focus>.coach,.focus>.done{grid-area:2/2;align-self:stretch;min-height:0}.focus>.playarea{grid-area:3/1/auto/-1}.app--focus .piano{max-height:40dvh}[data-mode=kids] .focus .coach__text{font-size:19px}[data-mode=kids] .focus .coach__icon{font-size:30px}.focus__listen{width:40px;height:40px;font-size:20px}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .hold--on .hold__ring{animation-duration:1ms}}html[data-motion=off] .hold--on .hold__ring{animation-duration:1ms}.focus__stage .activity{align-items:stretch}.focus__stage .prestaff{width:100%;height:100%;max-height:none}@media (width>=701px) and (height>=700px){.app--focus .piano{max-height:min(320px,34dvh)}}.playarea{grid-template-columns:minmax(0,1fr)!important}.piano-body{width:100%}.handrow-box{width:100%;max-height:clamp(110px, calc(var(--hand-full,190px) * .6), 22dvh);margin:6px auto 0;position:relative;overflow:hidden}.handrow{position:absolute;inset:0}.handrow__hand{height:100%;transition:left .22s;position:absolute;top:0}@media (height<=520px) and (orientation:landscape){.handrow-box{display:none}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .handrow__hand{transition:none}}html[data-motion=off] .handrow__hand{transition:none}@media (width<=700px){.app--focus .coach__detail{display:none}}.app--focus .focus:has(.handrow-box){padding-bottom:0}.app--focus .handrow-box{max-height:calc(clamp(110px, calc(var(--hand-full,190px) * .6), 22dvh) + max(12px, env(safe-area-inset-bottom)))}.app--focus .instr__button{background:#ffffffd9;border:0;border-radius:50%;width:48px;height:48px;box-shadow:0 2px 8px #2b2d421f}.app--focus .instr__menu{background:#fff;border:0;border-radius:22px;grid-template-columns:repeat(4,64px);gap:8px;width:auto;padding:10px;box-shadow:0 14px 36px #2b2d4238}.app--focus .instr__item{background:#f6f1ea;border:3px solid #0000;border-radius:18px;justify-content:center;width:64px;height:64px;padding:0}.app--focus .instr__item--on{border-color:var(--accent);background:#fff}@media (width<=600px) and (orientation:portrait){.app--focus .instr__menu{grid-template-columns:repeat(4,56px)}.app--focus .instr__item{width:56px;height:56px}}.pic__critter{display:block;overflow:visible}.pic__critter--bob{animation:2.4s ease-in-out infinite critter-bob}html[data-motion=calm] .pic__critter--bob{animation:none}.pic__critter--breathe{transform-origin:50% 90%;animation:3.2s ease-in-out infinite critter-breathe}html[data-motion=calm] .pic__critter--breathe{animation:none}.pic__critter--faded{opacity:.32}.pic__critter--fly{animation:2.6s ease-in-out infinite critter-fly}html[data-motion=calm] .pic__critter--fly{animation:none}.pic__critter--fly .critter__wings{transform-box:fill-box;transform-origin:50%;animation:.42s ease-in-out infinite alternate critter-flap}html[data-motion=calm] .pic__critter--fly .critter__wings{animation:none}.pic__critter--stomp{transform-origin:50% 95%;animation:1.8s cubic-bezier(.45,0,.55,1) infinite critter-stomp}html[data-motion=calm] .pic__critter--stomp{animation:none}@keyframes critter-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes critter-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes critter-fly{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-14px)rotate(3deg)}}@keyframes critter-flap{0%{transform:scaleY(1)}to{transform:scaleY(.55)}}@keyframes critter-stomp{0%,60%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-10px)scale(.96,1.04)}45%{transform:translateY(0)scale(1.08,.9)}}.pic__pair{align-items:flex-end}.pic__curve{align-self:center;animation:1.6s ease-in-out infinite critter-bob}html[data-motion=calm] .pic__curve{animation:none}.pic__dyn--soft .pic__rings{width:30px}.pic__rings{width:70px;overflow:visible}.pic__rings path{opacity:0;animation:1.6s ease-out infinite ring-out}html[data-motion=calm] .pic__rings path{animation:none}@keyframes ring-out{0%{opacity:0;transform:translate(-6px)}30%{opacity:1}to{opacity:0;transform:translate(10px)}}.pic__notes{width:110px;height:120px;position:relative}.pic__note{opacity:0;animation:1.8s ease-in-out infinite note-drift;position:absolute;top:55%;left:0}html[data-motion=calm] .pic__note{animation:none}@keyframes note-drift{0%{opacity:0;transform:translate(0)scale(.8)}25%{opacity:1}to{opacity:0;transform:translate(90px,-40px)scale(.6)}}.stairs{aspect-ratio:210/140;width:min(320px,72%);position:relative}.stairs__steps{width:100%;height:100%;display:block}.stairs__walker{width:26%;height:auto;margin-bottom:-2%;margin-left:-13%;animation:4.2s cubic-bezier(.45,0,.55,1) infinite stairs-up;position:absolute}html[data-motion=calm] .stairs__walker{animation:none}.stairs--down .stairs__walker{animation-name:stairs-down}@keyframes stairs-up{0%{opacity:0;bottom:20%;left:9.5%}4%{opacity:1;bottom:20%;left:9.5%}12%{opacity:1;bottom:51.1%;left:19.5%}20%{opacity:1;bottom:37.1%;left:29.5%}28%{opacity:1;bottom:68.3%;left:39.5%}36%{opacity:1;bottom:54.3%;left:49.5%}44%{opacity:1;bottom:85.4%;left:59.5%}52%{opacity:1;bottom:71.4%;left:69.5%}60%{opacity:1;bottom:102.6%;left:79.5%}68%{opacity:1;bottom:88.6%;left:89.5%}92%{opacity:1;bottom:88.6%;left:89.5%}to{opacity:0;bottom:88.6%;left:89.5%}}@keyframes stairs-down{0%{opacity:0;bottom:88.6%;left:89.5%}4%{opacity:1;bottom:88.6%;left:89.5%}12%{opacity:1;bottom:102.6%;left:79.5%}20%{opacity:1;bottom:71.4%;left:69.5%}28%{opacity:1;bottom:85.4%;left:59.5%}36%{opacity:1;bottom:54.3%;left:49.5%}44%{opacity:1;bottom:68.3%;left:39.5%}52%{opacity:1;bottom:37.1%;left:29.5%}60%{opacity:1;bottom:51.1%;left:19.5%}68%{opacity:1;bottom:20%;left:9.5%}92%{opacity:1;bottom:20%;left:9.5%}to{opacity:0;bottom:20%;left:9.5%}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .pic__critter,html:not([data-motion]) .pic__critter--fly .critter__wings,html:not([data-motion]) .pic__curve,html:not([data-motion]) .pic__rings path,html:not([data-motion]) .pic__note,html:not([data-motion]) .stairs__walker{animation:none}html:not([data-motion]) .pic__rings path,html:not([data-motion]) .pic__note{opacity:1}}html[data-motion=off] .pic__critter,html[data-motion=off] .pic__critter--fly .critter__wings,html[data-motion=off] .pic__curve,html[data-motion=off] .pic__rings path,html[data-motion=off] .pic__note,html[data-motion=off] .stairs__walker{animation:none}html[data-motion=off] .pic__rings path,html[data-motion=off] .pic__note{opacity:1}.activity--kids .pic__critter{width:auto;height:min(180px,24dvh)}.activity--kids .pic__critter--faded{height:min(100px,13dvh)}.activity--kids .pic__dyn--loud .pic__critter{height:min(210px,27dvh)}.activity--kids .pic__dyn--soft .pic__critter{height:min(130px,17dvh)}.critter__flag{transform-box:fill-box;transform-origin:0 0;animation:.62s ease-in-out infinite alternate flag-wave}html[data-motion=calm] .critter__flag{animation:none}@keyframes flag-wave{0%{transform:rotate(-8deg)}to{transform:rotate(10deg)}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .critter__flag{animation:none}}html[data-motion=off] .critter__flag{animation:none}.gym{flex-direction:column;display:flex;position:relative}.gym__page{flex-direction:column;animation:.38s ease-out gym-page-in;display:flex}.focus__stage>.gym,.gym__page,.gym__page>.score,.gym__page>.activity{flex:1;min-height:0}.focus__stage .gym__page>.score{overflow:hidden auto}@keyframes gym-page-in{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .gym__page{animation:none}}html[data-motion=off] .gym__page{animation:none}.gym__tally{background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:flex;position:absolute;top:8px;right:10px}.gym__count{color:var(--text);font-weight:700}.gym__page:has(.score)~.gym__tally{color:#5f6470;background:#ffffffd9}.gym__page:has(.score)~.gym__tally .gym__count{color:#1f2937}.gym__teach{color:var(--muted);text-align:center;margin:8px 0 0;font-size:14px}.heat{flex-direction:column;gap:8px;font-size:13px;display:flex}.heat__stage,.heat__why,.heat__note{margin:0}.heat__accidental{fill:var(--text);font-size:10px}.heat__step,.heat__note{color:var(--muted)}.heat__row{margin:0}.heat__svg{width:100%;max-height:120px;display:block}.heat__line{stroke:var(--muted);stroke-width:.8px;opacity:.55}.heat__clef{fill:var(--muted);font-size:13px;font-weight:700}.heat__hit{fill:#0000}.heat__cell:hover .heat__note{stroke:var(--text);stroke-width:1.5px}.heat__note{stroke:var(--warn);stroke-width:.8px}.heat__note--new{fill:none;stroke:var(--muted);stroke-dasharray:2 1.5}.heat__cell:not(.heat__cell--open){opacity:.55}.heat__legend{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.heat__ramp{background:linear-gradient(to right, color-mix(in srgb, var(--warn) 12%, var(--panel)), var(--warn));border-radius:4px;width:64px;height:8px}.heat__swatch--new{border:1px dashed var(--muted);border-radius:50%;width:10px;height:8px;margin-left:8px}.gymctl{flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px;font-size:13px;display:flex}.gymctl__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gymctl__label{color:var(--muted)}.gymctl .select{max-width:100%}.gymctl__confirm{border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.gymctl__question{margin:0}.gymctl__danger{color:var(--error);border-color:color-mix(in srgb, var(--error) 50%, var(--line))}.gym__card{background:var(--paper);color:var(--paper-ink);gap:18px}.card__staff{flex:0 auto;width:auto;min-width:0;max-width:100%;height:min(40dvh,460px);min-height:200px;animation:.2s ease-out card-in}.activity--kids .card__staff{animation:.26s ease-out pop}@keyframes card-in{0%{opacity:0}}.focus__stage .card__staff{height:100%;min-height:0}.card__friend{flex:none;align-self:center}.card__line{stroke:currentColor;stroke-width:1.2px;opacity:.8}.card__line--bar{stroke-width:2px}.card__accidental{fill:currentColor;font-size:22px;font-weight:700}.card__note--found{opacity:.55}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .card__staff,html:not([data-motion]) .activity--kids .card__staff{animation:none}}html[data-motion=off] .card__staff,html[data-motion=off] .activity--kids .card__staff{animation:none}:root{--reef-teal:#2fb5a3;--reef-teal-deep:#177a6e;--reef-teal-soft:#2fb5a329;--reef-coral:#f47e6b;--reef-coral-deep:#b8412f;--reef-coral-soft:#f47e6b29;--reef-sea:#3aa8f0;--reef-sea-deep:#1d6aa8;--reef-sea-soft:#3aa8f029;--reef-kelp:#4cbc8c;--reef-kelp-deep:#1f7650;--reef-kelp-soft:#4cbc8c29;--reef-anemone:#f272ac;--reef-anemone-deep:#b23572;--reef-anemone-soft:#f272ac29;--reef-lavender:#b294f7;--reef-lavender-deep:#6a4cc2;--reef-lavender-soft:#b294f729;--reef-sand:#dcae6a;--reef-sand-deep:#8a5c1c;--reef-sand-soft:#dcae6a29;--path-gold:#f9c630;--path-gold-shade:#cf9a09;--path-gold-light:#ffe07a;--path-locked:#353b49;--path-locked-shade:#252a35;--path-locked-ink:#5d657a;--path-due:#f0b429;--path-glyph:#16334a;--path-link:#3aa8f0;--path-face-w:80px;--path-face-h:72px;--path-radius:16px;--path-radius-sm:12px;--path-press:var(--key-ease);--path-stop-shadow:0 2px 3px #00000073, 0 10px 16px -8px #000000bf;--path-stop-shadow-pressed:0 1px 1px #00000080, 0 3px 5px -3px #000000a6;--path-card-shadow:0 1px 2px #00000059, 0 12px 28px -14px #000000bf;--path-weight:800;--path-title-weight:700;--path-text-eyebrow:14px;--path-text-small:13px;--path-text-body:15px;--path-text-title:21px;--path-text-display:28px;--path-eyebrow-spacing:.06em;--path-surface:#1b1f29;--path-surface-line:#323848;--path-surface-text:#e8eaf0;--path-surface-muted:#8f97aa;--path-ring-track:#2a2f3b;--path-shadow:0 10px 24px #00000059;--path-paper:#f6f4ee;--path-paper-ink:#1f2937;--path-ground:#1c2130;--path-star-empty:#2e3442;--path-star-on:#d8b24a;--path-ill-ink:#2b2d42;--path-ill-wood:#c47a45;--path-ill-wood-dark:#97572c;--path-ill-wood-light:#dd9760;--path-ill-paper:#f3ead8;--path-ill-paper-dark:#d6c8aa;--path-ill-brass:#efb840;--path-ill-brass-dark:#c28a1c;--path-ill-leaf:#5bbf4e;--path-ill-leaf-dark:#3f963a;--path-ill-clay:#e06a4b;--path-ill-clay-dark:#b34d33;--path-ill-lamp:#ffd66b;--path-ill-metal:#7d8598;--path-ill-metal-dark:#5a6174;--path-ill-china:#eef2f9;--path-ill-china-dark:#c8d1e0;--path-ill-blue:#4f8fe6;--path-ill-blue-dark:#3570c2;--path-ill-red:#e5574b;--path-ill-red-dark:#b73e34;--path-ill-tea:#b0703a}:root[data-mode=kids]{--path-face-w:96px;--path-face-h:86px;--path-radius:20px;--path-radius-sm:16px;--path-text-title:22px;--path-text-display:30px;--path-locked:#e3ddd4;--path-locked-shade:#c9c1b4;--path-locked-ink:#b1a898;--path-link:#1d6aa8;--path-stop-shadow:0 2px 3px #16334a2e, 0 12px 18px -8px #16334a6b;--path-stop-shadow-pressed:0 1px 1px #16334a38, 0 3px 6px -3px #16334a5c;--path-card-shadow:0 1px 2px #16334a1f, 0 12px 26px -14px #16334a61;--path-surface:#fff;--path-surface-line:#ebe3d7;--path-surface-text:#2b2d42;--path-surface-muted:#6b6058;--path-ring-track:#2b2d421a;--path-shadow:0 10px 24px #50321424;--path-paper:#fff;--path-ground:#28321e24;--path-star-empty:#2b2d4229;--path-star-on:#ffc83d}[data-unit-colour=teal]{--unit:var(--reef-teal);--unit-deep:var(--reef-teal-deep);--unit-soft:var(--reef-teal-soft)}[data-unit-colour=coral]{--unit:var(--reef-coral);--unit-deep:var(--reef-coral-deep);--unit-soft:var(--reef-coral-soft)}[data-unit-colour=sea]{--unit:var(--reef-sea);--unit-deep:var(--reef-sea-deep);--unit-soft:var(--reef-sea-soft)}[data-unit-colour=kelp]{--unit:var(--reef-kelp);--unit-deep:var(--reef-kelp-deep);--unit-soft:var(--reef-kelp-soft)}[data-unit-colour=anemone]{--unit:var(--reef-anemone);--unit-deep:var(--reef-anemone-deep);--unit-soft:var(--reef-anemone-soft)}[data-unit-colour=lavender]{--unit:var(--reef-lavender);--unit-deep:var(--reef-lavender-deep);--unit-soft:var(--reef-lavender-soft)}[data-unit-colour=sand]{--unit:var(--reef-sand);--unit-deep:var(--reef-sand-deep);--unit-soft:var(--reef-sand-soft)}.habits{--h-surface:var(--path-surface,#1b1f29);--h-line:var(--path-surface-line,#323848);--h-text:var(--path-surface-text,#e8eaf0);--h-muted:var(--path-surface-muted,#8f97aa);--h-track:var(--path-ring-track,#2a2f3b);--h-flame:var(--brand-orange,#f28a2e);--h-flame-shade:var(--brand-ember,#cf6519);--h-flame-core:var(--path-gold-light,#ffe07a);--h-idle:var(--path-locked,#353b49);--h-idle-shade:var(--path-locked-shade,#252a35);--h-idle-core:var(--path-locked-ink,#5d657a);--h-gold:var(--path-gold,#f9c630);--h-gold-shade:var(--path-gold-shade,#cf9a09);--h-go:#2fb5a3;--h-go-text:#2fb5a3;--h-due:var(--path-due,#f0b429);--h-paper:var(--path-paper,#f6f4ee);--h-ink:var(--path-paper-ink,#1f2937);--h-radius:var(--path-radius,16px);--h-radius-sm:var(--path-radius-sm,12px);--h-card-shadow:var(--path-card-shadow,0 12px 28px -14px #000000bf);color:var(--h-text)}:root[data-mode=kids] .habits{--h-go:#1d8f81;--h-go-text:#177a6e}.habits-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.habits-bar{min-height:36px;font:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.habits-bar--button{border-radius:var(--h-radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.habits-bar--button:hover .habits-chip{background:color-mix(in srgb, var(--h-line) 60%, transparent)}.habits-bar--button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.habits-chip{border-radius:var(--h-radius-sm);height:36px;font-size:15px;font-weight:var(--path-weight,800);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:5px;padding:0 8px;transition:background .12s ease-out;display:inline-flex}.habits-chip--streak{color:var(--h-flame)}.habits-chip--waiting{color:var(--h-muted)}.habits-chip--goal{color:var(--h-text)}.habits-chip--reached{color:var(--h-gold)}.habits-chip__figure small{color:var(--h-muted);margin-left:1px;font-size:12px;font-weight:700}.habits-ring__fill{transition:stroke-dashoffset .6s cubic-bezier(.3,.8,.3,1)}@media (width<=480px){.habits-chip{padding:0 5px}.habits-chip__figure small{display:none}}.habits-cheer{border:2px solid color-mix(in srgb, var(--h-gold) 55%, transparent);border-radius:var(--h-radius);background:color-mix(in srgb, var(--h-gold) 12%, var(--h-surface));width:100%;box-shadow:var(--h-card-shadow);text-align:left;align-items:center;gap:14px;padding:12px 16px;animation:.42s cubic-bezier(.3,1.3,.5,1) both habits-rise;display:flex}.habits-cheer__ring{flex:none;overflow:visible}.habits-cheer__track{animation:.2s .9s both habits-fade-out}.habits-cheer__disc{transform-box:fill-box;transform-origin:50%;animation:.42s cubic-bezier(.3,1.7,.5,1) .82s both habits-pop}.habits-cheer__sweep{animation:.7s cubic-bezier(.4,0,.3,1) .18s both habits-sweep}.habits-cheer__check{stroke-dasharray:1 1;animation:.3s ease-out 1.1s both habits-draw}.habits-cheer__title{color:var(--h-gold);font-size:18px;font-weight:var(--path-weight,800);margin:0}.habits-cheer__line{color:var(--h-muted);align-items:center;gap:5px;margin:2px 0 0;font-size:14px;font-weight:700;display:flex}.habits-cheer__flame{flex:none}.habits-sheet-back{z-index:40;background:#080a108c;justify-content:center;align-items:flex-end;padding:0;animation:.16s ease-out both habits-fade-in;display:flex;position:fixed;inset:0}.habits--kids.habits-sheet-back{background:#3c281447}.habits-sheet{width:100%;max-width:520px;max-height:calc(100dvh - 24px);padding:22px 16px calc(20px + env(safe-area-inset-bottom,0px));border:2px solid var(--h-line);border-radius:var(--h-radius) var(--h-radius) 0 0;background:var(--h-surface);box-shadow:var(--path-shadow,0 10px 24px #00000059);text-align:center;border-bottom:0;flex-direction:column;align-items:center;gap:14px;animation:.26s cubic-bezier(.2,.9,.3,1) both habits-sheet-up;display:flex;position:relative;overflow-y:auto}@media (width>=700px) and (height>=560px){.habits-sheet-back{align-items:center;padding:24px}.habits-sheet{border-bottom:2px solid var(--h-line);border-radius:var(--h-radius);box-shadow:var(--path-shadow,0 10px 24px #00000059);padding:26px 28px;animation-name:habits-rise}}.habits-sheet__close{width:44px;height:44px;color:var(--h-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.habits--kids .habits-sheet__close{width:56px;height:56px}.habits-sheet__close:hover{color:var(--h-text)}.habits-sheet__close:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}.habits-sheet__head{padding:0 36px}.habits-sheet__eyebrow{color:var(--h-go-text);font-size:var(--path-text-eyebrow,14px);font-weight:var(--path-weight,800);letter-spacing:var(--path-eyebrow-spacing,.06em);margin:0 0 4px;font-variant-caps:all-small-caps}.habits-sheet__title{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--path-text-title,21px);font-weight:var(--path-title-weight,700);margin:0;line-height:1.25}.habits-sheet__sub{color:var(--h-muted);font-size:var(--path-text-body,15px);margin:6px 0 0;line-height:1.4}.habits-sheet__meta{color:var(--h-muted);font-size:var(--path-text-small,13px);margin:0;font-weight:700}.habits-paper{border-radius:var(--h-radius-sm);background:var(--h-paper);width:100%;box-shadow:var(--h-card-shadow);color:var(--h-ink);margin:0;padding:10px 14px 8px}.habits--kids .habits-paper{padding:14px 16px 6px}.habits-paper__key{color:color-mix(in srgb, var(--h-ink) 62%, transparent);justify-content:center;align-items:center;gap:6px;margin-top:2px;font-size:12px;font-weight:700;display:flex}.habits-paper__dot{background:var(--h-due);border-radius:50%;width:8px;height:8px}.habits-btn{border-radius:var(--key-radius);background:var(--key-bg);min-height:50px;box-shadow:var(--key-highlight), var(--key-shadow);color:var(--key-text);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--path-press,.156s ease-out), box-shadow var(--path-press,.156s ease-out), background-color .12s ease-out;border:0;justify-content:center;align-items:center;padding:0 22px;font-family:inherit;font-size:16px;font-weight:800;line-height:1.15;display:inline-flex}.habits-btn:hover{background:var(--key-bg-hover)}.habits-btn:active{transform:translateY(var(--key-press));box-shadow:var(--key-highlight), var(--key-shadow-pressed)}.habits-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.habits-btn:disabled,.habits-btn:disabled:hover{background:var(--h-idle);color:var(--h-idle-core);box-shadow:none;cursor:default}.habits-btn:disabled:active{transform:none}.habits-btn--wide{width:min(340px,100%)}.habits-btn--round{border-radius:50%;width:92px;height:92px;padding:0}.habits-settings{flex-wrap:wrap;align-items:flex-end;gap:12px 24px;display:flex}.habits-settings__goal{border:0;min-width:0;margin:0;padding:0}.habits-settings__label{color:var(--h-muted);font-size:var(--path-text-eyebrow,14px);font-weight:var(--path-weight,800);letter-spacing:var(--path-eyebrow-spacing,.06em);margin:0 0 6px;padding:0;font-variant-caps:all-small-caps;display:block}.habits-choices{flex-wrap:wrap;gap:6px;display:flex}.habits-choice{display:inline-flex;position:relative}.habits-choice input,.habits-switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.habits-choice span{border-radius:var(--key-radius);min-height:40px;box-shadow:inset 0 0 0 2px var(--h-line), var(--key-shadow);color:var(--h-text);white-space:nowrap;align-items:center;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.habits-choice input:checked+span{background:var(--key-bg);box-shadow:var(--key-highlight), var(--key-shadow);color:var(--key-text)}.habits-choice input:focus-visible+span,.habits-switch input:focus-visible+.habits-switch__track{outline:3px solid var(--focus-ring);outline-offset:2px}.habits-switch{flex-direction:column;align-items:flex-start;display:inline-flex;position:relative}.habits-switch__track{background:var(--h-idle);width:54px;height:32px;box-shadow:inset 0 0 0 1px var(--h-idle-shade);border-radius:16px;align-items:center;padding:3px;transition:background .14s ease-out;display:inline-flex}.habits-switch__thumb{background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .16s ease-out;box-shadow:0 1px 3px #0000004d}.habits-switch input:checked+.habits-switch__track{background:var(--h-go);box-shadow:none}.habits-switch input:checked+.habits-switch__track .habits-switch__thumb{transform:translate(22px)}.habits-week{flex-direction:column;gap:10px;display:flex}.habits-week__title{font-size:17px;font-weight:var(--path-weight,800);margin:0}.habits-week__days{grid-template-columns:repeat(7,minmax(0,44px));gap:6px;margin:0;padding:0;list-style:none;display:grid}.habits-week__day{flex-direction:column;align-items:center;gap:4px;display:flex}.habits-week__dot{border:3px solid var(--h-line);border-radius:50%;width:26px;height:26px}.habits-week__day--played .habits-week__dot{border-color:var(--h-go);background:var(--h-go)}.habits-week__letter{color:var(--h-muted);font-size:12px;font-weight:800}.habits-week__day--today .habits-week__letter{color:var(--h-text);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.habits-week__sentence{color:var(--h-muted);margin:0;font-size:14px}.habits-week__caption{color:color-mix(in srgb, var(--h-ink) 66%, transparent);letter-spacing:.06em;margin:0 0 4px;font-size:14px;font-variant-caps:all-small-caps;font-weight:800}.habits-paper--week{text-align:center}.habits-staff{width:100%;height:auto;color:var(--h-ink);margin:0 auto;display:block}.habits .engr__lines line,.habits .engr__ledgers line{stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;opacity:.78}.habits .engr__ledgers line{stroke-width:1.6px;opacity:.9}.habits .engr__barline{stroke:currentColor;stroke-width:1.6px;opacity:.78}.habits .engr__hollow{fill:var(--h-paper)}.habits .engr__letter{fill:color-mix(in srgb, var(--h-ink) 62%, transparent);letter-spacing:.08em;font-size:12px;font-weight:800}.habits-staff__due{fill:var(--h-due)}.habits-staff__note{animation:.3s both habits-fade-in;animation-delay:calc(.12s + var(--i) * 60ms)}@keyframes habits-fade-in{0%{opacity:0}}@keyframes habits-fade-out{to{opacity:0}}@keyframes habits-rise{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes habits-sheet-up{0%{opacity:0;transform:translateY(40px)}}@keyframes habits-sweep{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes habits-pop{0%{opacity:0;transform:scale(.6)}}@keyframes habits-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .habits,html:not([data-motion]) .habits *,html:not([data-motion]) .habits-sheet-back,html:not([data-motion]) .habits-sheet-back *{transition:none!important;animation:none!important}}html[data-motion=off] .habits,html[data-motion=off] .habits *,html[data-motion=off] .habits-sheet-back,html[data-motion=off] .habits-sheet-back *{transition:none!important;animation:none!important}.acct-avatar{object-fit:cover;font-family:var(--font-display,var(--font));-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.acct-avatar--pending{background:var(--panel-2);width:32px;height:32px;box-shadow:inset 0 0 0 2px var(--line)}.acct-handle{min-width:44px;height:44px;color:var(--ab-muted,var(--muted));cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 8px 0 6px;display:inline-flex;position:relative}.acct-handle:hover,.acct-handle[aria-expanded=true]{background:var(--ab-hover,var(--panel-2))}.acct-handle__sign{display:inline-flex}.acct-handle .acct-avatar{box-shadow:0 0 0 2px var(--ab-bar,var(--bg)), 0 0 0 3px var(--ab-hair,var(--line));transition:box-shadow .12s}.acct-handle:hover .acct-avatar,.acct-handle[aria-expanded=true] .acct-avatar{box-shadow:0 0 0 2px var(--ab-bar,var(--bg)), 0 0 0 4px #2fb5a3}.acct-handle--sign-in{border-radius:var(--key-radius);color:var(--ab-accent-text,var(--accent));box-shadow:inset 0 0 0 1.2px var(--ab-hair,var(--line));white-space:nowrap;gap:8px;padding:0 10px 0 14px;font-size:15px;font-weight:700}.acct-handle--sign-in .acct-handle__sign{color:var(--ab-ink,var(--text))}.acct-handle__dot{background:var(--ab-dot,#f28a2e);width:8px;height:8px;box-shadow:0 0 0 2px var(--ab-bar,var(--bg));border-radius:50%;position:absolute;top:6px;right:4px}@media (width<=767px){.acct-handle{padding:0 6px}.acct-handle__sign{display:none}.acct-handle--sign-in{padding:0 12px;font-size:14px}}.dlg{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);width:min(520px,100vw - 32px);color:var(--text);box-shadow:var(--shadow);padding:22px 24px}.dlg::backdrop{background:#080a0e9e}.dlg__title{margin:0 0 8px;font-size:18px}.dlg__body{color:var(--muted);margin:0;font-size:14px}.dlg__steps{color:var(--muted);margin:14px 0 0;padding-left:20px;font-size:14px}.dlg__steps li{margin-bottom:6px}.dlg__steps strong,.dlg__body strong{color:var(--text);font-weight:600}.dlg__shortcut{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);margin-top:16px;padding:11px 12px}.dlg__shortcut-label{letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-size:13px;font-variant-caps:all-small-caps;display:block}.dlg__shortcut-row{align-items:center;gap:8px;display:flex}.dlg__url{white-space:nowrap;min-width:0;color:var(--accent);flex:1;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;overflow-x:auto}.dlg__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.dlg__later{color:var(--muted);margin-top:12px;font-size:12px;text-decoration:none}:root{--keyhint-size:20px}.keyhint,.keycap{border:1px solid var(--line);background:var(--bg);min-width:1.6em;height:1.6em;color:var(--muted);vertical-align:middle;white-space:nowrap;border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 .4em;font:600 11px/1 ui-sans-serif,system-ui,sans-serif;display:inline-flex}.keyhint{min-width:var(--keyhint-size);height:var(--keyhint-size);letter-spacing:0;text-transform:none;opacity:.85;margin-left:8px;padding:0 4px;font-family:Georgia,Times New Roman,serif;font-size:12px}button>.keyhint:not(.keyhint--under){margin-left:0}.sbtn--wide:has(>.keyhint:not(.keyhint--under)):before{content:"";width:var(--keyhint-size);flex:none}.sbtn .keyhint:not(.keyhint--under){border-color:color-mix(in srgb, currentColor 55%, transparent);background:color-mix(in srgb, currentColor 16%, transparent);color:inherit}.keyhint--under{pointer-events:none;margin:0;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.keycap--note{font-family:Georgia,Times New Roman,serif;font-size:12px}.shortcuts-btn{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);width:40px;height:40px;color:var(--muted);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;transition:border-color .12s,color .12s;display:inline-flex}.shortcuts-btn:hover,.shortcuts-btn[aria-expanded=true]{border-color:var(--accent);color:var(--text)}@media (hover:none) and (pointer:coarse){.shortcuts-btn{display:none}}.shortcuts{max-height:calc(100dvh - 32px);overflow-y:auto}.shortcuts__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.shortcuts__head .dlg__title{margin:0}.shortcuts__section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.shortcuts__heading{letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:13px;font-variant-caps:all-small-caps;font-weight:700}.shortcuts__list{gap:6px;margin:0;display:grid}.shortcuts__row{grid-template-columns:minmax(96px,max-content) 1fr;align-items:center;gap:14px;display:grid}.shortcuts__row dt{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.shortcuts__row dd{margin:0;font-size:14px}.shortcuts__or{color:var(--muted);font-size:12px}.shortcuts__note{color:var(--muted);margin:0 0 8px;font-size:13px;line-height:1.6}.shortcuts__note strong{color:var(--text);font-weight:600}.pearl{filter:drop-shadow(0 1px 1px #14100a4d);flex:none;display:block}.pearl-count{height:34px;box-shadow:inset 0 0 0 1px var(--line);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default;background:#f6efdd0f;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 11px 0 7px;font-size:15px;font-weight:700;line-height:1;display:inline-flex}@media (width<=440px){.pearl-count{box-shadow:none;background:0 0;gap:3px;padding:0 2px;font-size:14px}.pearl-count .pearl{width:16px;height:16px}}.pearl-shell{filter:drop-shadow(0 2px 2px #3c281429);flex:none;align-items:center;line-height:0;display:inline-flex}.pearl-shell__new{transform-box:fill-box;transform-origin:50% 100%;animation:pearl-drop .625s calc(.7s + var(--i,0) * .312s) cubic-bezier(.3, .6, .4, 1.4) both}@keyframes pearl-drop{0%{opacity:0;transform:translateY(-26px)}60%{opacity:1}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .pearl-shell__new{animation:none}}html[data-motion=off] .pearl-shell__new{animation:none}.abar-wrap{--ab-bar:#10141c;--ab-ink:#efe8d8;--ab-muted:#9aa4b0;--ab-hair:#f6efdd24;--ab-hair-soft:#f6efdd12;--ab-accent:#2fb5a3;--ab-accent-text:#8fe3d5;--ab-hover:#f6efdd17;--ab-chip:#f6efdd0d;--ab-card:#171d28;--ab-card-shadow:0 1px 2px #0000004d, 0 22px 44px -18px #000000d9;--focus-ring:#f47e6b;--ab-on-bg:#177a6e;--ab-on-ink:#fff;--ab-dot:#f28a2e;z-index:9;color:var(--ab-ink);flex:none;position:relative}.theme--paper .abar-wrap{--ab-bar:#f7f0de;--ab-ink:#16334a;--ab-muted:#5a6670;--ab-hair:#16334a33;--ab-hair-soft:#16334a1a;--ab-accent:#1d8f81;--ab-accent-text:#146b61;--ab-hover:#16334a14;--ab-chip:#16334a0b;--ab-card:#fcf7ea;--ab-card-shadow:0 1px 2px #16334a14, 0 18px 40px -18px #281e0a73;--focus-ring:#16334a;--ab-on-bg:#16334a;--ab-on-ink:#f7f0de;--ab-dot:#cf6519}.abar-wrap :focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.abar{padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--ab-hair);background:var(--ab-bar)}.abar__in{max-width:1240px;height:60px;padding:0 max(20px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));align-items:center;gap:6px;margin:0 auto;display:flex}.abar__in>*{flex:none}.abar__brand{color:var(--ab-ink);font:600 21px/1 var(--font-display);letter-spacing:-.005em;white-space:nowrap;align-items:center;gap:9px;margin:0 18px 0 0;display:inline-flex}.abar__mark{flex:none;width:32px;height:32px;display:block}.abar__hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.abar__tabs{align-self:stretch;gap:4px;display:flex}.abar__tab{min-width:44px;color:var(--ab-muted);font:700 16px/1 var(--font-ui);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;padding:0 12px;display:inline-flex;position:relative}.abar__tab:hover,.abar__tab--on{color:var(--ab-ink)}.abar__tab--on:after{content:"";background:var(--ab-accent);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:8px;right:8px}.abar__tab:focus-visible{outline-offset:-3px}.abar__in>.abar__grow{flex:auto;min-width:0}.abar .instr__button{width:auto;min-width:44px;height:44px;color:var(--ab-ink);background:0 0;border:0;border-radius:12px;align-items:center;gap:7px;padding:0 8px;display:inline-flex}.abar .instr__button:hover,.abar .instr__button[aria-expanded=true]{background:var(--ab-hover)}.abar .instr__button svg{flex:none}.abar .instr__for{color:var(--ab-muted);font:italic 400 17px/1 var(--font-display)}.abar .instr__name{font:600 17px/1 var(--font-display)}.abar .instr__chev{color:var(--ab-muted)}.abar .instr__menu{background:var(--ab-card);width:360px;max-width:calc(100vw - 16px);color:var(--ab-ink);box-shadow:inset 0 0 0 1px var(--ab-hair-soft), var(--ab-card-shadow);border:0;border-radius:6px 6px 18px 18px;gap:2px;padding:0 8px 8px;top:calc(100% + 10px)}.instr__head{color:var(--ab-muted,var(--muted));flex-direction:column;grid-column:1/-1;gap:2px;margin:0;padding:14px 10px 8px;font-size:13.5px;line-height:1.35;display:flex}.instr__head b{color:var(--ab-ink,var(--text));font-size:16px}.abar .instr__item{min-height:52px;color:var(--ab-ink);border-radius:10px;padding:6px 10px;font-size:15px;font-weight:600}.abar .instr__item:hover{background:var(--ab-hover)}.abar .instr__item--on{border-color:var(--ab-accent);background:var(--ab-chip)}.abar .pearl-count{height:44px;box-shadow:none;color:var(--ab-ink);background:0 0;padding:0 8px}.abar__kids{border-radius:var(--key-radius);min-height:44px;color:var(--ab-ink);box-shadow:inset 0 0 0 1.2px var(--ab-hair);font:700 14px/1 var(--font-ui);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 12px 0 6px;display:inline-flex}.abar__kids:hover{background:var(--ab-hover)}.abar__kids svg{margin-top:2px}.amenu{z-index:20;overscroll-behavior:contain;background:var(--ab-card);width:min(330px,100vw - 16px);max-height:calc(100dvh - 80px);color:var(--ab-ink);box-shadow:inset 0 0 0 1px var(--ab-hair-soft), var(--ab-card-shadow);font-family:var(--font-ui);border-radius:6px 6px 18px 18px;position:absolute;top:calc(100% + 6px);right:max(8px,50% - 608px);overflow-y:auto}.amenu__who{align-items:center;gap:12px;padding:16px 18px 14px;display:flex}.amenu__who>span:last-child{flex-direction:column;min-width:0;font-size:15px;display:flex}.amenu__who b,.amenu__who small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.amenu__who small{color:var(--ab-muted);font-size:13px}.amenu__pending{width:44px;height:44px}.amenu__lead{padding:18px 18px 0}.amenu__lead b{font:600 19px/1.2 var(--font-display);display:block}.amenu__lead p{color:var(--ab-muted);margin:4px 0 0;font-size:14px;line-height:1.4}.amenu__signin-row{padding:12px 18px 14px}.amenu__signin{border-radius:var(--key-radius);background:var(--key-bg);width:100%;min-height:44px;color:var(--key-text);box-shadow:var(--key-highlight), var(--key-shadow);font:700 15px/1 var(--font-ui);cursor:pointer;transition:transform var(--key-ease), box-shadow var(--key-ease), background .12s;border:0;justify-content:center;align-items:center;display:inline-flex}.amenu__signin:hover{background:var(--key-bg-hover)}.amenu__signin:active{transform:translateY(var(--key-press));box-shadow:var(--key-highlight), var(--key-shadow-pressed)}.amenu__list{border-top:1px solid var(--ab-hair-soft);padding:6px}.amenu__row{width:100%;min-height:48px;color:inherit;font:400 15px/1.25 var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:0 12px;display:flex}.amenu__row:hover,.amenu__row:focus-visible{background:var(--ab-hover)}.amenu__row:focus-visible{outline-offset:-3px}.amenu__row--plain,.amenu__row--plain:hover{cursor:default;background:0 0}.amenu__glyph{width:28px;color:var(--ab-muted);flex:none;place-items:center;display:inline-grid}.amenu__text{flex:1;min-width:0}.amenu__text small{color:var(--ab-muted);margin-top:2px;font-size:12.5px;display:block}.amenu .keycap{border-color:var(--ab-hair);color:var(--ab-muted);font-family:var(--font-display);background:0 0;flex:none;font-size:12px}.amenu__dot{background:var(--ab-dot);border-radius:50%;flex:none;width:8px;height:8px}.amenu__seg{box-shadow:inset 0 0 0 1.2px var(--ab-hair);border-radius:9px 9px 13px 13px;flex:none;gap:2px;padding:2px;display:flex}.amenu__look{min-width:56px;min-height:44px;color:var(--ab-muted);font:700 13.5px/1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:3px 3px 10px 10px;padding:0 12px}.amenu__look:hover{color:var(--ab-ink)}.amenu__look--on,.amenu__look--on:hover{background:var(--ab-on-bg);color:var(--ab-on-ink)}.abar__panel{z-index:19;overscroll-behavior:contain;background:var(--panel);width:min(560px,100vw - 16px);max-height:calc(100dvh - 90px);color:var(--text);box-shadow:inset 0 0 0 1px var(--ab-hair-soft), var(--ab-card-shadow);border-radius:6px 6px 18px 18px;position:absolute;top:calc(100% + 6px);right:max(8px,50% - 608px);overflow-y:auto}.abar__panel[hidden]{display:none}.abar__panel-head{z-index:1;border-bottom:1px solid var(--ab-hair-soft);background:var(--panel);justify-content:space-between;align-items:center;padding:8px 8px 6px 18px;display:flex;position:sticky;top:0}.abar__panel-head h2{font:600 22px/1.2 var(--font-display);margin:0}.abar__close{width:44px;height:44px;color:var(--ab-muted);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:inline-grid}.abar__close:hover{background:var(--ab-hover);color:var(--ab-ink)}.abar__panel .devicebar{border-bottom-color:var(--ab-hair-soft);background:0 0}.abar__panel .habits-settings{padding:10px 20px 4px}.settings-panel__today{border-bottom:1px solid var(--line);justify-content:flex-start;padding:10px 20px;display:flex}@media (width<=767px){.abar__in{padding:0 max(8px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));gap:2px}.abar__brand{margin-right:4px}.abar__tabs{gap:0}.abar__tab{padding:0 10px}.abar .instr{position:static}.abar .instr__menu{width:auto;top:calc(100% + 6px);left:8px;right:8px}.abar__panel{width:auto;left:8px;right:8px}}@media (width<=359px){.abar__brand{margin-right:0}.abar__in{padding-left:max(10px, env(safe-area-inset-left))}.abar__tab{padding:0 7px;font-size:15px}.abar .pearl-count{padding:0 3px}}.kbar{z-index:8;height:calc(96px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);flex:none;position:relative}.kbar__paper{filter:drop-shadow(0 6px 10px #503c1e33);pointer-events:none;background:#fffaf0;position:absolute;inset:0}.kbar__paper:after{content:"";background:radial-gradient(circle at 10px -2px,#fffaf0 9px,#0000 9.6px) 0 0/20px 10px repeat-x;height:10px;position:absolute;bottom:-9px;left:0;right:0}.kbar__in{max-width:1240px;height:100%;padding:0 max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left));align-items:center;gap:14px;margin:0 auto;display:flex;position:relative}.kbar__ribbons{flex:none;align-self:flex-start;gap:8px;display:flex}.kbar__rib{--rc:#1d8f81;background:var(--rc);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 14px),0 100%);filter:saturate(.75)brightness(1.08);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;flex-direction:column;justify-content:flex-end;align-items:center;width:58px;height:70px;margin:0;padding:0 0 18px;display:flex}.kbar__rib--songs{--rc:#f47e6b}.kbar__rib--on{filter:none;height:104px;padding-bottom:28px}.kbar__disc{background:#fffdf7;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.kbar__disc .kbar__pic{width:36px;height:36px;display:block}.kbar__rib:focus-visible{outline:none}.kbar__rib:focus-visible .kbar__disc{box-shadow:0 0 0 3px #16334a}.kbar__rib:active .kbar__disc{transform:translateY(2px)}.kbar__title{flex:auto;justify-content:center;align-self:stretch;align-items:flex-end;gap:6px;min-width:0;padding-bottom:12px;display:flex}.kbar__curl{flex:none;margin-bottom:6px}.kbar__curl--flip{transform:scaleX(-1)}.kbar__stage{flex:0 640px;min-width:0}.kbar .band{--band-h:64px;--band-board:6px;--band-front:0px;--band-wall:transparent}.kbar .band__shell{box-shadow:none;background:0 0}.kbar .band__boards{background:radial-gradient(closest-side,#e9c995f2,#e9c99580 70%,#0000);border:0;border-radius:50%;height:9px;left:4%;right:4%}.kbar .band__riser{background:#e9c99559}.kbar__corner{flex:none;align-items:center;gap:10px;display:flex}.kbar .segmented--mode{background:#ffffffeb;border:0;border-radius:999px;flex:none;gap:2px;padding:2px;display:inline-flex;box-shadow:0 0 0 1px #2b2d4214,0 4px 10px -6px #2b2d4266}.kbar .segmented--mode .segmented__btn{color:#5f6375;border-radius:999px;min-width:44px;min-height:44px;padding:0 12px;font-size:13.5px;font-weight:700}.kbar .segmented--mode .segmented__btn--on{color:#fff;background:#177a6e}.kbar__sticker{display:inline-flex}.kbar .instr .instr__button{background:#fff;border:0;border-radius:50%;width:52px;height:52px;transform:rotate(-4deg);box-shadow:0 1px 2px #2b2d4214,0 4px 10px -6px #2b2d4273}.kbar .instr .instr__button[aria-expanded=true]{box-shadow:inset 0 0 0 3px #1d8f81,0 4px 10px -6px #2b2d4273}.kbar .instr__menu{top:calc(100% + 12px)}.kbar .pearl-shell svg{width:60px;height:auto}.kbar .hold{color:#51566b;background:#fff;width:48px;height:48px;margin-left:0;box-shadow:0 1px 2px #2b2d4214,0 4px 10px -6px #2b2d4273}.kbar .hold:before{content:"";border:2px dotted #2b2d4238;border-radius:50%;position:absolute;inset:-4px}.kbar :focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}@media (width<=1099px){.kbar{height:calc(104px + env(safe-area-inset-top))}.kbar__curl{display:none}.kbar .band{--band-h:72px}}@media (width<=767px){.kbar{height:calc(124px + env(safe-area-inset-top))}.kbar__in{padding:0 max(10px, env(safe-area-inset-right)) 0 max(10px, env(safe-area-inset-left));grid-template-rows:60px minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:10px;display:grid}.kbar__ribbons{grid-row:1/3;gap:6px}.kbar__rib{width:50px;height:92px}.kbar__rib--on{height:118px}.kbar__disc{width:42px;height:42px}.kbar__disc .kbar__pic{width:32px;height:32px}.kbar__corner{grid-area:1/2;justify-content:flex-end;gap:5px}.kbar__title{grid-area:2/2;padding-bottom:10px}.kbar .band{--band-h:52px}.kbar .segmented--mode .segmented__btn{padding:0 8px;font-size:12.5px}.kbar .instr .instr__button{width:44px;height:44px}.kbar .instr .instr__button svg{width:30px;height:30px}.kbar .instr{position:static}.kbar .instr__menu{justify-content:center;width:auto;top:calc(100% + 6px);left:8px;right:8px}.kbar .pearl-shell svg{width:44px}.kbar .hold{width:44px;height:44px}}@media (width<=399px){.kbar__in{padding:0 max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));column-gap:8px}.kbar__rib{width:46px}.kbar .pearl-shell{right:max(8px, env(safe-area-inset-right));position:absolute;bottom:12px}.kbar__title{padding-right:46px}}.band{--band-h:84px;--band-board:9px;--band-front:5px;--band-wood:var(--path-ill-wood-light,#dd9760);--band-wood-dark:var(--path-ill-wood,#c47a45);--band-wall:#fffaf2;--band-waiting:#2b2d4221;height:var(--band-h);pointer-events:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-width:0;position:relative}.band--jungle{--band-wall:#f1faea}.band--ocean{--band-wall:#eaf7fd}.band--space{--band-wall:#f2eefc;--band-waiting:#3c286e24}.band__shell,.band__glow,.band__riser,.band__boards{pointer-events:none;position:absolute}.band__shell{inset:0 0 calc(var(--band-front) / 2);border-radius:var(--path-radius,20px) var(--path-radius,20px) 14px 14px;background:var(--band-wall);box-shadow:0 2px 6px #2b2d421a}.band__glow{inset:0 0 calc(var(--band-front) / 2);border-radius:var(--path-radius,20px) var(--path-radius,20px) 14px 14px;opacity:0;background:radial-gradient(60% 90% at 50% 100%,#ffd84d61,#0000 70%);transition:opacity .22s ease-out}.band--chord .band__glow{opacity:1}.band__boards{height:calc(var(--band-board) + var(--band-front));border-bottom:var(--band-front) solid var(--band-wood-dark);background:repeating-linear-gradient(90deg, transparent 0 46px, #97572c38 46px 48px), var(--band-wood);border-radius:8px 8px 10px 10px;bottom:0;left:0;right:0}.band__riser{left:10px;right:10px;bottom:calc(var(--band-front) + var(--band-board) - 2px);height:var(--band-riser);background:color-mix(in srgb, var(--band-wood) 55%, var(--band-wall));border-radius:8px 8px 0 0}.band__floor{top:4px;left:8px;right:8px;bottom:calc(var(--band-front) + var(--band-board) - 4px);pointer-events:none;position:absolute;overflow:clip visible}.band__spot{line-height:0;display:block;position:absolute}.band__hop,.band__body{transform-origin:50% 96%;display:block}.band__hop svg{display:block;overflow:visible}.band__spot--waiting{color:var(--band-waiting)}.band__friend{appearance:none;font:inherit;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:40% 40% 30% 30%;margin:0;padding:0}.band__friend:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.band__note{pointer-events:none;width:max(12px,42%);animation:.9s ease-out both band-note;position:absolute;bottom:100%;left:58%}.band__note-art{width:100%;height:auto;display:block}.band__friend--arriving{animation:band-walk-on 1.3s cubic-bezier(.3, .6, .35, 1) var(--delay,0s) both}.band__friend--arriving .band__body{animation:band-step .16s ease-in-out var(--delay,0s) 8 alternate, band-wave .9s ease-in-out calc(var(--delay,0s) + 1.3s) 1}@keyframes band-note{0%{opacity:0;transform:translateY(4px)rotate(-6deg)}25%{opacity:1}to{opacity:0;transform:translate(6px,-16px)rotate(8deg)}}@keyframes band-walk-on{0%{opacity:0;transform:translateX(var(--walk,-80px))}12%{opacity:1}to{opacity:1;transform:translate(0)}}@keyframes band-step{0%{transform:translateY(0)rotate(-3deg)}to{transform:translateY(-3px)rotate(3deg)}}@keyframes band-wave{0%,to{transform:rotate(0)}20%{transform:rotate(-9deg)}45%{transform:rotate(8deg)}70%{transform:rotate(-6deg)}}@keyframes band-appear{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .band__friend--arriving{animation:band-appear .5s ease-out var(--delay,0s) both}html:not([data-motion]) .band__friend--arriving .band__body{animation:none}html:not([data-motion]) .band__note{animation:none;transform:translateY(-4px)}html:not([data-motion]) .band__glow{transition:none}}html[data-motion=off] .band__friend--arriving{animation:band-appear .5s ease-out var(--delay,0s) both}html[data-motion=off] .band__friend--arriving .band__body{animation:none}html[data-motion=off] .band__note{animation:none;transform:translateY(-4px)}html[data-motion=off] .band__glow{transition:none}.path__world{position:relative}.path__world--jungle{background:linear-gradient(#bfe9ff,#dff5dc 60%,#eaf9d6)}.path__world--ocean{background:linear-gradient(#bdf0ff,#86d3f3 35%,#3a9ae0)}.path__world--space{background:linear-gradient(#f3c69e 0,#8a62b3 140px,#2a2a66 420px,#1b1f4b 60%,#3d2b72)}.path-scenery{pointer-events:none;position:absolute;inset:0;overflow:hidden}.path-scenery>*{display:block;position:absolute}.path-scenery__sun{background:#ffd84d;border-radius:50%;width:64px;height:64px;top:28px;right:7%;box-shadow:0 0 0 14px #ffe06659,0 0 0 32px #ffe06626}.path-scenery__vine{width:120px;height:260px;top:0}.path-scenery__vine--left{left:-18px}.path-scenery__vine--right{top:34%;right:-18px;transform:scaleX(-1)}.path-scenery__fronds{width:120px;height:200px;bottom:70px;left:0}.path-scenery__hills{width:100%;height:110px;bottom:0;left:0}.path-scenery__waves{width:100%;height:40px;top:0;left:0}.path-scenery__dots{width:100%;height:100%;inset:0}.path-scenery__weed{width:80px;height:160px;bottom:60px}.path-scenery__weed--left{left:2%}.path-scenery__weed--right{bottom:50px;right:3%}.path-scenery__sand{width:100%;height:90px;bottom:0;left:0}.path-scenery__star{width:34px;height:34px;bottom:24px;right:12%;transform:rotate(-12deg)}.path-scenery__planet{width:140px;height:100px;top:150px;left:3%}.path-scenery__moon{width:80px;height:80px;top:44%;right:4%}@media (width<=600px){.path-scenery__vine,.path-scenery__fronds,.path-scenery__weed{opacity:.6;scale:.7}.path-scenery__planet{width:96px;height:70px}.path-scenery__moon{width:52px;height:52px}.path-scenery__sun{width:48px;height:48px}}.path--ink{--score-ground:radial-gradient(1200px 700px at 50% -200px, #13263a 0, #13263a00 70%), linear-gradient(#0f1117, #0d1015 60%, #0f1117);--score-ink:#f6efdd80;--score-pencil:#f6efdd26;--score-pencil-dash:none;--score-text:#efe8d8;--score-muted:#9aa4b0;--score-faint:#6f7a86;--score-head:#efe8d8;--score-head-todo:#efe8d899;--score-head-locked:#efe8d84d;--score-accent:#2fb5a3;--score-accent-text:#8fe3d5;--score-glow:#2fb5a38c;--score-due:#f1cf86;--score-due-ground:#2a2517;--score-card:#f6efdd;--score-card-ink:#16334a;--score-bloom:#2fb5a3;--focus-ring:#f47e6b;--score-tick:#efe8d84d;--score-tick-on:#efe8d8;--score-tick-top:#d8b24a;--score-octo-shadow:drop-shadow(0 6px 10px #00000080);--oy-shell:#e9c995;--oy-lid:#f4d7b3;--oy-ridge:#cfa16a;--oy-line:none;--oy-frill:#f47e6b;--oy-shadow:#0000004d}.path--paper{--score-ground:radial-gradient(1200px 800px at 50% 0, #fbf5e6, #f3e8cf 70%, #ecdfc2);--score-ink:#16334a;--score-pencil:#9b968b;--score-pencil-dash:14 2.5 5 2.5;--score-text:#16334a;--score-muted:#5a6670;--score-faint:#7d796f;--score-head:#16334a;--score-head-todo:#7d786e;--score-head-locked:#aaa497;--score-accent:#1d8f81;--score-accent-text:#146b61;--score-glow:#1d8f8159;--score-due:#16334a;--score-due-ground:#fbf5e6;--score-card:transparent;--score-card-ink:#16334a;--score-bloom:#16334a;--focus-ring:#16334a;--score-tick:#16334a40;--score-tick-on:#16334a;--score-tick-top:#1d8f81;--score-octo-shadow:none;--oy-shell:#f6efdd;--oy-lid:#f6efdd;--oy-ridge:#16334a;--oy-line:#16334a;--oy-frill:#e8704f;--oy-shadow:#16334a1f}.theme--paper{--bg:#f3e9d2;--panel:#fbf5e6;--panel-2:#efe4ca;--line:#d6c7a6;--text:#16334a;--muted:#5a6670;--accent:#177a6e;--accent-fill:#177a6e;--next:#177a6e;--next-soft:#177a6e24;--ok:#1d8f81;--ok-ink:#146b61;--warn:#8a5c1c;--error:#b8412f;--star:#8a5c1c;--paper:#fffdf7;--shadow:0 1px 2px #50321414, 0 8px 24px #5032141a;--key-shadow:var(--key-shadow-day);--key-shadow-pressed:var(--key-shadow-day-pressed);--key-outline:#177a6e;--key-outline-text:#146b61;--key-outline-bg:#fffdf7;--focus-ring:#16334a;--path-surface:#fbf5e6;--path-surface-line:#d6c7a6;--path-surface-text:#16334a;--path-surface-muted:#5a6670;--path-ring-track:#16334a1f;--path-shadow:0 10px 24px #50321424;--path-card-shadow:0 1px 2px #5032141a, 0 12px 26px -14px #50321466;--path-link:#1d6aa8;--path-locked:#e3dccb;--path-locked-shade:#cbc2ad;--path-locked-ink:#8b877d;--path-paper:#fffdf7;--path-paper-ink:#16334a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--bg);color:var(--text)}.theme--paper .habits{--h-go:#1d8f81;--h-go-text:#177a6e}.path{color:var(--text);position:relative}.map-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.map-glyph{vertical-align:middle;flex:none;display:inline-block}.path-offer{border:2px solid var(--path-surface-line);border-radius:var(--path-radius);background:var(--path-surface);box-shadow:var(--path-card-shadow);color:var(--path-surface-text);margin:0 0 28px;padding:18px 18px 20px}.path-offer__title{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--path-text-title);font-weight:var(--path-title-weight);margin:0 0 8px;line-height:1.2}.path-offer__line{color:var(--path-surface-muted);font-size:var(--path-text-body);margin:4px 0 0;font-weight:600;line-height:1.45}.path-offer__line strong{color:var(--path-surface-text)}.path-offer__actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.path-offer__btn{border-radius:var(--key-radius);background:var(--key-bg);min-height:50px;box-shadow:var(--key-highlight), var(--key-shadow);color:var(--key-text);font:inherit;font-size:16px;font-weight:var(--path-weight);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--path-press), box-shadow var(--path-press), background-color .12s ease-out;border:0;flex:180px;padding:0 18px}.path-offer__btn:hover{background:var(--key-bg-hover)}.path-offer__btn:active{transform:translateY(var(--key-press));box-shadow:var(--key-highlight), var(--key-shadow-pressed)}.path-offer__btn--test{background:var(--key-outline-bg);box-shadow:inset 0 0 0 2px var(--key-outline), var(--key-shadow);color:var(--key-outline-text)}.path-offer__btn--test:hover{background:color-mix(in srgb, var(--key-outline) 14%, transparent)}.path-offer__btn--test:active{box-shadow:inset 0 0 0 2px var(--key-outline), var(--key-shadow-pressed)}.path-offer__btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.path-staff{width:100%;max-width:300px;height:auto;color:var(--path-paper-ink);display:block;overflow:visible}.path-staff__line{stroke:var(--path-paper-ink);stroke-width:1.1px;opacity:.75}.path-staff__line--ledger{opacity:.9}.path-staff__clef,.path-staff__brace{color:var(--path-paper-ink)}.path-staff__brace{fill:none;stroke:var(--path-paper-ink);stroke-width:2.2px;stroke-linecap:round}.path-staff__note--landmark{color:var(--unit-deep)}.path-staff__hollow{fill:var(--path-paper)}.path-staff__letter{fill:currentColor;letter-spacing:.06em;font-size:11px;font-weight:800}.path-staff__caret{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.path__dock{z-index:6;bottom:max(16px, env(safe-area-inset-bottom));max-width:800px;height:0;padding-right:max(16px, env(safe-area-inset-right));pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:12px;margin:0 auto;display:flex;position:sticky}.path__float{border-radius:var(--key-radius);background:var(--path-surface);min-width:52px;height:52px;box-shadow:inset 0 0 0 2px var(--path-surface-line), var(--key-shadow);color:var(--path-surface-text);font:inherit;font-size:15px;font-weight:var(--path-weight);pointer-events:auto;cursor:pointer;transition:transform var(--path-press), box-shadow var(--path-press), background-color .12s ease-out;-webkit-tap-highlight-color:transparent;border:0;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.path__float:active{transform:translateY(var(--key-press));box-shadow:inset 0 0 0 2px var(--path-surface-line), var(--key-shadow-pressed)}.path__float:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.path__float--practice{--glyph-cut:var(--key-bg);background:var(--key-bg);box-shadow:var(--key-highlight), var(--key-shadow);color:var(--key-text)}.path__float--practice:hover{--glyph-cut:var(--key-bg-hover);background:var(--key-bg-hover)}.path__float--practice:active{box-shadow:var(--key-highlight), var(--key-shadow-pressed)}.path--kids .path__float{border-radius:var(--key-radius-big);min-width:64px;height:64px}.oyster{line-height:0;display:inline-block;position:relative}.oyster svg{display:block;overflow:visible}.oyster__shadow{fill:var(--oy-shadow,#143c5a29)}.oyster__base{fill:var(--oy-shell,#e9c995);stroke:var(--oy-line,none);stroke-width:1.4px}.oyster__lid{fill:var(--oy-lid,#f4d7b3);stroke:var(--oy-line,none);stroke-width:1.4px}.oyster__ridges{stroke:var(--oy-ridge,#cfa16a);opacity:.8}.oyster__seam,.oyster__frill{stroke:var(--oy-frill,#f47e6b)}.oyster__nacre{stroke:var(--oy-line,none);stroke-width:.8px}.path--adult{background:var(--score-ground);min-height:100%;color:var(--score-text)}.score-map{max-width:1000px;margin:0 auto;padding:10px 16px 96px;position:relative}.path-offer{max-width:640px;margin:18px auto 8px}.path--adult .path__dock{max-width:1180px}.mvt-unit{margin:0 auto;position:relative}.mvt-unit+.mvt-unit{margin-top:40px}.mvt-vine{width:44px;height:min(92%,1100px);color:var(--score-ink);display:none;position:absolute;top:40px;left:-6px}.mvt-vine--right{left:auto;right:-6px;transform:scaleX(-1)}.mvt-unit--locked .mvt-vine{color:var(--score-pencil)}.mvt{text-align:center;justify-items:center;max-width:640px;margin:0 auto;padding:22px 0 4px;display:grid}.mvt__art{width:124px;color:var(--score-ink);margin-bottom:2px}.path--ink .mvt__art{color:var(--score-text)}.mvt-unit--locked .mvt__art{color:var(--score-pencil)}.ink-art{width:100%;height:auto;display:block}.ink-art__accent{fill:var(--score-accent)}.mvt-unit--locked .ink-art__accent{fill:currentColor}.mvt__eyebrow{color:var(--score-muted);letter-spacing:.06em;margin:4px 0 0;font-size:14px;font-variant-caps:all-small-caps;font-weight:700}.mvt__title{font-family:var(--font-display);letter-spacing:-.012em;color:var(--score-text);margin:0;font-size:clamp(25px,5.6vw,38px);font-weight:600;line-height:1.12}.mvt__num{font-weight:400}.mvt__dash{font-weight:300}.mvt__tempo{font-weight:500}.mvt-unit--locked .mvt__title{color:var(--score-faint)}.mvt__flourish{width:min(300px,78%);height:auto;color:var(--score-ink);margin:6px 0 2px;display:block}.path--ink .mvt__flourish{color:var(--score-muted)}.mvt-unit--locked .mvt__flourish{color:var(--score-pencil)}.mvt__meta{color:var(--score-muted);margin:2px 0 0;font-size:14px;font-weight:700}.mvt__jump{color:var(--score-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;margin:12px 0 2px;font-size:14px;display:flex}.mvt__jump-btn{border-radius:var(--key-radius);background:var(--key-outline-bg);min-height:44px;box-shadow:inset 0 0 0 2px var(--key-outline), var(--key-shadow);color:var(--key-outline-text);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--path-press), box-shadow var(--path-press);border:0;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:800;display:inline-flex}.mvt__jump-btn:hover{background:color-mix(in srgb, var(--key-outline) 12%, var(--key-outline-bg))}.mvt__jump-btn:active{transform:translateY(var(--key-press));box-shadow:inset 0 0 0 2px var(--key-outline), var(--key-shadow-pressed)}.mvt__jump-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.mvt__motif{background:var(--score-card);--path-paper:var(--score-card);--path-paper-ink:var(--score-card-ink);border-radius:4px 4px 14px 14px;width:min(280px,82%);margin:10px 0 0;padding:6px 12px 4px}.path--ink .mvt__motif{--path-paper:#f6efdd;box-shadow:0 12px 24px -16px #000000e6}.mvt__motif .path-staff{max-width:none}.mvt-unit--locked .mvt__motif{opacity:.6}.mvt__notes{max-width:34em;margin-top:6px;font-size:15px}.mvt__notes summary{min-height:44px;color:var(--score-accent-text);cursor:pointer;align-items:center;gap:7px;font-size:14px;font-weight:700;list-style:none;display:inline-flex}.mvt__notes summary::-webkit-details-marker{display:none}.mvt__notes summary:hover{text-underline-offset:3px;text-decoration:underline}.mvt__notes summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.mvt__notes p{color:var(--score-muted);font-family:var(--font-display);margin:0;font-size:16px;line-height:1.5}.rb{width:min(100%,540px);margin:6px auto 0;position:relative;container-type:inline-size}.rb__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.rb__pencil{fill:none;stroke:var(--score-pencil);stroke-width:1px;stroke-linecap:round;stroke-dasharray:var(--score-pencil-dash)}.rb__ink{fill:none;stroke:var(--score-ink);stroke-width:1.35px;stroke-linecap:round}.rb__clef{color:var(--score-ink)}.rb__clef--pencil{color:var(--score-pencil)}.rb__clef path{stroke-width:1.5px}.rb__final path{fill:none;stroke:var(--score-pencil);stroke-linecap:butt}.rb__final--done path{stroke:var(--score-ink)}.rb__final-thin{stroke-width:1.8px}.rb__final-thick{stroke-width:5.5px}.rb__bloom-stop{stop-color:var(--score-bloom);stop-opacity:1}.rb__bloom-stop--mid{stop-opacity:.45}.rb__bloom-stop--edge{stop-opacity:0}.octo-ink__ink{fill:var(--score-ink)}.octo-ink__wash{fill:var(--score-ink);opacity:.085}.octo-ink__wash--low{opacity:.07}.octo-ink__light{fill:var(--brand-cream)}.rb__octo{filter:var(--score-octo-shadow)}.rb__stops{margin:0;padding:0;list-style:none;position:absolute;inset:0}.stop,.rb__oyster{left:var(--x);top:var(--y);width:0;height:0;position:absolute}.rb__oyster .oyster{position:absolute;top:0;left:0;transform:translate(-50%,-62%)}.rb__oyster .oyster>svg{width:clamp(48px,15cqw,70px);height:auto}.stop__btn{width:0;height:0;color:var(--score-text);font:inherit;text-align:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;display:block;position:absolute;top:0;left:0}.stop__btn:disabled{cursor:default}.stop__hit{border-radius:50%;width:52px;height:48px;position:absolute;top:-24px;left:-26px}.stop--check .stop__hit{border-radius:10px;width:88px;height:44px;top:-22px;left:-44px}.stop__head{aspect-ratio:26/20;width:clamp(24px,7.4cqw,38px);color:var(--score-head);transition:transform var(--path-press);position:absolute;top:0;left:0;transform:translate(-50%,-50%)rotate(-20deg)}.stop__head svg{width:100%;height:100%;display:block}.stop--open .stop__head{color:var(--score-head-todo)}.stop--locked .stop__head{color:var(--score-head-locked)}.stop--current .stop__head{width:clamp(30px,9cqw,46px);color:var(--score-accent);filter:drop-shadow(0 0 10px var(--score-glow))}.stop__due-mark{background:var(--score-due-ground);width:22px;height:22px;color:var(--score-due);box-shadow:inset 0 0 0 1.2px var(--score-due);border-radius:50%;place-items:center;display:grid;position:absolute;top:-28px;left:14px}.stop--due .stop__head:after{content:"";border:1.3px dashed var(--score-due);border-radius:50%;position:absolute;inset:-5px}.stop__label{width:max-content;max-width:var(--space);flex-direction:column;gap:3px;display:flex;position:absolute;top:0;transform:translateY(-50%)}.stop--left .stop__label{right:var(--gap);text-align:right;align-items:flex-end}.stop--right .stop__label{left:var(--gap);text-align:left;align-items:flex-start}.stop__title{color:var(--score-text);align-items:center;gap:7px;font-size:15.5px;font-weight:700;line-height:1.2;display:inline-flex}.stop--left .stop__title{flex-direction:row-reverse}.stop__title .map-glyph{opacity:.75}.stop--open .stop__title{color:var(--score-muted);font-weight:600}.stop--locked .stop__title{color:var(--score-faint);font-weight:600}.stop__meta{color:var(--score-muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;display:inline-flex}.stop--left .stop__meta{justify-content:flex-end}.stop--locked .stop__meta{color:var(--score-faint)}.stop__due{color:var(--score-due);font-family:var(--font-display);white-space:nowrap;align-items:center;gap:5px;font-size:14px;font-style:italic;font-weight:600;display:inline-flex}.stop--current .stop__label{transform:translateY(-40px)}.stop--current .stop__title{color:var(--score-accent-text);font-size:19px}.stop__purpose{max-width:30ch;color:var(--score-muted);font-family:var(--font-display);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:15px;line-height:1.35;display:-webkit-box;overflow:hidden}.stop__go{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px;display:flex}.stop--left .stop__go{justify-content:flex-end}.stop__start{border-radius:var(--key-radius);background:var(--key-bg);min-height:40px;box-shadow:var(--key-highlight), var(--key-shadow);color:var(--key-text);transition:transform var(--path-press), box-shadow var(--path-press);align-items:center;gap:6px;padding:0 16px 0 12px;font-size:15px;font-weight:800;display:inline-flex}.stop__hint{color:var(--score-muted);align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.stop__btn:not(:disabled):hover .stop__head{transform:translate(-50%,-50%)rotate(-20deg)scale(1.1)}.stop__btn:not(:disabled):hover .stop__title>span{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.stop__btn:not(:disabled):active .stop__head{transform:translate(-50%,calc(2px - 50%))rotate(-20deg)scale(.96)}.stop__btn:active .stop__start{transform:translateY(var(--key-press));box-shadow:var(--key-highlight), var(--key-shadow-pressed)}.stop__btn:focus-visible{outline:none}.stop__btn:focus-visible .stop__hit{outline:3px solid var(--focus-ring);outline-offset:2px}.stop__btn:focus-visible .stop__label{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:4px}.tempo{color:var(--score-muted);align-items:center;gap:4px;display:inline-flex}.tempo__ticks{gap:2px;display:inline-flex}.tempo__tick{background:var(--score-tick);border-radius:1.5px;width:3px;height:9px;display:block}.tempo__tick--on{background:var(--score-tick-on)}.tempo--3 .tempo__tick:last-child{background:var(--score-tick-top)}.tempo__word{font-family:var(--font-display);font-style:italic;font-weight:500}@media (width>=1100px){.score-map{max-width:1180px}.mvt-unit{grid-template-columns:minmax(300px,380px) minmax(0,560px);justify-content:center;align-items:start;column-gap:56px;padding:0 48px;display:grid}.mvt-unit+.mvt-unit{margin-top:64px}.path--paper .mvt-vine{display:block}.mvt{grid-area:1/1;margin:0;padding-top:40px;position:sticky;top:16px}.mvt__art{width:170px}.rb{grid-area:1/2;width:100%;margin:0}.stop__title{font-size:17px}.stop--current .stop__title{font-size:22px}.stop__meta{font-size:14px}}.path--kids{--book-pencil:#b9ad97}.book-map__column{z-index:1;max-width:760px;margin:0 auto;padding:30px 14px 132px;position:relative}.path__world--ocean .book-map__column{padding-top:62px;padding-bottom:180px}.book+.book{margin-top:44px}.plaque{border-radius:22px;align-items:center;gap:10px;width:max-content;max-width:100%;margin:0 auto 12px;padding:8px 22px 8px 10px;display:flex;position:relative}.plaque--jungle{background:#eab27a;box-shadow:0 10px 18px -12px #5a32148c}.plaque--ocean{background:#ffffffc7;box-shadow:inset 0 0 0 2px #ffffffe6,0 10px 20px -12px #143c5a80}.plaque--space{background:#ffffffdb;box-shadow:0 10px 20px -12px #0a0a2899}.plaque__art{flex:none;width:clamp(84px,22vw,120px);height:auto;margin:-22px 0 -12px;display:block}.plaque__body{flex-direction:column;align-items:center;gap:4px;display:flex}.plaque__friends{align-items:flex-end;gap:4px;min-height:42px;display:flex}.plaque__friend{width:34px;height:auto;display:block}.plaque__friend--wait{opacity:.35;filter:grayscale()}.plaque__title{color:#5b3a1e;font:700 14px/1.2 var(--font-ui);letter-spacing:.01em;margin:0}.plaque--ocean .plaque__title,.plaque--space .plaque__title{color:#28506a}.plaque__done{background:var(--brand-teal-behind);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:-8px;right:-8px;box-shadow:0 0 0 3px #fffc}.plaque__locked{color:#5b3a1e;font:700 13px/1.2 var(--font-ui);align-items:center;gap:4px;display:inline-flex}.plaque--ocean .plaque__locked,.plaque--space .plaque__locked{color:#28506a}.book__page{background:#fffaf0;border-radius:26px;padding:16px 14px 18px;position:relative;box-shadow:0 3px 0 -1px #efe3c9,0 6px 0 -2px #e5d6b6,0 22px 30px -18px #3c281480}.book--ocean .book__page{background:#f4fbfd;box-shadow:0 3px 0 -1px #d6ecf3,0 6px 0 -2px #c3e1ea,0 22px 30px -18px #143c5a80}.book--space .book__page{background:#f7f5ff;box-shadow:0 3px 0 -1px #dcd6f5,0 6px 0 -2px #c9c1ee,0 22px 30px -18px #0a0a2899}.book__panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px;margin:0;padding:6px 0 4px;list-style:none;display:grid}@media (width>=620px){.book__panels{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 14px}.book__page{padding:22px 22px 24px}}.panel{position:relative}.panel__btn{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;width:100%;min-height:88px;transition:transform var(--path-press);background:0 0;border:0;border-radius:18px;padding:0;display:block;position:relative}.panel__btn:disabled{cursor:default}.panel__scene{border-radius:18px;width:100%;height:auto;display:block;box-shadow:0 0 0 3px #fff,0 6px 12px -8px #28283c80}.panel--sketch .panel__scene,.panel--locked .panel__scene{box-shadow:0 0 0 2px #e6dcc6}.panel--locked .panel__scene{opacity:.8}.panel--final .panel__scene{box-shadow:0 0 0 3px #fff,6px 0 0 -1px #2b2d42,11px 0 #fff,15px 0 #2b2d42,0 6px 12px -8px #28283c80}.panel--final.panel--sketch .panel__scene,.panel--final.panel--locked .panel__scene{box-shadow:0 0 0 2px #e6dcc6, 6px 0 0 -1px var(--book-pencil), 11px 0 0 0 #fffaf0, 15px 0 0 0 var(--book-pencil)}.panel__badge{color:#2b4a5e;background:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 2px 6px -2px #14325073}.panel--sketch .panel__badge,.panel--locked .panel__badge{opacity:.7}.panel__badge--due{color:#8a5c1c;background:#fff4dc;left:auto;right:8px;box-shadow:0 0 0 3px #ecb846e6}.panel--due .panel__scene{box-shadow:0 0 0 3px #fff,0 0 0 7px #ecb846cc}.panel--current{z-index:2}.panel--current .panel__scene{box-shadow:0 0 0 4px #fff,0 0 0 8px #2fb5a3,0 0 22px 6px #2fb5a380}.panel__bookmark{clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%);pointer-events:none;background:linear-gradient(90deg,#d9583f,#f06f55 45%,#d9583f);width:18px;height:62px;position:absolute;top:-30px;right:18%}.panel__octo{pointer-events:none;position:absolute;bottom:-30px;left:-24px}.panel__octo .octo{filter:drop-shadow(0 5px 6px #143c5a4d);width:clamp(52px,14vw,72px);height:auto}.panel__sticker{z-index:3;pointer-events:none;position:absolute;top:-20px;right:-14px}.panel__sticker .oyster>svg{width:clamp(46px,11vw,60px);height:auto}.panel__btn:not(:disabled):hover{transform:translateY(-3px)}.panel__btn:not(:disabled):active{transform:translateY(2px)}.panel__btn:focus-visible{outline:4px solid var(--focus-ring);outline-offset:6px}.reef{pointer-events:none;position:absolute;inset:0;overflow:hidden}.reef__item{display:block;position:absolute;overflow:visible}.reef__item--anemone{width:clamp(56px,9vw,100px);top:200px;left:2%}.reef__item--coral{width:clamp(58px,9vw,110px);top:48%;right:3%}.reef__item--fish{width:clamp(80px,11vw,140px);top:22%;right:4%}.reef__item--piano{width:clamp(110px,15vw,190px);bottom:40px;left:5%}@media (width<=620px){.reef__item{opacity:.8}.reef__item--anemone,.reef__item--coral{display:none}}@media (width>=1100px){.reef__item--anemone{left:8%}.reef__item--coral{right:8%}.reef__item--piano{left:10%}.reef__item--fish{right:8%}}.path{--m-bar:2.5s;--m-quarter:.625s;--m-eighth:.312s;--m-ease:cubic-bezier(.2, .9, .3, 1)}.m-pulse{animation:m-pulse var(--m-bar) var(--m-ease) infinite}html[data-motion=calm] .m-pulse{animation:none}@keyframes m-pulse{0%{scale:1.1}12%,to{scale:1}50%{scale:1.05}62%{scale:1}}.m-glow:after{content:"";opacity:.5;animation:m-glow var(--m-bar) var(--m-ease) infinite;border-radius:24px;position:absolute;inset:-6px;box-shadow:0 0 26px 8px #2fb5a38c}html[data-motion=calm] .m-glow:after{animation:none}@keyframes m-glow{0%{opacity:1}14%,to{opacity:.45}50%{opacity:.75}64%{opacity:.45}}.m-ink-run{stroke-dasharray:1 1;stroke-dashoffset:0;animation:m-ink-run 1.25s var(--m-delay,0s) cubic-bezier(.4, 0, .2, 1) both}@keyframes m-ink-run{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.m-bloom{opacity:.22}.path--ink .m-bloom{opacity:.3}.oyster--opening>svg{transform-origin:50% 80%;animation:m-oyster-open var(--m-quarter) var(--m-bar) var(--m-ease) both}.oyster--opening .oyster__pearl{animation:m-fade var(--m-quarter) calc(var(--m-bar) + var(--m-eighth)) ease-out both}@keyframes m-oyster-open{0%{opacity:.5;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}.path__float--scroll{animation:.2s ease-out m-rise}@keyframes m-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .m-pulse,html:not([data-motion]) .m-glow:after,html:not([data-motion]) .m-ink-run,html:not([data-motion]) .oyster--opening>svg,html:not([data-motion]) .oyster--opening .oyster__pearl,html:not([data-motion]) .path__float--scroll{animation:none}html:not([data-motion]) .stop__head,html:not([data-motion]) .stop__start,html:not([data-motion]) .panel__btn,html:not([data-motion]) .path__float,html:not([data-motion]) .mvt__jump-btn{transition:none}}html[data-motion=off] .m-pulse,html[data-motion=off] .m-glow:after,html[data-motion=off] .m-ink-run,html[data-motion=off] .oyster--opening>svg,html[data-motion=off] .oyster--opening .oyster__pearl,html[data-motion=off] .path__float--scroll{animation:none}html[data-motion=off] .stop__head,html[data-motion=off] .stop__start,html[data-motion=off] .panel__btn,html[data-motion=off] .path__float,html[data-motion=off] .mvt__jump-btn{transition:none}.session{--s-unit:var(--path-unit,#2fb5a3);--s-unit-deep:var(--path-unit-deep,#177a6e);--s-ok:#2fb5a3;--s-ok-ink:#177a6e;--s-wrong:#f28a2e;--s-wrong-ink:#b4530f;--s-amber:#f0b429;--s-amber-ink:#8a6000;--s-listen:#3aa8f0;--s-listen-ink:#1d6aa8;--s-star:#f9c630;--s-star-shade:#cf9a09;--s-radius:18px;--s-radius-md:14px;--s-ease-press:var(--key-ease,.156s ease-out);color:var(--s-text);font-family:var(--s-font)}.session[data-unit-colour]{--path-unit:var(--unit);--path-unit-deep:var(--unit-deep)}.session--adult{--s-bg:#0f1117;--s-surface:var(--path-surface,#1f232d);--s-border:#333a48;--s-text:#e8eaf0;--s-muted:#8f97aa;--s-track:#2c3340;--s-seg-text:#a3aabb;--s-locked:#3a4150;--s-locked-shade:#2a303c;--s-paper:var(--path-paper,#f6f4ee);--s-paper-edge:#d6cfbf;--s-ink:#1f2937;--s-font:var(--font-ui);--s-display:var(--font-serif);--s-card-shadow:0 1px 2px #00000059, 0 12px 28px -14px #000000bf;--s-tint:17%;--key-shadow:var(--key-shadow-night);--key-shadow-pressed:var(--key-shadow-night-pressed);--key-outline:#8fe3d5;--key-outline-text:#8fe3d5;--key-outline-bg:transparent;--focus-ring:#f47e6b}.session--kids{--focus-ring:#16334a;--s-bg:#fff6ea;--s-surface:var(--path-surface,#fff);--s-border:#f0d9bf;--s-text:#2b2d42;--s-muted:#6b6058;--s-track:#f1dfc8;--s-locked:#e6ddd1;--s-locked-shade:#cfc2b0;--s-paper:var(--path-paper,#fff);--s-paper-edge:#ecdcc6;--s-ink:#2b2d42;--s-font:var(--font-ui);--s-display:var(--font-ui);--s-card-shadow:0 1px 2px #16334a1a, 0 12px 26px -14px #16334a59;--s-tint:24%;--key-shadow:var(--key-shadow-day);--key-shadow-pressed:var(--key-shadow-day-pressed);--key-outline:#177a6e;--key-outline-text:#146b61;--key-outline-bg:#fff}.session .sbtn{--face:var(--key-bg);--face-hover:var(--key-bg-hover);--ink:var(--key-text);--ring:transparent;border-radius:var(--key-radius);background:var(--face);min-height:50px;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ring), var(--key-highlight), var(--key-shadow);font:800 16px/1.15 var(--s-font);letter-spacing:.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--s-ease-press), box-shadow var(--s-ease-press), background-color .12s ease-out;border:0;justify-content:center;align-items:center;gap:10px;padding:0 22px;display:inline-flex}.session .sbtn:hover{background:var(--face-hover)}.session .sbtn:active{transform:translateY(var(--key-press));box-shadow:inset 0 0 0 2px var(--ring), var(--key-highlight), var(--key-shadow-pressed)}.session .sbtn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.session .sbtn--right,.session .sbtn--go{--face:var(--key-bg);--face-hover:var(--key-bg-hover);--ink:var(--key-text)}.session .sbtn--wrong,.session .sbtn--gentle{--face:var(--key-coral-bg);--face-hover:var(--key-coral-hover);--ink:var(--key-coral-text)}.session .sbtn--listen{--face:var(--key-sea-bg);--face-hover:var(--key-sea-hover);--ink:var(--key-sea-text)}.session .sbtn--wide{min-width:200px}.session .sbtn--round{border-radius:50%;width:76px;height:76px;padding:0}.session .sbtn--big{width:92px;height:92px}.session__frame{background:var(--s-bg);flex-direction:column;height:100dvh;min-height:0;display:flex;position:relative;overflow:hidden}.session__top{flex:none;align-items:center;gap:18px;width:100%;max-width:1040px;margin:0 auto;padding:22px 28px 10px;display:flex}.session__close{width:44px;height:44px;color:var(--s-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;padding:0;display:grid}.session__close:hover{color:var(--s-text);background:color-mix(in srgb, var(--s-text) 8%, transparent)}.session__close:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.session--kids .session__close{width:52px;height:52px;color:color-mix(in srgb, var(--s-muted) 70%, transparent)}.session__track{--p:0;background:var(--s-track);border-radius:999px;flex:1;height:16px;position:relative}.session__clip{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.session__fill{border-radius:inherit;background:var(--s-unit);transform:translateX(calc((var(--p) - 1) * 100%));transition:transform .65s cubic-bezier(.3,1.25,.5,1);position:absolute;inset:0}.session__fill:after{content:"";background:#ffffff52;border-radius:999px;height:4px;position:absolute;top:4px;left:12px;right:12px}.session__count{min-width:3.6em;color:var(--s-muted);font-variant-numeric:tabular-nums;text-align:right;flex:none;margin:0;font-size:15px;font-weight:800}.session--kids .session__top{padding-top:26px;padding-right:40px}.session--kids .session__track{height:22px}.session--kids .session__fill:after{height:5px;top:5px}.session__rider{pointer-events:none;transform:translateX(calc(var(--p) * 100%));transition:transform .65s cubic-bezier(.3,1.25,.5,1);position:absolute;inset:0}.session__rider-hop{transform-origin:50% 100%;animation:.52s cubic-bezier(.3,1.2,.5,1) rider-hop;position:absolute;bottom:2px;left:-20px}.session__rider-hop svg{display:block}@keyframes rider-hop{0%{transform:none}35%{transform:translateY(-14px)scale(.96,1.05)}70%{transform:translateY(0)scale(1.06,.92)}to{transform:none}}.session__body{width:100%;min-height:0;padding:12px 24px calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex:1;align-items:center;gap:16px;display:flex;overflow-y:auto}.session__body>:first-child{margin-top:auto}.session__body>:last-child{margin-bottom:auto}.session__dock{z-index:5;pointer-events:none;position:absolute;bottom:0;left:0;right:0}.session__feedback{--tone:var(--s-ok);--tone-ink:var(--s-ok-ink);pointer-events:auto;padding:22px 28px calc(24px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--tone) var(--s-tint), var(--s-bg));color:var(--tone);animation:.3s cubic-bezier(.2,.9,.3,1.05) feedback-up}.session__feedback--wrong,.session__feedback--gentle{--tone:var(--s-wrong);--tone-ink:var(--s-wrong-ink)}.session--kids .session__feedback{background:color-mix(in srgb, var(--tone) var(--s-tint), #fff)}.session__feedback-inner{align-items:center;gap:18px;max-width:1040px;margin:0 auto;display:flex}.session--kids .session__feedback-inner{justify-content:space-between;max-width:720px}.session__badge{color:var(--tone-ink);flex:none;animation:.42s cubic-bezier(.3,1.6,.5,1) 90ms both badge-pop;display:grid}.session__badge svg{display:block}.session__words{flex:1;min-width:0}.session__headline{flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:24px;font-weight:800;line-height:1.2;display:flex}.session__note{background:color-mix(in srgb, var(--tone) 22%, transparent);font-variant-numeric:tabular-nums;border-radius:10px;padding:3px 10px;font-size:18px}.session__line{color:color-mix(in srgb, var(--tone) 55%, var(--s-text));margin:4px 0 0;font-size:17px;font-weight:700;line-height:1.35}.session__next{flex-direction:column;flex:none;align-items:center;gap:4px;display:flex}.session__hint{color:color-mix(in srgb, var(--tone) 45%, var(--s-muted));font-size:12px;font-weight:700}.session__hint kbd{font:inherit;opacity:.8;border:1px solid;border-radius:5px;padding:1px 6px}@media (hover:none){.session__hint{display:none}}@keyframes feedback-up{0%{transform:translateY(100%)}}@keyframes badge-pop{0%{opacity:0;transform:scale(.4)rotate(-12deg)}}.meet{flex-direction:column;align-items:center;gap:18px;width:min(900px,100%);display:flex;container-type:inline-size}.meet__card{border:2px solid var(--s-paper-edge);border-radius:var(--s-radius);background:var(--s-paper);width:100%;color:var(--s-ink);box-shadow:var(--s-card-shadow);grid-template-areas:"head""art""actions";gap:14px 32px;padding:20px 22px 22px;animation:.36s cubic-bezier(.3,1.2,.5,1) meet-in;display:grid}@container (width>=780px){.session--adult .meet__card{grid-template-columns:minmax(210px,250px) 1fr;grid-template-areas:"head art""actions art";align-items:center;padding:28px 32px 30px}.session--adult .meet__actions{align-self:end}}.meet__head{grid-area:head;min-width:0}.meet__tag{background:var(--s-unit-deep);color:#fff;letter-spacing:.06em;border-radius:10px;padding:4px 11px 5px;font-size:14px;font-variant-caps:all-small-caps;font-weight:800;display:inline-block}.meet__title{align-items:baseline;gap:12px;margin:12px 0 0;display:flex}.meet__letter{font-family:var(--s-display);font-optical-sizing:auto;letter-spacing:-.02em;font-size:clamp(60px,11cqi,104px);font-weight:800;line-height:.9}.session--adult .meet__letter{font-weight:700}.meet__name{color:color-mix(in srgb, var(--s-ink) 55%, transparent);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.meet__relation{color:color-mix(in srgb, var(--s-ink) 75%, transparent);margin:10px 0 0;font-size:16px;font-weight:600;line-height:1.4}.meet__memory{color:color-mix(in srgb, var(--s-ink) 60%, transparent);margin:8px 0 0;font-size:14px;font-weight:500;line-height:1.45}@media (height<=560px){.meet__memory{display:none}}.meet__art{grid-area:art;width:100%;height:auto;max-height:min(44dvh,380px);margin:0 auto;display:block;overflow:visible}.meet__actions{flex-wrap:wrap;grid-area:actions;align-items:center;gap:12px 18px;display:flex}.meet__prompt{align-items:center;gap:8px;margin:0;font-size:18px;font-weight:800;display:flex}.meet__prompt-arrow{color:var(--s-unit);animation:1.3s ease-in-out infinite point-bob}html[data-motion=calm] .meet__prompt-arrow{animation:none}.session--kids .meet__card{border-radius:28px;padding:14px 18px 16px}.session--kids .meet__art{max-height:min(40dvh,440px)}.session--kids .meet__actions{justify-content:center;gap:28px}.meet__point{place-items:center;width:76px;height:76px;animation:1.2s ease-in-out infinite point-bob;display:grid}html[data-motion=calm] .meet__point{animation:none}@keyframes meet-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes point-bob{50%{transform:translateY(6px)}}.session .engr__lines line,.session .engr__ledgers line{stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;opacity:.78}.session .engr__ledgers line{stroke-width:1.6px;opacity:.9}.session .engr__barline{stroke:currentColor;stroke-width:1.6px;opacity:.78}.session .engr__hollow{fill:var(--s-paper)}.session .engr__white{fill:#fff;stroke:color-mix(in srgb, var(--s-ink) 38%, transparent);stroke-width:1px}.session .engr__black{fill:var(--s-ink)}.session .engr__middle-c{fill:color-mix(in srgb, var(--s-ink) 40%, transparent)}.session .engr__letter{fill:color-mix(in srgb, var(--s-ink) 62%, transparent);font-family:var(--s-font);letter-spacing:.08em;font-size:12px;font-weight:800}.meet__settle{transform-box:fill-box;transform-origin:50%;animation:.7s cubic-bezier(.3,1.4,.5,1) .14s both note-settle}.meet__leader{stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:.1 6;opacity:.85;animation:.42s ease-out .62s both fade-in}.meet__halo{fill:var(--s-unit);opacity:.22;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite halo}html[data-motion=calm] .meet__halo{animation:none}.meet--play .engr__key--lit{animation:1.4s ease-in-out infinite key-glow}html[data-motion=calm] .meet--play .engr__key--lit{animation:none}.meet__friend{transform-box:fill-box;transform-origin:50% 100%;animation:.9s cubic-bezier(.3,1,.5,1) both friend-hop}.meet--play .meet__friend{animation:1.8s ease-in-out infinite friend-sway}html[data-motion=calm] .meet--play .meet__friend,.session--kids .meet__settle{animation:none}@keyframes note-settle{0%{opacity:0;transform:translateY(-16px)}50%{opacity:1}}@keyframes fade-in{0%{opacity:0}}@keyframes halo{50%{opacity:.08;transform:scale(1.25)}}@keyframes key-glow{50%{opacity:.6}}@keyframes friend-hop{0%{opacity:0;transform:translate(80px,-70px)rotate(12deg)}25%{opacity:1}50%{transform:translate(28px,-46px)rotate(-6deg)}76%{transform:translate(0)scale(1.08,.88)}88%{transform:translateY(-4px)scale(.97,1.04)}to{transform:none}}@keyframes friend-sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)translateY(-3px)}}.summary{--s-star:#f28a2e;--s-star-shade:#cf6519;width:100%;min-height:100dvh;padding:28px 20px calc(28px + env(safe-area-inset-bottom));background:var(--s-bg);flex-direction:column;align-items:center;display:flex;overflow-y:auto}.summary__inner{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(580px,100%);margin:auto 0;display:flex}.summary__title{color:var(--s-text);font-family:var(--s-display);font-optical-sizing:auto;margin:2px 0 0;font-size:clamp(26px,5vw,34px);font-weight:800;line-height:1.15}.session--adult .summary__title{font-weight:700}.summary__sub{color:var(--s-muted);margin:-6px 0 0;font-size:16px;font-weight:700}.summary--placement .summary__sub{max-width:34em;line-height:1.45}.curtain{--curtain-ink:#f6efdddb;--curtain-note:#2fb5a3;--curtain-title:#efe8d8;--curtain-card:#f6efdd;--curtain-card-edge:#f6efdd33;--curtain-card-ink:#16334a;--curtain-card-muted:#4f5d68;--curtain-leader:#16334a52;--curtain-teal:#1d8f81;--curtain-teal-text:#146b61;--curtain-teal-track:#1d8f812e;--s-paper:#fffdf7;--s-paper-edge:#e6d9bb;--s-ink:#16334a;--h-gold:#2fb5a3;--h-gold-shade:#1d8f81;background:radial-gradient(1200px 700px at 50% -200px,#13263a 0,#13263a00 70%),linear-gradient(#0f1117,#0d1015 60%,#0f1117)}.curtain--paper{--curtain-ink:#16334a;--curtain-note:#1d8f81;--curtain-title:#16334a;--curtain-card:#fffdf7;--curtain-card-edge:#d6c7a6;--curtain-card-ink:#16334a;--curtain-card-muted:#5a6670;--curtain-leader:#16334a4d;--s-bg:#f3e9d2;--s-surface:#fbf5e6;--s-border:#d6c7a6;--s-text:#16334a;--s-muted:#5a6670;--s-track:#e8dcbf;--s-seg-text:#4d5963;--s-locked:#e3dccb;--s-locked-shade:#cbc2ad;--s-card-shadow:0 1px 2px #5032141a, 0 12px 26px -14px #50321466;--s-listen:#1d6aa8;--path-surface:#fbf5e6;--path-surface-line:#d6c7a6;--path-surface-text:#16334a;--path-surface-muted:#5a6670;--key-shadow:var(--key-shadow-day);--key-shadow-pressed:var(--key-shadow-day-pressed);--key-outline:#177a6e;--key-outline-text:#146b61;--key-outline-bg:#fffdf7;--focus-ring:#16334a;--h-gold:#1d8f81;--h-gold-shade:#177a6e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:radial-gradient(1200px 800px at 50% 0,#fbf5e6,#f3e8cf 70%,#ecdfc2)}.curtain__inner{gap:12px}.curtain .curtain__title{color:var(--curtain-title)}.flourish{width:min(240px,64vw);height:auto;color:var(--curtain-ink);margin-bottom:-4px;display:block;overflow:visible}.flourish__stroke{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:0;animation:ink-write calc(var(--beats) * .625s) calc(.25s + var(--at) * .625s) cubic-bezier(.45, .05, .3, 1) both}.flourish__stroke--swash{stroke-width:3.2px}.flourish__stroke--hair{stroke-width:1.2px;opacity:.7}.flourish__stroke--line{stroke-width:1.1px;stroke-linecap:butt;opacity:.55}.flourish__stroke--stem,.flourish__stroke--bar{stroke-width:1.8px;stroke-linecap:butt}.flourish__stroke--thick{stroke-width:6px;stroke-linecap:butt}.flourish__note{fill:var(--curtain-note);transform-box:fill-box;transform-origin:50%;animation:ink-in .312s calc(.25s + var(--at) * .625s) ease-out both}.flourish__stroke--stem{color:var(--curtain-note)}.programme{border:1px solid var(--curtain-card-edge);background:var(--curtain-card);width:min(420px,100%);color:var(--curtain-card-ink);box-shadow:var(--s-card-shadow);text-align:left;border-radius:6px;margin-top:6px;padding:12px 20px 16px;animation:.48s ease-out .312s both tile-in}.programme__head{color:var(--curtain-card-muted);font-family:var(--s-display);letter-spacing:.02em;align-items:center;gap:10px;margin:0 0 6px;font-size:15px;font-style:italic;display:flex}.programme__head:before,.programme__head:after{content:"";border-top:1px solid var(--curtain-leader);flex:1}.programme__rows{margin:0}.programme__row{animation:.312s both fade-in;animation-delay:calc(.56s + var(--i) * .156s);align-items:baseline;gap:8px;padding:7px 0;display:flex}.programme__row dt{font-weight:700}.programme__row dd{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;margin:0;font-size:19px;font-weight:800;display:inline-flex}.programme__leader{border-bottom:2px dotted var(--curtain-leader);flex:1;min-width:16px;transform:translateY(-4px)}.programme__figure{align-items:center;gap:6px;display:inline-flex}.programme__ring{flex:none;align-self:center}.programme__ring-track,.programme__ring-fill{fill:none;stroke-width:5px}.programme__ring-track{stroke:var(--curtain-teal-track)}.programme__ring-fill{stroke:var(--curtain-teal);stroke-linecap:round;stroke-dasharray:100 100;transform-box:fill-box;transform-origin:50%;animation:1.1s cubic-bezier(.3,.8,.3,1) .56s both ring-fill;transform:rotate(-90deg)}.programme__music.summary__sheet{box-shadow:none;border-width:1px;border-radius:4px;margin:10px 0 0;padding:8px 12px 10px;animation:none}.tempo-mark{color:var(--curtain-teal-text);align-items:center;gap:7px;display:inline-flex}.tempo-mark__glyph{color:var(--curtain-teal)}.tempo-mark__ticks{gap:3px;display:inline-flex}.tempo-mark__tick{background:var(--curtain-teal-track);border-radius:2px;width:5px;height:14px;display:block}.tempo-mark__tick--on{background:var(--curtain-teal)}.tempo-mark__tick--new{transform-origin:50% 100%;animation:.312s ease-out both tick-in;animation-delay:calc(1s + var(--i) * .312s)}.tempo-mark__word{font-family:var(--s-display);font-style:italic;font-weight:700}.in-time-mark{color:var(--curtain-teal-text);font-family:var(--s-display);align-items:center;gap:7px;font-style:italic;font-weight:700;display:inline-flex}.in-time-mark__glyph{color:var(--curtain-teal)}.in-time-mark--offer{color:var(--curtain-card-muted);white-space:normal;text-align:right;font-size:15px;font-weight:500}.in-time-mark--offer .in-time-mark__glyph{color:var(--curtain-card-muted)}.curtain__slot{width:min(420px,100%)}.curtain__next{color:var(--s-muted);font-family:var(--s-display);margin:4px 0 0;font-size:16px;font-style:italic}.curtain__next .next-time{color:inherit;font:inherit;margin:0}.summary__sheet{border:2px solid var(--s-paper-edge);border-radius:var(--s-radius);background:var(--s-paper);width:100%;color:var(--s-ink);box-shadow:var(--s-card-shadow);margin:8px 0 0;padding:12px 16px;animation:.48s cubic-bezier(.3,1.4,.5,1) .26s both tile-in}.summary__caption{color:color-mix(in srgb, var(--s-ink) 64%, transparent);letter-spacing:.06em;text-align:left;font-size:14px;font-variant-caps:all-small-caps;font-weight:800}.summary__staff{max-width:100%;height:auto;margin:2px auto 0;display:block}.summary .engr__practised{animation:.4s both fade-in;animation-delay:calc(.42s + var(--i) * .11s)}.summary__continue{width:min(340px,100%);margin-top:14px}.session--kids.summary{justify-content:center;gap:22px}.summary__stage{place-items:center;width:min(680px,100%);display:grid;position:relative}.summary__dance{width:100%;height:auto;max-height:42dvh;color:var(--s-ink);display:block;position:relative;overflow:visible}.summary__dancer{transform-box:fill-box;transform-origin:50% 100%;animation:.76s ease-in-out infinite alternate dance;animation-delay:calc(var(--i) * -380ms)}html[data-motion=calm] .summary__dancer{animation:none}.summary__rays{aspect-ratio:1;pointer-events:none;z-index:0;width:130%;max-width:820px;animation:50s linear infinite spin;position:absolute}html[data-motion=calm] .summary__rays{animation:none}.summary__stars,.summary .sbtn{z-index:1;position:relative}.summary--unit{overflow:clip}.summary .pic__rays path{fill:#2fb5a3;opacity:.2}.summary .pic__rays path:nth-child(2n){fill:var(--s-star)}.summary__stars{align-items:center;gap:4px;display:flex}.summary__star--on{animation:.56s cubic-bezier(.3,1.7,.5,1) both star-pop;animation-delay:calc(.36s + var(--i) * .28s)}@keyframes tile-in{0%{opacity:0;transform:translateY(12px)}}@keyframes ring-fill{0%{stroke-dashoffset:100px}}@keyframes ink-write{0%{stroke-dashoffset:1px}}@keyframes ink-in{0%{opacity:0;transform:scale(.4)}}@keyframes tick-in{0%{opacity:0;transform:scaleY(.2)}}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-30deg)}}@keyframes dance{0%{transform:rotate(-7deg)}to{transform:translateY(-10px)rotate(7deg)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=600px){.session__top{gap:12px;padding:14px 16px 8px}.session--kids .session__top{padding:18px 26px 8px 12px}.session__body{padding-left:16px;padding-right:16px}.session__feedback{padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.session--adult .session__feedback-inner{flex-wrap:wrap;gap:12px 14px}.session--adult .session__next{flex-basis:100%}.session--adult .session__next .sbtn{width:100%}.session__headline{font-size:21px}.session__line{font-size:16px}.meet__card{padding:16px 16px 18px}.session--kids .meet__card{border-radius:22px;padding:10px 10px 12px}.summary{padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.programme{padding:10px 14px 14px}.programme__row dd{font-size:17px}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .session,html:not([data-motion]) .session *,html:not([data-motion]) .session :before,html:not([data-motion]) .session :after{transition:none!important;animation:none!important}}html[data-motion=off] .session,html[data-motion=off] .session *,html[data-motion=off] .session :before,html[data-motion=off] .session :after{transition:none!important;animation:none!important}.app--home{height:100dvh;min-height:0;position:relative;overflow:hidden}body:has(.app--home){overscroll-behavior:none;overflow:hidden}.home__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;position:relative;overflow:hidden auto}.app--focus .home__scroll{touch-action:pan-y}.home__play{z-index:7;left:max(16px, env(safe-area-inset-left));bottom:max(16px, env(safe-area-inset-bottom));background:var(--brand-cream);width:88px;height:88px;box-shadow:var(--key-shadow-day);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--path-press,.156s ease-out), box-shadow var(--path-press,.156s ease-out);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.home__play svg{display:block}.home__play:active{box-shadow:var(--key-shadow-day-pressed);transform:translateY(3px)}.home__play:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@media (width<=600px){.home__play{width:76px;height:76px}.home__play svg{width:58px;height:58px}}.session__frame.session__frame--clear{background:0 0}.app--focus>.session__frame{z-index:1;position:relative}.session__spacer{flex:1}.session__actions{flex:none;align-items:center;gap:8px;display:flex}.session__tool{width:40px;height:40px;color:var(--s-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.session__tool:hover{color:var(--s-text);background:color-mix(in srgb, var(--s-text) 8%, transparent)}.session__tool[aria-expanded=true],.session__tool[aria-pressed=true]{color:var(--s-listen)}.session__tool:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.session__overlay{z-index:8;overscroll-behavior:contain;max-height:calc(100dvh - 96px);position:absolute;top:76px;left:0;right:0;overflow-y:auto;box-shadow:0 18px 30px #00000059}.session__overlay .devicebar{border-top:1px solid var(--line)}.session__body.session__body--fill{align-items:stretch;gap:0;padding:0;overflow:hidden}.session__body.session__body--fill>:first-child,.session__body.session__body--fill>:last-child{margin-top:0;margin-bottom:0}.focus.focus--session{flex:auto;width:100%;max-width:1180px;height:auto;min-height:0;margin:0 auto;padding-top:4px}.main.session-lesson{width:100%;max-width:1040px;min-height:0;padding:8px 28px calc(16px + env(safe-area-inset-bottom));flex:auto;margin:0 auto;overflow-y:auto}.app--session{height:100dvh;min-height:0;overflow:hidden}.app--session>.summary{height:100dvh;min-height:0}.path-item{flex-direction:column;flex:auto;justify-content:flex-start;align-items:center;width:100%;min-height:0;display:flex}.path-item>:first-child{margin-top:auto}.path-item>:last-child{margin-bottom:auto}.path-phrase{flex-direction:column;flex:0 auto;justify-content:center;width:100%;max-width:1000px;min-height:0;display:flex}.path-phrase>.score{flex:0 auto;min-height:0;max-height:100%;overflow:hidden auto}.path-keys{flex:none;width:100%;max-width:960px}.session--kids .path-keys .piano{max-height:min(240px,28dvh)}@media (width<=600px){.main.session-lesson{padding-left:16px;padding-right:16px}}@media (width<=560px){.session__frame--tools .session__count{display:none}.session__frame--tools .session__top{gap:10px;padding-left:10px;padding-right:10px}}@media (width<=600px){.session__overlay{top:66px}}.session__keys-hint{color:color-mix(in srgb, var(--tone) 45%, var(--s-muted));white-space:nowrap;font-size:12px;font-weight:700}.summary.summary{position:relative}.summary__close{z-index:2;top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));position:absolute}.summary__keys-hint{color:var(--s-muted);text-align:center;margin:10px 0 0;font-size:13px;font-weight:700}.path-song{--songs-gap:10px;gap:var(--songs-gap);width:100%;max-width:1100px;min-height:0;padding:4px 20px calc(10px + env(safe-area-inset-bottom));flex-direction:column;flex:auto;margin:0 auto;display:flex}.path-song__stage{flex:auto;min-height:140px}.path-song__keys{flex:none}.session--kids .path-song__keys .piano{max-height:min(240px,28dvh)}.path-song__credit{color:var(--s-muted,var(--muted));text-align:center;flex:none;margin:0;font-size:12px}@media (width<=600px){.path-song{padding-left:10px;padding-right:10px}}.session__frame--keys>.session__body{padding-bottom:8px}@media (height<=480px){.session__frame.session__frame--keys{overscroll-behavior:contain;overflow-y:auto}.session__frame--keys>.session__body{flex:none;overflow:visible}}.session__dock.session__dock--docked{z-index:5;flex:none;width:100%;max-width:1040px;margin:0 auto;padding:0 24px;position:relative;bottom:auto;left:auto;right:auto}.session__feedback.session__feedback--docked{border-radius:var(--s-radius);box-shadow:var(--s-card-shadow);padding:12px 18px;animation:.26s cubic-bezier(.2,.9,.3,1.05) feedback-rise}.session__feedback--docked .session__headline{font-size:21px}.session__feedback--docked .session__line{font-size:16px}.session__keys{width:100%;padding:10px 24px calc(12px + env(safe-area-inset-bottom));flex:none;justify-content:center;display:flex}.session__keys>.path-keys{max-width:960px}.session__keys--correcting .key--expected{fill:var(--s-listen);stroke:color-mix(in srgb, var(--s-listen) 55%, #000);stroke-width:4px;animation:1.1s ease-in-out infinite key-call}html[data-motion=calm] .session__keys--correcting .key--expected{animation:none}.session--kids .session__keys--correcting .key--expected{stroke:var(--s-wrong-ink);stroke-width:5px}@keyframes feedback-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes key-call{50%{opacity:.72}}@media (width<=600px){.session__dock.session__dock--docked,.session__keys{padding-left:10px;padding-right:10px}.session__feedback.session__feedback--docked{padding:10px 12px}.session--adult .session__feedback--docked .session__feedback-inner{flex-wrap:wrap;gap:8px 12px}}@media (prefers-reduced-motion:reduce){html:not([data-motion]) .session__keys--correcting .key--expected{animation:none}}html[data-motion=off] .session__keys--correcting .key--expected{animation:none}.summary__close{align-items:center;gap:4px;display:flex}.path-phrase__along{color:var(--s-muted);text-align:center;margin:8px 0 0;font-size:14px;font-weight:700}.path-circles{width:min(720px,100%)}.circle-card-wrap{width:min(360px,100%)}.circle-card{--rise:.5;width:100%;height:min(34dvh,280px);position:relative}.circle-card__friend{left:50%;bottom:calc(var(--rise) * (100% - 140px));transition:bottom .3s ease-out;position:absolute;transform:translate(-50%)}.circle-card__friend--found{animation:.26s ease-out pop}.chord-card .chord-card__note{color:var(--s-ink,#1f2937)}.chord-card .chord-card__note--found{color:var(--s-ok-ink)}.path-skip{margin-top:10px}.session__close-slot{flex:none;display:inline-flex;position:relative}
