:root{color-scheme:light;--font-stack: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-panel: 8px;--radius-control: 6px;--shadow-panel: 0 18px 44px rgba(32, 40, 51, .08);--shadow-control: 0 8px 18px rgba(32, 40, 51, .05);--shadow-accent: 0 14px 28px rgba(15, 122, 69, .2);--transition-fast: .18s ease;--z-control-overlay: 10;--z-sticky: 20;--container-content: 1180px;--container-wide: 1240px;--container-gutter: 48px;--page-gap: 18px;--space-xs: 8px;--space-sm: 10px;--space-md: 12px;--space-lg: 18px;--space-xl: 28px;--space-gutter: 48px;--color-bg: #f4f7f2;--color-ink: #17212b;--color-copy: #465363;--color-surface: #fff;--color-accent: #0f7a45;--color-accent-hover: #0b6538;--color-kicker: #6a3746;--color-danger: #7a2634;--color-accent-wash: rgba(15, 122, 69, .1);--color-skeleton: #e2e8e1;--border-subtle: rgba(23, 33, 43, .14);--border-strong: rgba(23, 33, 43, .18)}.dojo-home,.dojo-home-footer{--color-bg: #ece6d7;--color-ink: #211b14;--color-copy: #4d4539;--color-surface: #f7f2e7;--color-accent: #f4cc62;--color-kicker: #8f3a2f;--border-subtle: rgba(33, 27, 20, .14);--border-strong: rgba(33, 27, 20, .18)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;max-width:100%;overflow-x:hidden}body{background:var(--color-bg);width:100%}a{color:inherit;text-decoration:none}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;display:inline-flex;min-height:44px;align-items:center;border:2px solid var(--color-ink);border-radius:var(--radius-control);background:#f9fbf5;color:var(--color-ink);font-family:var(--font-stack);font-size:.9375rem;font-weight:900;padding:10px 14px;transform:translateY(-150%);transition:transform var(--transition-fast)}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}:where(a,button,input,select,textarea,[role=button],[role=link],[tabindex]):focus-visible{outline:3px solid var(--color-accent);outline-offset:3px;box-shadow:0 0 0 5px #f9fbf5f5}.skip-link:focus-visible,.dojo-home :where(a,button,input,select,textarea,[role=button],[role=link],[tabindex]):focus-visible{outline-color:#f4cc62;box-shadow:0 0 0 5px #18130dd1}.pattern-switcher button:focus-visible,.tempo-control input:focus-visible{outline-offset:-4px;box-shadow:inset 0 0 0 3px var(--color-accent)}.score-stack,.dojo-cta-band{margin:0;padding:0;list-style:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.card,.practice-toolbar,.dojo-cta-card{border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-panel)}.card-interactive,.dojo-cta-card{transition:border-color var(--transition-fast),transform var(--transition-fast)}.card-interactive:hover,.dojo-cta-card:hover{transform:translateY(-2px)}.button,.primary-action,.secondary-action,.randomize-button,.playback-button,.notation-retry-button,.dojo-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border-radius:var(--radius-control);cursor:pointer;font:inherit;font-weight:900;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.button:hover,.primary-action:hover,.secondary-action:hover,.randomize-button:hover,.playback-button:hover,.notation-retry-button:hover,.dojo-button:hover{transform:translateY(-1px)}.button-primary,.primary-action,.randomize-button{border:2px solid transparent;background:var(--color-accent);color:#f9fbf5;box-shadow:var(--shadow-accent)}.button-primary:hover,.primary-action:hover,.randomize-button:hover{background:var(--color-accent-hover)}.button-secondary,.secondary-action{border:2px solid currentColor;background:var(--color-surface);color:var(--color-ink)}.button-dark,.playback-button,.notation-retry-button{border:1px solid var(--border-strong);background:var(--color-ink);color:#f9fbf5;font-size:.875rem;line-height:1.1}.button-dark:hover,.playback-button:hover,.notation-retry-button:hover{background:#263241}.pattern-switcher{overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:#f9fbf5}.pattern-switcher button{border:0;background:transparent;color:#263241;cursor:pointer;font:inherit;font-weight:900}.pattern-switcher button:hover{background:#0f7a4514}.pattern-switcher button.active{background:var(--color-ink);color:#f9fbf5}.section-kicker,.practice-label,.setting-label,.custom-pattern-measure h2,.custom-pattern-preset-group>span,.dojo-kicker{color:var(--color-kicker);font-size:.8rem;font-weight:900;line-height:1.2;text-transform:uppercase}.site-shell{position:relative;min-height:100vh;overflow-x:hidden;color:var(--color-ink);font-family:var(--font-stack);background:var(--color-bg)}.site-header,.site-main,.site-footer{position:relative;z-index:1;width:min(calc(100% - var(--container-gutter)),var(--container-content));margin:0 auto}.site-header{display:flex;align-items:center;gap:28px;justify-content:space-between;padding:28px 0 20px}.site-header-controls{display:grid;justify-items:end;gap:12px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:1.0625rem;font-weight:800}.brand-mark{display:inline-grid;width:34px;height:34px;place-items:center;border:2px solid var(--color-ink);border-radius:50%;background:#f9fbf5;color:var(--color-accent);font-weight:900}.site-nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.site-nav a{display:inline-flex;min-height:44px;align-items:center;border:1px solid var(--border-subtle);border-radius:999px;padding:8px 13px;background:var(--color-surface);color:#263241;font-size:.9375rem;font-weight:700;font-family:inherit;line-height:1}.nav-divider{align-self:center;width:1px;height:22px;background:var(--border-strong)}.site-nav .nav-library-link{gap:7px}.site-nav a.active,.site-nav a[aria-current=page]{border-color:#0f7a456b;background:#e3f1e8;color:var(--color-accent);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.account-controls{display:contents;color:var(--color-ink);font-family:var(--font-stack)}.account-trigger{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:50%;padding:0;background:var(--color-surface);color:#263241;cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.account-trigger:hover{border-color:var(--border-strong);background:#eef2ee}.account-trigger-signed-in{border-color:#0f7a456b;background:#e3f1e8;color:var(--color-accent)}.account-trigger-signed-in:hover{border-color:#0f7a459e;background:#d8ecdf}.account-initial{font-size:1rem;font-weight:800;line-height:1}.account-popover{position:fixed;inset:unset;top:var(--account-popover-top, 72px);left:var(--account-popover-left, 12px);width:min(390px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;margin:0;border:1px solid var(--border-strong);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-panel);padding:var(--space-lg)}.account-popover::backdrop{background:transparent}.account-popover h2{margin:0 0 var(--space-md);color:var(--color-heading);font-size:1.25rem;line-height:1.1}.account-sign-in{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px var(--space-xs)}.account-state,.account-error{margin:0;color:var(--color-copy);font-size:.8125rem;font-weight:700;line-height:1.4}.account-error{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.account-retry{min-height:44px;border:0;background:transparent;color:var(--color-accent);cursor:pointer;font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px}.account-retry:disabled{cursor:wait;opacity:.7}.account-sign-in label{grid-column:1 / -1;font-size:.72rem;font-weight:900;line-height:1.1;text-transform:uppercase}.account-session{display:flex;max-width:100%;align-items:center;gap:8px}.account-sign-in input{width:100%;min-width:0;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font:inherit;font-size:.82rem;padding:8px 10px}.account-action{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-ink);color:#f9fbf5;cursor:pointer;font:inherit;font-size:.78rem;font-weight:900;line-height:1.1;padding:8px 11px}.account-action:disabled{cursor:wait;opacity:.7}.account-session{justify-content:flex-end;font-size:.82rem;font-weight:800}.account-session span{overflow:hidden;max-width:220px;text-overflow:ellipsis;white-space:nowrap}.account-message{max-width:100%;margin:var(--space-xs) 0 0;color:inherit;font-size:.75rem;font-weight:750;line-height:1.35}.account-message:empty{display:none}.site-main{display:grid;gap:48px;padding:54px 0 64px}.site-main.practice-route{width:min(calc(100% - var(--container-gutter)),var(--container-wide))}.site-main.custom-route-main{padding-top:32px}h1,h2,h3,p{letter-spacing:0}h1{margin:0;font-size:4.75rem;line-height:.96}h2{margin:0;font-size:2rem;line-height:1.05}h3{margin:0 0 10px;font-size:1.0625rem;line-height:1.25}p{margin:0;color:var(--color-copy);font-size:1.0625rem;line-height:1.65}.not-found-page,.auth-verify-page{display:grid;max-width:720px;gap:18px;padding:42px 0 72px}.auth-verify-message{color:#8c1f2d;font-size:.9375rem;font-weight:800}.share-page{display:grid;justify-self:stretch;width:100%;gap:var(--page-gap);padding:18px 0 34px}.share-heading,.share-message-card{min-width:0;max-width:720px}#share-title{overflow-wrap:anywhere}.share-message-card,.share-copy-panel{display:grid;justify-items:start;gap:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--color-surface);padding:24px}.share-copy-panel h2{font-size:1.35rem}.share-status{padding:42px 0 72px}.not-found-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.primary-action,.secondary-action{padding:10px 18px}.secondary-action:hover{background:#f9fbf5}.practice-page{display:grid;justify-self:stretch;width:100%;max-width:none;gap:var(--page-gap);padding:18px 0 34px}.custom-page{display:grid;justify-self:stretch;width:100%;gap:var(--page-gap);padding:18px 0 34px}.custom-instrument-header,.practice-instrument-header{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--space-md) var(--space-lg)}.custom-instrument-title{display:grid}.custom-instrument-title h1{font-size:2.15rem;line-height:1}.custom-instrument-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-xs) var(--space-md);color:var(--color-copy);font-size:.8125rem;font-weight:700}.practice-header-settings-toggle{display:none}.custom-header-presets-toggle{display:inline-flex;min-height:44px;font-size:.8125rem;font-weight:750;padding:var(--space-xs) var(--space-md)}.pattern-persistence-toolbar,.pattern-handoff{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface);padding:12px 14px}.pattern-persistence-toolbar{margin-bottom:18px}.pattern-persistence-toolbar .pattern-persistence-message{flex-basis:100%}.pattern-persistence-status{display:grid;gap:2px;margin-right:auto;color:var(--color-copy);font-size:.8125rem}.pattern-persistence-status strong{color:var(--color-heading);font-size:.875rem}.pattern-persistence-toolbar .pattern-persistence-guest-copy{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.pattern-persistence-toolbar .pattern-save-intent-form{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.pattern-persistence-toolbar .pattern-save-intent-row{display:flex;flex-wrap:wrap;gap:8px}.pattern-persistence-toolbar .pattern-save-intent-row input{width:min(260px,70vw)}.pattern-persistence-toolbar .pattern-save-intent-row .primary-action{width:auto}.pattern-manage-link{text-decoration:none}.pattern-handoff{justify-content:space-between;margin-bottom:12px;background:#f8faf7}.pattern-handoff>div:first-child{display:grid;gap:4px}.pattern-handoff h2{font-size:1rem}.pattern-handoff p{color:var(--color-copy);font-size:.875rem}.custom-presets-region{display:grid;gap:var(--space-sm);min-width:0}.custom-presets-body{min-width:0}.custom-settings-bar{display:flex;justify-content:flex-end}.custom-settings-body{min-width:0}.custom-settings-heading{font-size:1.35rem;line-height:1.15}.custom-settings-toggle{min-height:44px;font-size:.8rem;padding:4px 10px}.practice-settings-sidebar-collapsed .custom-settings-bar{justify-content:center}.practice-settings-sidebar-collapsed .custom-settings-toggle{writing-mode:vertical-rl;min-width:44px;min-height:44px;padding:12px 6px}.pattern-persistence-guest-copy{display:grid;gap:8px}.pattern-save-intent-form{display:grid;gap:10px}.pattern-save-intent-form label{color:var(--color-heading);font-size:.875rem;font-weight:750}.pattern-save-intent-row{display:grid;gap:8px}.pattern-save-intent-row input{width:100%;min-width:0;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-heading);padding:9px 10px;font:inherit}.pattern-save-intent-row .primary-action{width:100%}.pattern-save-intent-status{font-size:.875rem;font-weight:750}.pattern-continuation-status{display:grid;justify-items:start;max-width:720px;gap:14px;padding:42px 0 72px}.saved-pattern-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.destructive-action{border-color:#9d312c;color:#7b211d}.pattern-persistence-message:empty{display:none}.practice-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,300px);gap:18px;align-items:start}.practice-workspace-settings-collapsed{grid-template-columns:minmax(0,1fr) auto}.practice-main{grid-column:1;grid-row:1;min-width:0}.practice-sidebar{display:grid;grid-column:2;grid-row:1;gap:14px;align-self:start;min-width:0}.practice-heading{display:grid;gap:8px}.practice-label,.pattern-context-label{color:var(--color-copy);font-size:.85rem;font-weight:750;line-height:1.4;text-transform:none}.practice-heading h1{font-size:2.15rem;line-height:1}.practice-toolbar{--practice-setting-button-block-size: 44px;--practice-setting-helper-slot: 2.19375rem ;--practice-setting-label-slot: .792rem ;display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;width:100%;max-width:100%;padding:14px}.setting-groups{display:grid;gap:12px}.setting-group{display:grid;grid-template-rows:minmax(var(--practice-setting-label-slot),auto) minmax(var(--practice-setting-helper-slot),auto) auto;min-width:0;min-inline-size:0;align-content:start;gap:8px;margin:0;border:0;border-top:2px solid rgba(106,55,70,.18);padding:12px 0 0}.setting-group:first-child{border-top:0;padding-top:0}.setting-group>legend{width:100%;padding:0}.setting-label{margin:0;font-size:.72rem;line-height:1.1}.setting-helper{max-width:16rem;min-height:var(--practice-setting-helper-slot);margin:0;color:#596575;font-size:.8125rem;font-weight:700;line-height:1.35}.setting-error{display:inline-flex;align-items:baseline;gap:6px;margin:0;color:#8c1f2d;font-size:.8125rem;font-weight:800;line-height:1.35}.setting-error:before{content:"!";display:inline-grid;width:1.25em;height:1.25em;flex:0 0 auto;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:.78em;line-height:1}.pattern-switcher{display:grid;grid-auto-rows:minmax(var(--practice-setting-button-block-size),auto);width:100%;box-shadow:var(--shadow-control)}.pattern-switcher button{display:inline-flex;min-height:var(--practice-setting-button-block-size);min-width:0;width:100%;align-items:center;justify-content:center;border-bottom:1px solid var(--border-subtle);font-size:.9375rem;font-weight:800;gap:8px;line-height:1.15;padding:10px 14px;text-align:center}.pattern-switcher button:before{content:"";display:block;width:7px;height:12px;flex:0 0 7px;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(45deg)}.pattern-switcher button:last-child{border-bottom:0}.pattern-switcher button.active:before{border-color:currentColor}.time-signature-switcher{display:grid;grid-template-rows:repeat(5,52px);overflow:hidden;width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:#f9fbf5;box-shadow:var(--shadow-control)}.time-signature-row{position:relative;min-width:0;border-bottom:1px solid var(--border-subtle)}.time-signature-row:last-child{border-bottom:0}.time-signature-family-button{display:flex;width:100%;height:100%;min-height:44px;align-items:center;justify-content:flex-start;border:0;background:transparent;color:#263241;cursor:pointer;font:inherit;font-size:.9375rem;font-weight:800;line-height:1.15;padding:8px 14px 8px 18px;text-align:left}.time-signature-family-button:before{content:"";position:absolute;left:6px;width:7px;height:12px;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(45deg)}.time-signature-family-button:hover{background:#0f7a4514}.time-signature-row.active .time-signature-family-button{background:var(--color-ink);color:#f9fbf5}.time-signature-row.active .time-signature-family-button:before{border-color:currentColor}.time-signature-row-grouped .time-signature-family-button{padding-right:146px}.time-signature-row-grouped:has(.time-signature-groupings button:nth-child(3)) .time-signature-family-button{padding-right:150px}.time-signature-groupings{position:absolute;z-index:var(--z-control-overlay);top:4px;right:4px;bottom:4px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);gap:3px}.time-signature-groupings button{position:relative;min-width:44px;min-height:44px;border:1px solid rgba(249,251,245,.72);border-radius:3px;background:#f9fbf5;color:var(--color-ink);cursor:pointer;font:inherit;font-size:.7rem;font-weight:800;line-height:1;padding:2px 4px 2px 15px}.time-signature-groupings button:before{content:"";position:absolute;width:5px;height:9px;margin-left:-10px;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(45deg)}.time-signature-groupings button:hover{background:#e3f1e8}.time-signature-groupings button.active{border-color:#f9fbf5;background:var(--color-accent);color:#f9fbf5}.time-signature-groupings button.active:before{border-color:currentColor}.time-signature-family-button:focus-visible,.time-signature-groupings button:focus-visible{outline-offset:-4px;box-shadow:inset 0 0 0 3px var(--color-accent)}.line-count-field>input{width:100%;min-height:var(--practice-setting-button-block-size);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:#f9fbf5;color:#263241;box-shadow:var(--shadow-control);font:inherit;font-size:1rem;font-weight:900;padding:10px 12px}.line-count-field>input[aria-invalid=true]{border-color:#8c1f2db8}.tempo-control{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:var(--practice-setting-button-block-size);align-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:#f9fbf5;box-shadow:var(--shadow-control)}.tempo-control:has(input[aria-invalid=true]){border-color:#8c1f2db8}.tempo-control input{width:100%;min-width:0;min-height:var(--practice-setting-button-block-size);border:0;background:transparent;color:#263241;font:inherit;font-size:1rem;font-weight:900;line-height:1.15;padding:10px 12px}.tempo-control span{display:inline-flex;min-height:var(--practice-setting-button-block-size);align-items:center;border-left:1px solid var(--border-subtle);color:#596575;font-size:.8125rem;font-weight:900;line-height:1;padding:0 12px}.toggle-control{display:inline-flex;min-height:40px;align-items:center;gap:10px;color:#263241;cursor:pointer;font-size:.9375rem;font-weight:800;white-space:nowrap}.toggle-control input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.toggle-track{display:inline-flex;width:46px;height:26px;align-items:center;border:1px solid var(--border-strong);border-radius:999px;background:#cfd8d0;padding:2px;transition:background var(--transition-fast),border-color var(--transition-fast)}.toggle-thumb{width:20px;height:20px;border-radius:50%;background:#f9fbf5;box-shadow:0 3px 9px #17212b38;transition:transform var(--transition-fast)}.toggle-control input:checked+.toggle-track{border-color:#0f7a4575;background:var(--color-accent)}.toggle-control input:checked+.toggle-track .toggle-thumb{transform:translate(20px)}.randomize-button{width:100%;border:1px solid var(--border-strong);font-size:.9375rem;padding:12px 22px}.practice-score-context{gap:var(--space-xs)}.practice-score-controls{display:grid;grid-template-columns:164px minmax(280px,auto) minmax(224px,1fr);align-items:end;gap:var(--space-md);width:100%}.practice-difficulty-zone{min-width:0;margin:0;border:0;padding:0}.practice-difficulty-zone>legend{margin-bottom:4px;color:var(--color-ink);font-size:.8125rem;font-weight:750;line-height:1.2;padding:0}.practice-difficulty-switcher{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:44px;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none}.practice-difficulty-switcher button{border:0;border-left:1px solid var(--border-subtle);padding:var(--space-xs)}.practice-difficulty-switcher button:first-child{border-left:0}.practice-set-actions{display:flex;justify-self:end;gap:var(--space-xs)}.practice-new-set-button,.practice-previous-set-button{width:auto;min-width:112px;min-height:44px;padding:var(--space-xs) var(--space-md)}.practice-previous-set-button:disabled{cursor:default;opacity:.5;transform:none}.practice-generation-status{min-height:1.4em;margin:0;color:var(--color-copy);font-size:.8125rem;font-weight:700;line-height:1.4}.custom-pattern-writer{display:grid;gap:0;min-width:0;overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface);padding:var(--space-md)}.custom-pattern-score-region{min-width:0;margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-md)) 0}.custom-pattern-score-region>.score-panel{border:0;border-bottom:1px solid var(--border-subtle);border-radius:0}.custom-score-context{display:grid;min-width:0;border-bottom:1px solid var(--border-subtle);background:#eef3ec;color:var(--color-ink);padding:var(--space-sm) var(--space-md)}.custom-score-context-groups{display:flex;flex-wrap:wrap;gap:var(--space-md) var(--space-lg);align-items:end;min-width:0}.custom-score-context-group{display:grid;min-width:0;gap:var(--space-xs);margin:0;border:0;padding:0}.custom-score-pattern-group{flex:1 1 270px}.custom-score-details-group{flex:1 1 220px}.custom-score-context-group>legend{padding:0;color:var(--color-copy);font-size:.72rem;font-weight:900;line-height:1.1}.custom-score-context-fields{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-width:0}.custom-score-context-field{display:grid;min-width:0;gap:6px;color:var(--color-ink);font-size:.8125rem;font-weight:750;line-height:1.2}.custom-score-context-field>select,.custom-score-context-field>input{min-width:0;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font:inherit;font-size:1rem;font-weight:800;padding:9px 12px}.custom-score-context-field>select{min-width:148px}.custom-score-context-field>input{width:104px}.custom-score-title-field>input{width:min(100%,320px)}.custom-score-playback-group{flex:0 1 auto;justify-self:end}.custom-score-playback-fields{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:end}.custom-score-tempo-field{width:164px}.custom-score-tempo-field .tempo-control{min-height:44px;box-shadow:none}.custom-score-tempo-field .tempo-control input,.custom-score-tempo-field .tempo-control span{min-height:44px}.custom-score-tempo-field .setting-error{max-width:22rem}.practice-score-context .practice-score-controls-group{justify-self:stretch}.custom-score-playback-button{min-width:104px;min-height:44px}.custom-structural-confirmation,.custom-structural-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-xs) var(--space-md);margin-top:var(--space-sm);border-top:1px solid var(--border-subtle);padding-top:var(--space-sm)}.custom-structural-confirmation p,.custom-structural-status span{margin:0;color:var(--color-copy);font-size:.875rem;font-weight:700;line-height:1.4}.custom-structural-confirmation>div{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.custom-structural-confirmation button,.custom-structural-status button{min-height:44px;padding:var(--space-xs) var(--space-md)}.custom-pattern-preset-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;min-width:0}.custom-pattern-preset-group{display:grid;align-content:start;gap:7px;min-width:0}.custom-presets-panel .setting-helper{max-width:none}.custom-pattern-grid{display:grid;gap:var(--space-lg);min-width:0;overflow-x:auto;padding-top:var(--space-lg)}.custom-pattern-grid-guide{display:grid;gap:var(--space-xs);padding-top:var(--space-lg)}.custom-pattern-bar-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-sm);align-items:center;border-bottom:1px solid var(--border-subtle);background:#eef3ec;padding:var(--space-sm) var(--space-md)}.custom-pattern-bar-navigation{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:var(--space-xs);align-items:center}.custom-pattern-bar-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs)}.custom-pattern-bar-navigation strong{color:var(--color-ink);font-size:1rem;font-weight:850;text-align:center}.custom-pattern-bar-navigation button,.custom-pattern-bar-actions button{min-height:44px}.custom-pattern-duplicate-bar{border-color:var(--color-ink)}.custom-pattern-grid-guide p{max-width:72ch;color:var(--color-copy);font-size:.875rem;font-weight:650;line-height:1.45}.custom-pattern-edit-tools,.custom-pattern-history-controls,.custom-pattern-articulation-controls,.custom-pattern-grid-navigation,.custom-pattern-grid-navigation>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.custom-pattern-grid-navigation{justify-content:space-between}.custom-pattern-grid-navigation button,.custom-pattern-history-controls button{min-height:44px}.custom-pattern-edit-tools{justify-content:flex-end}.custom-pattern-edit-toolbar{display:grid;grid-template-columns:minmax(170px,1fr) auto;gap:var(--space-md);align-items:end;margin-top:var(--space-md);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:var(--space-md) 0}.custom-pattern-selection-context{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:4px var(--space-xs);color:var(--color-copy);font-size:.8125rem;line-height:1.35}.custom-pattern-selection-context>span:first-child{flex-basis:100%;font-size:.75rem;font-weight:750}.custom-pattern-selection-context strong{overflow-wrap:anywhere;color:var(--color-ink);font-size:.9375rem;font-weight:800}.custom-pattern-selection-context>span:last-child{font-weight:700}.custom-pattern-articulation-controls{justify-content:flex-end}.custom-pattern-articulation-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:var(--space-xs);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);cursor:pointer;font:inherit;font-size:.875rem;font-weight:750;padding:var(--space-xs) var(--space-md)}.custom-pattern-articulation-button.active{border-color:var(--color-ink);background:var(--color-ink);color:#f9fbf5}.custom-pattern-articulation-button:disabled{cursor:not-allowed;opacity:.48}.articulation-icon{width:28px;height:24px;flex:0 0 auto;overflow:visible;fill:currentColor}.articulation-icon path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.articulation-icon .articulation-accent-mark{stroke-width:2}.articulation-icon-compact{position:absolute;top:2px;right:2px;width:20px;height:18px;color:currentColor}.custom-pattern-history-controls{justify-content:flex-end}.custom-pattern-grid-navigation{border-top:1px solid var(--border-subtle);padding-top:10px}.custom-pattern-grid-navigation>span{color:var(--color-ink);font-size:.875rem;font-weight:800}.custom-pattern-measure{display:grid;gap:8px;min-width:0}.custom-pattern-measure h2{margin:0}.custom-pattern-cell-grid{display:flex;gap:var(--space-sm);min-width:0;overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:#eef3ec;padding:var(--space-xs)}.custom-pattern-beat-group{display:grid;flex:1 0 auto;gap:4px;border-inline-start:1px solid var(--border-subtle);background:transparent;padding:0 0 0 var(--space-xs)}.custom-pattern-beat-group:first-child{border-inline-start:0;padding-inline-start:0}.custom-pattern-beat-label{grid-column:1 / -1;color:var(--color-copy);font-size:.75rem;font-weight:800;line-height:1.3;padding:2px 3px 3px}.custom-pattern-cell{display:grid;grid-template-rows:18px repeat(3,44px);gap:4px;min-width:54px}.custom-pattern-cell span{display:inline-grid;place-items:center;color:#596575;font-size:.82rem;font-weight:800;line-height:1}.custom-pattern-drum-control{position:relative;display:grid;grid-template-columns:minmax(44px,1fr);min-width:0}.custom-pattern-cell button{width:100%;min-height:44px;border:1px solid var(--border-subtle);border-radius:5px;font:inherit;font-weight:800;line-height:1}.custom-pattern-cell button{display:inline-grid;place-items:center;background:var(--color-surface);color:#263241;cursor:pointer;font-size:.95rem;padding:0}.custom-pattern-cell button>*{pointer-events:none}.custom-pattern-drum-label{color:inherit!important;font-size:inherit!important;font-weight:inherit!important}.custom-pattern-cell button.selected{outline:3px solid var(--color-accent);outline-offset:1px}.custom-pattern-cell button:hover{border-color:#0f7a4561;background:#e3f1e8}.custom-pattern-cell button.active{border-color:var(--color-ink);background:var(--color-ink);color:#f9fbf5;padding:0}.score-panel{overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface)}.score-stack{display:grid;grid-template-columns:1fr;gap:14px;padding:18px}.score-stack>*{min-width:0}.score-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;min-width:0}.score-line-controls{display:grid;grid-column:2;grid-row:1;align-content:start;gap:var(--space-xs)}.score-line-heading{display:none;margin:0}.score-line>.score-surface{grid-column:1;grid-row:1}.practice-repeat-footer{display:none}.score-surface{min-width:0;min-height:118px;width:100%;background:linear-gradient(rgba(23,33,43,.08) 1px,transparent 1px) 0 32px / 100% 18px no-repeat,linear-gradient(rgba(23,33,43,.08) 1px,transparent 1px) 0 50px / 100% 18px no-repeat,linear-gradient(rgba(23,33,43,.08) 1px,transparent 1px) 0 68px / 100% 18px no-repeat,linear-gradient(rgba(23,33,43,.08) 1px,transparent 1px) 0 86px / 100% 18px no-repeat,var(--color-surface)}.score-surface-interactive{position:relative}.score-measure-selectors{position:absolute;inset:8px 14px 10px;display:grid;grid-template-columns:repeat(var(--score-measures-per-line),minmax(0,1fr));grid-template-rows:repeat(var(--score-line-count),minmax(0,1fr));pointer-events:none}.score-measure-selector{min-width:0;min-height:44px;border:2px solid transparent;border-radius:var(--radius-control);background:transparent;color:transparent;cursor:pointer;pointer-events:auto}.score-measure-selector:hover{border-color:#0f7a4561}.score-measure-selector.score-measure-active{border-color:var(--color-accent)}.score-measure-selector.score-measure-playing{outline:2px dashed var(--color-ink);outline-offset:-6px}.score-measure-selector:focus-visible{outline:3px solid var(--color-accent);outline-offset:-3px}.score-surface svg{display:block;width:100%;max-width:100%;height:auto}.playback-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}.save-line-button[disabled]{cursor:default;opacity:.6}.playback-button{min-height:44px;min-width:92px;gap:8px;padding:9px 12px}.playback-button.active{border-color:#6a37466b;background:#6a3746}.playback-button-icon{display:inline-grid;width:14px;height:14px;flex:0 0 14px;place-items:center}.playback-button-icon:before{content:"";display:block}.playback-button-icon.play:before{width:0;height:0;margin-left:2px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor}.playback-button-icon.stop:before{width:10px;height:10px;background:currentColor}.score-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:0 18px 18px;color:#8c1f2d;font-size:.9375rem}.score-error p{color:inherit;font-size:inherit;line-height:1.45}.notation-status{padding:0 18px 18px;color:var(--color-copy);font-size:.9375rem;font-weight:800;line-height:1.45}.notation-retry-button{padding:9px 16px}.site-footer,.dojo-home-footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:26px 0 34px;border-top:1px solid var(--border-subtle);color:#5d6877;font-family:var(--font-stack);font-size:.9375rem}.dojo-home-footer{border-top-color:var(--border-subtle);background:var(--color-bg);color:var(--color-copy);padding:26px max(24px,calc((100vw - var(--container-content)) / 2)) 34px}@media(max-width:900px){.practice-workspace{grid-template-columns:1fr}.practice-header-settings-toggle{display:inline-flex;min-height:44px;font-size:.8125rem;font-weight:750;padding:var(--space-xs) var(--space-md)}.practice-settings-sidebar-collapsed{display:none}.practice-settings-sidebar:not(.practice-settings-sidebar-collapsed) .custom-settings-bar{position:sticky;z-index:var(--z-sticky);top:8px;padding:8px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--color-surface)}.practice-sidebar{grid-column:auto;grid-row:auto;order:1}.practice-main{grid-column:auto;grid-row:auto;order:2}.account-sign-in input,.pattern-save-intent-row input{font-size:1rem}.custom-pattern-drum-control{grid-template-columns:minmax(44px,1fr)}.custom-pattern-edit-toolbar{grid-template-columns:minmax(0,1fr)}.custom-pattern-articulation-controls,.custom-pattern-history-controls{justify-content:flex-start}}@media(max-width:760px){.site-header,.site-main,.site-footer{width:min(calc(100% - 32px),var(--container-content))}.site-header{display:block}.site-header-controls{justify-items:start;margin-top:14px}.site-nav{justify-content:flex-start;margin-top:0}.account-session{flex-wrap:wrap;justify-content:flex-start}.site-main{gap:34px;padding-top:36px}.site-main.practice-route{width:min(calc(100% - 32px),var(--container-wide))}.site-main.custom-route-main{padding-top:24px}h1{font-size:3.2rem}h2{font-size:1.65rem}.practice-page{gap:18px;padding-top:12px;width:100%}.practice-workspace{grid-template-columns:1fr}.practice-heading h1{font-size:2rem}.practice-toolbar{gap:12px;padding:12px}.practice-score-controls{grid-template-columns:164px minmax(280px,1fr)}.practice-set-actions{grid-column:1 / -1}.setting-groups{display:grid;gap:12px}.setting-group{width:100%;padding-top:10px}.setting-group:first-child{border-top:0;padding-top:0}.pattern-switcher{display:grid;width:100%}.pattern-switcher button{padding:9px 8px}.custom-pattern-writer{padding:12px}.custom-score-context-groups{display:grid;grid-template-columns:minmax(0,1fr)}.custom-score-playback-group{justify-self:stretch}.custom-score-playback-fields{align-items:stretch}.custom-score-tempo-field{width:min(100%,220px)}.custom-instrument-header{align-items:start}.custom-instrument-status{width:100%;justify-content:flex-start}.custom-pattern-articulation-button{width:44px;padding-inline:7px}.custom-pattern-articulation-button>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.custom-pattern-bar-controls{grid-template-columns:minmax(0,1fr);margin-inline:-12px;padding-inline:12px}.custom-pattern-bar-navigation{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.custom-pattern-bar-navigation button{width:100%}.custom-pattern-bar-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.custom-pattern-grid-navigation{align-items:stretch}.custom-pattern-history-controls,.custom-pattern-grid-navigation>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.custom-pattern-preset-group{width:100%}.score-stack{gap:10px;padding:12px}.score-line{grid-template-columns:1fr}.score-line-controls{display:flex;grid-column:1;grid-row:auto;align-items:center;justify-content:space-between;gap:var(--space-sm);order:-1}.score-line-heading{display:grid;flex:0 0 auto;gap:2px;color:var(--color-heading);font-size:.9375rem;font-weight:850;line-height:1.15}.score-line-length{color:var(--color-copy);font-size:.75rem;font-weight:700}.score-line-controls .playback-controls{justify-content:flex-end}.score-line>.score-surface{grid-column:1;grid-row:auto}.score-surface{min-height:108px}.practice-repeat-footer{display:grid;gap:var(--space-md);margin-top:var(--space-md);border-top:1px solid var(--border-strong);padding-top:var(--space-lg)}.practice-repeat-copy{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-xs) var(--space-md)}.practice-repeat-copy h2{font-size:1.25rem}.practice-repeat-copy p{margin:0;color:var(--color-copy);font-size:.8125rem;font-weight:750}.practice-repeat-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.practice-repeat-actions button{width:100%;min-height:44px;padding:var(--space-xs) var(--space-md)}.practice-repeat-settings{grid-column:1 / -1}}@media(max-width:560px){.practice-score-controls{grid-template-columns:minmax(0,1fr)}.practice-tempo-zone,.practice-tempo-zone .custom-score-tempo-field{width:100%}.practice-set-actions{grid-column:1}.account-sign-in{grid-template-columns:minmax(0,1fr)}.account-sign-in label{grid-column:1}.custom-score-context-fields{display:grid;grid-template-columns:minmax(0,1fr)}.custom-score-context-field,.custom-score-context-field>select,.custom-score-context-field>input,.custom-score-tempo-field{width:100%}.custom-structural-confirmation,.custom-structural-status{align-items:stretch}.custom-structural-confirmation>div{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.custom-structural-confirmation button,.custom-structural-status button{width:100%}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.patterns-page{width:min(calc(100% - var(--container-gutter)),var(--container-wide));margin:0 auto;padding:var(--space-gutter) 0 calc(var(--space-gutter) + var(--space-xl));color:var(--color-ink);font-family:var(--font-stack)}.patterns-heading,.patterns-section-heading,.pattern-inspector-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-lg)}.patterns-heading>div,.patterns-section-heading>div,.pattern-inspector-heading>div{min-width:0}.patterns-heading h1{margin:4px 0 8px;font-size:2.15rem;line-height:1;letter-spacing:-.025em}.patterns-heading p,.patterns-section-heading h2,.pattern-inspector-heading h2,.pattern-inspector-heading p,.patterns-state-card h2,.patterns-state-card p{margin-top:0}.patterns-heading>div>p:last-child{max-width:65ch;margin-bottom:0;color:var(--color-copy);font-weight:600}.patterns-library-controls{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface)}.pattern-actions button,.pattern-actions a:not(.primary-action):not(.secondary-action),.pattern-share button,.pattern-share a,.patterns-master-list button{min-height:46px;border-radius:var(--radius-control);font:700 .875rem/1 var(--font-stack)}.patterns-search{flex:0 1 420px}.patterns-search input,.patterns-sort select,.pattern-rename-form input,.pattern-tempo-control input{min-height:46px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font:650 1rem/1.2 var(--font-stack);padding:var(--space-sm) var(--space-md)}.patterns-search input{width:100%}.patterns-search input::placeholder{color:var(--color-copy);opacity:1}.patterns-sort{display:flex;align-items:center;gap:8px;color:var(--color-copy);font-size:.875rem;font-weight:700}.patterns-count{margin:0 0 0 auto;color:var(--color-copy);font-size:.875rem;font-weight:700;white-space:nowrap}.patterns-library-layout{min-width:0}.pattern-inspector{--inspector-inset: var(--space-xl);min-width:0;border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-panel)}.pattern-inspector-heading{padding:var(--space-xl) var(--inspector-inset) var(--space-lg)}.pattern-context-label{margin-bottom:var(--space-xs)}.pattern-inspector-heading h2{margin-bottom:10px;overflow-wrap:anywhere;font-size:1.65rem;line-height:1.12;text-wrap:balance}.pattern-meta{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-lg);color:var(--color-copy);font-size:.83rem;font-weight:650}.pattern-inspector>.score-panel{margin:0 var(--inspector-inset) var(--space-sm);box-shadow:none}.pattern-tempo-control{display:flex;align-items:center;gap:var(--space-xs);margin:0 var(--inspector-inset) var(--space-xl);color:var(--color-copy);font-size:.875rem;font-weight:700}.pattern-tempo-control input{width:88px}.pattern-share,.pattern-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--border-subtle)}.pattern-share{padding:var(--space-md) var(--inspector-inset)}.pattern-actions{padding:var(--space-lg) var(--inspector-inset)}.pattern-actions-main,.pattern-actions-danger{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs)}.pattern-actions-main{flex:1 1 auto}.pattern-actions-danger{flex:0 0 auto}.pattern-share-toggle{display:flex;align-items:center;flex:1 1 100%;gap:var(--space-sm);min-height:44px;color:var(--color-ink);font-size:.875rem;font-weight:700;cursor:pointer}.pattern-share-toggle input{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}.pattern-share-url{flex:1 1 220px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-copy);font-size:.85rem;font-weight:650}.pattern-share-url-off{text-decoration:line-through}.pattern-share-note{flex:1 1 100%;color:var(--color-copy);font-size:.82rem;font-weight:650}.pattern-actions button,.pattern-actions a:not(.primary-action):not(.secondary-action),.pattern-share button,.pattern-share a{display:inline-flex;align-items:center;justify-content:center;border:2px solid currentColor;background:var(--color-surface);color:var(--color-ink);padding:var(--space-sm) var(--space-md);cursor:pointer}.pattern-actions button:hover,.pattern-actions a:not(.primary-action):not(.secondary-action):hover,.pattern-share button:hover,.pattern-share a:hover{background:var(--color-bg)}.pattern-actions :disabled,.pattern-share :disabled{cursor:wait;opacity:.58}.pattern-actions button.pattern-delete-trigger{color:var(--color-danger)}.pattern-delete-confirm,.pattern-rename-form{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs)}.pattern-delete-confirm>span{font-size:.875rem;font-weight:700}.pattern-rename-form{flex:1 1 240px}.pattern-rename-form input{flex:1 1 190px}.pattern-field-error,.pattern-share-hint{flex:1 1 100%;color:var(--color-danger);font-size:.82rem;font-weight:700}.pattern-field-counter,.pattern-share-progress{color:var(--color-copy);font-size:.82rem;font-weight:650}.pattern-receipt{margin:var(--space-sm) 0 0;color:var(--color-ink);font-size:.85rem;font-weight:700}.pattern-incompatible{margin:0 var(--inspector-inset) var(--space-lg);padding:28px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--color-bg)}.pattern-incompatible h3,.pattern-incompatible p{margin-top:0}.pattern-incompatible p{max-width:60ch;margin-bottom:0;color:var(--color-copy)}.pattern-compatibility{color:var(--color-danger);font-size:.76rem;font-weight:750}.patterns-library-layout{display:grid;grid-template-columns:minmax(230px,.34fr) minmax(0,1fr);align-items:start;gap:18px}.patterns-master-list{display:flex;flex-direction:column;box-shadow:var(--shadow-control);max-height:720px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface)}.patterns-master-list button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:62px;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent;color:var(--color-copy);padding:var(--space-sm) var(--space-md);text-align:left;cursor:pointer}.patterns-master-list button:last-child{border-bottom:0}.patterns-master-list button.selected{background:var(--color-accent-wash);color:var(--color-ink);box-shadow:inset 0 0 0 2px var(--color-accent)}.patterns-master-list button>span:first-child{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.patterns-master-list strong{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.patterns-master-list button>span:last-child{flex-shrink:0;white-space:nowrap}.patterns-master-list small{font-size:.76rem}.patterns-library-layout>.pattern-inspector{border:1px solid var(--border-subtle)}.patterns-state-card{max-width:680px;margin:var(--space-gutter) auto calc(var(--space-gutter) + var(--space-xl));padding:var(--space-xl);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-panel);text-align:center}.patterns-state-card h2{margin-bottom:10px;font-size:1.45rem}.patterns-state-card p{margin-bottom:22px;color:var(--color-copy)}.patterns-state-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.patterns-skeleton{display:grid;grid-template-columns:minmax(230px,.34fr) minmax(0,1fr);align-items:start;gap:var(--space-lg);margin-top:var(--space-xl)}.patterns-skeleton span{border-radius:var(--radius-panel);background:var(--color-skeleton);animation:patterns-skeleton-pulse 1.4s ease-in-out infinite alternate}.patterns-skeleton-list{min-height:372px}.patterns-skeleton-inspector{min-height:460px}@keyframes patterns-skeleton-pulse{to{opacity:.48}}@media(max-width:900px){.patterns-page{width:min(calc(100% - 32px),var(--container-wide));padding-top:32px}.patterns-library-controls{flex-wrap:wrap}.patterns-search{flex-basis:calc(100% - 220px)}.patterns-sort{width:100%}.patterns-sort select{flex:1}.patterns-library-layout{grid-template-columns:1fr}.patterns-master-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(60vh,520px);overflow-x:hidden}.patterns-master-list button:nth-child(odd){border-right:1px solid var(--border-subtle)}.patterns-master-list button:nth-last-child(-n+2):nth-child(odd),.patterns-master-list button:last-child{border-bottom:0}.patterns-skeleton{grid-template-columns:1fr}.patterns-skeleton-list{min-height:200px}}@media(max-width:760px){.patterns-heading,.pattern-inspector-heading{align-items:flex-start;flex-direction:column}.patterns-heading>.secondary-action{width:100%}.patterns-search{flex-basis:100%}.patterns-master-list{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.patterns-page{width:calc(100% - 24px);padding-top:24px}.patterns-heading h1{font-size:1.85rem}.patterns-library-controls{margin-top:var(--space-lg);padding:var(--space-xs)}.patterns-sort{align-items:stretch;flex-direction:column}.pattern-inspector{--inspector-inset: var(--space-md)}.pattern-inspector-heading{padding:var(--space-lg) var(--inspector-inset) var(--space-md)}.pattern-inspector>.score-panel{margin:0 var(--space-xs) var(--space-sm)}.pattern-share,.pattern-actions{align-items:stretch;padding:var(--space-md)}.pattern-actions{flex-direction:column}.pattern-actions-main,.pattern-actions-danger{align-items:stretch;width:100%}.pattern-actions-main>.primary-action{flex:1 1 100%}.pattern-actions-danger{align-items:flex-start}.pattern-actions-danger>button{flex:0 0 auto}.pattern-actions-main>button{flex:1 1 calc(50% - var(--space-xs))}.pattern-share>button,.pattern-share>a{flex:1 1 calc(50% - var(--space-xs))}.pattern-share-url,.pattern-share-toggle{flex-basis:100%}.pattern-delete-confirm,.pattern-rename-form{align-items:stretch;flex-direction:column;width:100%}.pattern-delete-confirm button,.pattern-rename-form button,.pattern-rename-form input{width:100%}.pattern-rename-form input{flex-basis:auto}.patterns-state-card{margin-top:24px;padding:24px 16px}.pattern-tempo-control{margin:0 var(--inspector-inset) var(--space-lg)}}@media(prefers-reduced-motion:reduce){.patterns-skeleton span{animation:none}}@media(forced-colors:active){.patterns-master-list button.selected{border:2px solid Highlight}}.dojo-home{min-height:100vh;overflow-x:hidden;background:#ece6d7;color:var(--color-ink);font-family:var(--font-stack)}.dojo-home h1,.dojo-home h2,.dojo-home p,.dojo-home figure{margin:0;letter-spacing:0}.dojo-home p{color:inherit}.dojo-hero{position:relative;display:grid;min-height:86vh;overflow:hidden;color:#fff6dc}.dojo-hero-picture,.dojo-hero-shade{position:absolute;inset:0}.dojo-hero-picture{display:block;overflow:hidden}.dojo-hero-image{display:block;width:100%;height:100%;object-fit:cover;transform-origin:center;animation:dojo-image-drift 18s ease-in-out infinite alternate}.dojo-hero-shade{background:linear-gradient(90deg,#1e1812cc,#1e181285 40%,#1e18121f 70%),linear-gradient(0deg,rgba(30,24,18,.4),transparent 48%)}.dojo-home-nav,.dojo-hero-content,.dojo-rhythm-line{position:relative;z-index:1}.dojo-home-nav{display:flex;width:min(calc(100% - var(--container-gutter)),var(--container-content));align-items:center;justify-content:space-between;gap:20px;margin:0 auto;padding:26px 0}.dojo-home-nav-controls{display:grid;justify-items:end;gap:10px}.dojo-home-brand{display:inline-flex;align-items:center;gap:10px;color:#fff6dc;font-size:1rem;font-weight:900}.dojo-home-mark{display:inline-grid;width:34px;height:34px;place-items:center;border:2px solid currentColor;border-radius:50%;background:#7a1f19c7}.dojo-home-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.dojo-home-links a{display:inline-flex;min-height:44px;align-items:center;border:1px solid rgba(255,246,220,.38);border-radius:999px;background:#08070547;color:#fff6dc;font-size:.84rem;font-weight:900;font-family:inherit;line-height:1;padding:8px 12px;backdrop-filter:blur(10px)}.dojo-home-links .nav-divider{background:#fff6dc61}.dojo-home-links .nav-library-link{gap:6px}.dojo-home-links .account-trigger{border-color:#fff6dc61;background:#08070547;color:#fff6dc;backdrop-filter:blur(10px)}.dojo-home-links .account-trigger:hover{border-color:#fff6dc99;background:#08070573}.dojo-home-links .account-trigger-signed-in{border-color:#fad573c7;background:#fad5732e;color:#fff6dc}.dojo-home-links .account-trigger-signed-in:hover{border-color:#fad573eb;background:#fad57347}.dojo-home-links a[aria-current=page]{border-color:#fad573c7;background:#fad5732e;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.dojo-hero .account-trigger{cursor:pointer}.dojo-hero .account-popover{--color-ink: #211b14;--color-heading: #211b14;--color-copy: #4d4539;--color-surface: #f7f2e7;--border-strong: rgba(33, 27, 20, .22);background:#f7f2e7;color:#211b14}.dojo-hero .account-popover .account-sign-in input{border-color:#211b1438;background:#fff;color:#211b14}.dojo-hero .account-popover .account-action{border-color:#211b1438;background:#f4cc62;color:#18130d}.dojo-hero-content{display:grid;width:min(calc(100% - var(--container-gutter)),var(--container-content));max-width:720px;align-content:center;gap:22px;margin:0 auto;padding:64px 0 108px;justify-self:start}.dojo-home .dojo-kicker{color:var(--color-kicker)}.dojo-hero .dojo-kicker{color:#d6ad4a}.dojo-hero h1{max-width:760px;color:#fff6dc;font-size:7.8rem;font-weight:900;line-height:.9;text-transform:uppercase}.dojo-hero-copy{max-width:640px;color:#f8e9c3;font-size:1.22rem;font-weight:650;line-height:1.55}.dojo-actions{display:flex;flex-wrap:wrap;gap:10px}.dojo-button{border:2px solid currentColor;font-size:.95rem;line-height:1.1;padding:11px 18px}.dojo-button-primary{background:var(--color-accent);color:#18130d}.dojo-button-secondary{background:#fff6dc14;color:#fff6dc}.dojo-rhythm-line{position:absolute;right:max(24px,calc((100vw - var(--container-content)) / 2));bottom:34px;display:flex;align-items:center;gap:12px;width:min(460px,calc(100% - 48px));opacity:.86}.dojo-rhythm-mark{display:block;height:10px;border-radius:999px;background:#fff6dc;box-shadow:0 0 24px #f4cc626b;animation:dojo-mark-pulse 2.8s ease-in-out infinite}.dojo-rhythm-mark.long{width:54px}.dojo-rhythm-mark.short{width:26px}.dojo-rhythm-mark.dot{width:10px}.dojo-rhythm-mark.rest{width:18px;height:18px;border:2px solid #fff6dc;background:transparent}.dojo-rhythm-mark:nth-child(2n){animation-delay:.18s}.dojo-rhythm-mark:nth-child(3n){animation-delay:.36s}.dojo-cta-band{display:grid;width:min(calc(100% - var(--container-gutter)),var(--container-content));margin:0 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:56px 0 88px}.dojo-cta-card{display:grid;grid-template-rows:auto 1fr auto;height:100%;justify-items:start;gap:18px;padding:30px}.dojo-cta-card:hover{border-color:#8f3a2f66}.dojo-cta-card h2{color:var(--color-ink);font-size:2.1rem;line-height:1}.dojo-cta-card p{max-width:520px;color:var(--color-copy);font-size:1.0625rem;font-weight:600;line-height:1.55}@keyframes dojo-image-drift{0%{transform:scale(1.01)}to{transform:scale(1.055) translate3d(1.2%,-.6%,0)}}@keyframes dojo-mark-pulse{0%,to{opacity:.48;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.dojo-hero-image,.dojo-rhythm-mark{animation:none}.skip-link,.toggle-track,.toggle-thumb,.button,.primary-action,.secondary-action,.randomize-button,.playback-button,.notation-retry-button,.dojo-button,.card-interactive,.account-trigger,.dojo-cta-card{transition:none}.button:hover,.primary-action:hover,.secondary-action:hover,.randomize-button:hover,.playback-button:hover,.notation-retry-button:hover,.dojo-button:hover,.card-interactive:hover,.dojo-cta-card:hover{transform:none}}@media(forced-colors:active){:where(a,button,input,select,textarea,[role=button],[role=link],[tabindex]):focus-visible{outline:3px solid Highlight;box-shadow:none}.skip-link,.pattern-switcher,.tempo-control,.custom-pattern-bar-navigation,.score-panel{border-color:CanvasText}.score-measure-selector.score-measure-active{border-color:Highlight}.score-measure-selector.score-measure-playing{outline-color:CanvasText}.pattern-switcher button.active,.time-signature-row.active .time-signature-family-button,.time-signature-groupings button.active,.randomize-button,.primary-action,.playback-button,.notation-retry-button,.dojo-button-primary{forced-color-adjust:none;border-color:SelectedItem;background:SelectedItem;color:SelectedItemText}.time-signature-switcher,.time-signature-groupings button{border-color:CanvasText}.time-signature-row.active .time-signature-family-button:before,.time-signature-groupings button.active:before{border-color:SelectedItemText}.setting-error,.score-error{color:Highlight}}@media(max-width:900px){.dojo-hero{min-height:84vh}.dojo-home-nav,.dojo-hero-content,.dojo-cta-band{width:min(calc(100% - 32px),var(--container-content))}.dojo-home-nav{display:grid;justify-items:start;padding-top:18px}.dojo-home-nav-controls{justify-items:start}.dojo-home-links{justify-content:flex-start}.dojo-hero-content{gap:18px;padding:44px 0 104px}.dojo-hero h1{font-size:4.8rem}.dojo-hero-copy{font-size:1.08rem}.dojo-rhythm-line{right:16px;bottom:24px;width:min(390px,calc(100% - 32px))}.dojo-cta-band{grid-template-columns:1fr;padding:40px 0 60px}.dojo-home-footer{padding:26px max(16px,calc((100vw - var(--container-content)) / 2)) 34px}}@media(max-width:560px){.dojo-hero{min-height:82vh}.dojo-home-brand{font-size:.95rem}.dojo-home-links a{min-height:44px;font-size:.78rem;padding:8px 10px}.dojo-hero h1{font-size:3.35rem;line-height:.94}.dojo-actions{display:grid;grid-template-columns:1fr;width:100%}.dojo-button{width:100%}.dojo-rhythm-line{gap:8px}.dojo-rhythm-mark.long{width:34px}.dojo-rhythm-mark.short{width:18px}.dojo-cta-card{padding:20px}.dojo-cta-card h2{font-size:1.7rem}.dojo-cta-card p{font-size:.97rem}}
