@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0d0e12;--bg-raised: #15171d;--bg-card: #1a1d24;--bg-hover: #22262f;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #e8e6e1;--text-dim: #9a978f;--text-faint: #605e57;--accent: #f5a524;--accent-strong: #ffc45e;--accent-dim: rgba(245, 165, 36, .14);--danger: #e5484d;--green: #46a758;--fret-nut: #d8d4cb;--fret-line: rgba(255, 255, 255, .16);--string-line: rgba(220, 214, 200, .5);--note-bg: #3a3f4b;--radius: 14px;--radius-sm: 9px;--shadow: 0 8px 30px rgba(0, 0, 0, .45);--font: "Inter Variable", "Inter", system-ui, -apple-system, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);background:radial-gradient(1200px 700px at 80% -10%,rgba(245,165,36,.07),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(90,169,230,.05),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1{font-size:1.9rem;font-weight:650;letter-spacing:-.02em}h2{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}h3{font-size:1.05rem;font-weight:600}h4{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}::selection{background:var(--accent-dim)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2c303a;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#3a3f4b}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--bg-hover);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 18px;font-size:.92rem;font-weight:550;transition:background .15s,border-color .15s,transform .1s,box-shadow .2s}.btn:hover{background:#2a2f3a;border-color:#ffffff38}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:linear-gradient(160deg,var(--accent-strong),var(--accent) 55%,#d98a10);color:#1a1205;border-color:transparent;box-shadow:0 2px 14px #f5a52440}.btn.primary:hover{box-shadow:0 4px 22px #f5a52466;filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn.ghost:hover{background:var(--bg-hover);color:var(--text)}.btn.danger{background:transparent;border-color:#e5484d66;color:var(--danger)}.btn.danger:hover{background:#e5484d1f}.btn.lg{padding:12px 26px;font-size:1rem;border-radius:12px}.btn.xl{padding:16px 38px;font-size:1.15rem;border-radius:14px}.btn.sm{padding:5px 10px;font-size:.8rem}.btn.accent{color:var(--accent);border-color:#f5a52480;background:var(--accent-dim)}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:min(400px,100%);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:30px 28px;display:flex;flex-direction:column;gap:16px}.auth-brand{display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:700}.auth-brand svg{color:var(--accent)}.auth-sub{color:var(--text-dim);font-size:.9rem;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:13px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:var(--text-dim)}.auth-form input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 12px;font:inherit}.auth-form input:focus{outline:none;border-color:var(--accent)}.auth-error{color:#f27d81;font-size:.84rem}.auth-submit{justify-content:center}.auth-switch{display:inline-flex;align-items:center;gap:7px;align-self:center;color:var(--text-faint);font-size:.82rem;transition:color .15s}.auth-switch:hover{color:var(--accent)}.feedback-root{position:fixed;right:22px;bottom:22px;z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.feedback-root.left{right:auto;left:22px;align-items:flex-start}.feedback-fab{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),#e08f0e);border:none;color:#1c1206;box-shadow:0 6px 24px #f5a52473,0 4px 16px #0006;animation:fab-pulse 2.6s ease-in-out 3}.feedback-fab:hover{box-shadow:0 8px 30px #f5a524a6,0 4px 16px #0006}@keyframes fab-pulse{0%,to{box-shadow:0 6px 24px #f5a52473,0 4px 16px #0006}50%{box-shadow:0 0 0 10px #f5a5241f,0 6px 24px #f5a52499}}.feedback-popover{width:320px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 14px 40px #0000008c;padding:12px;display:flex;flex-direction:column;gap:9px}.feedback-head{display:flex;align-items:center;justify-content:space-between;font-size:.9rem}.feedback-head .icon-btn{display:flex;padding:3px;color:var(--text-faint);border-radius:6px}.feedback-head .icon-btn:hover{color:var(--text);background:var(--bg-hover)}.feedback-popover textarea{width:100%;min-height:84px;resize:vertical;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:9px 10px;font:inherit;font-size:.88rem}.feedback-popover textarea:focus{outline:none;border-color:var(--accent)}.feedback-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.feedback-hint{font-size:.72rem;color:var(--text-faint)}.feedback-sent{display:flex;align-items:center;gap:8px;color:#6fc481;font-weight:600;padding:8px 4px}input[type=text],input[type=number],input:not([type]),select,textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:9px 12px;font-size:.95rem;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}textarea{resize:vertical}.chip{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:550;transition:all .15s}.chip:hover{color:var(--text);border-color:#ffffff4d}.chip.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-strong)}.app{flex:1;display:flex;flex-direction:column}.topnav{display:flex;align-items:center;gap:28px;padding:14px 30px;border-bottom:1px solid var(--border);background:#0d0e12bf;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50}.brand{font-weight:760;font-size:1.08rem;letter-spacing:-.022em;display:flex;align-items:center;gap:9px}.brand-icon{color:var(--accent);filter:drop-shadow(0 0 10px rgba(245,165,36,.5));rotate:-14deg}.boot{position:fixed;inset:0;z-index:400;background:var(--bg);display:flex;align-items:center;justify-content:center}.boot-inner{display:flex;flex-direction:column;align-items:center;gap:20px}.boot-mark{color:var(--accent);filter:drop-shadow(0 0 22px rgba(245,165,36,.35));rotate:-14deg}.boot-mark path:nth-child(1){stroke-dasharray:60;stroke-dashoffset:60;animation:boot-draw .75s ease-out .1s forwards}.boot-mark path:nth-child(2){stroke-dasharray:6;stroke-dashoffset:6;animation:boot-draw .3s ease-out .8s forwards}.boot-mark path:nth-child(3){stroke-dasharray:4.5;stroke-dashoffset:4.5;animation:boot-draw .3s ease-out .95s forwards}@keyframes boot-draw{to{stroke-dashoffset:0}}.boot-name{font-size:1.4rem;font-weight:760;letter-spacing:-.022em}.streak-flame{color:var(--accent);vertical-align:-2px}.nav-tabs{display:flex;gap:4px;flex:1}.nav-tab{position:relative;background:none;border:none;color:var(--text-dim);font-size:.95rem;font-weight:550;padding:8px 16px;transition:color .15s}.nav-tab:hover{color:var(--text)}.nav-tab.on{color:var(--accent-strong)}.beta-badge{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-strong);background:var(--accent-dim);border-radius:999px;padding:2px 6px;margin-left:5px;vertical-align:super}.nav-underline{position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px var(--accent)}.nav-right{display:flex;align-items:center;gap:10px}.nav-user{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:600;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:6px 13px;transition:color .15s,border-color .15s}.nav-user:hover{color:#f27d81;border-color:#f27d81}.track-group{margin-bottom:34px}.track-group-head{margin:0 0 14px}.track-group-head h2{font-size:1.45rem;margin:0;letter-spacing:-.01em}.stat-card.kpi{min-width:170px;display:flex;flex-direction:column;gap:4px}.stat-card.kpi .spark{width:100%;height:30px}.kpi-select{background:transparent;border:none;color:var(--text-dim);font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.02em;max-width:100%;text-overflow:ellipsis;cursor:pointer;padding:0}.kpi-select:hover{color:var(--text)}.kpi-select option{background:var(--bg-raised);color:var(--text)}.kpi-unit{font-size:.7rem;font-weight:700;color:var(--text-faint);margin:0 8px 0 5px}.stat-card.kpi .tempo-delta{font-size:.8rem}.nav-sound{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:color .15s,border-color .15s}.nav-sound:hover{color:var(--text);border-color:var(--border-strong)}.nav-role{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;transition:color .15s,border-color .15s}.nav-role:hover{color:var(--text);border-color:var(--border-strong)}.nav-role.admin{color:var(--accent-strong);border-color:color-mix(in srgb,var(--accent-strong) 45%,transparent)}.nav-streak{display:inline-flex;align-items:center;gap:6px;font-weight:650;font-size:.95rem;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:999px;padding:6px 14px}.load-error{margin:14px 30px;padding:12px 18px;border-radius:var(--radius-sm);background:#e5484d1f;border:1px solid rgba(229,72,77,.35);display:flex;align-items:center;gap:14px;font-size:.9rem}.load-error code{background:#00000059;padding:2px 7px;border-radius:5px}.page{padding:34px clamp(20px,5vw,60px);max-width:1200px;width:100%;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.empty-note{color:var(--text-faint);font-size:.92rem;padding:18px 0}.hero{display:flex;gap:40px;align-items:center;justify-content:space-between;padding:40px 44px;border-radius:22px;background:radial-gradient(600px 300px at 15% 0%,rgba(245,165,36,.1),transparent 65%),linear-gradient(165deg,#1d2029,#14161c);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:26px;flex-wrap:wrap}.hero-text h1{font-size:2.1rem;margin-bottom:8px}.hero-sub{color:var(--text-dim);margin-bottom:24px;font-size:1.02rem}.hero-stats{display:flex;gap:14px}.stat-card{background:#ffffff08;border:1px solid var(--border);border-radius:16px;padding:20px 24px;text-align:center;min-width:110px}.stat-card.lit{border-color:#f5a52473;background:var(--accent-dim);box-shadow:0 0 24px #f5a5241f}.stat-big{font-size:2rem;font-weight:700;letter-spacing:-.03em}.stat-label{color:var(--text-dim);font-size:.82rem;margin-top:2px}.heatmap-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;margin-top:30px;margin-bottom:26px}.heatmap-card h2{margin-bottom:16px}.tempo-card h2{display:flex;align-items:center;gap:8px}.tempo-card h2 svg{color:var(--accent)}.tempo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.tempo-item{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.tempo-name{font-size:.84rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spark{width:100%;height:34px}.spark polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.spark circle{fill:var(--accent)}.tempo-nums{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}.tempo-nums strong{font-size:1.02rem}.tempo-delta{font-size:.8rem;color:var(--text-faint)}.tempo-delta.up{color:#4ade80}.tempo-delta.down{color:#f87171}.tempo-sessions{margin-left:auto;font-size:.76rem;color:var(--text-faint)}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,14px);gap:4px;overflow-x:auto;padding-bottom:4px}.hm-cell{width:14px;height:14px;border-radius:3.5px;background:#20242d;transition:transform .1s}.hm-cell:hover{transform:scale(1.25)}.hm-cell.l1{background:#4a3a12}.hm-cell.l2{background:#8a6413}.hm-cell.l3{background:#c98f15}.hm-cell.l4{background:var(--accent-strong);box-shadow:0 0 8px #f5a52466}.home-learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.track-card.home-big{width:100%}.track-card.home-big .track-card-body h3{display:flex;align-items:center;gap:9px}.track-card.home-big h3 .home-continue-arrow{margin-left:auto}.home-card-kicker{position:absolute;top:12px;left:12px;font-size:.68rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--tc);background:#0a0a0cb8;border:1px solid var(--tc);border-radius:999px;padding:4px 11px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.home-continue-arrow{color:var(--text-dim);flex-shrink:0;transition:transform .2s,color .2s}.track-card.home-big:hover .home-continue-arrow{transform:translate(4px);color:var(--tc)}.home-rotator{position:relative}.home-rotator>div{height:100%}.home-rotator .track-card.home-big{height:100%;position:relative;overflow:hidden}.rotate-timer{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--tc);opacity:.55;transform-origin:left;transform:scaleX(0);animation:rotate-fill linear forwards;pointer-events:none}.rotate-timer.paused{animation-play-state:paused}@keyframes rotate-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.home-features{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:14px;margin-top:26px}.home-feature{display:flex;flex-direction:column;gap:7px;align-items:flex-start;text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:15px 16px;transition:border-color .2s,transform .2s}.home-feature:not(.callout):hover{border-color:var(--accent);transform:translateY(-2px)}.home-feature svg{color:var(--accent)}.home-feature strong{font-size:.94rem;color:var(--text)}.home-feature span{font-size:.82rem;color:var(--text-dim);line-height:1.5}.home-feature.callout{cursor:default;background:var(--accent-dim);border:1px solid rgba(245,165,36,.45)}.home-feature.callout svg{color:var(--accent)}.home-feature.callout strong{color:var(--accent-strong)}.home-feature.callout span{color:var(--text)}@media(max-width:1000px){.home-learn-grid,.home-features{grid-template-columns:1fr}}.home-routines h2{margin-bottom:14px}.home-routine-row{display:flex;gap:12px;flex-wrap:wrap}.home-routine{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:14px 20px;color:var(--text);display:flex;flex-direction:column;gap:3px;align-items:flex-start;transition:all .15s}.home-routine:hover{border-color:var(--accent);background:var(--bg-hover)}.home-routine span{color:var(--text-dim);font-size:.82rem}.filter-row{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.ex-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;cursor:pointer;transition:border-color .15s,box-shadow .2s}.ex-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.ex-card-actions{position:absolute;top:14px;right:14px;display:flex;gap:2px}.ex-hide{background:transparent;border:none;color:var(--text-faint);cursor:pointer;padding:5px;border-radius:7px;opacity:.55;transition:opacity .15s,color .15s,background .15s}.ex-card:hover .ex-hide{opacity:1}.ex-hide:hover{color:var(--text);background:var(--bg-hover)}.ex-preview{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;height:62px;margin-top:12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pc, var(--accent)) 6%,transparent);border:1px solid color-mix(in srgb,var(--pc, var(--accent)) 14%,transparent);overflow:hidden}.prev-order{position:absolute;top:5px;right:9px;font-size:.68rem;font-weight:750;letter-spacing:.08em;color:color-mix(in srgb,var(--pc) 65%,transparent)}.prev-fret{width:32px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--pc) 35%,transparent);border-radius:6px;font-size:.95rem;font-weight:700;color:color-mix(in srgb,var(--pc) 75%,#fff);opacity:.4;animation:prev-step linear infinite}@keyframes prev-step{0%,18%{opacity:1;background:color-mix(in srgb,var(--pc) 30%,transparent);transform:translateY(-1px)}26%,to{opacity:.4;background:transparent;transform:none}}.prev-chord{padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700;color:color-mix(in srgb,var(--pc) 75%,#fff);border:1px solid color-mix(in srgb,var(--pc) 30%,transparent);opacity:.4;animation:prev-step linear infinite}.prev-strum{display:inline-flex;width:14px;opacity:.35;color:color-mix(in srgb,var(--pc) 80%,#fff);animation:prev-step linear infinite}.prev-strum svg{width:14px;height:22px}.prev-string{position:absolute;left:10%;right:10%;height:1px;background:color-mix(in srgb,var(--pc) 30%,transparent)}.prev-dot{width:9px;height:9px;border-radius:50%;background:var(--pc);opacity:.25;z-index:1;animation:prev-run 2.1s linear infinite}@keyframes prev-run{0%,12%{opacity:1;transform:scale(1.25)}20%,to{opacity:.25;transform:scale(1)}}.prev-quiz{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--pc) 20%,transparent);color:color-mix(in srgb,var(--pc) 80%,#fff);font-size:.75rem;font-weight:800;z-index:1;opacity:.35;animation:prev-step 3.3s linear infinite}.prev-beat-group{display:inline-flex;gap:3px;margin:0 5px}.prev-tick{width:6px;height:14px;border-radius:3px;background:color-mix(in srgb,var(--pc) 45%,transparent);opacity:.3;animation:prev-step linear infinite}.prev-tick.accent{height:20px;background:color-mix(in srgb,var(--pc) 80%,transparent)}.prev-map{width:180px;height:50px}.prev-map-string{stroke:color-mix(in srgb,var(--pc) 22%,transparent);stroke-width:.7}.prev-map-string.on{stroke:color-mix(in srgb,var(--pc) 70%,transparent);stroke-width:1.4}.prev-map-dot{fill:color-mix(in srgb,var(--pc) 60%,transparent);animation:prev-map-glow 2.4s linear infinite}.prev-map-root{fill:color-mix(in srgb,var(--pc) 95%,#fff)}@keyframes prev-map-glow{0%,10%{opacity:1}18%,to{opacity:.45}}.prev-meta{margin-left:8px;font-size:.74rem;font-weight:700;color:color-mix(in srgb,var(--pc) 80%,#fff)}.prev-eq{width:5px;height:10px;border-radius:3px;background:color-mix(in srgb,var(--pc) 70%,transparent);animation:prev-eq .68s ease-in-out infinite alternate}@keyframes prev-eq{0%{height:7px;opacity:.45}to{height:26px;opacity:.95}}.admin-chip{display:inline-block;margin-left:6px;font-size:.72rem;font-weight:650;border-radius:999px;padding:3px 10px;background:#f5a5241f;color:var(--accent-strong)}.lib-section{margin-bottom:30px}.lib-section-head{display:flex;align-items:center;gap:9px;font-size:1.02rem;margin-bottom:12px;color:var(--text)}.lib-section-head svg{color:var(--accent)}.lib-section-count{font-size:.76rem;color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:2px 9px}.lib-search{margin-bottom:0;min-width:200px}.ex-card h3{margin:10px 0 6px}.ex-desc{color:var(--text-dim);font-size:.87rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ex-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;color:var(--text-faint);font-size:.8rem}.ex-meta span,.type-chip,.routine-time{display:inline-flex;align-items:center;gap:5px}.chord-next-label{display:inline-flex;align-items:center;gap:4px}.file-attached svg{color:var(--text-dim)}.done-icon{color:var(--accent);filter:drop-shadow(0 0 30px rgba(245,165,36,.4))}.type-chip{display:inline-block;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.07em;border-radius:999px;padding:4px 11px}.type-chip.technique{background:#5aa9e624;color:#7cbcf0}.type-chip.speed{background:#e5484d24;color:#f27d81}.type-chip.scale{background:#9d7be024;color:#b79aee}.type-chip.chords{background:#46a75829;color:#6fc481}.type-chip.song{background:var(--accent-dim);color:var(--accent-strong)}.type-chip.strumming{background:#e5707d24;color:#ef8e99}.type-chip.theory{background:#3fc1e824;color:#7ad4f0}.type-chip.lesson{background:#8bc34a24;color:#a5d375}.instr-chip{display:inline-block;margin-left:6px;font-size:.72rem;font-weight:650;text-transform:lowercase;border-radius:999px;padding:3px 10px;background:#5aa9e624;color:#7cbcf0}.filter-sep{width:1px;height:22px;background:var(--border-strong);margin:0 4px;align-self:center}.type-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.type-dot.technique{background:#5aa9e6}.type-dot.speed{background:#e5484d}.type-dot.scale{background:#9d7be0}.type-dot.chords{background:#46a758}.type-dot.song{background:var(--accent)}.type-dot.strumming{background:#e5707d}.type-dot.theory{background:#3fc1e8}.type-dot.lesson{background:#8bc34a}.lesson-study{width:min(880px,100%);display:flex;flex-direction:column;gap:14px;align-items:center}.lesson-study-scroll{width:100%;max-height:50vh;overflow-y:auto;padding:4px 18px 4px 4px;display:flex;flex-direction:column;gap:26px}.lesson-study-block{display:flex;flex-direction:column;gap:12px}.lesson-study-block p{margin:0;font-size:1.02rem;line-height:1.65;color:var(--text-dim)}.lesson-study-block .slide-key{color:var(--tc);font-weight:650}.lesson-study-block .slide-visual{align-self:center;max-width:100%}.lesson-study-foot{display:flex;justify-content:center}.builder-lessons-hint{color:var(--text-faint);font-size:.84rem;line-height:1.5;margin:0 0 10px}.theory-quiz{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:980px}.theory-prompt{font-size:1.15rem;color:var(--text-dim)}.theory-prompt strong{color:var(--text)}.theory-note{color:var(--accent);font-size:1.5rem;padding:0 4px}.theory-board{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.theory-row{display:grid;grid-template-columns:34px repeat(var(--frets),1fr);gap:3px;margin-bottom:3px;align-items:center}.theory-row.inactive{opacity:.25}.theory-row.asked .theory-stringlabel{color:var(--accent);font-weight:700}.theory-stringlabel{font-size:.8rem;color:var(--text-faint);text-align:center}.theory-fretnum{font-size:.68rem;color:var(--text-faint);text-align:center}.theory-fretnum.marker{color:var(--accent)}.theory-cell{height:30px;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);transition:background .12s,border-color .12s;padding:0}.theory-cell:hover:not(:disabled){border-color:var(--accent);background:var(--bg-hover)}.theory-cell:disabled{cursor:default}.theory-cell.lit{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent)}.theory-cell.good{background:#4ade804d;border-color:#4ade80;color:#4ade80}.theory-cell.bad{background:#f871714d;border-color:#f87171;color:#f87171}.theory-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}.theory-options{display:flex;gap:12px}.theory-option{min-width:64px;font-size:1.05rem;justify-content:center}.theory-score{display:flex;gap:10px}.strum-view{display:flex;align-items:center;justify-content:center;gap:56px;width:100%;flex-wrap:wrap}.strum-chords{display:flex;flex-direction:column;align-items:center;gap:10px}.strum-chord-next{display:flex;align-items:baseline;gap:8px;color:var(--text-dim);font-size:.82rem}.strum-next-name{font-size:1.05rem;font-weight:650;color:var(--text)}.strum-pattern-wrap{display:flex;flex-direction:column;gap:20px;align-items:center}.strum-row{display:flex;align-items:flex-end;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 18px 14px;box-shadow:var(--shadow)}.strum-slot{display:flex;flex-direction:column;align-items:center;gap:8px;width:52px}.spb-3 .strum-slot{width:46px}.spb-4 .strum-slot{width:38px}.strum-slot.beat-start:not(:first-child){border-left:1px solid var(--border-strong);margin-left:8px;padding-left:8px}.strum-glyph{display:flex;justify-content:center}.strum-arrow{width:26px;height:44px;stroke:var(--text);stroke-width:2.4;stroke-linecap:round;fill:none;overflow:visible}.spb-4 .strum-arrow{width:22px;height:38px}.strum-arrow.ghost{stroke:var(--text-dim);opacity:.38}.strum-arrow.muted{stroke:var(--text-dim)}.strum-mute-x line{stroke-width:2}.strum-glyph.active .strum-arrow{stroke:var(--accent);filter:drop-shadow(0 0 8px rgba(245,165,36,.55))}.strum-glyph.active.ghost .strum-arrow{opacity:.75}.strum-count{font-size:.82rem;color:var(--text-faint);font-variant-numeric:tabular-nums}.strum-count.beat{font-weight:700;color:var(--text-dim)}.strum-count.active{color:var(--accent)}.path-body{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,24vw,320px);gap:40px;align-items:start}.path-main{min-width:0}.path-intro{position:relative;background:radial-gradient(700px 320px at 100% 0%,color-mix(in srgb,var(--tc) 12%,transparent),transparent 65%),var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--tc);border-radius:var(--radius);padding:22px 26px;margin-bottom:22px;display:flex;flex-direction:column;gap:14px}.path-art-col{position:sticky;top:18px;display:flex;flex-direction:column;align-items:center;gap:0;min-height:280px;animation:cover-drift 9s ease-in-out infinite alternate}.path-art-col .intro-motif{position:relative;width:100%;min-height:260px}.art-col-cover{width:72%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--border-strong);box-shadow:0 10px 26px #00000080;transition:transform .2s;margin-top:-42%}.art-col-cover:first-child{margin-top:0;width:84%;z-index:2}.art-col-cover:hover{scale:1.12;z-index:9;position:relative}.art-col-cover.a0{rotate:-2deg}.art-col-cover.a1{rotate:1.6deg;translate:7% 0}.art-col-cover.a2{rotate:-1.4deg;translate:-7% 0}.art-col-cover.a3{rotate:2.2deg;translate:4% 0}@media(max-width:940px){.path-body{grid-template-columns:1fr}.path-art-col{display:none}}@keyframes cover-drift{0%{transform:translateY(-4px) rotate(-.4deg)}to{transform:translateY(5px) rotate(.4deg)}}.intro-motif{position:absolute;inset:0;border-radius:var(--radius-sm);overflow:hidden;background:color-mix(in srgb,var(--tc) 6%,transparent);border:1px solid var(--border);animation:motif-breathe 9s ease-in-out infinite alternate}.intro-motif .track-art{width:100%;height:100%}@keyframes motif-breathe{0%{transform:translateY(-3px) scale(1);opacity:.85}to{transform:translateY(3px) scale(1.04);opacity:1}}.path-intro-hook{font-size:clamp(1.02rem,1.5vw,1.2rem);font-weight:480;line-height:1.55;color:var(--text);max-width:70ch}.path-intro-label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tc);margin-bottom:6px}.path-intro ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.path-intro li{font-size:.88rem;color:var(--text-dim);line-height:1.45}.path-intro li::marker{color:var(--tc)}.slide-key{color:var(--tc, var(--accent-strong));font-weight:600;background:color-mix(in srgb,var(--tc, var(--accent)) 12%,transparent);padding:0 5px;border-radius:5px}.slide-visual.tab{width:100%}.slide-visual.tab .attab{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.slide-visual.tab .at-scroll{max-height:360px;overflow:auto;background:var(--bg-raised);border-radius:var(--radius-sm)}.slide.stacked .slide-visual.tab .at-scroll{max-height:480px}.slide-visual.progression{display:flex;flex-direction:column;align-items:center;gap:14px;padding-bottom:16px}.prog-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.prog-step{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-dim);cursor:pointer;transition:border-color .18s,background .18s,color .18s,transform .18s}.prog-step .prog-degree{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.prog-step .prog-chord{font-size:.82rem}.prog-step.on{border-color:var(--tc, var(--accent));background:color-mix(in srgb,var(--tc, var(--accent)) 16%,transparent);color:var(--text);transform:translateY(-3px)}.prog-step.on .prog-degree{color:var(--tc, var(--accent-strong))}.prog-diagram{min-height:210px;display:flex;align-items:center}.prog-diagram svg{width:168px}.slide-visual.albums{display:flex;flex-direction:column;gap:14px;padding-bottom:16px}.albums-strip{display:flex;gap:8px;align-items:flex-end;justify-content:center;flex-wrap:wrap}.album-tile{padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-raised);cursor:pointer;width:62px;height:62px;flex:none;opacity:.62;transition:width .22s ease,height .22s ease,opacity .22s,border-color .22s,box-shadow .22s}.album-tile img{width:100%;height:100%;object-fit:cover;display:block}.album-tile-fallback{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-weight:650}.album-tile.on{width:128px;height:128px;opacity:1;border-color:var(--tc, var(--accent));box-shadow:0 6px 22px color-mix(in srgb,var(--tc, var(--accent)) 30%,transparent)}.album-note-wrap{min-height:96px}.album-note-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.album-note-head strong{font-size:1.02rem}.album-year{color:var(--tc, var(--accent-strong));font-size:.85rem;font-weight:650;font-variant-numeric:tabular-nums}.album-note p{color:var(--text-dim);font-size:.92rem;line-height:1.55}.slide-video-frame{position:relative;width:min(640px,100%);aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-strong);margin:0 auto}.slide-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.slide-strum{justify-content:center;margin:0 auto;max-width:100%;overflow-x:auto}.slide-strum .strum-slot{width:44px}.slide-strum.spb-4 .strum-slot{width:34px}.slide-strum .strum-arrow{width:22px;height:38px}.strum-legend{display:flex;gap:22px;color:var(--text-dim);font-size:.78rem;align-items:center;flex-wrap:wrap;justify-content:center}.strum-legend .strum-arrow{width:12px;height:20px;stroke-width:3.4;stroke:var(--text-dim)}.strum-legend span{display:inline-flex;align-items:center;gap:6px}.strum-editor-row{display:flex;align-items:flex-end;gap:2px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 8px;width:fit-content;max-width:100%;overflow-x:auto}.strum-edit-slot{background:none;border:1px solid transparent;border-radius:7px;padding:4px 3px;cursor:pointer;line-height:0}.strum-edit-slot:hover{border-color:var(--border-strong);background:var(--bg-hover)}.strum-edit-slot .strum-arrow{width:17px;height:30px}.strum-edit-slot.beat-start:not(:first-child){margin-left:9px;position:relative}.strum-edit-slot.beat-start:not(:first-child):before{content:"";position:absolute;left:-6px;top:15%;height:70%;width:1px;background:var(--border-strong)}.ex-meta .strum-mini{letter-spacing:.4px}.routine-list{display:flex;flex-direction:column;gap:14px}.routine-card{display:flex;align-items:center;gap:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px}.routine-info{flex:1;min-width:0}.routine-summary{display:flex;gap:16px;align-items:baseline;margin:6px 0 12px}.routine-time{color:var(--accent-strong);font-weight:600;font-size:.9rem;white-space:nowrap}.routine-items{color:var(--text-faint);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.routine-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;gap:2px}.routine-bar-seg{border-radius:2px}.routine-bar-seg.c0{background:#5aa9e6}.routine-bar-seg.c1{background:#9d7be0}.routine-bar-seg.c2{background:#46a758}.routine-bar-seg.c3{background:var(--accent)}.routine-bar-seg.c4{background:#e5707d}.routine-actions{display:flex;gap:10px;align-items:center}.modal-backdrop{position:fixed;inset:0;background:#050609b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:20px;box-shadow:0 24px 80px #0009;padding:30px 34px;width:min(620px,100%);max-height:88vh;overflow-y:auto}.modal.wide{width:min(860px,100%)}.modal h2{margin-bottom:22px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field>span{font-size:.82rem;font-weight:600;color:var(--text-dim);letter-spacing:.02em}.field-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.field-row .field{flex:1;min-width:120px}.field.checkbox{flex-direction:row;align-items:center;gap:10px;padding-bottom:10px}.field.checkbox input{width:18px;height:18px;accent-color:var(--accent)}.field.checkbox span{font-size:.92rem;color:var(--text);font-weight:500}.settings-modal{width:min(680px,100%)}.settings-head{display:flex;align-items:center;justify-content:space-between}.settings-head h2{margin-bottom:0}.settings-head .icon-btn{display:flex;padding:5px;color:var(--text-faint);border-radius:8px}.settings-head .icon-btn:hover{color:var(--text);background:var(--bg-hover)}.settings-section{margin:24px 0 6px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--border)}.settings-row:last-of-type{border-bottom:none}.settings-row strong{font-size:.95rem}.settings-row p{margin:3px 0 0;font-size:.84rem;color:var(--text-dim);max-width:420px}.settings-row input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0}.settings-row .btn{flex-shrink:0;white-space:nowrap}.settings-note{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--success, #46a758);margin-top:8px}.settings-log-toggle{background:none;border:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:0}.settings-log-toggle:hover{color:var(--text)}.settings-feedback{display:flex;flex-direction:column;gap:10px;margin-top:10px}.fb-entry{border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px}.fb-entry.fixed,.fb-entry.dismissed{opacity:.6}.fb-meta{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--text-faint);flex-wrap:wrap}.fb-page{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.fb-context{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.fb-status{margin-left:auto;border:1px solid var(--border-strong);border-radius:999px;padding:1px 9px}.fb-status.new{color:var(--accent);border-color:#f5a52480}.fb-status.fixed{color:#46a758;border-color:#46a75880}.fb-message{margin:7px 0 0;font-size:.9rem;white-space:pre-wrap}.fb-actions{display:flex;gap:8px;margin-top:9px}.seg-control{display:flex;gap:6px;flex-wrap:wrap}.seg-control button{background:var(--bg);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:var(--radius-sm);padding:8px 14px;font-size:.86rem;font-weight:550;transition:all .15s}.seg-control button.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-strong)}.chord-picker{display:flex;gap:7px;flex-wrap:wrap;max-height:150px;overflow-y:auto;padding:4px 0}.editor-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;margin-bottom:16px}.editor-preview.chord-row{display:flex;gap:8px;overflow-x:auto}.editor-preview.chord-row svg{width:100px;flex-shrink:0}.file-drop{display:block;border:2px dashed var(--border-strong);border-radius:var(--radius-sm);padding:26px;text-align:center;color:var(--text-dim);cursor:pointer;transition:all .15s;font-size:.92rem}.file-drop:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-dim)}.file-attached{display:flex;align-items:center;gap:12px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:12px 16px;font-size:.92rem}.form-error{color:var(--danger);font-size:.88rem;margin-bottom:12px}.modal-actions{display:flex;gap:10px;margin-top:10px}.modal-actions .spacer{flex:1}.builder{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin:8px 0 16px}@media(max-width:700px){.builder{grid-template-columns:1fr}}.builder-col h4{margin-bottom:12px;display:flex;justify-content:space-between}.total-time{color:var(--accent-strong);text-transform:none;letter-spacing:0}.builder-items{list-style:none;display:flex;flex-direction:column;gap:8px}.builder-item{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:10px 12px;cursor:grab}.builder-item:active{cursor:grabbing}.drag-handle{color:var(--text-faint);font-size:1rem}.builder-name{flex:1;font-size:.92rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-item input{width:58px;padding:5px 8px;text-align:center}.min-label{color:var(--text-faint);font-size:.8rem}.builder-item-wrap{list-style:none}.builder-group-head{display:flex;align-items:center;gap:7px;color:var(--text-faint);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:8px 2px 2px}.builder-group-head svg{color:var(--accent)}.builder-riff-icon{color:var(--accent);margin-right:6px;vertical-align:-2px}.builder-item-wrap+.builder-item-wrap{margin-top:8px}.builder-override{display:block;font-style:normal;font-size:.74rem;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.ghost.sm.accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.item-config{margin-top:6px;background:var(--bg);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.item-config-row{display:flex;align-items:flex-start;gap:10px}.item-config-row.selects{align-items:center;flex-wrap:wrap}.item-config-label{font-size:.78rem;color:var(--text-faint);min-width:62px;padding-top:4px}.item-config-row.selects .item-config-label{padding-top:0}.item-config select,.item-config input[type=number]{background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit;font-size:.84rem}.item-config input[type=number]{width:76px;text-align:center}.item-config-hint{font-size:.74rem;color:var(--text-faint);flex-basis:100%}.item-config-check{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--text-dim)}.item-config-check input{width:15px;height:15px;accent-color:var(--accent)}.item-config-reset{align-self:flex-start}.chord-picker.compact{max-height:96px}.chord-picker.compact .chip{padding:3px 9px;font-size:.78rem}.builder-search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;margin-bottom:8px;color:var(--text-faint)}.builder-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font:inherit;font-size:.86rem;padding:0;min-width:0}.builder-library{display:flex;flex-direction:column;gap:6px;max-height:330px;overflow-y:auto}.builder-add{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-size:.88rem;text-align:left;transition:all .12s}.builder-add:hover{border-color:var(--accent);background:var(--accent-dim)}.builder-add-min{color:var(--text-faint);font-size:.78rem;margin-left:auto}.builder-plus{color:var(--accent);font-weight:700;font-size:1.05rem}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.editor-head h2{margin-bottom:0}.routine-help{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px;background:var(--bg)}.routine-help ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.routine-help li{font-size:.85rem;color:var(--text-dim)}.builder-pick-tabs{display:flex;gap:6px;margin-bottom:10px}.pick-tab{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:6px 14px;font-size:.84rem;font-weight:600;cursor:pointer}.pick-tab.on{color:var(--accent);border-color:#f5a5248c;background:var(--accent-dim)}.builder-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:330px;overflow-y:auto;align-content:start}.builder-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 11px;text-align:left;cursor:pointer;min-height:74px}.builder-tile:hover{border-color:var(--accent);background:var(--accent-dim)}.tile-name{font-size:.82rem;font-weight:600;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tile-sub{font-size:.72rem;color:var(--text-faint);margin-top:auto}.empty-note.wide{grid-column:1 / -1}.practice-config-pop{position:fixed;right:24px;bottom:86px;z-index:60;width:min(560px,calc(100vw - 48px));background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 18px 60px #0000008c;padding:12px 16px 14px}.practice-config-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:.85rem;color:var(--text-dim)}.practice{min-height:100vh;display:flex;flex-direction:column;padding:18px clamp(16px,4vw,48px) 22px;gap:8px}.practice-top{display:flex;align-items:center;gap:20px}.routine-progress{flex:1;display:flex;gap:5px;height:8px}.routine-progress .seg{background:#23262f;border-radius:4px;overflow:hidden;position:relative}.routine-progress .seg.done{background:var(--accent);opacity:.55}.routine-progress .seg.current{background:#2c2416;box-shadow:inset 0 0 0 1px #f5a52459}.seg-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:4px;box-shadow:0 0 12px #f5a52480}.practice-counter{color:var(--text-dim);font-size:.88rem;font-variant-numeric:tabular-nums}.practice-header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 6px 8px}.exercise-title{font-size:clamp(1.6rem,3.4vw,2.4rem);margin:10px 0 8px}.exercise-desc{color:var(--text-dim);max-width:620px;line-height:1.5}.timer-ring{position:relative;width:150px;height:150px;flex-shrink:0}.timer-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#23262f;stroke-width:9}.ring-fill{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(245,165,36,.55))}.timer-ring.ending .ring-fill{stroke:var(--danger);filter:drop-shadow(0 0 8px rgba(229,72,77,.6))}.timer-ring.paused{opacity:.55}.timer-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.9rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.practice-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;overflow:hidden;min-height:320px}.stage-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.countdown-overlay,.pause-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0b0fd1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5}.countdown-num{font-size:clamp(5rem,14vw,9rem);font-weight:800;color:var(--accent-strong);text-shadow:0 0 60px rgba(245,165,36,.45);letter-spacing:-.04em}.pause-label{font-size:2rem;font-weight:800;letter-spacing:.35em;color:var(--text-dim)}.practice-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-right:84px}.practice-actions{display:flex;gap:10px;align-items:center}.drone-control{display:inline-flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:8px 14px;color:var(--text-dim);font-size:.85rem}.drone-control svg{color:var(--accent)}.drone-key{font-weight:650;color:var(--text)}.drone-control input{width:70px;accent-color:var(--accent)}.done-screen{align-items:center;justify-content:center;text-align:center;gap:14px}.done-emoji{font-size:5.5rem;filter:drop-shadow(0 0 30px rgba(245,165,36,.4))}.done-screen h1{font-size:2.4rem}.done-sub{color:var(--text-dim);margin-bottom:18px}.practice.empty{align-items:center;justify-content:center;gap:16px}.metronome-bar{display:flex;align-items:center;gap:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:10px 22px 10px 12px;transition:border-color .2s,box-shadow .3s}.metronome-bar.running{border-color:#f5a52466;box-shadow:0 0 22px #f5a5241a}.metro-toggle{width:46px;height:46px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text);font-size:1rem;transition:all .15s}.metro-toggle.on{background:linear-gradient(160deg,var(--accent-strong),var(--accent));color:#1a1205;box-shadow:0 0 18px #f5a52473}.metro-bpm{display:flex;align-items:center;gap:12px}.bpm-step{width:30px;height:30px;border-radius:50%;border:1px solid var(--border-strong);background:transparent;color:var(--text-dim);font-size:1.05rem;line-height:1;transition:all .12s}.bpm-step:hover{border-color:var(--accent);color:var(--accent-strong)}.bpm-value{display:flex;flex-direction:column;align-items:center;min-width:72px;cursor:text}.bpm-value>span:first-child{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.bpm-unit{font-size:.68rem;color:var(--text-faint);letter-spacing:.08em;white-space:nowrap}.bpm-input{width:64px;font-size:1.3rem;font-weight:700;text-align:center;padding:2px 6px;border-radius:7px}.beat-lights{display:flex;gap:9px}.beat-light{width:13px;height:13px;border-radius:50%;background:#2a2e38;transition:background .1s,box-shadow .1s}.beat-light.active{background:var(--text);box-shadow:0 0 10px #ffffff80}.beat-light.accent.active{background:var(--accent-strong);box-shadow:0 0 14px #f5a524b3}.metro-volume{width:90px;accent-color:var(--accent)}.technique-view{display:flex;align-items:center;justify-content:center;gap:clamp(30px,6vw,90px);width:100%;flex-wrap:wrap}.technique-board{flex:1;max-width:560px;min-width:300px}.technique-board svg{width:100%;height:auto}.technique-hint{text-align:center;color:var(--text-dim);font-size:.9rem;margin-top:8px}.tech-pattern-label{color:var(--accent-strong);font-weight:650;letter-spacing:.06em}.tech-string-glow{fill:#f5a52414;stroke:#f5a52438;stroke-width:1}.tech-dot{fill:var(--note-bg);transition:fill .1s}.tech-dot.active{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(245,165,36,.6))}.tech-dot-label{fill:#e8e6e1;font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none}.technique-beat{display:flex;flex-direction:column;align-items:center;gap:20px}.sub-pips{display:flex;gap:7px}.sub-pip{width:9px;height:9px;border-radius:50%;background:#2a2e38;transition:background .08s}.sub-pip.on{background:var(--accent-strong)}.big-beat-circle{width:150px;height:150px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:4.4rem;font-weight:800;background:radial-gradient(circle at 35% 30%,#2c313d,#1b1e26);border:1px solid var(--border-strong);color:var(--text-dim)}.big-beat-circle.accent{color:var(--accent-strong);border-color:#f5a52480;box-shadow:0 0 46px #f5a52440}.big-beat-dots{display:flex;gap:12px}.big-beat-dots .beat-light{width:15px;height:15px}.fretboard-wrap{width:100%;max-width:1060px}.fretboard{width:100%;height:auto}.pos-highlight{fill:#f5a52412;stroke:#f5a52447;stroke-width:1.5}.pos-ghost{fill:none;stroke:var(--accent-strong);stroke-width:1.8;stroke-dasharray:7 6}.pos-ghost-label{fill:var(--accent-strong);font-size:12.5px;font-weight:650;text-anchor:middle;letter-spacing:.04em}.inlay{fill:#ffffff17}.ghost-note{fill:#ffffff1a}.ghost-note.root{fill:#f5a52438}.string-label{fill:var(--text-faint);font-size:12px;text-anchor:middle;font-weight:600}.fret-num{fill:var(--text-faint);font-size:12px;text-anchor:middle}.note-label{fill:#0e0f13;font-size:10.5px;font-weight:700;text-anchor:middle}.note-label.root{fill:#1a1205}.fretboard .fade-in{opacity:1;transition:opacity .26s ease}.fretboard .fade-out{opacity:0;transition:opacity .26s ease}.fretboard-caption{text-align:center;color:var(--text-dim);margin-top:10px;font-size:.95rem}.chord-diagram{width:170px;height:auto;transition:opacity .25s}.chord-diagram.sm{width:116px}.chord-diagram.md{width:190px}.chord-diagram.lg{width:min(300px,56vw)}.chord-diagram.dimmed{opacity:.75}.chord-name{fill:var(--text);font-size:19px;font-weight:700;text-anchor:middle}.chord-line{stroke:#ffffff47;stroke-width:1.3}.chord-nut{fill:var(--fret-nut)}.chord-basefret{fill:var(--text-dim);font-size:13px;font-weight:600;text-anchor:middle}.chord-dot{fill:var(--accent)}.chord-diagram.highlight .chord-dot{filter:drop-shadow(0 0 4px rgba(245,165,36,.55))}.chord-finger{fill:#1a1205;font-size:11px;font-weight:700;text-anchor:middle}.chord-barre{fill:#f5a524d9}.chord-open{fill:var(--text-dim);font-size:12px;text-anchor:middle}.chord-openring{fill:none;stroke:var(--text-dim);stroke-width:1.6}.chord-missing{color:var(--text-faint);padding:20px}.chord-change-view{display:flex;flex-direction:column;align-items:center;gap:26px;width:100%}.chord-stage{display:flex;align-items:center;gap:clamp(24px,6vw,80px)}.chord-current-slot{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px 14px}.chord-current{filter:drop-shadow(0 10px 40px rgba(0,0,0,.4));position:relative;z-index:1}.chord-next{display:flex;flex-direction:column;align-items:center;gap:6px}.chord-next-label{color:var(--text-faint);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}.beat-dots{display:flex;gap:10px}.beat-dot{width:12px;height:12px;border-radius:50%;background:#2a2e38;display:inline-block}.beat-dot.on{background:var(--accent)}.beat-dot.ready{background:var(--accent-strong);box-shadow:0 0 10px #f5a524a6}.learn-intro{color:var(--text-dim);margin-bottom:28px;max-width:640px}.learn-track{margin-bottom:36px}.learn-track h2{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.learn-track h2 svg{align-self:center;color:var(--accent)}.learn-track-desc{color:var(--text-faint);font-size:.82rem;font-weight:450}.lesson-list{display:flex;flex-direction:column;gap:8px}.lesson-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s}.lesson-card.open{border-color:#f5a52459}.lesson-head{display:flex;align-items:center;gap:14px;width:100%;background:none;border:none;color:var(--text);padding:14px 18px;font-size:.98rem;font-weight:550;text-align:left}.lesson-head:hover{background:var(--bg-hover)}.lesson-check{color:var(--text-faint);display:inline-flex;cursor:pointer;transition:color .15s,transform .1s}.lesson-check:hover{color:var(--text);transform:scale(1.1)}.lesson-check.on{color:var(--green)}.lesson-card.done .lesson-title{color:var(--text-dim)}.next-up{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-strong);background:var(--accent-dim);border-radius:999px;padding:3px 9px;margin-right:6px}.track-progress{display:inline-flex;align-items:center;gap:9px;margin-left:auto;color:var(--text-dim);font-size:.8rem;font-weight:550}.track-progress-bar{width:90px;height:5px;border-radius:3px;background:#23262f;overflow:hidden;display:inline-block}.track-progress-fill{display:block;height:100%;background:var(--accent);border-radius:3px}.lesson-num{width:26px;height:26px;border-radius:50%;background:var(--accent-dim);color:var(--accent-strong);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}.lesson-title{flex:1}.lesson-chevron{color:var(--text-faint);display:inline-flex}.lesson-body{overflow:hidden}.lesson-content{padding:4px 20px 18px 58px}.lesson-content p{color:var(--text-dim);line-height:1.6;font-size:.93rem;margin-bottom:12px}.lesson-source{color:var(--text-faint);font-size:.8rem;font-style:italic;margin:4px 0 14px}.lesson-exercises{display:flex;gap:8px;flex-wrap:wrap}.lesson-exercise{display:inline-flex;align-items:center;gap:7px;background:var(--accent-dim);border:1px solid rgba(245,165,36,.3);color:var(--accent-strong);border-radius:999px;padding:7px 14px;font-size:.85rem;font-weight:550;transition:all .15s}.lesson-exercise:hover{background:#f5a52438}.lesson-ex-min{color:var(--text-faint);font-size:.75rem}.ex-purpose{color:var(--text-dim);font-size:.84rem;margin-top:8px;line-height:1.45}.ex-source{color:var(--text-faint);font-size:.76rem;font-style:italic;margin-top:6px}.exercise-source{color:var(--text-faint);font-size:.8rem;font-style:italic;margin-top:6px}.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:40px}.track-card{--tc: var(--accent);display:flex;flex-direction:column;align-items:stretch;text-align:left;background:linear-gradient(165deg,#1d2029,#14161c);border:1px solid var(--border);border-radius:18px;padding:0;overflow:hidden;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .2s}.track-card:hover{border-color:color-mix(in srgb,var(--tc) 55%,transparent);box-shadow:0 10px 34px #00000080}.track-card.complete{border-color:#46a75866}.track-art-wrap{position:relative;height:128px;border-bottom:1px solid var(--border);overflow:hidden}.track-art{width:100%;height:100%;display:block;position:relative}.track-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.82);opacity:.3;transition:opacity .35s,transform .35s}.track-card:hover .track-photo{opacity:.42;transform:scale(1.03)}.track-complete-badge{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;background:#46a7582e;border:1px solid rgba(70,167,88,.45);color:#6fc481;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 11px}.track-card-body{display:flex;flex-direction:column;gap:8px;padding:18px 22px 20px}.track-card h3{font-size:1.12rem;display:flex;align-items:center;gap:9px}.track-card-desc{color:var(--text-dim);font-size:.85rem;line-height:1.45}.track-card-meta{color:var(--text-faint);font-size:.78rem}.track-card-progress{display:flex;align-items:center;gap:10px;width:100%;color:var(--text-dim);font-size:.8rem;margin-top:4px}.track-card-progress .track-progress-bar{flex:1;width:auto}.track-card .track-progress-fill{background:var(--tc)}.path-title{display:inline-flex;align-items:center;gap:12px;flex:1;margin:0 10px;font-size:1.5rem}.path-title svg{color:var(--accent)}.path-steps{display:flex;flex-direction:column;max-width:760px}.path-step{display:flex;gap:16px}.path-rail{display:flex;flex-direction:column;align-items:center;width:34px;flex-shrink:0}.path-node{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0;background:var(--bg-hover);color:var(--text-dim);border:1.5px solid var(--border-strong)}.path-node.available{background:var(--accent-dim);color:var(--accent-strong);border-color:var(--accent);box-shadow:0 0 14px #f5a52440}.path-node.done{background:#46a75829;color:var(--green);border-color:#46a75880}.path-line{width:2px;flex:1;min-height:22px;background:var(--border-strong);margin:4px 0}.path-line.done{background:#46a75880}.path-card{flex:1;display:flex;align-items:center;gap:14px;text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:12px;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.path-card:hover:not(:disabled){border-color:var(--accent);background:var(--bg-hover)}.path-card:disabled{opacity:.45;cursor:default}.path-card-main{flex:1;display:flex;flex-direction:column;gap:3px}.path-card-sub{color:var(--text-faint);font-size:.78rem}.path-locked-hint{display:inline-flex;align-items:center;gap:5px;color:var(--text-faint);font-size:.75rem}.slides{position:fixed;inset:0;z-index:80;background:radial-gradient(900px 500px at 80% -10%,rgba(245,165,36,.06),transparent 60%),var(--bg);display:flex;flex-direction:column;padding:18px clamp(16px,5vw,60px) 26px;overflow:hidden}.slides-top{display:flex;align-items:center;gap:18px;flex:none}.slides-title{flex:1;display:inline-flex;align-items:center;gap:10px;font-weight:650;font-size:1.05rem}.slides-count{color:var(--text-faint);font-size:.85rem;font-variant-numeric:tabular-nums}.slides-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 0;overflow-y:auto}.slide{max-width:720px;width:100%}.slide.split{max-width:1100px}.slide.stacked{max-width:1180px}.slide-text{font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.65;color:var(--text);font-weight:420}.slide-text p+p{margin-top:.85em}.slide-source{color:var(--text-faint);font-size:.85rem;font-style:italic;margin-top:22px}.slide-text.with-visual{font-size:clamp(1.05rem,1.9vw,1.3rem)}.slide-split{display:flex;align-items:center;gap:clamp(28px,4vw,56px)}.slide-split .slide-text{flex:1;min-width:0}.slide-split .slide-visual{width:min(540px,48%);flex:none;margin-top:0}.slide-split .slide-visual .slide-video-frame{width:100%}@media(max-width:940px){.slide-split{flex-direction:column;align-items:stretch}.slide-split .slide-visual{width:100%}}.slide-visual{margin-top:22px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 10px}.slide-visual.chords{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start;padding-bottom:16px}.slide-visual.chords svg{width:108px}.slide-visual.chords .fretboard-caption{width:100%;margin-top:2px}.slide-practice{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}.slide-practice h2{font-size:1.6rem}.slide-practice-sub{color:var(--text-dim);max-width:480px}.slide-exercises{display:flex;flex-direction:column;gap:10px;width:min(460px,100%);margin-bottom:8px}.slide-exercise{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:14px 18px;color:var(--text);font-size:.95rem;transition:border-color .15s,background .15s}.slide-exercise:hover{border-color:var(--accent);background:var(--accent-dim)}.slide-exercise svg:first-child{color:var(--accent)}.slide-ex-name{flex:1;text-align:left}.slide-ex-min{color:var(--text-faint);font-size:.8rem}.slide-ex-play{color:var(--accent-strong)}.slides-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;height:52px;position:relative;z-index:2;padding-right:76px}.slide-practice .btn{position:relative;z-index:3}.slide-dots{display:flex;gap:8px}.slide-dot{width:9px;height:9px;border-radius:50%;border:none;background:#2a2e38;cursor:pointer;transition:background .15s,transform .15s}.slide-dot.on{background:var(--accent);transform:scale(1.3)}.slide-dot.last{border-radius:3px}.slide-visual.image{padding:10px}.slide-visual.image img{width:100%;border-radius:var(--radius-sm);display:block}.visual-credit{color:var(--text-faint);font-size:.72rem;text-align:center;margin-top:4px}.page-head .btn.on{border-color:var(--accent);color:var(--accent-strong)}.course-radio{position:fixed;left:18px;bottom:18px;z-index:60;width:330px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 18px 50px #0009;overflow:hidden}.course-radio-head{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;color:var(--text-dim)}.course-radio-head span{flex:1}.course-radio iframe{width:100%;aspect-ratio:16 / 9;border:0;display:block}.slide-visual.loops{--ls-labels: 64px;display:flex;flex-direction:column;gap:12px;padding-bottom:14px}.ls-head{display:flex;align-items:center;gap:14px}.ls-hint{color:var(--text-faint);font-size:.82rem}.ls-board{position:relative;display:flex;flex-direction:column;gap:8px}.ls-playhead{position:absolute;top:0;bottom:0;left:var(--ls-labels);width:2px;background:var(--tc, var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--tc, var(--accent)) 70%,transparent);z-index:3;pointer-events:none}.ls-lane{display:flex;align-items:stretch;gap:0;opacity:.45;transition:opacity .4s}.ls-lane.live{opacity:1}.ls-label{width:var(--ls-labels);flex:none;display:flex;align-items:center;color:var(--text-dim);font-size:.78rem;font-weight:650}.ls-track{position:relative;flex:1;height:44px;background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;overflow:hidden}.ls-barline{position:absolute;top:0;bottom:0;width:1px;background:var(--border)}.ls-note{position:absolute;bottom:30%;width:7px;height:7px;border-radius:2px;background:color-mix(in srgb,var(--tc, var(--accent)) 55%,#6a7080);transition:transform .1s,background .1s,box-shadow .1s}.ls-note.accent{width:8px;height:10px;background:color-mix(in srgb,var(--tc, var(--accent)) 80%,#fff)}.ls-note.drum{bottom:24%;border-radius:50%}.ls-note.drum.kick{width:9px;height:9px}.ls-note.drum.snare{width:6px;height:6px;opacity:.65;bottom:48%}.ls-note.hit{transform:scale(1.7);background:var(--tc, var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--tc, var(--accent)) 80%,transparent)}.theory-presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:4px}.page-head-action{margin-left:auto}.learn-modal{width:min(560px,100%);padding:22px 26px;display:flex;flex-direction:column;gap:12px}.learn-modal-head{display:flex;align-items:center;justify-content:space-between}.learn-modal-head strong{display:inline-flex;align-items:center;gap:8px;font-size:1.05rem}.learn-modal-sub{color:var(--text-dim);font-size:.92rem;line-height:1.55}.learn-modal textarea{width:100%;min-height:88px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font:inherit;font-size:.92rem;resize:vertical}.learn-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px}.newbie-links{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;color:var(--text-dim);font-size:.92rem;line-height:1.5}.newbie-links a{color:var(--accent-strong);font-weight:600}.newbie-links li::marker{color:var(--accent)}.track-card.unpublished{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 38%,transparent)}.track-card.unpublished .track-art-wrap{filter:saturate(.55)}.track-publish{position:absolute;top:12px;left:12px;z-index:2;font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:999px;cursor:pointer}.track-publish.on{background:#46a75833;color:#7dd18f}.track-publish.off{background:#f5a5242e;color:var(--accent-strong)}.track-publish:hover{filter:brightness(1.25)}.track-card.newbie{position:relative}.newbie-art{display:flex;align-items:center;justify-content:center;color:#8bc34a}.newbie-art .track-photo{opacity:.45}.track-card.newbie:hover .track-photo{opacity:.58}.newbie-art:after{content:"";position:absolute;inset:0;background:radial-gradient(320px 130px at 50% 110%,rgba(139,195,74,.3),transparent 70%);pointer-events:none}.newbie-art svg{position:relative;z-index:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55))}.track-card.burning{pointer-events:none;overflow:visible;animation:card-burn 3.4s ease-in forwards}.track-card.burning .track-art-wrap,.track-card.burning .track-card-body{position:relative;z-index:0}@keyframes card-burn{0%{filter:none;opacity:1;transform:none}12%{transform:translate(-2px) rotate(-.3deg)}20%{transform:translate(2px) rotate(.3deg);filter:brightness(1.08)}40%{filter:sepia(.5) saturate(1.7) brightness(1.15);transform:none}65%{filter:sepia(1) saturate(2.4) brightness(.85) contrast(1.25);transform:scale(.98) rotate(-.6deg)}88%{filter:sepia(1) saturate(.4) brightness(.3);transform:scale(.94) rotate(.8deg);opacity:.85}to{filter:brightness(0);transform:scale(.86) rotate(1.4deg) translateY(16px);opacity:0}}.burnfx{position:absolute;inset:0;pointer-events:none}.cracks{position:absolute;inset:0;width:100%;height:100%;z-index:3;mix-blend-mode:screen;overflow:visible}.cracks path{fill:none;stroke:#ffc46b;stroke-width:2.5;stroke-linejoin:miter;stroke-dasharray:460;stroke-dashoffset:460;filter:drop-shadow(0 0 5px rgba(255,122,24,.95));animation:crack-draw .85s cubic-bezier(.3,.7,.2,1) forwards}@keyframes crack-draw{to{stroke-dashoffset:0}}.burn-glow{position:absolute;top:0;left:0;right:0;height:129px;z-index:2;background:radial-gradient(closest-side at 50% 55%,rgba(255,180,80,.95),rgba(255,90,10,.6) 50%,transparent 78%);mix-blend-mode:screen;transform:scale(0);transform-origin:50% 55%;animation:glow-burst 2.5s ease-in .55s forwards}@keyframes glow-burst{0%{transform:scale(.08);opacity:0}22%{opacity:1}70%{transform:scale(1.05);opacity:.95}to{transform:scale(1.15);opacity:0}}.embers{position:absolute;inset:0;pointer-events:none;z-index:5}.ember{position:absolute;width:6px;height:6px;border-radius:50%;background:#ffab40;box-shadow:0 0 9px 2px #ff8c1ecc}.ex-modal{width:min(920px,100%);display:flex;flex-direction:column;gap:10px}.ex-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ex-modal-head h2{margin:0;font-size:1.25rem}.ex-modal-desc{color:var(--text-dim);font-size:.92rem;line-height:1.55;margin:0}.ex-modal-purpose{color:var(--text-faint);font-size:.84rem;font-style:italic;margin:0}.ex-modal-stage{display:flex;justify-content:center;padding:14px 0;max-height:56vh;overflow-y:auto}.ex-modal-chords{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.ex-modal-meta{display:inline-flex;align-items:center;gap:6px;color:var(--text-faint);font-size:.84rem;margin-left:10px}.wizard-modal{width:min(640px,100%)}.wizard-modal .field>span{display:block;margin-bottom:7px;color:var(--text-dim);font-size:.88rem}.wizard-plan{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:7px;background:var(--bg-card)}.wizard-plan-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.wizard-plan-head span{color:var(--text-faint);font-size:.84rem}.wizard-plan-head .btn{margin-left:auto}.wizard-plan-item{display:flex;align-items:center;gap:10px;font-size:.9rem}.wizard-plan-num{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-hover);color:var(--text-dim);font-size:.72rem;font-weight:700;flex-shrink:0}.wizard-plan-name{flex:1}.wizard-plan-min{color:var(--text-faint);font-size:.82rem}.newbie-backdrop{background:#0c0604c7}.newbie-modal{width:min(680px,100%);border:1px solid rgba(255,90,40,.55);animation:newbie-alarm-pulse 1.6s ease-in-out infinite}@keyframes newbie-alarm-pulse{0%,to{box-shadow:0 0 0 1px #ff5a2826,0 24px 80px #ff3c0a1f,0 8px 40px #0009}50%{box-shadow:0 0 0 1px #ff5a2873,0 24px 90px #ff3c0a4d,0 8px 40px #0009}}.newbie-alarm{font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:800;letter-spacing:-.02em;color:#ff7a4d;animation:alarm-shake .5s ease .45s 1}@keyframes alarm-shake{0%,to{transform:none}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.learn-modal-sub.big{font-size:1.02rem;line-height:1.6}.newbie-burn-btn{width:100%;justify-content:center;padding:15px 20px;font-size:1.08rem;font-weight:700;background:linear-gradient(180deg,#ff6a2a,#d43e0e);border-color:#ff8a50;color:#fff}.newbie-burn-btn:hover{filter:brightness(1.12)}.locked-note{display:inline-flex;align-items:center;gap:7px;color:var(--text-faint);font-size:.85rem;margin-bottom:16px}.ex-card.locked{opacity:.55;cursor:default;filter:saturate(.4)}.ex-lock{display:inline-flex;align-items:center;gap:7px;color:var(--accent-strong);font-size:.76rem;font-weight:600;margin-bottom:8px}.jam-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:14px}.jam-field{display:flex;flex-direction:column;gap:5px}.jam-field.grow{flex:1;min-width:200px}.jam-field>span{font-size:.72rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:5px}.jam-field input[type=number]{width:74px}.jam-field input[type=range]{width:92px;accent-color:var(--accent);margin-bottom:8px}.jam-controls .chip{align-self:center;display:inline-flex;align-items:center;gap:6px}.jam-progression{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.jam-prog-chord{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:84px;color:inherit;transition:border-color .2s,background .2s,box-shadow .25s}.jam-prog-chord:hover{border-color:var(--border-strong)}.jam-prog-chord.active{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 18px #f5a52426}.jam-roman{color:var(--text-faint);font-size:.72rem;font-weight:650;letter-spacing:.05em}.jam-prog-chord strong{font-size:1.05rem}.jam-bars{color:var(--text-faint);font-size:.7rem}.jam-stage{display:flex;flex-direction:column;gap:24px;align-items:stretch;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:26px;flex-wrap:wrap}.jam-chords{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:34px;min-width:0}.jam-chords>div:first-child{position:relative}.jam-beat{display:flex;gap:11px}.jam-scale{width:100%;min-width:0}.jam-scale .fretboard-wrap{max-width:none}.jam-custom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px}.jam-custom-step{display:flex;align-items:center;gap:5px}.jam-custom-step select{background:var(--bg);border:1px solid var(--border-strong);color:var(--text);border-radius:8px;padding:6px 8px;font:inherit;font-size:.84rem}.jam-custom-step .btn{padding:4px 6px}.jam-scale-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.jam-scale-head>span{color:var(--text-dim);font-size:.85rem}.riff-drop{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:26px;text-align:center;color:var(--text-faint);font-size:.9rem;margin-bottom:22px;transition:border-color .15s,color .15s}.riff-drop:hover{border-color:var(--accent);color:var(--text-dim)}.riff-list{display:flex;flex-direction:column;gap:10px}.riff-card{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:15px 18px;cursor:pointer;transition:border-color .15s,background .15s}.riff-card:hover{border-color:var(--accent);background:var(--bg-hover)}.riff-icon{color:var(--accent);flex-shrink:0}.riff-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.riff-meta{color:var(--text-faint);font-size:.8rem}.riff-best{display:inline-flex;align-items:center;gap:6px;color:var(--accent-strong);font-size:.85rem;font-weight:650;white-space:nowrap}.riff-session{display:flex;flex-direction:column;min-height:calc(100vh - 62px);max-width:1400px}.riff-title{flex:1;margin:0 8px;font-size:1.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.motif-scene{width:100%;height:100%}.motif-scene *{transform-box:fill-box}.ms-tri{transform-origin:bottom center;animation:ms-rise 5.5s ease-in-out infinite}@keyframes ms-rise{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-16px) scaleY(1.12)}}.ms-jag{animation:ms-fade 4s ease-in-out infinite}@keyframes ms-fade{0%,to{opacity:.3}50%{opacity:.7}}.ms-pulse{transform-origin:center;animation:ms-throb 3.2s ease-in-out infinite}@keyframes ms-throb{0%,to{transform:scale(1);opacity:.18}50%{transform:scale(1.7);opacity:.32}}.ms-flow{animation:ms-travel 4.5s linear infinite}@keyframes ms-travel{0%{stroke-dashoffset:0}to{stroke-dashoffset:-206}}.ms-dot{transform-origin:center;animation:ms-breathe 2.6s ease-in-out infinite}@keyframes ms-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.45)}}.ms-cage{fill-opacity:.04;stroke-opacity:.18;animation:ms-light 6s ease-in-out infinite}@keyframes ms-light{0%,32%,to{fill-opacity:.04;stroke-opacity:.18}12%{fill-opacity:.2;stroke-opacity:.7}}.ms-cage-dot{opacity:0;animation:ms-dot-light 6s ease-in-out infinite}@keyframes ms-dot-light{0%,32%,to{opacity:0}12%{opacity:1}}.ms-drift{animation:ms-drifting 9s ease-in-out infinite alternate}@keyframes ms-drifting{0%{transform:translate(0)}to{transform:translate(10px,-12px)}}.ms-walk{animation:ms-walking 6s linear infinite}@keyframes ms-walking{0%{stroke-dashoffset:0}to{stroke-dashoffset:-44}}.ms-spin{animation:ms-spinning 60s linear infinite}@keyframes ms-spinning{to{transform:rotate(360deg)}}.ms-boom,.ms-chick{transform-origin:bottom center;animation:ms-bounce 1.4s ease-in-out infinite}@keyframes ms-bounce{0%,to{transform:scaleY(1)}18%{transform:scaleY(1.25)}36%{transform:scaleY(.92)}}.ms-eq{transform-origin:bottom center;animation:ms-eqpulse 1.8s ease-in-out infinite}@keyframes ms-eqpulse{0%,to{transform:scaleY(.6)}50%{transform:scaleY(1.15)}}.ms-wave{animation:ms-sway 7s ease-in-out infinite alternate}@keyframes ms-sway{0%{transform:translate(0)}to{transform:translate(-26px)}}.ms-note{animation:ms-float 5s ease-in-out infinite}@keyframes ms-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.ms-trem{animation:ms-shimmer .5s steps(2) infinite}@keyframes ms-shimmer{0%,to{opacity:.75}50%{opacity:1}}.ms-step{animation:ms-stepglow 3.6s ease-in-out infinite}@keyframes ms-stepglow{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.ms-slide4{animation:ms-shift4 8s linear infinite}@keyframes ms-shift4{0%{transform:translate(0)}to{transform:translate(-88px)}}.ms-slide3{animation:ms-shift3 8s linear infinite}@keyframes ms-shift3{0%{transform:translate(0)}to{transform:translate(-66px)}}.slide-plain{display:flex;align-items:center;gap:34px}.slide-plain .slide-text{flex:1;min-width:0}.slide-motif{width:230px;height:190px;flex-shrink:0}.intro-motif.scene{display:flex;align-items:center;justify-content:center}.intro-motif.scene svg{width:100%;max-height:210px}@media(max-width:860px){.slide-motif{display:none}}@media(prefers-reduced-motion:reduce){.motif-scene *{animation:none!important}}.riff-name-input{background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);font-weight:700;font-family:inherit;padding:4px 10px;min-width:0}.riff-name-input:hover{border-color:var(--border)}.riff-name-input:focus{border-color:var(--accent);outline:none;background:var(--bg-card)}.riff-song-group{margin-bottom:22px}.riff-song-head{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.88rem;font-weight:600;margin-bottom:8px}.riff-song-head svg{color:var(--accent)}.riff-song-count{font-size:.74rem;color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:2px 9px}.riff-head-actions{display:flex;gap:10px}.riff-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px;margin-bottom:12px}.riff-field{display:inline-flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.86rem}.riff-field input[type=number]{width:62px;padding:6px 8px;text-align:center}.riff-field input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.riff-field.checkbox svg{color:var(--accent)}.riff-dash{color:var(--text-faint)}.riff-hint{color:var(--text-faint);font-size:.78rem}.riff-stats{display:flex;gap:10px;align-items:center;margin-bottom:12px}.riff-score{flex:1;min-height:380px}.riff-song-tools{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 18px;margin-bottom:12px}.riff-song-tools select{background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit;font-size:.86rem;max-width:220px}.riff-sections{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.section-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font:inherit;font-size:.82rem;padding:5px 12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.section-chip{border-left:3px solid var(--sc, var(--border))}.section-chip:hover{border-color:var(--sc, var(--accent));color:var(--text)}.section-chip.active{background:color-mix(in srgb,var(--sc, var(--accent)) 18%,transparent);border-color:var(--sc, var(--accent));color:var(--sc, var(--accent))}.section-bars{color:var(--text-faint);font-size:.74rem;font-variant-numeric:tabular-nums}.section-chip.active .section-bars{color:color-mix(in srgb,var(--accent) 70%,var(--text-dim))}.attab{width:100%;height:100%;display:flex;flex-direction:column;gap:12px}.attab-controls{display:flex;align-items:center;gap:10px}.attab-loading{color:var(--text-faint);font-size:.85rem}.attab-band{cursor:pointer;font:inherit;font-size:.85rem}.attab-band.on{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.attab-band:disabled{opacity:.5;cursor:default}.attab-tone{cursor:pointer;font:inherit;font-size:.85rem}.attab-tone:hover{border-color:var(--accent);color:var(--text)}.attab-tone:disabled{opacity:.5;cursor:default}.attab-stat{display:inline-flex;align-items:center;gap:6px;color:var(--text-dim);font-size:.85rem;font-variant-numeric:tabular-nums;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:6px 13px}.attab-stat.trainer{color:var(--accent-strong);border-color:#f5a52459}.attab-tempo{padding:4px 8px;gap:4px}.attab-bpm{min-width:64px;text-align:center;font-weight:600;color:var(--text)}.attab-bpm-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-hover);color:var(--text);font-size:.95rem;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.attab-bpm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.attab-bpm-btn:disabled{opacity:.4;cursor:default}.attab-bpm-reset{border:none;background:transparent;color:var(--text-faint);font-size:.8rem;font-variant-numeric:tabular-nums;cursor:pointer;padding:2px 4px}.attab-bpm-reset:hover{color:var(--accent-strong)}.at-scroll{flex:1;overflow-y:auto;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;min-height:240px}.at-scroll .at-cursor-bar{background:#f5a52438}.at-scroll .at-cursor-beat{background:#d98a10d9;width:3px}.at-scroll .at-highlight *{fill:#d98a10;stroke:#d98a10}.at-scroll .at-selection div{background:#3fc1e829;border-top:2px solid rgba(63,193,232,.65);border-bottom:2px solid rgba(63,193,232,.65)}@media(max-width:760px){.hero{padding:28px 24px}.hero-stats{width:100%;justify-content:space-between}.practice-header{flex-direction:column-reverse;align-items:flex-start}.timer-ring{width:110px;height:110px;align-self:flex-end}.timer-text{font-size:1.4rem}.routine-card{flex-direction:column;align-items:stretch}.metronome-bar{width:100%;justify-content:space-between;gap:10px;padding-right:14px}.metro-volume{display:none}}.ex-card.to-refine{border-style:dashed;border-color:#f5a52473}.chip.refine{color:var(--accent-strong)}.tuning-gate{flex-direction:column;gap:18px;text-align:center;padding:24px}.tuning-gate h2{font-size:1.7rem;margin:0}.tuning-gate p{color:var(--text-dim);margin:0}.tuning-gate-actions{display:flex;flex-direction:column;gap:12px;min-width:320px}.tuning-gate-actions .btn{flex-direction:column;gap:3px;padding:13px 22px}.tuning-gate-actions .btn small{display:block;font-weight:400;font-size:.78rem;opacity:.75;white-space:normal;max-width:380px}.tuning-strings{display:flex;gap:10px;justify-content:center}.tuning-string{display:inline-flex;align-items:baseline;gap:2px;font-size:1.5rem;font-weight:700;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.tuning-string small{font-size:.68rem;color:var(--text-faint);margin-right:4px;font-weight:600}.tuning-string sub{font-size:.75rem;color:var(--text-dim)}.tuning-timer{font-size:2.6rem;font-weight:800;color:var(--accent-strong);font-variant-numeric:tabular-nums}.riff-tuning{font-size:.74rem;font-weight:650;color:var(--accent-strong);background:#f5a5241a;border-radius:999px;padding:3px 10px;white-space:nowrap}.riff-song-art{width:44px;height:44px;border-radius:6px;object-fit:cover;border:1px solid var(--border)}.riff-rename-input{font-weight:700;font-size:.95rem;background:var(--bg);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;color:var(--text);width:100%;max-width:340px}.bpm-control{display:grid;grid-template-columns:auto minmax(120px,auto) auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:5px;padding:8px 14px;background:var(--bg-card);border:1px solid rgba(245,165,36,.4);border-radius:var(--radius-sm)}.bpm-control.disabled{opacity:.55}.bpm-btn{width:42px;height:42px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1.4rem;font-weight:700;cursor:pointer;line-height:1;touch-action:none;-webkit-user-select:none;user-select:none}.bpm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.bpm-read{display:flex;align-items:baseline;gap:7px;justify-content:center}.bpm-num{background:none;border:none;color:var(--accent-strong);font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;cursor:text;padding:0}.bpm-input{width:84px;font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:var(--accent-strong);background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:0 6px;text-align:center}.bpm-unit{font-size:.7rem;font-weight:650;color:var(--text-dim);letter-spacing:.06em;display:inline-flex;gap:4px;align-items:baseline}.bpm-reset{background:none;border:none;color:var(--text-faint);font-size:.7rem;font-weight:650;cursor:pointer;padding:0}.bpm-reset:hover:not(:disabled){color:var(--accent-strong)}.bpm-reset:disabled{cursor:default}.bpm-slider{grid-column:1 / -1;width:100%;accent-color:var(--accent);margin:0}.attab-drums{display:inline-flex;align-items:center;gap:7px}.attab-drums input[type=range]{width:90px;accent-color:var(--accent)}.jam-bpm{margin-left:auto;margin-right:14px}.riff-suggest-label{font-size:.72rem;font-weight:650;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;align-self:center;margin-right:4px}.quiz-game{align-items:center}.quiz-slots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.quiz-slot{min-width:46px;min-height:46px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:1.05rem;font-weight:600;font-family:var(--font);color:var(--text);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.quiz-slot:hover:not(:disabled):not(.given){border-color:var(--accent);background:var(--bg-hover)}.quiz-slot:active:not(.given){transform:scale(.94)}.quiz-slot.given{color:var(--text-dim);background:var(--bg-raised);cursor:default}.quiz-slot.tall{min-width:56px;min-height:56px;cursor:default}.quiz-slot.picked{border-color:var(--accent);background:var(--accent-dim)}.quiz-slot.good{border-color:#4ade80;background:#4ade802e;color:#4ade80}.quiz-slot.bad{border-color:#f87171;background:#f871712e;color:#f87171}.quiz-slot-degree{font-size:.62rem;font-weight:700;color:var(--text-faint);letter-spacing:.04em}.quiz-slot.good .quiz-slot-degree,.quiz-slot.bad .quiz-slot-degree{color:inherit}.quiz-check{justify-content:center;min-width:130px}.quiz-notepad{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:460px}.quiz-note{min-width:56px;justify-content:center;font-size:.92rem;padding:8px 10px}.theory-option.quiz-good{border-color:#4ade80;background:#4ade802e;color:#4ade80}.theory-option.quiz-bad{border-color:#f87171;background:#f871712e;color:#f87171}.quiz-hint{display:block;font-size:.82rem;color:var(--text-faint);margin-top:4px}.circle-fourths{display:flex;flex-direction:column;align-items:center;gap:10px}.circle-fourths svg{width:min(360px,88vw);height:auto}.cf-ring{fill:none;stroke:var(--border-strong);stroke-dasharray:3 5}.cf-node{cursor:pointer}.cf-node circle{fill:var(--bg-card);stroke:var(--border-strong);stroke-width:1.4;transition:fill .15s,stroke .15s}.cf-node:hover circle{stroke:var(--accent);fill:var(--bg-hover)}.cf-node.on circle{stroke:var(--accent);fill:var(--accent-dim)}.cf-node.bad circle{stroke:#f87171;fill:#f871712e}.cf-major{fill:var(--text);font-size:13px;font-weight:700;text-anchor:middle;pointer-events:none}.cf-sig{fill:var(--text-faint);font-size:9px;text-anchor:middle;pointer-events:none}.cf-minor{fill:var(--text-faint);font-size:10px;text-anchor:middle;pointer-events:none}.cf-info{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.88rem;color:var(--text-dim)}.cf-info strong{color:var(--text);font-size:.95rem}.cf-scale{color:var(--accent);font-weight:600;letter-spacing:.06em}.scale-steps{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center;background:none;border:none;cursor:pointer;padding:6px;font-family:var(--font)}.scale-steps-pair{display:inline-flex;align-items:center;gap:4px}.scale-steps-note{min-width:40px;padding:9px 6px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);font-weight:600;font-size:.98rem;text-align:center;transition:border-color .15s}.scale-steps:hover .scale-steps-note{border-color:var(--accent)}.scale-steps-note.root{border-color:var(--accent);color:var(--accent-strong)}.scale-steps-gap{font-size:.72rem;font-weight:700;color:var(--text-faint)}.scale-steps-gap.half{color:var(--accent)}.quiz-embed{width:100%}.settings-chips{display:flex;gap:8px}.admin-page .page-head{display:flex;align-items:center;gap:14px}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:6px}.admin-table th{text-align:left;color:var(--text-faint);font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;padding:6px 10px;border-bottom:1px solid var(--border-strong)}.admin-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-dim)}.admin-table td:first-child{color:var(--text);font-weight:600}.admin-empty{text-align:center;color:var(--text-faint)}.admin-days{display:flex;gap:6px;align-items:flex-end;margin-top:8px}.admin-day{display:flex;flex-direction:column;align-items:center;gap:3px}.admin-day-bar{width:26px;height:90px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:flex-end;overflow:hidden}.admin-day-fill{width:100%;background:var(--accent);opacity:.75;border-radius:5px 5px 0 0;min-height:2px}.admin-day-label{font-size:.66rem;color:var(--text-faint)}.admin-day-n{font-size:.72rem;color:var(--text-dim)}.admin-byuser{color:var(--text-dim);font-size:.86rem;margin-top:6px}.admin-events{display:flex;flex-direction:column;gap:2px;margin-top:6px}.admin-event{display:grid;grid-template-columns:90px 90px 170px 1fr;gap:10px;font-size:.82rem;padding:5px 8px;border-radius:6px;color:var(--text-dim)}.admin-event:nth-child(odd){background:var(--bg-raised)}.admin-event-ts{color:var(--text-faint)}.admin-event-user{color:var(--text);font-weight:600}.admin-event-payload{color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-notices{position:fixed;bottom:96px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:60;max-width:340px}.fb-notice{background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.fb-notice-head{display:flex;align-items:center;gap:7px;color:var(--accent-strong);font-weight:700;font-size:.85rem}.fb-notice-quote{color:var(--text-dim);font-size:.88rem}.admin-invites{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:8px}.admin-code{display:inline-flex;align-items:center;gap:7px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 12px;color:var(--text-dim);cursor:pointer;font-family:var(--font);font-size:.84rem}.admin-code:hover{border-color:var(--accent)}.admin-code code{color:var(--accent-strong);font-weight:700;letter-spacing:.08em;font-size:.95rem}.admin-code-note{color:var(--text-faint);font-size:.78rem}.app.admin-mode{--accent: #cfd6e2;--accent-strong: #f2f5fa;--accent-dim: rgba(207, 214, 226, .14)}.admin-sweep{position:fixed;left:0;right:0;height:38vh;pointer-events:none;z-index:40;background:linear-gradient(to bottom,transparent,rgba(226,232,244,.05) 30%,rgba(238,243,252,.13) 50%,rgba(226,232,244,.05) 70%,transparent)}.admin-subnav{display:flex;gap:8px;flex:1;margin-left:18px}.admin-subnav .chip{display:inline-flex;align-items:center;gap:6px}.admin-toggle{margin-left:12px;font-size:.72rem;vertical-align:middle}.admin-requests code{font-size:.8rem;color:var(--text-dim)}.admin-row-error td,.admin-row-error code{color:#f28b8b}.fb-resolution{color:var(--green);font-size:.85rem;margin-top:4px}.fb-resolve{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.fb-resolve input{flex:2 1 220px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-family:var(--font);font-size:.85rem}.fb-resolve-link{flex:1 1 130px!important}.fb-notices{max-width:400px}.fb-notice{padding:18px 20px;gap:9px}.fb-notice-head{font-size:.95rem}.fb-notice-resolution{color:var(--text);font-size:.95rem;line-height:1.45}.fb-notice-quote{color:var(--text-faint);font-size:.82rem}.fb-notice-actions{display:flex;gap:8px}.fb-notice-thanks{color:var(--text-faint);font-size:.78rem}
