.range-tabs{margin-bottom:var(--space-6)}.tile .spark{margin-top:var(--space-2)}.sess-row .row-meta .tag{margin-left:6px}.load-more{margin-top:var(--space-3);justify-content:center;display:flex}.goal-ring .stepper{margin-top:var(--space-3)}.pb-table td .tag{margin-left:6px}.drill-row .play.play-locked{cursor:not-allowed;opacity:.75;color:var(--color-muted);border-style:dashed}.drill-row .play.play-locked:hover{border-color:var(--color-edge);color:var(--color-muted)}.lock-reason{color:var(--color-warn)}.lock-list{margin:var(--space-2) 0 0;gap:var(--space-1);padding:0;list-style:none;display:grid}.lock-note{min-height:var(--touch);color:var(--color-muted);font-size:var(--text-sm);align-items:center;gap:8px;display:flex}.lock-note .icon{color:var(--color-warn);flex:none}.lock-note b{color:var(--color-ink);font-weight:600}.coach-dialog{border-radius:var(--radius-lg);width:min(480px,100vw - 32px)}.coach-dialog form{padding:var(--space-6);gap:var(--space-4);display:grid}.coach-dialog .dialog-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.coach-error{color:#ff9b97;font-size:var(--text-sm)}.coach-inline{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.coach-danger-zone{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-hairline);gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.coach-live{min-height:1.2em}.library-page .library-error{color:#ff9b97;margin-top:var(--space-4)}.library-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.library-search{width:min(280px,100%)}.library-page .btn[disabled]{opacity:.45}.lib-dialog{width:min(560px,100vw - 24px)}.lib-dialog-wide{width:min(860px,100vw - 24px)}.lib-dialog form{display:contents}.lib-dialog .dlg-body{max-height:calc(100dvh - 220px);overflow:auto}.lib-alert{color:#ff9b97;padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid #ff9b9766}.lib-err{font-size:var(--text-xs);color:#ff9b97}.lib-check{align-items:center;gap:var(--space-3);min-height:var(--touch);font-weight:600;display:flex}.lib-check input{width:22px;height:22px;accent-color:var(--color-accent);flex:none}.lib-check input:disabled+span{opacity:.6}.lib-unit{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.lib-unit .input{flex:120px;width:auto}.lib-lock{font-size:var(--text-sm);color:var(--color-muted)}.lib-import-tools{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.lib-import-text{white-space:pre;min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow:auto}.lib-problems{color:#ff9b97;font-size:var(--text-sm);margin:0;padding-left:1.2em}.lib-summary{font-weight:600}.lib-preview{max-height:46dvh;overflow:auto}.lib-preview .table td{height:44px}.lib-row-msg{margin-left:var(--space-2)}.library-page .c-flag{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.settings-page .coming-soon{font-size:var(--text-sm);color:var(--color-muted);margin:calc(var(--space-3) * -1) 0 var(--space-4)}.settings-page .settings-brand{font-size:17px}.settings-page .email-block{gap:var(--space-3);justify-items:start;display:grid}.settings-page .preview-note{margin-top:var(--space-4)}.digest-test{gap:var(--space-2);margin-top:var(--space-2);width:100%;display:grid}.digest-test-error{color:#ff9b97;font-size:var(--text-sm)}.digest-frame{border:1px solid var(--color-edge);border-radius:var(--radius-md);background:#fff;width:100%;height:480px}.settings-page .current-values{gap:var(--space-3);margin:0;display:grid}.settings-page .current-values dt{font-size:var(--text-sm);color:var(--color-muted)}.settings-page .current-values dd{color:var(--color-ink);flex-direction:column;gap:2px;margin:2px 0 0;display:flex}.settings-page .current-values .ex{font-size:var(--text-sm);color:var(--color-muted)}.settings-page .accent-chip{vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:8px;display:inline-block}.forum-layout{align-items:start}.forum-page .page-head{margin-bottom:var(--space-6)}.forum-rules{top:calc(var(--topbar-h) + 24px);position:sticky}.forum-rules ul{gap:var(--space-3);display:grid}.forum-rules li{color:var(--color-muted);gap:10px;font-size:14px;display:flex}.forum-rules li:before{content:"";background:var(--gold);border-radius:50%;flex:none;width:6px;height:6px;margin-top:8px}.forum-compose .card-head{margin-bottom:var(--space-4);border-bottom:0;padding-bottom:0}.forum-textarea{min-height:128px}.forum-compose-form{gap:var(--space-3);display:grid}.forum-compose-foot{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.forum-counter{font:600 12px/1 var(--font-mono);color:var(--color-subtle);font-variant-numeric:tabular-nums;letter-spacing:.04em}.forum-counter.over{color:var(--color-warn)}.forum-error{color:var(--color-warn);font-size:14px}.forum-pending{margin-bottom:0}.forum-feed{gap:var(--space-4);display:grid}.forum-post{padding:var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-inset)}.forum-post+.forum-post{margin-top:0}.forum-post-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.forum-byline{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.forum-author{color:var(--color-ink);align-items:center;gap:8px;font-weight:600;display:inline-flex}.forum-byline .forum-author:before{display:none}.forum-avatar{width:24px;height:24px;font-size:10px;font-weight:700}.forum-author:before{content:"";background:var(--gold);border-radius:50%;flex:none;width:6px;height:6px}.forum-when{font-size:var(--text-xs);color:var(--color-subtle)}.forum-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-ink);font-size:15px;line-height:1.55}.forum-replies{gap:var(--space-3);margin-top:var(--space-2);padding-left:var(--space-4);border-left:2px solid var(--gold-line);display:grid}.forum-replies[hidden]{display:none}.forum-replies-toggle{min-height:var(--touch);margin-top:var(--space-2);cursor:pointer;color:var(--gold);font:600 12px/1 var(--font-mono);letter-spacing:.04em;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.forum-replies-toggle:hover{color:var(--gold-hi)}.forum-caret{transition:transform var(--dur) var(--ease);display:inline-block}.forum-replies-toggle[aria-expanded=false] .forum-caret{transform:rotate(-90deg)}.forum-reply .forum-author:before{background:var(--color-brass)}.forum-post-actions{gap:var(--space-2);margin-top:var(--space-3);display:flex}.forum-reply-form{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-hairline)}.forum-reply-form .forum-textarea{min-height:88px}.forum-reactions{margin-top:var(--space-3);flex-wrap:wrap;gap:6px;display:flex}.forum-react{border:1px solid var(--color-hairline);border-radius:var(--radius-pill);min-height:36px;color:var(--color-muted);font:500 12px/1 var(--font-ui);background:0 0;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.forum-react:hover{color:var(--color-ink);border-color:var(--color-control-edge)}.forum-react[aria-pressed=true]{background:var(--gold-faint);border-color:var(--gold-line);color:var(--gold-hi)}.forum-react[disabled]{opacity:.6;cursor:progress}.forum-react-emoji{font-size:14px;line-height:1}.forum-react-count{font:600 11px/1 var(--font-mono);color:var(--gold);font-variant-numeric:tabular-nums}.forum-reaction-totals{margin-top:var(--space-2);font:600 11px/1.4 var(--font-mono);color:var(--color-subtle);letter-spacing:.04em}.forum-streak{border-radius:var(--radius-pill);border:1px solid var(--gold-line);background:var(--gold-faint);color:var(--gold-hi);font:600 10px/1.5 var(--font-mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}.forum-featured-tag{margin:0 0 var(--space-2);background:var(--gold-faint);color:var(--gold-hi);border:1px solid var(--gold-line);display:inline-flex}.forum-featured{gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--gold-line);border-radius:var(--radius-md);background:var(--color-inset);box-shadow:inset 0 1px 0 var(--gold-faint);display:grid}.forum-featured .eyebrow{color:var(--gold-hi);align-items:center;gap:6px;margin:0;display:inline-flex}.forum-featured-trophy{font-size:14px}.forum-featured-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.forum-featured .forum-body{font-size:16px}.forum-types{gap:var(--space-2);display:grid}.forum-type-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.forum-type-chip{padding:0 14px}.forum-type-chip[aria-checked=true]{background:var(--gold-faint);border-color:var(--gold-line);color:var(--gold-hi)}.forum-type-blurb{font-size:var(--text-xs);color:var(--color-subtle);min-height:1.4em}.forum-type-tag{text-transform:none}.forum-type-win{background:color-mix(in srgb, var(--color-good) 16%, transparent);color:var(--color-good)}.forum-type-question{background:var(--gold-faint);color:var(--gold)}.forum-type-tip{background:var(--color-brass-soft);color:var(--color-brass)}.forum-type-gear{background:var(--color-surface-hover);color:var(--color-muted)}.forum-type-jam{background:var(--color-accent-soft);color:var(--color-accent)}.forum-feed-wrap{gap:0;display:grid}.forum-type-filters{margin:0 0 var(--space-4)}.forum-type-filters .chip{min-height:36px;padding:0 12px;font-size:12px}.forum-type-filters .chip[aria-pressed=true]{background:var(--gold-faint);border-color:var(--gold-line);color:var(--color-ink)}.forum-tab-count{font:600 10px/1 var(--font-mono);color:var(--color-subtle);margin-left:6px}.chip[aria-pressed=true] .forum-tab-count{color:var(--gold)}.forum-welcome{margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--gold-line);border-radius:var(--radius-md);background:var(--color-inset);box-shadow:inset 0 1px 0 var(--gold-faint);gap:var(--space-2);display:grid}.forum-welcome .eyebrow{margin:0}.forum-welcome-title{font:400 20px/1.25 var(--font-display);color:var(--color-ink)}.forum-welcome p{color:var(--color-muted);font-size:14px}.forum-welcome-rules{display:none}.forum-welcome-rules h4{margin:0 0 var(--space-2);font:600 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.forum-welcome-rules ul{gap:var(--space-2);display:grid}.forum-welcome-rules li{color:var(--color-muted);gap:10px;font-size:13px;display:flex}.forum-welcome-rules li:before{content:"";background:var(--gold);border-radius:50%;flex:none;width:6px;height:6px;margin-top:7px}.forum-filters{margin-bottom:var(--space-6)}.forum-mod{gap:var(--space-4);display:grid}.forum-mod-post{padding:var(--space-5);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--surface-gradient);box-shadow:inset 0 1px 0 var(--gold-faint)}.forum-mod-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.forum-mod-who{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.forum-mod-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.forum-parent{margin-top:var(--space-3);padding:var(--space-3);border-left:3px solid var(--gold-line);border-radius:var(--radius-xs);background:var(--color-ground);color:var(--color-muted);font-size:13px}.forum-parent-label{font:600 10px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:2px;display:block}.forum-parent-quote{-webkit-line-clamp:3;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.forum-parent-quote strong{color:var(--color-ink)}.forum-reject-reason{margin-top:var(--space-3);color:var(--color-muted);font-size:13px}.forum-reject-reason b{color:var(--color-warn)}.forum-decided{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-subtle)}.forum-dialog-quote{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-inset);border:1px solid var(--color-hairline)}.forum-closed{max-width:640px}.forum-closed .card-title{margin-bottom:var(--space-2)}.tag-warn{background:color-mix(in srgb, var(--color-warn) 14%, transparent);color:var(--color-warn)}@media (width<=999px){.forum-layout{grid-template-columns:minmax(0,1fr)}.forum-layout>aside{display:none}.forum-welcome-rules{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-hairline);display:block}}@media (width<=720px){.forum-post{padding:var(--space-3)}.forum-mod-post{padding:var(--space-4)}.forum-compose-foot .btn{width:100%}.forum-post-actions .btn{flex:1}.forum-welcome{padding:var(--space-4)}.forum-type-filters{padding-bottom:var(--space-1);flex-wrap:nowrap;overflow-x:auto}.forum-type-filters .chip{flex:none}.forum-react{flex:auto;justify-content:center;min-height:40px}.forum-reactions{gap:var(--space-2)}.forum-featured{padding:var(--space-4)}}@media (prefers-reduced-motion:reduce){.forum-caret,.forum-react{transition:none}}.forum-teacher-tag{margin-left:var(--space-1)}.forum-flag[aria-pressed=true]{color:var(--brass,currentColor)}.forum-settings,.forum-page>.forum-compose{margin-bottom:var(--space-4)}.forum-settings .chips{margin-bottom:var(--space-2)}:root{--color-ground:#15181c;--color-surface:#1c2025;--color-surface-raised:#22272d;--color-surface-hover:#272d34;--color-inset:#111418;--surface-gradient:linear-gradient(180deg, var(--color-surface-raised), var(--color-surface));--color-hairline:#2c3239;--color-edge:#3c444d;--color-control-edge:#5d6773;--color-ink:#f0eee9;--color-muted:#afb5be;--color-subtle:#8d949e;--color-accent:#ff746f;--color-on-accent:#1b1111;--color-accent-soft:color-mix(in srgb, var(--color-accent) 14%, transparent);--color-accent-line:color-mix(in srgb, var(--color-accent) 45%, transparent);--color-brass:#d1ad72;--color-brass-soft:color-mix(in srgb, var(--color-brass) 14%, transparent);--color-good:#7ccf9e;--color-good-soft:color-mix(in srgb, var(--color-good) 14%, transparent);--color-warn:#e7b765;--color-off:#59616b;--heat-0:#20252b;--heat-1:color-mix(in srgb, var(--color-accent) 25%, var(--heat-0));--heat-2:color-mix(in srgb, var(--color-accent) 50%, var(--heat-0));--heat-3:color-mix(in srgb, var(--color-accent) 78%, var(--heat-0));--heat-4:var(--color-accent);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--gutter:24px;--container:1200px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-pill:999px;--shadow-1:0 1px 0 #ffffff0a inset, 0 6px 18px #00000038;--shadow-2:0 1px 0 #ffffff0d inset, 0 18px 48px #00000073;--font-display:Georgia, "Iowan Old Style", "Times New Roman", serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-lg:17px;--ease:cubic-bezier(.2,.7,.2,1);--dur:.16s;--topbar-h:64px;--tabbar-h:64px;--touch:44px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-ground);min-height:100vh;color:var(--color-ink);font:var(--text-md)/1.5 var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0;padding:0}ul,ol{list-style:none}a{color:var(--color-accent);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}[tabindex="-1"]:focus{outline:none}.sprite{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.icon-fill{fill:currentColor;stroke:none}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);padding:10px 16px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.topbar{z-index:40;background:var(--color-ground);border-bottom:1px solid var(--color-hairline);position:sticky;top:0}.topbar-inner{max-width:calc(var(--container) + 2 * var(--gutter));padding:0 var(--gutter);height:var(--topbar-h);align-items:center;gap:var(--space-8);margin:0 auto;display:flex}.brand{color:var(--color-ink);min-height:var(--touch);flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.brand img{width:34px;height:auto}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-name{font:21px/1.1 var(--font-display);letter-spacing:-.01em}.brand-studio{letter-spacing:.14em;text-transform:uppercase;color:var(--color-subtle);margin-top:3px;font-size:10px}.primary-nav{gap:var(--space-1);flex:1;display:flex}.nav-link{min-height:var(--touch);border-radius:var(--radius-sm);color:var(--color-muted);align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.nav-link:hover{color:var(--color-ink);background:var(--color-surface)}.nav-link[aria-current=page]{color:var(--color-ink)}.nav-link[aria-current=page]:after{content:"";background:var(--color-accent);border-radius:2px;height:2px;position:absolute;bottom:-10px;left:14px;right:14px}.account-slot{align-items:center;gap:var(--space-3);margin-left:auto;display:flex;position:relative}.avatar{letter-spacing:.02em;background:var(--color-brass-soft);width:32px;height:32px;color:var(--color-brass);border:1px solid color-mix(in srgb, var(--color-brass) 35%, transparent);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:600;display:grid}.avatar.lg{width:40px;height:40px;font-size:14px}.account-btn{min-height:var(--touch);border-radius:var(--radius-pill);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.account-btn:hover,.account-btn[aria-expanded=true]{background:var(--color-surface);border-color:var(--color-hairline)}.account-btn .who{font-size:14px;font-weight:500}.account-btn .icon{width:16px;height:16px;color:var(--color-subtle)}.menu{background:var(--color-surface-raised);border:1px solid var(--color-edge);border-radius:var(--radius-md);width:300px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-2);padding:var(--space-2);z-index:60;position:absolute;top:calc(100% + 8px);right:0}.menu-head{gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--color-hairline);margin-bottom:var(--space-2);align-items:center;display:flex}.menu-head .name{font-weight:600}.menu-head .meta{font-size:var(--text-sm);color:var(--color-muted);overflow-wrap:anywhere}.menu-item{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-sm);text-align:left;color:var(--color-ink);background:0 0;border:0;font-size:14px;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--color-surface-hover);outline-offset:-2px}.menu-row{min-height:var(--touch);padding:0 var(--space-3);justify-content:space-between;align-items:center;font-size:14px;display:flex}.menu-sep{background:var(--color-hairline);height:1px;margin:var(--space-2) 0}.menu-note{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-subtle)}.page{max-width:calc(var(--container) + 2 * var(--gutter));padding:var(--space-8) var(--gutter) 120px;margin:0 auto;display:block}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-head-text{flex:360px;min-width:0}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--color-brass);margin-bottom:var(--space-2);font-size:11px;font-weight:600}.page-title{font:400 clamp(30px, 3.6vw, 40px)/1.12 var(--font-display);letter-spacing:-.02em;text-wrap:balance}.page-sub{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--text-lg);max-width:60ch}.page-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.grid{gap:var(--space-6);display:grid}.grid-main{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{gap:var(--space-6);align-content:start;display:grid}.stack-sm{gap:var(--space-3);display:grid}.section-gap{margin-top:var(--space-8)}.card{background:var(--surface-gradient);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-1);min-width:0}.card-tight{padding:var(--space-4) var(--space-5)}.card-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-title{font-size:var(--text-lg);letter-spacing:-.01em;font-weight:600}.card-sub{font-size:var(--text-sm);color:var(--color-muted)}.serif{font-family:var(--font-display);font-weight:400}.muted{color:var(--color-muted)}.subtle{color:var(--color-subtle)}.small{font-size:var(--text-sm)}.xs{font-size:var(--text-xs)}.btn{min-height:var(--touch);border-radius:var(--radius-sm);border:1px solid var(--color-control-edge);background:var(--color-surface-raised);color:var(--color-ink);white-space:nowrap;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-surface-hover);border-color:var(--color-muted)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent) 88%, white);border-color:#0000}.btn-ghost{color:var(--color-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-surface);color:var(--color-ink);border-color:#0000}.btn-danger{color:#ff9b97;background:0 0;border-color:#ff9b9766}.btn-lg{border-radius:var(--radius-md);min-height:56px;padding:0 28px;font-size:16px}.btn-sm{min-height:var(--touch);padding:0 12px;font-size:13px}.btn-icon{width:var(--touch);padding:0}.btn[disabled]{opacity:.45;cursor:not-allowed}.text-link{min-height:var(--touch);color:var(--color-accent);background:0 0;border:0;align-items:center;padding:0;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.field{gap:6px;display:grid}.field label,.field-label{font-size:var(--text-sm);color:var(--color-ink);font-weight:600}.field .hint{font-size:var(--text-xs);color:var(--color-subtle)}.input,.select,.textarea{width:100%;min-height:var(--touch);background:var(--color-inset);border:1px solid var(--color-edge);border-radius:var(--radius-sm);color:var(--color-ink);padding:10px 12px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:0;border-color:#0000}.textarea{resize:vertical;min-height:96px;line-height:1.5}.search{position:relative}.search .icon{color:var(--color-subtle);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{padding-left:40px}.switch{min-height:var(--touch);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:inline-flex}.switch-track{background:var(--color-off);width:42px;height:24px;transition:background var(--dur);border-radius:12px;flex:none;position:relative}.switch-track:after{content:"";background:var(--color-ink);width:18px;height:18px;transition:transform var(--dur) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.switch[aria-checked=true] .switch-track{background:var(--color-accent)}.switch[aria-checked=true] .switch-track:after{background:var(--color-on-accent);transform:translate(18px)}.stepper{border:1px solid var(--color-edge);border-radius:var(--radius-sm);background:var(--color-inset);align-items:center;display:inline-flex}.stepper button{width:var(--touch);height:var(--touch);color:var(--color-ink);border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;display:grid}.stepper button:hover{background:var(--color-surface-hover)}.stepper output{text-align:center;min-width:64px;font-size:14px}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-hairline);scrollbar-width:none;display:flex;overflow-x:auto}.tab{min-height:var(--touch);color:var(--color-muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:0 14px;font-size:14px;font-weight:500}.tab:hover{color:var(--color-ink)}.tab[aria-selected=true]{color:var(--color-ink);border-bottom-color:var(--color-accent)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{min-height:var(--touch);border-radius:var(--radius-pill);border:1px solid var(--color-edge);color:var(--color-muted);background:0 0;padding:0 14px;font-size:13px;font-weight:500}.chip:hover{color:var(--color-ink);border-color:var(--color-control-edge)}.chip[aria-pressed=true],.chip[aria-selected=true]{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-ink)}.tag{border-radius:var(--radius-xs);letter-spacing:.02em;background:var(--color-surface-hover);color:var(--color-muted);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.tag-accent{background:var(--color-accent-soft);color:var(--color-ink)}.tag-good{background:var(--color-good-soft);color:var(--color-good)}.tag-brass{background:var(--color-brass-soft);color:var(--color-brass)}.lamp{background:var(--color-off);border-radius:50%;flex:none;width:8px;height:8px}.lamp.on{background:var(--color-good);box-shadow:0 0 0 3px var(--color-good-soft)}.lamp.warn{background:var(--color-warn)}.rows>li+li{border-top:1px solid var(--color-hairline)}.row{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;min-height:60px;display:flex}.row-main{flex:1;min-width:0}.row-title{overflow-wrap:anywhere;font-weight:600}.row-meta{font-size:var(--text-sm);color:var(--color-muted)}.row-end{align-items:center;gap:var(--space-3);flex:none;display:flex}.empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-muted)}.empty-art{border-radius:var(--radius-md);height:96px;margin-bottom:var(--space-4);background:linear-gradient(90deg, var(--color-surface) 0%, transparent 30%, transparent 70%, var(--color-surface) 100%), url(/img/fretboard-band.webp) center/cover;opacity:.7}.hero-action{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-8);border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 0% 0%, var(--color-accent-soft), transparent 55%), var(--surface-gradient);border:1px solid var(--color-hairline);box-shadow:var(--shadow-1);flex-wrap:wrap;display:flex}.hero-action .text{flex:260px}.hero-action .big{font:400 26px/1.2 var(--font-display)}.drill-row .play{width:var(--touch);height:var(--touch);border:1px solid var(--color-edge);background:var(--color-inset);color:var(--color-ink);border-radius:50%;place-items:center;display:grid}.drill-row .done{color:var(--color-good);font-size:var(--text-sm);align-items:center;gap:4px;font-weight:600;display:inline-flex}.pb{text-align:right}.pb .num{font-size:15px}.pb .xs{display:block}.coach-note{border-left:3px solid var(--color-brass)}.coach-note blockquote{font:italic 400 18px/1.5 var(--font-display);color:var(--color-ink);margin:0}.coach-note .sig{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-muted);align-items:center;gap:var(--space-2);display:flex}.streak-num{align-items:baseline;gap:8px;display:flex}.streak-num .big{font:400 44px/1 var(--font-display)}.streak-num .icon{width:22px;height:22px;color:var(--color-accent);align-self:center}.week{margin-top:var(--space-5);grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day{color:var(--color-subtle);justify-items:center;gap:6px;font-size:11px;display:grid}.day-bar{background:var(--color-inset);border:1px solid var(--color-hairline);border-radius:6px;width:100%;height:44px;position:relative;overflow:hidden}.day-bar span{background:var(--color-accent);border-radius:4px 4px 0 0;position:absolute;bottom:0;left:0;right:0}.day.today{color:var(--color-ink);font-weight:700}.meter{background:var(--color-inset);border:1px solid var(--color-hairline);border-radius:4px;height:8px;overflow:hidden}.meter span{background:var(--color-accent);border-radius:4px;height:100%;display:block}dialog{color:var(--color-ink);border:1px solid var(--color-edge);background:var(--color-surface-raised);box-shadow:var(--shadow-2);padding:0}dialog::backdrop{background:#080a0cb8}.sheet{border-radius:var(--radius-lg);width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px)}.modal{border-radius:var(--radius-lg);width:min(620px,100vw - 32px);max-height:calc(100dvh - 32px)}.dlg-head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6) 0;display:flex}.dlg-title{font:400 24px/1.2 var(--font-display)}.dlg-body{padding:var(--space-5) var(--space-6);gap:var(--space-5);display:grid}.dlg-foot{justify-content:flex-end;gap:var(--space-3);padding:0 var(--space-6) var(--space-6);flex-wrap:wrap;display:flex}.steps{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-subtle);padding:var(--space-2) var(--space-6) 0;display:flex}.steps span[aria-current=step]{color:var(--color-brass);font-weight:700}.clock{text-align:center;padding:var(--space-6) 0 var(--space-2)}.clock .num{letter-spacing:-.04em;font-size:clamp(56px,16vw,84px);line-height:1}.clock-controls{justify-content:center;gap:var(--space-3);display:flex}.honor{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-inset);border:1px solid var(--color-hairline);color:var(--color-muted);align-items:flex-start;font-size:14px;display:flex}.honor input{width:20px;height:20px;accent-color:var(--color-accent);flex:none;margin:2px 0 0}.score-input{align-items:center;gap:var(--space-3);display:flex}.score-input .input{font:600 28px/1 var(--font-mono);text-align:center;max-width:200px;min-height:64px}.celebrate{text-align:center;padding:var(--space-4) 0}.celebrate .medal{width:88px;height:88px;margin:0 auto var(--space-4);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--color-brass) 70%, white), var(--color-brass) 55%, #8d6c37);color:#2a1f0d;box-shadow:0 0 0 8px var(--color-brass-soft);border-radius:50%;place-items:center;display:grid}.celebrate .medal .icon{stroke-width:2.2px;width:40px;height:40px}.celebrate h3{font:400 30px/1.2 var(--font-display)}.celebrate .delta{margin-top:var(--space-2);color:var(--color-muted)}@media (prefers-reduced-motion:no-preference){.celebrate .medal{animation:pop .42s var(--ease)}@keyframes pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}}.stat-tiles{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat-tiles.six{grid-template-columns:repeat(6,minmax(0,1fr))}.tile{background:var(--surface-gradient);border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);min-width:0}.tile .label{font-size:var(--text-xs);color:var(--color-muted);font-weight:500}.tile .value{font:400 32px/1.15 var(--font-display);margin-top:6px}.tile .value small{font:500 13px var(--font-ui);color:var(--color-muted);margin-left:4px}.tile .foot{font-size:var(--text-xs);color:var(--color-subtle);margin-top:2px}.tile .foot.up{color:var(--color-good)}.pb-table{border-collapse:collapse;width:100%}.pb-table th{text-align:left;font-size:var(--text-xs);color:var(--color-subtle);padding:0 var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--color-hairline);font-weight:600}.pb-table td{padding:var(--space-3) var(--space-3) var(--space-3) 0;border-bottom:1px solid var(--color-hairline);vertical-align:middle;font-size:14px}.pb-table tr:last-child td{border-bottom:0}.pb-table .r{text-align:right;white-space:nowrap}.spark{width:112px;height:32px;overflow:visible}.spark path{fill:none;stroke:var(--color-accent);stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}.spark .area{fill:var(--color-accent-soft);stroke:none}.spark circle{fill:var(--color-accent)}.goal-ring{align-items:center;gap:var(--space-5);display:flex}.goal-ring .ring{flex:none;width:96px;height:96px;transform:rotate(-90deg)}.goal-ring .ring circle{fill:none;stroke-width:9px}.history-day{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-subtle);padding:var(--space-4) 0 var(--space-1);font-weight:700}.board-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.board{padding:var(--space-5)}.board h3{font-size:15px;font-weight:600}.board .meta{font-size:var(--text-xs);color:var(--color-subtle);margin:2px 0 var(--space-3)}.rank{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-2);border-radius:var(--radius-sm);display:flex}.rank+.rank{margin-top:2px}.rank .pos{background:var(--color-inset);width:24px;height:24px;color:var(--color-muted);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.rank .who{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.rank .num{font-size:14px}.rank.me{background:var(--color-accent-soft)}.rank.me .who:after{content:" (you)";color:var(--color-muted);font-size:12px}.announce{gap:var(--space-4);align-items:flex-start;display:flex}.announce+.announce{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-hairline)}.announce .date{text-align:center;border-radius:var(--radius-sm);background:var(--color-inset);border:1px solid var(--color-hairline);width:52px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;flex:none;padding:6px 0;font-size:11px}.announce .date b{font:400 20px/1.1 var(--font-display);color:var(--color-ink);letter-spacing:0;display:block}.notice{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--color-brass-soft);border:1px solid color-mix(in srgb, var(--color-brass) 30%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:14px;display:flex}.barchart{align-items:stretch;gap:var(--space-2);height:220px;display:flex}.bc-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.bc-bar{background:var(--color-accent);border-radius:6px 6px 2px 2px;width:100%;max-width:44px;min-height:3px}.bc-bar.dim{background:color-mix(in srgb, var(--color-accent) 38%, var(--color-surface-raised))}.bc-v{color:var(--color-muted);font-size:12px}.bc-l{color:var(--color-subtle);white-space:nowrap;font-size:11px}.heat-axis{justify-content:space-between;display:flex}.narrow-only{display:none}.heat{gap:0 var(--space-3);grid-template-columns:minmax(64px,120px) 1fr;align-items:center;display:grid}.heat-name.text-link{color:var(--color-ink);min-height:44px}.heat-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.heat-cells{grid-template-columns:repeat(28,1fr);gap:2px;display:grid}.heat-cells i{aspect-ratio:1;background:var(--heat-0);border-radius:3px;max-height:22px}.heat-cells i[data-l="1"]{background:var(--heat-1)}.heat-cells i[data-l="2"]{background:var(--heat-2)}.heat-cells i[data-l="3"]{background:var(--heat-3)}.heat-cells i[data-l="4"]{background:var(--heat-4)}.heat-cells i.wk{margin-left:4px}.heat-legend{font-size:var(--text-xs);color:var(--color-subtle);align-items:center;gap:4px;display:flex}.heat-legend i{border-radius:3px;width:12px;height:12px}.md{gap:var(--space-6);grid-template-columns:320px minmax(0,1fr);align-items:start;display:grid}.roster{padding:var(--space-4);top:calc(var(--topbar-h) + 16px);position:sticky}.roster-list{margin-top:var(--space-3);max-height:calc(100vh - 240px);overflow-y:auto}.roster-item{gap:var(--space-3);width:100%;padding:10px var(--space-3);border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;align-items:center;min-height:56px;display:flex}.roster-item:hover{background:var(--color-surface-hover)}.roster-item[aria-current=true]{background:var(--color-accent-soft);box-shadow:inset 3px 0 0 var(--color-accent)}.roster-item .row-meta{font-size:var(--text-xs)}.detail-head{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.detail-who{gap:var(--space-4);align-items:center;min-width:0;display:flex}.detail-who h2{font:400 28px/1.15 var(--font-display)}.tab-panel{padding-top:var(--space-5)}.assign-row{align-items:center;gap:var(--space-3);min-height:56px;padding:8px 0;display:flex}.assign-row+.assign-row{border-top:1px solid var(--color-hairline)}.plan-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-inset);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);display:flex}.plan-item .n{background:var(--color-surface-hover);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.note-item{padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-inset);border:1px solid var(--color-hairline)}.note-item p{white-space:pre-wrap}.back-btn{display:none}.cat-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(176px,1fr));display:grid}.cat-card-wrap{display:grid;position:relative}.cat-card-wrap .cat-card{width:100%}.cat-card-wrap .cat-card .t{padding-right:104px}.cat-card-actions{display:flex;position:absolute;top:2px;right:2px}.cat-card-actions .btn{padding:0 8px}.cat-card{text-align:left;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-hairline);background:var(--surface-gradient);align-content:space-between;gap:var(--space-2);min-height:96px;display:grid}.cat-card:hover{border-color:var(--color-control-edge)}.cat-card[aria-pressed=true]{border-color:var(--color-accent-line);background:linear-gradient(var(--color-accent-soft), var(--color-accent-soft)), var(--color-surface)}.cat-card .n{font:400 26px/1 var(--font-display)}.cat-card .t{font-size:13px;font-weight:600}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;font-size:var(--text-xs);color:var(--color-subtle);padding:var(--space-3);border-bottom:1px solid var(--color-edge);white-space:nowrap;font-weight:600}.table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-hairline);height:56px}.table tbody tr:hover{background:color-mix(in srgb, var(--color-surface-hover) 60%, transparent)}.table .actions{text-align:right;white-space:nowrap}.table-wrap{overflow-x:auto}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid .full{grid-column:1/-1}.radio-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.radio-pill{position:relative}.radio-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.radio-pill span{min-height:var(--touch);border-radius:var(--radius-sm);border:1px solid var(--color-edge);color:var(--color-muted);align-items:center;padding:0 14px;font-size:14px;display:inline-flex}.radio-pill input:checked+span{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-ink)}.radio-pill input:focus-visible+span{outline:2px solid var(--color-accent);outline-offset:2px}.check{align-items:center;gap:var(--space-3);min-height:var(--touch);font-size:14px;display:flex}.check input{width:20px;height:20px;accent-color:var(--color-accent);margin:0}.mock-table{border-collapse:collapse;width:100%;font-size:13px}.mock-table th,.mock-table td{border:1px solid var(--color-hairline);text-align:left;padding:8px 10px}.mock-table th{background:var(--color-inset);color:var(--color-muted);font-weight:600;font-family:var(--font-mono);font-size:12px}.dropzone{border:1.5px dashed var(--color-control-edge);border-radius:var(--radius-md);padding:var(--space-5);gap:var(--space-4);color:var(--color-muted);align-items:center;font-size:14px;display:flex}.settings-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.preview{top:calc(var(--topbar-h) + 24px);position:sticky}.preview-bar{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-hairline);align-items:center;gap:10px;display:flex}.preview-bar>span{flex-direction:column;line-height:1.1;display:flex}.settings{gap:var(--space-6);max-width:820px;display:grid}.setting-section{gap:var(--space-6);grid-template-columns:220px minmax(0,1fr);display:grid}.setting-section h2{font-size:var(--text-lg);font-weight:600}.setting-section .desc{font-size:var(--text-sm);color:var(--color-muted);margin-top:4px}.swatches{gap:var(--space-3);flex-wrap:wrap;display:flex}.swatch{position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch span{width:var(--touch);height:var(--touch);background:var(--c);border:3px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-edge);border-radius:50%;place-items:center;display:grid}.swatch input:checked+span{box-shadow:0 0 0 2px var(--color-ink)}.swatch input:focus-visible+span{outline:2px solid var(--color-ink);outline-offset:4px}.swatch .icon{color:#1b1111;opacity:0;stroke-width:2.4px;width:18px;height:18px}.swatch input:checked+span .icon{opacity:1}.privacy-opts{gap:var(--space-2);display:grid}.privacy-opt{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-edge);cursor:pointer;align-items:flex-start;display:flex;position:relative}.privacy-opt input{width:18px;height:18px;accent-color:var(--color-accent);flex:none;margin:3px 0 0}.privacy-opt:has(input:checked){border-color:var(--color-accent-line);background:var(--color-accent-soft)}.privacy-opt b{font-size:14px;display:block}.privacy-opt .ex{font-size:var(--text-sm);color:var(--color-muted)}.logo-slot{gap:var(--space-4);align-items:center;display:flex}.logo-slot .preview{border-radius:var(--radius-md);background:var(--color-inset);border:1px solid var(--color-edge);place-items:center;width:64px;height:64px;display:grid}.logo-slot .preview img{width:40px;height:40px}body.is-login .topbar{background:0 0;border-color:#0000;position:absolute;left:0;right:0}body.is-login .page{max-width:none;padding:0}body.is-login .topbar-inner{max-width:none;padding:0 clamp(24px,6vw,120px)}.login{min-height:100vh;padding:calc(var(--topbar-h) + 24px) clamp(24px, 6vw, 120px) 40px;isolation:isolate;grid-template-rows:1fr auto;align-content:stretch;display:grid;position:relative;overflow:hidden}.login:before{content:"";z-index:-1;background:url(/img/login-stage.webp) bottom/cover no-repeat;position:absolute;inset:0}.login:after{content:"";z-index:-1;background:linear-gradient(#0a090859,#0000 22% 78%,#0a0908b3);position:absolute;inset:0}.login-inner{align-self:center;gap:var(--space-12);text-align:left;grid-template-columns:minmax(0,1fr) minmax(360px,460px);align-items:center;width:100%;display:grid}.login-brand .mark{width:72px;height:72px;margin-bottom:var(--space-6)}.login-brand{position:relative}.login-brand:before{content:"";z-index:-1;pointer-events:none;filter:blur(8px);background:radial-gradient(at 42%,#080706b8 0%,#08070680 50%,#0000 80%);position:absolute;inset:-56px -72px -56px -96px}.login-brand .eyebrow{margin-bottom:var(--space-4);text-shadow:0 1px 10px #000000e6}.login-brand h1{font:400 clamp(48px, 6vw, 84px)/.98 var(--font-display);letter-spacing:-.03em;text-shadow:0 2px 6px #000000b3,0 4px 34px #000000f2}.login-brand h1 span{color:#e0b04b;display:block}.topbar-link{min-height:var(--touch);color:var(--color-muted);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;margin-left:auto;font-size:12px;text-decoration:none;display:inline-flex}.topbar-link:hover{color:var(--color-ink)}.topbar-link svg{color:#e0b04b;width:18px;height:18px}.topbar-link .chev{width:14px;height:14px;color:var(--color-muted)}.login-tiles{width:100%;margin:var(--space-8) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid}.login-tiles li{padding:0 var(--space-6);border-left:1px solid #e0b04b47;align-items:center;gap:16px;display:flex}.login-tiles li:first-child{border-left:0;padding-left:0}.login-tiles svg{color:#e0b04b;flex:none;width:44px;height:44px}.login-tiles strong{font:400 22px/1.2 var(--font-display);color:var(--color-ink);text-shadow:0 1px 10px #000000e6;display:block}.login-tiles span{color:var(--color-ink);opacity:.8;text-shadow:0 1px 10px #000000e6;max-width:24ch;margin-top:4px;font-size:14px;display:block}.login-brand p{margin-top:var(--space-5);color:var(--color-ink);opacity:.88;text-shadow:0 1px 4px #000c,0 2px 18px #000000f2;max-width:38ch;font-size:19px}.login-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--radius-lg);width:100%;padding:var(--space-8);box-shadow:0 0 48px #e0b04b24, inset 0 0 28px #e0b04b0f, var(--shadow-2);background:#16130f80;border:1px solid #e0b04b73}.login-card h2{font:400 30px/1.15 var(--font-display);margin-bottom:var(--space-2)}.btn-google{color:#1f1f1f;width:100%;min-height:52px;margin-top:var(--space-6);background:#fff;border:1px solid #dadce0;gap:12px;font-size:15px;font-weight:600}.btn-google:hover{background:#f4f5f6;border-color:#c7c9cc}.btn-google svg{width:20px;height:20px}.login-help{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--color-muted)}.login-secondary{text-align:center;margin-top:var(--space-4)}.toast{z-index:80;border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-ground);box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transition:opacity var(--dur), transform var(--dur) var(--ease);max-width:calc(100vw - 32px);padding:12px 18px;font-size:14px;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.proto{z-index:70;font-size:13px;position:fixed;bottom:16px;left:16px}.proto-toggle{border-radius:var(--radius-pill);border:1px dashed var(--color-control-edge);background:var(--color-inset);min-height:36px;color:var(--color-muted);letter-spacing:.04em;padding:0 12px;font-size:12px;font-weight:600}.proto-toggle:hover{color:var(--color-ink)}.proto-panel{width:230px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-inset);border:1px dashed var(--color-control-edge);box-shadow:var(--shadow-2);position:absolute;bottom:calc(100% + 8px);left:0}.proto-title{text-transform:uppercase;letter-spacing:.1em;color:var(--color-subtle);margin-bottom:var(--space-2);font-size:11px}.proto-options label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:36px;padding:0 6px;display:flex}.proto-options label:hover{background:var(--color-surface)}.proto-options input{accent-color:var(--color-accent);margin:0}.proto-reset{margin-top:var(--space-2);border:1px solid var(--color-edge);width:100%;min-height:36px;color:var(--color-muted);background:0 0;border-radius:6px;font-size:12px}@media (width<=1180px){.stat-tiles.six{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=999px){.topbar-inner{gap:var(--space-4)}.primary-nav{z-index:45;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);border-top:1px solid var(--color-hairline);background:#15181cf7;gap:0;position:fixed;bottom:0;left:0;right:0}.primary-nav:empty{display:none}.nav-link{min-height:var(--tabbar-h);border-radius:0;flex-direction:column;flex:1;justify-content:center;gap:3px;padding:0 4px;font-size:11px}.nav-link:hover{background:0 0}.nav-link .icon{width:22px;height:22px}.nav-link[aria-current=page]:after{inset:0 30% auto}.page{padding-bottom:calc(var(--tabbar-h) + 96px + env(safe-area-inset-bottom))}.proto{bottom:calc(var(--tabbar-h) + 10px + env(safe-area-inset-bottom));left:8px}.proto-toggle{opacity:.8;min-height:28px;padding:0 10px;font-size:11px}.settings-layout{grid-template-columns:minmax(0,1fr)}.preview{display:none}.toast{bottom:calc(var(--tabbar-h) + 20px)}.grid-main,.grid-2{grid-template-columns:minmax(0,1fr)}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.md{grid-template-columns:minmax(0,1fr)}.md.has-detail .roster,.md:not(.has-detail) .detail{display:none}.roster{position:static}.roster-list{max-height:none}.back-btn{margin:-8px 0 var(--space-3) -12px;display:inline-flex}.setting-section{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.login-inner{gap:var(--space-8);grid-template-columns:minmax(0,1fr);max-width:520px}.login-tiles{max-width:520px;margin-inline:auto}.login:before{background-position:14% bottom}.topbar-link span,.topbar-link .chev{display:none}}@media (width<=720px){.login-tiles li{text-align:center;padding:0 var(--space-2);flex-direction:column;align-items:center;gap:8px}.login-tiles li:first-child{padding-left:0}.login-tiles li:last-child{padding-right:0}.login-tiles svg{width:32px;height:32px}.login-tiles strong{font-size:16px}.login-tiles span{max-width:none;font-size:12px}:root{--gutter:16px}.page{padding-top:var(--space-6)}.page-head{margin-bottom:var(--space-6);align-items:stretch}.page-actions,.page-actions .btn{width:100%}.page-actions .btn{flex:1}.card{padding:var(--space-5)}.grid-3{grid-template-columns:minmax(0,1fr)}.stat-tiles.six,.cat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-card-actions{justify-content:flex-end;position:static}.cat-card-wrap .cat-card .t{padding-right:0}.hero-action{padding:var(--space-5)}.hero-action .btn{width:100%}.account-btn .who,.account-btn .icon{display:none}.account-btn{min-width:var(--touch);justify-content:center;padding:4px}.brand-name{font-size:19px}.form-grid{grid-template-columns:minmax(0,1fr)}.pb-table .hide-sm{display:none}.heat-cells{grid-template-columns:repeat(14,1fr);gap:3px}.heat-cells i:nth-child(-n+14),.wide-only{display:none}.narrow-only{display:inline}.bc-col:nth-child(2n):not(:last-child) .bc-l{visibility:hidden}.spark{width:72px}.table.stackable thead{display:none}.table.stackable tr{gap:2px var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-hairline);grid-template-columns:1fr auto;display:grid}.table.stackable td{border:0;height:auto;padding:0}.table.stackable td.c-name{grid-column:1;font-weight:600}.table.stackable td.c-num,.table.stackable td.c-unit{display:none}.table.stackable td.c-cat{font-size:var(--text-sm);color:var(--color-muted);grid-column:1}.table.stackable td.c-dir{font-size:var(--text-xs);color:var(--color-subtle);grid-column:1}.table.stackable td.c-flag:empty{display:none}.table.stackable td.actions{grid-area:1/2/span 3;align-self:center}.login-card{padding:var(--space-6)}.dlg-head,.dlg-body{padding-left:var(--space-5);padding-right:var(--space-5)}.dlg-foot{padding:0 var(--space-5) var(--space-5)}.dlg-foot .btn{flex:1}.sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100vw;max-width:100vw;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;margin:auto auto 0}}@media (width<=360px){.brand-studio{display:none}.stat-tiles,.stat-tiles.six{grid-template-columns:minmax(0,1fr)}.tile .value{font-size:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.bg-mark{opacity:.14;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;width:min(60vh,560px);height:auto;position:fixed;top:50%;left:-9vw;transform:translateY(-50%)rotate(-8deg)}.topbar{z-index:40}.page{z-index:1;position:relative}body.is-login .bg-mark{display:none}@media (width<=900px){.bg-mark{opacity:.06;width:80vw;left:-22vw}}@media (prefers-reduced-motion:no-preference){.bg-mark{transition:opacity .3s}}.query-error{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.query-error p{margin:0}.coach-error .btn,.library-error .btn{margin-left:var(--space-2)}:root{--gold:#e0b04b;--gold-hi:#f1cf7f;--on-gold:#1c1406;--gold-line:#e0b04b61;--gold-faint:#e0b04b24;--color-brass:var(--gold);--led-off:#23282e;--fret:#444c56;--stage-photo:url(/img/stage-guitar.webp);--stage-photo-sm:url(/img/stage-guitar-sm.webp)}.topbar{box-shadow:0 1px 0 var(--gold-faint), 0 8px 24px #00000047;border-bottom:1px solid #0b0c0e}.brand-name{letter-spacing:0}.nav-link[aria-current=page]:after{background:var(--gold)}.nav-link[aria-current=page] .icon{color:var(--gold)}:focus-visible{outline-color:var(--gold)}.bg-mark{opacity:.09;width:min(56vh,520px);left:1vw}@media (width<=900px){.bg-mark{display:none}}.topbar-forum-slot{width:96px;font:600 13px/1 var(--font-body,inherit);color:var(--color-muted);cursor:default;flex:none;align-items:center;gap:6px;display:inline-flex}.topbar-forum-soon{font:600 9px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-faint);border-radius:999px;padding:3px 6px}@media (width<=1100px){.topbar-forum-slot{display:none}}body.is-login .topbar-forum-slot{display:none}.topbar-forum-link{flex:none}.topbar-forum-link:hover{background:var(--color-surface)}.nav-badge{border-radius:var(--radius-pill);background:var(--gold);min-width:18px;height:18px;color:var(--on-gold);font:600 11px/1 var(--font-mono);letter-spacing:0;place-items:center;padding:0 5px;display:inline-grid}@media (width<=1100px){.topbar-forum-link{padding:0 8px}.topbar-forum-link span{display:none}}@media (width<=999px){.topbar-forum-link{min-height:var(--touch);border-radius:var(--radius-sm);flex-direction:row;flex:none;padding:0 8px}.topbar-forum-link .icon{width:20px;height:20px}.topbar-forum-link:hover{background:var(--color-surface)}.topbar-forum-link[aria-current=page]:after{inset:auto 8px -10px}}.eyebrow{font:600 11px/1.4 var(--font-mono);letter-spacing:.18em;color:var(--gold)}.page-title{font-size:clamp(32px,4.2vw,48px);line-height:1.06}.card-title{font:400 22px/1.2 var(--font-display);letter-spacing:-.005em}.card-sub{font:500 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.page-head{isolation:isolate;justify-content:flex-end;align-items:flex-start;gap:var(--space-5);min-height:196px;margin-bottom:var(--space-8);flex-flow:column;padding-bottom:40px;position:relative}.page-head-text{flex:none;width:100%;max-width:560px}.page-sub{max-width:46ch;font-size:16px}.page-head:before{content:"";z-index:-1;pointer-events:none;top:calc(-1 * var(--space-8));background:var(--stage-photo) right 0 top 62% / cover no-repeat;-webkit-mask-composite:source-in;width:min(54vw,760px);position:absolute;bottom:14px;right:calc(50% - 50vw);-webkit-mask-image:linear-gradient(#000 62%,#0000 100%),linear-gradient(90deg,#0000 0,#000 22%);mask-image:linear-gradient(#000 62%,#0000 100%),linear-gradient(90deg,#0000 0,#000 22%);-webkit-mask-composite:source-in;mask-composite:intersect}.page-head:after{content:"";pointer-events:none;background:radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 26.82% 50% / 6px 6px no-repeat, radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 45.71% 50% / 6px 6px no-repeat, radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 62.55% 50% / 6px 6px no-repeat, radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 77.54% 50% / 6px 6px no-repeat, radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 97.03% 1px / 6px 6px no-repeat, radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 97.03% calc(100% - 1px) / 6px 6px no-repeat, linear-gradient(var(--gold), var(--gold)) 0 0 / 3px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 11.23% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 21.82% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 31.82% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 41.26% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 50.17% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 58.58% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 66.52% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 74.01% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 81.08% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 87.75% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 94.05% 0 / 1px 100% no-repeat, linear-gradient(var(--fret), var(--fret)) 100% 0 / 1px 100% no-repeat, linear-gradient(var(--color-hairline), var(--color-hairline)) 0 50% / 100% 1px no-repeat;height:14px;position:absolute;bottom:0;left:0;right:0}.page-head.stage{gap:var(--space-6);min-height:380px;padding-bottom:48px}.page-head.stage:before{background-position:right 0 top 58%;width:min(66vw,940px)}.stage .page-title{letter-spacing:-.025em;text-shadow:0 2px 18px #0009;font-size:clamp(40px,5.4vw,64px);line-height:1.02}.stage .page-sub{color:var(--color-ink);opacity:.86}.stage .hero-action{box-shadow:none;gap:var(--space-5);background:0 0;border:0;flex-wrap:wrap;align-items:center;max-width:620px;padding:0}.stage .hero-action .text{flex:220px;order:2}.stage .hero-action .big{font:400 italic 19px/1.3 var(--font-display);color:var(--color-ink)}.stage .hero-action .muted{font-size:14px}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--on-gold);box-shadow:0 0 0 1px #0006,0 10px 28px #e0b04b2e}.btn-gold:hover{background:var(--gold-hi);border-color:var(--gold-hi)}.btn-gold .icon{width:18px;height:18px}.card{box-shadow:inset 0 1px 0 var(--gold-faint), 0 12px 32px #00000047;background:linear-gradient(#1d2126,#191c21);border-color:#262b31;border-radius:12px}.card>.card-head{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-hairline);margin-bottom:var(--space-1)}.tile{box-shadow:inset 0 1px 0 var(--gold-faint);border-radius:12px}.tile .value{color:var(--color-ink)}.setlist{counter-reset:song}.setlist>li{counter-increment:song}.setlist>li:before{content:counter(song, decimal-leading-zero);width:28px;font:600 13px/1 var(--font-mono);color:var(--gold);letter-spacing:.04em;flex:none}.setlist>li:has(.done):before{color:var(--color-subtle)}.setlist>li:has(.done) .row-title{color:var(--color-muted)}.row-title{font-size:15.5px;font-weight:600}.pb .num{color:var(--color-ink)}.drill-row .play{border:1px solid var(--gold-line);color:var(--gold);background:radial-gradient(circle at 50% 34%,#3a3f47 0,#24282e 46%,#111316 100%);box-shadow:0 0 0 3px #121418,0 0 0 4px #e0b04b29,inset 0 1px #ffffff14}.drill-row .play:hover{border-color:var(--gold);color:var(--gold-hi)}.drill-row .play .icon{width:18px;height:18px;margin-left:2px}.drill-row .play.play-locked,.drill-row .play.play-locked:hover{color:var(--color-muted);border-color:var(--color-edge);box-shadow:none;background:var(--color-inset)}.drill-row .play.play-locked .icon{margin-left:0}.streak-num .big{font-size:52px}.streak-num .icon{color:var(--color-accent)}.day-bar{background:repeating-linear-gradient(0deg, var(--led-off) 0 4px, transparent 4px 6px);border:0;border-radius:2px;height:64px}.day-bar span{background:var(--gold);border-radius:0;-webkit-mask:repeating-linear-gradient(0deg,#000 0 4px,#0000 4px 6px);mask:repeating-linear-gradient(0deg,#000 0 4px,#0000 4px 6px)}.day.today{color:var(--gold)}.day.today .day-bar span{background:var(--color-accent)}.meter{background:repeating-linear-gradient(90deg, var(--led-off) 0 6px, transparent 6px 8px);border:0;border-radius:2px;height:14px}.meter span{background:var(--gold);border-radius:0;-webkit-mask:repeating-linear-gradient(90deg,#000 0 6px,#0000 6px 8px);mask:repeating-linear-gradient(90deg,#000 0 6px,#0000 6px 8px)}.coach-note{padding-left:calc(var(--space-6) + 6px);border-left:0;position:relative}.coach-note:before{content:"";border-left:2px solid var(--gold);border-right:1px solid var(--gold-line);width:4px;position:absolute;top:18px;bottom:18px;left:0}.coach-note blockquote{font-size:19px}.coach-note .avatar,.avatar{background:var(--gold-faint);color:var(--gold);border-color:var(--gold-line)}.roster-item[aria-current=true]{box-shadow:inset 3px 0 0 var(--gold)}.rank:first-of-type .pos,.rank.first .pos{background:var(--gold);color:var(--on-gold)}.tab[aria-selected=true]{border-bottom-color:var(--gold)}.cat-card .n{color:var(--gold)}@media (width<=999px){.page-head:before{width:min(62vw,620px)}.page-head.stage{min-height:340px}.page-head.stage:before{width:72vw}}@media (width<=720px){.page-head{gap:var(--space-4);min-height:0;margin-bottom:var(--space-6);padding-top:112px;padding-bottom:32px}.page-head:before{top:calc(-1 * var(--space-6));left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));background:var(--stage-photo-sm) center 62% / cover no-repeat;width:auto;height:150px;bottom:auto;-webkit-mask-image:linear-gradient(#000 55%,#0000 100%);mask-image:linear-gradient(#000 55%,#0000 100%)}.page-head.stage{gap:var(--space-5);min-height:0;padding-top:176px;padding-bottom:36px}.page-head.stage:before{background-position:50% 55%;width:auto;height:236px}.stage .page-title{font-size:40px}.stage .hero-action,.stage .hero-action .btn{width:100%}.stage .hero-action .text{flex-basis:100%}.card-title{font-size:20px}.setlist>li:before{width:20px;margin-right:-4px}.day-bar{height:52px}}
