.landing{background:linear-gradient(160deg,var(--surface-1) 0%,#0a35ab 55%,var(--surface-2) 100%);color:var(--paper);min-height:100%;font-family:var(--font-body);font-size:var(--fs-md);line-height:1.6;position:relative}.landing *{box-sizing:border-box}.landing:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.13;z-index:0;background-image:radial-gradient(rgba(255,255,255,.6) .5px,transparent .6px);background-size:3px 3px;mix-blend-mode:overlay}.landing>*{position:relative;z-index:1}.landing .skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-ink);padding:8px 14px;z-index:99;font-weight:800}.landing .skip-link:focus{left:0}.landing #main{scroll-margin-top:78px}.landing .l-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:14px clamp(16px,4vw,52px);background:#081854e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing .l-wordmark{font-weight:800;letter-spacing:1px;text-transform:lowercase;font-size:15px;white-space:nowrap}.landing .l-cat{color:var(--ink-faint);letter-spacing:4px}.landing .l-nav nav{display:flex;align-items:baseline;gap:clamp(12px,2.5vw,22px);flex-wrap:wrap}.landing .l-nav nav a{color:var(--paper);text-decoration:none;font-weight:800;font-size:11.5px;letter-spacing:3px;text-transform:uppercase;transition:color .15s}.landing .l-nav nav a:hover{color:var(--accent-text)}.landing .l-nav .l-cta{color:var(--accent-text);border:1.5px solid var(--accent-text);padding:7px 13px}.landing .l-nav .l-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.landing .eyebrow{margin:0 0 var(--sp-3);color:var(--accent-text)}.landing h1,.landing h2{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-.5px;line-height:.95;margin:0 0 var(--sp-4)}.landing h1{font-size:clamp(48px,6vw,86px);max-width:13ch;transform:rotate(-1.5deg);transform-origin:left bottom}.landing h2{font-size:clamp(30px,4vw,48px)}.landing h1 em,.landing h2 em,.landing .accent{color:var(--accent-text);font-style:normal}.landing h3{margin:0 0 var(--sp-2);font-size:var(--fs-md);font-weight:800;letter-spacing:.5px;text-transform:lowercase}.landing .lede{font-style:italic;font-size:16.5px;line-height:1.5;color:var(--text-dim);max-width:34ch;margin:0}.landing .lede b,.landing p b{color:var(--paper);font-style:normal}.landing .l-section p{color:var(--text-dim)}.landing .l-sleeve{display:flex;flex-direction:column;gap:var(--sp-4);padding:clamp(24px,4vh,40px) clamp(16px,4vw,52px) clamp(40px,6vh,64px);max-width:1280px;margin:0 auto}.landing .l-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}.landing .l-title-row .lede{padding-bottom:8px}.landing .trynow-player,.landing .loop-panel{display:flex;flex-direction:column;gap:var(--sp-4)}.landing .sleeve-bottom{display:flex;align-items:center;gap:36px}.landing .side-a{flex:1;border-top:2px solid var(--paper)}.landing .side-a .hd{padding:9px 0 6px;letter-spacing:4px}.landing .side-a .side-a-list{column-count:2;column-gap:44px}.landing .side-a .side-a-list button{display:flex;justify-content:space-between;gap:var(--sp-3);width:100%;background:none;border:none;border-top:1px solid rgba(255,255,255,.35);color:inherit;cursor:pointer;text-align:left;break-inside:avoid;padding:6px 0;font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:1px;text-transform:uppercase}.landing .side-a .side-a-list button .chord{text-transform:none}.landing .side-a .side-a-list button em,.landing .side-a .side-b-row em{font-style:normal;font-weight:400;color:var(--ink-faint)}.landing .side-a .side-a-list button.on,.landing .side-a .side-a-list button.on em,.landing .side-a .side-a-list button:hover{color:var(--accent-text)}.landing .side-a .side-b-row{display:flex;justify-content:space-between;gap:var(--sp-3);border-top:1px solid rgba(255,255,255,.35);padding:6px 0;font-weight:600;font-size:12.5px;letter-spacing:1px;color:var(--ink-faint)}.landing .side-a .foot{font-style:italic;font-size:12px;line-height:1.5;color:var(--ink-faint);margin:8px 0 0}.landing .jam-status{color:var(--ink-faint)}.landing .l-section{position:relative;max-width:1280px;margin:0 auto;padding:clamp(48px,8vh,96px) clamp(16px,4vw,52px);border-top:1.5px solid var(--line-on-ink)}.landing .anchor{position:absolute;top:-64px}.landing .method-grid,.landing .audience-grid,.landing .product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-top:var(--sp-6)}.landing .method-step,.landing .audience-card,.landing .product-card{background:var(--wash);border:1.5px solid var(--line-on-ink);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.landing .method-step p,.landing .audience-card p,.landing .product-card p{margin:0;font-size:var(--fs-sm);line-height:1.65;flex:1}.landing .step-no{color:var(--accent-text)}.landing .method-board{margin-top:var(--sp-2);background:var(--surface-0);border:1.5px solid var(--line-on-ink);padding:var(--sp-2)}.landing .product-card.wide{grid-column:1 / -1}.landing .parser-demo{margin-top:var(--sp-3)}.landing .parser-demo .field input{background:transparent;border:1.5px solid var(--line-on-ink);color:var(--paper);padding:11px 13px;font-family:var(--font-body);font-size:var(--fs-md);outline:none}.landing .parser-demo .field input:focus{border-color:var(--accent)}.landing .parser-demo .presets{margin:var(--sp-3) 0}.landing .parsed-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}.landing .parsed-chord{background:var(--surface-0);border:1.5px solid var(--line-on-ink);padding:9px 13px;display:flex;flex-direction:column;gap:3px;min-width:110px}.landing .parsed-chord b{font-family:var(--font-body);font-weight:800;font-size:var(--fs-lg)}.landing .parsed-chord.key-chip b{text-transform:uppercase}.landing .parsed-chord .tones{color:var(--ink-faint);font-size:var(--fs-xs);white-space:pre}.landing .parsed-chord .warn{color:var(--warn);font-size:var(--fs-xs);max-width:24ch}.landing .parsed-chord.unknown{border-color:var(--warn)}.landing .parsed-chord.key-chip{border-color:var(--accent)}.landing .l-faq .faq-list{margin-top:var(--sp-5);max-width:760px;border-top:2px solid var(--paper)}.landing .l-faq details{border-bottom:1px solid rgba(255,255,255,.35)}.landing .l-faq summary{cursor:pointer;list-style:none;padding:var(--sp-4) var(--sp-2);font-weight:600;font-size:var(--fs-lg);transition:color .15s}.landing .l-faq summary::-webkit-details-marker{display:none}.landing .l-faq summary:after{content:"+";float:right;color:var(--accent-text);font-weight:800}.landing .l-faq details[open] summary:after{content:"–"}.landing .l-faq summary:hover{color:var(--accent-text)}.landing .l-faq details p{margin:0;padding:0 var(--sp-2) var(--sp-4);font-style:italic;font-size:var(--fs-sm);line-height:1.7;max-width:68ch}.landing .l-faq details a{color:var(--accent-text)}.landing .l-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-5)}.landing .l-actions.center{justify-content:center}.landing .btn-primary,.landing .btn-ghost{display:inline-block;text-decoration:none;padding:13px 22px;font-weight:800;font-size:11.5px;letter-spacing:3px;text-transform:uppercase;transition:filter .15s,background .15s,color .15s}.landing .btn-primary{background:var(--accent);color:var(--accent-ink)}.landing .btn-primary:hover{filter:brightness(1.06)}.landing .btn-ghost{border:1.5px solid var(--accent-text);color:var(--accent-text)}.landing .btn-ghost:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.landing .l-band{text-align:center}.landing .l-band h1,.landing .l-band h2{max-width:none}.landing .l-fineprint{color:var(--ink-faint);font-size:var(--fs-xs);margin-top:var(--sp-4)}.landing .l-fineprint a{color:var(--ink-faint)}.landing .l-fineprint a:hover{color:var(--paper)}.landing .l-footer{border-top:1.5px solid var(--line-on-ink);padding:var(--sp-6) clamp(16px,4vw,52px);max-width:1280px;margin:0 auto;display:flex;align-items:baseline;gap:var(--sp-5);flex-wrap:wrap}.landing .l-footer nav{display:flex;gap:var(--sp-4);flex-wrap:wrap}.landing .l-footer a{color:var(--text-dim);text-decoration:none;font-size:var(--fs-sm)}.landing .l-footer a:hover{color:var(--paper)}.landing .l-footer .l-fineprint{margin:0 0 0 auto}.landing .reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}.landing .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.landing .reveal{opacity:1;transform:none;transition:none}}@media (max-width: 1020px){.landing .method-grid,.landing .product-grid,.landing .audience-grid{grid-template-columns:1fr 1fr}.landing .side-a .side-a-list{column-count:1}}@media (max-width: 680px){.landing .method-grid,.landing .product-grid,.landing .audience-grid{grid-template-columns:1fr}.landing .l-nav nav a[href^="#"]:not(.l-cta){display:none}.landing .l-cat{display:none}.landing .sleeve-bottom{flex-direction:column;align-items:stretch}.landing .record{align-self:center}.landing .l-footer .l-fineprint{margin-left:0}}:root{color-scheme:dark;--surface-0:#0a0d16;--surface-1:#0d43d6;--surface-2:#082c90;--line:rgba(255,255,255,.52);--surface-3:#10162b;--text:#ffffff;--text-dim:#cfe0ff;--brand:#ff7a1a;--loop: rgb(255 122 26 / .22);--sp-1:4px;--sp-2:8px;--sp-3:14px;--sp-4:22px;--sp-5:34px;--sp-6:52px;--fs-xs:11px;--fs-sm:12.5px;--fs-md:15px;--fs-lg:20px;--fs-xl:34px;--fs-hero:52px;--r-sm:0px;--r-md:0px;--r-pill:0px;--font-display:"Anton",Impact,sans-serif;--font-body:"Libre Franklin","Franklin Gothic Medium",sans-serif;--bg:var(--surface-0);--panel:var(--surface-1);--panel-2:var(--surface-2);--border:var(--line);--ink:var(--text);--ink-dim:var(--text-dim);--accent:var(--brand);--ink-faint:#b7c9f7;--accent-text:#ffbb82;--accent-ink:#160c02;--paper:#ffffff;--wash:rgba(4,16,54,.45);--tour-overlay:#041036;--line-on-ink:rgba(255,255,255,.52);--error:#e02420;--error-text:#ff5a56;--root:#ff7a1a;--third:#39d5c9;--fifth:#7c9bff;--chord-other:#f06595;--scale:#9aa3b5;--ok:#9bd653;--warn:#f06595;--motif:#ffffff;--fret:#8a93a5;--nut:#d9cbb3;--string:#c9ced9;--wood:#1c1510;--box-1:#ffd23f;--box-2:#4fe38a;--box-3:#ff6ad5;--box-4:#59c7ff;--box-5:#c78bff}:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.label-voice{font-family:var(--font-body);font-weight:800;font-size:10.5px;letter-spacing:3px;text-transform:uppercase}html,body,#root{height:100%;margin:0;font-family:var(--font-body)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}.mt-root{background:var(--bg);color:var(--ink);min-height:100%;font-family:var(--font-body);padding:26px clamp(14px,4vw,40px);box-sizing:border-box}.mt-root *{box-sizing:border-box}.mt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:22px;border-bottom:1.5px solid var(--border);padding-bottom:18px}.mt-head h1{margin:0;font-size:15px;font-weight:800;letter-spacing:1px;line-height:1;font-family:var(--font-body);font-style:normal;text-transform:lowercase}.sub{margin:8px 0 0;color:var(--ink-faint);font-size:12.5px}.legend-states{display:flex;gap:14px;flex-wrap:wrap}.legend-states .lg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-dim)}.legend-states .sw{width:15px;height:15px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px #0008}.legend-states .sw.chord.root{background:var(--root)}.legend-states .sw.chord.third{background:var(--third)}.legend-states .sw.chord.fifth{background:var(--fifth)}.legend-states .sw.chord.other{background:var(--chord-other)}.legend-states .sw.scale{background:var(--scale)}.legend-states .sw.both{background:var(--root);box-shadow:0 0 0 2.6px var(--motif)}.panel{background:var(--wash);border:1.5px solid var(--border);border-radius:0;padding:16px 18px;margin-bottom:24px}.field{display:flex;flex-direction:column;gap:7px}.field>span{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:3px;color:var(--ink-faint)}.field.wide{flex:1 1 100%;margin-bottom:6px}.panel input[type=text],.panel input:not([type=range]):not([type=checkbox]){width:100%}.login{max-width:420px;margin:40px auto}.login h1{margin:0 0 var(--sp-4);font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-.5px;font-size:clamp(30px,4vw,48px)}.login label{display:block;margin:0 0 14px;font-size:10.5px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--ink-faint)}.login input{display:block;width:100%;margin-top:5px;background:transparent;border:1.5px solid var(--line);color:var(--ink);border-radius:0;padding:11px 13px;font-family:var(--font-body);font-size:15px;outline:none}.login input:focus{border-color:var(--accent)}.login button[type=submit]{background:var(--accent);border:none;color:var(--accent-ink);border-radius:0;padding:13px 22px;font-family:var(--font-body);font-weight:800;font-size:11.5px;letter-spacing:3px;text-transform:uppercase;cursor:pointer}.login button[type=submit]:disabled{opacity:.5;cursor:default}.error{color:var(--error-text)}.terms-link{margin-top:18px;font-size:13px}.terms{max-width:640px;font-size:var(--fs-md);line-height:1.7}.terms h1{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(30px,4vw,48px);letter-spacing:-.5px}.terms li{margin:8px 0}.field input,.field select{background:transparent;border:1.5px solid var(--line);color:var(--ink);border-radius:0;padding:11px 13px;font-family:var(--font-body);font-size:15px;outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.field input[type=range],.dock-volume input[type=range],.dock-tempo input[type=range]{padding:0;accent-color:var(--accent);height:26px;border:none;background:transparent}.key-badge{display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1.5px solid var(--line);border-radius:0;padding:9px 13px}.key-badge strong{font-size:15px}.key-badge em{font-style:normal;font-size:11px;color:var(--ink-dim)}.key-badge em.flag{color:var(--warn)}.presets{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 16px}.chip{background:transparent;border:1.5px solid var(--line);color:var(--text-dim);border-radius:0;padding:7px 13px;font-family:var(--font-body);font-weight:600;font-size:12px;cursor:pointer;transition:.15s}.chip:hover{border-color:var(--accent);color:var(--ink)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:800}.chip.ghost-chip{border-style:dashed}.motif-chips{display:flex;gap:8px;flex-wrap:wrap}.row{display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.row .field{min-width:120px}.seg{display:flex;border:1.5px solid var(--line);border-radius:0;overflow:hidden}.seg button{background:transparent;border:none;color:var(--text-dim);padding:10px 16px;font-family:var(--font-body);font-weight:600;font-size:13px;cursor:pointer;transition:.15s}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:800}.field.check{flex-direction:row;align-items:center;gap:9px}.field.check input{width:17px;height:17px;accent-color:var(--accent)}.field.check span{font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}.card{background:var(--wash);border:1.5px solid var(--border);border-radius:0;padding:16px 16px 8px}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}.card-head h2{margin:0;font-size:34px;font-weight:400;letter-spacing:0;font-family:var(--font-display);font-style:normal;text-transform:uppercase}.card-head h2.chord{text-transform:none}.card-head h2.warn{color:var(--warn)}.notes{display:flex;gap:7px;color:var(--ink-dim);font-size:12.5px;flex-wrap:wrap;justify-content:flex-end}.notes span{color:var(--ink)}.hint{margin:0 0 6px;font-size:11px;color:var(--warn)}.empty{color:var(--ink-dim);grid-column:1/-1;text-align:center;padding:40px}.dot.hl circle{filter:brightness(1.25)}.dot.target text{font-weight:700}.transport{display:flex;align-items:center;gap:16px}.jam-status{margin:0;color:var(--text-dim);font-size:var(--fs-sm)}.layer-controls{display:flex;flex-wrap:wrap;gap:26px;align-items:center;min-width:0}.layer-controls .layer{display:flex;align-items:center;gap:9px}.layer-controls .layer,.layer-controls .layer label{min-width:0}.layer-controls .layer label{display:flex;align-items:center;gap:9px;cursor:pointer}.layer-controls .layer span{font-weight:800;font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim)}.layer-controls input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:15px;height:15px;border:1.5px solid var(--line);background:transparent;display:grid;place-items:center;cursor:pointer}.layer-controls input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.layer-controls input[type=checkbox]:checked:after{content:"✕";color:var(--accent-ink);font:800 10px/1 var(--font-body)}.layer-controls select{min-width:0;flex:1 1 auto;max-width:100%;background:transparent;border:1.5px solid var(--line);color:var(--paper);border-radius:0;padding:6px 8px;font:600 11px/1.2 var(--font-body);letter-spacing:1px;text-transform:uppercase}.layer-controls select:focus{border-color:var(--accent)}.layer-controls select option{background:var(--surface-2)}.layer-controls .field.boxes{gap:5px}.layer-controls .field.boxes .seg button{padding:6px 11px;font-size:12px}.layer-controls .field.boxes .seg button.on{color:#12140d}.layer-controls .field.boxes .seg button[data-box="1"].on{background:var(--box-1)}.layer-controls .field.boxes .seg button[data-box="2"].on{background:var(--box-2)}.layer-controls .field.boxes .seg button[data-box="3"].on{background:var(--box-3)}.layer-controls .field.boxes .seg button[data-box="4"].on{background:var(--box-4)}.layer-controls .field.boxes .seg button[data-box="5"].on{background:var(--box-5)}.layer-controls .field.boxes .seg button:disabled{opacity:.4;cursor:default}.boardwrap{border:1.5px solid var(--line-on-ink);background:var(--wash);padding:16px 18px 12px}.board-cap{display:flex;gap:var(--sp-3);flex-wrap:wrap;color:var(--text-dim);margin-bottom:12px}.board-cap .chord{text-transform:none}.tour-replay{margin-left:auto;padding:2px 9px;line-height:1.4;align-self:center}.board-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-3);border-top:1px solid var(--line-on-ink);padding-top:var(--sp-3)}.record{width:150px;aspect-ratio:1;border-radius:50%;flex:0 0 auto;border:none;cursor:pointer;background:repeating-radial-gradient(circle at 50% 50%,#0a0a0c 0,#0a0a0c 2.5px,#17171c 2.5px,#17171c 5px);display:grid;place-items:center;padding:0;box-shadow:0 22px 44px -16px #000000b3}.record:disabled{cursor:default;opacity:.6}.record .label-c{width:58%;aspect-ratio:1;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;align-content:center;text-align:center;font-weight:800;font-size:9.5px;line-height:1.3;letter-spacing:1.5px}.record .play{display:block;font-size:22px;line-height:1;margin-bottom:2px}.player-root{min-height:100%;color:var(--paper);font-family:var(--font-body);position:relative;background:linear-gradient(160deg,var(--surface-1) 0%,#0a35ab 55%,var(--surface-2) 100%)}.player-root *{box-sizing:border-box}.player-root:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.13;z-index:0;background-image:radial-gradient(rgba(255,255,255,.6) .5px,transparent .6px);background-size:3px 3px;mix-blend-mode:overlay}.player-root>*{position:relative;z-index:1}.p-shell{max-width:1440px;margin:0 auto;padding:0 clamp(16px,4vw,52px)}.p-masthead{border-bottom:1.5px solid var(--line)}.p-masthead .p-shell{display:flex;justify-content:space-between;align-items:center;padding-top:14px;padding-bottom:14px}.p-wordmark{font-weight:800;font-size:15px;letter-spacing:1px;text-transform:lowercase}.p-masthead nav{display:flex;gap:20px;align-items:center}.p-masthead nav a{color:var(--paper);text-decoration:none}.p-masthead nav a:hover{color:var(--accent-text)}.p-cat{cursor:default;color:var(--ink-faint)}.p-titleband{border-bottom:1.5px solid var(--line);margin-bottom:var(--sp-4)}.p-titleblock{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;padding-top:var(--sp-5);padding-bottom:26px}.eyebrow{margin:0 0 12px;color:var(--accent-text)}.p-titleblock h1{margin:0;font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(38px,5vw,64px);line-height:.95;letter-spacing:-.5px;transform:rotate(-1.5deg);transform-origin:left bottom}.p-meta{margin:0;color:var(--ink-faint);text-align:right;line-height:2}.p-meta a{color:var(--accent-text);text-decoration:none}.p-meta a:hover{color:var(--paper)}.p-keyflip{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;color:var(--ink-faint);cursor:pointer}.p-keyflip .active{color:var(--paper)}.p-keyflip:hover{color:var(--accent-text)}.p-body{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:60px}.chord-strip{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:stretch;gap:var(--sp-3)}.chord-strip .sym{font-family:var(--font-display);font-size:var(--fs-xl);line-height:1;display:block}.chord-strip .roman{color:var(--ink-faint);font-size:var(--fs-sm);display:block;margin-top:var(--sp-1)}.chord-strip .tag{display:block;padding:0;margin-top:var(--sp-2);font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--ink-faint)}.strip-side{background:transparent;border:1.5px solid var(--line-on-ink);border-radius:0;padding:var(--sp-3) var(--sp-4);color:var(--ink);font-family:var(--font-body);cursor:pointer;text-align:left;transition:border-color .15s;min-width:0}.strip-prev .sym{color:var(--ink-faint)}.strip-next{border-style:dashed}.strip-side:hover{border-color:var(--paper)}.strip-next .tag{color:var(--accent-text)}.strip-next.prelight{border-color:var(--accent);color:var(--ink)}.strip-current{position:relative;background:var(--surface-0);color:var(--paper);border:1.5px solid var(--surface-0);border-radius:0;padding:var(--sp-3) var(--sp-4);text-align:left;min-width:0;box-shadow:8px 8px 0 var(--accent);animation:beat-press .45s ease-out;display:flex;align-items:flex-end;gap:var(--sp-3)}.strip-current .sym{font-size:var(--fs-hero)}.card-left{flex:0 0 33%;min-width:0}.card-metro{flex:0 1 50%;max-width:50%;min-width:0;margin-left:auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);column-gap:var(--sp-1)}.card-metro .beat-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--sp-2);min-height:78px;min-width:0}.card-metro .mt-count{min-width:0;min-height:15px;min-height:1lh;font-size:var(--fs-sm)}.card-metro .pip{width:100%;min-width:2px;max-width:8px;height:26px}.card-metro .pip-beat{height:44px}.card-metro .pip-bar{height:62px}@keyframes beat-press{0%{box-shadow:11px 11px 0 var(--accent)}to{box-shadow:8px 8px 0 var(--accent)}}@media (prefers-reduced-motion: reduce){.strip-current{animation:none}}@media (max-width: 680px){.strip-current{flex-direction:column;align-items:stretch}.card-left,.card-metro{flex:none;max-width:none;margin-left:0}.chord-strip:not(.chord-strip--compact){grid-template-columns:1fr 1fr}.chord-strip:not(.chord-strip--compact) .strip-current{grid-column:1 / -1;order:-1}}.player-dock{display:flex;gap:var(--sp-5);align-items:center;background:var(--wash);border:1.5px solid var(--line);padding:var(--sp-4)}.dock-main{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.dock-row{display:flex;justify-content:flex-start;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.dock-right{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-left:auto}.dock-metro{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.dock-metro .lab{color:var(--ink-faint)}.dock-volume{display:flex;align-items:center;gap:var(--sp-2)}.dock-volume input[type=range]{width:150px}.vol-mute{min-width:40px}.dock-tempo{display:flex;align-items:center;gap:var(--sp-2);margin-right:auto}.dock-tempo input[type=range]{width:120px}@media (max-width: 680px){.dock-metro,.dock-right{flex-direction:column;align-items:stretch}.dock-tempo{order:-1;margin-right:0}.dock-tempo input[type=range]{flex:1;min-width:0;width:auto}.dock-right{margin-left:0;width:100%}.dock-volume input[type=range]{flex:1;min-width:0;width:auto}.player-dock{flex-direction:column;align-items:stretch}.player-dock .record{align-self:center}}.progress{display:flex;flex-direction:column;gap:var(--sp-2)}.progress-bar{position:relative;height:14px;background:transparent;border:1.5px solid var(--line);cursor:pointer;touch-action:none}.progress-fill{position:absolute;inset:0 auto 0 0;background:var(--accent);pointer-events:none}.loop-region{position:absolute;inset:0 auto 0 auto;top:0;bottom:0;background:var(--loop);pointer-events:none}.section-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--line);pointer-events:none}.playhead{position:absolute;top:-4px;bottom:-4px;width:3px;background:var(--accent);transform:translate(-50%);pointer-events:none}.progress-label{display:flex;gap:var(--sp-2);align-items:center;color:var(--text-dim);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:3px}.loop-badge{color:var(--accent);font-size:var(--fs-md)}.crate{min-height:100%;background:var(--surface-0);color:var(--paper);font-family:var(--font-body)}.crate *{box-sizing:border-box}.crate-band{border-bottom:1.5px solid var(--line)}.crate-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;padding-top:var(--sp-5);padding-bottom:26px}.crate-hd h1{margin:0;font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(38px,5vw,64px);line-height:.95;letter-spacing:-.5px;transform:rotate(-1.5deg);transform-origin:left bottom}.account{display:flex;gap:14px;align-items:center}.account .credits{border:1.5px solid var(--line);color:var(--text-dim);padding:7px 13px}.account a,.account button{background:transparent;border:1.5px solid var(--accent);color:var(--accent);font:800 10.5px/1 var(--font-body);letter-spacing:3px;text-transform:uppercase;padding:10px 14px;text-decoration:none;cursor:pointer}.account a:hover,.account button:hover{background:var(--accent);color:var(--accent-ink)}.crate-shell{max-width:1100px;margin:0 auto;padding:0 clamp(16px,4vw,52px) 60px}.side{margin-top:var(--sp-5)}.side-hd{border-top:2px solid var(--paper);padding:10px 0 14px;margin:0;color:var(--paper);font-size:12px}.sleeves{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.sleeve{aspect-ratio:1;border:1.5px solid var(--line);color:var(--paper);background:linear-gradient(160deg,var(--surface-1) 0%,var(--surface-2) 100%);position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:16px;overflow:hidden}.sleeve:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.13;background-image:radial-gradient(rgba(255,255,255,.6) .5px,transparent .6px);background-size:3px 3px;mix-blend-mode:overlay}.sleeve:hover,.sleeve:focus-within{border-color:var(--accent)}.sleeve-link{position:absolute;top:0;right:0;bottom:0;left:0}.sleeve .cat{color:var(--text-dim);display:flex;justify-content:space-between}.sleeve-title{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:26px;line-height:1;max-width:9ch;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sleeve-meta{color:var(--ink-faint);font-size:11px;letter-spacing:1px;line-height:1.5}.sleeve-meta.status{color:var(--accent-text)}.sleeve.mine.failed .sleeve-meta.status{color:var(--error-text)}.sleeve.pressing .sleeve-title{opacity:.55}.sleeve-rename{background:transparent;border:0;border-bottom:1.5px solid var(--accent);color:inherit;font:inherit;width:100%;padding:0;position:relative}.sleeve-rename-btn{background:none;border:0;padding:0;color:var(--ink-faint);cursor:pointer;align-self:start;font:inherit;letter-spacing:inherit;position:relative}.sleeve-rename-btn:hover{color:var(--accent-text)}.sleeve-actions{align-self:start;display:flex;flex-wrap:wrap;gap:12px;position:relative}.sleeve-rename-btn.btn-danger{color:var(--error-text)}.sleeve-rename-btn.btn-danger:hover{color:var(--error-text);text-decoration:underline}.sleeve .hole{pointer-events:none;position:absolute;right:-34px;top:50%;transform:translateY(-50%);width:96px;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#0a0a0c 0,#0a0a0c 2px,#17171c 2px,#17171c 4px);opacity:.9}.sleeve.mine{background:var(--surface-3)}.empty-slot{aspect-ratio:1;border:1.5px dashed var(--line);display:grid;place-items:center;color:var(--ink-faint);text-align:center;padding:16px;font-style:italic;font-size:13px;line-height:1.5}.mt-root.review-entry{min-height:0;padding-bottom:0;margin-bottom:12px}.review-entry__link{color:var(--brand);text-decoration:none;font-size:var(--fs-sm)}.review-entry__link:hover{text-decoration:underline}.editor__row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:8px}.editor__row input[type=number]{width:6rem}.tag{display:inline-block;padding:2px 8px;border-radius:0;font-size:11px}.banner{padding:10px 12px;border-radius:0;font-size:13px;margin-bottom:12px}.banner--error{background:#e0242024;color:var(--error-text)}.waveform{position:relative;height:48px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;touch-action:none;overflow:hidden;flex:1;min-width:0}.waveform__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.waveform__fallback{position:absolute;top:45%;right:0;bottom:45%;left:0;background:var(--line);border-radius:var(--r-pill)}.waveform__tick{position:absolute;top:0;bottom:0;width:7px;margin-left:-3px;cursor:col-resize}.waveform__tick:after{content:"";position:absolute;top:0;right:3px;bottom:0;left:3px;background:#ff7a1a80}.waveform__loop-handle{position:absolute;top:-2px;bottom:-2px;width:10px;margin-left:-5px;background:var(--brand);border-radius:0;cursor:col-resize;opacity:.85}.waveform__playhead{position:absolute;top:-2px;bottom:-2px;width:3px;background:var(--brand);border-radius:0;transform:translate(-50%);pointer-events:none}.review-band{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;gap:var(--sp-3);background:var(--wash);border:1.5px solid var(--line);border-radius:var(--r-md);border-top:2px solid var(--paper);padding:var(--sp-3) var(--sp-4)}.review-band__row{display:flex;align-items:center;gap:var(--sp-3)}.chip--play{font-size:var(--fs-md);min-width:44px}.review-band__time{display:flex;flex-direction:column;font-size:var(--fs-sm);min-width:44px;text-align:right}.review-band__time-total{color:var(--text-dim)}.chord-strip--compact .strip-current .sym{font-size:var(--fs-xl)}.chord-strip--compact .strip-current{min-width:120px;padding:var(--sp-2) var(--sp-4);font:inherit;cursor:pointer;display:block}.chord-strip--compact .strip-side .sym{font-size:var(--fs-lg)}.chord-strip--compact .strip-side{padding:var(--sp-2) var(--sp-3)}.chord-strip--compact .strip-current .beat{position:absolute;top:var(--sp-2);right:var(--sp-2);font-family:var(--font-display);letter-spacing:2px;color:var(--accent);font-size:var(--fs-md)}.bar-chart{display:flex;flex-direction:column;gap:var(--sp-2);margin:var(--sp-4) 0}.bar-chart__rowwrap{display:flex;align-items:stretch;gap:var(--sp-2)}.bar-chart__barno{width:2.4em;flex:none;color:var(--text-dim);font-size:var(--fs-xs);display:flex;align-items:center;justify-content:flex-end}.bar-chart__row{display:flex;gap:2px;align-items:stretch;width:calc(100% * var(--row-beats) / var(--full-beats))}.chord-cellwrap{position:relative;display:flex;min-width:0}.chord-cell{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:12px 4px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);color:var(--ink);font-family:inherit;font-size:var(--fs-md);cursor:pointer;transition:border-color .15s,background .15s}.chord-cell:hover{border-color:var(--brand)}.chord-cell.is-selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.chord-cell.is-playing{background:#ff7a1a2e;border-color:var(--brand)}.chord-cell--nc{color:var(--text-dim);background:repeating-linear-gradient(45deg,var(--panel-2),var(--panel-2) 6px,rgb(255 255 255 / .12) 6px,rgb(255 255 255 / .12) 8px)}.chord-cell--unknown{border-color:#ff7a1a80}.chord-cell--tied{border-left-style:dashed}.chord-cell__edge{position:absolute;right:-4px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:2}.chord-cell__edge:hover:after{content:"";position:absolute;top:0;right:3px;bottom:0;left:3px;background:var(--brand);border-radius:0}.drag-tip{position:fixed;z-index:30;transform:translate(-50%);background:var(--surface-2);border:1.5px solid var(--accent);border-radius:var(--r-sm);padding:3px 9px;font-size:var(--fs-sm);pointer-events:none}.bar-chart__section{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3)}.bar-chart__section-name{background:transparent;border:none;border-bottom:1px dashed var(--line);color:var(--brand);font-family:inherit;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:1px;padding:2px 0;outline:none;width:12em}.bar-chart__section-name:focus{border-bottom-color:var(--brand)}.bar-chart__section-del{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-md)}.bar-chart__section-del:hover{color:var(--ink)}.bar-chart__addsec{background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;opacity:0;transition:opacity .15s;flex:none}.bar-chart__rowwrap:hover .bar-chart__addsec{opacity:1}.chord-pop{background:var(--surface-2);border:1.5px solid var(--accent);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin:var(--sp-1) 0 var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.chord-pop__form{display:flex;gap:var(--sp-2)}.chord-pop__input{flex:0 1 12em;background:var(--surface-1);border:1px solid var(--line);color:var(--ink);border-radius:var(--r-sm);padding:9px 12px;font-family:inherit;font-size:var(--fs-lg);outline:none}.chord-pop__input:focus{border-color:var(--brand)}.chord-pop__ok{margin:0;color:var(--ok);font-size:var(--fs-sm)}.chord-pop__warn{margin:0;color:var(--brand);font-size:var(--fs-sm)}.chord-pop__chips,.chord-pop__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}@media (max-width: 600px){.chord-pop{position:fixed;left:0;right:0;bottom:0;z-index:20;border-radius:var(--r-md) var(--r-md) 0 0;border-bottom:none;border-top:2px solid var(--paper);box-shadow:none}}.action-bar{position:sticky;bottom:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;background:var(--wash);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-4);border-top:2px solid var(--paper);box-shadow:none}.action-bar__status{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}.action-bar__saved{color:var(--ok)}.action-bar__warn{color:var(--brand)}.action-bar__info{color:var(--text-dim)}.action-bar__fail{color:var(--error-text)}.action-bar__problems{background:none;border:none;color:var(--error-text);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;text-decoration:underline;padding:0;text-align:left}.action-bar__buttons{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.chip--confirm{background:var(--ok);border-color:var(--ok);color:#0c1500;font-weight:700}.chip--confirm:disabled,.chip--primary:disabled,.chip:disabled{opacity:.45;cursor:default}.adv-panel{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:0;margin-bottom:var(--sp-3)}.adv-panel>summary{cursor:pointer;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--text-dim);list-style:none}.adv-panel>summary:before{content:"▸ ";color:var(--brand)}.adv-panel[open]>summary:before{content:"▾ "}.adv-panel[open]>summary{color:var(--ink);border-bottom:1px solid var(--line)}.adv-panel>:not(summary){margin-left:var(--sp-4);margin-right:var(--sp-4)}.adv-panel>:last-child{margin-bottom:var(--sp-3)}.adv-panel__hint{color:var(--text-dim);font-size:var(--fs-xs);margin-top:var(--sp-3)}.tempo-spark{width:100%;height:60px;display:block;margin-top:var(--sp-2)}.tempo-spark__pt{fill:var(--surface-2);stroke:var(--accent);stroke-width:2;cursor:pointer}.tempo-spark__pt.is-selected{fill:var(--brand)}.keywarn{margin:0 0 10px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--wash);font-size:12.5px;display:flex;gap:12px;align-items:center}.keywarn button{background:none;border:1px solid var(--accent);border-radius:3px;padding:3px 9px;color:var(--accent-text);font:inherit;cursor:pointer}.keyscale-row{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-dim);margin:var(--sp-3) 0}.keyscale-row label{display:flex;align-items:center;gap:var(--sp-2)}.keyscale-row select{background:var(--panel-2);border:1px solid var(--border);color:var(--ink);border-radius:var(--r-sm);padding:7px 10px;font-family:inherit;font-size:var(--fs-sm);outline:none}.keyscale-row select:focus{border-color:var(--accent)}.hint-q{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;color:var(--text-dim);font-size:var(--fs-xs);cursor:help;flex:none}.editor-v2{max-width:1100px;margin:0 auto;padding:var(--sp-4) clamp(14px,4vw,40px);display:flex;flex-direction:column;background:var(--surface-0);color:var(--text);min-height:100%;font-family:var(--font-body)}.editor-v2 *{box-sizing:border-box}.editor-v2__head{display:flex;align-items:baseline;gap:var(--sp-4);flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:var(--sp-3);margin-bottom:var(--sp-3)}.editor-v2__head h1{margin:0;font-family:var(--font-body);font-size:15px;font-weight:800;letter-spacing:1px;text-transform:lowercase;font-style:normal}.editor-v2__back{color:var(--brand);text-decoration:none;font-size:var(--fs-sm);flex:none}.editor-v2__back:hover{text-decoration:underline}.editor-v2__guide{color:var(--text-dim);font-size:var(--fs-sm);margin:0 0 var(--sp-3)}.login .linklike{background:none;border:0;padding:var(--sp-2) 0;color:var(--accent-text);font:inherit;text-decoration:underline;cursor:pointer}.screen-h1{margin:0 0 var(--sp-4);font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-.5px;font-size:clamp(30px,4vw,48px)}.eyebrow--error{color:var(--error-text)}.btn-primary{background:var(--accent);border:1.5px solid var(--accent);color:var(--accent-ink);font:800 11.5px/1 var(--font-body);letter-spacing:3px;text-transform:uppercase;padding:13px 22px;cursor:pointer;transition:filter .15s}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--text-dim);font:800 10.5px/1 var(--font-body);letter-spacing:2px;text-transform:uppercase;padding:9px 13px;cursor:pointer;transition:.15s}.btn-ghost:hover{border-color:var(--accent);color:var(--ink)}.btn-ghost:disabled{opacity:.45;cursor:default}.btn-ghost.btn-danger{border-color:var(--error);color:var(--error-text)}.btn-ghost.btn-danger:hover{background:var(--error);border-color:var(--error);color:var(--paper)}span.chip{cursor:default}.admin{padding:var(--sp-5) 0 60px}.admin-section{margin-bottom:var(--sp-5)}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-3);margin:var(--sp-3) 0 var(--sp-4)}.stat-tile{border:1.5px solid var(--line);padding:var(--sp-3);text-align:center}.stat-tile__count{display:block;font-family:var(--font-display);font-size:var(--fs-xl);line-height:1}.stat-tile__label{display:block;margin-top:var(--sp-2);color:var(--ink-faint)}.table-scroll{overflow-x:auto;margin-top:var(--sp-3)}.admin table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.admin th,.admin td{text-align:left;padding:var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap}.admin th{color:var(--ink-faint)}.admin-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.admin-actions input{background:transparent;border:1.5px solid var(--line);color:var(--ink);padding:8px 10px;font-family:var(--font-body);font-size:var(--fs-sm);width:7em}.admin-actions input:focus{border-color:var(--accent);outline:none}.admin-actions input.admin-actions__confirm{width:16em;max-width:100%}.upload{max-width:640px;margin:0 auto;padding:var(--sp-5) clamp(16px,4vw,52px) 60px;display:flex;flex-direction:column;gap:var(--sp-4)}.dropzone{display:flex;flex-direction:column;gap:var(--sp-2);border:1.5px dashed var(--line);padding:var(--sp-4);cursor:pointer}.dropzone:hover,.dropzone:focus-within{border-color:var(--accent)}.dropzone__label{color:var(--ink-faint)}.dropzone input[type=file]{color:var(--ink);font-family:var(--font-body);font-size:var(--fs-sm)}.dropzone__hint{color:var(--ink-faint);font-size:var(--fs-sm);font-style:italic}.costed-choice{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;border:1.5px solid var(--line);padding:var(--sp-3) var(--sp-4)}.track-status{max-width:520px;margin:0 auto;padding:var(--sp-6) clamp(16px,4vw,52px) 60px}.track-status__back{display:inline-block;margin-top:var(--sp-4);color:var(--accent-text);text-decoration:none}.track-status__back:hover{text-decoration:underline}.pip{flex:0 0 auto;width:4px;height:10px;background:var(--ink-faint);opacity:.35;transition:opacity .12s ease,background-color .12s ease}.pip-beat{height:16px;opacity:.55}.pip-bar{height:22px;opacity:.85;background:var(--paper)}.pip-on{opacity:1;background:var(--accent)}.mt-count{flex:0 0 auto;min-width:14px;text-align:center;font-family:var(--font-body);font-size:var(--fs-xs);color:var(--ink-faint);font-variant-numeric:tabular-nums}.mt-count-on{color:var(--paper);font-weight:800}.mt-controls{display:flex;align-items:center;gap:var(--sp-3);flex:0 0 auto;flex-wrap:wrap}@media (prefers-reduced-motion: reduce){.pip{transition:none}}@media (max-width: 680px){.mt-controls{flex-wrap:wrap;gap:var(--sp-2);flex:1 1 100%;justify-content:flex-start}.mt-controls .seg button{padding:8px 11px}.mt-click{padding:6px 10px}}
