html{color-scheme:light dark;scrollbar-gutter:stable}body{margin:0}img{max-width:100%}[hidden]{display:none!important}@font-face{font-family:Apercu Mono;src:url(/assets/ApercuMonoProLight-B0ZuAgsn.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Apercu Mono;src:url(/assets/ApercuMonoProRegular-Dn67qFi1.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Apercu Mono;src:url(/assets/ApercuMonoProMedium-BU3E_jiX.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Apercu Mono;src:url(/assets/ApercuMonoProBold-DOkiwniR.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#E4E1D7;--panel:#F6F4EF;--panel-2:#EDEAE2;--ink:#191612;--ink-2:#6A6255;--ink-3:#948B7B;--line:#D3CDBF;--line-2:#BBB3A2;--brass:#A07A26;--brass-ink:#7A5A17;--brass-soft:rgba(160,122,38,.16);--slowbar:#B3A48C;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--preview:#9AACBA;--felt:#9C3128;--felt-strip:#D42A1E;--verd:#2F6B52;--key-w:#FCFBF8;--key-w-edge:#C6BFAF;--key-b:#1B1814;--key-b-edge:#3A342B;--shadow:0 1px 0 rgba(25,22,18,.1), 0 10px 24px -18px rgba(25,22,18,.55);--radius:10px}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg:#131109;--panel:#1E1B15;--panel-2:#26221B;--ink:#F1ECE1;--ink-2:#A79D8B;--ink-3:#7C7466;--line:#332E25;--line-2:#463F33;--brass:#DCA945;--brass-ink:#E8BC63;--brass-soft:rgba(220,169,69,.18);--slowbar:#6E6552;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--preview:#7A93A8;--felt:#DA6053;--verd:#6CB794;--key-w:#DFDACE;--key-w-edge:#8B8474;--key-b:#0B0908;--key-b-edge:#2B2620;--shadow:0 1px 0 rgba(0,0,0,.5), 0 12px 28px -18px rgba(0,0,0,.9)}}:root[data-theme=dark]{--bg:#131109;--panel:#1E1B15;--panel-2:#26221B;--ink:#F1ECE1;--ink-2:#A79D8B;--ink-3:#7C7466;--line:#332E25;--line-2:#463F33;--brass:#DCA945;--brass-ink:#E8BC63;--brass-soft:rgba(220,169,69,.18);--slowbar:#6E6552;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--preview:#7A93A8;--felt:#DA6053;--verd:#6CB794;--key-w:#DFDACE;--key-w-edge:#8B8474;--key-b:#0B0908;--key-b-edge:#2B2620;--shadow:0 1px 0 rgba(0,0,0,.5), 0 12px 28px -18px rgba(0,0,0,.9)}:root[data-theme=lipiano]{--bg:#DCDCDC;--panel:#FFFFFF;--panel-2:#F0F0F0;--ink:#2B2B2B;--ink-2:#5D5D5D;--ink-3:#7E7E7E;--line:#D6D6D6;--line-2:#BDBDBD;--brass:#3893E8;--brass-ink:#1A6DBB;--brass-soft:rgba(56,147,232,.14);--slowbar:#A5A5A5;--series-1:#6d4bd1;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--preview:#8E9AA3;--felt:#B03A30;--felt-strip:#8C8C8C;--verd:#2F6B52;--key-w:#FFFFFF;--key-w-edge:#BFBFBF;--key-b:#2B2B2B;--key-b-edge:#454545;--shadow:0 1px 0 rgba(0,0,0,.08), 0 10px 24px -18px rgba(0,0,0,.45)}:root[data-theme=lipiano-dark]{--bg:#161512;--panel:#262421;--panel-2:#2E2C29;--ink:#DEDEDE;--ink-2:#A0A0A0;--ink-3:#7C7C7C;--line:#3A3835;--line-2:#4A4744;--brass:#3692E7;--brass-ink:#63ABEE;--brass-soft:rgba(54,146,231,.2);--slowbar:#5E5C58;--series-1:#8b6fe0;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--preview:#8A9299;--felt:#DA6053;--felt-strip:#57544F;--verd:#6CB794;--key-w:#CFCFCF;--key-w-edge:#828282;--key-b:#121212;--key-b-edge:#2E2E2E;--shadow:0 1px 0 rgba(0,0,0,.5), 0 12px 28px -18px rgba(0,0,0,.9)}:root[data-theme=gruvbox-dark]{--bg:#282828;--panel:#3C3836;--panel-2:#504945;--ink:#EBDBB2;--ink-2:#BDAE93;--ink-3:#928374;--line:#504945;--line-2:#665C54;--brass:#FABD2F;--brass-ink:#FABD2F;--brass-soft:rgba(250,189,47,.18);--slowbar:#7C6F64;--series-1:#83A598;--series-2:#FE8019;--series-3:#8EC07C;--series-4:#D3869B;--series-5:#B16286;--preview:#83A598;--felt:#FB4934;--felt-strip:#CC241D;--verd:#B8BB26;--key-w:#EBDBB2;--key-w-edge:#A89984;--key-b:#1D2021;--key-b-edge:#3C3836;--shadow:0 1px 0 rgba(0,0,0,.5), 0 12px 28px -18px rgba(0,0,0,.9)}:root[data-theme=gruvbox-light]{--bg:#F2E5BC;--panel:#FBF1C7;--panel-2:#EBDBB2;--ink:#3C3836;--ink-2:#665C54;--ink-3:#928374;--line:#D5C4A1;--line-2:#BDAE93;--brass:#B57614;--brass-ink:#B57614;--brass-soft:rgba(181,118,20,.16);--slowbar:#A89984;--series-1:#076678;--series-2:#AF3A03;--series-3:#427B58;--series-4:#8F3F71;--series-5:#D65D0E;--preview:#458588;--felt:#9D0006;--felt-strip:#CC241D;--verd:#79740E;--key-w:#F9F5D7;--key-w-edge:#A89984;--key-b:#282828;--key-b-edge:#504945;--shadow:0 1px 0 rgba(60,56,54,.1), 0 10px 24px -18px rgba(60,56,54,.55)}:root[data-theme=light],:root[data-theme=lipiano],:root[data-theme=gruvbox-light]{color-scheme:light}:root[data-theme=dark],:root[data-theme=lipiano-dark],:root[data-theme=gruvbox-dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}.app-layout{display:block;min-height:100vh}.nav{display:flex;align-items:center;gap:16px;margin-left:-9px}.nav-btn{font-family:Apercu Mono,ui-monospace,monospace;font-size:17px;font-weight:600;letter-spacing:-.01em;background:none;border:none;border-radius:8px;cursor:pointer;padding:3px 9px;color:var(--ink-2);transition:color .12s,background .12s}.nav-btn:hover{color:var(--ink);background:var(--panel-2)}.nav-btn[aria-expanded=true],.nav-btn[aria-pressed=true]{color:var(--brass-ink);background:var(--brass-soft)}.nav-btn.brand{color:var(--ink);font-weight:700;display:inline-flex;align-items:center}.nav-btn.brand:hover{color:var(--brass-ink);background:none}.brand-mark{display:block;height:18px;aspect-ratio:212.157/76.326;background:currentColor;-webkit-mask:url(/assets/ppp-B-12i2fe.svg) no-repeat center/contain;mask:url(/assets/ppp-B-12i2fe.svg) no-repeat center/contain}body.drills-mode .wrap{height:100vh;min-height:0}body.drills-mode .topbar{position:static;flex:0 0 auto}body.drills-mode .hero{min-height:0;gap:12px}body.drills-mode .stage{flex:0 0 auto;justify-content:flex-end;padding-top:0}body.drills-mode .stage-hud,body.drills-mode .stage-meta,body.drills-mode .readout,body.drills-mode .verdict,body.drills-mode .summary{display:none}body.drills-mode .kbd-scroll{--ann-gutter:0}.library{flex:1 1 auto;min-height:200px;display:flex;align-items:stretch;gap:16px;overflow:hidden}body.drawer-moving{overflow:hidden}.lib-side{flex:0 0 236px;min-width:0;display:flex;flex-direction:column;gap:9px;border-right:1px solid var(--line);padding-right:8px}.lib-views{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;display:flex;flex-direction:column;gap:1px}.lib-search{position:relative;display:flex;align-items:center;flex:0 0 auto}.lib-search-icon{position:absolute;left:11px;width:14px;height:14px;color:var(--ink-3);pointer-events:none}.lib-search-input{font:inherit;font-size:12.5px;width:100%;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 31px;transition:border-color .12s}.lib-search-input::placeholder{color:var(--ink-3)}.lib-search-input:focus{outline:none;border-color:var(--brass)}.lib-sort{position:relative;flex:0 0 auto}.lib-sort[hidden]{display:block!important;visibility:hidden}.sort-btn{font:inherit;width:100%;cursor:pointer;display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;background:var(--brass-soft);color:var(--brass-ink);border:1px solid var(--brass)}.sort-eyebrow{font-size:9.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;opacity:.7;flex:0 0 auto}.sort-now{font-size:12px;font-weight:600;flex:1 1 auto;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fold-caret{flex:0 0 auto;width:13px;height:13px;opacity:.6;transition:transform .16s ease}.sort-btn[aria-expanded=true] .fold-caret{transform:rotate(180deg)}.sort-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;display:flex;flex-direction:column;gap:1px;padding:4px;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;box-shadow:var(--shadow)}.sort-item{font:inherit;font-size:12px;text-align:left;cursor:pointer;padding:5px 9px;border-radius:6px;background:none;border:none;color:var(--ink-2)}.sort-item:hover{background:var(--panel-2);color:var(--ink)}.sort-item[aria-checked=true]{color:var(--brass-ink);background:var(--brass-soft);font-weight:600}.view-btn{font:inherit;width:100%;cursor:pointer;display:flex;align-items:center;gap:8px;padding:7px 9px;background:none;border:none;border-radius:7px;color:var(--ink-3);text-align:left;transition:background-color .12s,color .12s}.view-btn:hover{background:var(--panel-2);color:var(--ink-2)}.view-btn .view-label{flex:1 1 auto;min-width:0;font-size:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-btn b{flex:0 0 auto;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;font-weight:500;color:var(--ink-3);opacity:.8}.view-btn[aria-current=true]{background:var(--brass-soft);color:var(--brass-ink)}.view-btn[aria-current=true] b{color:inherit;opacity:.65}.view-btn.view-free{margin-top:14px}.lib-main{position:relative;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}.lib-main:after,.lib-side:after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(transparent,var(--bg));pointer-events:none}.lib-side{position:relative}.lib-scroll,.lib-views{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.lib-mainhead{display:flex;align-items:baseline;gap:10px;flex:0 0 auto}.lib-mainhead .cap{margin:0;font-size:11.5px;color:var(--ink-3)}.lib-reset{font-size:11px;padding:3px 10px;margin-left:auto}.lib-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.lib-group{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:var(--radius);padding:8px 11px}.dg-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.dg-kind{font-size:9px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--brass-ink);border:1px solid var(--brass);border-radius:999px;padding:1px 7px}.dg-kind[data-kind=collection]{color:var(--ink-3);border-color:var(--line-2)}.dg-kind[data-kind=theme]{color:var(--ink-3);border-color:var(--line-2);border-style:dashed}.dg-name{margin:0;font-size:24px;font-weight:700;color:var(--ink);line-height:1.15;letter-spacing:-.01em}.dg-count{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;color:var(--ink-3)}.dg-close{margin-left:auto;font-size:10.5px;padding:3px 10px}.dg-desc{margin:0;font-size:11.5px;line-height:1.4;color:var(--ink-2);max-width:80ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dg-goal{margin:1px 0 0;font-size:11.5px;line-height:1.4;color:var(--ink-2);max-width:80ch}.dg-goal span{font-size:9px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin-right:6px}.dg-missing{margin:1px 0 0;font-size:11px;color:var(--felt)}.lib-shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.lib-shelves:empty{display:none}.shelf-card{font:inherit;cursor:pointer;text-align:left;display:flex;align-items:baseline;gap:9px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:var(--radius);padding:11px 13px;transition:border-color .12s,background-color .12s}.shelf-card:hover{background:var(--panel-2);border-color:var(--brass)}.sc-name{flex:1 1 auto;min-width:0;font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-count{flex:0 0 auto;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;color:var(--ink-3)}.lib-shelves.path-shelves{display:flex;flex-direction:column;gap:8px}.shelf-card.path-card{flex-direction:column;align-items:stretch;gap:3px;padding:8px 11px}.path-card .dg-desc{display:block}.drill-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(214px,1fr));gap:8px}.drill-card{position:relative;display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;cursor:pointer;box-shadow:var(--shadow);transition:border-color .12s,background .12s}.drill-card:hover{border-color:var(--brass);background:var(--panel-2)}.drill-card.active{border-color:var(--brass);background:linear-gradient(var(--brass-soft),var(--brass-soft)),var(--panel)}.dc-head{display:flex;align-items:baseline;justify-content:space-between;gap:7px}.drill-card-name{font-size:17px;font-weight:600;line-height:1.2;color:var(--ink)}.dc-diff{flex:0 0 auto;white-space:nowrap;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:1px 6px}.dc-diff[data-diff=beginner]{color:var(--verd)}.dc-diff[data-diff=intermediate]{color:var(--brass-ink)}.dc-diff[data-diff=advanced],.dc-diff[data-diff=expert]{color:var(--felt)}.drill-card-desc{font-size:11.5px;line-height:1.35;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dc-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:1px}.dc-tag{font-size:10px;line-height:1.6;color:var(--ink-3);background:var(--panel-2);border-radius:999px;padding:0 7px}.dc-tag.domain{color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line)}.dc-tag.shape{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px}.dc-step{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-right:6px;padding:0 4px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600;color:var(--brass-ink);background:var(--brass-soft);border:1px solid var(--brass);border-radius:999px;vertical-align:1px}.drill-card-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;color:var(--ink-3)}.drill-card:has(.dc-rank) .drill-card-meta{padding-right:46px}.dc-rank{position:absolute;right:-1px;bottom:-1px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;font-family:Apercu Mono,ui-monospace,monospace;font-size:24px;font-weight:700;line-height:1;letter-spacing:-.03em;border-radius:0 0 calc(var(--radius) - 1px) 0;color:var(--panel);background:var(--ink-3)}.dc-rank[data-grade=a],.dc-rank[data-grade=aplus]{background:var(--verd)}.dc-rank[data-grade=s],.dc-rank[data-grade=ss]{background:var(--brass)}.dc-rank[data-grade=ss]{box-shadow:0 0 14px -2px var(--brass)}.lib-scroll{display:flex;flex-direction:column}.lib-scroll>*{flex:0 0 auto}.drill-list.path-map{display:block;flex:1 1 0;min-height:220px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.pm-track{position:relative}.pm-route{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pm-line{fill:none;stroke:var(--brass);stroke-width:8;stroke-linecap:round}.pm-node{position:absolute;width:214px;height:150px}.pm-node .drill-card{height:100%;box-sizing:border-box}.pm-node .drill-card-name{font-size:15px}.pm-node .work-card{height:100%;box-sizing:border-box;overflow:hidden}.pm-node .wc-title{font-size:15px}.pm-node .wc-notes{display:none}.drill-list.work-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.work-card{position:relative;display:flex;flex-direction:column;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px 14px;cursor:pointer;box-shadow:var(--shadow);transition:border-color .12s,background .12s}.work-card:hover{border-color:var(--brass);background:var(--panel-2)}.work-card.active{border-color:var(--brass);background:linear-gradient(var(--brass-soft),var(--brass-soft)),var(--panel)}.work-card:has(.dc-rank){padding-bottom:44px}.wc-head{display:flex;align-items:baseline;justify-content:space-between;gap:9px}.wc-title{font-size:20px;font-weight:600;line-height:1.2;color:var(--ink)}.work-panel{display:flex;align-items:flex-start;gap:0 28px;flex:1 1 auto;min-width:0}.work-panel .wc-title{font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-.01em}.wp-col{display:flex;flex-direction:column;gap:7px;min-width:0}.wp-col:first-child{flex:1 1 60%}.wp-col:last-child{flex:1 1 40%;padding-top:24px}.wp-col .wc-row:first-child{border-top:none;padding-top:0}.stage-meta:has(.work-panel:not([hidden])){width:100%;max-width:min(100%,1060px)}.stage-meta:has(.work-panel:not([hidden])) .stage-row{gap:32px}.stage-meta:has(.practice-panel:not([hidden])){max-width:min(100%,920px)}.practice-panel{display:flex;flex-direction:column;gap:7px;min-width:280px;flex:0 0 auto}.practice-panel .wc-row:first-child{border-top:none;padding-top:0}body.sprint-active .practice-panel{display:none}.wc-head{align-items:center}.wc-head .wc-label{flex:0 0 auto;padding-top:0}.wc-switch{display:flex;align-items:center;gap:10px}.wc-switch .ladder-dots,.wc-off,.wc-goal{font-family:Apercu Mono,ui-monospace,monospace;font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:.02em;line-height:1.25}.wc-off{color:var(--ink-3)}.wc-goal{padding-top:3px}.wc-chip:disabled{cursor:default;pointer-events:none}.wc-facts{display:flex;flex-wrap:wrap;gap:0 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;color:var(--ink-3)}.wc-dot{color:var(--ink-3);opacity:.6}.wc-notes{margin:0;font-size:11.5px;line-height:1.4;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wc-row{display:flex;align-items:flex-start;gap:12px;padding-top:8px;border-top:1px solid var(--line)}.wc-label{flex:0 0 46px;padding-top:4px;font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.wc-field{flex:1 1 auto;min-width:0}.wc-chips{display:flex;flex-wrap:wrap;gap:5px}.wc-chip{display:inline-flex;align-items:center;white-space:nowrap;font:inherit;font-size:11.5px;line-height:1;cursor:pointer;padding:6px 10px;border-radius:999px;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line);transition:border-color .12s,background-color .12s,color .12s}.wc-chip:hover{border-color:var(--brass)}.wc-chip.on{color:var(--brass-ink);background:var(--brass-soft);border-color:var(--brass)}.wc-chip.small{padding:3px 8px;font-size:10.5px}.wc-chip.wc-toggle:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;border:1px solid currentColor;vertical-align:0}.wc-chip.wc-toggle.on:before{background:currentColor}.wc-strip{display:flex;flex-direction:column;gap:3px;-webkit-user-select:none;user-select:none;touch-action:none}.wc-bars{display:grid;gap:1px;height:18px;cursor:crosshair}.wc-bar{display:block;min-width:0;border-radius:2px;background:var(--panel-2);border:1px solid var(--line)}.wc-bar.on{background:var(--brass);border-color:var(--brass)}.wc-sections{display:grid;gap:1px}.wc-section{font:inherit;font-size:10px;line-height:1;cursor:pointer;min-width:0;padding:4px 2px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);background:transparent;border:1px solid var(--line);transition:border-color .12s,color .12s}.wc-section:hover{border-color:var(--brass);color:var(--ink-2)}.wc-section.on{color:var(--brass-ink);border-color:var(--brass);background:var(--brass-soft)}.wc-rowlabel{display:flex;align-items:center;justify-content:flex-start;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;color:var(--ink-3)}.wc-accrow{display:grid;gap:1px;height:7px}.wc-acc{display:block;min-width:0;border-radius:1px;border:1px solid var(--line);background:transparent}.wc-acc.clean{background:var(--verd);border-color:var(--verd)}.wc-acc.weak{background:color-mix(in srgb,var(--felt) calc(var(--depth) * 100%),var(--panel-2));border-color:color-mix(in srgb,var(--felt) calc(var(--depth) * 100%),var(--line))}.wc-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wc-spark{display:block;overflow:visible}.wc-spark-target{stroke:var(--line-2);stroke-width:1;stroke-dasharray:2 3}.wc-spark-line{fill:none;stroke:var(--brass);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.wc-spark-dots circle{fill:var(--panel);stroke:var(--brass);stroke-width:2}.wc-progressread{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;color:var(--ink-2)}.wc-rangeread{display:flex;align-items:center;gap:8px;margin-top:6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;color:var(--ink-2)}.wc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:9px;border-top:1px solid var(--line)}.wc-record{font-size:11.5px;color:var(--ink-2)}.wc-record.muted{color:var(--ink-3)}.wc-record b{font-weight:600;color:var(--ink)}.wc-grade{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:19px;padding:0 6px;margin-right:8px;font-family:Apercu Mono,ui-monospace,monospace;font-size:11px;font-weight:700;line-height:1;border-radius:5px;border:1px solid var(--line-2);color:var(--ink-3);background:var(--panel-2)}.wc-grade[data-grade=a],.wc-grade[data-grade=aplus]{color:var(--preview);border-color:color-mix(in srgb,var(--preview) 60%,transparent);background:color-mix(in srgb,var(--preview) 13%,transparent)}.wc-grade[data-grade=s],.wc-grade[data-grade=ss]{color:var(--brass);border-color:var(--brass);background:var(--brass-soft)}@media(max-width:720px){.library{flex-direction:column;gap:10px}.lib-side{flex:0 0 auto;flex-direction:row;flex-wrap:wrap;align-items:center;overflow:visible;padding-right:0;border-right:none;border-bottom:1px solid var(--line);padding-bottom:8px}.lib-search{flex:1 1 200px}.lib-sort{flex:0 0 170px}.lib-side:after{display:none}.lib-views{flex:1 1 100%;min-height:0;overflow:visible;padding-right:0;flex-direction:row;flex-wrap:wrap;gap:4px}.view-btn{width:auto;padding:5px 10px;background:var(--panel-2)}.view-btn .view-label{font-size:13px}}.wrap{max-width:1260px;margin:0 auto;padding:14px 20px 20px;display:flex;flex-direction:column;gap:14px;min-height:100vh}.hero{position:relative;flex:1 1 auto;display:flex;flex-direction:column}.topbar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;flex-direction:column;gap:14px}.masthead{display:flex;align-items:center;gap:14px}.account-btn{flex:0 0 auto;font:inherit;font-size:12px;font-weight:500;background:none;border:0;padding:0;cursor:pointer;color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;max-width:24ch;transition:color .12s}.account-btn:hover{color:var(--ink)}.account-btn #accountLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-btn .avatar{position:relative;flex:0 0 auto;width:32px;height:32px;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;overflow:visible;transition:color .12s}.account-btn:hover .avatar{color:var(--ink-2)}.account-btn .avatar svg{width:32px;height:32px;display:block;clip-path:circle(48% at 50% 46%)}.account-btn .dot{position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;border-radius:50%;background:var(--ink-3);box-shadow:0 0 0 2px var(--bg);transition:background .2s}.account-btn[data-sync=idle] .dot{background:var(--brass)}.account-btn[data-sync=syncing] .dot{background:var(--brass);animation:pulse 1.1s ease-in-out infinite}.account-btn[data-sync=error] .dot{background:#c0562f}.account-btn[data-sync=off] .dot{display:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.account-block{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--line)}.account-signin{display:flex;gap:8px;align-items:center}.account-email{flex:1 1 auto;min-width:0}.account-actions{display:flex;gap:8px;flex-wrap:wrap}.account-msg{margin:0;font-size:12px;line-height:1.45;color:var(--ink-2)}.account-msg[data-tone=bad]{color:#c0562f}.guest-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:7px 12px;background:var(--brass-soft);border:1px solid var(--brass);border-radius:9px;font-size:12.5px;color:var(--brass-ink)}.guest-note-in{font:inherit;font-weight:600;background:none;border:none;cursor:pointer;color:inherit;text-decoration:underline;text-underline-offset:2px;padding:0}.guest-note-x{margin-left:auto;font:inherit;font-size:15px;line-height:1;background:none;border:none;cursor:pointer;color:inherit;opacity:.55;padding:0 2px}.guest-note-x:hover{opacity:1}.version-badge{flex:0 0 auto;margin-left:auto;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;color:var(--ink-3);letter-spacing:.04em}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-ink);margin:0 0 4px}h1{font-family:Apercu Mono,ui-monospace,monospace;font-weight:600;font-size:clamp(30px,5vw,44px);line-height:1;margin:0;letter-spacing:-.01em;text-wrap:balance}.sub{margin:8px 0 0;color:var(--ink-2);max-width:52ch;font-size:14px}.chip{font:inherit;font-size:13px;font-weight:500;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.chip:hover{border-color:var(--line-2);color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip.ghost[aria-pressed=true]{background:var(--brass-soft);color:var(--brass-ink);border-color:var(--brass)}.spacer{flex:1 1 auto}.midi{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end}.midi-status{flex:0 1 auto;min-width:0;max-width:64ch;margin-right:10px;font-size:12.5px;color:var(--ink-2);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:max-width .3s cubic-bezier(.2,.9,.3,1),margin-right .3s cubic-bezier(.2,.9,.3,1),opacity .18s ease}.midi-status.warn{color:var(--felt);white-space:normal;line-height:1.35}.midi[data-state=ok] .midi-status{max-width:0;margin-right:0;opacity:0}.midi[data-state=locked] .midi-status{color:var(--brass-ink)}.midi[data-state=locked] .midi-btn{background:var(--brass-soft);color:var(--brass-ink);border-color:var(--brass)}.midi[data-state=locked] .dot{animation:midi-wake 1.8s ease-in-out infinite}@keyframes midi-wake{0%,to{box-shadow:0 0 0 0 var(--brass-soft)}50%{box-shadow:0 0 0 4px var(--brass-soft)}}@media(prefers-reduced-motion:reduce){.midi[data-state=locked] .dot{animation:none;box-shadow:0 0 0 3px var(--brass-soft)}}.midi-btn{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;background:var(--line-2);flex:0 0 auto;transition:background .1s}.dot.on{background:var(--verd)}.dot.hit{background:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}.dot.warn{background:var(--felt)}.btn{font:inherit;font-size:13px;font-weight:600;cursor:pointer;border-radius:999px;padding:6px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);transition:opacity .12s}.btn:hover{opacity:.86}.btn.quiet{background:transparent;color:var(--ink-2);border-color:var(--line-2)}.btn.quiet:hover{color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{opacity:.45;color:var(--ink-2)}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.stage{background:transparent;border:none;border-radius:var(--radius);box-shadow:none;overflow:visible;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;padding-top:var(--topbar-h,0px)}body.roll-on .readout{display:none}.drill-now{display:flex;flex-direction:column;gap:1px}.drill-now-name{font-family:Apercu Mono,ui-monospace,monospace;font-size:30px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.25}.drill-now-desc{font-size:11.5px;color:var(--ink-2);line-height:1.25}.drill-now-tags{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px}.drill-now-tags span{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;line-height:1;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line-2);border-radius:999px;padding:4px 9px}.drill-now-tags span:first-child{color:var(--brass-ink);background:var(--brass-soft);border-color:var(--brass)}.drill-now-level{font-family:Apercu Mono,ui-monospace,monospace;font-size:11px;font-weight:600;color:var(--ink-2);line-height:1.25;margin-top:2px;letter-spacing:.02em}.ladder-line{font-family:Apercu Mono,ui-monospace,monospace;font-size:11px;font-weight:600;color:var(--ink-2);line-height:1.25;margin-top:6px;letter-spacing:.02em;display:flex;gap:10px;align-items:baseline;flex:0 1 auto;min-width:170px}.ladder-line.off{color:var(--ink-3)}.ladder-dots{letter-spacing:.18em}.ladder-dots .hit{color:var(--verd)}.ladder-dots .miss{color:var(--felt)}.ladder-dots .none{color:var(--ink-3)}.summary-ladder{font-family:Apercu Mono,ui-monospace,monospace;font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.02em}.stage-head{position:relative}.stage-meta{width:fit-content;max-width:min(100%,720px);margin:0 auto;padding:12px 16px;display:flex;flex-direction:column;align-items:center;gap:12px}.stage-row{display:flex;align-items:center;gap:28px;width:100%}.stage-runs{width:fit-content;max-width:100%;min-width:min(100%,520px);display:flex;flex-direction:column;gap:2px}.stage-runs[hidden]{display:none}.stage-runs h3{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px}body.sprint-active .stage-runs{display:none}.stage-actions{display:flex;flex-direction:column;gap:8px}.stage-actions .btn{width:100%}.stage-hud{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 16px 0;min-height:34px}.timer{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:26px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em;min-width:64px;text-align:center}.stage-hud .timer{display:none}body.sprint-active .stage-hud .timer{display:inline-block}.timer.run{color:var(--brass-ink)}.pill{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:3px 10px;border:1px solid var(--line-2);color:var(--ink-2)}.pill.live{border-color:var(--felt);color:var(--felt)}.pill:empty{display:none}.beat-pips{display:flex;align-items:center;gap:6px}.pip{width:7px;height:7px;border-radius:50%;background:var(--line-2);transition:background .08s,transform .08s}.pip.down{width:9px;height:9px}.pip.on{background:var(--brass);transform:scale(1.15)}.pip.down.on{background:var(--brass-ink)}.timeline{display:none;position:absolute;z-index:4;overflow:visible;border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);background:linear-gradient(var(--line) 0 0) center/100% 1px no-repeat}body.sprint-active .timeline{display:block}.timeline i{position:absolute;top:0;bottom:0;display:block}.tl-bar{width:1px;background:var(--line);margin-left:-.5px}.tl-range{background:var(--brass-soft);border-left:2px solid var(--brass);border-right:2px solid var(--brass)}.tl-range:before,.tl-range:after{content:"";position:absolute;top:0;bottom:0;width:4px;border-top:2px solid var(--brass);border-bottom:2px solid var(--brass)}.tl-range:before{left:0}.tl-range:after{right:0}.timeline .tl-head{width:2px;margin-left:-1px;top:-6px;bottom:-6px;background:var(--brass-ink)}.tl-head:before,.tl-head:after{content:"";position:absolute;left:-3px;width:8px;height:2px;background:var(--brass-ink)}.tl-head:before{top:0}.tl-head:after{bottom:0}.tempo{display:flex;align-items:center;gap:6px}.tempo-btn{font:inherit;font-size:14px;line-height:1;font-weight:600;cursor:pointer;width:26px;height:26px;border-radius:50%;border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink)}.tempo-btn:hover:not(:disabled){border-color:var(--ink)}.tempo-btn:disabled{opacity:.35;cursor:default}.tempo-read{display:flex;align-items:baseline;gap:4px;min-width:60px;justify-content:center}.tempo-val{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.tempo-unit{font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--ink-3)}.tempo-pcts{display:flex;gap:2px;margin-left:8px}.tempo-pcts[hidden]{display:none}.tempo-pct{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.04em;font-variant-numeric:tabular-nums;cursor:pointer;background:none;border:1px solid transparent;border-radius:999px;padding:2px 7px;color:var(--ink-3);transition:color .12s,background .12s,border-color .12s}.tempo-pct:hover:not(:disabled){color:var(--ink);background:var(--panel-2)}.tempo-pct.is-on{color:var(--brass-ink);border-color:var(--brass);background:var(--brass-soft)}.tempo-pct:disabled{opacity:.35;cursor:default}.readout{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:52px;overflow:hidden}.readout[hidden],.notation-readout[hidden],.chord-readout[hidden]{display:none}.notation-readout{grid-column:1;grid-row:1;justify-self:start;padding:4px 0 0 16px;line-height:0}.notation-readout svg path,.notation-readout svg rect,.notation-readout svg text{fill:var(--ink);stroke:var(--ink)}.chord-readout{grid-column:1 / -1;grid-row:1;align-self:stretch;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px;color:var(--ink-2)}.chord-readout .chord-name{grid-column:2}.chord-readout .chord-meta{grid-column:3;display:flex;align-items:center;gap:10px;justify-self:start;padding-left:12px}.chord-readout .chord-name{font-family:Apercu Mono,ui-monospace,monospace;font-size:30px;line-height:1;font-weight:600;color:var(--ink)}.chord-readout.is-guess .chord-name{color:var(--ink-2)}.chord-readout .chord-tag{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:3px 10px;border:1px solid var(--line-2);color:var(--ink-3)}.chord-readout .chord-notes{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;color:var(--ink-3)}.felt{height:9px;background:var(--felt-strip)}.kbd-scroll{overflow-x:auto;overflow-y:hidden;background:var(--panel-2);--ann-gutter:52px;padding:0 0 var(--ann-gutter)}body.roll-on .kbd-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;--plate-h:calc(172px + var(--ann-gutter));background:linear-gradient(var(--panel-2),var(--panel-2)) left bottom / 100% var(--plate-h) no-repeat}body.roll-on .kbd-scroll:has(>.kbd.wide){--plate-h:calc(190px + var(--ann-gutter))}body.roll-on .kbd{margin-top:140px}body.roll-on .felt{visibility:hidden}.kbd{position:relative;height:172px;min-width:520px;margin:0 14px}.kbd.wide{height:190px;min-width:0}.kbd .roll{position:absolute;left:0;bottom:100%;width:100%;box-sizing:border-box;border-bottom:9px solid var(--felt-strip);display:block;pointer-events:none;--roll-plain:var(--brass);--roll-ink:rgba(255,255,255,.9);--roll-line:var(--line)}.staff{position:relative;margin:0 14px 6px;overflow:hidden;--staff-ink:var(--ink);--staff-ghost:var(--ink-3);--staff-cursor:var(--brass)}.staff-page{position:relative;transition:transform .22s ease}.staff-paper svg{display:block}.staff-pinned{position:absolute;left:0;top:0;overflow:hidden;background:var(--bg);pointer-events:none}.staff-cursor{position:absolute;top:0;left:0;width:2px;background:var(--staff-cursor);opacity:.55;pointer-events:none;will-change:transform}.staff-caption{font-size:11px;line-height:1.4;color:var(--ink-3);padding:0 2px;font-variant-numeric:tabular-nums}body.wide-keyboard .felt,body.wide-keyboard .kbd-scroll{--board:min(100vw - 40px, 1660px);width:var(--board);margin-left:calc(50% - var(--board) / 2)}.board-foot{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin:6px 14px 0}body.wide-keyboard .board-foot{--board:min(100vw - 40px, 1660px);width:var(--board);margin-left:calc(50% - var(--board) / 2);padding-right:14px;box-sizing:border-box}.readout-toggles{display:flex;gap:2px}.readout-toggles .rt{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid transparent;border-radius:4px;padding:2px 6px;cursor:pointer;color:var(--ink-3);opacity:.5;transition:color .2s ease,opacity .2s ease,background .15s ease,border-color .15s ease}.readout-toggles .rt:hover{opacity:.85;background:var(--panel-2)}.readout-toggles .rt[aria-pressed=true]{color:var(--brass-ink);opacity:1;border-color:var(--brass);background:var(--brass-soft)}.key-count{display:flex;justify-content:flex-end;gap:2px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.06em}.key-count .kc-n{font:inherit;letter-spacing:inherit;background:none;border:none;border-radius:4px;padding:2px 5px;cursor:pointer;color:var(--ink-3);opacity:.4;transition:color .2s ease,opacity .2s ease,background .15s ease}.key-count .kc-n:hover:not(:disabled){opacity:.85;background:var(--panel-2)}.key-count .kc-n.is-on{color:var(--ink-2);opacity:1}.key-count .kc-n.is-widened{color:var(--brass-ink);border-bottom:1px dotted currentColor;border-radius:4px 4px 0 0}.key-count .kc-note{font:inherit;font-size:10.5px;color:var(--brass-ink);background:none;border:none;cursor:pointer;margin-right:10px;padding:2px 0}.key-count .kc-note:hover{color:var(--ink)}.key-count .kc-n:disabled{cursor:default;background:none}.k{position:absolute;top:0;border-radius:0 0 4px 4px;transition:background .1s ease,box-shadow .1s ease,border-color .1s ease}.k.w{height:100%;background:var(--key-w);border:1px solid var(--key-w-edge);border-top:none;box-shadow:inset 0 -4px 6px -5px #19161280}.k.b{height:62%;border:1px solid var(--key-b-edge);border-top:none;z-index:3;background:var(--key-b) linear-gradient(to right,transparent,rgba(255,255,255,.14) 30% 70%,transparent) no-repeat 50% 88% / calc(100% - 6px) 1px;box-shadow:inset 0 -1px #ffffff52,inset 0 -6px 8px -6px #ffffff2e,inset 1px 0 #ffffff12,inset -1px 0 #00000059,0 2px 3px #00000059}.k.w:where(.off){background:color-mix(in srgb,var(--key-w) 52%,var(--panel-2));border-color:color-mix(in srgb,var(--key-w-edge) 45%,var(--panel-2));box-shadow:none}.k.b:where(.off){background:color-mix(in srgb,var(--key-b) 55%,var(--panel-2));border-color:color-mix(in srgb,var(--key-b-edge) 45%,var(--panel-2));box-shadow:none}.k:where(.off) .klabel{opacity:.4}@property --lit{syntax:"<number>";inherits:false;initial-value:1}.k.lit{border-color:var(--brass)}.k.lit:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--brass);opacity:var(--lit);pointer-events:none}.k.w.lit:before{box-shadow:inset 0 -8px 14px -8px #00000059}.kbd.lit-dots .k.lit{border-color:var(--key-w-edge)}.kbd.lit-dots .k.b.lit{border-color:var(--key-b-edge)}.kbd.lit-dots .k.lit:before{inset:auto;left:50%;bottom:14px;transform:translate(-50%);width:min(58%,18px);aspect-ratio:1;border-radius:50%;background:var(--brass);opacity:var(--lit);box-shadow:0 0 0 2px #ffffff8c,0 1px 3px #19161266}.kbd.lit-dots .k.b.lit:before{bottom:9px;box-shadow:0 0 0 2px #ffffff59,0 1px 3px #00000080}.kbd.lit-dots .k.lit .klabel{color:inherit;opacity:inherit}.k.w.preview{background:color-mix(in srgb,var(--preview) 45%,var(--key-w));border-color:color-mix(in srgb,var(--preview) 55%,var(--key-w-edge));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--preview) 40%,transparent),inset 0 -8px 14px -8px #00000040}.k.b.preview{background:color-mix(in srgb,var(--preview) 52%,var(--key-b));border-color:color-mix(in srgb,var(--preview) 60%,var(--key-b-edge))}.k.typing:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--ink-3);opacity:.45;pointer-events:none}.k.b.typing:after{background:#fff9;opacity:.5;bottom:6px}.k.lit.typing:after,.k.ok.typing:after,.k.bad.typing:after,.k.played.typing:after,.k.held.typing:after{opacity:0}.k.held{background:var(--key-w-edge);box-shadow:inset 0 -4px 8px -6px #1916128c,inset 0 2px 3px -2px #19161259}.k.b.held .klabel{color:var(--key-b)}.k.played{box-shadow:inset 0 0 0 2px var(--felt),inset 0 0 0 4px #ffffff59}.k.b.played{box-shadow:inset 0 0 0 2px var(--felt)}.k.ghost{border-color:color-mix(in srgb,var(--brass) 55%,transparent)}.k.ghost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--brass);opacity:.4;pointer-events:none}.k.b.ghost:before{opacity:.52}.k.ok{background:var(--verd);border-color:var(--verd)}.k.bad{background:var(--felt);border-color:var(--felt)}.kbd{--roll-left:var(--verd);--roll-right:var(--brass)}.k.ok.hand-L{background:var(--roll-left);border-color:var(--roll-left)}.k.ok.hand-R{background:var(--roll-right);border-color:var(--roll-right)}.kbd-annotations{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:calc(100% + var(--ann-gutter));z-index:6;pointer-events:none;overflow:visible}.ann-highlight{fill-opacity:.22;stroke-width:2}.ann-gray{fill:var(--panel-2)}.ann-bracket{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ann-arrow{fill:none;stroke-width:2.5;stroke-linecap:round}.ann-arrow-head{stroke:none}.ann-label{font-family:Apercu Mono,ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-anchor:middle;paint-order:stroke;stroke:var(--panel-2);stroke-width:3px;stroke-linejoin:round}.ann-key-label{font-size:17px;font-weight:700}.klabel{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;color:var(--ink-3);pointer-events:none}.k.b .klabel{color:#ffffff8c;bottom:4px}.k.lit .klabel,.k.ok .klabel,.k.bad .klabel{color:#ffffffe6;opacity:1}.verdict{display:flex;visibility:hidden;align-items:baseline;gap:10px;flex-wrap:wrap;padding:14px 16px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2);min-height:55px}.verdict.is-ok,.verdict.is-bad{visibility:visible}.verdict .big{font-family:Apercu Mono,ui-monospace,monospace;font-size:24px;line-height:1;font-weight:600;color:var(--ink)}.verdict.is-ok .big{color:var(--verd)}.verdict.is-bad .big{color:var(--felt)}.verdict .vnote{font-style:italic;color:var(--ink-3)}.verdict.is-done .big{font-size:28px;letter-spacing:-.01em}.strip{flex:1 0 100%;display:flex;align-items:center;height:22px;margin-top:2px}body.metronomic .verdict{min-height:81px}.strip .slot{position:relative;flex:1 1 0;height:100%}.strip .tick{position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:var(--line-2);transform:translate(-.5px)}.strip .mark{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);background:var(--verd)}.strip .mark.rush{background:var(--brass)}.strip .mark.drag{background:var(--preview)}.strip .mark.out{box-shadow:0 0 0 2px var(--felt)}.strip .mark.wrong{background:var(--felt)}.strip .mark.miss{background:transparent;border:1px dashed var(--line-2);width:8px;height:8px}.summary{margin:0 0 16px;padding:10px 0;flex:0 0 auto;display:flex;flex-direction:column;gap:10px;animation:summary-in .2s cubic-bezier(.2,.9,.3,1) both}@keyframes summary-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.summary-body{display:grid;grid-template-columns:auto max-content minmax(0,1fr);gap:20px 28px;align-items:stretch}.summary-ladder{grid-column:1/-1}.summary-grade{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:118px;padding-right:20px;border-right:1px solid var(--line)}.grade-mark{font-family:Apercu Mono,ui-monospace,monospace;font-weight:700;font-size:60px;line-height:.92;letter-spacing:-.05em;color:var(--ink)}.grade-val{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.grade-note{font-size:11.5px;line-height:1.35;color:var(--ink-3);max-width:15ch}.grade-ring{display:inline-block;box-sizing:border-box;width:.68em;height:.68em;vertical-align:-.02em;border:.115em solid currentColor;border-radius:50%}.summary-grade.g-o .grade-mark{color:var(--ink-3);opacity:.7}.summary-grade.g-s .grade-mark,.summary-grade.g-ss .grade-mark{color:var(--brass)}.summary-grade.g-ss .grade-mark{text-shadow:0 0 22px var(--brass-soft)}.summary-figures{display:grid;grid-template-columns:minmax(max-content,1fr) max-content;align-content:space-between;gap:6px 24px}.fig{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline}.fig-k{font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;color:var(--ink-3)}.fig-v{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:21px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.1;text-align:right;color:var(--ink)}.summary-graph{grid-column:3;grid-row:1;display:flex;flex-direction:column;gap:6px;min-width:0;border-left:1px solid var(--line);padding-left:20px}.summary-graph[hidden]{display:none}.summary-graph h3{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0}.summary-graph-box{position:relative;flex:1 1 auto;min-height:120px;width:100%}.summary-keys{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;min-width:0;width:min(100%,400px);justify-self:end;border-top:1px solid var(--line);padding-top:12px}.summary-keys[hidden]{display:none}.summary-keys h3{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0}.brow{display:grid;grid-template-columns:28px 1fr 84px 84px 96px 56px;align-items:baseline;gap:8px;padding:3px 6px;border-radius:5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.brow>span{text-align:right}.brow>span:nth-child(2){text-align:left;font-family:inherit;font-size:12.5px;color:var(--ink)}.brow.head{border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:2px}.brow.head>span{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-family:inherit}.brow.now{background:var(--brass-soft);color:var(--ink)}.brow.best{box-shadow:0 0 0 1px var(--brass),0 0 14px -2px var(--brass)}.bnew{display:inline-block;margin-left:8px;vertical-align:1px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-ink);border:1px solid var(--brass);border-radius:999px;padding:1px 7px;animation:bnew-in .4s cubic-bezier(.2,.9,.3,1) both}@keyframes bnew-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}.btag{display:inline-block;margin-left:5px;vertical-align:1px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:500;letter-spacing:.04em;line-height:1;color:var(--ink-3);border:1px solid var(--line-2);border-radius:999px;padding:2px 6px}.brow .bgrade{font-weight:600;color:var(--brass-ink)}.brow .bgrade.none{color:var(--ink-3);font-weight:400}.brow.unclean>span:nth-child(4){color:var(--felt)}.nscope{margin-left:7px;font-weight:400;letter-spacing:0;text-transform:none;font-size:10.5px;color:var(--ink-3);opacity:.75}.nscope:before{content:"· "}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.panel h2{font-family:Apercu Mono,ui-monospace,monospace;font-size:15px;font-weight:600;margin:0;letter-spacing:-.01em}.panel .cap{margin:-4px 0 0;font-size:11px;color:var(--ink-2)}.nrows{display:grid;grid-template-columns:max-content minmax(40px,1fr) max-content max-content;gap:2px 8px}.nrow{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center;padding:1px 3px;border-radius:5px;cursor:default}.nbar{display:block;position:relative;height:6px;background:var(--line);border-radius:999px;overflow:hidden}.nbar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--slowbar);border-radius:999px;transition:width .2s ease}.nrow.empty .nbar{background:transparent}.nrow:hover{background:var(--panel-2)}.nrow .nn{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-weight:500;color:var(--ink)}.nrow .nn,.ms,.acc,.sgn{white-space:nowrap}.ms,.acc,.sgn{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:right}.nrow .nn{min-width:52px}.ms{min-width:60px}.acc{min-width:44px}.sgn{min-width:46px}.nrow.empty .nn,.nrow.empty .ms,.nrow.empty .acc,.nrow.empty .sgn{color:var(--ink-3)}.nrows.timing{grid-template-columns:max-content minmax(40px,1fr) max-content max-content max-content}.curve{display:block}.curve-svg{display:block;width:100%;height:auto;overflow:visible}.curve-gate{stroke:var(--line-2);stroke-width:1;stroke-dasharray:2 3}.curve-line{fill:none;stroke:var(--brass);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.curve-trend{stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:5 4;opacity:.8}.curve-dots circle{fill:var(--panel);stroke:var(--brass);stroke-width:2}.curve-tick{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;fill:var(--ink-3)}.sgn.rush{color:var(--brass-ink)}.sgn.drag{color:var(--preview)}.empty-note{font-size:12.5px;color:var(--ink-3);font-style:italic}.page-foot{flex:0 0 auto;display:flex;align-items:baseline;gap:14px;margin:0 2px}.credit{flex:0 1 auto;font-size:11.5px;color:var(--ink-3);line-height:1.5}.credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}.credit a:hover{color:var(--ink-2)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#0006;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);animation:scrim-in .16s ease both}.scrim[hidden]{display:none}body.modal-open{overflow:hidden}.modal{display:flex;flex-direction:column;width:min(720px,100%);max-height:min(80vh,720px);background:var(--panel);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 24px 60px -20px #000000b3;animation:modal-in .18s cubic-bezier(.2,.9,.3,1) both}.modal[hidden]{display:none}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex:0 0 auto}.modal-title{font-family:Apercu Mono,ui-monospace,monospace;font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0}.modal-close{font:inherit;background:none;border:none;cursor:pointer;padding:4px;color:var(--ink-3);transition:color .12s;display:flex;align-items:center}.modal-close:hover{color:var(--ink)}.modal-close svg{width:18px;height:18px}.modal-body{padding:16px 20px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.modal-foot{margin-top:4px;border-top:1px solid var(--line);padding-top:14px}#settingsModal{width:min(680px,100%);height:min(80vh,560px)}.modal-notice{width:min(440px,100%)}.modal-text{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}.modal-text.muted{color:var(--ink-3)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.modal-text b{font-weight:600;color:var(--ink)}.settings-body{flex:1 1 auto;min-height:0;flex-direction:row;padding:0;gap:0;overflow:hidden}.settings-nav{flex:0 0 168px;display:flex;flex-direction:column;gap:2px;padding:14px 10px;border-right:1px solid var(--line);background:var(--panel-2);overflow-y:auto}.settings-nav .settings-search{max-width:none;width:100%;margin-bottom:10px;cursor:text}.settings-tab{font:inherit;font-size:13px;text-align:left;cursor:pointer;padding:6px 10px;border-radius:6px;border:none;background:none;color:var(--ink-2);transition:background .12s,color .12s}.settings-tab:hover{background:var(--bg);color:var(--ink)}.settings-tab[aria-current=true]{background:var(--bg);color:var(--ink);font-weight:600}.settings-pane{flex:1 1 auto;min-width:0;overflow-y:auto;padding:16px 20px 20px;display:flex;flex-direction:column;gap:20px}.settings-group{display:flex;flex-direction:column;gap:12px}.settings-group[hidden]{display:none}.settings-group-title{font-family:Apercu Mono,ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin:0}.settings-group .miss{display:none}.settings-empty{margin:0;font-size:13px;color:var(--ink-3)}@media(max-width:560px){#settingsModal{height:min(80vh,640px)}.settings-body{flex-direction:column}.settings-nav{flex:0 0 auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:10px 12px;border-right:none;border-bottom:1px solid var(--line)}.settings-nav .settings-search{flex:1 0 100%;margin-bottom:6px}}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.setting-label{font-size:13px;font-weight:500;color:var(--ink)}.setting-select{font:inherit;font-size:12px;color:var(--ink);background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:4px 6px;cursor:pointer;max-width:210px;text-overflow:ellipsis}.setting-select:focus{outline:none;border-color:var(--ink-3)}.setting-select:disabled{opacity:.45;cursor:default}.setting-num{width:64px;text-align:right}.setting-head{margin-bottom:-4px}.setting-sub{padding-left:16px}.setting-sub .setting-label{font-weight:400;color:var(--ink-2)}.setting-inc{display:flex;align-items:center;gap:6px}.setting-inc .setting-select{max-width:none}.setting-unit{font-size:12px;color:var(--ink-3);white-space:nowrap}.setting-unit.warn{color:var(--felt)}.theme-pick{position:relative;flex:0 0 auto}.theme-btn{font:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;background:var(--bg);color:var(--ink);border:1px solid var(--line-2);transition:border-color .12s}.theme-btn:hover{border-color:var(--ink-3)}.theme-now{font-size:12px;min-width:74px;text-align:left}.theme-btn[aria-expanded=true] .fold-caret{transform:rotate(180deg)}.theme-btn .fold-caret{width:13px;height:13px;flex:0 0 auto;opacity:.6}.theme-pop{position:absolute;top:calc(100% + 4px);right:0;min-width:100%;z-index:30;display:flex;flex-direction:column;gap:1px;padding:4px;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;box-shadow:var(--shadow)}.theme-item{font:inherit;font-size:12px;text-align:left;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:8px;padding:5px 9px;border-radius:6px;background:none;border:none;color:var(--ink-2)}.theme-item:hover{background:var(--panel-2);color:var(--ink)}.theme-item[aria-checked=true]{color:var(--brass-ink);background:var(--brass-soft);font-weight:600}.theme-swatch{display:flex;gap:3px;flex:0 0 auto}.theme-swatch i{width:10px;height:10px;border-radius:50%;border:1px solid rgba(128,128,128,.4)}.theme-name{flex:1 1 auto}.toggle{position:relative;width:36px;height:20px;background:var(--line-2);border-radius:999px;border:none;cursor:pointer;padding:0;transition:background .15s;flex:0 0 auto}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--bg);border-radius:50%;transition:transform .15s}.toggle[aria-checked=true]{background:var(--brass)}.toggle[aria-checked=true]:after{transform:translate(16px)}#tip{position:fixed;z-index:50;pointer-events:none;opacity:0;transition:opacity .09s;background:var(--ink);color:var(--bg);font-size:12px;line-height:1.35;padding:6px 9px;border-radius:6px;max-width:220px;box-shadow:0 6px 20px -8px #0009}#tip.on{opacity:1}#tip b{font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:500}.prompt{position:absolute;left:0;right:0;bottom:100%;text-align:center;padding:6px 16px 14px}.prompt-pass{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}.prompt-pass:empty{display:none}.prompt-check{position:absolute;left:0;right:0;top:50%;font-size:88px;line-height:1;color:var(--verd);pointer-events:none;text-shadow:0 2px 18px rgba(0,0,0,.35)}.prompt-check.show{animation:passmark .9s ease-out forwards}@keyframes passmark{0%{opacity:0;transform:translateY(-50%) scale(.55)}22%{opacity:1;transform:translateY(-50%) scale(1)}65%{opacity:1;transform:translateY(-50%) scale(1)}to{opacity:0;transform:translateY(-50%) scale(1.12)}}@media(prefers-reduced-motion:reduce){.prompt-check.show{animation:passmarkfade .9s linear forwards}@keyframes passmarkfade{0%,70%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translateY(-50%)}}}.prompt-figure{font-family:Apercu Mono,ui-monospace,monospace;font-weight:600;line-height:1.05;color:var(--brass-ink)}.prompt-figure.size-glyph{font-size:80px;line-height:1}.prompt-figure.size-word{font-size:44px}.prompt-figure.size-phrase{font-size:26px;line-height:1.3;max-width:34ch;margin-left:auto;margin-right:auto}.prompt-figure.size-image{font-size:0}.prompt-figure img{max-height:180px;max-width:100%;width:auto;border-radius:8px;vertical-align:middle}.prompt-figure:empty{display:none}.prompt-context{font-size:13px;color:var(--ink-2);margin-top:6px}.prompt-context:empty{display:none}.prompt-hint{display:inline-flex;gap:6px;margin-top:10px;flex-wrap:wrap;justify-content:center}.prompt-hint:empty{display:none}.prompt-hint span{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;color:var(--ink-3);background:var(--panel-2);border-radius:4px;padding:2px 6px}.prompt-hint span.active{color:var(--brass-ink);background:var(--brass-soft);font-weight:600}.walkthrough{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 16px;text-align:center}body.walkthrough-mode .stage-head{min-height:150px}.wt-progress{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.wt-progress:empty{display:none}.wt-say{font-size:19px;line-height:1.35;font-weight:500;color:var(--ink);margin-top:6px;max-width:44ch}.wt-hint{font-size:12.5px;color:var(--ink-3);margin-top:6px;min-height:16px}.wt-actions{display:flex;gap:10px;justify-content:center;margin-top:10px}.btn.wt-hold{position:relative;overflow:hidden;isolation:isolate;background:transparent;color:var(--ink);border-color:var(--line-2)}.btn.wt-hold:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--brass-soft);transform:scaleX(var(--wt-hold,0));transform-origin:left center}body.walkthrough-mode .prompt{display:none}body.walkthrough-mode .stage-hud,body.walkthrough-mode .stage-meta{visibility:hidden}.stall{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 16px;text-align:center;animation:summary-in .2s cubic-bezier(.2,.9,.3,1) both}.stall[hidden]{display:none}body.stall-mode .stage-head{min-height:120px}body.stall-mode .prompt{display:none}body.stall-mode .stage-hud,body.stall-mode .drill-now,body.stall-mode .work-panel,body.stall-mode .practice-panel,body.stall-mode #walkthroughBtn,body.walkthrough-mode .board-foot{visibility:hidden}.k{cursor:pointer}:root{--sprint-dim:0;--sprint-fade-speed:.45s}.masthead,.drill-now,.work-panel,#walkthroughBtn,.verdict,.board-foot,.summary,.page-foot,.stage-hud .timer{transition:opacity var(--sprint-fade-speed) ease}body.sprint-active .drill-now,body.sprint-active .work-panel{display:none}body.sprint-active .masthead,body.sprint-active .drill-now,body.sprint-active .work-panel,body.sprint-active #walkthroughBtn,body.sprint-active .verdict,body.sprint-active .board-foot,body.sprint-active .summary,body.sprint-active .page-foot,body.sprint-running .stage-hud .timer{opacity:var(--sprint-dim);pointer-events:none}#startBtn.docked{position:relative;z-index:4}body.metronomic.sprint-active .verdict{opacity:1;pointer-events:auto}body.stats-mode .stage{display:none}body.stats-mode .hero{flex:0 0 auto}body.stats-mode .topbar{position:static}.stats-screen{display:flex;flex-direction:column;gap:16px;padding-bottom:24px}.stats-screen.blank .stats-top,.stats-screen.blank .stats-grid{display:none}.stats-head{display:flex;flex-direction:column}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;align-content:space-between;flex:1}.stat-cell{display:flex;flex-direction:column;gap:1px;min-width:0}.stat-cell .sc-k{font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.stat-cell .sc-v{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:22px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.25;color:var(--ink)}.stats-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:12px;align-items:stretch}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.stats-panel{background:var(--panel);box-shadow:var(--shadow);min-width:0}.stats-panel.wide{grid-column:1 / -1}.chart-box{position:relative;height:180px;min-width:0}.chart-box.tall{height:260px}.stats-panel.wide .chart-box{height:230px}.heatmap{display:flex;flex-direction:column;gap:4px;padding-bottom:2px}.heat-months{display:grid;grid-auto-flow:column;gap:3px;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.heat-months span{grid-row:1;min-width:0;white-space:nowrap}.heat-weeks{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px}.heat-cell{width:auto;min-width:0;aspect-ratio:1;border-radius:2.5px;display:block;background:var(--panel-2);border:1px solid transparent;box-sizing:border-box}.heat-scale .heat-cell{width:11px;flex:0 0 auto}.heat-cell.l0{background:var(--panel-2)}.heat-cell.l1{background:color-mix(in srgb,var(--brass) 26%,var(--panel-2))}.heat-cell.l2{background:color-mix(in srgb,var(--brass) 50%,var(--panel-2))}.heat-cell.l3{background:color-mix(in srgb,var(--brass) 74%,var(--panel-2))}.heat-cell.l4{background:var(--brass)}.heat-cell.today{border-color:var(--ink-2)}.heat-cell.future{background:none;border-color:var(--line)}.heat-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--ink-3)}.heat-scale{display:flex;align-items:center;gap:3px}.heat-scale span{font-size:10px}.heat-note b{color:var(--ink-2);font-weight:500}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:2px}.chart-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-2)}.chart-legend i{width:9px;height:9px;border-radius:2px;flex:0 0 auto}.chart-legend .lg-rest{color:var(--ink-3)}@media(max-width:900px){.stats-top,.stats-grid,.summary-body{grid-template-columns:1fr}.summary-keys{width:auto;justify-self:stretch;grid-row:auto}.summary-graph{grid-column:1;grid-row:auto;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}.summary-graph-box{height:150px}.summary-runs{grid-column:1;grid-row:auto}.summary-grade{flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap;padding-right:0;border-right:0;border-bottom:1px solid var(--line);padding-bottom:10px}.grade-mark{font-size:44px}.grade-note{max-width:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
