:root{--field: #eef1e4;--field-2: #f6f8ec;--field-3: #e2e7d1;--ink: #22301f;--ink-2: #46543d;--ink-3: #75816a;--line: rgba(34, 48, 31, .17);--line-2: rgba(34, 48, 31, .085);--fuchsia: #c93e5c;--fuchsia-2: #ad2f4b;--spruce: #2e6b4f;--spruce-2: #3d8a67;--gorse: #b98617;--vermilion: var(--fuchsia);--vermilion-2: var(--fuchsia-2);--viridian: var(--spruce);--viridian-2: var(--spruce-2);--amber: var(--gorse);--paper: #eef1e4;--paper-deep: #e2e7d1;--sheet: #fcfaf0;--ink-line: rgba(34, 48, 31, .16);--shadow-card: 0 1px 0 rgba(255, 255, 255, .65) inset, 0 14px 30px -24px rgba(40, 60, 36, .5);--shadow-lift: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 20px 42px -26px rgba(40, 60, 36, .55);--shadow-page: 0 26px 54px -30px rgba(40, 60, 36, .55);--display: "Bricolage Grotesque", "Hanken Grotesk", ui-sans-serif, sans-serif;--ui: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--mono: "DM Mono", ui-monospace, "SFMono-Regular", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--field);color:var(--ink);font-family:var(--ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(242,227,175,.5),transparent 24%),radial-gradient(120% 52% at 16% 108%,rgba(46,107,79,.13),transparent 62%),radial-gradient(130% 46% at 84% 112%,rgba(46,107,79,.18),transparent 64%),radial-gradient(100% 32% at 50% 114%,rgba(30,77,55,.2),transparent 66%)}button{cursor:pointer;font-family:inherit}h1,h2,h3,p,ul{margin:0}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.13 0 0 0 0 0.11 0 0 0 0 0.08 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.32'/%3E%3C/svg%3E")}:focus-visible{outline:2px solid var(--fuchsia);outline-offset:2px;border-radius:4px}.app{position:relative;z-index:2;max-width:1440px;margin:0 auto;padding:clamp(16px,2.4vw,34px) clamp(16px,3vw,44px) clamp(28px,4vw,52px)}.masthead{position:relative;z-index:30;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1.5px solid var(--ink)}.wordmark{display:flex;align-items:baseline;gap:12px;min-width:0}.whistle-mark{width:22px;height:30px;align-self:center;fill:none;stroke:var(--ink);stroke-width:1.4}.whistle-mark circle{fill:var(--ink);stroke:none}.whistle-mark .mark-mouth{fill:var(--fuchsia);stroke:none}.wordmark h1{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:clamp(32px,4.6vw,52px);line-height:.9;letter-spacing:-.025em}.wordmark-tag{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-3);font-weight:700;white-space:nowrap}.wordmark h1 a{color:inherit;text-decoration:none}.masthead-nav{display:flex;gap:20px;align-self:flex-end;padding-bottom:6px}.masthead-nav a{position:relative;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:var(--ink-3);text-decoration:none;padding-bottom:5px;transition:color .15s ease}.masthead-nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--fuchsia);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.2,.7,.2,1)}.masthead-nav a:hover{color:var(--ink)}.masthead-nav a:hover:after{transform:scaleX(.4)}.masthead-nav a.active{color:var(--ink)}.masthead-nav a.active:after{transform:scaleX(1)}.masthead-kicker{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--fuchsia-2);font-weight:800}.masthead-right{display:flex;align-items:flex-end;gap:18px}.masthead-account{position:relative;align-self:flex-end;padding-bottom:3px}.signin-link{border:0;background:none;padding:0 0 5px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:var(--fuchsia-2)}.signin-link:hover{color:var(--fuchsia)}.avatar-btn{position:relative;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--ink);background:var(--field-2);color:var(--ink);font-family:var(--display);font-weight:800;font-size:14px;display:grid;place-items:center}.avatar-pro{position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:var(--gorse);border:2px solid var(--field)}.account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:200px;background:var(--field-2);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lift);padding:10px;display:grid;gap:6px;justify-items:start}.account-menu-id{display:grid;gap:1px;padding:2px 4px 8px;border-bottom:1px solid var(--line-2);width:100%}.account-menu-id strong{font-size:13px}.account-menu-id span{font-size:11px;color:var(--ink-3);overflow-wrap:anywhere}.account-menu-item{border:0;background:none;padding:5px 4px;font-size:13px;font-weight:700;color:var(--ink-2)}.account-menu-item:hover{color:var(--ink)}.account-menu-item.is-upgrade{color:var(--fuchsia-2)}.pro-badge{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--gorse);color:#fffbef;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:800}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#22301f59;animation:fade-in .2s ease both}.modal-card{width:min(430px,100%);background:var(--field-2);border:1px solid var(--line);border-radius:12px;padding:22px 24px 20px;box-shadow:var(--shadow-lift);animation:rise .3s cubic-bezier(.2,.7,.2,1) both;display:grid;gap:10px;justify-items:start}.modal-card:focus{outline:none}.modal-card h2{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:24px;letter-spacing:-.01em}.modal-sub{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.modal-reason{margin:0;font-size:13px;font-weight:700;color:var(--fuchsia-2)}.modal-error{margin:0;font-size:12.5px;color:var(--fuchsia-2)}.modal-go{border:0;background:var(--fuchsia);color:#fdf6f2;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:800;letter-spacing:.04em;text-decoration:none;transition:background .15s ease,transform .1s ease}.modal-go:hover{background:var(--fuchsia-2);transform:translateY(-1px)}.modal-go:disabled{opacity:.6;transform:none}.modal-quiet-link{border:0;background:none;padding:0;font-size:12px;font-weight:700;color:var(--ink-3)}.modal-quiet-link:hover{color:var(--ink);text-decoration:underline}.modal-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}.modal-rule{width:100%;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.google-btn{width:100%;border:1.5px solid var(--ink);background:var(--field-2);color:var(--ink);border-radius:9px;padding:10px 16px;font-size:13px;font-weight:800;transition:background .15s ease}.google-btn:hover{background:#fbfcf3}.auth-form{width:100%;display:grid;gap:8px}.auth-form input{font:inherit;font-size:13px;color:var(--ink);background:#fbfcf3;border:1px solid var(--line);border-radius:8px;padding:9px 12px}.auth-form input:focus{outline:none;border-color:var(--ink)}.license-form{margin-top:4px}.pro-features{list-style:none;margin:2px 0;padding:0;display:grid;gap:6px}.pro-features li{font-size:13.5px;line-height:1.4;color:var(--ink-2);padding-left:20px;position:relative}.pro-features li:before{content:"✓";position:absolute;left:0;color:var(--spruce);font-weight:800}.import-box{width:100%;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--ink);background:#fbfcf3;border:1px solid var(--line);border-radius:8px;padding:10px 12px;resize:vertical}.import-box:focus{outline:none;border-color:var(--ink)}.library-import{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fbfcf3;border-radius:999px;padding:6px 14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--ink-2);align-self:center;transition:border-color .15s ease,color .15s ease}.library-import:hover{border-color:var(--ink);color:var(--ink)}.stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(16px,1.6vw,26px);align-items:start;margin-top:clamp(16px,2vw,26px)}.stage-main{display:grid;gap:14px;min-width:0}.stage-side{display:grid;gap:14px;min-width:0;align-content:start}.masthead,.sheet,.controls,.panel{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.sheet{animation-delay:.04s}.controls{animation-delay:.09s}.stage-side .panel:nth-child(1){animation-delay:.12s}.stage-side .panel:nth-child(2){animation-delay:.17s}.stage-side .panel:nth-child(3){animation-delay:.22s}.stage-side .panel:nth-child(4){animation-delay:.27s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.sheet{position:relative;background:var(--sheet);border:1px solid var(--line);border-radius:10px;padding:18px clamp(12px,2vw,26px) 22px;box-shadow:var(--shadow-page);height:clamp(420px,64vh,760px);overflow:auto;color:var(--ink)}.sheet:before,.sheet:after{content:"";position:absolute;width:12px;height:12px;border:1.5px solid var(--ink);opacity:.3;pointer-events:none}.sheet:before{top:9px;right:9px;border-left:0;border-bottom:0}.sheet:after{bottom:9px;left:9px;border-right:0;border-top:0}.sheet-title{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:clamp(20px,2.6vw,30px);letter-spacing:-.01em;text-align:center;margin-bottom:10px;color:var(--ink)}.sheet-paper{width:100%}.sheet-paper svg{display:block;max-width:100%}.sheet-loading{font-size:12px;color:var(--ink-3);text-align:center;margin:8px 0 0}.synth-host{display:none}.count-in{position:sticky;top:30%;height:0;display:flex;justify-content:center;z-index:5;pointer-events:none}.count-in span{font-family:var(--display);font-weight:800;font-size:96px;line-height:1;color:var(--fuchsia);animation:count-pop .45s cubic-bezier(.2,.7,.2,1) both}@keyframes count-pop{0%{transform:scale(.55);opacity:0}40%{opacity:.92}to{transform:scale(1);opacity:.85}}.staff-hidden svg>*:not(.abctab-layer):not(.score-playhead){display:none}.tab-hidden .abctab-layer{display:none}.score-playhead{stroke:var(--fuchsia);stroke-width:2;opacity:.85;pointer-events:none}.abctab-hole.is-covered{fill:var(--ink);stroke:var(--ink);stroke-width:1.2}.abctab-hole.is-open{fill:var(--sheet);stroke:var(--ink);stroke-width:1.3}.abctab-plus{fill:var(--ink-2);font:700 12px var(--ui)}.abctab-letter{fill:var(--ink-2);font:400 10px var(--mono)}.abctab-bar{stroke:var(--ink-line);stroke-width:1}.abctab-col.is-oor{opacity:.35}.sheet-paper svg{cursor:pointer;touch-action:pan-y}.loop-zone{fill:var(--gorse);opacity:.14;stroke:var(--gorse);stroke-opacity:.35;stroke-width:1}.abctab-col{transform-box:fill-box;transform-origin:center}.abctab-col.is-hit{animation:chip-pop .32s cubic-bezier(.2,.7,.2,1)}@keyframes chip-pop{0%{transform:scale(1)}35%{transform:scale(1.22)}to{transform:scale(1)}}.abctab-col.is-hit .is-covered{fill:var(--spruce);stroke:var(--spruce)}.abctab-col.is-hit .is-open{stroke:var(--spruce-2)}.sheet-paper .is-hit{fill:var(--spruce)!important;stroke:var(--spruce)!important}.abctab-col.is-miss{opacity:.4}.abctab-tick{display:none;fill:none;stroke:var(--spruce-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.abctab-col.is-early .abctab-tick--early,.abctab-col.is-late .abctab-tick--late{display:block}.abctab-col.is-octave .is-covered{fill:var(--gorse);stroke:var(--gorse)}.abctab-col.is-octave .is-open{stroke:var(--gorse)}.sheet-paper .is-octave{fill:var(--gorse)!important;stroke:var(--gorse)!important}.abctab-col.is-current .is-covered{fill:var(--fuchsia);stroke:var(--fuchsia)}.abctab-col.is-current .is-open{stroke:var(--fuchsia)}.sheet-paper .is-current{fill:var(--fuchsia)!important;stroke:var(--fuchsia)!important}.controls{background:var(--field-2);border:1px solid var(--line);border-radius:10px;padding:13px 16px;box-shadow:var(--shadow-card);display:grid;gap:13px}.controls-main{display:flex;align-items:center;gap:14px}.play-btn{flex:none;width:50px;height:50px;display:grid;place-items:center;border-radius:50%;border:0;background:var(--fuchsia);color:#fdf6f2;box-shadow:0 0 #c93e5c4d,0 10px 22px -10px #283c2499;transition:transform .1s ease,background .15s ease,box-shadow .3s ease;animation:breathe 3s ease-in-out infinite}.play-btn.is-playing{animation:none}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 #c93e5c47,0 10px 22px -10px #283c2499}50%{transform:scale(1.055);box-shadow:0 0 0 9px #c93e5c00,0 10px 22px -10px #283c2499}}.play-btn:hover{background:var(--fuchsia-2);animation-play-state:paused}.play-btn:active{transform:translateY(1px)}.play-btn svg{margin-left:1px}.ghost-btn{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;border:1px solid var(--line);background:var(--field-2);color:var(--ink-2);transition:border-color .15s ease,color .15s ease}.ghost-btn:hover{border-color:var(--ink);color:var(--ink)}.tempo{flex:1;min-width:0;display:grid;gap:5px}.tempo-head{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.tempo-head strong{color:var(--ink);font-family:var(--mono);font-weight:500;font-size:13px}.controls-aux{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.loop-state{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--ink-3)}.loop-state.is-armed,.loop-state.is-on{color:var(--gorse)}.loop-state .clear{border:0;background:none;color:var(--fuchsia);font-size:16px;line-height:1;padding:0 2px}.toggles{display:flex;gap:8px;flex-wrap:wrap}.input-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--field-2);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--ink-2);transition:border-color .15s ease,color .15s ease,background .15s ease}.input-btn:hover{border-color:var(--ink);color:var(--ink)}.input-btn.is-on{background:var(--spruce);border-color:var(--spruce);color:#f2f7ee}.input-btn.is-live{background:var(--fuchsia);border-color:var(--fuchsia);color:#fdf6f2}.controls-error{margin:0;font-size:12px;color:var(--fuchsia-2)}.panel{background:var(--field-2);border:1px solid var(--line);border-radius:10px;padding:15px 16px 16px;box-shadow:var(--shadow-card)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--line-2)}.panel-head h2{font-family:var(--display);font-optical-sizing:auto;font-weight:700;font-size:17px;letter-spacing:-.01em}.panel-head span,.muted{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.now-panel{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 16px;padding:14px 18px}.now-whistle{width:58px;height:224px}.noww-fipple{fill:var(--fuchsia)}.noww-mouth{fill:#3c0c1859}.noww-tube{fill:#22301f09;stroke:var(--ink-3);stroke-width:1.5}.noww-hole{fill:var(--field-2);stroke:var(--ink-3);stroke-width:1.4;transition:fill .12s ease,stroke .12s ease}.noww-hole.is-covered{fill:var(--ink);stroke:var(--ink)}.noww-plus{fill:var(--ink-3);font:700 13px var(--ui);opacity:0;transition:opacity .12s ease}.noww-plus.is-on{opacity:1;fill:var(--gorse)}.now-note{display:grid;gap:6px;justify-items:start;align-content:center}.now-letter{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:72px;line-height:.9;color:var(--ink-3)}.now-panel.is-live .now-letter{color:var(--ink);animation:letter-pop .26s cubic-bezier(.2,.7,.2,1)}@keyframes letter-pop{0%{transform:translateY(7px) scale(.94);opacity:.35}to{transform:none;opacity:1}}.now-hint{min-height:14px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.kitty-panel{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:16px 18px}.kitty-art{width:88px;height:88px;display:block}img.kitty-art{width:auto;height:116px;max-width:96px;object-fit:contain;image-rendering:pixelated}.kitty-ink{fill:var(--field-3);stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.kitty-ear{fill:var(--fuchsia);opacity:.55;stroke:none}.kitty-eye{fill:var(--ink)}.kitty-nose{fill:var(--fuchsia)}.kitty-line{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round}.kitty-collar{fill:var(--fuchsia);stroke:var(--fuchsia-2);stroke-width:1}.kitty-bubble{position:relative;margin:0;background:#fbfcf3;border:1.5px solid var(--ink);border-radius:12px;padding:10px 13px;font-size:13px;font-weight:600;line-height:1.4;color:var(--ink);animation:bubble-pop .24s cubic-bezier(.2,.7,.2,1) both;transform-origin:left center}.kitty-bubble:before{content:"";position:absolute;left:-7px;top:50%;width:12px;height:12px;background:inherit;border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-50%) rotate(45deg)}@keyframes bubble-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.tuner-field{margin-top:2px}.tuner-source{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.setup-panel .panel-head{align-items:center}.setup-panel .panel-head .input-btn{padding:5px 10px;font-size:11px}.tuner-body{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 14px}.tuner-note{font-family:var(--display);font-optical-sizing:auto;font-weight:700;font-size:46px;line-height:.8;grid-row:span 2;min-width:52px;color:var(--ink-2)}.tuner-note.is-intune{color:var(--spruce)}.tuner-gauge{position:relative;height:30px;border-radius:6px;background:#22301f0d;border:1px solid var(--line-2);overflow:hidden}.tuner-scale{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.tuner-scale .tick{font-size:12px;color:var(--ink-3)}.tuner-scale .center{position:absolute;left:50%;top:4px;bottom:4px;width:2px;background:var(--spruce);transform:translate(-50%);opacity:.5}.tuner-needle{position:absolute;left:50%;top:3px;bottom:3px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--fuchsia);transition:opacity .1s linear,background .15s ease,box-shadow .15s ease}.tuner-needle[data-intune="1"]{background:var(--spruce);box-shadow:0 0 10px #3d8a67cc}.tuner-cents{grid-column:2;font-family:var(--mono);font-size:12px;color:var(--ink-2)}.panel-link{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--fuchsia-2);text-decoration:none;border:0;background:none;padding:0}.panel-link:hover{text-decoration:underline}.setlist-empty{margin:2px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-3);font-style:italic}.setlist-row{position:relative}.setlist-row .tune-card{padding-right:30px}.setlist-remove{position:absolute;top:6px;right:6px;width:20px;height:20px;border:0;background:none;color:var(--ink-3);font-size:15px;line-height:1;border-radius:5px;opacity:0;transition:opacity .15s ease,color .15s ease}.setlist-row:hover .setlist-remove,.setlist-remove:focus{opacity:1}.setlist-remove:hover{color:var(--fuchsia)}.set-toggle{width:21px;height:21px;border:1px solid var(--line);border-radius:50%;background:var(--field-2);color:var(--ink-2);font-size:13px;line-height:1;display:grid;place-items:center;padding:0;transition:border-color .15s ease,color .15s ease,background .15s ease}.set-toggle:hover{border-color:var(--ink);color:var(--ink)}.set-toggle.is-in{background:var(--spruce);border-color:var(--spruce);color:#f2f7ee}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--field-2)}.seg-btn{border:0;background:none;padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--ink-3);transition:background .15s ease,color .15s ease}.seg-btn+.seg-btn{border-left:1px solid var(--line-2)}.seg-btn:hover{color:var(--ink)}.seg-btn.is-on{background:var(--ink);color:var(--field-2)}.hint{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:6px;border:1px solid var(--ink-3);border-radius:50%;font-size:9px;font-weight:700;color:var(--ink-3);cursor:help;position:relative;text-transform:none;letter-spacing:0}.hint:hover:after,.hint:focus:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:210px;background:var(--ink);color:var(--field-2);padding:9px 11px;border-radius:7px;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.01em;white-space:normal;z-index:20;box-shadow:var(--shadow-lift)}.setlist-scroll{max-height:310px;overflow:auto;margin:0 -6px;padding:0 6px}.setlist{list-style:none;margin:0;padding:0;display:grid;gap:7px}.tune-card{width:100%;text-align:left;display:grid;gap:2px;padding:9px 12px;border:1px solid var(--line);border-left:3px solid transparent;border-radius:8px;background:#fbfcf3;color:var(--ink);transition:border-color .15s ease,transform .1s ease,background .15s ease}.tune-card:hover{transform:translate(2px);border-color:var(--ink)}.tune-card.is-active{background:#f4f7e7}.tune-title{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.01em}.tune-card.is-active .tune-title{color:var(--fuchsia-2)}.tune-meta{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}[data-rhythm=reel]{--rhythm: var(--fuchsia)}[data-rhythm=jig]{--rhythm: var(--gorse)}[data-rhythm=polka]{--rhythm: var(--spruce-2)}[data-rhythm=slide]{--rhythm: #5b88c4}[data-rhythm=waltz]{--rhythm: #8f68b8}[data-rhythm=march]{--rhythm: #c07a52}[data-rhythm=air]{--rhythm: #3e9a92}[data-rhythm=hornpipe]{--rhythm: #c76a92}[data-rhythm="slip jig"]{--rhythm: #7ba53e}.tune-card[data-rhythm]{border-left-color:var(--rhythm, transparent)}.rhythm-dot{width:7px;height:7px;border-radius:50%;background:var(--rhythm, var(--ink-3));display:inline-block;margin-right:6px}.practice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{display:grid;justify-items:center;gap:2px;padding:9px 4px;border-radius:8px;background:#22301f0a;border:1px solid var(--line-2)}.stat strong{font-family:var(--display);font-weight:700;font-size:22px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.stat span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:700}.stat--accent strong{color:var(--fuchsia-2)}.field{display:grid;gap:7px;margin-top:13px}.field:first-of-type{margin-top:2px}.field-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700;display:flex;justify-content:space-between}.field-label i{font-style:normal;color:var(--ink-2);font-family:var(--mono);font-size:11px;text-transform:none;letter-spacing:0}.key-row{display:flex;gap:6px;flex-wrap:wrap}.key-chip{min-width:38px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fbfcf3;font-weight:700;font-size:13px;color:var(--ink-2);transition:border-color .15s ease,color .15s ease}.key-chip:hover{border-color:var(--ink)}.key-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--field-2)}.mic-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#22301f59;animation:fade-in .2s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.mic-intro-card{max-width:420px;background:var(--field-2);border:1px solid var(--line);border-radius:12px;padding:22px 24px 20px;box-shadow:var(--shadow-lift);animation:rise .3s cubic-bezier(.2,.7,.2,1) both}.mic-intro-card h2{font-family:var(--display);font-optical-sizing:auto;font-weight:700;font-size:22px;margin-bottom:8px}.mic-intro-card p{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.mic-intro-card p b{color:var(--ink)}.mic-intro-actions{display:flex;align-items:center;gap:14px;margin-top:18px}.mic-intro-go{border:0;background:var(--fuchsia);color:#fdf6f2;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:800;letter-spacing:.04em;transition:background .15s ease,transform .1s ease}.mic-intro-go:hover{background:var(--fuchsia-2);transform:translateY(-1px)}.mic-intro-later{border:0;background:none;padding:0;font-size:12px;font-weight:700;color:var(--ink-3)}.mic-intro-later:hover{color:var(--ink);text-decoration:underline}.run-summary{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#22301f59;animation:fade-in .2s ease both}.run-summary-card{width:min(460px,100%);background:var(--field-2);border:1px solid var(--line);border-radius:12px;padding:22px 24px 20px;box-shadow:var(--shadow-lift);animation:rise .3s cubic-bezier(.2,.7,.2,1) both}.run-summary-card h2{font-family:var(--display);font-optical-sizing:auto;font-weight:700;font-size:26px;margin:4px 0 14px;letter-spacing:-.01em}.run-summary-note{margin:14px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}.run-summary-actions{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.run-summary-go{border:0;background:var(--fuchsia);color:#fdf6f2;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:800;letter-spacing:.04em;transition:background .15s ease,transform .1s ease}.run-summary-go:hover{background:var(--fuchsia-2);transform:translateY(-1px)}.run-summary-quiet{border:1px solid var(--line);background:#fbfcf3;color:var(--ink-2);border-radius:9px;padding:10px 16px;font-size:13px;font-weight:700;transition:border-color .15s ease,color .15s ease}.run-summary-quiet:hover{border-color:var(--ink);color:var(--ink)}.run-summary-later{border:0;background:none;padding:0;font-size:12px;font-weight:700;color:var(--ink-3);margin-left:auto}.run-summary-later:hover{color:var(--ink);text-decoration:underline}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:18px;background:transparent;margin:0}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--ink-3)}input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:var(--ink-3)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;margin-top:-6px;border-radius:50%;background:var(--field-2);border:2px solid var(--fuchsia);box-shadow:0 1px 3px #283c2466}input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--field-2);border:2px solid var(--fuchsia)}.library{margin-top:clamp(16px,2vw,26px);animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.library-tools{display:flex;align-items:center;justify-content:space-between;gap:12px 18px;flex-wrap:wrap;margin-top:clamp(20px,2.6vw,32px);padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line-2)}.library-tools-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.chip-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip-row-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-right:2px}.filter-chip{padding:6px 11px;border:1px solid var(--line);border-radius:999px;background:#fbfcf3;font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--ink-2);transition:border-color .15s ease,color .15s ease,background .15s ease}.filter-chip:hover{border-color:var(--ink);color:var(--ink)}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--field-2)}.filter-chip .difficulty-holes{display:block}.filter-chip.is-active .difficulty-holes .is-covered{fill:var(--field-2);stroke:var(--field-2)}.filter-chip.is-active .difficulty-holes .is-open{stroke:var(--field-2)}.library-search{font:inherit;font-size:13px;color:var(--ink);background:#fbfcf3;border:1px solid var(--line);border-radius:999px;padding:7px 14px;min-width:170px}.library-search::placeholder{color:var(--ink-3);font-style:italic}.library-search:focus{outline:none;border-color:var(--ink)}.library-section+.library-section{margin-top:clamp(20px,2.6vw,32px)}.library-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.library-sort{border:0;background:none;padding:0;font:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;font-weight:700;color:var(--fuchsia-2)}.library-sort:hover{text-decoration:underline}.library-empty{font-size:13px;color:var(--ink-3);font-style:italic;margin:4px 0 0}.library-head h2{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:clamp(20px,2.4vw,26px);letter-spacing:-.015em}.library-head em{font-family:var(--ui);font-style:italic;text-transform:none;letter-spacing:.02em}.practice-btn{display:inline-flex;align-items:center;gap:7px;align-self:center;background:var(--fuchsia);border:0;color:#fdf6f2;border-radius:999px;padding:9px 19px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;box-shadow:0 12px 26px -12px #c93e5c99;transition:background .15s ease,transform .15s ease}.practice-btn:hover{background:var(--fuchsia-2);transform:translateY(-1px)}.practice-btn:active{transform:translateY(1px)}.library-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.tune-card--shelf{display:grid;text-decoration:none;color:inherit;padding:14px 16px;gap:3px}.tune-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.difficulty-holes{flex:none;align-self:center}.difficulty-holes .is-covered{fill:var(--ink);stroke:var(--ink);stroke-width:1.1}.difficulty-holes .is-open{fill:transparent;stroke:var(--ink-3);stroke-width:1.1}.tune-card-marks{display:flex;align-items:center;gap:7px;flex:none}.mastery-stamp{transform:rotate(-8deg)}.mastery-stamp .stamp-ring{fill:none;stroke:var(--gorse);stroke-width:1.6;opacity:.85}.mastery-stamp .stamp-half{fill:var(--gorse);opacity:.55}.mastery-stamp .stamp-core{fill:var(--gorse);opacity:.9}.game-best{font-family:var(--mono);font-size:11px;color:var(--fuchsia-2);font-weight:500;white-space:nowrap}.tune-card--shelf.is-coming{opacity:.55;cursor:default}.tune-card--shelf.is-coming:hover{transform:none;border-color:var(--line)}.game-page{margin-top:clamp(16px,2vw,26px);animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.game-stage{position:relative;background:var(--sheet);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-page);padding:14px 16px 16px;max-width:960px;margin:0 auto;color:var(--ink)}.game-canvas{display:block;width:100%;border:1px solid var(--ink-line);border-radius:8px}.game-hud{display:flex;align-items:baseline;gap:16px;padding:0 2px 10px;font-family:var(--mono);color:var(--ink-2)}.game-hud-score{font-family:var(--display);font-weight:700;font-size:26px;color:var(--ink);min-width:70px}.game-hud-meta{font-size:12px;letter-spacing:.06em}.game-hud-combo{font-size:14px;font-weight:700;color:var(--fuchsia-2)}.game-card{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#fcfaf0c7;border-radius:10px;padding:20px}.game-card>*{max-width:420px}.game-card h2{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:30px;margin-bottom:8px;text-align:center;color:var(--ink)}.game-card p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2);text-align:center}.game-card .masthead-kicker{display:block;text-align:center}.game-card-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.game-card-actions a{text-decoration:none}.colophon{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:clamp(20px,3vw,36px);padding-top:14px;border-top:1px solid var(--line-2);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.colophon em{font-family:var(--ui);font-style:italic;color:var(--ink-2)}.colophon a{color:var(--ink-2);text-decoration:none}.colophon a:hover{color:var(--ink);text-decoration:underline}.legal-body{max-width:62ch;margin:0 auto;padding:clamp(28px,5vw,56px) 0}.legal-body h2{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.02em;margin-bottom:4px}.legal-updated{font-size:12px;color:var(--ink-3);margin:0 0 22px}.legal-body h3{font-size:14px;font-weight:800;margin:26px 0 6px;color:var(--ink)}.legal-body p{margin:0 0 12px;font-size:14.5px;line-height:1.65;color:var(--ink-2)}.legal-body a{color:inherit}.landing{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:clamp(16px,2.4vw,34px) clamp(16px,3vw,44px) clamp(28px,4vw,52px)}.landing-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.landing-head .wordmark h1{font-family:var(--display);font-weight:800;font-size:30px;letter-spacing:-.02em}.landing-nav{display:flex;align-items:center;gap:18px}.signin-link{border:0;background:none;padding:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--ink-2)}.signin-link:hover{color:var(--ink)}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(40px,7vw,96px) 0 clamp(32px,5vw,72px)}.hero-copy{display:grid;gap:18px;justify-items:start}.hero-copy h2{font-family:var(--display);font-optical-sizing:auto;font-weight:800;font-size:clamp(32px,4.4vw,54px);line-height:1.02;letter-spacing:-.025em}.hero-copy p{margin:0;font-size:16px;line-height:1.6;color:var(--ink-2);max-width:46ch}.hero-cta{display:grid;gap:8px;justify-items:start;margin-top:6px}.hero-btn{font-size:13px;padding:12px 24px}.hero-fine{font-size:12px;color:var(--ink-3)}.hero-demo{display:flex;align-items:center;gap:18px;justify-content:center}.hero-sheet{background:var(--sheet);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-page);padding:22px 20px 14px}.hero-strip{display:flex;gap:13px}.hero-chip{display:grid;gap:3px;justify-items:center}.hero-chip-letter{font-family:var(--mono);font-size:10px;color:var(--ink-2);margin-bottom:3px}.hero-hole{width:9px;height:9px;border-radius:50%;border:1.2px solid var(--ink);background:transparent}.hero-hole.is-covered{background:var(--ink)}.hero-chip.is-current .hero-hole{border-color:var(--fuchsia)}.hero-chip.is-current .hero-hole.is-covered{background:var(--fuchsia)}.hero-chip.is-current .hero-chip-letter{color:var(--fuchsia);font-weight:700}.hero-chip.is-hit .hero-hole{border-color:var(--spruce)}.hero-chip.is-hit .hero-hole.is-covered{background:var(--spruce)}.hero-sheet-caption{margin:14px 0 0;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:700;text-align:center}.hero-whistle{width:52px;height:200px;flex:none}.landing-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);padding:clamp(20px,3vw,40px) 0;border-top:1px solid var(--line-2)}.landing-features article{display:grid;gap:8px;align-content:start}.landing-features h3{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.01em}.landing-features p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}.landing-pricing{display:grid;justify-items:center;padding:clamp(20px,3vw,44px) 0}.pricing-card{background:var(--field-2);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);padding:26px 30px 24px;display:grid;gap:10px;justify-items:start;width:min(460px,100%)}.pricing-card h3{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.02em}.pricing-sub{margin:0;font-size:13.5px;color:var(--ink-2)}.pricing-mark{width:112px;height:auto;border-radius:10px;border:1px solid var(--line);box-shadow:var(--shadow-lift);transform:rotate(-2deg);margin-bottom:6px}.trial-chip{border:1px solid var(--line);background:var(--field-2);border-radius:999px;padding:5px 12px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);transition:border-color .15s ease,color .15s ease}.trial-chip:hover{border-color:var(--ink);color:var(--ink)}.trial-chip.is-closing{border-color:var(--fuchsia);color:var(--fuchsia-2)}.trial-ended{display:grid;justify-items:center;padding:clamp(30px,6vw,80px) 0}.trial-ended-card{width:min(520px,100%);animation:rise .4s cubic-bezier(.2,.7,.2,1) both}@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:28px}.hero-demo{order:-1}.landing-features{grid-template-columns:1fr}}@media(max-width:1080px){.stage{grid-template-columns:1fr}.stage-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media(max-width:680px){.masthead{align-items:flex-start}.stage-side{grid-template-columns:1fr}.input-btn{padding:11px 15px}.ghost-btn{width:44px;height:44px}.filter-chip{padding:9px 13px}.library-search{flex:1;min-width:0;width:100%}.library-tools-right{width:100%}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}
