:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-w-flow:560px;--page-w-read:720px;--page-w-app:900px;--page-w-wide:1080px;--bg:#0f0f0f;--bg2:#161616;--bg3:#1e1e1e;--border:#ffffff14;--border2:#ffffff24;--text:#e8e4dc;--muted:#a89f98;--accent-gnr:#e8512a;--accent-oasis:#4a9eff;--accent-clapton:#c8a84b;--accent-you:var(--text);--accent-you-rgb:232, 228, 220;--accent-practice:#4a9eff;--accent-practice-rgb:74, 158, 255;--accent-tools:#9b7bff;--accent-tools-rgb:155, 123, 255;--tools-grad:linear-gradient(135deg, #8b6cff 0%, #6a4cf0 100%);--tools-grad-hover:linear-gradient(135deg, #a084ff 0%, #7a5cff 100%);--accent-teach:#c8a84b;--accent-teach-rgb:200, 168, 75;--white:#fff;--black:#000;--white-rgb:255, 255, 255;--black-rgb:0, 0, 0;--bg-rgb:15, 15, 15;--practice-deep-rgb:40, 100, 200;--practice-strong:#2f80ed;--cyan:#56ccf2;--cyan-rgb:86, 204, 242;--success-deep-rgb:34, 160, 96;--success-grad:linear-gradient(135deg, #2dae6a 0%, #1a9955 100%);--yt-rgb:255, 0, 0;--yt-bright-rgb:255, 48, 48;--accent-gnr-rgb:232, 81, 42;--neon-cyan-rgb:0, 244, 255;--neon-pink-rgb:255, 23, 112;--tools-heading-grad:linear-gradient(135deg, #fff 0%, #ece6ff 50%, #b49bff 100%);--you-grad:linear-gradient(180deg, #f4f1ea 0%, #d9d3c8 100%);--practice-grad:linear-gradient(135deg, #4a9efff2 0%, #2864c8eb 100%);--teach-grad:linear-gradient(135deg, #d6b758 0%, #b89538 100%);--practice-strong-rgb:47, 128, 237;--teach-deep-rgb:160, 128, 50;--teach-light:#f0dc9a;--on-gold:#1a1408;--feel-easy:var(--color-success);--feel-easy-rgb:var(--color-success-rgb);--feel-good:var(--text);--feel-good-rgb:var(--accent-you-rgb);--feel-hard:var(--color-warning);--feel-hard-rgb:var(--color-warning-rgb);--on-light:#141414;--color-success-rgb:61, 220, 132;--color-warning-rgb:255, 165, 60;--color-danger-rgb:224, 82, 82;--accent-chords:var(--accent-practice);--accent-tempo:var(--accent-tools);--tempo-grad:var(--tools-grad);--tempo-grad-hover:var(--tools-grad-hover);--accent-tune:var(--accent-tools);--tune-grad:var(--tools-grad);--tune-grad-hover:var(--tools-grad-hover);--accent-vh:#c33;--accent-metal:#84d;--accent-mayer:#5a9eff;--accent-edge:#44d9dd;--accent-srv:#d84;--accent-gilmour:#d84aaa;--accent-clark-jr:#4add7a;--accent-rodgers:#dda844;--accent-wylde:#a34;--accent-satriani:#dd4;--accent-hendrix:#9c27b0;--accent-knopfler:#00bcd4;--accent-bb-king:#ff9800;--accent-santana:#ff5722;--accent-beck:#673ab7;--accent-atkins:#8bc34a;--accent-buddy-guy:#e91e63;--accent-albert-king:#3f51b5;--on:#3ddc84;--streak:#ffa53c;--error:#e05252;--accent-amber:#d4a24c;--journey-far:#74d39c;--journey-near:#e8c46b;--journey-soon:#f0a060;--journey-overdue:#f06060;--mode-clean:#4caf50;--mode-crunch:#ff9800;--mode-higain:#f44336;--off:#555;--plate:#e8a84a;--hall:#4a8ee8;--spring:#4ae8a8;--echo:#d84;--yt-red:red;--yt-red-deep:#c80000;--yt-red-bright:#ff3030;--yt-grad:linear-gradient(135deg, red 0%, #c80000 100%);--yt-grad-hover:linear-gradient(135deg, #ff3030 0%, #e00000 100%);--color-bg:var(--bg);--color-success:var(--on);--color-warning:var(--streak);--color-danger:var(--error);--color-text:var(--text);--white-a02:#ffffff05;--white-a03:#ffffff08;--white-a04:#ffffff0a;--white-a05:#ffffff0d;--white-a06:#ffffff0f;--white-a07:#ffffff12;--white-a08:#ffffff14;--white-a10:#ffffff1a;--white-a12:#ffffff1f;--oasis-a04:#4a9eff0a;--oasis-a06:#4a9eff0f;--oasis-a08:#4a9eff14;--oasis-a10:#4a9eff1a;--oasis-a12:#4a9eff1f;--oasis-a14:#4a9eff24;--oasis-a15:#4a9eff26;--oasis-a18:#4a9eff2e;--oasis-a20:#4a9eff33;--oasis-a22:#4a9eff38;--oasis-a28:#4a9eff47;--oasis-a30:#4a9eff4d;--oasis-a35:#4a9eff59;--oasis-a45:#4a9eff73;--oasis-a50:#4a9eff80;--gnr-a12:#e8512a1f;--gnr-a25:#e8512a40;--gnr-a35:#e8512a59;--fg:var(--text);--black-a35:#00000059;--font-head:"Barlow Condensed", sans-serif;--font-body:"Barlow", sans-serif;--font-mono:"DM Mono", monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:20px;--fs-hero:28px;--br-xs:6px;--br-sm:8px;--br-md:12px;--br-lg:16px;--br-xl:20px;--br-pill:999px;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 4px 16px #00000059;--shadow-lg:0 14px 40px #00000073, 0 2px 8px #0000004d;--shadow-inset:inset 0 1px 0 #ffffff0f;--dur-fast:.15s;--dur-normal:.22s;--dur-slow:.35s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--lh-tight:1.1;--lh-snug:1.2;--lh-base:1.45;--lh-relaxed:1.6;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--bottom-nav-h:60px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-relaxed);min-height:100vh;min-height:100dvh}#root{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}@keyframes sk-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes sk-fade-in{0%{opacity:0}to{opacity:1}}.skeleton{background:rgba(var(--white-rgb), .06);border-radius:6px;flex-shrink:0;display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent 0%, rgba(var(--white-rgb), .04) 40%, rgba(var(--white-rgb), .08) 50%, rgba(var(--white-rgb), .04) 60%, transparent 100%);will-change:transform;animation:1.4s ease-in-out infinite sk-shimmer;position:absolute;top:0;bottom:0;left:0;right:0}.skeleton-text{background:rgba(var(--white-rgb), .06);border-radius:4px;height:12px}.skeleton-text--lg{height:20px}.skeleton-text--xl{height:28px}.skeleton-text--sm{height:10px}.skeleton-avatar{border-radius:50%!important}.skeleton-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px;overflow:hidden}.sk-fade-in{animation:.2s ease-out both sk-fade-in}.cal-upcoming-card--loading{pointer-events:none}.assigned-skeleton-row{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.assigned-skeleton-row:after{content:"";background:linear-gradient(90deg, transparent 0%, rgba(var(--white-rgb), .04) 40%, rgba(var(--white-rgb), .08) 50%, rgba(var(--white-rgb), .04) 60%, transparent 100%);animation:1.4s ease-in-out infinite sk-shimmer;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes sk-appear{0%{opacity:0}to{opacity:1}}.home-dashboard-skeleton{flex-direction:column;gap:12px;animation:.25s ease-out .12s both sk-appear;display:flex}.home-dashboard-skeleton .home-greeting-today{min-height:1em}.home-dashboard-skeleton .home-skeleton-headline{max-width:70%;margin-top:4px}.daily-exercise-card.today-session.session-skeleton{pointer-events:none;animation:.25s ease-out .12s both sk-appear}.session-skeleton .today-session-head{flex-direction:column;gap:8px;display:flex}.session-skeleton-step{background:rgba(var(--black-rgb), .2)}.session-skeleton-step-text{gap:6px}.session-skeleton-cta{margin-top:2px}.home-skeleton-checklist{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:12px 16px;display:flex}.home-skeleton-continue-card{cursor:default;justify-content:flex-start}.home-skeleton-continue-card:hover{border-color:var(--border2);transform:none}.ex-cat-today.ex-cat-today--loading{pointer-events:none;animation:.25s ease-out .12s both sk-appear}.ex-cat-today--loading .ex-cat-today-text{flex-direction:column;flex:1;gap:6px;display:flex}.page-skeleton{pointer-events:none;animation:.25s ease-out .12s both sk-appear}.page-skeleton-stack{flex-direction:column;gap:8px;display:flex}.page-skeleton-row{align-items:center;gap:10px;display:flex}.page-skeleton .pg-hero-text,.page-skeleton .profile-hero-text{flex:1;min-width:0}.page-skeleton .pg-hero{flex-direction:column;gap:14px;display:flex}.page-skeleton-heatmap{grid-template-rows:repeat(7,10px);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:3px;margin-top:6px;display:grid}.page-skeleton-cell{border-radius:2px;width:100%;height:10px}.route-skeleton{min-height:calc(100vh - var(--bottom-nav-h,64px))}.page-skeleton--generic{max-width:var(--page-w-read);flex-direction:column;gap:14px;display:flex}.page-skeleton-card{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border);padding:16px}*{box-sizing:border-box}option{background:var(--bg3);color:var(--text)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}button:focus-visible{outline:3px solid var(--accent-oasis);outline-offset:3px;box-shadow:0 0 0 4px var(--oasis-a20)}input:focus-visible{outline:3px solid var(--accent-oasis);outline-offset:3px;box-shadow:0 0 0 4px var(--oasis-a20)}[role=button]:focus-visible{outline:3px solid var(--accent-oasis);outline-offset:3px;box-shadow:0 0 0 4px var(--oasis-a20)}a:focus-visible{outline:3px solid var(--accent-oasis);outline-offset:3px;box-shadow:0 0 0 4px var(--oasis-a20)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.skip-link{background:var(--accent-oasis);color:var(--bg);z-index:100;border-radius:0 0 4px;padding:8px 16px;font-weight:600;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html{overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-md);overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent;margin:0;padding:0;line-height:1.6}button,[role=button],a,input,select,textarea,label{touch-action:manipulation}button,[role=button]{-webkit-user-select:none;user-select:none}html.modal-open,html.modal-open body{overflow:hidden}.teacher-modal-overlay,.cal-modal-overlay{z-index:1000;background:rgba(var(--black-rgb), .7);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.route-fallback{z-index:9999;pointer-events:none;background:rgba(var(--accent-teach-rgb), .1);height:2px;position:fixed;top:0;left:0;right:0;overflow:hidden}.route-fallback-bar{background:linear-gradient(90deg, transparent, var(--accent-teach), transparent);animation:1.1s ease-in-out infinite route-fallback-slide;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes route-fallback-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}:root,[data-family=you]{--page-accent:var(--accent-you);--page-accent-rgb:var(--accent-you-rgb);--page-grad:var(--you-grad);--page-on:var(--on-light)}[data-family=practice]{--page-accent:var(--accent-practice);--page-accent-rgb:var(--accent-practice-rgb);--page-grad:var(--practice-grad);--page-on:var(--white)}[data-family=tools]{--page-accent:var(--accent-tools);--page-accent-rgb:var(--accent-tools-rgb);--page-grad:var(--tools-grad);--page-on:var(--white)}[data-family=teach]{--page-accent:var(--accent-teach);--page-accent-rgb:var(--accent-teach-rgb);--page-grad:var(--teach-grad);--page-on:var(--on-light)}[data-family=looper]{--page-accent:var(--yt-red-bright);--page-accent-rgb:var(--yt-bright-rgb);--page-grad:var(--yt-grad);--page-on:var(--white)}.ui-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0;font-weight:700}.ui-kicker--muted{color:var(--muted)}.ui-title{font-family:var(--font-head);font-size:var(--fs-hero);font-weight:700;line-height:var(--lh-tight);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0}.ui-h2{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:700;line-height:var(--lh-snug);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0}.ui-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0;font-weight:700}.ui-p{max-width:68ch;font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--muted);margin:0}.ui-card{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--br-lg);box-shadow:var(--shadow-lg), var(--shadow-inset)}.ui-hero{border-radius:var(--br-xl);border:1px solid rgba(var(--page-accent-rgb), .27);background:radial-gradient(120% 80% at 0% 0%, rgba(var(--page-accent-rgb), .12), transparent 55%), radial-gradient(120% 80% at 100% 100%, rgba(var(--page-accent-rgb), .07), transparent 55%), var(--bg2);box-shadow:var(--shadow-lg), var(--shadow-inset);transition:border-color var(--dur-normal);position:relative;overflow:hidden}.ui-hero:before{content:"";background:var(--page-grad);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.ui-hero.is-live{border-color:rgba(var(--color-success-rgb), .42)}.ui-hero.is-live:before{background:linear-gradient(90deg, #2dae6a, var(--on))}.ui-btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-5);border-radius:var(--br-md);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;box-shadow:inset 0 1px 0 var(--white-a04);transition:transform var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);font-weight:700;text-decoration:none;display:inline-flex}.ui-btn svg{flex:none;width:18px;height:18px}.ui-btn:hover{border-color:rgba(var(--page-accent-rgb), .45);color:var(--text)}.ui-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.ui-btn:disabled{opacity:.5;cursor:default;transform:none}.ui-btn--lg{min-height:56px;font-size:var(--fs-base)}.ui-btn--sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-2xs)}.ui-btn--block{width:100%}.ui-btn--primary{border-color:rgba(var(--page-accent-rgb), .55);background:var(--page-grad);color:var(--page-on);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), inset 0 -1px 0 rgba(var(--black-rgb), .18), 0 4px 14px rgba(var(--page-accent-rgb), .3)}.ui-btn--primary:hover:not(:disabled){color:var(--page-on);box-shadow:0 8px 22px rgba(var(--page-accent-rgb), .45);filter:brightness(1.08);transform:translateY(-1px)}.ui-btn--tint{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .06);color:var(--page-accent)}.ui-btn--tint:hover{background:rgba(var(--page-accent-rgb), .12);color:var(--page-accent)}.ui-btn--live,.ui-btn--live:hover:not(:disabled){border-color:rgba(var(--color-success-rgb), .55);background:var(--success-grad);color:var(--white);filter:none;animation:1.8s ease-in-out infinite ui-live-glow}.ui-btn--danger{color:var(--error)}.ui-btn--danger:hover{border-color:rgba(var(--color-danger-rgb), .5);color:var(--error)}@keyframes ui-live-glow{0%,to{box-shadow:0 4px 16px rgba(var(--color-success-rgb), .4)}50%{box-shadow:0 8px 28px rgba(var(--color-success-rgb), .72)}}.ui-step{border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));width:44px;height:44px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-lg);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast), border-color var(--dur-fast);border-radius:50%;flex:none;line-height:1}.ui-step:hover:not(:disabled){background:rgba(var(--page-accent-rgb), .1);border-color:rgba(var(--page-accent-rgb), .4)}.ui-step:active:not(:disabled){transform:scale(.96)}.ui-step:disabled{opacity:.4;cursor:default}.ui-step:focus-visible{outline:2px solid var(--text);outline-offset:2px}.ui-step--lg{width:56px;height:56px;font-size:24px}.ui-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.ui-chip{min-width:44px;min-height:40px;padding:0 var(--sp-3);border-radius:var(--br-pill);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.04em;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);font-weight:500}.ui-chip:hover{border-color:rgba(var(--page-accent-rgb), .45);color:var(--text)}.ui-chip.is-active{background:rgba(var(--page-accent-rgb), .15);border-color:rgba(var(--page-accent-rgb), .5);color:var(--page-accent)}.ui-chip:focus-visible{outline:2px solid var(--text);outline-offset:2px}.ui-switch{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--white-a08);cursor:pointer;width:52px;height:30px;transition:background var(--dur-fast), border-color var(--dur-fast);flex:none;position:relative}.ui-switch:before{content:"";position:absolute;top:-8px;bottom:-8px;left:-4px;right:-4px}.ui-switch-knob{background:var(--muted);width:22px;height:22px;transition:transform var(--dur-normal) var(--ease-out), background var(--dur-fast);border-radius:50%;position:absolute;top:3px;left:3px}.ui-switch.is-on{background:rgba(var(--page-accent-rgb), .35);border-color:rgba(var(--page-accent-rgb), .6)}.ui-switch.is-on .ui-switch-knob{background:var(--white);transform:translate(22px)}.ui-switch:focus-visible{outline:2px solid var(--text);outline-offset:2px}.ui-link{color:var(--page-accent);border-bottom:1px solid rgba(var(--page-accent-rgb), .3);text-decoration:none}.ui-link:hover{border-bottom-color:var(--page-accent)}.ui-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(to right, var(--page-accent) 0%, var(--page-accent) calc(var(--pct,50) * 1%), var(--white-a12) calc(var(--pct,50) * 1%), var(--white-a12) 100%);cursor:pointer;border-radius:99px;outline:none;flex:1;min-width:0;height:4px;margin:12px 0}.ui-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--page-accent);border:2px solid rgba(var(--black-rgb), .35);width:22px;height:22px;box-shadow:0 0 0 3px rgba(var(--page-accent-rgb), .2);transition:box-shadow var(--dur-fast);border-radius:50%}.ui-slider::-moz-range-thumb{background:var(--page-accent);border:2px solid rgba(var(--black-rgb), .35);border-radius:50%;width:22px;height:22px}.ui-slider:hover::-webkit-slider-thumb{box-shadow:0 0 0 6px rgba(var(--page-accent-rgb), .3)}.ui-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 6px rgba(var(--page-accent-rgb), .3)}.ui-slider--sm::-webkit-slider-thumb{width:18px;height:18px}.ui-slider--sm::-moz-range-thumb{width:18px;height:18px}.ui-table-wrap{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--bg2);overflow-x:auto}.ui-table{border-collapse:collapse;width:100%;font-size:var(--fs-base);line-height:var(--lh-base)}.ui-table th,.ui-table td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--border)}.ui-table tbody tr:last-child th,.ui-table tbody tr:last-child td{border-bottom:none}.ui-table thead th{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}.ui-table td{color:var(--muted)}.ui-table tr.is-current{background:rgba(var(--page-accent-rgb), .06)}.ui-table tr.is-current th{box-shadow:inset 3px 0 0 var(--page-accent)}.ui-faq{gap:var(--sp-4);flex-direction:column;max-width:68ch;margin:0;display:flex}.ui-faq-item{gap:var(--sp-1);flex-direction:column;display:flex}.ui-faq-q{font-weight:600;font-size:var(--fs-md);color:var(--text)}.ui-faq-a{font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--muted);margin:0}@media (prefers-reduced-motion:reduce){.ui-btn--live{animation:none}}.ui-title--grad{background:linear-gradient(135deg, var(--white) 0%, var(--white) 45%, var(--page-accent) 140%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.contributions-card{min-width:0;min-height:120px}.tracker-calendar-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:2px 0 0;font-weight:700;line-height:1.2}.tracker-calendar-desc{font-size:var(--fs-sm);color:var(--muted);margin:6px 0 0;line-height:1.5}.contributions-shell{width:100%;min-width:0;margin-top:10px;padding:12px 0 14px;overflow:auto visible}.contributions-months{grid-template-columns:repeat(var(--weeks), 11px);column-gap:3px;min-height:14px;margin:0 0 8px 24px;display:grid}.contributions-month{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.02em;color:var(--muted);text-transform:lowercase;white-space:nowrap}.contributions-grid{grid-template-columns:repeat(var(--weeks), 11px);grid-template-rows:repeat(7,11px);grid-auto-flow:column;gap:3px;width:max-content;margin-left:24px;display:grid}.contrib-cell{border:1px solid var(--white-a05);background:var(--white-a05);border-radius:2px;width:11px;height:11px}.contrib-cell.level-0{background:#0d1a12;border-color:#1a3025}.contrib-cell.level-1{background:#0d3020;border-color:#0d3020}.contrib-cell.level-2{background:#0f5535;border-color:#0f5535}.contrib-cell.level-3{box-shadow:none;background:#1a9055;border-color:#1a9055}.contrib-cell.level-4{background:var(--on);border-color:var(--on);box-shadow:none}.contrib-cell.is-pad{opacity:.35}.contrib-cell.is-streak{outline:1px solid rgba(var(--color-warning-rgb), .85);outline-offset:1px;box-shadow:0 0 4px rgba(var(--color-warning-rgb), .55)}.contributions-streak{color:var(--streak);letter-spacing:.04em;font-weight:600}.contributions-legend{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);align-items:center;gap:6px;margin-top:10px;display:flex}.contributions-meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:10px 0 0}@media (max-width:900px){.contributions-shell{scrollbar-width:none;padding-bottom:10px;overflow-x:auto}.contributions-shell::-webkit-scrollbar{display:none}.contributions-months,.contributions-grid{margin-left:0}}.app{min-height:100vh;background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.app-top-chrome{z-index:100;padding-top:var(--safe-top);background:var(--bg2);position:sticky;top:0}.main-container{width:100%;max-width:1400px;animation:page-fade-in var(--dur-normal) ease-out both;flex:1;margin:0 auto;padding:20px 24px 80px;overflow-x:clip}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes nav-progress-slide{0%{transform:scaleX(.05)}50%{transform:scaleX(.65)}to{transform:scaleX(.9)}}.page-spinner-wrap{justify-content:center;align-items:center;min-height:50vh;display:flex}@keyframes page-spin{to{transform:rotate(360deg)}}.page-spinner{border:2px solid var(--border2);border-top-color:var(--accent-oasis);border-radius:50%;width:26px;height:26px;animation:.75s linear infinite page-spin}.save-toast{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .18) 0%, rgba(var(--success-deep-rgb), .12) 100%);border:1px solid rgba(var(--color-success-rgb), .4);color:var(--on);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 8px 28px rgba(var(--black-rgb), .45), 0 0 0 1px rgba(var(--color-success-rgb), .1);z-index:500;pointer-events:none;animation:save-toast-in var(--dur-slow) cubic-bezier(.34,1.56,.64,1) both;border-radius:50px;align-items:center;gap:8px;padding:10px 20px;font-weight:700;display:inline-flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.whats-new-banner{background:linear-gradient(90deg, rgba(var(--accent-practice-rgb), .08), rgba(var(--color-success-rgb), .05));border-bottom:1px solid rgba(var(--accent-practice-rgb), .22);width:100%}.whats-new-banner__content{box-sizing:content-box;max-width:var(--page-w-app);margin:0 auto;padding:14px 24px 18px}.whats-new-banner__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.whats-new-banner__kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-oasis);font-weight:700}.whats-new-banner__dismiss{border:1px solid var(--border2);background:rgba(var(--white-rgb), .04);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:50%;font-size:18px;line-height:1;transition:background .15s,color .15s,border-color .15s}.whats-new-banner__dismiss:hover{background:rgba(var(--accent-practice-rgb), .1);border-color:rgba(var(--accent-practice-rgb), .38);color:var(--text)}.whats-new-banner__title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:6px 0 8px;font-size:clamp(20px,2.2vw,28px);line-height:1.1}.whats-new-banner__list{color:var(--muted);font-size:var(--fs-sm);gap:4px;margin:0;padding-left:18px;line-height:1.6;display:grid}.whats-new-banner__list li::marker{color:var(--accent-oasis)}.whats-new-banner__more{min-height:44px;color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:4px;padding:0}.whats-new-banner__more:hover{color:var(--text)}@keyframes save-toast-in{0%{opacity:0;transform:translate(-50%)translateY(16px)scale(.88)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.header{background:linear-gradient(180deg, #161616fa, rgba(var(--bg-rgb), .96));border-bottom:1px solid var(--white-a08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 40px}.header-bar{justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:1400px;margin:0 auto;display:flex}.header-wordmark{cursor:pointer;font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);-webkit-user-select:none;user-select:none;background:0 0;border:none;margin:0;padding:0;font-weight:700;line-height:1;transition:color .12s}.header-wordmark:hover{color:var(--accent-oasis)}.header-actions{align-items:center;gap:12px;display:flex}.streak-chip{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--streak);border:1px solid rgba(var(--color-warning-rgb), .45);background:rgba(var(--color-warning-rgb), .08);border-radius:var(--br-pill);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:6px 10px;transition:background .12s,border-color .12s,transform .12s;display:inline-flex}.streak-chip:hover{background:rgba(var(--color-warning-rgb), .16);border-color:rgba(var(--color-warning-rgb), .75);transform:translateY(-1px)}.streak-chip:focus-visible{background:rgba(var(--color-warning-rgb), .16);border-color:rgba(var(--color-warning-rgb), .75);transform:translateY(-1px)}.streak-chip-flame{font-size:var(--fs-base);line-height:1}.streak-chip--pending{color:rgba(var(--color-warning-rgb), .7);border-style:dashed;border-color:rgba(var(--color-warning-rgb), .4);background:0 0}@media (max-width:540px){.streak-chip--header .streak-chip-text{display:none}}.drawer-sync-line{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.drawer-sync-line--syncing{color:var(--accent-oasis)}.drawer-sync-line--error-transient,.drawer-sync-line--error-permission,.drawer-sync-line--error-other{color:var(--accent-clapton)}.auth-drawer-overlay{z-index:199;background:rgba(var(--black-rgb), .45);position:fixed;top:0;bottom:0;left:0;right:0}.auth-drawer{z-index:200;background:var(--bg2);border-left:1px solid var(--border2);flex-direction:column;gap:12px;width:300px;max-width:90vw;padding:16px;transition:transform .25s ease-out;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.auth-drawer--open{transform:translate(0)}.auth-signin-panel{flex-direction:column;gap:14px;padding-top:8px;display:flex}.auth-pitch-card{background:var(--bg3);border:1px solid var(--border2);border-radius:10px;padding:12px}.auth-pitch{font-size:var(--fs-base);color:var(--text);margin:0;line-height:1.55}.auth-local-note{font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--border2);margin:0;padding-top:12px;line-height:1.55}.auth-action-btn{border-radius:var(--br-sm);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);justify-content:center;align-items:center;gap:10px;padding:12px 16px;display:flex}.auth-action-btn:hover{border-color:var(--accent-oasis);background:var(--oasis-a08)}.auth-google-btn{border-color:#4285f466}.drawer-data-btn{border-radius:var(--br-sm);border:1px solid var(--border2);background:var(--bg3);color:var(--muted);font-size:var(--fs-sm);font-family:var(--font-body);cursor:pointer;text-align:left;transition:border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast);align-items:center;padding:7px 12px;display:flex}.drawer-data-btn:hover{border-color:var(--border);color:var(--text)}.drawer-data-btn--danger{color:var(--error);border-color:rgba(var(--color-danger-rgb), .25)}.drawer-data-btn--danger:hover{border-color:rgba(var(--color-danger-rgb), .6);background:rgba(var(--color-danger-rgb), .07);color:var(--error)}.drawer-confirm-overlay{z-index:230;background:radial-gradient(circle at 75% 25%, rgba(var(--color-danger-rgb), .12), transparent 50%), rgba(var(--black-rgb), .6);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.drawer-confirm-modal{border-radius:var(--br-md);border:1px solid rgba(var(--color-danger-rgb), .34);background:radial-gradient(ellipse 280px 120px at 100% 0%, rgba(var(--color-danger-rgb), .1), transparent 62%), var(--bg2);width:min(380px,100%);box-shadow:0 14px 40px rgba(var(--black-rgb), .45), var(--shadow-inset);flex-direction:column;gap:8px;padding:14px;display:flex}.drawer-confirm-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--error);margin:0;font-weight:700}.drawer-confirm-body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--text);margin:0;line-height:1.45}.drawer-confirm-actions{gap:8px;margin-top:2px;display:flex}.drawer-confirm-actions .drawer-data-btn{flex:1;justify-content:center}.google-icon{flex-shrink:0;width:18px;height:18px}.app-footer{border-top:2px solid var(--border2);background:linear-gradient(135deg, var(--bg2) 0%, var(--bg3) 100%);margin-top:60px;padding:24px 40px}.footer-content{max-width:1400px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);margin:0 auto;line-height:1.7}.footer-early-access{border:1px solid rgba(var(--accent-teach-rgb), .3);background:radial-gradient(ellipse at 30% 0%, rgba(var(--accent-teach-rgb), .12), transparent 60%), radial-gradient(ellipse at 80% 100%, rgba(var(--accent-teach-rgb), .08), transparent 50%), var(--bg2);box-shadow:0 0 30px rgba(var(--accent-teach-rgb), .08), inset 0 1px 0 rgba(var(--accent-teach-rgb), .1);border-radius:14px;flex-direction:column;gap:14px;margin-bottom:20px;padding:22px 24px;display:flex}.footer-ea-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.footer-ea-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--on-gold);background:var(--teach-grad);border-radius:4px;padding:3px 10px;font-weight:700}.footer-ea-headline{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 18px rgba(var(--accent-teach-rgb), .35);font-size:18px;font-weight:700}.footer-ea-columns{align-items:stretch;gap:0;display:flex}.footer-ea-col{flex-direction:column;flex:1;gap:2px;padding:10px 16px;display:flex}.footer-ea-divider{background:rgba(var(--accent-teach-rgb), .2);flex-shrink:0;width:1px}.footer-ea-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.footer-ea-value{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--on);text-shadow:0 0 12px rgba(var(--color-success-rgb), .3);font-size:15px;font-weight:700}.footer-ea-col:last-of-type .footer-ea-value{color:var(--accent-clapton);text-shadow:0 0 12px rgba(var(--accent-teach-rgb), .3)}.footer-ea-founding{font-family:var(--font-body);color:var(--muted);text-align:center;margin:0;font-size:12px;line-height:1.5}@media (max-width:520px){.footer-early-access{gap:10px;padding:16px 14px}.footer-ea-headline{font-size:15px}.footer-ea-columns{flex-direction:column;gap:0}.footer-ea-divider{width:100%;height:1px}.footer-ea-col{padding:8px 0}.footer-ea-value{font-size:13px}}.footer-summary{font-size:var(--fs-sm);text-align:center;color:var(--muted);margin:0}.footer-summary a,.footer-link-btn{color:inherit;text-decoration:underline}.footer-link-btn{font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.footer-legal{border-top:1px solid var(--border2);margin-top:12px;padding-top:12px}.footer-legal>summary{cursor:pointer;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:center;padding:4px 0;font-weight:600;list-style:none}.footer-legal>summary::-webkit-details-marker{display:none}.footer-legal>summary:before{content:"▸ ";transition:transform var(--dur-fast) ease;display:inline-block}.footer-legal[open]>summary:before{transform:rotate(90deg)}.footer-legal>summary:hover{color:var(--text);outline:none}.footer-legal>summary:focus-visible{color:var(--text);outline:none}.footer-legal__body{margin-top:12px}.footer-legal__body p{font-size:var(--fs-sm);margin:0;padding:8px 0}.footer-legal__body p.disclaimer-note{border-left:3px solid var(--accent-gnr);font-size:var(--fs-xs);background:rgba(var(--accent-gnr-rgb), .05);border-radius:4px;margin-top:8px;padding:12px}.footer-legal__body strong{color:var(--text);letter-spacing:.02em;font-weight:700}.footer-legal__body a{color:inherit;text-decoration:underline}@media (max-width:768px){.app-footer{padding:18px 20px}.footer-content,.footer-summary,.footer-legal__body p{font-size:var(--fs-xs)}}.legal-page{max-width:680px;margin:0 auto;padding:32px 24px 80px}.legal-header{margin-bottom:32px}.legal-title{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0 0 6px;font-weight:700}.legal-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.legal-section{margin-bottom:28px}.legal-section-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0 0 8px;font-size:16px;font-weight:700}.legal-section-body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--muted);margin:0;line-height:1.65}.legal-section-body+.legal-section-body{margin-top:10px}.main-container{animation:route-enter var(--dur-normal) var(--ease-out) both}.main-container.is-first{animation:none}@keyframes route-enter{0%{opacity:0}to{opacity:1}}.landing-intro{max-width:var(--page-w-app);background:0 0;border:none;border-radius:0;flex-direction:column;gap:12px;margin:0 auto;padding:0;display:flex}.landing-journey{background:radial-gradient(ellipse 700px 260px at 0% 0%, rgba(var(--page-accent-rgb), .52), transparent 58%), radial-gradient(ellipse 400px 240px at 100% 100%, rgba(var(--color-warning-rgb), .36), transparent 55%), radial-gradient(ellipse 300px 200px at 50% 110%, rgba(var(--page-accent-rgb), .14), transparent 55%), var(--bg2);border-color:rgba(var(--page-accent-rgb), .58);box-shadow:0 6px 28px rgba(var(--black-rgb), .35), 0 0 80px rgba(var(--page-accent-rgb), .14), inset 0 1px 0 #ffdc642e;flex-direction:column;gap:12px;display:flex;position:relative;overflow:hidden}.landing-journey:before{content:"";background:linear-gradient(90deg, rgba(var(--page-accent-rgb), .2) 0%, #ffd250f2 35%, rgba(var(--color-warning-rgb), .9) 70%, rgba(var(--page-accent-rgb), .15) 100%);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.landing-journey-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--page-accent);text-shadow:0 0 12px rgba(var(--page-accent-rgb), .6), 0 0 30px rgba(var(--page-accent-rgb), .22);opacity:1;margin:0}.landing-journey h3{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg, var(--white) 0%, #ffe8a0 50%, #d4a830 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:700}.landing-journey-milestones{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;display:grid}.journey-milestone--challenge,.journey-milestone--empty{grid-column:1/-1}@media (max-width:480px){.landing-journey-milestones{grid-template-columns:1fr}}.journey-milestone{flex-direction:column;gap:2px;display:flex}.journey-milestone:not(.journey-milestone--challenge):not(.journey-milestone--empty){align-items:flex-start}.journey-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0}.journey-value{font-size:var(--fs-base);color:var(--text);line-height:1.4}.journey-milestone--highlight .journey-value{font-family:var(--font-mono);font-size:var(--fs-base);color:var(--page-accent);text-shadow:0 0 12px rgba(var(--page-accent-rgb), .5);font-weight:600}.journey-duration{letter-spacing:.02em}.journey-milestone--challenge{border-top:1px solid rgba(var(--page-accent-rgb), .22);margin-top:2px;padding-top:4px}.journey-milestone--challenge .journey-value{color:var(--text)}.journey-wip{font-size:var(--fs-sm);opacity:.85;vertical-align:middle}.journey-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border2);vertical-align:middle;opacity:.8;border-radius:4px;margin-left:4px;padding:1px 5px;display:inline-block}.journey-tag strong{color:var(--text);margin-right:2px;font-weight:600}.journey-goal-meta{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.journey-goal-meta .journey-tag{opacity:1;margin-left:0}.journey-tag--remaining{color:var(--text);border-color:rgba(var(--page-accent-rgb), .55)}.journey-tag--far{color:var(--journey-far);border-color:rgba(var(--color-success-rgb), .55)}.journey-tag--near{color:var(--journey-near);border-color:rgba(var(--accent-teach-rgb), .6)}.journey-tag--soon{color:var(--journey-soon);border-color:#f0a060b3}.journey-tag--overdue{color:var(--journey-overdue);border-color:rgba(var(--color-danger-rgb), .75);background:rgba(var(--color-danger-rgb), .08)}.journey-milestone--empty{flex-direction:column;gap:4px;display:flex}.journey-empty-cta{border:1px dashed var(--border2);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;padding:4px 8px;transition:color .12s,border-color .12s}.journey-empty-cta:hover{color:var(--page-accent);border-color:rgba(var(--page-accent-rgb), .55);outline:none}.journey-empty-cta:focus-visible{color:var(--page-accent);border-color:rgba(var(--page-accent-rgb), .55);outline:none}.landing-journey-gear{border-top:1px solid var(--border2);flex-wrap:wrap;gap:3px 24px;padding-top:10px;display:flex}.journey-gear-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;color:var(--page-accent);text-shadow:0 0 10px rgba(var(--page-accent-rgb), .45);opacity:1;flex:0 0 100%;margin-bottom:2px}@media (max-width:480px){.landing-journey-gear{flex-direction:column}}.landing-journey-gear span{font-size:var(--fs-base);color:var(--text)}.landing-journey-gear strong{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:4px}.home-band-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px;display:grid}.home-band-grid>.daily-exercise-card{grid-column:1/-1}@media (max-width:900px){.home-band-grid{grid-template-columns:1fr}}.home-band-card{border:1px solid var(--border2);background:linear-gradient(150deg, var(--white-a03), rgba(var(--white-rgb), .01));box-shadow:0 4px 24px rgba(var(--black-rgb), .32), inset 0 1px 0 rgba(var(--white-rgb), .04);border-radius:14px;gap:10px;padding:20px;display:grid}.home-teacher-card{border:1px solid rgba(var(--accent-teach-rgb), .36);background:radial-gradient(ellipse at 0% 0%, rgba(var(--accent-teach-rgb), .13) 0%, transparent 55%), radial-gradient(ellipse at 100% 110%, rgba(var(--accent-teach-rgb), .07) 0%, transparent 50%), var(--bg2);box-shadow:0 14px 40px rgba(var(--black-rgb), .45), 0 2px 8px rgba(var(--black-rgb), .3), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:16px;flex-direction:column;gap:14px;padding:22px 22px 20px;transition:border-color .22s,transform .18s,box-shadow .22s;display:flex;position:relative;overflow:hidden}.home-teacher-card:before{content:"";background:linear-gradient(90deg, rgba(var(--accent-teach-rgb), .85) 0%, rgba(var(--accent-teach-rgb), .45) 60%, transparent 100%);height:2px;position:absolute;top:0;left:0;right:0}.home-teacher-card:hover{border-color:rgba(var(--accent-teach-rgb), .58);box-shadow:0 20px 52px rgba(var(--black-rgb), .5), 0 0 32px rgba(var(--accent-teach-rgb), .12), inset 0 1px 0 rgba(var(--white-rgb), .08);transform:translateY(-2px)}.home-teacher-card-top{align-items:center;gap:14px;display:flex}.home-teacher-avatar{background:rgba(var(--accent-teach-rgb), .14);border:2px solid rgba(var(--accent-teach-rgb), .48);width:50px;height:50px;box-shadow:0 0 16px rgba(var(--accent-teach-rgb), .32);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-teacher-avatar-initials{font-family:var(--font-head);letter-spacing:.04em;color:var(--accent-clapton);text-transform:uppercase;font-size:17px;font-weight:700}.home-teacher-card-meta{flex-direction:column;gap:2px;display:flex}.home-teacher-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 10px rgba(var(--accent-teach-rgb), .35);margin:0;font-size:10px;font-weight:700}.home-teacher-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 18px rgba(var(--accent-teach-rgb), .28);margin:0;font-size:22px;font-weight:700;line-height:1.1}.home-teacher-desc{font-family:var(--font-body);color:var(--muted);margin:0;font-size:13px;line-height:1.5}.home-teacher-byline{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:2px 0 0;font-size:10px}.home-teacher-stats{flex-wrap:wrap;gap:7px;display:flex}.home-teacher-stat-pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(var(--accent-teach-rgb), .3);background:rgba(var(--accent-teach-rgb), .08);color:var(--accent-clapton);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:10px;font-weight:700;display:inline-flex}.home-teacher-stat-pill--live{border-color:rgba(var(--color-success-rgb), .38);background:rgba(var(--color-success-rgb), .1);color:var(--on)}.home-teacher-stat-pill--gear{border-color:rgba(var(--accent-teach-rgb), .22);background:rgba(var(--accent-teach-rgb), .05);color:var(--muted);text-overflow:ellipsis;max-width:180px;overflow:hidden}.home-teacher-live-dot{background:var(--on);width:6px;height:6px;box-shadow:0 0 6px rgba(var(--color-success-rgb), .8);border-radius:50%;flex-shrink:0;animation:2s ease-in-out infinite home-teacher-live-pulse;display:inline-block}@keyframes home-teacher-live-pulse{0%,to{opacity:1;box-shadow:0 0 6px rgba(var(--color-success-rgb), .8)}50%{opacity:.65;box-shadow:0 0 14px rgba(var(--color-success-rgb), .5)}}.home-band-card-full{grid-column:1/-1}@keyframes daily-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes daily-glow{0%,to{box-shadow:0 4px 24px rgba(var(--black-rgb), .32), inset 0 1px 0 rgba(var(--white-rgb), .04), 0 0 0 1px rgba(var(--accent-practice-rgb), .18), 0 0 14px rgba(var(--accent-practice-rgb), .14)}50%{box-shadow:0 4px 24px rgba(var(--black-rgb), .32), inset 0 1px 0 rgba(var(--white-rgb), .04), 0 0 0 1px rgba(var(--accent-practice-rgb), .42), 0 0 28px rgba(var(--accent-practice-rgb), .28)}}.daily-exercise-card{animation:.45s ease-out both daily-fade-up}.daily-exercise-card:not(.daily-exercise-card--done){border-color:rgba(var(--accent-practice-rgb), .35);animation:.45s ease-out both daily-fade-up,4s ease-in-out infinite daily-glow}@keyframes pg-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pg-dashboard{width:100%;max-width:var(--page-w-app);flex-direction:column;gap:14px;margin:0 auto;padding:4px 0 60px;animation:.4s ease-out both pg-fade-up;display:flex;overflow-x:hidden}.pg-section-divider{align-items:center;gap:10px;margin:6px 0 0;display:flex}.pg-section-divider:before,.pg-section-divider:after{content:"";background:var(--border);flex:1;height:1px}.pg-section-divider-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-weight:700}.pg-week-card{background:radial-gradient(ellipse 500px 200px at 100% 0%, rgba(var(--page-accent-rgb), .1), transparent 55%), var(--bg2);border:1px solid var(--border2);min-height:100px;box-shadow:0 8px 28px rgba(var(--black-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .04);border-radius:18px;flex-direction:column;gap:14px;padding:20px 22px 18px;display:flex;position:relative;overflow:hidden}.pg-week-card:before{content:"";background:linear-gradient(135deg, var(--page-accent) 0%, rgba(var(--page-accent-rgb), .25) 100%);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.pg-week-card--blue{background:radial-gradient(ellipse 500px 200px at 100% 0%, rgba(var(--accent-practice-rgb), .1), transparent 55%), var(--bg2)}.pg-week-card--blue:before{background:linear-gradient(135deg, var(--accent-oasis) 0%, rgba(var(--accent-practice-rgb), .25) 100%)}.pg-week-card--blue .pg-routine-bar-count{color:var(--accent-oasis)}.pg-week-card--blue .pg-routine-bar-fill{background:linear-gradient(90deg, var(--accent-oasis) 0%, rgba(var(--accent-practice-rgb), .55) 100%);box-shadow:0 0 8px rgba(var(--accent-practice-rgb), .3)}.pg-week-card-inline{border-top:1px solid var(--border);min-height:80px;margin-top:4px;padding-top:20px}.pg-week-card-inline .pg-routine-bar-count{color:var(--accent-oasis)}.pg-week-card-inline .pg-routine-bar-fill{background:linear-gradient(90deg, var(--accent-oasis) 0%, #2d7dd2 100%);box-shadow:0 0 8px rgba(var(--accent-practice-rgb), .4)}.pg-week-card-cols{grid-template-columns:1fr auto;align-items:center;gap:20px;display:grid}.pg-week-card-col-main{flex-direction:column;gap:14px;min-width:0;display:flex}.pg-week-card-col-stats{border-left:1px solid var(--border);align-items:center;padding-left:20px;display:flex}@media (max-width:560px){.pg-week-card-cols{grid-template-columns:1fr}.pg-week-card-col-stats{border-left:none;border-top:1px solid var(--border);padding-top:12px;padding-left:0}}.pg-routine-bar-wrap{flex-direction:column;gap:6px;display:flex}.pg-routine-bar-labels{justify-content:space-between;align-items:baseline;display:flex}.pg-routine-bar-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.pg-routine-bar-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--on);letter-spacing:.05em;font-weight:700}.pg-routine-bar-track{background:rgba(var(--white-rgb), .07);border-radius:var(--br-pill);height:6px;overflow:hidden}.pg-routine-bar-fill{border-radius:var(--br-pill);background:linear-gradient(90deg, var(--on) 0%, rgba(var(--color-success-rgb), .6) 100%);height:100%;box-shadow:0 0 8px rgba(var(--color-success-rgb), .35);transition:width .5s ease-out}.pg-week-mini-stats{flex-wrap:wrap;gap:20px;display:flex}.pg-week-mini-stat{flex-direction:column;gap:2px;display:flex}.pg-week-mini-value{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--accent-oasis);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.pg-week-mini-value--bpm{color:var(--on)}.pg-week-mini-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.pg-stats-row{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (max-width:760px){.pg-stats-row{grid-template-columns:repeat(2,1fr)}}.pg-hero{flex-direction:column;gap:12px;display:flex}.pg-hero-identity{align-items:center;gap:1rem;display:flex}.pg-hero-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pg-avatar--initials{background:rgba(var(--accent-you-rgb), .08)!important;border-color:rgba(var(--accent-you-rgb), .3)!important;color:var(--accent-you)!important;box-shadow:none!important}.pg-hero-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pg-hero-heading{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-you);flex:1;margin:0;font-weight:700;line-height:1.1}.pg-playing-for{font-size:var(--fs-base);color:var(--muted);margin:0;line-height:1.4}.pg-playing-for strong{color:var(--text);font-weight:600}.pg-habit-chain{align-items:flex-end;gap:8px;display:flex}.pg-habit-day{flex-direction:column;align-items:center;gap:5px;display:flex}.pg-habit-dot{border:1.5px solid var(--white-a12);background:var(--bg3);border-radius:50%;width:14px;height:14px;transition:background .2s,border-color .2s}.pg-habit-dot--done{background:var(--on);border-color:rgba(var(--color-success-rgb), .5);box-shadow:0 0 6px rgba(var(--color-success-rgb), .45)}.pg-habit-dot--today:not(.pg-habit-dot--done){border-color:rgba(var(--white-rgb), .4);background:var(--white-a07)}.pg-habit-dot--future{opacity:.3}.pg-habit-dow{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600}.pg-streak-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pg-streak-badge{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;background:linear-gradient(135deg, rgba(var(--color-warning-rgb), .22), #ff8c001c);border:1px solid rgba(var(--color-warning-rgb), .42);border-radius:var(--br-sm);color:var(--streak);white-space:nowrap;box-shadow:0 0 12px rgba(var(--color-warning-rgb), .15);padding:4px 10px;font-weight:700}.pg-compound-msg{font-size:var(--fs-sm);color:var(--muted);margin:0;font-style:italic}.pg-goal-line{font-size:var(--fs-base);color:var(--muted);border-top:1px solid var(--border);margin:0;padding-top:8px;line-height:1.5}.pg-goal-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);margin-right:4px;font-weight:700}.pg-goal-remaining{color:var(--text);font-style:normal}.pg-stat-card{background:var(--bg2);border:1px solid var(--border2);box-shadow:0 4px 16px rgba(var(--black-rgb), .25);border-radius:14px;flex-direction:column;gap:2px;min-width:0;padding:16px 14px 14px;transition:transform .16s,box-shadow .16s;display:flex}.pg-stat-card:hover{box-shadow:0 8px 24px var(--black-a35);transform:translateY(-2px)}.pg-stat-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.pg-stat-value{font-family:var(--font-mono);font-size:var(--fs-hero);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.pg-stat-unit{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;color:var(--muted)}.pg-stat-card--streak .pg-stat-value{color:var(--streak)}.pg-stat-card--sessions .pg-stat-value{color:var(--text)}.pg-stat-card--bpm .pg-stat-value{color:var(--on)}.pg-card{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--br-lg);box-shadow:0 8px 28px rgba(var(--black-rgb), .28), inset 0 1px 0 var(--white-a04);flex-direction:column;gap:12px;padding:20px 20px 18px;display:flex}.pg-section-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:700}.pg-card-title{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700;line-height:1.2}.pg-trend-chart-wrap{flex-direction:column;gap:6px;min-width:0;display:flex;overflow:hidden}.pg-trend-legend{justify-content:flex-end;gap:16px;display:flex}.pg-trend-legend-sessions,.pg-trend-legend-bpm{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:center;gap:5px;display:inline-flex}.pg-trend-legend-sessions:before{content:"";background:rgba(var(--accent-practice-rgb), .5);border-radius:2px;width:10px;height:10px;display:inline-block}.pg-trend-legend-bpm:before{content:"";border-radius:var(--br-pill);background:var(--on);width:10px;height:3px;display:inline-block}.pg-chart-tip{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-xs);box-shadow:0 4px 16px rgba(var(--black-rgb), .45);flex-direction:column;gap:4px;padding:8px 12px;display:flex}.pg-chart-tip-week{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.pg-chart-tip-row{color:var(--text);justify-content:space-between;gap:16px;display:flex}.pg-chart-tip-row strong{color:var(--on)}.pg-recommend-card{background:radial-gradient(ellipse 400px 180px at 0% 0%, rgba(var(--accent-practice-rgb), .14), transparent 55%), var(--bg2);border:1px solid var(--border2);border-radius:var(--br-lg);box-shadow:0 8px 28px rgba(var(--black-rgb), .28), inset 0 1px 0 var(--white-a04);flex-direction:column;gap:12px;padding:20px 20px 18px;display:flex;position:relative;overflow:hidden}.pg-recommend-card:before{content:"";background:var(--practice-grad);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.pg-recommend-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pg-recommend-body{flex:1;min-width:0}.pg-recommend-exercise{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:4px 0 0;font-size:22px;font-weight:700;line-height:1.2}.pg-recommend-reason{font-size:var(--fs-base);color:var(--muted);margin:6px 0 0;line-height:1.5}.pg-severity-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:5px;flex-shrink:0;margin-top:4px;padding:3px 8px;font-weight:700}.pg-severity-badge--high{color:var(--journey-overdue);border-color:rgba(var(--color-danger-rgb), .45);background:rgba(var(--color-danger-rgb), .1)}.pg-severity-badge--medium{color:var(--streak);border-color:rgba(var(--color-warning-rgb), .38);background:rgba(var(--color-warning-rgb), .09)}.pg-severity-badge--low{color:var(--on);border-color:rgba(var(--color-success-rgb), .35);background:rgba(var(--color-success-rgb), .08)}.pg-recommend-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pg-recommend-meta>span{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted)}.pg-focus-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border2);background:var(--white-a03);border-radius:4px;padding:2px 7px}.pg-play-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(var(--accent-practice-rgb), .5);background:linear-gradient(135deg, var(--accent-oasis) 0%, rgba(var(--accent-practice-rgb), .7) 100%);color:var(--white);cursor:pointer;box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), 0 4px 14px var(--oasis-a35);border-radius:10px;align-self:flex-start;padding:10px 20px;font-weight:700;transition:transform .14s,box-shadow .18s}.pg-play-btn:hover{box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .28), 0 8px 22px rgba(var(--accent-practice-rgb), .5);transform:translateY(-1px)}.pg-play-btn:active{transform:scale(.97)}.pg-bests-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.pg-best-row{grid-template-columns:26px 1fr 100px 50px;align-items:center;gap:10px;display:grid}@media (max-width:480px){.pg-best-row{grid-template-columns:22px 1fr 56px 42px}}.pg-best-rank{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted);font-weight:700}.pg-best-row--gold .pg-best-rank{color:var(--streak)}.pg-best-name{font-size:var(--fs-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pg-best-bar-track{border-radius:var(--br-pill);background:var(--white-a07);height:6px;overflow:hidden}.pg-best-bar-fill{border-radius:var(--br-pill);background:linear-gradient(90deg, rgba(var(--color-success-rgb), .55), var(--on));height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.pg-best-row--gold .pg-best-bar-fill{background:linear-gradient(90deg, rgba(var(--color-warning-rgb), .55), var(--streak))}.pg-best-bpm{font-family:var(--font-mono);font-size:var(--fs-base);color:var(--on);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.pg-best-row--gold .pg-best-bpm{color:var(--streak)}.pg-charts-section{gap:18px}.pg-empty{background:var(--bg2);border:1px dashed var(--white-a10);border-radius:var(--br-lg);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:52px 24px;display:flex}.pg-empty-icon{color:var(--muted);opacity:.45}.pg-empty-title{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.pg-empty-hint{font-size:var(--fs-base);color:var(--muted);opacity:.75;max-width:400px;margin:0;line-height:1.5}@keyframes psc-fade-up{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.psc-overlay{z-index:200;background:rgba(var(--black-rgb), .6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.psc-card{background:radial-gradient(circle at 10% 10%, var(--oasis-a10), transparent 45%), radial-gradient(circle at 90% 90%, rgba(var(--color-success-rgb), .06), transparent 45%), var(--bg2);border:1px solid var(--oasis-a22);width:100%;max-width:440px;box-shadow:0 24px 60px rgba(var(--black-rgb), .55), 0 2px 8px rgba(var(--black-rgb), .3), inset 0 1px 0 var(--white-a06);animation:psc-fade-up var(--dur-slow) var(--ease-out) both;border-radius:18px;flex-direction:column;gap:16px;padding:22px 22px 20px;display:flex;position:relative}.psc-card:before{content:"";background:linear-gradient(90deg, var(--accent-oasis), var(--on));border-radius:18px 18px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.psc-close{border:1px solid var(--border2);background:var(--white-a04);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .14s,color .14s;display:flex;position:absolute;top:14px;right:14px}.psc-close:hover{background:rgba(var(--white-rgb), .09);color:var(--text)}.psc-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);text-shadow:0 0 10px var(--oasis-a35);margin:0;font-weight:700}.psc-hero-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.psc-name-col{align-items:center;gap:10px;display:flex}.psc-avatar{background:linear-gradient(135deg, var(--accent-oasis) 0%, var(--on) 100%);width:36px;height:36px;color:var(--bg);font-family:var(--font-head);font-size:var(--fs-lg);text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.psc-name{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700;line-height:1.1}.psc-playing-for{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);letter-spacing:.04em;margin:0}.psc-streak-badge{border-radius:var(--br-md);border:1px solid rgba(var(--color-warning-rgb), .4);background:linear-gradient(135deg, rgba(var(--color-warning-rgb), .14), #ff781414);box-shadow:0 0 16px rgba(var(--color-warning-rgb), .16), inset 0 1px 0 var(--white-a06);flex-direction:column;flex-shrink:0;align-items:center;padding:8px 12px;line-height:1.1;display:flex}.psc-streak-fire{font-size:var(--fs-lg);line-height:1}.psc-streak-count{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--streak);font-weight:700;line-height:1.1}.psc-streak-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:rgba(var(--color-warning-rgb), .65);font-weight:600}.psc-compound{font-size:var(--fs-sm);color:var(--muted);margin:-4px 0 0;line-height:1.45}.psc-section-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.75;margin-bottom:7px;font-weight:700;display:block}.psc-week-row{align-items:center;gap:6px;display:flex}.psc-day-col{flex-direction:column;align-items:center;gap:3px;display:flex}.psc-dot{border:1.5px solid rgba(var(--white-rgb), .18);width:11px;height:11px;transition:background var(--dur-fast);background:0 0;border-radius:50%;display:block}.psc-dot--done{background:var(--on);border-color:rgba(var(--color-success-rgb), .55);box-shadow:0 0 6px rgba(var(--color-success-rgb), .5)}.psc-dot--today{border-color:var(--accent-oasis)}.psc-dot--today.psc-dot--done{border-color:var(--on)}.psc-dot--future{opacity:.25}.psc-dow{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:600}.psc-week-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--on);letter-spacing:.04em;background:rgba(var(--color-success-rgb), .1);border:1px solid rgba(var(--color-success-rgb), .28);border-radius:5px;margin-left:auto;padding:2px 8px;font-weight:700}.psc-stats-grid{flex-wrap:wrap;gap:8px;display:flex}.psc-stat{background:var(--white-a03);border:1px solid var(--border2);border-radius:10px;flex-direction:column;flex:1;align-items:center;min-width:52px;padding:8px 6px;display:flex}.psc-stat strong{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--text);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.psc-stat span{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px;font-weight:600}.psc-bests-list{flex-direction:column;gap:7px;display:flex}.psc-best-row{align-items:center;gap:8px;display:flex}.psc-best-name{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:120px;max-width:140px;overflow:hidden}.psc-best-bar-wrap{background:var(--white-a07);border-radius:var(--br-pill);flex:1;height:4px;overflow:hidden}.psc-best-bar{border-radius:var(--br-pill);background:linear-gradient(90deg, var(--accent-oasis), var(--on));min-width:6px;height:100%;transition:width .5s}.psc-best-bpm{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on);text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-weight:700}.psc-best-bpm:after{content:" BPM";font-size:var(--fs-2xs);color:var(--muted);font-weight:500}.psc-goal-text{font-size:var(--fs-base);color:var(--text);margin:0;line-height:1.4}.psc-goal-remaining{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.psc-actions{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:4px;display:flex}.psc-actions-row{flex-wrap:wrap;gap:8px;display:flex}.psc-copy-btn{border:1px solid var(--oasis-a35);background:linear-gradient(135deg, var(--oasis-a12), rgba(var(--practice-deep-rgb), .07));color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;box-shadow:0 2px 10px rgba(var(--accent-practice-rgb), .14), inset 0 1px 0 var(--white-a06);border-radius:9px;align-self:flex-start;align-items:center;gap:6px;padding:9px 16px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s;display:inline-flex}.psc-copy-btn:hover{background:linear-gradient(135deg, var(--oasis-a22), rgba(var(--practice-deep-rgb), .14));border-color:rgba(var(--accent-practice-rgb), .6);box-shadow:0 6px 18px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 var(--white-a10);transform:translateY(-1px)}.psc-copy-btn:active{transform:scale(.97)}.psc-copy-btn--copied{border-color:rgba(var(--color-success-rgb), .45);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .09));color:var(--on);box-shadow:0 2px 12px rgba(var(--color-success-rgb), .22), inset 0 1px 0 var(--white-a08)}.psc-img-btn{border:1px solid rgba(var(--color-success-rgb), .35);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .1), rgba(var(--success-deep-rgb), .06));color:var(--on);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;box-shadow:0 2px 10px rgba(var(--color-success-rgb), .12), inset 0 1px 0 var(--white-a06);border-radius:9px;align-self:flex-start;align-items:center;gap:6px;padding:9px 16px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s,opacity .18s;display:inline-flex}.psc-img-btn:hover:not(:disabled){background:linear-gradient(135deg, rgba(var(--color-success-rgb), .2), rgba(var(--success-deep-rgb), .12));border-color:rgba(var(--color-success-rgb), .6);box-shadow:0 6px 18px rgba(var(--color-success-rgb), .24), inset 0 1px 0 var(--white-a10);transform:translateY(-1px)}.psc-img-btn:active:not(:disabled){transform:scale(.97)}.psc-img-btn:disabled{opacity:.55;cursor:default}.psc-img-btn--copied{border-color:rgba(var(--color-success-rgb), .55);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .2), rgba(var(--success-deep-rgb), .12));box-shadow:0 2px 14px rgba(var(--color-success-rgb), .28), inset 0 1px 0 var(--white-a08)}.psc-hint{font-size:var(--fs-xs);color:var(--muted);opacity:.7;margin:0}@media (max-width:480px){.psc-card{gap:14px;padding:18px 16px 16px}.psc-stats-grid{gap:6px}.psc-stat strong{font-size:var(--fs-md)}.psc-best-name{min-width:90px;max-width:100px}}.practice-home-card{background:radial-gradient(circle at top right, rgba(var(--yt-rgb), .16), transparent 42%), radial-gradient(circle at bottom left, var(--oasis-a12), transparent 38%), linear-gradient(150deg, var(--white-a03), rgba(var(--white-rgb), .01))}.learning-home-card{background:linear-gradient(150deg, var(--white-a03), rgba(var(--white-rgb), .01))}.looper-home-card{background:radial-gradient(circle at 0% 0%, rgba(var(--yt-rgb), .12), transparent 45%), radial-gradient(circle at 100% 100%, #c8000014, transparent 45%), var(--bg2);border-color:rgba(var(--yt-rgb), .22);position:relative;overflow:hidden}.looper-home-card:before{content:"";background:var(--yt-grad);border-radius:12px 12px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.looper-home-kicker{text-shadow:0 0 10px rgba(var(--yt-rgb), .35);color:var(--yt-red-bright)!important}.looper-home-features,.fretboard-home-features{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.looper-home-feature,.fretboard-home-feature{border-radius:10px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.looper-home-feature{background:rgba(var(--yt-rgb), .06);border:1px solid rgba(var(--yt-rgb), .16)}.looper-home-feature-label,.fretboard-home-feature-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.looper-home-feature-label{color:var(--yt-red-bright)}.looper-home-feature-desc,.fretboard-home-feature-desc{font-size:var(--fs-sm);color:var(--muted);line-height:1.4}.fretboard-home-card{background:radial-gradient(circle at 0% 0%, var(--oasis-a12), transparent 45%), radial-gradient(circle at 100% 100%, var(--oasis-a06), transparent 45%), var(--bg2);border-color:var(--oasis-a22);position:relative;overflow:hidden}.fretboard-home-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-oasis), transparent);border-radius:12px 12px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.fretboard-home-kicker{text-shadow:0 0 10px var(--oasis-a35)}.home-band-card p.home-band-kicker.fretboard-home-kicker{color:var(--accent-oasis)}.fretboard-home-feature{background:var(--oasis-a06);border:1px solid var(--oasis-a18)}.fretboard-home-feature-label{color:var(--accent-oasis)}.home-band-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:700}.home-band-card h3{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:24px;line-height:1.1}.home-band-card p{color:var(--muted);margin:0}.home-band-card p.home-band-kicker{color:var(--accent-oasis)}.home-band-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.landing-journey .landing-guide-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.09em;text-transform:uppercase;border:1px solid rgba(var(--accent-practice-rgb), .7);background:linear-gradient(135deg, var(--accent-practice) 0%, #b89040 50%, #d4a830 100%);color:#1a1000;cursor:pointer;box-shadow:0 4px 14px rgba(var(--accent-practice-rgb), .38), inset 0 1px 0 #ffe6784d;border-radius:9px;padding:9px 16px;font-weight:700;transition:background .18s,border-color .18s,transform .14s,box-shadow .18s}.landing-journey .landing-guide-btn:hover{border-color:rgba(var(--accent-practice-rgb), .9);color:#1a1000;box-shadow:0 8px 22px rgba(var(--accent-practice-rgb), .55), inset 0 1px 0 #ffe6784d;background:linear-gradient(135deg,#d4b050 0%,#c8a030 50%,#e0b840 100%);transform:translateY(-1px)}.learning-path-strip{gap:6px;display:grid}.learning-path-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.learning-path-pills{flex-wrap:wrap;gap:8px;display:flex}.learning-pill,.learning-pill-btn{border:1px solid var(--oasis-a35);background:var(--oasis-a12);color:var(--accent-oasis);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;padding:3px 9px}a.learning-pill{text-transform:none;text-decoration:none}.learning-pill.muted{color:var(--muted);border-color:var(--border2);background:var(--white-a03)}.learning-pill-btn{cursor:pointer;transition:all var(--dur-fast) ease-out}.learning-pill-btn:hover{border-color:var(--accent-oasis);transform:translateY(-1px)}.practice-home-pill{border-color:rgba(var(--yt-bright-rgb), .35);background:rgba(var(--yt-bright-rgb), .12);color:var(--yt-red-bright)}.practice-home-pill:hover{border-color:var(--yt-red-bright)}@media (max-width:768px){.landing-intro{margin-top:4px;padding:16px}.home-band-grid{grid-template-columns:1fr;gap:12px}.home-band-card{padding:14px 12px}.home-band-card h3{font-size:var(--fs-xl)}.practice-hero{flex-direction:column}.practice-layout,.practice-chord-stage,.practice-section-meta{grid-template-columns:1fr}}.pg-milestones-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.pg-milestone{border-radius:var(--br-md);background:var(--bg3);border:1px solid var(--border);opacity:.45;text-align:center;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;transition:opacity .2s,border-color .2s;display:flex}.pg-milestone--unlocked{opacity:1;border-color:rgba(var(--color-success-rgb), .35);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .1), rgba(var(--success-deep-rgb), .05))}.pg-milestone-icon{font-size:26px;line-height:1}.pg-milestone-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-weight:700}.pg-milestone--unlocked .pg-milestone-label{color:var(--on)}.pg-milestone-date{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;color:rgba(var(--color-success-rgb), .65)}.pg-milestone-progress{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}@media (max-width:520px){.pg-hero{gap:8px}.pg-hero-title-row{flex-wrap:wrap;gap:8px}.pg-stats-row{gap:8px}.pg-stat-card{padding:14px 12px}.pg-stat-value{font-size:22px}.pg-recommend-top{flex-direction:column;gap:10px}.pg-severity-badge{align-self:flex-start}.pg-milestones-grid{grid-template-columns:repeat(2,1fr)}.pg-card{padding:16px 14px 14px}}@media (max-width:380px){.pg-stat-value{font-size:var(--fs-lg)}.pg-milestones-grid{grid-template-columns:1fr}}@media (max-width:520px){.home-band-card{gap:8px;padding:12px 10px}.home-band-grid{gap:10px}.home-band-card>p:not(.home-band-kicker){-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.looper-home-features,.fretboard-home-features,.practice-home-card .learning-path-strip:last-of-type{display:none}}.home-greeting-card{flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:0;display:flex}.home-greeting-headline{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700;line-height:1.2}.home-greeting-today{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.75;margin:0;font-weight:600}.home-academy-section{background:radial-gradient(ellipse at 0% 0%, rgba(var(--accent-teach-rgb), .08) 0%, transparent 55%), radial-gradient(ellipse at 100% 100%, rgba(var(--accent-teach-rgb), .05) 0%, transparent 50%), var(--bg2);border-color:rgba(var(--accent-teach-rgb), .22);position:relative;overflow:hidden}.home-academy-section:before{content:"";background:linear-gradient(90deg, var(--accent-clapton) 0%, rgba(var(--accent-teach-rgb), .25) 100%);height:2px;position:absolute;top:0;left:0;right:0}.home-academy-kicker{color:var(--accent-clapton);text-shadow:0 0 10px rgba(var(--accent-teach-rgb), .4)}.home-academy-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 18px rgba(var(--accent-teach-rgb), .35);margin:0 0 10px;font-size:24px;font-weight:700;line-height:1.15}.home-academy-sub{font-size:var(--fs-base);color:var(--muted);margin:0 0 22px;line-height:1.55}.home-b2b-bullets{flex-direction:column;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.home-b2b-bullets li{font-size:var(--fs-sm);color:var(--muted);padding-left:18px;line-height:1.45;position:relative}.home-b2b-bullets li:before{content:"";background:var(--accent-clapton);opacity:.7;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:0}.home-teacher-cta svg{width:14px;height:14px}.home-academy-cta-wrap{align-items:center;gap:14px;display:flex}.home-academy-cta-sub{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);opacity:.65;font-size:10px;font-weight:600}.home-academy-learner-note{font-family:var(--font-mono);letter-spacing:.05em;color:var(--on);opacity:.8;margin:0 0 16px;font-size:11px;font-weight:600}@media (max-width:640px){.home-academy-heading{font-size:20px}.home-academy-cta-wrap{flex-direction:column;align-items:flex-start;gap:6px}}.home-greeting-card{min-height:0}.assigned-card-section{min-height:80px}.home-greeting-card--today{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:nowrap}.home-greeting-titles{flex-direction:column;gap:2px;min-width:0;display:flex}.home-greeting-card--today .home-greeting-headline{font-size:var(--fs-hero);line-height:var(--lh-tight)}.home-greeting-card--today .home-greeting-today{opacity:1;letter-spacing:.14em}.home-continue{flex-direction:column;gap:10px;display:flex}.home-continue-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.home-continue-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.home-continue-card{gap:var(--sp-2);border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);min-width:0;min-height:112px;box-shadow:var(--shadow-inset);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--dur-fast), transform var(--dur-fast);flex-direction:column;padding:14px;display:flex}.home-continue-card:hover{border-color:rgba(var(--yt-rgb), .28);transform:translateY(-2px)}.home-continue-card:focus-visible{outline:2px solid var(--text);outline-offset:2px}.home-continue-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase}.home-continue-card--exercise .home-continue-kicker{color:var(--accent-oasis)}.home-continue-card--song .home-continue-kicker{color:var(--yt-red-bright)}.home-continue-name{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;-webkit-line-clamp:2;overflow-wrap:break-word;-webkit-box-orient:vertical;font-weight:700;line-height:1.1;display:-webkit-box;overflow:hidden}.home-continue-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);margin-top:auto}.home-continue-meta strong{color:var(--on);font-weight:500}.pg-dashboard--v2{gap:var(--sp-4)}.pg-dashboard--v2 .pg-hero-heading{font-family:var(--font-head);font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:.04em;text-transform:uppercase}.pg-dashboard--v2 .pg-goal-line{padding:var(--sp-2) var(--sp-3);border-radius:var(--br-md);border:1px solid var(--border);background:var(--white-a03);font-size:var(--fs-sm);color:var(--muted);margin:0}.pg-dashboard--v2 .pg-goal-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-you)}.pg-dashboard--v2 .pg-card .pg-section-kicker{color:var(--muted)}.pg-stats-row.pg-stats-row--3{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr))}.pg-dashboard--v2 .pg-stat-card{border-radius:var(--br-lg);padding:14px 12px 12px}.pg-dashboard--v2 .pg-stat-value{font-family:var(--font-head);letter-spacing:0;font-size:34px;line-height:1.05}.pg-dashboard--v2 .pg-stat-card--streak{border-color:rgba(var(--color-warning-rgb), .35)}.pg-dashboard--v2 .pg-stat-card--bpm{border-color:rgba(var(--color-success-rgb), .38)}.pg-dashboard--v2 .pg-play-btn{min-height:52px;font-size:var(--fs-base);border-color:var(--oasis-a45);background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);box-shadow:0 4px 16px rgba(var(--practice-strong-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .18);align-self:stretch}.pg-dashboard--v2 .pg-play-btn:focus-visible{outline:2px solid var(--text);outline-offset:3px}.pg-dashboard--v2 .pg-calendar-card .tracker-calendar-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase}.pg-dashboard--v2 .pg-calendar-card .home-band-kicker{color:var(--muted)}.pg-charts-toggle{justify-content:center;align-items:center;gap:var(--sp-2);width:100%;min-height:48px;margin-top:var(--sp-2);border-radius:var(--br-md);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast);display:flex}.pg-charts-toggle:hover{color:var(--text);border-color:rgba(var(--page-accent-rgb), .4)}.pg-charts-toggle:focus-visible{outline:2px solid var(--on);outline-offset:2px}.pg-charts-toggle svg{transition:transform var(--dur-normal) var(--ease-out)}.pg-charts-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.ex-catalog-empty{text-align:center;border:1px dashed var(--border2);border-radius:14px;margin:8px 0;padding:32px 20px}.ex-catalog-empty-title{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0 0 6px;font-weight:700}.ex-catalog-empty-hint{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--muted);margin:0}#daily-exercise-card{display:contents}.exercise-focus-note{border:1px solid rgba(var(--page-accent-rgb), .28);border-left:3px solid var(--page-accent);border-radius:var(--br-sm);background:linear-gradient(135deg, rgba(var(--page-accent-rgb), .1), rgba(var(--page-accent-rgb), .03));box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .04);margin:16px 0;padding:12px 14px 13px}.exercise-focus-note--compact{border-left-width:2px;align-items:baseline;gap:8px;margin:10px 0 0;padding:8px 10px;display:flex}.exercise-focus-note--compact .exercise-focus-note-mark{flex-shrink:0}.exercise-focus-note--compact .exercise-focus-note-value{font-size:var(--fs-sm)}.exercise-focus-note-header,.exercise-focus-note-actions{align-items:center;gap:8px;display:flex}.exercise-focus-note-header{justify-content:space-between;min-height:24px}.exercise-focus-note-heading{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.exercise-focus-note-mark,.exercise-focus-note-label,.exercise-focus-note-edit,.exercise-focus-note-count{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase}.exercise-focus-note-mark{color:rgba(var(--page-accent-rgb), .68);font-size:var(--fs-2xs);letter-spacing:.13em}.exercise-focus-note-label{color:var(--page-accent);font-weight:700}.exercise-focus-note-edit{white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;min-height:26px;line-height:1;display:inline-flex}.exercise-focus-note-edit,.exercise-focus-note-button{border:1px solid var(--border2);border-radius:var(--br-xs);color:var(--muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;background:0 0;padding:5px 9px}.exercise-focus-note-edit:hover,.exercise-focus-note-button:hover{border-color:var(--page-accent);color:var(--text)}.exercise-focus-note-edit span{color:var(--page-accent);font-family:var(--font-body);font-size:15px;line-height:.8}.exercise-focus-note-content{border-top:1px solid rgba(var(--page-accent-rgb), .16);margin-top:9px;padding-top:8px}.exercise-focus-note-content--empty{border-top-style:dashed}.exercise-focus-note-value{color:var(--text);font-size:var(--fs-base);white-space:pre-wrap;margin:0;line-height:1.45}.exercise-focus-note-empty{color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-base);margin:0}.exercise-focus-note-editor{margin-top:9px}.exercise-focus-note-input{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--br-xs);box-sizing:border-box;color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);resize:vertical;width:100%;padding:8px 10px;line-height:1.45;display:block}.exercise-focus-note-input:focus{border-color:var(--page-accent);box-shadow:0 0 0 3px rgba(var(--page-accent-rgb), .1);outline:none}.exercise-focus-note-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;column-gap:8px;margin-top:7px}.exercise-focus-note-count{color:var(--muted);white-space:nowrap;margin-right:auto;display:inline-block}.exercise-focus-note-button{background:var(--page-accent);border-color:var(--page-accent);color:var(--bg);white-space:nowrap;justify-content:center;min-width:68px;display:inline-flex}.exercise-focus-note-button--ghost{border-color:var(--border2);color:var(--muted);background:0 0}@media (max-width:420px){.exercise-focus-note{padding:11px 12px 12px}.exercise-focus-note-header{align-items:flex-start;gap:8px}.exercise-focus-note-actions{justify-content:flex-start}.exercise-focus-note-count{flex-basis:100%}.exercise-focus-note-heading{gap:5px}.exercise-focus-note-label{font-size:var(--fs-2xs)}}.daily-exercise-card{border-color:rgba(var(--accent-practice-rgb), .45);min-height:280px;box-shadow:inset 0 0 24px rgba(var(--accent-practice-rgb), .1), 0 0 0 1px rgba(var(--accent-practice-rgb), .14), 0 10px 26px rgba(var(--black-rgb), .4);background:radial-gradient(circle at 14% 12%, rgba(var(--accent-practice-rgb), .28), transparent 42%), radial-gradient(circle at 88% 88%, rgba(var(--accent-practice-rgb), .2), transparent 48%), linear-gradient(132deg, #08142ce0, #061e1adb 55%, #081228eb);grid-column:1/-1;position:relative;overflow:hidden}.daily-exercise-card:before{content:"";background:repeating-linear-gradient(0deg, rgba(var(--white-rgb), 0) 0, rgba(var(--white-rgb), 0) 3px, rgba(var(--accent-practice-rgb), .06) 3px, rgba(var(--accent-practice-rgb), .06) 4px);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.daily-exercise-card>*{z-index:1;position:relative}.daily-exercise-card .home-band-kicker{color:var(--accent-oasis);text-shadow:0 0 10px rgba(var(--accent-practice-rgb), .55)}.daily-exercise-card h3{font-size:var(--fs-xl);color:var(--white);text-shadow:0 0 18px var(--oasis-a35), 0 0 8px rgba(var(--accent-practice-rgb), .22)}.daily-ex-panel-title{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0}.daily-ex-subtitle{font-size:var(--fs-base);color:var(--muted);margin:0}.daily-ex-tip{border-left:2px solid var(--accent-oasis);gap:3px;padding-left:10px;display:grid}.daily-ex-tip-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-oasis)}.daily-ex-tip-text{font-size:var(--fs-sm);color:var(--muted);margin:0;font-style:italic}.daily-ex-why{border-left:2px solid var(--page-accent);gap:3px;padding-left:10px;display:grid}.daily-ex-why-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--page-accent)}.daily-ex-why-text{font-size:var(--fs-base);color:var(--text);margin:0;line-height:1.45}.daily-ex-howto-list{gap:4px;margin:8px 0 4px;padding-left:22px;display:grid}.daily-ex-howto-list li{color:var(--text);font-size:12.5px;line-height:1.45}.daily-ex-optional-row{gap:8px;display:grid}.daily-ex-optional-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);gap:4px;display:grid}.daily-ex-input{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--br-xs);color:var(--text);transition:border-color var(--dur-fast);outline:none;padding:6px 10px}.daily-ex-input:focus{border-color:rgba(var(--accent-practice-rgb), .5);box-shadow:0 0 0 3px rgba(var(--accent-practice-rgb), .1)}.daily-ex-share-btn{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;border:1px solid rgba(var(--accent-practice-rgb), .35);background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .12), rgba(var(--practice-deep-rgb), .07));color:var(--accent-practice);cursor:pointer;box-shadow:0 2px 10px rgba(var(--accent-practice-rgb), .14), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:7px;align-items:center;gap:5px;padding:5px 10px;font-size:10px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s;display:inline-flex}.daily-ex-share-btn:hover{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .22), rgba(var(--practice-deep-rgb), .14));border-color:rgba(var(--accent-practice-rgb), .6);box-shadow:0 6px 18px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1);transform:translateY(-1px)}.daily-ex-share-btn--copied{border-color:rgba(var(--color-success-rgb), .45);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .09));color:var(--on);box-shadow:0 2px 12px rgba(var(--color-success-rgb), .22), inset 0 1px 0 rgba(var(--white-rgb), .08)}@keyframes daily-card-done-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.daily-exercise-card--done{animation:daily-card-done-in var(--dur-slow) var(--ease-out);border-left:3px solid rgba(var(--color-success-rgb), .45);background:radial-gradient(circle at top right, rgba(var(--color-success-rgb), .06), transparent 50%), radial-gradient(circle at bottom left, rgba(var(--accent-practice-rgb), .05), transparent 50%), var(--bg2)}@keyframes et-banner-in{0%{opacity:0;transform:scaleY(.45)translateY(-14px)}68%{opacity:1;transform:scaleY(1.06)translateY(3px)}to{opacity:1;transform:scaleY(1)translateY(0)}}.daily-ex-success-hero{transform-origin:top;animation:et-banner-in .52s var(--ease-spring) .12s both;align-items:center;gap:14px;display:flex}.daily-ex-success-check{background:rgba(var(--color-success-rgb), .09);border:2px solid rgba(var(--color-success-rgb), .32);width:48px;height:48px;color:rgba(var(--color-success-rgb), .9);animation:success-check-in .4s var(--ease-spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}@keyframes success-check-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.daily-ex-success-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.daily-ex-success-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--color-success-rgb), .8);margin:0;font-weight:700}.daily-ex-success-headline{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700;line-height:1.2}.daily-ex-success-exname{font-size:var(--fs-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.home-band-card p.daily-ex-success-kicker{color:rgba(var(--color-success-rgb), .8)}.home-band-card p.daily-ex-success-headline,.home-band-card p.daily-ex-success-exname{color:var(--text)}.rest-day-card{opacity:.72}.rest-day-body{align-items:center;gap:16px;padding:6px 0;display:flex}.rest-day-icon{color:var(--muted);flex-shrink:0}.rest-day-text{flex-direction:column;gap:4px;display:flex}.rest-day-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700;line-height:1.1}.rest-day-subtitle{font-family:var(--font-body);color:var(--muted);margin:0;font-size:13px;line-height:1.4}.daily-ex-done-stats{border-top:1px solid rgba(var(--color-success-rgb), .14);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0 2px;display:flex}.daily-ex-feeling-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--br-pill);border:1px solid var(--border2);color:var(--muted);padding:3px 10px}.daily-ex-feeling-easy{border-color:rgba(var(--color-success-rgb), .4);color:rgba(var(--color-success-rgb), .82)}.daily-ex-feeling-good{border-color:var(--accent-oasis);color:var(--accent-oasis)}.daily-ex-feeling-hard{border-color:var(--streak);color:var(--streak)}.daily-ex-completed-msg{font-size:var(--fs-base);color:var(--muted);margin:0}.daily-ex-done-notes{font-size:var(--fs-sm);color:var(--muted);margin:0;font-style:italic}.daily-ex-done-delta{font-family:var(--font-mono);font-size:var(--fs-base);color:var(--fg);margin:0;font-weight:600}.daily-ex-done-suggested{font-family:var(--font-mono);font-size:var(--fs-xs);color:rgba(var(--color-success-rgb), .78);margin:0}.daily-ex-yesterday{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);opacity:.65;letter-spacing:.02em;margin:0}.daily-ex-lasttime-date{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);opacity:.55}.daily-ex-lasttime-never{font-size:var(--fs-xs);color:var(--muted);font-style:italic}.daily-ex-bpm-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-shrink:0}.daily-ex-note-input{font-size:var(--fs-sm)}.tracker-header-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}.tracker-routine-title{flex:1;margin:0}@keyframes tracker-week-success-glow{0%{box-shadow:0 4px 16px rgba(var(--color-success-rgb), .22), inset 0 1px 0 var(--white-a08), inset 5px 0 12px rgba(var(--color-success-rgb), .26)}to{box-shadow:0 8px 28px rgba(var(--color-success-rgb), .42), inset 0 1px 0 var(--white-a12), inset 5px 0 18px rgba(var(--color-success-rgb), .42)}}.exercise-home-columns{grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;display:grid}.exercise-home-stacked{grid-template-columns:1fr}@media (max-width:620px){.exercise-home-columns{grid-template-columns:1fr}}.exercise-list{gap:8px;display:grid}.exercise-item{border:1px solid var(--border2);border-radius:var(--br-sm);background:var(--white-a02);min-height:44px;color:var(--text);font-size:var(--fs-base);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast);align-items:center;gap:10px;padding:8px 10px;display:flex}label.exercise-item:hover{background:rgba(var(--white-rgb), .05);border-color:rgba(var(--white-rgb), .12)}.exercise-item--auto{opacity:.95;border-style:dashed}.exercise-item--auto .exercise-auto-pill{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--white-a03);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;margin-left:auto;padding:2px 8px}.exercise-item--auto.is-done{border-left:2px solid rgba(var(--color-success-rgb), .45);background:rgba(var(--color-success-rgb), .04)}.exercise-item--auto.is-done .exercise-auto-pill{border-color:rgba(var(--color-success-rgb), .4);color:var(--accent-oasis);background:rgba(var(--color-success-rgb), .12)}.exercise-check-static{border:1px solid var(--border2);background:var(--bg3);border-radius:4px;flex:none;place-content:center;width:16px;height:16px;display:inline-grid}.exercise-check-static.checked .exercise-check-indicator{transform:scale(1)}.exercise-check-btn{border:1px solid var(--border2);background:var(--bg3);cursor:pointer;border-radius:4px;flex:none;place-content:center;width:16px;height:16px;padding:0;display:inline-grid}.exercise-check-indicator{background:var(--accent-oasis);border-radius:2px;width:8px;height:8px;transition:transform .12s ease-out;transform:scale(0)}.exercise-check-btn.checked .exercise-check-indicator{transform:scale(1)}.exercise-check-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.exercise-item span{line-height:1.35}.session-current-step-title{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700;line-height:1.15}.session-current-step-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);margin:0}.session-instructions{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--bg3);gap:8px;padding:12px;display:grid}.session-instruction-phase{border-top:1px dashed var(--border);gap:4px;padding-top:8px;display:grid}.session-instruction-phase:first-of-type{border-top:0;padding-top:0}.session-instruction-phase-title{color:var(--accent-oasis);font-weight:600;font-size:var(--fs-sm);margin:0}.session-instruction-goal{font-size:var(--fs-sm);color:#e0f2fef2;margin:0;line-height:1.45}.session-instruction-list{gap:4px;margin:0;padding-left:18px;display:grid}.session-instruction-list li{font-size:var(--fs-sm);color:#d1d5dbd1;margin:0;line-height:1.45}.landing-guide-btn{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--bg3);width:-moz-fit-content;width:fit-content;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all var(--dur-fast) ease-out;padding:8px 14px}.landing-guide-btn:hover{border-color:var(--accent-oasis);color:var(--accent-oasis)}.landing-guide-btn.is-active{border-color:rgba(var(--color-success-rgb), .8);color:#b8ffd6}.practice-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-xs);color:rgba(var(--color-warning-rgb), .82);margin:0}.practice-subtitle{color:var(--muted);margin:6px 0 0}.practice-progress-bar{border-radius:var(--br-pill);background:#1118278c;height:8px;overflow:hidden}.practice-progress-bar span{height:100%;transition:width var(--dur-slow) ease;background:linear-gradient(90deg,#facc15f2,#f97316f2);display:block}.daily-exercise-card--active{flex-direction:column;align-items:center;gap:20px;padding-block-start:28px;padding-block-end:28px;display:flex}.daily-ex-active-bpm{align-items:center;gap:10px;margin-block-start:4px;margin-block-end:4px;display:flex}.daily-ex-countdown-block{flex-direction:column;align-items:center;gap:8px;padding-block-start:8px;padding-block-end:8px;display:flex}.daily-ex-countdown-num{font-size:80px;font-weight:700;font-family:var(--font-mono);color:var(--page-accent);line-height:1;animation:1s ease-in-out infinite countdown-pulse}.daily-ex-countdown-label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}@keyframes countdown-pulse{0%{opacity:0;transform:scale(.4)rotate(-8deg)}50%{transform:scale(1.08)}to{opacity:1;transform:scale(1)rotate(0)}}.daily-ex-bpm-hero-block{flex-direction:column;align-items:center;gap:2px;min-width:90px;display:flex}.daily-ex-bpm-hero{font-size:68px;font-weight:700;font-family:var(--font-mono);color:var(--fg);line-height:1}.daily-ex-bpm-hero-label{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.daily-ex-bpm-step{border:1px solid var(--border2);width:36px;height:36px;color:var(--fg);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:background .12s,border-color .12s;display:flex}.daily-ex-bpm-step--large{width:48px;height:48px;font-size:16px}.daily-ex-bpm-step:hover{background:var(--border2);border-color:var(--border)}.daily-ex-timer{font-size:var(--fs-xl);font-family:var(--font-mono);color:var(--muted);letter-spacing:.06em;margin:0}.daily-ex-duration-indicator{gap:5px;width:min(360px,100%);display:grid}.daily-ex-duration-indicator.is-done{color:rgba(var(--color-success-rgb), .95)}.daily-ex-duration-timer{text-align:center;white-space:nowrap;max-width:100%;display:inline-block}.daily-ex-duration-track{border-radius:var(--br-pill);background:rgba(var(--white-rgb), .08);width:100%;height:4px;overflow:hidden}.daily-ex-duration-track span{border-radius:inherit;width:0;height:100%;transition:width var(--dur-slow) ease;background:linear-gradient(90deg, rgba(var(--accent-practice-rgb), .9), rgba(var(--color-success-rgb), .85));display:block}.daily-ex-end-btn{background:var(--page-accent);width:100%;color:var(--white);font-family:var(--font-mono);font-size:var(--fs-base);cursor:pointer;letter-spacing:.04em;transition:opacity var(--dur-fast);border:none;border-radius:10px;padding:12px 20px;font-weight:600}.daily-ex-end-btn:hover{opacity:.88}.daily-ex-cancel-btn{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;letter-spacing:.04em;transition:color var(--dur-fast);background:0 0;border:none;padding:0}.daily-ex-cancel-btn:hover{color:var(--fg)}.daily-ex-metro-controls-wrap{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:380px;margin:6px 0;display:flex}.daily-ex-metro-toggle{border-radius:var(--br-sm);border:1px solid var(--border2);width:100%;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);background:0 0;padding:10px 16px}.daily-ex-metro-toggle:hover{border-color:var(--border);color:var(--fg)}.daily-ex-metro-toggle--on{border-color:rgba(var(--accent-practice-rgb), .55);color:var(--accent-oasis);background:rgba(var(--accent-practice-rgb), .1);box-shadow:0 0 12px rgba(var(--accent-practice-rgb), .2), inset 0 1px 0 rgba(var(--white-rgb), .06)}.daily-ex-start-btn{background:var(--page-accent);width:100%;color:var(--white);font-family:var(--font-mono);font-size:var(--fs-base);cursor:pointer;letter-spacing:.04em;transition:opacity var(--dur-fast);border:none;border-radius:10px;padding:12px 20px;font-weight:600}.daily-ex-start-btn:hover{opacity:.88}.session-start-btn{border:1px solid rgba(var(--accent-practice-rgb), .45);background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);color:var(--white);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 16px rgba(var(--practice-strong-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .18);transition:transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;border-radius:10px;padding:14px 22px;font-size:14px;font-weight:700;position:relative}.session-start-btn:hover{box-shadow:0 8px 24px rgba(var(--practice-strong-rgb), .4), inset 0 1px 0 rgba(var(--white-rgb), .18);transform:translateY(-1px)}.session-start-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.session-start-btn:active{box-shadow:0 4px 14px rgba(var(--practice-strong-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1);transform:translateY(0)}@keyframes daily-card-feedback-in{0%{opacity:0;transform:translateY(10px)scale(.985)}60%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes daily-card-feedback-item-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.daily-exercise-card--feedback{transform-origin:top;flex-direction:column;gap:16px;animation:.38s cubic-bezier(.34,1.56,.64,1) both daily-card-feedback-in;display:flex}.daily-exercise-card--feedback>*{animation:daily-card-feedback-item-in .32s var(--ease-out) both}.daily-exercise-card--feedback>:first-child{animation-delay:50ms}.daily-exercise-card--feedback>:nth-child(2){animation-delay:.1s}.daily-exercise-card--feedback>:nth-child(3){animation-delay:.15s}.daily-exercise-card--feedback>:nth-child(4){animation-delay:.2s}.daily-exercise-card--feedback>:nth-child(5){animation-delay:.25s}.daily-exercise-card--feedback>:nth-child(6){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.daily-exercise-card--feedback,.daily-exercise-card--feedback>*{animation:none!important}}.daily-ex-feedback-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700;line-height:1.15}.daily-ex-quality-btns{flex-direction:column;gap:8px;display:flex}.daily-ex-quality-btn{border-radius:var(--br-md);border:1.5px solid var(--border2);background:rgba(var(--white-rgb), .02);width:100%;font-family:var(--font-body);color:var(--fg);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .04);flex-direction:column;align-items:flex-start;gap:3px;padding:15px 18px;font-size:14px;font-weight:500;display:flex}.daily-ex-quality-label{--feel-dot:var(--muted);align-items:center;gap:8px;display:inline-flex}.daily-ex-quality-label:before{content:"";background:var(--feel-dot);border-radius:50%;flex:none;width:9px;height:9px}.daily-ex-quality-btn--easy .daily-ex-quality-label{--feel-dot:var(--feel-easy)}.daily-ex-quality-btn--good .daily-ex-quality-label{--feel-dot:var(--feel-good)}.daily-ex-quality-btn--hard .daily-ex-quality-label{--feel-dot:var(--feel-hard)}.daily-ex-quality-btn .daily-ex-quality-detail{font-size:var(--fs-xs);color:var(--muted);font-weight:400}.daily-ex-quality-btn--easy.active,.daily-ex-quality-btn--easy:hover{border-color:var(--feel-easy);background:rgba(var(--feel-easy-rgb), .09);box-shadow:inset 0 1px 0 rgba(var(--feel-easy-rgb), .08), 0 0 0 1px rgba(var(--feel-easy-rgb), .12)}.daily-ex-quality-btn--good.active,.daily-ex-quality-btn--good:hover{border-color:var(--feel-good);background:rgba(var(--feel-good-rgb), .07);box-shadow:inset 0 1px 0 rgba(var(--feel-good-rgb), .06), 0 0 0 1px rgba(var(--feel-good-rgb), .1)}.daily-ex-quality-btn--hard.active,.daily-ex-quality-btn--hard:hover{border-color:var(--feel-hard);background:rgba(var(--feel-hard-rgb), .09);box-shadow:inset 0 1px 0 rgba(var(--feel-hard-rgb), .08), 0 0 0 1px rgba(var(--feel-hard-rgb), .12)}.daily-ex-feedback-bpm-row{border-top:1px solid var(--border2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:14px 0 4px;display:flex}.daily-ex-feedback-bpm-row .daily-ex-bpm-label{align-self:center}.daily-ex-bpm-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.daily-ex-bpm-stepper{justify-content:center;align-items:center;gap:18px;display:flex}.daily-ex-feedback-done-btn{background:linear-gradient(135deg, var(--on) 0%, #1a9955 100%);width:100%;color:var(--white);font-family:var(--font-mono);font-size:var(--fs-md);cursor:pointer;letter-spacing:.05em;box-shadow:0 4px 16px rgba(var(--color-success-rgb), .35), 0 0 0 1px rgba(var(--color-success-rgb), .5);transition:transform .12s, box-shadow .12s, opacity var(--dur-fast);border:none;border-radius:10px;padding:16px 20px;font-weight:700}.daily-ex-feedback-done-btn:disabled{opacity:.35;cursor:default;background:var(--border2);box-shadow:none}.daily-ex-feedback-done-btn:not(:disabled):hover{box-shadow:0 6px 20px rgba(var(--color-success-rgb), .45), 0 0 0 1px rgba(var(--color-success-rgb), .6);transform:translateY(-1px)}.daily-ex-feedback-done-btn:not(:disabled):active{transform:translateY(0)}@keyframes reward-pop{0%{opacity:0;transform:scale(.88)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.session-beat-indicator{justify-content:center;gap:10px;margin:2px 0 4px;display:flex}.session-beat-dot{background:var(--border2);border-radius:50%;width:10px;height:10px;transition:background 80ms,transform 80ms}.session-beat-dot.active{background:rgba(var(--color-success-rgb), .45);transform:scale(1.35)}.session-beat-dot.active.accent{background:rgba(var(--color-success-rgb), .85);transform:scale(1.5)}.session-sub-dots{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.session-sub-dot{background:rgba(var(--white-rgb), .1);border-radius:50%;width:6px;height:6px;transition:background 80ms,transform 80ms}.session-sub-dot--main{background:rgba(var(--white-rgb), .18);width:7px;height:7px}.session-sub-dot--active{background:rgba(var(--color-success-rgb), .55);transform:scale(1.3)}.session-sub-dot--main.session-sub-dot--active{background:rgba(var(--color-success-rgb), .75);transform:scale(1.4)}.session-sub-toggle{border:1px solid var(--border2);border-radius:8px;justify-content:center;align-self:center;gap:0;margin-top:6px;display:flex;overflow:hidden}.session-sub-btn{font-family:var(--font-mono);color:var(--muted);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:36px;padding:6px 14px;font-size:13px;transition:background .15s,color .15s}.session-sub-btn:not(:last-child){border-right:1px solid var(--border2)}.session-sub-btn:hover{color:var(--text)}.session-sub-btn--active{background:rgba(var(--page-accent-rgb), .12);color:var(--page-accent)}.exercise-progress-chart{border-top:1px solid var(--border);margin-top:12px;padding:12px 0 4px}.exercise-progress-chart--empty{flex-direction:column;align-items:center;gap:6px;padding:20px 0;display:flex}.chart-empty-msg{color:var(--muted);font-size:var(--fs-base);text-align:center;margin:0}.chart-exercise-title{font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:600}.chart-period-selector{gap:6px;margin-bottom:10px;display:flex}.chart-period-btn{border-radius:var(--br-pill);border:1px solid var(--border2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;font-family:var(--font-mono);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast);background:0 0;padding:3px 10px}.chart-period-btn.active,.chart-period-btn:hover{border-color:var(--page-accent);color:var(--page-accent)}.chart-summary-row{flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;display:flex}.chart-summary-item--attempt .chart-summary-val{color:var(--muted)}.chart-material-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.chart-material-chip{border-radius:var(--br-pill);border:1px solid var(--border2);color:var(--muted);font-size:var(--fs-xs);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100%;transition:border-color var(--dur-fast), color var(--dur-fast);background:0 0;padding:4px 10px;overflow:hidden}.chart-material-chip.active,.chart-material-chip:hover{border-color:var(--accent-oasis);color:var(--accent-oasis)}.chart-legend-note{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:6px;margin:6px 0 0;display:flex}.chart-legend-ring{border:1.75px dashed var(--muted);border-radius:50%;flex:none;width:9px;height:9px}.chart-summary-item{flex-direction:column;gap:1px;display:flex}.chart-summary-label{font-size:var(--fs-2xs);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.chart-summary-val{font-size:var(--fs-base);font-weight:600;font-family:var(--font-mono);color:var(--fg)}.chart-tooltip{background:var(--bg3);border:1px solid var(--border);border-radius:var(--br-sm);font-family:var(--font-mono);flex-direction:column;gap:2px;padding:8px 12px;display:flex}.chart-tooltip-date{font-size:var(--fs-2xs);color:var(--muted)}.chart-tooltip-bpm{font-size:var(--fs-md);color:var(--fg);font-weight:700}.chart-tooltip-unit{font-size:var(--fs-xs);color:var(--muted);font-weight:400}.chart-tooltip-feeling{font-size:var(--fs-xs);letter-spacing:.04em;font-weight:600}.exercise-progress-section{background:radial-gradient(circle at top left, var(--oasis-a10), transparent 48%), linear-gradient(150deg, var(--white-a03), rgba(var(--white-rgb), .01));border-color:var(--oasis-a22)}.progress-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.progress-card-header-text{gap:4px;display:grid}.progress-card-toggle{background:var(--oasis-a10);border:1px solid rgba(var(--accent-practice-rgb), .3);border-radius:var(--br-sm);color:var(--accent-oasis);font-size:var(--fs-sm);font-family:var(--font-mono);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;transition:background var(--dur-fast), border-color var(--dur-fast);white-space:nowrap;flex-shrink:0;align-self:center;align-items:center;gap:6px;padding:7px 14px;font-weight:700;display:flex}.progress-card-toggle:hover{background:var(--oasis-a18);border-color:rgba(var(--accent-practice-rgb), .55)}.progress-card-toggle.active{background:var(--oasis-a15);border-color:var(--accent-oasis)}.progress-card-toggle-arrow{font-size:var(--fs-2xs);opacity:.7}.progress-card-charts{gap:12px;margin-top:4px;display:grid}.next-practice-card{border:1px solid rgba(var(--accent-practice-rgb), .35);background:radial-gradient(circle at top right, rgba(var(--accent-practice-rgb), .18), transparent 48%), rgba(var(--accent-practice-rgb), .06);border-radius:10px;gap:8px;padding:12px;display:grid}.next-practice-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.next-practice-head h4{font-size:var(--fs-md);margin:0}.next-practice-title,.next-practice-reason,.next-practice-cta{margin:0}.next-practice-title{font-size:var(--fs-md)}.next-practice-reason{font-size:var(--fs-base);color:var(--muted)}.next-practice-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.next-practice-meta span{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--white-a12);border-radius:var(--br-pill);padding:2px 8px}.next-practice-bpm-reason{border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;font-weight:700;border:1px solid rgba(var(--accent-practice-rgb), .38)!important;background:rgba(var(--accent-practice-rgb), .1)!important;color:var(--accent-practice)!important}.next-practice-focus{flex-wrap:wrap;gap:8px;display:flex}.next-practice-focus span{border:1px solid rgba(var(--accent-practice-rgb), .35);background:rgba(var(--accent-practice-rgb), .1);color:var(--text);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px}.next-practice-cta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:#8cf4bf}.next-practice-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.next-practice-play-btn{-webkit-appearance:none;appearance:none;border:1px solid rgba(var(--accent-practice-rgb), .55);background:rgba(var(--accent-practice-rgb), .15);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--br-pill);cursor:pointer;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform 50ms ease;padding:8px 14px}.next-practice-play-btn:hover{background:rgba(var(--accent-practice-rgb), .28);border-color:rgba(var(--accent-practice-rgb), .85)}.next-practice-play-btn:active{transform:translateY(1px)}.next-practice-play-btn:focus-visible{outline-offset:2px;outline:2px solid #8cf4bf}.weekly-rollup{border:1px solid rgba(var(--accent-practice-rgb), .25);background:var(--oasis-a08);border-radius:10px;gap:10px;padding:12px;display:grid}.weekly-rollup-header{justify-content:space-between;align-items:center;display:flex}.weekly-rollup-header h4{font-size:var(--fs-md);margin:0}.weekly-rollup-week{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.04em}.weekly-rollup-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.weekly-rollup-stat{background:var(--white-a02);border:1px solid var(--white-a08);border-radius:var(--br-sm);gap:2px;padding:8px;display:grid}.weekly-rollup-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:var(--font-mono)}.weekly-rollup-stat strong{font-size:16px;line-height:1.2}.weekly-rollup-feeling{gap:6px;display:grid}.weekly-rollup-bars{border-radius:var(--br-pill);background:var(--white-a06);width:100%;height:10px;display:flex;overflow:hidden}.weekly-rollup-bar{height:100%}.weekly-rollup-bar-easy{background:#2bc870}.weekly-rollup-bar-good{background:var(--accent-oasis)}.weekly-rollup-bar-hard{background:#ff6b5e}.weekly-rollup-legend{color:var(--muted);font-size:var(--fs-sm);margin:0}.comparison-chart{border:1px solid var(--border2);background:var(--bg3);border-radius:10px;gap:10px;padding:12px;display:grid}.comparison-chart-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.comparison-chart-head h4{font-size:var(--fs-md);margin:0}.comparison-chart-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.comparison-control{gap:4px;display:grid}.comparison-control span{font-size:var(--fs-2xs);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-mono)}.comparison-control select{border:1px solid var(--border);border-radius:var(--br-sm);background:var(--white-a04);width:100%;color:var(--fg);font-size:var(--fs-base);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding:8px}.comparison-chart-legend{color:var(--muted);font-size:var(--fs-sm);flex-wrap:wrap;gap:10px;margin:0;display:flex}.comparison-chart-legend span{align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-swatch-a{background:var(--accent-practice)}.legend-swatch-b{background:var(--text)}@media (max-width:640px){.progress-card-header{flex-direction:column;align-items:flex-start}.progress-card-toggle{align-self:flex-start}.next-practice-head{flex-direction:column;align-items:flex-start}.weekly-rollup-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-chart-head{flex-direction:column;align-items:flex-start}.comparison-chart-controls{grid-template-columns:1fr}}.exercise-progress-section{padding:16px!important}.session-program-kicker{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-clapton);opacity:.85;margin:0;font-size:10px;font-weight:700}.session-active-header{gap:4px;display:grid}.session-active-actions{flex-direction:column;gap:8px;display:flex}.session-done-toggle{cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;color:rgba(var(--color-success-rgb), .72);transition:color var(--dur-fast);background:0 0;border:none;align-items:center;gap:6px;margin-top:10px;padding:0;font-weight:700;display:inline-flex}.session-done-toggle:hover{color:var(--on)}.session-progress-compact{gap:6px;display:grid}.session-progress-compact-track{gap:4px;display:flex}.session-progress-compact-seg{border-radius:var(--br-pill);background:var(--white-a08);flex:1;height:5px;transition:background .25s}.session-progress-compact-seg.is-done{background:linear-gradient(90deg, rgba(var(--color-success-rgb), .9), rgba(var(--accent-practice-rgb), .9))}.session-progress-compact-seg.is-current{background:rgba(var(--accent-practice-rgb), .45);box-shadow:0 0 6px var(--oasis-a35)}.session-progress-compact-row{justify-content:space-between;align-items:center;display:flex}.session-progress-compact-step,.session-progress-compact-count{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}@keyframes practice-overlay-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.practice-overlay{z-index:1000;background:var(--bg);animation:practice-overlay-in var(--dur-normal) var(--ease-out) both;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.practice-overlay-inner{width:100%;max-width:640px;min-height:100%;padding:32px 20px max(env(safe-area-inset-bottom), 32px);box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;margin:0 auto;display:flex}@media (max-width:480px){.practice-overlay-inner{padding:20px 14px max(env(safe-area-inset-bottom), 24px)}}.practice-overlay .home-band-card.daily-exercise-card{border:1px solid rgba(var(--accent-practice-rgb), .45);width:100%;box-shadow:inset 0 0 24px rgba(var(--accent-practice-rgb), .08), 0 0 0 1px rgba(var(--accent-practice-rgb), .14), 0 14px 40px rgba(var(--black-rgb), .5);background:var(--bg2);box-sizing:border-box;border-radius:16px;flex-direction:column;flex-shrink:0;align-items:center;gap:20px;min-height:0;padding:32px 28px;display:flex;position:relative;overflow:hidden}.practice-overlay-inner>:first-child{margin-top:auto}.practice-overlay-inner>:last-child{margin-bottom:auto}@media (max-width:480px){.practice-overlay .home-band-card.daily-exercise-card{gap:16px;padding:24px 20px}}.practice-overlay .daily-ex-bpm-hero{font-size:clamp(64px,18vw,96px)}.practice-overlay .session-current-step-title{font-size:clamp(22px,5vw,32px)}.practice-overlay .session-active-header{padding-bottom:8px}.practice-overlay .session-active-actions{gap:4px;margin-top:auto}.practice-overlay .daily-ex-end-btn{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .18), rgba(var(--practice-deep-rgb), .1));border:1px solid rgba(var(--accent-practice-rgb), .45);color:var(--accent-oasis);letter-spacing:.05em;box-shadow:0 2px 14px rgba(var(--accent-practice-rgb), .15), inset 0 1px 0 rgba(var(--white-rgb), .07);padding:16px 20px;font-size:15px;font-weight:700;transition:background .18s,border-color .18s,box-shadow .18s}.practice-overlay .daily-ex-end-btn:hover{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .28), rgba(var(--practice-deep-rgb), .18));border-color:rgba(var(--accent-practice-rgb), .65);box-shadow:0 4px 20px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1)}.practice-overlay .daily-ex-cancel-btn{opacity:.6;padding:10px 20px}.practice-overlay .daily-ex-cancel-btn:hover{opacity:1}.practice-overlay .daily-ex-end-btn,.practice-overlay .daily-ex-cancel-btn,.practice-overlay .daily-ex-feedback-done-btn{width:100%}.practice-overlay .session-progress-compact{margin-top:auto;padding-top:16px}.session-summary{border-radius:var(--br-md);border:1px solid rgba(var(--color-success-rgb), .16);background:linear-gradient(180deg, rgba(var(--color-success-rgb), .04) 0%, transparent 35%), var(--bg3);margin-top:16px;overflow:hidden}.session-summary-stats{border-bottom:1px solid rgba(var(--color-success-rgb), .12);gap:0;display:flex}.session-summary-stat{border-right:1px solid rgba(var(--color-success-rgb), .1);flex-direction:column;flex:1;align-items:center;padding:10px 8px;display:flex}.session-summary-stat:last-child{border-right:none}.session-summary-stat-value{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--text);font-weight:700}.session-summary-stat--streak .session-summary-stat-value{color:var(--streak)}.session-summary-stat-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.session-summary-rows{flex-direction:column;display:flex}.session-summary-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.session-summary-row:last-child{border-bottom:none}.session-summary-row-left{align-items:center;gap:8px;min-width:0;display:flex}.session-summary-row-step{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);min-width:18px;font-weight:700}.session-summary-row-name{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.session-summary-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.session-summary-row-bpm{font-family:var(--font-mono);font-size:var(--fs-xs);color:rgba(var(--color-success-rgb), .78);font-weight:700}@keyframes milestone-toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.milestone-toast-stack{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:20px}.milestone-toast{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .2), rgba(var(--success-deep-rgb), .12)), var(--bg2);border:1px solid rgba(var(--color-success-rgb), .45);box-shadow:0 8px 28px rgba(var(--color-success-rgb), .25), 0 2px 8px rgba(var(--black-rgb), .35);pointer-events:auto;animation:milestone-toast-in var(--dur-slow) cubic-bezier(.34,1.56,.64,1) both;border-radius:14px;align-items:center;gap:12px;min-width:240px;max-width:320px;padding:12px 16px;display:flex}.milestone-toast__icon{flex-shrink:0;font-size:24px}.milestone-toast__text{flex-direction:column;flex:1;gap:2px;display:flex}.milestone-toast__kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--color-success-rgb), .75);font-weight:700}.milestone-toast__label{font-family:var(--font-head);font-size:var(--fs-md);letter-spacing:.04em;text-transform:uppercase;color:var(--on);text-shadow:0 0 12px rgba(var(--color-success-rgb), .4);font-weight:700}.milestone-toast__desc{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.milestone-toast__close{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-shrink:0;padding:0;font-size:16px;line-height:1}.milestone-toast__close:hover{color:var(--text)}.pse-nav-back{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 0 16px;font-size:10px;font-weight:700;transition:color .15s;display:block}.pse-nav-back:hover{color:var(--accent-clapton)}.pse-picker{flex-direction:column;gap:0;width:100%;max-width:600px;margin:0 auto;padding:24px 20px 32px;display:flex}.pse-picker-header{margin-bottom:20px}.pse-picker-title{font-family:var(--font-head);font-size:var(--fs-hero);text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0 0 6px;font-weight:700;line-height:1.1}.pse-picker-sub{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:11px}.pse-song-list{flex-direction:column;gap:8px;display:flex}.pse-song-row{background:var(--bg3);border:1px solid var(--border2);cursor:pointer;text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;transition:background .16s,border-color .16s,transform .14s;display:flex}.pse-song-row:hover{background:rgba(var(--accent-teach-rgb), .07);border-color:rgba(var(--accent-teach-rgb), .35);transform:translateY(-2px)}.pse-song-row-main{flex-direction:column;gap:3px;min-width:0;display:flex}.pse-song-row-title{font-family:var(--font-body);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.pse-song-row-artist{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);font-size:10px}.pse-song-row-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.pse-song-row-key{font-family:var(--font-mono);letter-spacing:.07em;color:var(--accent-clapton);background:rgba(var(--accent-teach-rgb), .1);border:1px solid rgba(var(--accent-teach-rgb), .3);border-radius:5px;padding:2px 7px;font-size:10px;font-weight:700}.pse-song-row-bpm{font-family:var(--font-mono);letter-spacing:.05em;color:var(--muted);font-size:10px}.pse-song-row-arrow{color:var(--muted);font-size:18px;line-height:1}.pse-play-section{margin-bottom:20px}.pse-section-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px;font-weight:700;display:block}.pse-strum-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.pse-strum-arrows{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.pse-strum-arrow{font-family:var(--font-mono);color:var(--muted);font-size:22px;font-weight:700;line-height:1}.pse-strum-arrow--down{color:var(--on);text-shadow:0 0 8px rgba(var(--color-success-rgb), .5)}.pse-strum-arrow--up{color:var(--accent-oasis);text-shadow:0 0 8px rgba(var(--accent-practice-rgb), .5)}.pse-strum-desc{font-family:var(--font-mono);color:var(--muted);margin:8px 0 0;font-size:11px}.pse-chart-section{flex-direction:column;gap:12px;display:flex}.pse-picker-count{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 10px rgba(var(--accent-teach-rgb), .3);margin:6px 0 0;font-size:10px;font-weight:700}.pse-change-song-link{border:1px solid rgba(var(--accent-teach-rgb), .32);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-clapton);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;margin-top:8px;padding:5px 12px;font-size:10px;font-weight:700;transition:background .16s,border-color .16s,transform .14s}.pse-change-song-link:hover{background:rgba(var(--accent-teach-rgb), .1);border-color:rgba(var(--accent-teach-rgb), .55);transform:translateY(-1px)}.pse-change-song-link:focus-visible{outline:2px solid var(--accent-clapton);outline-offset:2px}@media (max-width:520px){.pse-picker{padding:16px 14px 32px}.pse-picker-title{font-size:22px}.pse-song-row{padding:12px 14px}}@property --flow-sweep{syntax:"<angle>";inherits:false;initial-value:0deg}.daily-ex-countdown-ring{place-items:center;width:132px;height:132px;display:grid;position:relative}.daily-ex-countdown-ring:before{content:"";border:3px solid rgba(var(--white-rgb), .08);border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.daily-ex-countdown-sweep{background:conic-gradient(var(--on) var(--flow-sweep,0deg), transparent 0);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), var(--black) calc(100% - 3px));-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), var(--black) calc(100% - 3px));mask:radial-gradient(farthest-side, transparent calc(100% - 3px), var(--black) calc(100% - 3px));border-radius:50%;animation:1s linear forwards flow-countdown-sweep;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes flow-countdown-sweep{0%{--flow-sweep:360deg}to{--flow-sweep:0deg}}.daily-ex-countdown-ring .daily-ex-countdown-num{z-index:1;color:var(--on);position:relative}.daily-ex-bpm-ring{border:2px solid rgba(var(--color-success-rgb), .28);background:radial-gradient(circle at 50% 42%, rgba(var(--color-success-rgb), .1), transparent 62%);width:148px;height:148px;box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .05), 0 0 24px rgba(var(--color-success-rgb), .1);border-radius:50%;place-items:center;display:grid;position:relative}.daily-ex-bpm-ring .daily-ex-bpm-hero-block{min-width:0}.daily-ex-bpm-ring .daily-ex-bpm-hero{font-variant-numeric:tabular-nums;font-size:58px}.daily-ex-bpm-ring-pulse{border:2px solid rgba(var(--color-success-rgb), .55);opacity:0;pointer-events:none;border-radius:50%;animation:.5s ease-out flow-beat-pulse;position:absolute;top:-5px;bottom:-5px;left:-5px;right:-5px}.daily-ex-bpm-ring-pulse.is-downbeat{border-color:rgba(var(--color-success-rgb), .92);animation-duration:.62s}@keyframes flow-beat-pulse{0%{opacity:.85;transform:scale(.95)}to{opacity:0;transform:scale(1.16)}}.daily-ex-success-check svg{width:28px;height:28px}@media (prefers-reduced-motion:reduce){.daily-ex-countdown-sweep,.daily-ex-bpm-ring-pulse{animation:none}}@keyframes session-card-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.daily-exercise-card.today-session,.daily-exercise-card.today-session:not(.daily-exercise-card--done){gap:var(--sp-4);border-radius:var(--br-xl);border:1px solid var(--oasis-a35);background:radial-gradient(circle at 0% 0%, var(--oasis-a14), transparent 45%), radial-gradient(circle at 100% 100%, var(--oasis-a08), transparent 50%), var(--bg2);grid-template-columns:minmax(0,1fr);min-width:0;padding:22px 18px 18px;animation:.45s ease-out both session-card-fade-up,4s ease-in-out infinite daily-glow;position:relative;overflow:hidden}.main-container.is-first .daily-exercise-card.today-session{animation:4s ease-in-out infinite daily-glow}.today-session:before{content:"";background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);height:2px;position:absolute;top:0;left:0;right:0}.today-session-head{flex-direction:column;gap:6px;display:flex}.home-band-card p.today-session-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);text-shadow:0 0 10px var(--oasis-a45);font-weight:700}.today-session-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:34px;font-weight:700;line-height:1.05}.home-band-card p.today-session-desc{font-size:var(--fs-md)}.home-band-card p.today-session-meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}.today-session-steps{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.today-session-step{align-items:center;gap:var(--sp-3);min-height:54px;padding:var(--sp-2) var(--sp-3);border-radius:var(--br-md);background:rgba(var(--black-rgb), .25);border:1px solid var(--border);display:flex}.today-session-step.is-current{background:rgba(var(--color-success-rgb), .08);border-color:rgba(var(--color-success-rgb), .35)}.today-session-step-num{border:1px solid var(--white-a12);width:26px;height:26px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.today-session-step.is-current .today-session-step-num,.today-session-step.is-done .today-session-step-num{background:var(--on);color:var(--bg);border:0}.today-session-step-text{flex-direction:column;flex:1;min-width:0;display:flex}.today-session-step-name{font-size:var(--fs-md);color:var(--text);font-weight:600;line-height:var(--lh-snug);overflow-wrap:break-word}.today-session-step.is-done .today-session-step-name{color:var(--muted)}.today-session-step-role{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.today-session-step-bpm{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.today-session-start.session-start-btn{border-radius:var(--br-md);min-height:54px}.today-session-details{border-top:1px solid var(--border);padding-top:var(--sp-3)}.today-session-details>summary{overflow-wrap:anywhere;cursor:pointer;min-height:44px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;display:flex}.today-session-details[open]>summary{color:var(--text)}.today-session-details-body{gap:var(--sp-3);padding-top:var(--sp-2);display:grid}.today-session-title-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);min-width:0;display:flex}.today-session-title-row .today-session-title{overflow-wrap:break-word;min-width:0}.today-session-title-row .daily-ex-share-btn{flex:none;margin-top:4px}.today-session-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.today-session-stat{min-width:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--br-md);background:rgba(var(--black-rgb), .25);border:1px solid var(--border);flex-direction:column;gap:2px;display:flex}.today-session-stat.is-accent{background:rgba(var(--color-success-rgb), .08);border-color:rgba(var(--color-success-rgb), .35)}.today-session-stat dt{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.today-session-stat dd{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-weight:500}.today-session-stat.is-accent dd{color:var(--on)}.today-session .exercise-focus-note{border-color:var(--oasis-a30);border-left:3px solid var(--accent-oasis);background:linear-gradient(135deg, var(--oasis-a10), var(--oasis-a04));margin:0}.today-session .exercise-focus-note-mark,.today-session .exercise-focus-note-label{color:var(--accent-oasis)}.today-session .exercise-focus-note-edit{border-color:var(--oasis-a35);background:var(--oasis-a10);min-height:36px;color:var(--accent-oasis)}@media (min-width:760px){.today-session-title{font-size:40px}}.practice-overlay .daily-exercise-card--active>.session-active-progress{align-self:stretch;width:100%}.practice-overlay .session-active-progress .session-progress-compact{margin-top:0;padding-top:0}.session-active-progress .session-progress-compact-seg{height:4px}.session-active-progress .session-progress-compact-seg.is-current{background:var(--accent-oasis);box-shadow:0 0 8px var(--oasis-a45)}.session-progress-compact-count{font-variant-numeric:tabular-nums}.practice-overlay .daily-exercise-card--active .exercise-focus-note{box-sizing:border-box;border-color:var(--oasis-a30);border-left:3px solid var(--accent-oasis);background:linear-gradient(135deg, var(--oasis-a10), var(--oasis-a04));align-self:stretch;width:100%;margin:0}.practice-overlay .daily-exercise-card--active .exercise-focus-note-mark,.practice-overlay .daily-exercise-card--active .exercise-focus-note-label{color:var(--accent-oasis)}.practice-overlay .daily-exercise-card--active .exercise-focus-note-edit{border-color:var(--oasis-a35);background:var(--oasis-a10);min-height:36px;color:var(--accent-oasis)}.practice-overlay .daily-ex-end-btn{border:1px solid var(--oasis-a45);background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);min-height:54px;color:var(--white);text-transform:uppercase;font-size:var(--fs-base);letter-spacing:.08em;box-shadow:0 4px 16px rgba(var(--practice-strong-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .18)}.practice-overlay .daily-ex-end-btn:hover{background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);border-color:var(--oasis-a50);box-shadow:0 8px 24px rgba(var(--practice-strong-rgb), .4), inset 0 1px 0 rgba(var(--white-rgb), .18);transform:translateY(-1px)}.practice-overlay .daily-ex-end-btn:focus-visible{outline:2px solid var(--text);outline-offset:3px}.practice-overlay .daily-exercise-card--active .daily-ex-cancel-btn{opacity:1;border:1px solid var(--border2);border-radius:var(--br-md);min-height:44px;color:var(--muted)}.practice-overlay .daily-exercise-card--active .daily-ex-cancel-btn:hover{color:var(--text);border-color:var(--white-a12)}.practice-overlay .daily-exercise-card--active .session-active-actions{align-self:stretch;gap:var(--sp-2);width:100%}@keyframes ex-cat-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ex-cat{gap:var(--sp-5);width:100%;max-width:var(--page-w-app);flex-direction:column;margin:0 auto;display:flex}.ex-detail{width:100%;max-width:var(--page-w-read);margin:0 auto}.ex-cat-intro{flex-direction:column;gap:6px;display:flex}.ex-cat-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:700}.ex-cat-title{font-family:var(--font-head);font-size:var(--fs-hero);font-weight:700;line-height:var(--lh-tight);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0}.ex-cat-sub{font-size:var(--fs-md);color:var(--muted);max-width:640px;margin:0}.ex-cat-search{gap:var(--sp-3);flex-direction:column;display:flex}.ex-cat-search .search-container{margin:0}.ex-cat-chips{gap:var(--sp-2);scrollbar-width:none;margin:0 -12px;padding:2px 12px;display:flex;overflow-x:auto}.ex-cat-chips::-webkit-scrollbar{display:none}.ex-cat-chip{border-radius:var(--br-pill);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));min-height:40px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);flex:none;padding:0 14px}.ex-cat-chip:hover{color:var(--text);border-color:var(--oasis-a35)}.ex-cat-chip.is-active{background:var(--oasis-a18);border-color:var(--oasis-a50);color:var(--accent-oasis)}.ex-cat-chip:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.ex-cat-today{min-height:64px;padding:var(--sp-3) 14px;border-radius:var(--br-lg);border:1px solid var(--oasis-a35);background:linear-gradient(135deg, var(--oasis-a14), rgba(var(--practice-deep-rgb), .06));color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:14px;display:flex}.ex-cat-today:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.ex-cat-today-icon{border-radius:var(--br-md);background:var(--oasis-a18);width:40px;height:40px;color:var(--accent-oasis);flex:none;justify-content:center;align-items:center;display:flex}.ex-cat-today-text{flex-direction:column;flex:1;min-width:0;display:flex}.ex-cat-today-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-oasis)}.ex-cat-today-name{font-size:var(--fs-md);overflow-wrap:break-word;font-weight:600}.ex-cat-today-chevron{color:var(--accent-oasis);transition:transform var(--dur-normal) var(--ease-out);flex:none}.ex-cat-today[aria-expanded=true] .ex-cat-today-chevron{transform:rotate(180deg)}.ex-cat-section{gap:var(--sp-2);flex-direction:column;animation:.45s ease-out both ex-cat-fade-up;display:flex}.ex-cat-section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.ex-cat-section-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.ex-cat-section-aside{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ex-cat-section-hint{margin:0 0 var(--sp-1);font-size:var(--fs-sm);color:var(--muted);max-width:640px}.ex-cat-sessions{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin:0 -12px;padding:2px 12px 6px;display:flex;overflow-x:auto}.ex-cat-sessions::-webkit-scrollbar{display:none}.ex-cat-session{scroll-snap-align:start;width:220px;padding:var(--sp-4);border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);box-shadow:var(--shadow-lg), var(--shadow-inset);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--dur-fast), transform var(--dur-fast);flex-direction:column;flex:none;gap:10px;display:flex}.ex-cat-session:hover{border-color:var(--oasis-a35);transform:translateY(-2px)}.ex-cat-session:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.ex-cat-session.is-selected{border-color:var(--oasis-a50);background:linear-gradient(135deg, var(--oasis-a12), var(--oasis-a04)), var(--bg2)}.ex-cat-session-title{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:700;line-height:var(--lh-snug);letter-spacing:.04em;text-transform:uppercase}.ex-cat-session-desc{font-size:var(--fs-base);color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.ex-cat-session-meta{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.ex-cat-pill{border-radius:var(--br-xs);background:var(--white-a06);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text);padding:2px 8px}.ex-cat-selected{animation:.35s ease-out both ex-cat-fade-up}.ex-cat-drills{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);margin:0;padding:0;list-style:none;overflow:hidden}.ex-cat-drill+.ex-cat-drill{border-top:1px solid var(--border)}.ex-cat-drill-btn{align-items:center;gap:var(--sp-3);width:100%;min-height:64px;color:var(--text);text-align:left;cursor:pointer;transition:background var(--dur-fast);background:0 0;border:0;padding:10px 14px;display:flex}.ex-cat-drill-btn:hover{background:var(--oasis-a06)}.ex-cat-drill-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:-2px}.ex-cat-drill-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ex-cat-drill-name{font-size:var(--fs-md);font-weight:600;line-height:var(--lh-snug);overflow-wrap:break-word}.ex-cat-drill-sub{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.ex-cat-pips{flex:none;gap:3px;display:inline-flex}.ex-cat-pip{background:var(--white-a12);border-radius:2px;width:10px;height:4px}.ex-cat-pip.is-on{background:var(--accent-oasis)}.ex-cat-drill-focus{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ex-cat-drill-stats{flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.ex-cat-drill-bpm{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.ex-cat-drill-bpm.is-empty{color:var(--muted);font-weight:400}.ex-cat-drill-trend{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);white-space:nowrap}.ex-cat-drill-trend.is-up{color:var(--on)}@media (min-width:760px){.ex-cat-title{font-size:36px}.ex-cat-chips,.ex-cat-sessions{margin:0;padding-left:0;padding-right:0}.ex-cat-sessions{flex-wrap:wrap;overflow:visible}.ex-cat-session{width:calc(25% - 7.5px);min-width:200px}}.daily-exercise-card.today-session.session-done{animation:daily-card-done-in var(--dur-slow) var(--ease-out);border-left-width:1px}.session-done .daily-ex-success-check{background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);width:52px;height:52px;color:var(--white);box-shadow:0 0 0 6px var(--oasis-a12), 0 0 24px var(--oasis-a35);border:none}.home-band-card.session-done p.daily-ex-success-kicker{color:var(--accent-oasis)}.session-done .daily-ex-success-headline{letter-spacing:.04em;overflow-wrap:anywhere;font-size:30px;line-height:1.05}.session-summary--v2{gap:var(--sp-4);background:0 0;border:none;border-radius:0;flex-direction:column;margin-top:0;display:flex;overflow:visible}.session-summary--v2 .session-summary-stats{border:none;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.session-summary--v2 .session-summary-stat{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--white-a03,rgba(var(--white-rgb), .03));align-items:flex-start;gap:2px;padding:10px 12px}.session-summary--v2 .session-summary-stat:last-child{border-right:1px solid var(--border2)}.session-summary--v2 .session-summary-stat-value{font-family:var(--font-head);align-items:center;gap:4px;font-size:22px;line-height:1;display:inline-flex}.session-summary--v2 .session-summary-stat--streak{border-color:rgba(var(--color-warning-rgb), .3);background:rgba(var(--color-warning-rgb), .06)}.session-summary--v2 .session-summary-stat-label{letter-spacing:.12em;font-size:9px}.session-summary-flame{width:14px;height:14px}.session-summary-steps{flex-direction:column;display:flex}.session-summary-steps-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-weight:500}.session-summary--v2 .session-summary-rows{margin:0;padding:0;list-style:none}.session-summary--v2 .session-summary-row{border-bottom:none;border-top:1px solid var(--border);grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:4px 12px;padding:12px 0;display:grid}.session-summary-row-check{background:var(--oasis-a15);border:1px solid var(--oasis-a45);width:28px;height:28px;color:var(--accent-oasis);border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;display:flex}.session-summary-row-check svg{width:14px;height:14px}.session-summary-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.session-summary--v2 .session-summary-row-step{letter-spacing:.12em;text-transform:uppercase;min-width:0;font-weight:400}.session-summary--v2 .session-summary-row-name{font-size:var(--fs-md);white-space:normal;font-weight:600}.session-summary-row-result{flex-direction:column;align-items:flex-end;display:flex}.session-summary--v2 .session-summary-row-bpm{font-family:var(--font-head);color:var(--text);font-variant-numeric:tabular-nums;font-size:24px;line-height:1}.session-summary-row-unit{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);margin-left:3px;font-weight:400}.session-summary-row-delta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);white-space:nowrap}.session-summary-row-delta.is-up{color:var(--on)}.session-summary-row-delta.is-down{color:var(--streak)}.session-summary-row-foot{flex-wrap:wrap;grid-column:2/span 2;justify-content:space-between;align-items:center;gap:8px;display:flex}.session-summary-feel{--feel:var(--muted);border-radius:var(--br-pill);border:1px solid color-mix(in srgb, var(--feel) 40%, transparent);background:color-mix(in srgb, var(--feel) 12%, transparent);min-height:26px;color:var(--feel);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.session-summary-feel--easy{--feel:var(--feel-easy)}.session-summary-feel--good{--feel:var(--feel-good)}.session-summary-feel--hard{--feel:var(--feel-hard)}.session-summary-feel-dot{background:var(--feel);border-radius:50%;width:7px;height:7px}.session-summary-row-next{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted)}.session-summary-row-next strong{color:var(--text);font-weight:500}.session-summary-best{border-radius:var(--br-md);border:1px solid rgba(var(--color-success-rgb), .28);background:rgba(var(--color-success-rgb), .07);font-size:var(--fs-base);color:var(--text);margin:0;padding:10px 12px}.session-summary-best strong{color:var(--on);font-weight:600}.session-summary-next{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg3);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.session-summary-next-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}.session-summary-next-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.session-summary-next-text{flex-direction:column;gap:2px;min-width:0;display:flex}.session-summary-next-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);font-size:22px;font-weight:700;line-height:1.1}.session-summary-next-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.session-summary-next-icon{width:22px;height:22px;color:var(--muted);flex:none}.session-summary-progress-btn{border-radius:var(--br-md);border:1px solid rgba(var(--accent-you-rgb), .45);background:rgba(var(--accent-you-rgb), .12);min-height:52px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast);font-weight:500}.session-summary-progress-btn:hover{background:rgba(var(--accent-you-rgb), .18)}.session-summary-keep-btn{min-height:44px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none}.session-summary-keep-btn:hover{color:var(--text)}.session-summary-progress-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.session-summary-keep-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.fretboard-memory-page{width:100%;max-width:var(--page-w-read);margin:0 auto}.fm-v2{--fm-good:var(--on);--fm-bad:var(--streak);width:100%;color:var(--text)}.fm-v2 .fm-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:500}.fm-v2 .fm-section-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.fm-v2 .fm-primary-btn{border-radius:var(--br-md);border:1px solid var(--oasis-a45);background:linear-gradient(135deg, var(--practice-strong) 0%, var(--cyan) 100%);width:100%;min-height:54px;color:var(--white);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 16px rgba(var(--practice-strong-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .18);transition:transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;padding:0 18px;font-size:13px;font-weight:500}.fm-v2 .fm-primary-btn:hover{box-shadow:0 8px 22px rgba(var(--practice-strong-rgb), .4);transform:translateY(-1px)}.fm-v2 .fm-ghost-btn{border-radius:var(--br-md);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));min-height:46px;color:var(--text);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:0 14px;font-size:11px}.fm-v2 .fm-ghost-btn:hover{border-color:var(--oasis-a45)}.fm-v2 .fm-ghost-btn--quiet{color:var(--muted)}.fm-v2 .fm-text-btn{min-height:44px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-self:center;padding:0 12px;font-size:11px}.fm-v2 .fm-text-btn:hover{color:var(--text)}.fm-v2 button:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.fm-setup{gap:var(--sp-5,20px);flex-direction:column;padding:8px 0 24px;animation:.45s ease-out both fm-fade-up;display:flex}.fm-setup-head{flex-direction:column;gap:6px;display:flex}.fm-v2 .fm-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:34px;font-weight:700;line-height:1.05}.fm-intro{font-size:var(--fs-md);color:var(--muted);margin:0}.fm-how{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:12px 14px;list-style:none;display:grid}.fm-how-step{flex-direction:column;gap:4px;display:flex}.fm-how-visual{font-family:var(--font-head);font-size:26px;font-weight:700;line-height:1}.fm-how-visual--note{color:var(--accent-oasis)}.fm-how-visual--dot{background:var(--accent-oasis);border-radius:50%;width:22px;height:22px;margin:2px 0}.fm-how-visual--time{color:var(--fm-good)}.fm-how-text{font-size:var(--fs-sm);color:var(--muted)}.fm-setup-section{flex-direction:column;gap:10px;display:flex}.fm-levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (min-width:640px){.fm-levels{grid-template-columns:repeat(4,minmax(0,1fr))}}.fm-level{text-align:left;border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);min-height:84px;color:var(--text);font-family:var(--font-body);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.fm-level:hover{border-color:var(--oasis-a35)}.fm-level.is-selected{border-color:var(--oasis-a50);background:var(--oasis-a12);box-shadow:0 0 0 3px var(--oasis-a15)}.fm-level-swatch{border-radius:2px;width:100%;height:3px;margin-bottom:4px}.fm-level-num{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.fm-level.is-selected .fm-level-num{color:var(--accent-oasis)}.fm-level-name{font-size:14px;font-weight:600;line-height:1.2}.fm-level-sub{font-size:var(--fs-sm);color:var(--muted);line-height:1.2}.fm-count{border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.fm-count-btn{min-height:44px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:9px}.fm-count-btn.is-selected{background:var(--oasis-a18);color:var(--accent-oasis)}.fm-round{flex-direction:column;gap:16px;display:flex}.fm-round-bar{align-items:center;gap:12px;display:flex}.fm-quit-btn{border:1px solid var(--border2);width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-quit-btn svg{width:16px;height:16px}.fm-quit-btn:hover{color:var(--text);border-color:var(--oasis-a45)}.fm-round-segments{grid-template-columns:repeat(var(--fm-segments,10), minmax(0, 1fr));flex:1;gap:3px;min-width:0;display:grid}.fm-round-seg{background:rgba(var(--white-rgb), .12);border-radius:99px;height:4px}.fm-round-seg.is-current{background:var(--accent-oasis)}.fm-round-seg.is-correct{background:var(--fm-good)}.fm-round-seg.is-wrong,.fm-round-seg.is-missed{background:var(--fm-bad)}.fm-round-count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.fm-question{border-radius:var(--br-lg);border:1px solid var(--oasis-a35);background:radial-gradient(circle at 50% 0%, var(--oasis-a14), transparent 60%), var(--bg2);flex-direction:column;align-items:center;gap:10px;padding:18px 16px 14px;animation:.3s ease-out both fm-fade-up;display:flex}.fm-string-chip{--fm-string-color:var(--accent-oasis);border:1px solid color-mix(in srgb, var(--fm-string-color) 50%, transparent);background:color-mix(in srgb, var(--fm-string-color) 12%, transparent);min-height:28px;color:color-mix(in srgb, var(--fm-string-color) 65%, white);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;border-radius:99px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.fm-string-chip-dot{background:var(--fm-string-color);border-radius:50%;width:8px;height:8px}.fm-string-chip--any .fm-string-chip-dot{background:conic-gradient(#9b59b6,#2ecc71,#e67e22,#3498db,#f1c40f,#e74c3c,#9b59b6)}.fm-note{font-family:var(--font-head);color:var(--text);text-shadow:0 0 32px var(--oasis-a35);margin:0;font-size:112px;font-weight:700;line-height:.9}.fm-timer{align-items:center;gap:10px;width:100%;display:flex}.fm-timer-track{background:rgba(var(--white-rgb), .1);border-radius:99px;flex:1;height:6px;overflow:hidden}.fm-timer-fill{background:var(--accent-oasis);height:100%;transition:width 1s linear, background var(--dur-fast);border-radius:99px}.fm-timer-value{text-align:right;min-width:26px;font-family:var(--font-mono);color:var(--accent-oasis);font-variant-numeric:tabular-nums;font-size:13px}.fm-timer.is-warning .fm-timer-fill{background:var(--fm-bad)}.fm-timer.is-warning .fm-timer-value{color:var(--fm-bad)}.fm-board{flex-direction:column;gap:14px;display:flex}.fm-neck{--fm-cols:22px repeat(13, minmax(0, 1fr));-webkit-user-select:none;user-select:none;width:100%}.fm-neck-frets,.fm-neck-row,.fm-neck-inlays{grid-template-columns:var(--fm-cols);display:grid}.fm-neck-frets{align-items:end;height:18px;padding-bottom:2px}.fm-neck-fret-num{text-align:center;font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:9px}.fm-neck-fret-num.is-marker{color:var(--accent-oasis)}.fm-neck-body{position:relative}.fm-neck-inlays{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.fm-neck-inlay-cell{border-right:1.5px solid rgba(var(--white-rgb), .16);position:relative}.fm-neck-inlay-cell:first-child{border-right:none}.fm-neck-inlay-cell:nth-child(2){border-right:4px solid rgba(var(--accent-you-rgb), .85)}.fm-neck-inlay-cell:nth-child(n+3){background:#1b1714}.fm-inlay{background:rgba(var(--accent-you-rgb), .16);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%}.fm-inlay--top{top:33.33%}.fm-inlay--bottom{top:66.66%}.fm-neck-row{height:34px;position:relative}.fm-neck-row:after{content:"";height:var(--fm-string-weight,1.5px);background:var(--fm-string-color);pointer-events:none;position:absolute;top:50%;left:22px;right:0;transform:translateY(-50%)}.fm-neck-row.is-target{background:color-mix(in srgb, var(--fm-string-color) 7%, transparent)}.fm-neck-row.is-dim:after{opacity:.25}.fm-neck-string-num{font-family:var(--font-mono);color:var(--muted);opacity:.6;align-items:center;font-size:10px;display:flex}.fm-neck-row.is-target .fm-neck-string-num{color:var(--fm-string-color);opacity:1}.fm-cell{z-index:1;min-width:0;color:inherit;font:inherit;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.fm-cell.is-selectable{cursor:pointer;border-radius:6px}.fm-cell.is-selectable:hover{background:var(--oasis-a18)}.fm-dot{z-index:2;width:20px;height:20px;font-family:var(--font-head);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:relative}.fm-dot.is-picked{background:var(--accent-oasis);box-shadow:0 0 10px var(--oasis-a50)}.fm-dot.is-correct{background:var(--fm-good);color:var(--bg);box-shadow:0 0 12px rgba(var(--color-success-rgb), .55);animation:.3s cubic-bezier(.34,1.56,.64,1) both fm-dot-in}.fm-dot.is-wrong{border:2px solid var(--fm-bad);color:var(--fm-bad);background:var(--bg)}.fm-picker{flex-direction:column;gap:8px;display:flex}.fm-picker-strings,.fm-picker-frets{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.fm-picker-strings{grid-template-columns:repeat(6,minmax(0,1fr))}.fm-picker-btn{border:1px solid var(--border2);background:var(--bg2);min-height:44px;color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:10px;font-size:14px}.fm-picker-btn.is-selected{border-color:var(--oasis-a50);background:var(--oasis-a18);color:var(--accent-oasis)}.fm-picker-btn--string{border-bottom:3px solid var(--fm-string-color)}@media (min-width:640px){.fm-picker{display:none}.fm-neck{--fm-cols:26px repeat(13, minmax(0, 1fr))}.fm-neck-row{height:40px}.fm-neck-row:after{left:26px}.fm-neck-fret-num{font-size:10px}.fm-dot{width:24px;height:24px;font-size:13px}}.fm-answer{--fm-answer:var(--fm-bad);border-radius:var(--br-lg);border:1px solid color-mix(in srgb, var(--fm-answer) 40%, transparent);background:color-mix(in srgb, var(--fm-answer) 8%, transparent);transform-origin:top;align-items:center;gap:14px;padding:14px 16px;animation:.35s cubic-bezier(.34,1.56,.64,1) both fm-banner-in;display:flex}.fm-answer.is-correct{--fm-answer:var(--fm-good)}.fm-answer-note{text-align:center;min-width:48px;font-family:var(--font-head);color:var(--text);flex:none;font-size:64px;font-weight:700;line-height:.9}.fm-answer-text{flex-direction:column;gap:4px;min-width:0;display:flex}.fm-answer-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--fm-answer);font-weight:500}.fm-answer-line{color:var(--text);font-size:14px}.fm-answer-sub{color:var(--muted);font-size:13px}.fm-board-footer{flex-direction:column;align-items:center;gap:6px;display:flex}.fm-key-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}@media (hover:none){.fm-key-hint{display:none}}.fm-results{flex-direction:column;gap:16px;padding:8px 0 24px;animation:.45s ease-out both fm-fade-up;display:flex}.fm-score{border-radius:var(--br-lg);border:1px solid var(--oasis-a35);background:radial-gradient(circle at 0% 0%, var(--oasis-a14), transparent 55%), var(--bg2);align-items:center;gap:18px;padding:18px 16px;display:flex}.fm-score-ring{flex:none;width:112px;height:112px}.fm-score-ring-track{fill:none;stroke:rgba(var(--white-rgb), .1);stroke-width:10px}.fm-score-ring-fill{fill:none;stroke:var(--accent-oasis);stroke-width:10px;stroke-linecap:round}.fm-score-ring-text{fill:var(--text);font-family:var(--font-head);font-size:32px;font-weight:700}.fm-score-text{flex-direction:column;gap:4px;min-width:0;display:flex}.fm-score-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;font-size:30px;font-weight:700;line-height:1.05}.fm-score-msg{color:var(--muted);font-size:14px}.fm-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.fm-stat{border-radius:var(--br-md);border:1px solid var(--border2);background:var(--white-a03);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.fm-stat-value{font-family:var(--font-head);font-size:22px;font-weight:700;line-height:1}.fm-stat-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:9px}.fm-review{flex-direction:column;gap:6px;display:flex}.fm-review-list{margin:0;padding:0;list-style:none}.fm-review-row{border-top:1px solid var(--border);grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;padding:10px 0;display:grid}.fm-review-note{border:1px solid color-mix(in srgb, var(--fm-bad) 35%, transparent);background:color-mix(in srgb, var(--fm-bad) 10%, transparent);width:40px;height:40px;font-family:var(--font-head);border-radius:10px;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.fm-review-text{flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:14px;display:flex}.fm-review-yours{color:var(--muted)}.fm-review-yours s{-webkit-text-decoration-color:var(--fm-bad);text-decoration-color:var(--fm-bad)}.fm-review-arrow{color:var(--muted)}.fm-review-correct{color:var(--fm-good);font-weight:600}.fm-results-actions{flex-direction:column;gap:8px;display:flex}.fm-results-secondary{grid-template-columns:1fr 1fr;gap:8px;display:grid}@keyframes fm-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fm-banner-in{0%{opacity:0;transform:scaleY(.7)}to{opacity:1;transform:scaleY(1)}}@keyframes fm-dot-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.controls-section{top:var(--app-chrome-h,0px);z-index:40;background:var(--bg);box-shadow:0 1px 0 var(--border);flex-direction:column;gap:14px;margin-top:-10px;margin-bottom:28px;padding:10px 0 12px;display:flex;position:sticky}.search-scopebar{background:var(--white-a03);border:1px solid var(--border2);border-radius:var(--br-md);scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;align-items:center;gap:4px;padding:4px;display:flex;overflow-x:auto}.search-scopebar-btn{scroll-snap-align:start;color:var(--muted);border-radius:var(--br-sm);min-height:36px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color var(--dur-fast) ease-out, background var(--dur-fast) ease-out, box-shadow var(--dur-fast) ease-out;background:0 0;border:none;flex:none;padding:8px 15px;font-weight:600}.search-scopebar-btn:hover{color:var(--text);background:var(--white-a04)}.search-scopebar-btn.active{color:var(--white);background:var(--accent-oasis);box-shadow:0 2px 10px var(--oasis-a28), inset 0 1px 0 rgba(var(--white-rgb), .18)}@media (max-width:767px){.search-scopebar-btn{min-height:40px;padding:9px 16px}}﻿ .search-container{flex-direction:column;gap:10px;width:100%;display:flex}.search-container--compact{gap:8px}.search-input-row{align-items:stretch;gap:10px;display:flex}.search-input-wrap{flex:1;min-width:0;display:flex;position:relative}.search-input-wrap .search-input{width:100%}.search-clear-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:5px;line-height:1;transition:color .15s,background .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.search-clear-btn:hover{color:var(--text);background:rgba(var(--white-rgb), .08)}.search-input--has-value{padding-right:38px!important}.search-hint-block{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;flex-direction:column;gap:12px;margin-bottom:4px;padding:16px 18px;display:flex}.search-hint-text{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--muted);margin:0;line-height:1.5}.search-hint-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-hint-try{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:10px;font-weight:700}.search-hint-chip{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--br-pill);border:1px solid rgba(var(--accent-practice-rgb), .28);background:rgba(var(--accent-practice-rgb), .08);color:var(--accent-oasis);cursor:pointer;padding:5px 11px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s,transform .12s}.search-hint-chip:hover{background:rgba(var(--accent-practice-rgb), .18);border-color:rgba(var(--accent-practice-rgb), .5);transform:translateY(-1px)}.search-container--compact .search-input-row{gap:8px}.search-container--compact .search-scope-switch{gap:6px}.search-container--compact .search-scope-btn{font-size:var(--fs-2xs);padding:5px 10px}.search-scope-switch{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.search-scope-btn{border:1px solid var(--border2);background:var(--bg2);color:var(--muted);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all var(--dur-fast) ease-out;padding:6px 12px}.search-scope-btn:hover{color:var(--text);border-color:var(--accent-oasis)}.search-scope-btn.active{color:var(--accent-oasis);border-color:var(--accent-oasis);background:var(--oasis-a12);box-shadow:0 0 10px var(--oasis-a18)}.search-input{background:var(--bg2);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--font-body);font-size:var(--fs-md);transition:all var(--dur-fast) ease-out;border-radius:10px;padding:14px 18px}.search-container--compact .search-input{background:var(--white-a03);min-height:44px;padding:11px 14px;font-size:14px}.search-input::placeholder{color:var(--muted)}.search-input:focus{border-color:var(--accent-oasis);background:var(--bg3);box-shadow:0 0 0 3px var(--oasis-a10);outline:none}.search-actions{justify-content:flex-start;display:flex}.search-container--compact .search-actions{flex:none}.search-submit-btn{border-radius:var(--br-pill);border:1px solid var(--accent-oasis);background:var(--oasis-a12);color:var(--accent-oasis);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;transition:all var(--dur-fast) ease-out;padding:10px 16px;font-weight:700}.search-container--compact .search-submit-btn{min-width:88px;padding:0 14px}.search-submit-btn:hover{background:var(--oasis-a20);color:var(--text);transform:translateY(-1px)}.search-submit-btn:active{transform:translateY(0)}.filter-reset-notice{background:var(--gnr-a12);border:1px solid var(--gnr-a25);border-radius:var(--br-xs);font-size:var(--fs-sm);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;margin-top:8px;padding:9px 14px}.filter-panel{flex-direction:column;gap:20px;display:flex}.filter-panel-title{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);text-transform:uppercase;letter-spacing:.08em;font-weight:700}@media (max-width:768px){.filter-panel{gap:16px}}.filter-group{flex-direction:column;gap:10px;display:flex}.filter-scope-hint{border:1px solid rgba(var(--accent-practice-rgb), .3);background:var(--oasis-a08);border-radius:var(--br-sm);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.03em;margin:0 0 10px;padding:8px 10px}.filter-group-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.artist-search-input{background:var(--bg2);border:1px solid var(--border);border-radius:var(--br-xs);color:var(--text);font-family:var(--font-body);font-size:var(--fs-sm);transition:all var(--dur-fast) ease-out;padding:8px 12px}.artist-search-input::placeholder{color:var(--muted)}.artist-search-input:focus{border-color:var(--accent-oasis);background:var(--bg3);box-shadow:0 0 8px var(--oasis-a15);outline:none}.artist-search-wrap{position:relative}.artist-search-clear{color:var(--muted);cursor:pointer;transition:color var(--dur-fast) ease-out;background:0 0;border:none;padding:4px 8px;font-size:16px;display:inline-block;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.artist-search-clear:hover{color:var(--accent-oasis)}.filter-options{flex-wrap:wrap;gap:8px;display:flex}.filter-btn{border-radius:var(--br-xl);font-size:var(--fs-sm);font-weight:600;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border2);color:var(--muted);cursor:pointer;transition:background var(--dur-fast) ease-out, color var(--dur-fast) ease-out, border-color var(--dur-fast) ease-out, transform var(--dur-fast) ease-out, box-shadow var(--dur-fast) ease-out;background:0 0;align-items:center;gap:6px;padding:6px 14px;display:inline-flex}.filter-btn:hover{background:var(--bg3);color:var(--text);border-color:var(--accent-oasis);box-shadow:0 4px 12px var(--oasis-a15);transform:translateY(-2px)}.filter-btn:active{transform:translateY(0)}.filter-btn.active{background:var(--bg3);color:var(--accent-oasis);border-color:var(--accent-oasis);box-shadow:0 0 12px var(--oasis-a20);border-width:2px;font-weight:700}.filter-btn.disabled{opacity:.5;cursor:not-allowed;background:var(--bg2);color:var(--muted);border-color:var(--border)}.filter-btn.disabled:hover{background:var(--bg2);color:var(--muted);border-color:var(--border);transform:none}.filter-checkmark{color:var(--accent-oasis);justify-content:center;align-items:center;min-width:16px;font-size:14px;font-weight:900;display:inline-flex}.filter-count{font-family:var(--font-mono);font-size:var(--fs-2xs);background:var(--oasis-a20);color:var(--accent-oasis);text-align:center;border-radius:10px;min-width:18px;padding:2px 6px;font-weight:700}.mode-clean.active{color:var(--on);border-color:var(--on)}.mode-crunch.active{color:var(--accent-oasis);border-color:var(--accent-oasis)}.mode-lead.active{color:var(--accent-gnr);border-color:var(--accent-gnr)}.mode-higain.active{color:var(--accent-metal);border-color:var(--accent-metal)}.mode-special.active{color:var(--accent-vh);border-color:var(--accent-vh)}.artist-btn-accent-gnr.active{color:var(--accent-gnr);border-color:var(--accent-gnr)}.artist-btn-accent-oasis.active{color:var(--accent-oasis);border-color:var(--accent-oasis)}.artist-btn-accent-clapton.active{color:var(--accent-clapton);border-color:var(--accent-clapton)}.artist-btn-accent-vh.active{color:var(--accent-vh);border-color:var(--accent-vh)}.artist-btn-accent-metal.active{color:var(--accent-metal);border-color:var(--accent-metal)}.genre-btn.genre-rock.active{color:var(--accent-gnr);border-color:var(--accent-gnr);background:var(--gnr-a12)}.genre-btn.genre-blues.active{color:var(--accent-oasis);border-color:var(--accent-oasis);background:var(--oasis-a12)}.genre-btn.genre-metal.active{color:var(--accent-metal);border-color:var(--accent-metal);background:#8844dd1f}.genre-btn.genre-alternative.active{color:var(--accent-edge);border-color:var(--accent-edge);background:#44d9dd1f}.genre-btn.genre-funk.active{color:var(--accent-rodgers);border-color:var(--accent-rodgers);background:#dda8441f}.genre-btn.genre-fusion.active{color:var(--accent-gilmour);border-color:var(--accent-gilmour);background:#d84aaa1f}.genre-btn.genre-country.active{color:var(--accent-atkins);border-color:var(--accent-atkins);background:#8bc34a1f}.genre-btn.genre-psychedelic-rock.active{color:var(--accent-hendrix);border-color:var(--accent-hendrix);background:#9c27b01f}.genre-btn.genre-latin-rock.active{color:var(--accent-santana);border-color:var(--accent-santana);background:#ff57221f}.genre-btn.genre-default.active{color:#7a7570;background:#7a75701f;border-color:#7a7570}.ampera-btn.ampera-classic.active{color:var(--accent-clapton);border-color:var(--accent-clapton);background:rgba(var(--accent-teach-rgb), .12)}.ampera-btn.ampera-modern.active{color:var(--accent-oasis);border-color:var(--accent-oasis);background:var(--oasis-a12)}.ampera-btn.ampera-boutique.active{color:var(--accent-gnr);border-color:var(--accent-gnr);background:var(--gnr-a12)}.ampera-btn.ampera-default.active{color:#7a7570;background:#7a75701f;border-color:#7a7570}.sh{width:100%;min-width:0;max-width:var(--page-w-read);flex-direction:column;gap:22px;margin:0 auto;padding:4px 0 32px;display:flex}.sh-head{flex-direction:column;gap:12px;display:flex}.sh-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.05}.sh-field{background:var(--bg2);border:1px solid var(--white-a12);height:52px;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:14px;align-items:center;gap:10px;padding:0 6px 0 14px;display:flex}.sh-field:focus-within{border-color:var(--oasis-a50);box-shadow:0 0 0 3px var(--oasis-a12)}.sh-field-icon{color:var(--muted);flex:none;display:flex}.sh-field-icon svg{width:18px;height:18px}.sh-input{min-width:0;height:48px;color:var(--text);font-family:var(--font-body);-webkit-appearance:none;appearance:none;background:0 0;border:none;outline:none;flex:1;font-size:16px}.sh-input:focus{box-shadow:none;outline:none}.sh-input:focus-visible{box-shadow:none;outline:none}.sh-input::placeholder{color:var(--muted);opacity:.75}.sh-input::-webkit-search-cancel-button{display:none}.sh-clear{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.sh-clear:hover{background:var(--white-a06);color:var(--text)}.sh-clear svg{width:16px;height:16px}.sh-scopes{scrollbar-width:none;gap:6px;margin:0 -2px;padding:0 2px 2px;display:flex;overflow-x:auto}.sh-scopes::-webkit-scrollbar{display:none}.sh-scope{border-radius:var(--br-pill);border:1px solid var(--border2);min-height:36px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);background:0 0;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.sh-scope:hover:not(:disabled){color:var(--text);border-color:var(--white-a12)}.sh-scope.is-active{border-color:var(--oasis-a50);background:var(--oasis-a14);color:var(--accent-oasis)}.sh-scope:disabled{opacity:.45;cursor:default}.sh-scope-count{font-size:var(--fs-2xs);opacity:.8}.sh-section{flex-direction:column;gap:10px;min-width:0;display:flex}.sh-label-row{justify-content:space-between;align-items:center;display:flex}.sh-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.sh-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:22px;font-weight:700}.sh-group-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.sh-group-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.sh-text-btn{min-height:32px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.sh-text-btn:hover{color:var(--text)}.sh-recent{margin:-4px 0 0;padding:0;list-style:none}.sh-recent-row{border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex}.sh-recent-btn{min-width:0;min-height:46px;color:var(--text);font-family:var(--font-body);font-size:var(--fs-md);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:0;display:flex}.sh-recent-btn span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sh-recent-btn svg{width:16px;height:16px;color:var(--muted);flex:none}.sh-recent-remove{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.sh-recent-remove:hover{background:var(--white-a06);color:var(--text)}.sh-recent-remove svg{width:14px;height:14px}.sh-chips{flex-wrap:wrap;gap:8px;display:flex}.sh-chip{border-radius:var(--br-pill);border:1px solid var(--white-a12);background:var(--bg2);min-height:40px;color:var(--text);font-family:var(--font-body);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);padding:0 14px;font-size:14px}.sh-chip:hover{border-color:var(--oasis-a45);background:var(--oasis-a08)}.sh-browse{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (min-width:640px){.sh-browse{grid-template-columns:repeat(3,minmax(0,1fr))}}.sh-browse-tile{box-sizing:border-box;border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);min-height:108px;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast), transform var(--dur-fast);flex-direction:column;align-items:flex-start;gap:10px;padding:14px;text-decoration:none;display:flex}.sh-browse-tile:hover{border-color:var(--white-a12);transform:translateY(-1px)}.sh-browse-icon{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sh-browse-icon svg{width:18px;height:18px}.sh-browse-text{flex-direction:column;display:flex}.sh-browse-title{font-weight:600;font-size:var(--fs-md)}.sh-browse-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.sh-tone--blue{color:var(--accent-oasis);background:var(--oasis-a12)}.sh-tone--cyan{color:var(--cyan);background:rgba(var(--cyan-rgb), .12)}.sh-tone--red{color:var(--yt-red-bright);background:rgba(var(--yt-bright-rgb), .12)}.sh-tone--gold{color:var(--accent-clapton);background:rgba(var(--accent-teach-rgb), .12)}.sh-tone--green{color:var(--on);background:rgba(var(--color-success-rgb), .12)}.sh-tone--violet{color:var(--accent-tools);background:rgba(var(--accent-tools-rgb), .14)}.sh-results{flex-direction:column;gap:22px;display:flex}.sh-list{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);margin:0;padding:0;list-style:none;overflow:hidden}.sh-row+.sh-row{border-top:1px solid var(--border)}.sh-row-link{box-sizing:border-box;min-height:60px;color:var(--text);transition:background var(--dur-fast);align-items:center;gap:12px;padding:8px 10px 8px 12px;text-decoration:none;display:flex}.sh-row-link:hover{background:var(--white-a03)}.sh-row-link:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:-2px}.sh-thumb{border-radius:10px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sh-thumb svg{width:18px;height:18px}.sh-thumb--exercise,.sh-thumb--session{color:var(--accent-oasis);background:var(--oasis-a12)}.sh-thumb--song{color:var(--yt-red-bright);background:rgba(var(--yt-bright-rgb), .12)}.sh-thumb--tone{color:var(--accent-clapton);background:rgba(var(--accent-teach-rgb), .12)}.sh-thumb--video{width:64px;color:rgba(var(--white-rgb), .85);background:linear-gradient(135deg,#3a1a1a,#1a1a1a);position:relative;overflow:hidden}.sh-thumb--video img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.sh-thumb--video svg{width:14px;height:14px;filter:drop-shadow(0 1px 2px rgba(var(--black-rgb), .6));position:relative}.sh-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sh-row-title{font-size:var(--fs-md);overflow-wrap:anywhere;font-weight:500;line-height:1.25}.sh-row-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sh-mark{color:var(--accent-oasis);background:0 0;border-radius:0;margin:0;padding:0;font-weight:600}.sh-tag{border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-oasis);background:var(--oasis-a12);flex:none;padding:3px 8px}.sh-tag--beginner{color:var(--on);background:rgba(var(--color-success-rgb), .12)}.sh-tag--intermediate{color:var(--streak);background:rgba(var(--color-warning-rgb), .12)}.sh-tag--advanced{color:var(--color-danger);background:rgba(var(--yt-bright-rgb), .12)}.sh-row-chevron{color:var(--muted);flex:none;display:flex}.sh-row-chevron svg{width:16px;height:16px}.sh-more{min-height:40px;color:var(--accent-oasis);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0 2px;font-size:14px;font-weight:600}.sh-more:hover{text-decoration:underline}.sh-chord-chips{flex-wrap:wrap;gap:8px;display:flex}.sh-chord-chip{border:1px solid var(--border2);background:var(--bg2);min-height:52px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:10px;padding:0 14px 0 8px;text-decoration:none;display:flex}.sh-chord-chip:hover{border-color:rgba(var(--cyan-rgb), .45)}.sh-chord-chip-name{width:36px;height:36px;color:var(--cyan);background:rgba(var(--cyan-rgb), .12);font-family:var(--font-head);font-size:var(--fs-xl);border-radius:10px;justify-content:center;align-items:center;font-weight:700;display:flex}.sh-chord-chip-text{flex-direction:column;display:flex}.sh-chord-chip-title{font-size:14px;font-weight:600}.sh-chord-chip-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sh-empty{border:1px dashed rgba(var(--white-rgb), .18);background:var(--bg2);border-radius:18px;flex-direction:column;align-items:flex-start;gap:12px;padding:24px 18px;display:flex}.sh-empty-icon{background:var(--white-a06);width:44px;height:44px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;display:flex}.sh-empty-icon svg{width:22px;height:22px}.sh-empty-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:700;line-height:1.1}.sh-empty-body{color:var(--muted);margin:0;font-size:14px}.sh-browse-link{border:1px solid var(--oasis-a35);background:var(--bg2);min-height:56px;color:var(--text);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;text-decoration:none;display:flex}.sh-browse-link svg{width:16px;height:16px;color:var(--accent-oasis);flex:none}.sh-browse-link-text{flex-direction:column;display:flex}.sh-browse-link-title{font-weight:600;font-size:var(--fs-md)}.sh-browse-link-hint{color:var(--muted);font-size:13px}.cl{width:100%;min-width:0;max-width:var(--page-w-read);flex-direction:column;gap:22px;margin:0 auto;padding:4px 0 32px;display:flex}.cl-head{flex-direction:column;gap:6px;display:flex}.cl-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.05}.cl-intro{color:var(--muted);max-width:52ch;margin:0;font-size:14px}.cl-filters{border-radius:var(--br-md);background:var(--bg2);border:1px solid var(--border2);grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.cl-filter{min-height:40px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:9px}.cl-filter:hover{color:var(--text)}.cl-filter.is-active{background:rgba(var(--page-accent-rgb), .14);color:var(--page-accent)}.cl-section{flex-direction:column;gap:10px;min-width:0;display:flex}.cl-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cl-section-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:22px;font-weight:700}.cl-section-hint{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.cl-section-body{color:var(--muted);margin:-4px 0 0;font-size:14px}.cl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.cl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.cl-card-item{min-width:0}.cl-card{box-sizing:border-box;border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);height:100%;color:var(--text);transition:border-color var(--dur-fast), transform var(--dur-fast);align-items:center;gap:10px;padding:12px;text-decoration:none;display:flex}.cl-card:hover{border-color:rgba(var(--page-accent-rgb), .45);transform:translateY(-1px)}.cl-card:focus-visible{outline:2px solid var(--page-accent);outline-offset:2px}.cl-card-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.cl-card-order{box-sizing:border-box;border:1px solid rgba(var(--white-rgb), .18);min-width:18px;height:18px;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);border-radius:9px;justify-content:center;align-self:flex-start;align-items:center;padding:0 4px;display:flex}.cl-card-name{font-family:var(--font-head);letter-spacing:.02em;font-size:36px;font-weight:700;line-height:1}.cl-card--barre .cl-card-name{text-transform:uppercase;letter-spacing:.04em;font-size:24px}.cl-card-sub{font-size:var(--fs-sm);color:var(--muted);line-height:1.3}.cl-card-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--page-accent)}.cl-card-shape{flex:none}.cs{display:block;overflow:visible}.cs-string{stroke-opacity:.9;stroke-linecap:round;stroke:rgba(var(--accent-you-rgb), .55)}.cs--mini .cs-string{stroke:rgba(var(--accent-you-rgb), .45)}.cs-dot{fill:var(--page-accent)}.cs-fret{stroke:rgba(var(--accent-you-rgb), .25);stroke-width:1.5px}.cs--mini .cs-fret{stroke-width:1px}.cs-nut{stroke:var(--text);stroke-width:6px;stroke-linecap:round}.cs--mini .cs-nut{stroke-width:3px}.cs-dot{stroke:var(--bg);stroke-width:1.5px}.cs--mini .cs-dot{stroke-width:1px}.cs-barre{fill:var(--page-accent);stroke:var(--bg);stroke-width:1.5px}.cs-dot-text{fill:var(--on-light);stroke:none;paint-order:stroke;font-family:var(--font-body);font-weight:700}.cs-mark,.cs-fret-label{fill:var(--muted);font-family:var(--font-mono)}.cs-note{fill:var(--text);font-family:var(--font-mono)}.cs-note.is-root{fill:var(--page-accent);font-weight:700}.cs-interval{fill:var(--muted);font-family:var(--font-mono)}.cl--detail{gap:20px}.cl-detail-nav{justify-content:space-between;align-items:center;min-height:44px;display:flex}.cl-back{min-height:44px;color:var(--text);font-size:var(--fs-md);align-items:center;gap:4px;margin-left:-8px;padding:0 8px;text-decoration:none;display:inline-flex}.cl-back svg{width:20px;height:20px}.cl-stepper{gap:4px;display:flex}.cl-step{border-radius:var(--br-md);border:1px solid var(--border2);width:44px;height:44px;color:var(--muted);justify-content:center;align-items:center;display:flex}.cl-step:hover{color:var(--text);border-color:rgba(var(--page-accent-rgb), .45)}.cl-step.is-disabled{opacity:.35}.cl-step svg{width:18px;height:18px}.cl-detail-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.cl-detail-names{flex-direction:column;gap:4px;min-width:0;display:flex}.cl-detail-title{font-family:var(--font-head);letter-spacing:.02em;color:var(--text);margin:0;font-size:64px;font-weight:700;line-height:.95}.cl-detail-full{color:var(--muted);font-size:16px}.cl-detail-order{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-align:right;flex:none;padding-bottom:6px}.cl-figure{border-radius:var(--br-xl);background:radial-gradient(circle at 50% 0%, rgba(var(--page-accent-rgb), .1), transparent 60%), var(--bg2);border:1px solid rgba(var(--page-accent-rgb), .3);flex-direction:column;align-items:center;gap:6px;margin:0;padding:18px 12px 14px;display:flex}.cl-figure .cs--large{width:100%;max-width:300px;height:auto}.cl-legend{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 14px;display:flex}.cl-legend-root{color:var(--page-accent);font-weight:700}.cl-keys{flex-wrap:wrap;gap:8px;display:flex}.cl-key{border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);min-width:64px;min-height:52px;color:var(--text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:6px 12px;display:flex}.cl-key:hover{border-color:rgba(var(--page-accent-rgb), .45)}.cl-key.is-active{border-color:rgba(var(--page-accent-rgb), .6);background:rgba(var(--page-accent-rgb), .12)}.cl-key-note{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:700;line-height:1}.cl-key.is-active .cl-key-note{color:var(--page-accent)}.cl-key-fret{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.cl-steps,.cl-songs{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none;overflow:hidden}.cl-step-row{box-sizing:border-box;align-items:center;gap:12px;min-height:52px;padding:10px 14px;display:flex}.cl-step-row+.cl-step-row,.cl-song+.cl-song{border-top:1px solid var(--border)}.cl-finger{background:var(--page-accent);border:1px solid var(--bg);width:28px;height:28px;color:var(--on-light);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.cl-finger--strum{border-color:rgba(var(--white-rgb), .25);color:var(--muted);text-shadow:none;background:0 0}.cl-song-link{box-sizing:border-box;min-height:58px;color:var(--text);align-items:center;gap:12px;padding:8px 12px;text-decoration:none;display:flex}.cl-song-link:hover{background:var(--white-a03)}.cl-song-icon{width:40px;height:40px;color:var(--yt-red-bright);background:rgba(var(--yt-bright-rgb), .12);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.cl-song-icon svg{width:18px;height:18px}.cl-song-text{flex-direction:column;flex:1;min-width:0;display:flex}.cl-song-title{font-weight:500}.cl-song-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.cl-song-chevron{width:16px;height:16px;color:var(--muted);flex:none}.cl-next{box-sizing:border-box;border-radius:var(--br-lg);background:var(--bg2);border:1px solid rgba(var(--page-accent-rgb), .35);min-height:64px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex}.cl-next>svg{width:18px;height:18px;color:var(--page-accent);flex:none}.cl-next-text{flex-direction:column;display:flex}.cl-next-name{font-family:var(--font-head);letter-spacing:.04em;font-size:24px;font-weight:700}.cl-next-full{font-family:var(--font-body);letter-spacing:0;color:var(--muted);margin-left:8px;font-size:14px;font-weight:400}.cl-missing{flex-direction:column;gap:14px;display:flex}.cl-missing-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:28px;font-weight:700}@media (min-width:900px){.cl:not(.cl--detail){max-width:var(--page-w-app)}.cl-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.gd{width:100%;min-width:0;max-width:var(--page-w-read);padding:var(--sp-1) 0 var(--sp-8);gap:var(--sp-6);flex-direction:column;margin:0 auto;display:flex}.gd-head{gap:var(--sp-2);flex-direction:column;display:flex}.gd-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.05}.gd-title--article{font-size:var(--fs-hero);line-height:var(--lh-snug);letter-spacing:.02em;text-transform:none}.gd-intro{color:var(--muted);max-width:60ch;margin:0;font-size:14px}.gd-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);margin:0}.gd-lead{margin:var(--sp-1) 0 0;font-size:var(--fs-lg);line-height:var(--lh-relaxed);color:var(--text);max-width:68ch}.gd-crumbs{margin-bottom:calc(var(--sp-2) * -1)}.gd-back{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:none}.gd-back:hover{color:var(--page-accent)}.gd-list{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.gd-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.gd-list-item{min-width:0;display:flex}.gd-card{gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);flex-direction:column;flex:1;text-decoration:none;display:flex}.gd-card:hover{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .06)}.gd-card:focus-visible{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .06)}.gd-card-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--page-accent)}.gd-card-title{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:600;line-height:var(--lh-snug);color:var(--text)}.gd-card-desc{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted)}.gd-card--compact{padding:var(--sp-3) var(--sp-4)}.gd-card--compact .gd-card-title{font-size:var(--fs-lg)}.gd-section{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.gd-h2{font-family:var(--font-head);font-size:22px;font-weight:700;line-height:var(--lh-snug);letter-spacing:.02em;color:var(--text);margin:0}.gd-p,.gd-steps,.gd-bullets{font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--text);max-width:68ch;margin:0}.gd-steps,.gd-bullets{padding-left:var(--sp-6);gap:var(--sp-2);flex-direction:column;display:flex}.gd-steps li::marker{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--page-accent)}.gd-bullets li::marker{color:var(--page-accent)}.gd-plan-wrap{border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);overflow-x:auto}.gd-plan{border-collapse:collapse;width:100%;font-size:var(--fs-base);line-height:var(--lh-base)}.gd-plan th{padding:var(--sp-2) var(--sp-3);text-align:left;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border2);font-weight:500}.gd-plan td{padding:var(--sp-3);vertical-align:top;color:var(--text);border-bottom:1px solid var(--border)}.gd-plan tr:last-child td{border-bottom:none}.gd-plan-min{width:3.5em;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--page-accent)}.gd-plan-block{white-space:nowrap;font-weight:500}.gd-plan-block a{color:var(--page-accent);text-decoration:none}.gd-plan-block a:hover{text-decoration:underline}.gd-plan-total{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);margin:0}.gd-ex-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gd-ex{align-items:center;column-gap:var(--sp-3);row-gap:var(--sp-1);min-height:56px;padding:var(--sp-3) var(--sp-4);border-radius:var(--br-md);border:1px solid rgba(var(--page-accent-rgb), .28);background:rgba(var(--page-accent-rgb), .06);color:var(--text);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title cta""sub cta";text-decoration:none;display:grid}.gd-ex:hover{border-color:var(--page-accent);background:rgba(var(--page-accent-rgb), .1)}.gd-ex:focus-visible{border-color:var(--page-accent);background:rgba(var(--page-accent-rgb), .1)}.gd-ex-title{font-weight:600;font-size:var(--fs-md);grid-area:title}.gd-ex-sub{font-size:var(--fs-sm);color:var(--muted);grid-area:sub}.gd-ex-cta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--page-accent);white-space:nowrap;grid-area:cta}@media (max-width:480px){.gd-ex{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""sub""cta"}}.gd-cta{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5);border-color:rgba(var(--page-accent-rgb), .35);background:radial-gradient(120% 90% at 0% 0%, rgba(var(--page-accent-rgb), .1), transparent 60%), var(--bg2);flex-direction:column;display:flex}.gd-cta-button{margin-top:var(--sp-2)}.gd-inline{width:100%;max-width:var(--page-w-read);margin:var(--sp-6) auto 0;gap:var(--sp-2);flex-direction:column;display:flex}.gd-inline-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0;font-weight:500}.gd-inline-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gd-inline-link{padding:var(--sp-3) var(--sp-4);border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);color:var(--text);font-size:var(--fs-md);line-height:var(--lh-base);text-decoration:none;display:block}.gd-inline-link:hover{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .06)}.gd-inline-link:focus-visible{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .06)}.gd-inline-link--card{gap:var(--sp-1);flex-direction:column;display:flex}.gd-inline-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--page-accent)}.results-info-header{background:linear-gradient(135deg, var(--oasis-a08), rgba(var(--accent-practice-rgb), .04));border:1px solid var(--oasis-a15);border-radius:var(--br-sm);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:14px 16px;display:flex}.result-count-badge{font-family:var(--font-head);font-size:var(--fs-md);color:var(--accent-oasis);letter-spacing:.04em;text-transform:uppercase;flex:1;font-weight:700}.clear-all-btn{border:1px solid var(--accent-oasis);color:var(--accent-oasis);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all var(--dur-fast) ease-out;white-space:nowrap;background:0 0;padding:8px 12px;font-weight:600}.clear-all-btn:hover{background:var(--oasis-a10);transform:translateY(-1px)}.clear-all-btn:active{transform:translateY(0)}.search-domain-section{margin-bottom:28px}.results-empty-state{border:1px dashed rgba(var(--white-rgb), .1);border-radius:var(--br-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:80px;padding:24px 16px;display:flex}.results-empty-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}.results-empty-hint{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--muted);opacity:.65}.search-domain-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.search-domain-header h2{font-family:var(--font-head);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:16px}.search-domain-header span{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.search-domain-title-row{align-items:baseline;gap:8px;display:flex}.search-domain-term{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--accent-oasis);opacity:.85}.search-domain-subtitle{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--muted);opacity:.8;margin:-6px 0 14px;line-height:1.45}.song-results-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.preset-card.song-result-card{border:1px solid rgba(var(--neon-cyan-rgb), .34);box-shadow:inset 0 0 0 1px rgba(var(--neon-pink-rgb), .16), 0 6px 20px #0206126b;background:linear-gradient(150deg,#10142aed,#0e1b2bd6 45%,#2d0c34db);border-left:4px solid #00f4ff;gap:12px;padding:18px;position:relative;overflow:hidden}.preset-card.song-result-card:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, rgba(var(--white-rgb), 0) 0, rgba(var(--white-rgb), 0) 5px, rgba(var(--neon-cyan-rgb), .05) 5px, rgba(var(--neon-cyan-rgb), .05) 6px);position:absolute;top:0;bottom:0;left:0;right:0}.preset-card.song-result-card:hover{border-color:rgba(var(--neon-pink-rgb), .68);box-shadow:0 0 16px rgba(var(--neon-cyan-rgb), .26), 0 0 26px rgba(var(--neon-pink-rgb), .24), inset 0 0 0 1px rgba(var(--neon-pink-rgb), .2);transform:translateY(-3px)}.song-card-badges{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.practice-ready-badge{border:1px solid rgba(var(--yt-bright-rgb), .35);background:rgba(var(--yt-bright-rgb), .12);color:var(--yt-red-bright);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;padding:3px 8px}.song-result-actions{flex-direction:column;gap:8px;margin-top:10px;display:flex}.song-detail-actions{background:var(--bg3);border:1px solid var(--border);border-radius:10px;gap:6px;margin-top:0;padding:10px}.song-chords-preview{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.song-chord-pill{border:1px solid var(--oasis-a35);background:var(--oasis-a12);color:var(--accent-oasis);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.03em;padding:4px 10px}.song-focus-pill{border-color:rgba(var(--yt-bright-rgb), .35);background:rgba(var(--yt-bright-rgb), .12);color:var(--yt-red-bright)}.song-preset-btn{border:1px solid var(--border2);color:var(--text);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-sm);text-align:left;cursor:pointer;transition:all var(--dur-fast) ease-out;background:0 0;padding:10px 14px;text-decoration:none;display:block}.song-preset-btn:hover{border-color:rgba(var(--neon-cyan-rgb), .45);color:#d8feff;background:rgba(var(--neon-cyan-rgb), .06)}.practice-launch-btn{border:1px solid rgba(var(--neon-cyan-rgb), 1);color:#e0faff;box-shadow:0 0 18px rgba(var(--neon-cyan-rgb), .45), inset 0 0 0 1px rgba(var(--neon-pink-rgb), .2);background:linear-gradient(145deg,#00a0c8c7,#0050a0b8);font-weight:600}.practice-launch-btn:hover{border-color:rgba(var(--neon-cyan-rgb), 1);color:var(--white);box-shadow:0 0 26px rgba(var(--neon-cyan-rgb), .55), inset 0 0 0 1px rgba(var(--neon-pink-rgb), .28);background:linear-gradient(145deg,#00bee6e0,#0064b4d1)}.song-preset-btn--nav{justify-content:space-between;align-items:center;display:flex}.song-preset-arrow{opacity:.45;transition:opacity var(--dur-fast), transform var(--dur-fast);font-size:14px}.song-preset-btn--nav:hover .song-preset-arrow{opacity:1;transform:translate(3px)}.song-practice-hero{background:linear-gradient(135deg, rgba(var(--yt-bright-rgb), .12) 0%, rgba(var(--yt-bright-rgb), .04) 100%);border:1px solid rgba(var(--yt-bright-rgb), .32);border-radius:var(--br-md);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.song-practice-hero-text{flex-direction:column;gap:4px;min-width:0;display:flex}.song-practice-hero-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--yt-red-bright);opacity:.85;font-weight:700}.song-practice-hero-desc{font-size:var(--fs-base);color:var(--muted);margin:0;line-height:1.4}.song-practice-hero-btn{background:var(--yt-red-bright);color:var(--white);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-base);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;transition:background var(--dur-fast), box-shadow var(--dur-fast), transform .1s;box-shadow:0 2px 12px rgba(var(--yt-bright-rgb), .35);border:none;flex-shrink:0;padding:11px 22px;font-weight:700}.song-practice-hero-btn:hover{background:var(--yt-red);box-shadow:0 4px 18px rgba(var(--yt-bright-rgb), .5);transform:translateY(-1px)}.song-practice-hero-btn:active{transform:translateY(0)}.song-tone-row{align-items:center;gap:12px;padding:4px 0;display:flex}.song-tone-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-shrink:0;font-weight:700}.song-tone-presets{flex-wrap:wrap;flex:1;gap:8px;display:flex}.song-tone-btn{background:var(--bg3);border:1px solid var(--border2);color:var(--text);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast);align-items:center;gap:7px;padding:8px 12px;text-decoration:none;display:inline-flex}.song-tone-btn:hover{border-color:var(--accent-oasis);color:var(--accent-oasis)}.song-tone-btn:hover .song-preset-arrow{opacity:1;transform:translate(3px)}.song-tone-icon{font-size:var(--fs-base);opacity:.7}.tone-footer__correction-link{color:var(--muted);text-underline-offset:2px;transition:color var(--dur-fast);text-decoration:underline}.tone-footer__correction-link:hover{color:var(--accent-oasis)}@media (max-width:520px){.song-practice-hero{flex-direction:column;align-items:flex-start}.song-practice-hero-btn{text-align:center;width:100%}}.sc-catalog-grid{flex-direction:column;gap:10px;display:flex}.sc-catalog-card{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;align-items:center;gap:14px;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.sc-catalog-card:hover{border-color:rgba(var(--yt-rgb), .28);background:rgba(var(--yt-rgb), .03)}.sc-catalog-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;display:block}.sc-catalog-meta{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.sc-catalog-title{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sc-catalog-pills{flex-wrap:wrap;gap:6px;display:flex}.sc-catalog-btn{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;border:1px solid rgba(var(--yt-rgb), .38);background:linear-gradient(135deg, rgba(var(--yt-rgb), .12), rgba(var(--yt-rgb), .07));color:var(--yt-red-bright);cursor:pointer;white-space:nowrap;border-radius:8px;flex-shrink:0;padding:7px 13px;font-weight:700;transition:background .15s,border-color .15s,transform .12s}.sc-catalog-btn:hover{background:rgba(var(--yt-rgb), .18);border-color:rgba(var(--yt-rgb), .55);transform:translateY(-1px)}@media (max-width:520px){.sc-catalog-card{gap:10px;padding:8px 10px}.sc-catalog-thumb{width:80px;height:45px}.sc-catalog-btn{font-size:var(--fs-2xs);padding:6px 10px}}.active-filters{background:rgba(var(--accent-practice-rgb), .05);border:1px solid var(--oasis-a15);border-radius:var(--br-sm);margin-bottom:20px;padding:12px 16px;animation:.3s ease-out slideUp}.active-filters-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-pill{background:var(--bg3);border:1px solid var(--accent-oasis);border-radius:var(--br-lg);align-items:center;gap:6px;padding:6px 12px;animation:.3s ease-out slideUp;display:inline-flex}.filter-pill-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.filter-pill-close{color:var(--accent-oasis);cursor:pointer;transition:all var(--dur-fast) ease-out;background:0 0;border:none;justify-content:center;align-items:center;width:20px;height:20px;margin:0;padding:0;font-size:16px;font-weight:700;display:flex}.filter-pill-close:hover{color:var(--page-accent);transform:scale(1.2)}.filter-pill-close:active{transform:scale(.95)}mark{background:rgba(var(--page-accent-rgb), .3);color:var(--page-accent);transition:all var(--dur-fast) ease-out;border-radius:3px;padding:2px 4px;font-weight:600}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.chords-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;display:grid}.chord-diagram-wrapper{text-align:center;background:linear-gradient(160deg,#1a2130db,#121824f2);border:1px solid #94a3b838;border-radius:14px;flex-direction:column;align-items:center;gap:.65rem;padding:1.1rem 1.1rem 1rem;transition:transform .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out;animation:.4s ease-out forwards slideUp;display:flex}.chord-diagram-wrapper:hover{border-color:#74acff73;transform:translateY(-3px);box-shadow:0 10px 26px #04081073}.chord-diagram-title{color:var(--text);letter-spacing:.02em;margin:0;font-size:1.45rem;font-weight:700}.chord-accent-default{--chord-accent:var(--accent-oasis);--chord-accent-rgb:74, 158, 255}.chord-accent-c{--chord-accent:#1aa86b;--chord-accent-rgb:26, 168, 107}.chord-accent-csharp{--chord-accent:#2081b8;--chord-accent-rgb:32, 129, 184}.chord-accent-d{--chord-accent:#3498db;--chord-accent-rgb:52, 152, 219}.chord-accent-dsharp{--chord-accent:#5d7fa8;--chord-accent-rgb:93, 127, 168}.chord-accent-e{--chord-accent:var(--accent-gnr);--chord-accent-rgb:232, 81, 42}.chord-accent-f{--chord-accent:#d84b2d;--chord-accent-rgb:216, 75, 45}.chord-accent-fsharp,.chord-accent-g{--chord-accent:#e67e22;--chord-accent-rgb:230, 126, 34}.chord-accent-gsharp{--chord-accent:#eca829;--chord-accent-rgb:236, 168, 41}.chord-accent-a{--chord-accent:#f1c40f;--chord-accent-rgb:241, 196, 15}.chord-accent-asharp{--chord-accent:#c9b51b;--chord-accent-rgb:201, 181, 27}.chord-accent-b{--chord-accent:var(--on);--chord-accent-rgb:61, 220, 132}.chord-quality-major{--chord-accent-lightness:100%;--chord-accent-saturation:100%}.chord-quality-minor,.chord-quality-min7{filter:brightness(.82)saturate(.88)}.chord-quality-dominant{filter:brightness(1.08)}.chord-quality-diminished{filter:brightness(.58)saturate(.7)}.chord-quality-half-dim{filter:brightness(.65)saturate(.75)}.chord-quality-augmented{filter:brightness(1.12)saturate(1.1)}.chord-quality-maj7{filter:brightness(1.05)}.chord-quality-sus{filter:brightness(.88)}.chord-quality-sixth{filter:brightness(1.02)}.chord-quality-dominant:after{content:" ◆";opacity:.7;margin-left:2px;font-size:.75em}.chord-quality-half-dim:after{content:" ◦";opacity:.7;margin-left:2px;font-size:.75em}.chord-quality-diminished:after{content:" °";opacity:.7;margin-left:2px;font-size:.75em}.chord-quality-augmented:after{content:" ↗";opacity:.7;margin-left:2px;font-size:.75em}.chord-quality-sus:after{content:" ◊";opacity:.7;margin-left:2px;font-size:.75em}.chord-quality-maj7:after{content:" △";opacity:.7;margin-left:2px;font-size:.75em}.chord-diagram-title[class*=chord-accent-],.practice-current-chord-name[class*=chord-accent-],.practice-next-value[class*=chord-accent-],.practice-chord-fallback h3[class*=chord-accent-],.chord-symbol[class*=chord-accent-],.manuscript-measure[class*=chord-accent-]{color:var(--chord-accent)}.learning-pill[class*=chord-accent-],.song-chord-pill[class*=chord-accent-],.chord-pill[class*=chord-accent-]{color:var(--chord-accent);border-color:rgba(var(--chord-accent-rgb), .35);background:rgba(var(--chord-accent-rgb), .12)}.chord-pill[class*=chord-accent-]:hover{border-color:var(--chord-accent);box-shadow:0 2px 8px rgba(var(--chord-accent-rgb), .18)}.chord-root-string{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:#a8b6cc;margin:-1px 0 4px}.chord-diagram-svg{border:1px solid var(--white-a12);border-radius:var(--br-sm);box-shadow:inset 0 1px 0 var(--white-a05), 0 4px 12px rgba(var(--black-rgb), .4);background:linear-gradient(#363c48 0%,#262b34 100%)}.chord-string-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;width:100%;margin-top:3px;display:grid}.chord-string-legend-item{color:#d7e1ee;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.03em;justify-content:center;align-items:center;gap:5px;display:inline-flex}.chord-string-dot{border-radius:var(--br-pill);width:8px;height:8px;box-shadow:0 0 0 1px rgba(var(--white-rgb), .25)}.chord-string-short{font-weight:700}.chord-string-long{color:#9aa7bd}.chord-type{border-radius:var(--br-pill);color:#d7e2f3;letter-spacing:.04em;text-transform:uppercase;background:#637b9e38;border:1px solid #94a3b84d;margin:.4rem 0 0;padding:5px 10px;font-size:.75rem;font-weight:600}.chord-songs-link{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-oasis);background:var(--oasis-a08);border:1px solid rgba(var(--accent-practice-rgb), .25);border-radius:var(--br-pill);cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;margin-top:8px;padding:4px 12px;font-weight:600}.chord-songs-link:hover{background:rgba(var(--accent-practice-rgb), .16);border-color:var(--accent-oasis);color:#cfe2ff;outline:none}.chord-songs-link:focus-visible{background:rgba(var(--accent-practice-rgb), .16);border-color:var(--accent-oasis);color:#cfe2ff;outline:none}.chord-subsection-title{font-family:var(--font-head);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;margin:8px 0 12px}.barre-section{border-top:1px solid var(--border2);margin-top:20px;padding-top:14px}.barre-subsection+.barre-subsection{margin-top:18px}.barre-root-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);margin:0 0 10px}.muted-indicator,.finger-number,.string-label{font-family:var(--font-mono)}.string-label{letter-spacing:.02em;font-weight:700}.chord-diagram-wrapper:first-child{animation-delay:50ms}.chord-diagram-wrapper:nth-child(2){animation-delay:.1s}.chord-diagram-wrapper:nth-child(3){animation-delay:var(--dur-fast)}.chord-diagram-wrapper:nth-child(4){animation-delay:.2s}.chord-diagram-wrapper:nth-child(5){animation-delay:.25s}.chord-diagram-wrapper:nth-child(6){animation-delay:.3s}.chord-diagram-wrapper:nth-child(7){animation-delay:var(--dur-slow)}.preset-card{background:var(--bg2);border:1px solid var(--border);cursor:pointer;text-align:left;font-family:var(--font-body);font-size:var(--fs-md);color:var(--text);border-radius:10px;flex-direction:column;gap:12px;padding:18px;font-weight:400;transition:all .2s ease-out;animation:.4s ease-out forwards slideUp;display:flex}.preset-card:first-child{animation-delay:50ms}.preset-card:nth-child(2){animation-delay:.1s}.preset-card:nth-child(3){animation-delay:var(--dur-fast)}.preset-card:nth-child(4){animation-delay:.2s}.preset-card:nth-child(5){animation-delay:.25s}.preset-card:nth-child(6){animation-delay:.3s}.preset-card:nth-child(7){animation-delay:var(--dur-slow)}.preset-card:nth-child(n+8){animation-delay:.4s}.preset-card:hover{border-color:var(--accent-oasis);background:var(--bg3);box-shadow:0 8px 24px var(--oasis-a15);transform:translateY(-4px)}.preset-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.preset-card-title{flex:1}.preset-card-title h3{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.05em;color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;margin:0 0 4px;font-size:14px;font-weight:700;line-height:1.3;display:flex;overflow:hidden}.preset-card-artist{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preset-card-badge{background:var(--bg3);border:1px solid var(--border2);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text);text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:4px 8px}.preset-card-meta{flex-wrap:wrap;gap:8px;display:flex}.preset-card-meta-item{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted)}.preset-card-meta-item strong{color:var(--text)}.preset-card-description{font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--border);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;max-height:2.8em;padding-top:10px;display:-webkit-box;overflow:hidden}.preset-view-expanded{flex-direction:column;gap:24px;width:100%;animation:.2s ease-out fadeIn;display:flex}.preset-controls{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 0;animation:.3s ease-out slideInLeft;display:flex}.preset-counter{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 12px;font-weight:600}.preset-nav-buttons{gap:8px;margin-left:auto;display:flex}.nav-arrow-btn{border-radius:var(--br-sm);border:1px solid var(--border2);background:var(--bg2);width:40px;height:40px;color:var(--muted);cursor:pointer;transition:all var(--dur-fast) ease-out;font-size:16px;font-weight:700;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex}.nav-arrow-btn:hover:not(:disabled){background:var(--bg3);color:var(--accent-oasis);border-color:var(--accent-oasis);transform:translateY(-2px)}.nav-arrow-btn:active:not(:disabled){transform:translateY(0)}.nav-arrow-btn:disabled{opacity:.3;cursor:not-allowed}.preset-detail h2{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin:0 0 16px;font-size:24px;font-weight:900}.detail-section{flex-direction:column;gap:10px;display:flex}.detail-section.full-width{grid-column:1/-1}.detail-section h3{font-family:var(--font-head);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-weight:700}.preset-detail{flex-direction:column;gap:18px;width:100%;max-width:1200px;margin:0 auto;animation:.3s ease-out fadeIn;display:flex}.preset-header-section{align-items:flex-start;gap:20px;margin-bottom:12px;display:flex}.preset-number{font-family:var(--font-mono);min-width:60px;color:var(--accent-gnr);font-size:40px;font-weight:500;line-height:1}.preset-title-block h1{font-family:var(--font-head);font-size:var(--fs-hero);text-transform:uppercase;letter-spacing:.04em;color:var(--accent-gnr);align-items:center;gap:8px;margin:0 0 4px;font-weight:900;line-height:1.2;display:flex}.preset-subtitle{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.section-header{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;font-weight:700}.disclaimer-note{font-size:var(--fs-xs);color:var(--muted);margin-top:8px;line-height:1.55}.empty-state h3{font-family:var(--font-head);font-size:var(--fs-lg);text-transform:uppercase;margin-bottom:8px;font-weight:700}.empty-state p{font-family:var(--font-mono);font-size:var(--fs-sm)}.chords-section{flex-direction:column;gap:24px;display:flex}.chord-info-header{background:var(--bg3);border-radius:var(--br-sm);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.chord-info-item{flex-direction:column;gap:6px;display:flex}.chord-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;color:var(--muted);letter-spacing:.08em;font-weight:700}.chord-value{font-family:var(--font-body);font-size:var(--fs-lg);color:var(--text);font-weight:700}.chord-progression{flex-direction:column;gap:12px;display:flex}.chord-progression .section-header{margin-bottom:4px}.chords-list{flex-wrap:wrap;gap:8px;display:flex}.chord-pill{background:var(--bg3);border:1px solid var(--border);color:var(--accent-gnr);font-family:var(--font-mono);letter-spacing:.05em;border-radius:22px;padding:9px 16px;font-size:14px;font-weight:700;transition:all .2s}.chord-pill[class*=chord-accent-]{color:var(--chord-accent);border-color:rgba(var(--chord-accent-rgb), .4);background:rgba(var(--chord-accent-rgb), .1)}.chord-pill:hover{background:var(--bg);border-color:var(--accent-gnr);box-shadow:0 2px 8px rgba(var(--accent-gnr-rgb), .15)}.chord-pill[class*=chord-accent-]:hover{background:rgba(var(--chord-accent-rgb), .18);border-color:var(--chord-accent);box-shadow:0 2px 10px rgba(var(--chord-accent-rgb), .22)}.guitar-tab-section{flex-direction:column;gap:12px;display:flex}.guitar-tab-section .section-header{margin-bottom:4px}.guitar-tab{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--accent-gnr);border-radius:var(--br-xs);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);margin:0;padding:16px;line-height:1.8;overflow-x:auto}@media (max-width:480px){.guitar-tab{font-size:var(--fs-xs);padding:12px}}.strumming-pattern-section{background:var(--bg3);border-radius:var(--br-sm);border:1px solid var(--border);flex-direction:column;gap:12px;padding:16px;display:flex}.strumming-pattern-section .section-header{margin-bottom:4px}.strumming-info{grid-template-columns:1fr 1fr;gap:16px;display:grid}.strumming-item{flex-direction:column;gap:6px;display:flex}.pattern-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-weight:600}.pattern-value{font-family:var(--font-mono);color:var(--accent-gnr);font-size:14px;font-weight:700}.strumming-description{font-family:var(--font-body);font-size:var(--fs-base);color:var(--text);margin:0;line-height:1.6}.song-sections{flex-direction:column;gap:12px;display:flex}.song-sections .section-header{margin-bottom:4px}@media (max-width:768px){.strumming-info{grid-template-columns:1fr}}.lead-sheet-visual{flex-direction:column;gap:20px;display:flex}.lead-sheet-title-header{font-family:var(--font-head);font-size:var(--fs-lg);text-transform:uppercase;color:var(--accent-gnr);letter-spacing:.1em;text-align:center;border-bottom:2px solid var(--border2);padding-bottom:12px;font-weight:700}.lead-sheet-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.chart-disclaimer-badge{border:1px solid rgba(var(--accent-gnr-rgb), .42);background:rgba(var(--accent-gnr-rgb), .13);color:var(--accent-gnr);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;padding:4px 10px}.lead-sheet-source-meta{border-top:1px dashed var(--white-a12);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:12px;display:flex}.lead-sheet-source-meta span{align-items:center;gap:4px;display:inline-flex}.lead-sheet-source-meta strong{color:var(--text);font-weight:600}.manuscript-sheet{background:linear-gradient(180deg, var(--white-a05), rgba(var(--white-rgb), .015)), repeating-linear-gradient(to bottom, transparent 0, transparent 16px, var(--white-a02) 16px, var(--white-a02) 17px);box-shadow:inset 0 0 0 1px var(--white-a06), 0 8px 24px rgba(var(--black-rgb), .18);border:1px solid #e2e6ee3d;border-radius:10px;padding:22px 24px 18px 16px;position:relative;overflow:visible}.manuscript-sheet:before{content:"";pointer-events:none;background:radial-gradient(circle at 18% 6%, var(--white-a08), transparent 44%);position:absolute;top:0;bottom:0;left:0;right:0}.manuscript-title{font-family:var(--font-head);text-align:center;color:#eef0f5eb;text-shadow:0 1px 0 rgba(var(--black-rgb), .25);margin-bottom:16px;font-size:38px;line-height:1}.manuscript-title-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:16px;display:flex}.manuscript-title-wrap .manuscript-title{margin-bottom:0}.manuscript-row{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.manuscript-row.manuscript-row--continuation{margin-top:-8px}.manuscript-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:6px 0 0 4px;font-size:10px;font-weight:700;line-height:1.2}.manuscript-staff{background-image:repeating-linear-gradient(#0000 0 10px,#e4e8ef70 10px 11px,#0000 11px 20px);border-left:2px solid #e1e5eea8;border-right:2px solid #e1e5eea8;min-height:60px;padding:3px 0;position:relative}.manuscript-staff.has-repeat-start{border-left-color:#0000}.manuscript-staff.has-repeat-end{border-right-color:#0000}.manuscript-line-content{grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;width:100%;min-width:0;min-height:54px;display:grid;position:relative}.manuscript-line-content.has-repeat-count{grid-template-columns:30px minmax(0,1fr) 56px}.manuscript-repeat-slot{justify-content:center;align-items:center;min-width:0;display:flex}.manuscript-repeat-slot.start{justify-content:flex-end;padding-right:2px}.manuscript-repeat-slot.end{justify-content:flex-start;padding-left:2px}.manuscript-measures{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));align-items:center;min-width:0;min-height:54px;display:grid}.manuscript-measure{white-space:nowrap;min-width:0;font-family:Segoe Print,Bradley Hand,cursive;font-size:clamp(14px, calc(34px - var(--cols,4) * 2px), 30px);color:#eceff4e6;text-shadow:0 1px 0 rgba(var(--black-rgb), .22);border-right:1px solid #e4e8efbd;justify-content:center;align-items:center;padding:0 6px;line-height:1;display:flex;overflow:hidden}.manuscript-measure.compound{font-size:clamp(11px, calc(26px - var(--cols,4) * 2px), 20px);padding:0 3px}.manuscript-compound-group{align-items:center;gap:.35em;display:inline-flex}.manuscript-compound-token[class*=chord-accent-]{color:var(--chord-accent)}.manuscript-measure:last-child{border-right:0}.manuscript-measure.slash{font-size:clamp(20px, calc(44px - var(--cols,4) * 2px), 40px);letter-spacing:.04em}.manuscript-row:nth-of-type(odd) .manuscript-measure{transform:rotate(-.8deg)}.manuscript-row:nth-of-type(2n) .manuscript-measure{transform:rotate(.55deg)}.manuscript-repeat-inline{color:#edf0f5e6;text-shadow:0 1px 0 rgba(var(--black-rgb), .22);justify-content:center;align-items:center;font-family:Segoe Print,Bradley Hand,cursive;font-size:25px;line-height:1;display:inline-flex;position:relative}.manuscript-repeat-inline.end{white-space:nowrap}.manuscript-repeat-inline.end.repeat-count{font-size:var(--fs-xl);gap:6px}.manuscript-repeat-inline.end.repeat-count .repeat-end-main{white-space:nowrap}.manuscript-repeat-inline.end.repeat-count .repeat-multiplier{white-space:nowrap;font-size:.9em}.manuscript-note{text-align:right;color:#edf0f5c7;max-width:100%;text-shadow:0 1px 0 rgba(var(--black-rgb), .22);letter-spacing:.01em;margin:4px 8px 0 auto;font-family:Segoe Print,Bradley Hand,cursive;font-size:14px;font-style:italic;line-height:1.2}.staff-system{gap:8px;margin-bottom:16px;display:flex}.staff-section-label{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;color:var(--muted);letter-spacing:.05em;writing-mode:vertical-lr;text-orientation:mixed;justify-content:center;align-items:center;min-width:40px;padding:0 8px;font-weight:700;display:flex}.staff-lines-container{flex:1;min-height:120px;position:relative}.staff-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.staff-line{stroke:var(--border2);stroke-width:1px}.measures-row{justify-content:space-around;align-items:flex-start;height:100%;padding:12px 20px;display:flex;position:relative}.measure-cell{flex-direction:column;flex:1;align-items:center;max-width:120px;display:flex;position:relative}.chord-symbol{font-family:var(--font-head);color:var(--accent-gnr);text-transform:uppercase;letter-spacing:.05em;min-height:20px;margin-bottom:20px;font-size:14px;font-weight:700}.measure-number{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);margin-top:8px;font-weight:600}.measure-content{color:var(--text);text-align:center;font-size:16px;font-family:var(--font-body);margin-top:2px}.staff-bar-range{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);text-align:right;letter-spacing:.05em;padding-right:8px}.legend-notation{border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);justify-content:center;gap:20px;margin-top:12px;padding-top:12px;display:flex}@media (max-width:768px){.lead-sheet-visual{gap:12px;padding:16px}.measures-row{padding:8px 12px}.chord-symbol{font-size:var(--fs-sm);margin-bottom:16px}.measure-content{font-size:14px}.legend-notation{font-size:var(--fs-2xs);flex-wrap:wrap;gap:12px}.manuscript-row{gap:3px;margin-bottom:12px}.manuscript-row.manuscript-row--continuation{margin-top:-6px}.manuscript-sheet{padding:18px 12px 14px}.manuscript-title{margin-bottom:10px;font-size:29px}.manuscript-label{margin:4px 0 0 2px}.manuscript-staff{min-height:48px}.manuscript-measures{min-height:42px}.manuscript-line-content{grid-template-columns:22px minmax(0,1fr) 22px;min-height:42px}.manuscript-line-content.has-repeat-count{grid-template-columns:22px minmax(0,1fr) 44px}.manuscript-measure{font-size:clamp(13px, calc(31px - var(--cols,4) * 2.4px), 24px);padding:0 3px}.manuscript-row:nth-of-type(odd) .manuscript-measure,.manuscript-row:nth-of-type(2n) .manuscript-measure{transform:none}.manuscript-measure.compound{font-size:clamp(11px, calc(27px - var(--cols,4) * 2.4px), 19px);padding:0 2px}.manuscript-measure.slash{font-size:clamp(18px, calc(40px - var(--cols,4) * 2.4px), 30px)}.manuscript-repeat-inline{font-size:21px}.manuscript-repeat-inline.end.repeat-count{gap:4px;font-size:16px}.manuscript-note{margin-right:4px;font-size:12px}}.genre-btn,.ampera-btn,.effect-btn{border:2px solid var(--border);color:var(--text);border-radius:var(--br-xs);font-size:var(--fs-sm);cursor:pointer;font-family:var(--font-mono);background:0 0;padding:8px 14px;font-weight:600;transition:all .2s}.genre-btn:hover,.ampera-btn:hover,.effect-btn:hover{border-color:var(--text);transform:translateY(-2px)}.genre-btn.active,.ampera-btn.active,.effect-btn.active{background:var(--white-a08);transform:scale(1.05)}.effect-btn{width:auto;min-width:auto}@media print{*{margin:0;padding:0}body{background:#fff}}.song-warmup-strip{background:var(--bg3);border:1px solid rgba(var(--color-success-rgb), .22);border-radius:14px;margin:28px 0 0;padding:18px 22px}.song-warmup-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--on);margin:0 0 12px;font-weight:700}.song-warmup-exercises{flex-wrap:wrap;gap:8px;display:flex}.song-warmup-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;border-radius:var(--br-sm);border:1px solid rgba(var(--color-success-rgb), .3);background:rgba(var(--color-success-rgb), .08);color:var(--on);cursor:pointer;padding:8px 14px;font-weight:600;transition:background .16s,border-color .16s,transform .14s}.song-warmup-btn:hover{background:rgba(var(--color-success-rgb), .18);border-color:rgba(var(--color-success-rgb), .5);transform:translateY(-1px)}.tone-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;width:100%;display:grid}@media (max-width:600px){.tone-grid{grid-template-columns:1fr;gap:12px}}.tone-card{--card-accent:var(--accent-oasis);--card-accent-soft:var(--oasis-a18);background:var(--bg2);border:1px solid var(--border);cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--text);border-radius:14px;flex-direction:column;gap:14px;padding:18px 18px 16px;font-size:14px;font-weight:400;transition:transform .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out,background .18s ease-out;animation:.42s ease-out both toneCardIn;display:flex;position:relative;overflow:hidden}.tone-card:before{content:"";background:var(--card-accent);border-radius:14px 0 0 14px;width:4px;position:absolute;top:0;bottom:0;left:0;right:auto}.tone-card:hover{border-color:var(--card-accent);background:var(--bg3);box-shadow:0 12px 28px var(--black-a35), 0 0 0 1px var(--card-accent-soft) inset;outline:none;transform:translateY(-3px)}.tone-card:focus-visible{border-color:var(--card-accent);background:var(--bg3);box-shadow:0 12px 28px var(--black-a35), 0 0 0 1px var(--card-accent-soft) inset;outline:none;transform:translateY(-3px)}.tone-card:focus-visible{box-shadow:0 0 0 2px var(--card-accent), 0 12px 28px var(--black-a35)}@keyframes toneCardIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tone-card--gnr{--card-accent:var(--accent-gnr);--card-accent-soft:rgba(var(--accent-gnr-rgb), .18)}.tone-card--oasis{--card-accent:var(--accent-oasis);--card-accent-soft:var(--oasis-a18)}.tone-card--clapton{--card-accent:var(--accent-clapton);--card-accent-soft:rgba(var(--accent-teach-rgb), .18)}.tone-card--vh{--card-accent:var(--accent-vh);--card-accent-soft:#cc33332e}.tone-card--metal{--card-accent:var(--accent-metal);--card-accent-soft:#8844dd2e}.tone-card--mayer{--card-accent:var(--accent-mayer);--card-accent-soft:#6dd3ce2e}.tone-card--edge{--card-accent:var(--accent-edge);--card-accent-soft:#ff6b9d2e}.tone-card--srv{--card-accent:var(--accent-srv);--card-accent-soft:#d4a5742e}.tone-card--gilmour{--card-accent:var(--accent-gilmour);--card-accent-soft:#9c88ff2e}.tone-card--clark-jr{--card-accent:var(--accent-clark-jr);--card-accent-soft:#00b8942e}.tone-card--rodgers{--card-accent:var(--accent-rodgers);--card-accent-soft:#fd79a82e}.tone-card--wylde{--card-accent:var(--accent-wylde);--card-accent-soft:#ffd93d2e}.tone-card--satriani{--card-accent:var(--accent-satriani);--card-accent-soft:#74b9ff2e}.tone-card--hendrix{--card-accent:var(--accent-hendrix);--card-accent-soft:#fdcb6e2e}.tone-card--knopfler{--card-accent:var(--accent-knopfler);--card-accent-soft:#b2bec32e}.tone-card--bb-king{--card-accent:var(--accent-bb-king);--card-accent-soft:#e170552e}.tone-card--santana{--card-accent:var(--accent-santana);--card-accent-soft:#ff76752e}.tone-card--beck{--card-accent:var(--accent-beck);--card-accent-soft:#a29bfe2e}.tone-card--atkins{--card-accent:var(--accent-atkins);--card-accent-soft:#dfe6e92e}.tone-card--buddy-guy{--card-accent:var(--accent-buddy-guy);--card-accent-soft:#00cec92e}.tone-card--albert-king{--card-accent:var(--accent-albert-king);--card-accent-soft:#6c5ce72e}.tone-card__top{grid-template-columns:44px 1fr auto;align-items:flex-start;gap:12px;display:grid}.tone-card__monogram{background:linear-gradient(135deg, var(--card-accent-soft), rgba(var(--black-rgb), .4));border:1px solid var(--card-accent);width:44px;height:44px;color:var(--text);font-family:var(--font-head);letter-spacing:.02em;text-transform:uppercase;border-radius:10px;place-items:center;font-size:16px;font-weight:700;display:grid}.tone-card__heading{min-width:0}.tone-card__artist{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--card-accent);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;margin:0 0 4px;display:flex;overflow:hidden}.tone-card__star{color:var(--streak);font-size:var(--fs-sm);line-height:1}.tone-card__name{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 2px;font-size:17px;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.tone-card__song{font-size:var(--fs-sm);color:var(--muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0;font-style:italic;line-height:1.3;display:-webkit-box;overflow:hidden}.tone-card__mode{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text);background:var(--bg);white-space:nowrap;border-radius:4px;align-self:flex-start;padding:4px 8px}.tone-card__mode--clean{color:var(--on);border-color:rgba(var(--color-success-rgb), .4);background:rgba(var(--color-success-rgb), .08)}.tone-card__mode--crunch{color:var(--accent-oasis);border-color:rgba(var(--accent-practice-rgb), .4);background:var(--oasis-a08)}.tone-card__mode--lead{color:var(--accent-gnr);border-color:rgba(var(--accent-gnr-rgb), .4);background:rgba(var(--accent-gnr-rgb), .08)}.tone-card__mode--hi-gain{color:var(--accent-metal);background:#8844dd14;border-color:#84d6}.tone-card__mode--special{color:var(--accent-vh);background:#cc333314;border-color:#c336}.tone-card__knobs{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:14px;padding:10px 0;display:flex}.tone-card__meta{flex-wrap:wrap;gap:6px;display:flex}.tone-card__chip{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:3px 8px}.tone-card__chip--ghost{color:var(--muted);background:0 0}.tone-card__tags{flex-wrap:wrap;gap:6px;display:flex}.tone-card__tag{font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--br-pill);background:var(--card-accent-soft);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;max-width:100%;padding:2px 8px;overflow:hidden}.tone-card__tag--more{border-color:var(--border2);color:var(--muted);background:0 0}.tone-knob{flex-direction:column;align-items:center;gap:4px;min-width:72px;display:flex}@media (max-width:420px){.tone-knob{min-width:60px}.tone-knob__label{font-size:var(--fs-2xs)}.tone-knob__value{font-size:var(--fs-xs);min-width:44px}}.tone-knob__svg{filter:drop-shadow(0 4px 10px rgba(var(--black-rgb), .5));display:block}.tone-knob__label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}.tone-knob__value{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);background:var(--bg);border:1px solid var(--border);letter-spacing:.02em;text-align:center;border-radius:4px;min-width:56px;padding:2px 8px;font-weight:500}.tone-knob-mini{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.tone-knob-mini__label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.tone-detail{--hero-accent:var(--accent-oasis);--hero-accent-soft:rgba(var(--accent-practice-rgb), .16);flex-direction:column;gap:24px;display:flex}.tone-detail--gnr{--hero-accent:var(--accent-gnr);--hero-accent-soft:rgba(var(--accent-gnr-rgb), .16)}.tone-detail--oasis{--hero-accent:var(--accent-oasis);--hero-accent-soft:rgba(var(--accent-practice-rgb), .16)}.tone-detail--clapton{--hero-accent:var(--accent-clapton);--hero-accent-soft:rgba(var(--accent-teach-rgb), .16)}.tone-detail--vh{--hero-accent:var(--accent-vh);--hero-accent-soft:#cc333329}.tone-detail--metal{--hero-accent:var(--accent-metal);--hero-accent-soft:#8844dd29}.tone-detail--mayer{--hero-accent:var(--accent-mayer);--hero-accent-soft:#6dd3ce29}.tone-detail--edge{--hero-accent:var(--accent-edge);--hero-accent-soft:#ff6b9d29}.tone-detail--srv{--hero-accent:var(--accent-srv);--hero-accent-soft:#d4a57429}.tone-detail--gilmour{--hero-accent:var(--accent-gilmour);--hero-accent-soft:#9c88ff29}.tone-detail--clark-jr{--hero-accent:var(--accent-clark-jr);--hero-accent-soft:#00b89429}.tone-detail--rodgers{--hero-accent:var(--accent-rodgers);--hero-accent-soft:#fd79a829}.tone-detail--wylde{--hero-accent:var(--accent-wylde);--hero-accent-soft:#ffd93d29}.tone-detail--satriani{--hero-accent:var(--accent-satriani);--hero-accent-soft:#74b9ff29}.tone-detail--hendrix{--hero-accent:var(--accent-hendrix);--hero-accent-soft:#fdcb6e29}.tone-detail--knopfler{--hero-accent:var(--accent-knopfler);--hero-accent-soft:#b2bec329}.tone-detail--bb-king{--hero-accent:var(--accent-bb-king);--hero-accent-soft:#e1705529}.tone-detail--santana{--hero-accent:var(--accent-santana);--hero-accent-soft:#ff767529}.tone-detail--beck{--hero-accent:var(--accent-beck);--hero-accent-soft:#a29bfe29}.tone-detail--atkins{--hero-accent:var(--accent-atkins);--hero-accent-soft:#dfe6e929}.tone-detail--buddy-guy{--hero-accent:var(--accent-buddy-guy);--hero-accent-soft:#00cec929}.tone-detail--albert-king{--hero-accent:var(--accent-albert-king);--hero-accent-soft:#6c5ce729}.tone-detail__hero{border-radius:var(--br-lg);background:radial-gradient(circle at 100% 0%, var(--hero-accent-soft), transparent 50%), radial-gradient(circle at 0% 100%, rgba(var(--black-rgb), .45), transparent 60%), var(--bg2);border:1px solid var(--border2);border-left:4px solid var(--hero-accent);position:relative;overflow:hidden}.tone-detail__hero-inner{padding:28px 32px}.tone-detail__kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.tone-detail__mode-pill{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;border:1px solid var(--border2);color:var(--text);background:var(--bg);border-radius:4px;padding:4px 10px}.tone-detail__mode-pill--clean{color:var(--on);border-color:rgba(var(--color-success-rgb), .5);background:rgba(var(--color-success-rgb), .1)}.tone-detail__mode-pill--crunch{color:var(--accent-oasis);border-color:rgba(var(--accent-practice-rgb), .5);background:var(--oasis-a10)}.tone-detail__mode-pill--lead{color:var(--accent-gnr);border-color:rgba(var(--accent-gnr-rgb), .5);background:rgba(var(--accent-gnr-rgb), .1)}.tone-detail__mode-pill--hi-gain{color:var(--accent-metal);background:#8844dd1a;border-color:#8844dd80}.tone-detail__mode-pill--special{color:var(--accent-vh);background:#cc33331a;border-color:#cc333380}.tone-detail__kicker-sep{color:var(--border2)}.tone-detail__kicker-text{color:var(--muted)}.tone-detail__kicker-original{color:var(--accent-clapton)}.tone-detail__title{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0 0 4px;font-size:clamp(28px,4.5vw,42px);font-weight:900;line-height:1.05}.tone-detail__song{font-family:var(--font-head);color:var(--muted);margin:0 0 12px;font-size:clamp(16px,2vw,20px);font-style:italic;font-weight:400;line-height:1.3}.tone-detail__inspired{font-size:var(--fs-base);color:var(--muted);margin:0}.tone-detail__inspired strong{color:var(--hero-accent);font-weight:600}.tone-detail__panel{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;display:grid}@media (max-width:900px){.tone-detail__panel{grid-template-columns:1fr}}.tone-panel{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px 22px}.tone-panel__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:10px;display:flex}.tone-panel__title{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:0;font-size:14px;font-weight:700}.tone-panel__hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.tone-knobs{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:18px 20px;padding:8px 0 4px;display:flex}.tone-guitar-row{border-top:1px dashed var(--border);flex-wrap:wrap;gap:12px;margin-top:16px;padding-top:14px;display:flex}.tone-guitar-row__item{font-size:var(--fs-sm);align-items:baseline;gap:8px;display:flex}.tone-guitar-row__label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tone-guitar-row__val{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text)}.tone-cabinet__name{font-family:var(--font-head);font-size:var(--fs-lg);text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin-bottom:12px;font-weight:700;line-height:1.2}.tone-cabinet__list{flex-direction:column;gap:8px;margin:0 0 14px;display:flex}.tone-cabinet__row{font-size:var(--fs-sm);border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.tone-cabinet__row:last-child{border-bottom:none}.tone-cabinet__row dt{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}.tone-cabinet__row dd{color:var(--text);text-align:right;margin:0}.tone-cabinet__code{font-family:var(--font-mono);font-size:var(--fs-sm)}.tone-cabinet__origin{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text);background:var(--bg);border-radius:4px;padding:3px 8px}.tone-cabinet__origin--american{color:var(--accent-oasis);border-color:rgba(var(--accent-practice-rgb), .5)}.tone-cabinet__origin--british{color:var(--accent-gnr);border-color:rgba(var(--accent-gnr-rgb), .5)}.tone-cabinet__origin--modern{color:var(--accent-metal);border-color:#8844dd80}.tone-cabinet__origin--boutique{color:var(--accent-clapton);border-color:rgba(var(--accent-teach-rgb), .5)}.tone-cabinet__origin--yamaha{color:var(--accent-mayer);border-color:#6dd3ce80}.tone-cabinet__desc{font-size:var(--fs-base);color:var(--muted);margin:0;line-height:1.55}.tone-section{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px 22px}.tone-section__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:10px;display:flex}.tone-section__title{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:0;font-size:14px;font-weight:700}.tone-effects{flex-direction:column;gap:3px;display:flex}.tone-effect{background:var(--bg2);border:1px solid var(--border);transition:border-color var(--dur-fast) ease, opacity var(--dur-fast) ease;border-radius:8px;align-items:center;gap:12px;padding:9px 14px;display:flex}.tone-effect--off{opacity:.4}.tone-effect--on{border-color:rgba(var(--color-success-rgb), .2);border-left:3px solid rgba(var(--color-success-rgb), .5)}.tone-effect__left{flex-shrink:0;align-items:center;gap:8px;min-width:130px;display:flex}.tone-effect__led{width:8px;height:8px;box-shadow:inset 0 1px 2px rgba(var(--black-rgb), .6);background:#2a2a2a;border:1px solid #1a1a1a;border-radius:50%;flex-shrink:0}.tone-effect--on .tone-effect__led{background:var(--on);border-color:rgba(var(--color-success-rgb), .6);box-shadow:0 0 5px rgba(var(--color-success-rgb), .55), inset 0 1px 2px rgba(var(--white-rgb), .3)}.tone-effect__name{font-family:var(--font-head);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-weight:700}.tone-effect__type{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;background:var(--bg3);border:1px solid var(--border2);color:var(--muted);border-radius:3px;flex-shrink:0;padding:1px 5px}.tone-effect__params{flex-wrap:wrap;flex:1;align-items:center;gap:4px 8px;display:flex}.tone-effect__param{align-items:baseline;gap:3px;display:inline-flex}.tone-effect__param-key{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tone-effect__param-val{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);font-weight:600}.tone-effect__param-sep{color:var(--border2);margin-left:4px;font-size:10px}.tone-effect__status{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;color:var(--muted);flex-shrink:0;margin-left:auto;font-weight:700}.tone-effect--on .tone-effect__status{color:var(--on)}.tone-effect__desc{font-size:var(--fs-sm);color:var(--muted);order:99;width:100%;margin:0;line-height:1.4}@media (max-width:480px){.tone-effect{flex-wrap:wrap;gap:6px 10px}.tone-effect__left{min-width:0}.tone-effect__status{margin-left:0}}.tone-tags{flex-wrap:wrap;gap:6px;display:flex}.tone-tag{font-size:var(--fs-sm);border-radius:var(--br-pill);background:var(--bg);border:1px solid var(--border2);color:var(--text);padding:4px 10px}.tone-collapse{background:var(--bg2);border:1px solid var(--border);border-radius:14px;overflow:hidden}.tone-collapse[open]{background:var(--bg2)}.tone-collapse__summary{cursor:pointer;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;color:var(--text);-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) ease;align-items:center;gap:10px;padding:16px 22px;font-size:14px;font-weight:700;list-style:none;display:flex}.tone-collapse__summary::-webkit-details-marker{display:none}.tone-collapse__summary:before{content:"▸";color:var(--muted);font-size:var(--fs-sm);transition:transform .2s;display:inline-block}.tone-collapse[open]>.tone-collapse__summary:before{color:var(--hero-accent,var(--accent-oasis));transform:rotate(90deg)}.tone-collapse__summary:hover{background:var(--bg3)}.tone-collapse>:not(summary){padding:0 22px 20px}.tone-definitions{border-top:1px solid var(--border);flex-direction:column;gap:10px;display:flex;padding-top:14px!important}.tone-definitions__row{font-size:var(--fs-base);grid-template-columns:110px 1fr;gap:14px;line-height:1.5;display:grid}@media (max-width:600px){.tone-definitions__row{grid-template-columns:1fr;gap:2px}}.tone-definitions__row dt{font-family:var(--font-head);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0;font-weight:700}.tone-definitions__row dd{color:var(--muted);margin:0}.tone-story{border-top:1px solid var(--border);flex-direction:column;gap:18px;display:flex;padding-top:14px!important}.tone-story__block h3{font-family:var(--font-head);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--hero-accent);margin:0 0 6px;font-weight:700}.tone-story__block p{color:var(--text);margin:0;font-size:14px;line-height:1.6}.tone-equipment{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:18px;display:grid;padding-top:14px!important}@media (max-width:700px){.tone-equipment{grid-template-columns:1fr}}.tone-equipment__col h3{font-family:var(--font-head);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--hero-accent);margin:0 0 10px;font-weight:700}.tone-equipment__row{border-bottom:1px dashed var(--border);font-size:var(--fs-base);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.tone-equipment__row span:first-child{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tone-equipment__row span:last-child{color:var(--text);text-align:right}.tone-tips{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.tone-tip{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--hero-accent);border-radius:var(--br-sm);padding:12px 14px}.tone-tip__technique{font-family:var(--font-head);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0 0 6px;font-weight:700}.tone-tip__desc{font-size:var(--fs-base);color:var(--muted);margin:0;line-height:1.5}.tone-resources{flex-wrap:wrap;gap:10px;display:flex}.tone-resource{background:var(--bg);border:1px solid var(--border2);border-radius:var(--br-sm);color:var(--text);font-size:var(--fs-base);transition:all var(--dur-fast) ease;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;display:inline-flex}.tone-resource:hover{background:var(--bg3);border-color:var(--hero-accent);color:var(--hero-accent);transform:translateY(-1px)}.tone-resource__icon{font-size:16px}.tone-similar{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.tone-similar__card{--s-accent:var(--accent-oasis);background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--s-accent);cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--text);transition:all var(--dur-fast) ease;border-radius:10px;flex-direction:column;gap:4px;padding:14px;display:flex}.tone-similar__card:hover{background:var(--bg3);border-color:var(--s-accent);box-shadow:0 6px 14px rgba(var(--black-rgb), .3);transform:translateY(-2px)}.tone-similar__card--gnr{--s-accent:var(--accent-gnr)}.tone-similar__card--oasis{--s-accent:var(--accent-oasis)}.tone-similar__card--clapton{--s-accent:var(--accent-clapton)}.tone-similar__card--vh{--s-accent:var(--accent-vh)}.tone-similar__card--metal{--s-accent:var(--accent-metal)}.tone-similar__card--mayer{--s-accent:var(--accent-mayer)}.tone-similar__card--edge{--s-accent:var(--accent-edge)}.tone-similar__card--srv{--s-accent:var(--accent-srv)}.tone-similar__card--gilmour{--s-accent:var(--accent-gilmour)}.tone-similar__card--clark-jr{--s-accent:var(--accent-clark-jr)}.tone-similar__card--rodgers{--s-accent:var(--accent-rodgers)}.tone-similar__card--wylde{--s-accent:var(--accent-wylde)}.tone-similar__card--satriani{--s-accent:var(--accent-satriani)}.tone-similar__card--hendrix{--s-accent:var(--accent-hendrix)}.tone-similar__card--knopfler{--s-accent:var(--accent-knopfler)}.tone-similar__card--bb-king{--s-accent:var(--accent-bb-king)}.tone-similar__card--santana{--s-accent:var(--accent-santana)}.tone-similar__card--beck{--s-accent:var(--accent-beck)}.tone-similar__card--atkins{--s-accent:var(--accent-atkins)}.tone-similar__card--buddy-guy{--s-accent:var(--accent-buddy-guy)}.tone-similar__card--albert-king{--s-accent:var(--accent-albert-king)}.tone-similar__artist{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--s-accent)}.tone-similar__name{font-family:var(--font-head);font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.04em;color:var(--text);font-weight:700;line-height:1.2}.tone-similar__song{font-size:var(--fs-sm);color:var(--muted);font-style:italic}.tone-similar__meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);gap:6px;margin-top:4px;display:flex}.tone-footer{border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--muted);margin-top:12px;padding:16px 0;line-height:1.5}.tone-footer p{margin:0 0 6px}.tone-footer p:last-child{margin:0}.tone-footer__note{font-size:var(--fs-2xs);opacity:.85}.tone-related-songs{flex-direction:column;gap:6px;display:flex}.tone-related-song{background:rgba(var(--white-rgb), .04);border:1px solid var(--border2);cursor:pointer;text-align:left;transition:background var(--dur-fast), border-color var(--dur-fast);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.tone-related-song:hover{background:rgba(var(--white-rgb), .08);border-color:rgba(var(--white-rgb), .22)}.tone-related-song__name{font-family:var(--font-body);font-size:var(--fs-base);color:var(--text);font-weight:500}.tone-related-song__artist{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-weight:600}@media (max-width:700px){.tone-detail__hero-inner{padding:22px 20px}.tone-panel,.tone-section{padding:16px 18px}.tone-collapse__summary{padding:14px 18px}.tone-collapse>:not(summary){padding:0 18px 16px}}.tone-detail__print-btn{border-radius:var(--br-sm);border:1px solid rgba(var(--white-rgb), .14);background:rgba(var(--white-rgb), .05);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);align-items:center;gap:5px;margin-top:14px;padding:6px 12px;font-weight:700;display:inline-flex}.tone-detail__print-btn:hover{background:rgba(var(--white-rgb), .1);border-color:rgba(var(--white-rgb), .25);color:var(--text)}@media print{body{background:var(--white);color:#111}.tone-footer,.tone-detail__print-btn,.tone-tips,.tone-similar{display:none!important}.tone-section:has(.tone-tag){display:none!important}.tone-detail{background:var(--white)!important;box-shadow:none!important;border:none!important;max-width:100%!important;padding:0!important}.tone-detail__hero{background:var(--white)!important;box-shadow:none!important;border-bottom:2px solid #111!important}.tone-detail__hero:before{display:none!important}.tone-detail__title{-webkit-text-fill-color:#111!important;color:#111!important;background:0 0!important;font-size:24px!important}.tone-detail__kicker-text,.tone-detail__inspired,.tone-detail__song{color:#444!important}.tone-detail__panel{display:block!important}.tone-panel,.tone-section{page-break-inside:avoid;box-shadow:none!important;background:var(--white)!important;border:1px solid #ddd!important}.tone-knob__svg{filter:none!important}.tone-knob__label,.tone-knob__value{color:#111!important;background:#f5f5f5!important;border-color:#ccc!important}details{display:block!important}details>summary{list-style:none}details>:not(summary){display:block!important}}.tl-page{width:100%;min-width:0;max-width:var(--page-w-read);--tl-mode:var(--muted);flex-direction:column;gap:18px;margin:0 auto;padding:4px 0 32px;display:flex}.tl-mode--clean{--tl-mode:var(--on)}.tl-mode--crunch{--tl-mode:var(--accent-oasis)}.tl-mode--lead{--tl-mode:var(--accent-gnr)}.tl-mode--hi-gain{--tl-mode:var(--accent-metal)}.tl-mode--special{--tl-mode:var(--accent-vh)}.tl-head{flex-direction:column;gap:6px;display:flex}.tl-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0;font-weight:500}.tl-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:34px;font-weight:700;line-height:1}.tl-intro{color:var(--muted);margin:0;font-size:14px}.tl-search{background:var(--bg3);border:1px solid var(--border2);min-height:48px;color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:0 6px 0 14px;display:flex}.tl-search:focus-within{border-color:rgba(var(--page-accent-rgb), .45);box-shadow:0 0 0 3px rgba(var(--page-accent-rgb), .1)}.tl-search>svg{flex:none;width:18px;height:18px}.tl-search-input{min-width:0;height:46px;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:16px}.tl-search-input::placeholder{color:var(--muted);opacity:.7}.tl-search-input::-webkit-search-cancel-button{display:none}.tl-search-clear{width:38px;height:38px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tl-search-clear svg{width:16px;height:16px}.tl-chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.tl-chips::-webkit-scrollbar{display:none}.tl-chip{border:1px solid var(--border2);min-height:38px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tl-chip-count{opacity:.7}.tl-chip.is-active{color:var(--text);border-color:rgba(var(--page-accent-rgb), .5);background:rgba(var(--page-accent-rgb), .14)}.tl-group,.tl-section{flex-direction:column;gap:8px;min-width:0;display:flex}.tl-group-head,.tl-section-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tl-group-title,.tl-section-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.tl-group-title,.tl-section-title--accent{color:var(--tl-mode)}.tl-group-count,.tl-section-hint,.tl-position{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.tl-list,.tl-card{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none;overflow:hidden}.tl-list>li+li,.tl-songs>li+li,.tl-fx+.tl-fx{border-top:1px solid var(--border)}.tl-row,.tl-song{min-height:66px;color:var(--text);align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.tl-row:hover .tl-row-name,.tl-song:hover .tl-row-name{color:var(--page-accent)}.tl-row:focus-visible{outline:2px solid var(--page-accent);outline-offset:-2px}.tl-song:focus-visible{outline:2px solid var(--page-accent);outline-offset:-2px}.tl-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tl-row-name{transition:color var(--dur-fast);font-weight:600;line-height:1.25}.tl-row-sub{color:var(--muted);overflow-wrap:anywhere;font-size:13px;line-height:1.35}.tl-mono{--tl-artist:var(--muted);background:var(--bg3);border:1px solid var(--tl-artist);width:38px;height:38px;color:var(--tl-artist);font-family:var(--font-mono);font-size:var(--fs-sm);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tl-eq{flex:none;align-items:flex-end;gap:3px;height:26px;display:flex}.tl-eq-bar{background:rgba(var(--accent-you-rgb), .5);border-radius:2px;width:5px}.tl-eq-bar--gain{background:var(--accent-gnr)}.tl-empty{border-radius:var(--br-lg);border:1px dashed rgba(var(--white-rgb), .1);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 18px;display:flex}.tl-empty-title{margin:0;font-weight:600}.tl-empty-hint{color:var(--muted);margin:0;font-size:14px}.tl-foot{font-size:var(--fs-sm);color:var(--muted);margin:0}.tl-topbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.tl-back{min-height:44px;color:var(--text);font-size:var(--fs-md);align-items:center;gap:4px;margin-left:-8px;padding:0 8px;text-decoration:none;display:inline-flex}.tl-back svg{width:20px;height:20px}.tl-hero{background:radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--tl-mode) 22%, transparent), transparent 60%), var(--bg2);border:1px solid color-mix(in srgb, var(--tl-mode) 40%, transparent);border-radius:18px;flex-direction:column;gap:6px;padding:18px 18px 20px;display:flex;position:relative}.tl-hero-tags{flex-wrap:wrap;align-items:center;gap:8px;padding-right:44px;display:flex}.tl-mode-pill{border:1px solid color-mix(in srgb, var(--tl-mode) 55%, transparent);color:var(--tl-mode);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;border-radius:6px;padding:3px 8px}.tl-hero-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tl-hero-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;margin:4px 0 0;font-size:38px;font-weight:700;line-height:1}.tl-hero-sub{color:var(--muted);margin:0;font-size:14px}.tl-hero-sub strong{color:var(--text);font-weight:600}.tl-hero-desc{margin:4px 0 0;font-size:14px;line-height:1.5}.tl-icon-btn{border:1px solid var(--border2);width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;display:flex}.tl-icon-btn svg{width:18px;height:18px}.tl-print{position:absolute;top:12px;right:12px}.tl-knobs{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:16px 8px 12px;display:grid}.tl-knobs .tone-knob{gap:4px;min-width:0}.tl-knobs .tone-knob__svg{width:100%;max-width:58px;height:auto}.tl-knobs .tone-knob__label{font-size:var(--fs-2xs);order:2}.tl-knobs .tone-knob__value{white-space:nowrap;background:0 0;border:none;order:1;min-width:0;padding:0;font-size:14px}.tl-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.tl-fact{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-width:0;padding:10px 12px;display:flex}.tl-fact dt,.tl-gear dt,.tl-defs dt{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tl-fact dd{overflow-wrap:anywhere;margin:0;font-weight:600}.tl-cabinet{align-items:center;gap:12px;padding:14px;display:flex}.tl-cabinet-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tl-cabinet-name{font-weight:600}.tl-cabinet-sub{color:var(--muted);font-size:13px}.tl-tag{background:var(--white-a06);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-radius:6px;flex:none;padding:3px 8px}.tl-fx{flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:12px 14px;display:flex}.tl-fx-led{background:var(--on);width:8px;height:8px;box-shadow:0 0 8px rgba(var(--color-success-rgb), .6);border-radius:50%;flex:none;align-self:center}.tl-fx-name{align-items:baseline;gap:8px;font-weight:600;display:inline-flex}.tl-fx-type{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);font-weight:400}.tl-fx-params{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);flex-basis:100%;padding-left:18px}.tl-muted{color:var(--muted);margin:0;font-size:13px}.tl-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tl-tag--soft{border:1px solid var(--border2);font-family:var(--font-body);letter-spacing:0;text-transform:none;color:var(--text);background:0 0;border-radius:999px;padding:7px 12px;font-size:13px}.tl-song-icon{background:rgba(var(--page-accent-rgb), .12);width:34px;height:34px;color:var(--page-accent);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.tl-song-icon svg{width:18px;height:18px}.tl-song>svg{width:18px;height:18px;color:var(--muted);flex:none}.tl-more{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2)}.tl-more-summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:52px;padding:0 14px;font-weight:600;list-style:none;display:flex}.tl-more-summary::-webkit-details-marker{display:none}.tl-more-summary svg{width:18px;height:18px;color:var(--muted);transition:transform var(--dur-fast)}.tl-more[open] .tl-more-summary svg{transform:rotate(90deg)}.tl-more-body{flex-direction:column;gap:14px;margin:0;padding:0 14px 16px;display:flex}.tl-more-block h3{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-weight:500}.tl-more-block p{margin:0;font-size:14px;line-height:1.55}.tl-tips{flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:14px;line-height:1.5;display:flex}.tl-gear,.tl-defs{flex-direction:column;gap:8px;margin:0;display:flex}.tl-gear dd,.tl-defs dd{margin:0;font-size:14px;line-height:1.45}.tl-watch{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tl-watch a{border:1px solid rgba(var(--page-accent-rgb), .35);min-height:40px;color:var(--text);border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:14px;text-decoration:none;display:inline-flex}.tl-watch svg{width:14px;height:14px;color:var(--page-accent)}.tl-prevnext{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tl-pn{border:1px solid var(--border2);min-width:0;min-height:58px;color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;padding:8px 12px;text-decoration:none;display:flex}.tl-pn--next{text-align:right;align-items:flex-end}.tl-pn-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tl-pn-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;overflow:hidden}.tl-btn{border:1px solid rgba(var(--page-accent-rgb), .5);min-height:44px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;border-radius:12px;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}@media (min-width:900px){.tl-title{font-size:44px}.tl-hero-title{font-size:48px}.tl-chips{flex-wrap:wrap;overflow:visible}}@media print{.tl-topbar,.tl-print,.tl-prevnext,.tl-more:not([open]){display:none}}.practice-mode{--arcade-cyan:#00f4ff;--arcade-pink:#ff1770;--arcade-cyan-soft:#d8feff;--arcade-pink-soft:#ffd9ea;--arcade-pink-soft-alt:#ffd8ea;--arcade-cyan-a05:rgba(var(--neon-cyan-rgb), .05);--arcade-cyan-a08:rgba(var(--neon-cyan-rgb), .08);--arcade-cyan-a12:rgba(var(--neon-cyan-rgb), .12);--arcade-cyan-a14:rgba(var(--neon-cyan-rgb), .14);--arcade-cyan-a16:rgba(var(--neon-cyan-rgb), .16);--arcade-cyan-a18:rgba(var(--neon-cyan-rgb), .18);--arcade-cyan-a20:rgba(var(--neon-cyan-rgb), .2);--arcade-cyan-a22:rgba(var(--neon-cyan-rgb), .22);--arcade-cyan-a24:rgba(var(--neon-cyan-rgb), .24);--arcade-cyan-a25:rgba(var(--neon-cyan-rgb), .25);--arcade-cyan-a26:rgba(var(--neon-cyan-rgb), .26);--arcade-cyan-a28:rgba(var(--neon-cyan-rgb), .28);--arcade-cyan-a30:rgba(var(--neon-cyan-rgb), .3);--arcade-cyan-a32:rgba(var(--neon-cyan-rgb), .32);--arcade-cyan-a33:rgba(var(--neon-cyan-rgb), .33);--arcade-cyan-a34:rgba(var(--neon-cyan-rgb), .34);--arcade-cyan-a35:rgba(var(--neon-cyan-rgb), .35);--arcade-cyan-a38:rgba(var(--neon-cyan-rgb), .38);--arcade-cyan-a40:rgba(var(--neon-cyan-rgb), .4);--arcade-cyan-a42:rgba(var(--neon-cyan-rgb), .42);--arcade-cyan-a45:rgba(var(--neon-cyan-rgb), .45);--arcade-cyan-a48:rgba(var(--neon-cyan-rgb), .48);--arcade-cyan-a50:rgba(var(--neon-cyan-rgb), .5);--arcade-cyan-a55:rgba(var(--neon-cyan-rgb), .55);--arcade-cyan-a58:rgba(var(--neon-cyan-rgb), .58);--arcade-cyan-a60:rgba(var(--neon-cyan-rgb), .6);--arcade-pink-a04:rgba(var(--neon-pink-rgb), .04);--arcade-pink-a10:rgba(var(--neon-pink-rgb), .1);--arcade-pink-a12:rgba(var(--neon-pink-rgb), .12);--arcade-pink-a14:rgba(var(--neon-pink-rgb), .14);--arcade-pink-a15:rgba(var(--neon-pink-rgb), .15);--arcade-pink-a16:rgba(var(--neon-pink-rgb), .16);--arcade-pink-a20:rgba(var(--neon-pink-rgb), .2);--arcade-pink-a24:rgba(var(--neon-pink-rgb), .24);--arcade-pink-a26:rgba(var(--neon-pink-rgb), .26);--arcade-pink-a28:rgba(var(--neon-pink-rgb), .28);--arcade-pink-a30:rgba(var(--neon-pink-rgb), .3);--arcade-pink-a32:rgba(var(--neon-pink-rgb), .32);--arcade-pink-a34:rgba(var(--neon-pink-rgb), .34);--arcade-pink-a35:rgba(var(--neon-pink-rgb), .35);--arcade-pink-a38:rgba(var(--neon-pink-rgb), .38);--arcade-pink-a45:rgba(var(--neon-pink-rgb), .45);--arcade-pink-a48:rgba(var(--neon-pink-rgb), .48);--arcade-pink-a50:rgba(var(--neon-pink-rgb), .5);--arcade-pink-a60:rgba(var(--neon-pink-rgb), .6);--arcade-pink-a64:rgba(var(--neon-pink-rgb), .64);--arcade-pink-a65:rgba(var(--neon-pink-rgb), .65);--arcade-pink-a68:rgba(var(--neon-pink-rgb), .68);--arcade-pink-a70:rgba(var(--neon-pink-rgb), .7);--arcade-pink-a72:rgba(var(--neon-pink-rgb), .72);gap:16px;display:grid}.practice-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);margin:0}.practice-hero h1{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;margin:0;line-height:1.1}.practice-subtitle{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.practice-exit-btn{border:1px solid var(--border2);color:var(--muted);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer;letter-spacing:.04em;transition:border-color var(--dur-fast), color var(--dur-fast);background:0 0;flex-shrink:0;padding:8px 14px}.practice-exit-btn:hover{border-color:var(--arcade-pink-a60);color:var(--arcade-pink-soft-alt)}.practice-progress-bar{border-radius:var(--br-pill);background:var(--white-a06);border:1px solid var(--border2);width:100%;height:6px;overflow:hidden}.practice-progress-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--arcade-pink), var(--arcade-cyan));gap:16px;height:100%;display:grid}.practice-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;display:grid}.practice-main-card,.practice-side-card,.practice-chord-fallback,.practice-mode-empty{border:1px solid var(--border2);background:var(--bg2);border-radius:14px;padding:18px}.practice-main-card{position:relative;overflow:hidden}@keyframes practice-stripe-flow{0%{background-position:0 0}to{background-position:200% 0}}.practice-main-card:before{content:"";background:linear-gradient(90deg, var(--arcade-pink), var(--arcade-cyan));opacity:.35;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.practice-main-card--playing:before{opacity:1;background:linear-gradient(90deg, var(--arcade-pink) 0%, var(--arcade-cyan) 50%, var(--arcade-pink) 100%);background-size:200% 100%;animation:4s linear infinite practice-stripe-flow}.practice-section-meta{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.practice-section-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--arcade-cyan);background:var(--arcade-cyan-a08);border:1px solid var(--arcade-cyan-a28);border-radius:var(--br-pill);flex-shrink:0;padding:3px 10px;font-weight:700}.practice-beat-counter{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.practice-section-meta>div{flex-direction:column;gap:2px;display:flex}.practice-rhythm-band{border-radius:var(--br-md);background:rgba(var(--white-rgb), .025);border:1px solid var(--border);flex-direction:column;align-items:center;gap:16px;padding:20px 24px;display:flex}.practice-beat-dot{background:var(--border2);border-radius:50%;width:14px;height:14px;transition:background 80ms,box-shadow 80ms,transform 80ms}.practice-meta-label,.practice-next-label,.practice-chord-fallback-label,.practice-feedback-title{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:2px;display:block}.practice-section-meta strong{font-family:var(--font-head);letter-spacing:.03em;font-size:16px}.practice-chord-stage{grid-template-columns:minmax(0,1fr) 160px;align-items:start;gap:20px;display:grid}.practice-current-chord-panel{gap:8px;display:grid}@keyframes practice-chord-in{0%{opacity:0;text-shadow:0 0;filter:saturate(.5)brightness(.8);transform:translateY(8px)}40%{opacity:1;text-shadow:0 0 120px,0 0 60px;filter:saturate(3)brightness(1.8);transform:translateY(0)}to{opacity:1;text-shadow:0 0 60px;filter:saturate(1.2)brightness();transform:translateY(0)}}.practice-current-chord-name{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.02em;animation:practice-chord-in .5s var(--ease-out) both;text-shadow:0 0 60px;filter:saturate(1.2);margin:0;font-size:96px;line-height:.9;transition:filter .25s,opacity .25s}@keyframes practice-chord-glow-pulse{0%,to{text-shadow:0 0 60px,0 0 30px;filter:saturate(1.4)brightness(1.1)}50%{text-shadow:0 0 100px,0 0 60px,0 0 20px;filter:saturate(2)brightness(1.4)}}.practice-current-chord-name--anticipating{opacity:.6;filter:saturate(.7);transition:opacity .25s,filter .25s}.practice-chord-progress{border-radius:var(--br-pill);background:rgba(var(--white-rgb), .1);height:3px;margin-top:10px;overflow:hidden}.practice-chord-progress-fill{border-radius:var(--br-pill);opacity:.75;background:currentColor;height:100%;transition:width .12s linear;display:block}@keyframes practice-anticipate-pulse{0%,to{box-shadow:0 0 0 0 rgba(var(--accent-teach-rgb), 0)}50%{box-shadow:0 0 0 6px rgba(var(--accent-teach-rgb), .22)}}.practice-chord-stage--anticipating{border-radius:var(--br-md);outline:2px solid rgba(var(--accent-teach-rgb), .45);outline-offset:3px;animation:.55s ease-in-out infinite practice-anticipate-pulse}.practice-strum-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.55;margin-bottom:4px}.practice-beat-cells{justify-content:center;align-items:flex-start;gap:20px;display:flex}.practice-beat-cell{flex-direction:column;align-items:center;gap:10px;transition:opacity 80ms,transform 80ms;display:flex}.practice-beat-cell--played{opacity:.35}.practice-beat-cell--active{opacity:1;transform:scale(1.18)}.practice-beat-cell--upcoming{opacity:.14}.practice-beat-dot{background:var(--border2);border-radius:50%;flex-shrink:0;width:14px;height:14px}.practice-beat-cell--played .practice-beat-dot{background:var(--arcade-cyan);opacity:.5}.practice-beat-cell--active .practice-beat-dot{background:var(--arcade-cyan);box-shadow:0 0 14px var(--arcade-cyan-a60), 0 0 5px var(--arcade-cyan)}.practice-strum-arrow{color:rgba(var(--white-rgb), .8);font-size:36px;line-height:1}.practice-beat-cell--active .practice-strum-arrow{text-shadow:0 0 20px var(--arcade-cyan-a60), 0 0 8px var(--arcade-cyan);color:var(--white)}.practice-beat-cell--played .practice-strum-arrow{color:rgba(var(--white-rgb), .35)}.practice-beat-cell--upcoming .practice-strum-arrow{color:rgba(var(--white-rgb), .14)}.practice-section-pills{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.practice-section-pill{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--white-a03);color:var(--muted);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);padding:4px 10px;font-weight:700}.practice-section-pill:hover{border-color:var(--arcade-cyan-a45);color:var(--arcade-cyan-soft);background:var(--arcade-cyan-a08)}.practice-section-pill--active{border-color:var(--arcade-cyan-a55);color:var(--arcade-cyan);background:var(--arcade-cyan-a12);box-shadow:0 0 8px var(--arcade-cyan-a30)}.practice-streak-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .09));border:1px solid rgba(var(--color-success-rgb), .38);color:var(--on);box-shadow:0 0 8px rgba(var(--color-success-rgb), .18);border-radius:5px;align-items:center;gap:4px;padding:2px 7px;font-weight:700;display:inline-flex}@keyframes practice-next-card-pulse{0%,to{box-shadow:0 0 0 0 rgba(var(--accent-teach-rgb), 0), inset 0 0 0 0 rgba(var(--accent-teach-rgb), 0);border-color:rgba(var(--accent-teach-rgb), .5)}50%{box-shadow:0 0 28px 6px rgba(var(--accent-teach-rgb), .35), inset 0 0 18px rgba(var(--accent-teach-rgb), .12);border-color:rgba(var(--accent-teach-rgb), 1)}}@keyframes practice-next-arrow-bounce{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.practice-next-card{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--white-a03);opacity:.5;gap:8px;padding:14px;transition:opacity .2s,border-color .2s,transform .25s;display:grid}.practice-chord-stage--anticipating .practice-next-card{opacity:1;background:rgba(var(--accent-teach-rgb), .06);animation:.55s ease-in-out infinite practice-next-card-pulse;transform:scale(1.1)}.practice-chord-stage--anticipating .practice-next-label{color:rgba(var(--accent-teach-rgb), 1);animation:.55s ease-in-out infinite practice-next-arrow-bounce}.practice-chord-stage--anticipating .practice-next-value{text-shadow:0 0 50px,0 0 20px;filter:saturate(2)brightness(1.3);font-size:52px}.practice-next-value{font-family:var(--font-head);letter-spacing:.02em;font-size:36px;line-height:1}.practice-side-card{flex-direction:column;align-content:start;gap:12px;display:flex}.practice-side-divider{background:var(--border);height:1px;margin:2px 0}.practice-transport-group{flex-direction:column;gap:8px;display:flex}.practice-shortcut-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);opacity:.55;text-align:center;margin:0;font-weight:600}.practice-transport-btn{background:var(--white-a04);border:1px solid var(--border2);color:var(--text);border-radius:var(--br-sm);font-size:var(--fs-md);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast);font-family:var(--font-mono);align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.practice-transport-btn span{font-size:var(--fs-sm);letter-spacing:.04em}.practice-transport-btn:hover{border-color:var(--arcade-cyan);color:var(--arcade-cyan-soft);box-shadow:0 0 10px var(--arcade-cyan-a20)}.practice-transport-btn--primary{background:var(--arcade-cyan-a08);border-color:var(--arcade-cyan-a40);color:var(--arcade-cyan-soft);font-size:var(--fs-lg);justify-content:center;width:100%;padding:10px 16px}.practice-transport-btn--primary:hover{background:var(--arcade-cyan-a16);box-shadow:0 0 16px var(--arcade-cyan-a30)}.practice-transport-nav{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.practice-transport-nav .practice-transport-btn{justify-content:center;padding:8px}.practice-toggles{gap:6px;display:grid}.practice-toggle-row{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);cursor:pointer;align-items:center;gap:10px;padding:4px 2px;display:inline-flex}.practice-speed-control{border:1px solid var(--border2);background:var(--white-a03);border-radius:10px;gap:8px;padding:10px 12px;display:grid}.practice-speed-header{justify-content:space-between;align-items:center;display:flex}.practice-speed-header strong{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.04em}.practice-speed-slider{width:100%}.practice-speed-scale{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);justify-content:space-between;display:flex}.practice-mic-row{align-items:center;gap:10px;display:flex}.practice-mic-btn{background:var(--white-a04);border:1px solid var(--border2);color:var(--muted);border-radius:var(--br-sm);font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer;transition:all var(--dur-fast);flex:1;padding:8px 12px}.practice-mic-btn--on{border-color:var(--arcade-pink-a60);color:var(--arcade-pink-soft-alt);background:var(--arcade-pink-a10);box-shadow:0 0 10px var(--arcade-pink-a15)}.practice-mic-btn:hover{border-color:var(--arcade-cyan-a50);color:var(--arcade-cyan-soft)}.practice-mic-confidence{font-family:var(--font-mono);color:var(--arcade-cyan);text-align:right;min-width:38px;font-size:14px;font-weight:700}.practice-feedback{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--white-a03);padding:10px 12px}.practice-feedback.correct{background:#4caf5014;border-color:#4caf5059}.practice-feedback.close{border-color:rgba(var(--accent-teach-rgb), .35);background:rgba(var(--accent-teach-rgb), .08)}.practice-feedback.retry{border-color:var(--gnr-a35);background:rgba(var(--accent-gnr-rgb), .08)}.practice-score-compact{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:14px;display:flex}.practice-score-compact strong{color:var(--text)}.practice-score-detail{font-size:var(--fs-2xs);opacity:.6;margin-left:auto}.practice-session-summary{border:1px solid var(--oasis-a35);border-radius:var(--br-md);background:var(--oasis-a10);gap:8px;padding:12px 14px;display:grid}.practice-session-summary p{color:var(--text);font-size:var(--fs-base);margin:0}.practice-mobile-bar{display:none}.practice-song-chords{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--bg2);gap:10px;padding:12px 14px;display:grid}.practice-song-chords-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}.practice-song-chords-list{flex-wrap:wrap;gap:8px;display:flex}.song-chord-pill.is-current{border-color:var(--arcade-cyan);box-shadow:0 0 0 2px var(--arcade-cyan-a25), 0 0 8px var(--arcade-cyan-a20);transform:translateY(-1px)}.practice-chord-fallback{gap:8px;padding:16px;display:grid}.practice-chord-fallback h3{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;margin:0}.practice-mode-empty h2{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px}.practice-mode-empty p{color:var(--muted);margin:0 0 16px}.practice-next-notes,.practice-chord-fallback p,.practice-feedback p{color:var(--muted);font-size:var(--fs-base);margin:0;line-height:1.5}.practice-home-card{--arcade-cyan:#00f4ff;--arcade-pink:#ff1770;--arcade-cyan-soft:#d8feff;--arcade-pink-soft-alt:#ffd8ea;--arcade-cyan-a12:rgba(var(--neon-cyan-rgb), .12);--arcade-cyan-a18:rgba(var(--neon-cyan-rgb), .18);--arcade-cyan-a20:rgba(var(--neon-cyan-rgb), .2);--arcade-cyan-a24:rgba(var(--neon-cyan-rgb), .24);--arcade-cyan-a25:rgba(var(--neon-cyan-rgb), .25);--arcade-cyan-a34:rgba(var(--neon-cyan-rgb), .34);--arcade-cyan-a45:rgba(var(--neon-cyan-rgb), .45);--arcade-cyan-a55:rgba(var(--neon-cyan-rgb), .55);--arcade-cyan-a58:rgba(var(--neon-cyan-rgb), .58);--arcade-pink-a12:rgba(var(--neon-pink-rgb), .12);--arcade-pink-a14:rgba(var(--neon-pink-rgb), .14);--arcade-pink-a20:rgba(var(--neon-pink-rgb), .2);--arcade-pink-a28:rgba(var(--neon-pink-rgb), .28);--arcade-pink-a35:rgba(var(--neon-pink-rgb), .35);--arcade-pink-a38:rgba(var(--neon-pink-rgb), .38);--arcade-pink-a45:rgba(var(--neon-pink-rgb), .45);--arcade-pink-a70:rgba(var(--neon-pink-rgb), .7);border-color:var(--arcade-cyan-a45);box-shadow:inset 0 0 24px var(--arcade-pink-a12), 0 0 0 1px var(--arcade-pink-a14), 0 10px 26px rgba(var(--black-rgb), .4);background:radial-gradient(circle at 16% 14%, var(--arcade-pink-a45), transparent 46%), radial-gradient(circle at 84% 84%, var(--arcade-cyan-a34), transparent 52%), radial-gradient(circle at 55% -8%, var(--arcade-cyan-a18), transparent 36%), linear-gradient(132deg, #220d42e6, #061c38e6 56%, #12082ef2);position:relative;overflow:hidden}.practice-home-card:before{content:"";background:repeating-linear-gradient(0deg, rgba(var(--white-rgb), 0) 0, rgba(var(--white-rgb), 0) 3px, var(--arcade-cyan-a12) 3px, var(--arcade-cyan-a12) 4px);opacity:.58;mix-blend-mode:screen;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.practice-home-card:after{content:"";background:radial-gradient(circle at 20% 20%, var(--arcade-pink-a20), transparent 42%), radial-gradient(circle at 80% 78%, var(--arcade-cyan-a20), transparent 48%);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.practice-home-card>*{z-index:1;position:relative}.practice-home-card .home-band-kicker{color:var(--arcade-cyan);text-shadow:0 0 10px var(--arcade-cyan-a55)}.practice-home-card h3{color:#f9f6ff;text-shadow:0 0 18px var(--arcade-pink-a38), 0 0 8px var(--arcade-cyan-a24)}.practice-home-card .learning-path-label{color:#ebf1ffb8}.practice-home-card .landing-guide-btn{border-color:var(--arcade-cyan-a58);color:#f2ffff;box-shadow:inset 0 0 0 1px var(--arcade-pink-a35);background:linear-gradient(145deg,#1a143bd9,#05283fc7)}.practice-home-card .landing-guide-btn:hover{border-color:var(--arcade-pink);color:#ffe6f2;box-shadow:0 0 14px var(--arcade-pink-a35), inset 0 0 0 1px var(--arcade-cyan-a25);background:linear-gradient(145deg,#260c48eb,#05283fe6)}.practice-home-card .landing-guide-btn--primary{border-color:var(--arcade-cyan);color:#e0faff;box-shadow:0 0 18px var(--arcade-cyan-a45), inset 0 0 0 1px var(--arcade-pink-a20);background:linear-gradient(145deg,#00a0c8c7,#0050a0b8)}.practice-home-card .landing-guide-btn--primary:hover{border-color:var(--arcade-cyan);color:var(--white);box-shadow:0 0 26px var(--arcade-cyan-a55), inset 0 0 0 1px var(--arcade-pink-a28);background:linear-gradient(145deg,#00bee6e0,#0064b4d1)}.practice-home-pill{border-color:var(--arcade-pink-a70);background:var(--arcade-pink-a14);color:var(--arcade-pink-soft-alt);box-shadow:inset 0 0 0 1px var(--arcade-pink-a28)}.practice-home-pill:hover{border-color:var(--arcade-cyan);color:var(--arcade-cyan-soft)}.practice-mode.karaoke-arcade .song-result-card{border:1px solid var(--arcade-cyan-a34);border-left:4px solid var(--arcade-cyan);box-shadow:inset 0 0 0 1px var(--arcade-pink-a16), 0 6px 20px #0206126b;background:linear-gradient(150deg,#10142aed,#0e1b2bd6 45%,#2d0c34db);position:relative;overflow:hidden}.practice-mode.karaoke-arcade .song-result-card:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, rgba(var(--white-rgb), 0) 0, rgba(var(--white-rgb), 0) 5px, var(--arcade-cyan-a05) 5px, var(--arcade-cyan-a05) 6px);position:absolute;top:0;bottom:0;left:0;right:0}.practice-mode.karaoke-arcade .song-result-card:hover{border-color:var(--arcade-pink-a68);box-shadow:0 0 16px var(--arcade-cyan-a26), 0 0 26px var(--arcade-pink-a24), inset 0 0 0 1px var(--arcade-pink-a20);transform:translateY(-3px)}.practice-mode.karaoke-arcade .practice-ready-badge{border-color:var(--arcade-pink-a72);background:var(--arcade-pink-a16);color:var(--arcade-pink-soft);text-shadow:0 0 8px var(--arcade-pink-a45);box-shadow:inset 0 0 0 1px var(--arcade-pink-a30)}.practice-mode.karaoke-arcade .practice-launch-btn{border-color:var(--arcade-pink-a64);color:var(--arcade-pink-soft);box-shadow:inset 0 0 0 1px var(--arcade-pink-a26);background:linear-gradient(145deg,#2b0c37e0,#121f3ad6)}.practice-mode.karaoke-arcade .practice-launch-btn:hover{border-color:var(--arcade-cyan);color:var(--arcade-cyan-soft);box-shadow:0 0 14px var(--arcade-cyan-a32), inset 0 0 0 1px var(--arcade-cyan-a34)}.practice-mode.karaoke-arcade{--arcade-ink:#090d1f;--arcade-panel:#0f1630;border:1px solid var(--arcade-cyan-a30);border-radius:var(--br-lg);background:radial-gradient(circle at 16% 10%, var(--arcade-pink-a16), transparent 40%), radial-gradient(circle at 85% 88%, var(--arcade-cyan-a14), transparent 42%), linear-gradient(170deg, #0c0e1ef5, #070c18fa);padding:16px;position:relative;overflow:hidden}.practice-mode.karaoke-arcade:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, rgba(var(--white-rgb), 0) 0, rgba(var(--white-rgb), 0) 3px, var(--arcade-cyan-a05) 3px, var(--arcade-cyan-a05) 4px);opacity:.75;position:absolute;top:0;bottom:0;left:0;right:0}.practice-mode.karaoke-arcade:after{content:"";pointer-events:none;background:linear-gradient(90deg, var(--arcade-cyan-a05) 1px, transparent 1px), linear-gradient(0deg, var(--arcade-pink-a04) 1px, transparent 1px);-webkit-mask-image:radial-gradient(circle at center, var(--black) 42%, transparent 100%);-webkit-mask-image:radial-gradient(circle at center, var(--black) 42%, transparent 100%);mask-image:radial-gradient(circle at center, var(--black) 42%, transparent 100%);background-size:32px 32px;position:absolute;top:0;bottom:0;left:0;right:0}.practice-mode.karaoke-arcade>*{z-index:1;position:relative}.karaoke-arcade .practice-kicker{color:var(--arcade-cyan);text-shadow:0 0 10px var(--arcade-cyan-a45)}.karaoke-arcade .practice-hero h1{color:#f9fbff;text-shadow:0 0 16px var(--arcade-pink-a34), 0 0 12px var(--arcade-cyan-a28)}.karaoke-arcade .practice-subtitle{color:#e3eeffc7}.karaoke-arcade .practice-progress-bar{border-color:var(--arcade-cyan-a35);background:#060a1ad1}.karaoke-arcade .practice-progress-bar span{background:linear-gradient(90deg, var(--arcade-cyan), var(--arcade-pink));box-shadow:0 0 12px var(--arcade-cyan-a35), 0 0 18px var(--arcade-pink-a28)}.karaoke-arcade .practice-main-card,.karaoke-arcade .practice-side-card,.karaoke-arcade .practice-chord-fallback,.karaoke-arcade .practice-mode-empty,.karaoke-arcade .practice-next-card,.karaoke-arcade .practice-feedback,.karaoke-arcade .practice-song-chords,.karaoke-arcade .practice-session-summary{border-color:var(--arcade-cyan-a33);box-shadow:inset 0 0 0 1px var(--arcade-pink-a16), 0 8px 20px #02050f57;background:linear-gradient(165deg,#121831e0,#0a1021eb)}.karaoke-arcade .practice-current-chord-name,.karaoke-arcade .practice-next-value{text-shadow:0 0 14px var(--arcade-cyan-a38), 0 0 18px var(--arcade-pink-a32)}.karaoke-arcade .practice-meta-label,.karaoke-arcade .practice-next-label,.karaoke-arcade .practice-chord-fallback-label,.karaoke-arcade .practice-feedback-title,.karaoke-arcade .practice-song-chords-label{color:#c4e8ffc2}.karaoke-arcade .practice-speed-control{border-color:var(--arcade-cyan-a33);box-shadow:inset 0 0 0 1px var(--arcade-pink-a16);background:linear-gradient(165deg,#121831e0,#0a1021eb)}.karaoke-arcade .practice-next-notes,.karaoke-arcade .practice-feedback p,.karaoke-arcade .practice-chord-fallback p{color:#dce6f5c7}.karaoke-arcade .song-chord-pill.is-current{border-color:var(--arcade-cyan);background:var(--arcade-cyan-a18);box-shadow:0 0 0 2px var(--arcade-cyan-a25), 0 0 14px var(--arcade-cyan-a30)}.karaoke-arcade .landing-guide-btn,.karaoke-arcade .song-preset-btn{border-color:var(--arcade-cyan-a42);color:#e9f9ff;box-shadow:inset 0 0 0 1px var(--arcade-pink-a20);background:linear-gradient(150deg,#151d3ce6,#0d142aeb)}.karaoke-arcade .landing-guide-btn:hover,.karaoke-arcade .song-preset-btn:hover{border-color:var(--arcade-pink);color:#ffdcec;box-shadow:0 0 14px var(--arcade-pink-a30), inset 0 0 0 1px var(--arcade-cyan-a25)}.karaoke-arcade .practice-feedback.correct{border-color:var(--arcade-cyan-a45);background:var(--arcade-cyan-a12)}.karaoke-arcade .practice-feedback.close{background:#ffc6001a;border-color:#ffc60073}.karaoke-arcade .practice-feedback.retry{border-color:var(--arcade-pink-a50);background:var(--arcade-pink-a12)}@media (max-width:1023px){.practice-mode.karaoke-arcade{border-radius:var(--br-md);padding:12px}.karaoke-arcade .practice-mobile-bar{border-color:var(--arcade-cyan-a35);box-shadow:0 0 14px var(--arcade-cyan-a22);background:linear-gradient(170deg,#080d1ff0,#0d0921f0)}.karaoke-arcade .practice-mobile-bar .landing-guide-btn{border-color:var(--arcade-cyan-a35);color:#e9f9ff;background:#081226e6}}@keyframes countdown-go{0%{opacity:0;transform:scale(.3)rotate(12deg)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)rotate(0)}}.practice-countdown-stage{justify-content:center;align-items:center;min-height:180px;padding:24px 0;display:flex}.practice-countdown-number{font-family:var(--font-head);letter-spacing:-.06em;color:var(--arcade-cyan);text-shadow:0 0 40px var(--arcade-cyan-a60), 0 0 80px var(--arcade-cyan-a28);font-size:120px;font-weight:900;line-height:1;animation:1s ease-out forwards countdown-pulse}.practice-countdown-go{color:#4ade80;text-shadow:0 0 30px #4ade8099,0 0 60px #4ade8052;font-size:96px;animation:.8s cubic-bezier(.34,1.56,.64,1) forwards countdown-go}.lyrics-display{border:1px solid var(--border2);border-radius:var(--br-md);background:var(--white-a03);gap:12px;margin-top:16px;padding:16px;animation:.3s ease-out slideUp;display:grid}.lyrics-section-label{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.lyrics-text{font-family:var(--font-body);font-size:var(--fs-base);color:var(--text);flex-direction:column;gap:6px;line-height:1.7;display:flex}.lyrics-text p{margin:0}.karaoke-arcade .lyrics-display{border-color:var(--arcade-cyan-a33);box-shadow:inset 0 0 0 1px var(--arcade-pink-a16), 0 8px 20px #02050f57;background:linear-gradient(165deg,#121831e0,#0a1021eb)}.karaoke-arcade .lyrics-text{color:#f8fcff}.karaoke-arcade .lyrics-section-label{color:#c4e8ffc2}.sp-library,.sp-practice{--yt-grad:linear-gradient(135deg, var(--yt-red) 0%, var(--yt-red-deep) 100%);--yt-grad-hover:linear-gradient(135deg, var(--yt-red-bright) 0%, #e00000 100%);--card-shadow:var(--shadow-lg);--card-hi:inset 0 1px 0 var(--white-a06)}@keyframes sp-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sp-player-glow{0%,to{box-shadow:var(--card-shadow,0 14px 40px rgba(var(--black-rgb), .45)), 0 0 0 1px rgba(var(--yt-rgb), .18), 0 0 32px rgba(var(--yt-rgb), .1)}50%{box-shadow:var(--card-shadow,0 14px 40px rgba(var(--black-rgb), .45)), 0 0 0 1px rgba(var(--yt-rgb), .35), 0 0 52px rgba(var(--yt-rgb), .22)}}@keyframes sp-done-glow{0%,to{box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), 0 4px 16px rgba(var(--color-success-rgb), .4)}50%{box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .3), 0 8px 28px rgba(var(--color-success-rgb), .72)}}@keyframes sp-shimmer{0%{background-position:-300px 0}to{background-position:300px 0}}@keyframes sp-chat-row-glow{0%,to{box-shadow:inset 0 0 0 1px rgba(var(--color-success-rgb), .24), inset 0 0 0 999px rgba(var(--color-success-rgb), .05), 0 0 0 1px rgba(var(--color-success-rgb), .08), 0 0 14px rgba(var(--color-success-rgb), .14)}50%{box-shadow:inset 0 0 0 1px rgba(var(--color-success-rgb), .44), inset 0 0 0 999px rgba(var(--color-success-rgb), .1), 0 0 0 1px rgba(var(--color-success-rgb), .18), 0 0 26px rgba(var(--color-success-rgb), .3)}}@keyframes sp-chat-row-sheen{0%{background-position:-140% 0}to{background-position:240% 0}}@keyframes sp-title-glow{0%,to{text-shadow:0 0 30px rgba(var(--yt-bright-rgb),.18)}50%{text-shadow:0 0 50px rgba(var(--yt-bright-rgb),.32)}}.sp-library,.sp-practice{flex-direction:column;gap:16px;max-width:780px;margin:0 auto;padding:4px 0 40px;animation:.4s ease-out both sp-fade-up;display:flex}.sp-loading{text-align:center;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.06em;text-transform:uppercase;padding:80px 20px}.sp-error{color:var(--yt-red-bright);font-size:var(--fs-sm);font-family:var(--font-mono);margin:4px 0 0}.sp-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:transform var(--dur-fast), box-shadow .2s, background var(--dur-fast), border-color var(--dur-fast);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:11px 20px;font-weight:700;display:inline-flex}.sp-btn:disabled{opacity:.35;cursor:default}.sp-btn:active:not(:disabled){transform:scale(.97)}.sp-btn--primary{background:var(--yt-grad);border-color:rgba(var(--yt-rgb), .5);color:var(--white);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), inset 0 -1px 0 rgba(var(--black-rgb), .18), 0 4px 14px rgba(var(--yt-rgb), .35)}.sp-btn--primary:hover:not(:disabled){background:var(--yt-grad-hover);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .28), 0 8px 22px rgba(var(--yt-rgb), .55);transform:translateY(-1px)}.sp-btn--ghost{background:linear-gradient(180deg, var(--white-a05), var(--white-a02));border-color:var(--border2);color:var(--muted);box-shadow:inset 0 1px 0 var(--white-a04)}.sp-btn--ghost:hover:not(:disabled){background:linear-gradient(180deg, rgba(var(--white-rgb), .09), var(--white-a04));border-color:rgba(var(--white-rgb), .22);color:var(--text)}.sp-btn--seek-back{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .1), rgba(var(--success-deep-rgb), .04));border-color:rgba(var(--color-success-rgb), .35);color:var(--on);box-shadow:0 1px 8px rgba(var(--color-success-rgb), .16), inset 0 1px 0 var(--white-a08);border-width:1px;padding:8px 14px}.sp-btn--seek-back:hover:not(:disabled){background:linear-gradient(135deg, rgba(var(--color-success-rgb), .15), rgba(var(--success-deep-rgb), .08));border-color:rgba(var(--color-success-rgb), .52);color:var(--on)}.sp-btn--seek-forward{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .1), rgba(var(--practice-deep-rgb), .04));border-color:rgba(var(--accent-practice-rgb), .34);color:var(--accent-oasis);box-shadow:0 1px 8px rgba(var(--accent-practice-rgb), .16), inset 0 1px 0 var(--white-a08);border-width:1px;padding:8px 14px}.sp-btn--seek-forward:hover:not(:disabled){background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .16), rgba(var(--practice-deep-rgb), .08));border-color:rgba(var(--accent-practice-rgb), .52);color:var(--accent-oasis)}.sp-btn--danger{color:var(--yt-red-bright);border-color:rgba(var(--yt-bright-rgb),.25)}.sp-btn--danger:hover:not(:disabled){background:rgba(var(--yt-bright-rgb),.1);border-color:rgba(var(--yt-bright-rgb),.5);color:var(--yt-red-bright)}.sp-add-song-card{background:radial-gradient(ellipse 600px 200px at 0% 0%, rgba(var(--yt-rgb), .26), transparent 58%), radial-gradient(ellipse 280px 180px at 100% 100%, rgba(var(--yt-bright-rgb),.12), transparent 55%), radial-gradient(circle at 50% 120%, rgba(var(--yt-rgb), .06), transparent 50%), var(--bg2);border:1px solid rgba(var(--yt-rgb), .34);border-radius:var(--br-lg);box-shadow:var(--card-shadow), var(--card-hi), 0 0 60px rgba(var(--yt-rgb), .06);flex-direction:column;gap:14px;padding:22px 20px 20px;display:flex;position:relative;overflow:hidden}.sp-add-song-card:before{content:"";background:var(--yt-grad);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.sp-add-song-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--yt-red-bright);text-shadow:0 0 14px rgba(var(--yt-rgb), .55), 0 0 30px rgba(var(--yt-rgb), .2);font-weight:700}.sp-add-song-row{flex-direction:column;gap:8px;display:flex}.sp-add-song-input{box-sizing:border-box;background:var(--black-a35);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-base);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:10px;outline:none;padding:12px 14px}.sp-add-song-input:focus{border-color:rgba(var(--yt-rgb), .5);box-shadow:0 0 0 3px rgba(var(--yt-rgb), .12)}.sp-add-song-input::placeholder{color:var(--muted);opacity:.7}.sp-add-song-row .sp-btn--primary{align-self:flex-start;min-width:96px}.sp-library-grid{grid-template-columns:1fr;gap:12px;display:grid}.sp-song-card{background:radial-gradient(ellipse 280px 120px at 100% 0%, rgba(var(--yt-rgb), .04), transparent 55%), var(--bg2);border:1px solid var(--border2);border-left:3px solid var(--yt-red);box-shadow:var(--card-shadow), var(--card-hi);transition:border-color var(--dur-normal), transform .18s, box-shadow var(--dur-normal);border-radius:14px;flex-direction:column;gap:12px;padding:14px;animation:.45s ease-out both sp-fade-up;display:flex}.sp-song-card:hover{border-color:rgba(var(--yt-rgb), .34);border-left-color:var(--yt-red);box-shadow:var(--card-shadow), var(--card-hi), 0 0 32px rgba(var(--yt-rgb), .08);transform:translateY(-2px)}.sp-song-card-top{align-items:flex-start;gap:12px;display:flex}.sp-song-thumb{object-fit:cover;border-radius:var(--br-sm);background:var(--black);border:1px solid rgba(var(--yt-rgb), .18);flex-shrink:0;width:100px;height:56px}.sp-song-meta{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sp-song-title{font-family:var(--font-head);letter-spacing:.02em;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.sp-song-last{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono)}.sp-song-stats{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.sp-song-stats-empty{opacity:.5}.sp-progress-bar{background:var(--white-a07);border-radius:var(--br-pill);height:4px;overflow:hidden}.sp-progress-fill{background:linear-gradient(90deg, #1e9c5c, var(--on), #7aedb4, var(--on), #1e9c5c);border-radius:var(--br-pill);background-size:300px 100%;min-width:4px;height:100%;transition:width .5s;animation:2.5s linear infinite sp-shimmer}.sp-song-card-actions{align-items:center;gap:8px;display:flex}.sp-song-card-actions .sp-btn--primary{flex:1}.sp-empty-state{border:1.5px dashed var(--white-a10);border-radius:var(--br-lg);color:var(--muted);background:radial-gradient(ellipse 380px 180px at 50% 0%, rgba(var(--yt-rgb), .05), transparent 60%), var(--bg2);flex-direction:column;align-items:center;gap:14px;padding:36px 20px 28px;animation:.5s ease-out both sp-fade-up;display:flex}.sp-empty-icon{font-size:40px;line-height:1}.sp-empty-text{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700}.sp-empty-hint{font-size:var(--fs-base);text-align:center;max-width:34ch;margin:0;line-height:1.5}.sp-empty-cta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--yt-red-bright);margin:0;font-weight:700}.sp-how-steps{text-align:left;flex-direction:column;gap:8px;width:100%;max-width:340px;margin:2px 0 0;padding:0;list-style:none;display:flex}.sp-how-steps--compact{max-width:300px}.sp-how-step{align-items:flex-start;gap:10px;display:flex}.sp-how-step-num{font-family:var(--font-mono);font-size:var(--fs-2xs);background:rgba(var(--yt-rgb), .12);border:1px solid rgba(var(--yt-rgb), .32);border-radius:var(--br-xs);color:var(--yt-red-bright);flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:22px;margin-top:1px;font-weight:900;display:flex}.sp-how-step-num--green{background:rgba(var(--color-success-rgb), .12);border-color:rgba(var(--color-success-rgb), .35);color:var(--on)}.sp-how-step-num--blue{background:var(--oasis-a10);border-color:rgba(var(--accent-practice-rgb), .32);color:var(--accent-oasis)}.sp-how-step-text{font-size:var(--fs-base);color:var(--muted);line-height:1.45}.sp-practice-header{background:radial-gradient(ellipse 600px 180px at 0% 50%, rgba(var(--yt-rgb), .13), transparent 60%), radial-gradient(ellipse 300px 200px at 100% 100%, rgba(var(--yt-bright-rgb),.06), transparent 55%), var(--bg2);border:1px solid rgba(var(--yt-rgb), .22);border-radius:var(--br-lg);box-shadow:var(--card-shadow), var(--card-hi);flex-wrap:wrap;align-items:center;gap:12px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.sp-practice-header:before{content:"";background:var(--yt-grad);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.sp-practice-title-wrap{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.sp-practice-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg, var(--white) 0%, #ffe8e8 55%, #ff9090 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-line-clamp:2;-webkit-background-clip:text;background-clip:text;-webkit-box-orient:vertical;max-width:100%;margin:0;font-weight:700;display:-webkit-box;overflow:hidden}.sp-practice-progress{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;align-items:center;gap:8px;display:flex}.sp-practice-pct{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;background:linear-gradient(135deg, rgba(var(--color-success-rgb), .18), rgba(var(--success-deep-rgb), .1));border:1px solid rgba(var(--color-success-rgb), .38);color:var(--on);box-shadow:0 0 10px rgba(var(--color-success-rgb), .2);border-radius:5px;padding:1px 6px;font-weight:700}.sp-player-panel{background:radial-gradient(ellipse 600px 200px at 100% 0%, rgba(var(--yt-rgb), .1), transparent 55%), radial-gradient(ellipse 400px 200px at 0% 100%, rgba(var(--yt-rgb), .06), transparent 52%), var(--bg2);border:1px solid rgba(var(--yt-rgb), .28);border-radius:var(--br-lg);box-shadow:var(--card-shadow), var(--card-hi), 0 0 60px rgba(var(--yt-rgb), .05);flex-direction:column;display:flex;overflow:hidden}.sp-player-wrap{aspect-ratio:16/9;background:var(--black);border-radius:16px 16px 0 0;width:100%;animation:4s ease-in-out infinite sp-player-glow;position:relative;overflow:hidden}.sp-player-host{width:100%;height:100%}.sp-player-host iframe{border:none;width:100%;height:100%;display:block}.sp-player-overlay{z-index:2;background:radial-gradient(circle at 50% 40%, rgba(var(--yt-rgb), .14), transparent 50%), #080808d1;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.sp-player-spinner{border:2px solid rgba(var(--white-rgb), .15);border-top-color:var(--yt-red);width:24px;height:24px;box-shadow:0 0 10px rgba(var(--yt-rgb), .45);border-radius:50%;animation:.85s linear infinite sp-spin}.sp-player-overlay--error{color:var(--yt-red-bright);background:#0a0505e6;gap:0}.sp-transport{border-top:1px solid rgba(var(--yt-rgb), .12);background:linear-gradient(180deg, rgba(var(--yt-rgb), .05) 0%, transparent 100%), rgba(var(--black-rgb), .1);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.sp-transport-left{flex:1;min-width:0}.sp-active-fragment-chip{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sp-active-label{font-family:var(--font-head);font-size:var(--fs-md);letter-spacing:.03em;text-transform:uppercase;color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-weight:700;overflow:hidden}.sp-active-range{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}.sp-active-speed{font-family:var(--font-mono);font-size:var(--fs-2xs);background:var(--white-a07);border:1px solid var(--border2);color:var(--muted);border-radius:5px;padding:2px 7px}.sp-active-fragment-chip--manual{border-left:3px solid var(--yt-red);padding-left:8px}.sp-active-fragment-chip--manual .sp-active-label{color:var(--yt-red-bright);text-shadow:0 0 10px rgba(var(--yt-rgb), .35)}.sp-transport-right{align-items:center;gap:8px;display:flex}.sp-shortcuts-note{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--muted);white-space:nowrap;scrollbar-width:none;background:0 0;border:none;flex-wrap:nowrap;align-items:center;gap:6px;width:100%;margin:6px 14px 0;padding:0;display:flex;overflow:auto hidden}.sp-shortcuts-note::-webkit-scrollbar{display:none}.sp-shortcuts-note>*{flex:none}.sp-shortcuts-line{white-space:nowrap;min-width:max-content;display:inline-block}.sp-quick-loop{border:1px solid var(--border2);background:var(--bg2);border-radius:10px;display:none;overflow:hidden}.sp-quick-loop--active{border-color:rgba(var(--yt-rgb), .45);background:linear-gradient(180deg, rgba(var(--yt-rgb), .12) 0%, rgba(var(--black-rgb), .16) 100%);animation:2.35s ease-in-out infinite sp-chat-row-glow;position:relative}.sp-quick-loop--active .sp-quick-loop-toggle-label{color:var(--yt-red-bright)}.sp-quick-loop--active .sp-quick-loop-body{border-top-color:rgba(var(--yt-rgb), .35)}.sp-quick-loop--active:before{content:"";pointer-events:none;background:linear-gradient(110deg, rgba(var(--yt-rgb), 0) 26%, rgba(var(--yt-rgb), 0) 40%, rgba(var(--yt-rgb), .26) 50%, rgba(var(--yt-rgb), 0) 60%, rgba(var(--yt-rgb), 0) 74%);opacity:.7;background-size:220% 100%;animation:2.8s linear infinite sp-chat-row-sheen;position:absolute;top:1px;bottom:1px;left:0;right:0}.sp-quick-loop-toggle{width:100%;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-weight:700;display:flex}.sp-quick-loop-toggle-label{color:var(--muted)}.sp-quick-loop-toggle-action{align-items:center;gap:6px;display:inline-flex}.sp-quick-loop-toggle-range{border-radius:var(--br-pill);border:1px solid rgba(var(--yt-rgb), .28);background:rgba(var(--yt-rgb), .1);color:rgba(var(--white-rgb), .75);font-size:var(--fs-2xs);letter-spacing:.04em;align-items:center;padding:2px 7px;display:inline-flex}.sp-quick-loop-toggle-arrow{font-size:var(--fs-2xs);opacity:.85;line-height:1}.sp-quick-loop-body{border-top:1px solid var(--white-a08);background:0 0;padding:10px}.sp-quick-loop-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;color:var(--muted);margin:0 0 8px}.sp-quick-loop-mode-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;color:rgba(var(--white-rgb), .58);margin:0 0 8px}.sp-quick-loop-status{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--on);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .14), rgba(var(--success-deep-rgb), .06));border:1px solid rgba(var(--color-success-rgb), .34);border-radius:var(--br-sm);margin:0 0 8px;padding:6px 8px;font-weight:700}.sp-quick-loop-status-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sp-quick-loop-status-row .sp-quick-loop-status{flex:1;margin:0}.sp-quick-loop-pause-btn{font-size:var(--fs-2xs);letter-spacing:.06em;border-color:rgba(var(--yt-rgb), .35);color:var(--yt-red-bright);padding:6px 10px}.sp-quick-loop-pause-btn:hover:not(:disabled){border-color:rgba(var(--yt-rgb), .5);background:rgba(var(--yt-rgb), .12);color:rgba(var(--white-rgb), .75)}.sp-quick-loop-ab-row{margin-top:0}.sp-quick-loop-actions{flex-wrap:nowrap;align-items:center;gap:8px;margin-top:8px;display:flex}.sp-quick-loop-actions .sp-btn{flex:1;min-width:0}.sp-quick-loop-speed{margin-top:8px}.sp-repeat-toggle{cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:7px;padding:0;font-weight:700;display:inline-flex}.sp-repeat-toggle input{display:none}.sp-repeat-label{color:var(--muted);align-items:center;gap:5px;transition:color .2s;display:inline-flex}.sp-repeat-label:before{content:"";background:var(--bg3);border:1px solid var(--border2);border-radius:var(--br-pill);vertical-align:middle;width:32px;height:18px;transition:background var(--dur-normal), border-color var(--dur-normal), box-shadow var(--dur-normal);display:inline-block;position:relative}.sp-repeat-toggle input:checked~.sp-repeat-label{color:var(--on)}.sp-repeat-toggle input:checked~.sp-repeat-label:before{background:linear-gradient(135deg, var(--on), #22a060);border-color:rgba(var(--color-success-rgb), .6);box-shadow:0 0 8px rgba(var(--color-success-rgb), .35)}.sp-mark-done-btn{background:var(--success-grad);border:1px solid rgba(var(--color-success-rgb), .55);color:var(--white);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:transform var(--dur-fast), opacity var(--dur-fast);border-radius:10px;align-self:stretch;padding:11px 18px;font-weight:700;animation:1.8s ease-in-out infinite sp-done-glow}.sp-mark-done-btn:hover{opacity:.9;transform:translateY(-1px)}.sp-mark-done-btn:active{transform:scale(.97)}.sp-mark-done-btn--done{background:linear-gradient(180deg, var(--white-a06), var(--white-a02));border-color:var(--border2);color:var(--muted);box-shadow:inset 0 1px 0 var(--white-a04);animation:none}.sp-mark-done-btn--done:hover{color:var(--text)}@keyframes sp-confetti-pop{0%{opacity:0;transform:translate(0)scale(.3)rotate(0)}20%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1) rotate(var(--rot))}}.sp-confetti-burst{pointer-events:none;z-index:2;height:0;position:relative;overflow:visible}.sp-confetti-dot{opacity:0;transform-origin:50%;width:7px;height:10px;box-shadow:0 0 8px rgba(var(--black-rgb), .15);border-radius:2px;animation:.95s cubic-bezier(.2,.75,.3,1) forwards sp-confetti-pop;position:absolute;top:0;left:50%}.sp-confetti-dot--1{--dx:-132px;--dy:30px;--rot:-22deg;background:var(--on);animation-delay:0s}.sp-confetti-dot--2{--dx:-92px;--dy:38px;--rot:16deg;background:var(--accent-oasis);animation-delay:20ms}.sp-confetti-dot--3{--dx:-56px;--dy:48px;--rot:-14deg;background:var(--streak);animation-delay:30ms}.sp-confetti-dot--4{--dx:-22px;--dy:56px;--rot:10deg;background:var(--yt-red-bright);animation-delay:10ms}.sp-confetti-dot--5{--dx:22px;--dy:56px;--rot:-10deg;background:var(--on);animation-delay:10ms}.sp-confetti-dot--6{--dx:56px;--dy:48px;--rot:14deg;background:var(--accent-oasis);animation-delay:30ms}.sp-confetti-dot--7{--dx:92px;--dy:38px;--rot:-16deg;background:var(--streak);animation-delay:20ms}.sp-confetti-dot--8{--dx:132px;--dy:30px;--rot:22deg;background:var(--yt-red-bright);animation-delay:0s}@keyframes sp-all-done-in{0%{opacity:0;transform:scaleY(.7)}to{opacity:1;transform:scaleY(1)}}.sp-all-done{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .18) 0%, rgba(var(--success-deep-rgb), .1) 50%, #1a99550f 100%), rgba(var(--black-rgb), .08);border-top:1px solid rgba(var(--color-success-rgb), .32);box-shadow:inset 0 1px 0 rgba(var(--color-success-rgb), .18), 0 -4px 24px rgba(var(--color-success-rgb), .12);transform-origin:top;animation:sp-all-done-in var(--dur-slow) cubic-bezier(.34,1.56,.64,1) both;align-items:center;gap:14px;padding:18px 20px;display:flex}.sp-all-done-icon{width:28px;height:28px;color:var(--on);filter:drop-shadow(0 0 8px rgba(var(--color-success-rgb), .6));flex-shrink:0}.sp-all-done-text{flex-direction:column;gap:2px;display:flex}.sp-all-done-badge{background:rgba(var(--color-success-rgb), .13);border:1px solid rgba(var(--color-success-rgb), .35);color:rgba(var(--color-success-rgb), .9);border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;padding:.1rem .45rem;font-weight:700;display:inline-block}.sp-all-done-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--on);text-shadow:0 0 16px rgba(var(--color-success-rgb), .45);font-size:16px;font-weight:700;line-height:1.2}.sp-all-done-sub{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:rgba(var(--color-success-rgb), .65);text-transform:uppercase;font-weight:600}.sp-fragment-panel{background:radial-gradient(ellipse 520px 180px at 100% 0%, rgba(var(--yt-rgb), .07), transparent 58%), radial-gradient(ellipse 300px 150px at 0% 100%, rgba(var(--color-success-rgb), .04), transparent 52%), var(--bg2);border:1px solid var(--border2);border-radius:var(--br-lg);box-shadow:var(--card-shadow), var(--card-hi);position:relative}.sp-fragment-panel:before{content:"";background:var(--yt-grad);z-index:1;border-radius:16px 16px 0 0;height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.sp-tip{position:relative}.sp-tip:after{content:attr(data-tip);white-space:nowrap;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--br-xs);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;pointer-events:none;opacity:0;z-index:20;box-shadow:0 4px 14px rgba(var(--black-rgb), .55);padding:5px 9px;font-weight:600;transition:opacity .1s,transform .1s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(4px)}.sp-tip:hover:after{opacity:1;transition:opacity var(--dur-fast) var(--dur-slow), transform var(--dur-fast) var(--dur-slow);transform:translate(-50%)translateY(0)}.sp-tip:focus-visible:after{opacity:1;transition:opacity var(--dur-fast) var(--dur-slow), transform var(--dur-fast) var(--dur-slow);transform:translate(-50%)translateY(0)}.sp-fragment-panel-header{border-bottom:1px solid var(--white-a06);background:linear-gradient(90deg, rgba(var(--yt-rgb), .07) 0%, transparent 65%), rgba(var(--white-rgb), .01);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sp-section-heading{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--yt-red-bright);text-shadow:0 0 12px rgba(var(--yt-bright-rgb), .45);margin:0;font-weight:700}.sp-sections-mode-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;color:var(--muted);margin:0;padding:8px 16px 0}.sp-no-fragments{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:28px 20px 24px;display:flex}.sp-no-fragments-icon{font-size:32px;line-height:1}.sp-no-fragments-title{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700}.sp-no-fragments-cta{align-self:stretch}.sp-no-fragments-split-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);opacity:.85;text-align:center;margin:-4px 0 0;font-weight:600}.sp-fragment-list{flex-direction:column;display:flex}.sp-confirm-overlay{z-index:1100;background:radial-gradient(circle at 50% 30%, rgba(var(--yt-rgb), .12), transparent 52%), #060606bd;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sp-confirm-modal{border:1px solid rgba(var(--yt-rgb), .32);background:radial-gradient(ellipse 340px 130px at 100% 0%, rgba(var(--yt-rgb), .12), transparent 58%), var(--bg2);width:min(420px,100%);box-shadow:var(--card-shadow), var(--card-hi), 0 0 34px rgba(var(--yt-rgb), .16);border-radius:14px;flex-direction:column;gap:8px;padding:16px;display:flex}.sp-confirm-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--yt-red-bright);margin:0;font-weight:700}.sp-confirm-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700}.sp-confirm-body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--muted);margin:0}.sp-confirm-actions{gap:8px;margin-top:4px;display:flex}.sp-confirm-actions .sp-btn{flex:1}.sp-fragment-row{border-bottom:1px solid var(--white-a05);cursor:pointer;min-height:56px;transition:background var(--dur-fast);border-left:3px solid #0000;align-items:center;gap:10px;padding:13px 16px;display:flex;position:relative}.sp-fragment-row:last-child{border-bottom:none}.sp-fragment-row:hover{background:var(--white-a03)}.sp-fragment-row--active{background:rgba(var(--color-success-rgb), .07);border-left-color:var(--on);animation:2.35s ease-in-out infinite sp-chat-row-glow}.sp-fragment-row--active:before{content:"";pointer-events:none;background:linear-gradient(110deg, rgba(var(--color-success-rgb), 0) 26%, rgba(var(--color-success-rgb), 0) 40%, rgba(var(--color-success-rgb), .3) 50%, rgba(var(--color-success-rgb), 0) 60%, rgba(var(--color-success-rgb), 0) 74%);opacity:.72;background-size:220% 100%;animation:2.8s linear infinite sp-chat-row-sheen;position:absolute;top:1px;bottom:1px;left:0;right:0}.sp-fragment-row--active:hover{background:rgba(var(--color-success-rgb), .1)}.sp-fragment-row--done .sp-fragment-label{opacity:.45}.sp-fragment-row--done .sp-fragment-range{opacity:.35}.sp-fragment-num{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);text-align:right;flex-shrink:0;width:18px}.sp-fragment-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sp-fragment-label{font-family:var(--font-head);font-size:var(--fs-md);letter-spacing:.02em;text-transform:uppercase;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.sp-fragment-notes{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);opacity:.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sp-fragment-range{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.sp-fragment-dur{opacity:.65}.sp-fragment-badges{flex-shrink:0;align-items:center;gap:5px;display:flex}.sp-fragment-speed{font-family:var(--font-mono);font-size:var(--fs-2xs);background:var(--white-a07);border:1px solid var(--border2);color:var(--muted);border-radius:5px;padding:2px 6px}.sp-fragment-status{color:var(--muted);font-size:14px;line-height:1}.sp-fragment-status--done{color:var(--on)}.sp-fragment-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.sp-reorder-pair{flex-direction:column;gap:1px;display:none}.sp-reorder-btn{display:none}.sp-done-mini,.sp-reorder-btn,.sp-edit-btn,.sp-del-btn{width:28px;height:28px;color:var(--muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:flex}.sp-done-mini{border-color:rgba(var(--color-success-rgb), .28);background:rgba(var(--color-success-rgb), .07);color:var(--on);font-weight:900}.sp-done-mini:hover{background:rgba(var(--color-success-rgb), .18)}.sp-done-mini--done{border-color:var(--border2);color:var(--muted);background:0 0}.sp-done-mini--done:hover{background:var(--white-a06);color:var(--text)}.sp-reorder-btn{height:13px;font-size:var(--fs-2xs)}.sp-reorder-btn:hover:not(:disabled){background:var(--white-a07);border-color:var(--border2);color:var(--text)}.sp-reorder-btn:disabled{opacity:.25;cursor:not-allowed}.sp-edit-btn:hover{background:var(--white-a07);border-color:var(--border2);color:var(--text)}.sp-del-btn:hover{background:rgba(var(--yt-bright-rgb),.12);border-color:rgba(var(--yt-bright-rgb),.35);color:var(--yt-red-bright)}.sp-add-form{border-bottom:1px solid var(--white-a06);background:radial-gradient(ellipse 450px 140px at 0% 0%, rgba(var(--yt-rgb), .08), transparent 58%), radial-gradient(ellipse 220px 120px at 100% 100%, rgba(var(--yt-bright-rgb),.05), transparent 55%), rgba(var(--white-rgb), .018);flex-direction:column;gap:12px;padding:16px 14px;display:flex;position:relative}.sp-add-form-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--yt-red-bright);font-weight:700}.sp-form-transport{background:rgba(var(--black-rgb), .28);border:1px solid var(--border2);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;display:flex}.sp-form-playpause{border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a07), var(--white-a02));width:32px;height:32px;color:var(--text);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), transform .12s;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sp-form-playpause svg{width:14px;height:14px;display:block}.sp-form-playpause:hover{background:rgba(var(--yt-rgb), .14);border-color:rgba(var(--yt-rgb), .4);transform:scale(1.08)}.sp-form-playpause--playing{background:linear-gradient(135deg, rgba(var(--yt-rgb), .22), #b4000024);border-color:rgba(var(--yt-rgb), .55);color:var(--white)}.sp-form-livetime{font-family:var(--font-mono);color:var(--text);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.sp-form-livetime-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);letter-spacing:.04em}.sp-add-label-input{box-sizing:border-box;background:rgba(var(--black-rgb), .3);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--font-head);font-size:var(--fs-md);letter-spacing:.02em;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:10px;outline:none;padding:13px 14px;font-weight:700}.sp-add-label-input:focus{border-color:rgba(var(--yt-rgb), .45);box-shadow:0 0 0 3px rgba(var(--yt-rgb), .1)}.sp-add-label-input::placeholder{color:var(--muted);opacity:.6;font-weight:400;font-family:var(--font-mono)}.sp-add-notes-input{box-sizing:border-box;background:rgba(var(--black-rgb), .22);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);resize:none;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:10px;outline:none;padding:10px 14px;line-height:1.5}.sp-add-notes-input:focus{border-color:rgba(var(--yt-rgb), .35);box-shadow:0 0 0 3px rgba(var(--yt-rgb), .08)}.sp-add-notes-input::placeholder{color:var(--muted);opacity:.55}.sp-add-ab-row{flex-direction:column;gap:8px;display:flex}.sp-ab-arrow{display:none}.sp-add-ab-group{background:rgba(var(--black-rgb), .18);border:1px solid var(--border2);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.sp-nudge-group{background:rgba(var(--black-rgb), .25);border:1px solid var(--white-a08);border-radius:var(--br-sm);align-items:center;gap:4px;padding:3px 4px;display:flex}.sp-mark-btn{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;border-radius:var(--br-sm);cursor:pointer;min-width:96px;transition:opacity var(--dur-fast), transform .12s;white-space:nowrap;flex-direction:column;align-items:center;gap:3px;padding:8px 16px;font-weight:900;display:flex}.sp-mark-btn-label{text-transform:uppercase;letter-spacing:.1em}.sp-mark-btn-hint{font-size:var(--fs-xs);letter-spacing:.02em;opacity:.75;font-variant-numeric:tabular-nums;font-weight:700}.sp-restart-btn{font-family:var(--font-mono);background:linear-gradient(180deg, var(--white-a07), var(--white-a02));border:1px solid var(--border2);width:36px;height:36px;color:var(--muted);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), transform .12s;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;font-size:16px;line-height:1;display:flex}.sp-restart-btn:hover{background:rgba(var(--color-success-rgb), .12);border-color:rgba(var(--color-success-rgb), .4);color:var(--on);transform:rotate(-30deg)scale(1.1)}.sp-restart-btn:active{transform:rotate(-60deg)scale(.95)}.sp-mark-btn:hover{opacity:1;filter:brightness(1.15);transform:translateY(-1px)}.sp-mark-btn:active{transform:scale(.97)}.sp-mark-btn:disabled,.sp-nudge-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.sp-mark-btn--a{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .18), rgba(var(--success-deep-rgb), .1));border:1.5px solid rgba(var(--color-success-rgb), .45);color:var(--on);box-shadow:0 2px 12px rgba(var(--color-success-rgb), .22), inset 0 1px 0 var(--white-a08)}.sp-mark-btn--b{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .16), rgba(var(--practice-deep-rgb), .09));border:1.5px solid rgba(var(--accent-practice-rgb), .42);color:var(--accent-oasis);box-shadow:0 2px 12px var(--oasis-a18), inset 0 1px 0 var(--white-a08)}.sp-nudge-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;border-radius:var(--br-xs);background:linear-gradient(180deg, var(--white-a07), var(--white-a02));border:1px solid var(--white-a10);min-width:38px;color:var(--muted);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), transform .12s, box-shadow var(--dur-fast);text-align:center;padding:7px 6px;font-weight:700}.sp-nudge-btn:hover{background:rgba(var(--yt-rgb), .13);border-color:rgba(var(--yt-rgb), .45);color:var(--text);box-shadow:0 0 8px rgba(var(--yt-rgb), .2)}.sp-nudge-btn:active{transform:scale(.95)}.sp-ab-time{font-family:var(--font-mono);font-size:var(--fs-base);text-align:center;font-variant-numeric:tabular-nums;min-width:46px;font-weight:700}.sp-ab-time--a{color:var(--on)}.sp-ab-time--b{color:var(--accent-oasis)}.sp-toggle-done{-webkit-appearance:none;appearance:none;background:rgba(var(--color-success-rgb), .08);border:1px solid rgba(var(--color-success-rgb), .25);width:100%;color:var(--on);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast);border-radius:10px;align-items:center;gap:6px;margin-top:4px;padding:10px 14px;font-weight:700;display:flex}.sp-toggle-done:hover{background:rgba(var(--color-success-rgb), .14);border-color:rgba(var(--color-success-rgb), .4)}.sp-add-speed-row{align-items:center;gap:10px;display:flex}.sp-add-speed-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-weight:700}.sp-speed-slider-wrap{flex:1;align-items:center;gap:10px;display:flex}.sp-tab-bar{background:rgba(var(--black-rgb), .28);border:1px solid var(--border);border-radius:var(--br-md);gap:4px;margin-bottom:20px;padding:4px;display:flex}.sp-tab-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--br-sm);color:var(--muted);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);background:0 0;border:none;flex:1;padding:8px 14px;font-weight:700}.sp-tab-btn--active{background:rgba(var(--white-rgb), .07);color:var(--text);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .06)}.sp-tab-btn:hover:not(.sp-tab-btn--active){background:rgba(var(--white-rgb), .04);color:var(--text)}.sp-tab-desc{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.03em;margin:0 0 4px;padding:0 2px}.sp-browse{flex-direction:column;gap:24px;display:flex}.sp-browse-cats{flex-wrap:wrap;gap:6px;display:flex}.sp-browse-cat-btn{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--br-pill);border:1px solid var(--border2);background:rgba(var(--white-rgb), .04);color:var(--muted);cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);padding:5px 10px;font-weight:700}.sp-browse-cat-btn--active{background:rgba(var(--yt-bright-rgb), .12);border-color:rgba(var(--yt-bright-rgb), .4);color:var(--yt-red-bright)}.sp-browse-cat-btn:hover:not(.sp-browse-cat-btn--active){background:rgba(var(--white-rgb), .07);color:var(--text)}.sp-curated-card{animation:sp-fade-up var(--dur-slow) ease-out both}.sp-curated-pills{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.sp-curated-cat{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;border-radius:var(--br-pill);border:1px solid;padding:2px 7px;font-weight:700}.sp-curated-cat--red{color:var(--yt-red-bright);border-color:rgba(var(--yt-bright-rgb), .38);background:rgba(var(--yt-bright-rgb), .1)}.sp-curated-cat--blue{color:var(--accent-oasis);border-color:rgba(var(--accent-practice-rgb), .35);background:rgba(var(--accent-practice-rgb), .09)}.sp-curated-cat--green{color:var(--on);border-color:rgba(var(--color-success-rgb), .35);background:rgba(var(--color-success-rgb), .09)}.sp-curated-cat--amber{color:var(--streak);border-color:rgba(var(--color-warning-rgb), .38);background:rgba(var(--color-warning-rgb), .09)}.sp-curated-cat--purple{color:#b57bff;background:#b57bff17;border-color:#b57bff59}.sp-curated-diff{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;border-radius:var(--br-pill);border:1px solid;padding:2px 6px;font-weight:700}.sp-curated-diff--beginner{color:var(--on);border-color:rgba(var(--color-success-rgb), .35);background:rgba(var(--color-success-rgb), .1)}.sp-curated-diff--intermediate{color:var(--streak);border-color:rgba(var(--color-warning-rgb), .38);background:rgba(var(--color-warning-rgb), .1)}.sp-curated-diff--advanced{color:var(--yt-red-bright);border-color:rgba(var(--yt-bright-rgb), .35);background:rgba(var(--yt-bright-rgb), .09)}.sp-browse-diff-btn--beginner.sp-browse-cat-btn--active{color:var(--on);border-color:rgba(var(--color-success-rgb), .55);background:rgba(var(--color-success-rgb), .14)}.sp-browse-diff-btn--intermediate.sp-browse-cat-btn--active{color:var(--streak);border-color:rgba(var(--color-warning-rgb), .55);background:rgba(var(--color-warning-rgb), .14)}.sp-browse-diff-btn--advanced.sp-browse-cat-btn--active{color:var(--yt-red-bright);border-color:rgba(var(--yt-bright-rgb), .5);background:rgba(var(--yt-bright-rgb), .12)}.sp-curated-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-radius:var(--br-pill);border:1px solid var(--border);background:rgba(var(--white-rgb), .03);padding:2px 6px}.sp-curated-sections-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);color:rgba(var(--color-success-rgb), .72);letter-spacing:.04em;margin-top:4px;display:block}.sp-curated-thumb-wrap{flex-shrink:0;position:relative}.sp-curated-lib-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--white);background:rgba(var(--success-deep-rgb), .92);border:1px solid rgba(var(--color-success-rgb), .55);box-shadow:0 0 8px rgba(var(--color-success-rgb), .4);pointer-events:none;border-radius:5px;padding:2px 5px;font-weight:700;position:absolute;top:5px;right:5px}.sp-curated-card--added{border-color:rgba(var(--color-success-rgb), .28);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .04) 0%, transparent 60%), var(--bg2)}.sp-browse-empty{text-align:center;border:1px dashed rgba(var(--white-rgb), .09);border-radius:var(--br-lg);background:rgba(var(--white-rgb), .01);padding:44px 24px}.sp-browse-empty-icon{margin-bottom:10px;font-size:32px}.sp-browse-empty-title{font-family:var(--font-head);font-size:var(--fs-xl);text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0 0 8px;font-weight:700}.sp-browse-empty-hint{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-base);margin:0}.sp-speed-slider{-webkit-appearance:none;appearance:none;border-radius:var(--br-pill);background:linear-gradient(to right, var(--on) 0%, var(--on) calc((var(--pct,50)) * 1%), var(--white-a12) calc((var(--pct,50)) * 1%), var(--white-a12) 100%);cursor:pointer;outline:none;flex:1;height:4px}.sp-speed-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--on);border:2px solid var(--black-a35);width:18px;height:18px;box-shadow:0 0 0 3px rgba(var(--color-success-rgb), .2);cursor:pointer;transition:box-shadow var(--dur-fast);border-radius:50%}.sp-speed-slider::-moz-range-thumb{background:var(--on);border:2px solid var(--black-a35);width:18px;height:18px;box-shadow:0 0 0 3px rgba(var(--color-success-rgb), .2);cursor:pointer;border-radius:50%}.sp-speed-slider:hover::-webkit-slider-thumb{box-shadow:0 0 0 5px rgba(var(--color-success-rgb), .3)}.sp-speed-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 5px rgba(var(--color-success-rgb), .3)}.sp-speed-slider:disabled{cursor:not-allowed;opacity:.5}.sp-speed-slider:disabled::-webkit-slider-thumb{cursor:not-allowed;box-shadow:none}.sp-speed-slider:disabled::-moz-range-thumb{cursor:not-allowed;box-shadow:none}.sp-speed-value{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--on);text-align:right;font-variant-numeric:tabular-nums;min-width:38px;font-weight:700}.sp-add-form-btns{gap:8px;display:flex}.sp-add-form-btns .sp-btn{flex:1}.sp-share-btn{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--oasis-a35);background:linear-gradient(135deg, var(--oasis-a12), rgba(var(--practice-deep-rgb), .07));color:var(--accent-oasis);cursor:pointer;white-space:nowrap;box-shadow:0 2px 10px rgba(var(--accent-practice-rgb), .14), inset 0 1px 0 var(--white-a06);border-radius:9px;flex-shrink:0;align-items:center;gap:5px;padding:9px 14px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s;display:inline-flex}.sp-share-btn:hover{background:linear-gradient(135deg, var(--oasis-a22), rgba(var(--practice-deep-rgb), .14));border-color:rgba(var(--accent-practice-rgb), .6);box-shadow:0 6px 18px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 var(--white-a10);transform:translateY(-1px)}.sp-share-btn:active{transform:scale(.97)}.sp-share-btn--copied{border-color:rgba(var(--color-success-rgb), .45);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .09));color:var(--on);box-shadow:0 2px 12px rgba(var(--color-success-rgb), .22), inset 0 1px 0 var(--white-a08)}@media (min-width:520px){.sp-add-song-row{flex-direction:row;align-items:stretch}.sp-add-song-row .sp-btn--primary{align-self:auto;min-width:100px}.sp-library-grid{grid-template-columns:repeat(2,1fr);gap:14px}.sp-song-thumb{width:116px;height:66px}.sp-practice-title{font-size:24px}.sp-practice-header{padding:20px 22px}.sp-active-label{max-width:180px}.sp-reorder-pair,.sp-reorder-btn{display:flex}.sp-transport{flex-direction:row;align-items:center;gap:10px}.sp-transport-right{flex-shrink:0;gap:10px}.sp-mark-done-btn{white-space:nowrap}.sp-add-ab-row{flex-direction:row;align-items:center;gap:8px}.sp-add-ab-group{flex:1;justify-content:space-between}.sp-ab-arrow{color:var(--muted);flex-shrink:0;font-size:14px;display:block}.sp-add-form-btns .sp-btn{flex:unset}}@media (min-width:760px){.sp-library,.sp-practice{gap:20px}.sp-practice{width:100%;max-width:none;margin:0}.sp-fragment-row{min-height:52px;padding:12px 18px}.sp-transport{padding:13px 18px}.sp-active-label{max-width:240px}.sp-quick-loop{margin:8px 14px 0;display:block}}.lp-library,.lp-practice{width:100%;min-width:0;max-width:var(--page-w-read);flex-direction:column;gap:14px;margin:0 auto;padding:4px 0 40px;display:flex}.lp-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--yt-red-bright);margin:0;font-weight:500}.lp-kicker--muted{color:var(--muted)}.lp-btn{border-radius:var(--br-md);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));min-height:48px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform var(--dur-fast), box-shadow var(--dur-fast), border-color var(--dur-fast);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:500;display:inline-flex}.lp-btn:disabled{opacity:.45;cursor:default}.lp-btn--primary{border-color:rgba(var(--yt-rgb), .5);background:var(--yt-grad);color:var(--white);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), 0 4px 14px rgba(var(--yt-rgb), .3)}.lp-btn--primary:not(:disabled):hover{box-shadow:0 8px 22px rgba(var(--yt-rgb), .45);transform:translateY(-1px)}.lp-btn--done{border-color:rgba(var(--color-success-rgb), .55);background:var(--success-grad);color:var(--white);box-shadow:0 4px 16px rgba(var(--color-success-rgb), .3)}.lp-btn--ghost:hover{border-color:rgba(var(--yt-bright-rgb), .4)}.lp-btn--sm{min-height:36px;font-size:var(--fs-2xs);padding:0 12px}.lp-btn-icon{flex:none;width:16px;height:16px}.lp-icon-btn,.lp-round-btn{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-icon-btn svg,.lp-round-btn svg{width:18px;height:18px}.lp-icon-btn:hover{color:var(--text);background:var(--white-a06)}.lp-round-btn{border:1px solid var(--border2);border-radius:50%}.lp-round-btn:hover{color:var(--text);border-color:rgba(var(--yt-bright-rgb), .4)}.lp-round-btn.is-copied{color:var(--on);border-color:rgba(var(--color-success-rgb), .45)}.lp-chip-btn{border:1px solid var(--border2);min-height:36px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:10px;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lp-chip-btn:hover{border-color:rgba(var(--yt-bright-rgb), .45)}.lp-chip-btn--added{color:var(--on);border-color:rgba(var(--color-success-rgb), .4)}.lp-icon-btn:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-round-btn:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-chip-btn:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-btn:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-tab:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-filter-chip:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-video-main:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-section-main:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-switch:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-free-toggle:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-done-toggle:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-menu-item:focus-visible{outline:2px solid var(--yt-red-bright);outline-offset:2px}.lp-head{flex-direction:column;gap:6px;display:flex}.lp-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.05}.lp-intro{color:var(--muted);max-width:560px;margin:0;font-size:14px}.lp-add{border-radius:var(--br-lg);border:1px solid rgba(var(--yt-bright-rgb), .35);background:var(--bg2);gap:8px;padding:6px;display:flex}.lp-add:focus-within{border-color:rgba(var(--yt-bright-rgb), .6);box-shadow:0 0 0 3px rgba(var(--yt-rgb), .1)}.lp-add-field{min-width:0;color:var(--muted);flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}.lp-add-icon{flex:none;width:16px;height:16px}.lp-add-input{min-width:0;height:44px;color:var(--text);font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1;font-size:15px}.lp-add-input::placeholder{color:var(--muted);opacity:.7}.lp-add-btn{min-height:44px}.lp-add-error{margin:-6px 0 0}.lp-tabs{border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.lp-tab{min-height:40px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:9px}.lp-tab.is-active{background:rgba(var(--yt-bright-rgb), .14);color:var(--yt-red-bright)}.lp-tab-desc{color:var(--muted);margin:0;font-size:13px}.lp-thumb{aspect-ratio:16/9;border:1px solid var(--border2);background:linear-gradient(135deg,#3a1a1a,#1a1a1a);border-radius:8px;flex:none;width:96px;position:relative;overflow:hidden}.lp-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lp-thumb-play{width:20px;height:20px;color:rgba(var(--white-rgb), .85);filter:drop-shadow(0 1px 3px rgba(var(--black-rgb), .6));margin:-10px 0 0 -10px;position:absolute;top:50%;left:50%}.lp-thumb--lg{width:132px}.lp-video-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lp-video-row{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);align-items:center;gap:8px;padding:8px;display:flex}.lp-video-main{min-width:0;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;align-items:center;gap:12px;padding:2px;display:flex}.lp-video-main--static{cursor:default}.lp-video-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.lp-video-title{color:var(--text);overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.25}.lp-video-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.lp-video-progress{align-items:center;gap:8px;display:flex}.lp-progress-track{background:rgba(var(--white-rgb), .1);border-radius:99px;flex:1;height:4px;overflow:hidden}.lp-progress-fill{background:var(--yt-red-bright);border-radius:99px;height:100%;display:block}.lp-progress-fill.is-complete{background:var(--on)}.lp-video-row--curated.is-added{border-color:rgba(var(--color-success-rgb), .28)}.lp-pills{flex-wrap:wrap;gap:4px;display:flex}.lp-resume{border-radius:var(--br-lg);border:1px solid rgba(var(--yt-bright-rgb), .3);background:radial-gradient(circle at 0% 0%, rgba(var(--yt-rgb), .14), transparent 55%), var(--bg2);box-shadow:var(--shadow-inset);flex-direction:column;gap:10px;padding:12px;display:flex}.lp-resume-top{justify-content:space-between;align-items:center;margin:-4px -4px -4px 0;display:flex}.lp-resume-body{align-items:center;gap:12px;display:flex}.lp-resume-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lp-resume-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;font-size:20px;font-weight:700;line-height:1.05}.lp-resume-next{color:var(--muted);font-size:13px}.lp-resume-next strong{color:var(--text);font-weight:600}.lp-resume-next--done{color:var(--on)}.lp-browse{flex-direction:column;gap:10px;min-width:0;display:flex}.lp-chip-row{scrollbar-width:none;gap:6px;max-width:100%;display:flex;overflow-x:auto}.lp-chip-row::-webkit-scrollbar{display:none}.lp-filter-chip{border:1px solid var(--border2);background:var(--bg2);min-height:34px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;border-radius:99px;flex:none;padding:0 12px}.lp-filter-chip.is-active{border-color:rgba(var(--yt-bright-rgb), .55);background:rgba(var(--yt-bright-rgb), .12);color:var(--yt-red-bright)}.lp-empty{border-radius:var(--br-lg);border:1px dashed rgba(var(--white-rgb), .1);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;display:flex}.lp-empty--compact{padding:18px 12px}.lp-empty-icon{width:32px;height:32px;color:var(--yt-red-bright)}.lp-empty-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700}.lp-empty-hint{color:var(--muted);max-width:420px;margin:0;font-size:14px}.lp-steps{text-align:left;flex-direction:column;gap:8px;max-width:420px;margin:4px 0;padding:0;list-style:none;display:flex}.lp-steps li{color:var(--text);align-items:flex-start;gap:10px;font-size:14px;display:flex}.lp-step-num{border:1px solid rgba(var(--yt-bright-rgb), .4);width:22px;height:22px;color:var(--yt-red-bright);font-family:var(--font-mono);font-size:var(--fs-2xs);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-step-num--a{border-color:rgba(var(--color-success-rgb), .4);color:var(--on)}.lp-step-num--b{border-color:rgba(var(--accent-practice-rgb), .4);color:var(--accent-oasis)}.lp-empty .lp-btn{width:100%;max-width:420px}.lp-topbar{align-items:center;gap:10px;display:flex}.lp-topbar-text{flex-direction:column;flex:1;min-width:0;display:flex}.lp-topbar-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:22px;font-weight:700;line-height:1.1;overflow:hidden}.lp-topbar-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.lp-player{border-radius:var(--br-lg);border:1px solid rgba(var(--yt-rgb), .32);box-shadow:0 0 24px rgba(var(--yt-rgb), .16);overflow:hidden}.lp-player .sp-player-wrap{border-radius:0}.lp-now{border-radius:var(--br-lg);border:1px solid rgba(var(--yt-bright-rgb), .3);background:var(--bg2);flex-direction:column;gap:10px;padding:12px;display:flex}.lp-now.is-free{border-color:rgba(var(--accent-practice-rgb), .35)}.lp-now--hint{border-style:dashed;border-color:rgba(var(--white-rgb), .14);color:var(--muted);text-align:center;margin:0;font-size:14px}.lp-now.is-free .lp-kicker{color:var(--accent-oasis)}.lp-now-row{align-items:center;gap:10px;display:flex}.lp-now-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lp-now-title{overflow-wrap:anywhere;font-size:15px;font-weight:600}.lp-now-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.lp-switch{border:1px solid var(--border2);min-height:40px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:99px;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lp-switch.is-on{border-color:rgba(var(--color-success-rgb), .45);background:rgba(var(--color-success-rgb), .12);color:var(--on)}.lp-all-done{border-radius:var(--br-lg)}.lp-free{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);overflow:hidden}.lp-free.is-open{border-color:rgba(var(--accent-practice-rgb), .35)}.lp-free-toggle{width:100%;min-height:48px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;display:flex}.lp-free.is-open .lp-free-label{color:var(--accent-oasis)}.lp-free-summary{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.lp-chevron{transition:transform var(--dur-fast)}.lp-free.is-open .lp-chevron,.lp-chevron.is-open{transform:rotate(180deg)}.lp-free-body{flex-direction:column;gap:10px;padding:0 12px 12px;display:flex}.lp-free-hint{color:var(--muted);margin:0;font-size:13px}.lp-free-status{background:rgba(var(--color-warning-rgb), .08);color:var(--streak);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.lp-sections{flex-direction:column;gap:8px;display:flex}.lp-sections-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.lp-section-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lp-section{border-radius:var(--br-md);border:1px solid var(--border);background:rgba(var(--black-rgb), .25);align-items:center;gap:4px;min-height:56px;padding:4px 4px 4px 0;display:flex;position:relative}.lp-section.is-active{border-color:rgba(var(--yt-bright-rgb), .45);background:rgba(var(--yt-bright-rgb), .08)}.lp-section-main{border-radius:var(--br-md);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:6px 4px 6px 12px;display:flex}.lp-section-num{border:1px solid var(--white-a12,rgba(var(--white-rgb), .12));width:28px;height:28px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-section-num svg{width:14px;height:14px}.lp-section.is-active .lp-section-num{border:2px solid var(--yt-red-bright);color:var(--yt-red-bright)}.lp-section.is-done .lp-section-num{background:var(--on);color:var(--bg);border:none}.lp-section-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lp-section-label{color:var(--text);overflow-wrap:anywhere;font-size:14px;font-weight:600}.lp-section.is-done .lp-section-label{color:var(--muted)}.lp-section-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);font-variant-numeric:tabular-nums}.lp-section-notes{color:var(--muted);font-size:12px;font-style:italic}.lp-section-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--yt-red-bright);flex:none;font-size:9px}.lp-menu-wrap{flex:none;position:relative}.lp-menu{z-index:20;border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg3);min-width:190px;box-shadow:var(--shadow-lg);flex-direction:column;padding:6px;animation:.14s ease-out both lp-menu-in;display:flex;position:absolute;top:calc(100% + 4px);right:0}.lp-menu-item{min-height:44px;color:var(--text);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-size:14px;display:flex}.lp-menu-item svg{width:16px;height:16px;color:var(--muted);flex:none}.lp-menu-item:hover:not(:disabled){background:var(--white-a06)}.lp-menu-item:disabled{opacity:.4;cursor:default}.lp-menu-item--danger,.lp-menu-item--danger svg{color:var(--yt-red-bright)}.lp-section-form{list-style:none}.lp-done-toggle{border:1px solid rgba(var(--color-success-rgb), .3);min-height:40px;color:var(--on);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:99px;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lp-shortcuts{text-align:center;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);margin:0}@media (hover:none){.lp-shortcuts{display:none}}@keyframes lp-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (min-width:760px){.lp-title{font-size:40px}.lp-thumb{width:128px}.lp-thumb--lg{width:200px}.lp-resume-title{font-size:26px}}.mt{gap:var(--sp-4);width:100%;min-width:0;max-width:var(--page-w-read);flex-direction:column;margin:0 auto;padding:4px 0 40px;display:flex}.mt-anchor{scroll-margin-top:80px}.mt-hero{gap:var(--sp-4);padding:var(--sp-5) var(--sp-4) var(--sp-4);flex-direction:column;display:flex}.mt-title{margin-top:-6px}.mt-intro{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted);margin:-8px 0 0}.mt-beats{gap:var(--sp-2);padding:var(--sp-2) 0;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.mt-beats--many{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row}.mt-beat{border-radius:var(--br-md);min-height:64px;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px 0;display:flex}.mt-beat:focus-visible{outline:2px solid var(--page-accent);outline-offset:2px}.mt-beat-dot{background:var(--white-a12);border:2px solid #0000;border-radius:50%;width:26px;height:26px;transition:transform 80ms ease-out,background 80ms,box-shadow 80ms}.mt-beat--first .mt-beat-dot{width:34px;height:34px}.mt-beat--strong .mt-beat-dot{background:rgba(var(--page-accent-rgb), .32);border-color:rgba(var(--page-accent-rgb), .6)}.mt-beat--mute .mt-beat-dot{border:2px dashed var(--border2);background:0 0}.mt-beat-num{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;font-variant-numeric:tabular-nums}.mt-beat.is-on .mt-beat-dot{background:var(--on);border-color:var(--on);box-shadow:0 0 18px rgba(var(--color-success-rgb), .65);transform:scale(1.18)}.mt-beat--strong.is-on .mt-beat-dot{background:var(--page-accent);border-color:var(--page-accent);box-shadow:0 0 22px rgba(var(--page-accent-rgb), .75)}.mt-beat--mute.is-on .mt-beat-dot{box-shadow:none;border-color:var(--muted);background:0 0}.mt-beat.is-on .mt-beat-num{color:var(--text)}.mt-beats--many .mt-beat-dot{width:20px;height:20px}.mt-beats--many .mt-beat--first .mt-beat-dot{width:26px;height:26px}.mt-beats--many .mt-beat{min-height:52px}.mt-bpm-row{align-items:center;gap:var(--sp-3);grid-template-columns:56px 1fr 56px;display:grid}.mt-bpm{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.mt-bpm-value{font-family:var(--font-head);letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--text);font-size:72px;font-weight:700;line-height:.95}.mt-bpm.is-training .mt-bpm-value{color:var(--page-accent)}.mt-bpm-unit{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.mt-slider-row{align-items:center;gap:var(--sp-3);display:flex}.mt-slider-value{text-align:right;min-width:40px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--page-accent);font-variant-numeric:tabular-nums;font-weight:700}.mt-actions{gap:var(--sp-3);grid-template-columns:1fr auto;display:grid}.mt-tap{min-width:96px}.mt-tap:active{background:rgba(var(--page-accent-rgb), .16);transform:scale(.97)}.mt-warning{font-size:var(--fs-sm);color:var(--streak);margin:0}.mt-shortcuts{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);opacity:.8;text-align:center;margin:0;display:none}@media (hover:hover) and (pointer:fine){.mt-shortcuts{display:block}}.mt-trainer{gap:var(--sp-4);padding:var(--sp-4);flex-direction:column;display:flex}.mt-trainer.is-on{border-color:rgba(var(--page-accent-rgb), .35)}.mt-trainer-head{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.mt-trainer-text{flex-direction:column;gap:2px;min-width:0;display:flex}.mt-trainer-title{font-family:var(--font-head);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;font-weight:700;line-height:var(--lh-snug);margin:0}.mt-trainer-hint{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--muted);margin:0}.mt-trainer-body{gap:var(--sp-4);flex-direction:column;display:flex}.mt-target{align-items:center;gap:var(--sp-3);display:inline-flex}.mt-target-value{text-align:center;min-width:96px;font-family:var(--font-head);font-size:var(--fs-hero);font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.mt-target-unit{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;color:var(--muted)}.mt-trainer-note{font-size:var(--fs-sm);color:var(--muted);margin:0}.mt-trainer-status{gap:var(--sp-2);flex-direction:column;display:flex}.mt-trainer-track{background:var(--white-a08);border-radius:99px;height:6px;overflow:hidden}.mt-trainer-fill{border-radius:inherit;background:var(--page-grad);height:100%;transition:width var(--dur-slow) var(--ease-out);display:block}.mt-trainer-live{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.04em;color:var(--page-accent);font-variant-numeric:tabular-nums;margin:0}.mt-trainer-live.is-reached{color:var(--on)}.mt-settings{gap:var(--sp-4);padding:var(--sp-4);flex-direction:column;display:flex}.mt-setting{gap:var(--sp-2);flex-direction:column;display:flex}.mt-setting-note{font-size:var(--fs-sm);color:var(--muted);margin:-8px 0 0}.mt-chip-glyph{font-size:var(--fs-lg);line-height:1}.mt-cta{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);flex-direction:column;display:flex}.mt-cta-btn{margin-top:var(--sp-2)}.mt-section{gap:var(--sp-3);padding:var(--sp-4) var(--sp-1) 0;flex-direction:column;display:flex}.mt-links{gap:var(--sp-2);font-size:var(--fs-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mt-table-bpm{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}.mt-table-pick{border:none;border-bottom:1px dashed var(--border2);min-height:40px;color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;padding:0;font-weight:600}.mt-table-pick:hover{color:var(--page-accent);border-bottom-color:var(--page-accent)}@media (min-width:520px){.mt-hero{padding:var(--sp-6) var(--sp-6) var(--sp-5)}.mt-settings,.mt-trainer,.mt-cta{padding:var(--sp-5) var(--sp-6)}.mt-beats--many{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}}@media (min-width:760px){.mt-title{font-size:36px}.mt-bpm-value{font-size:96px}.mt-bpm-row{grid-template-columns:64px 1fr 64px}.mt-step{width:64px;height:64px}}@media (prefers-reduced-motion:reduce){.mt-beat.is-on .mt-beat-dot{transform:none}}.tu{gap:var(--sp-4);width:100%;min-width:0;max-width:var(--page-w-read);flex-direction:column;margin:0 auto;padding:4px 0 40px;display:flex}.tu-hero{gap:var(--sp-4);padding:var(--sp-5) var(--sp-4) var(--sp-4);flex-direction:column;display:flex}.tu-title{margin-top:-6px}.tu-intro{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted);margin:-8px 0 0}.tu-meter{--tu-state:var(--muted);align-items:stretch;gap:var(--sp-2);padding:var(--sp-2) 0;flex-direction:column;display:flex}.tu-meter--flat,.tu-meter--sharp{--tu-state:var(--streak)}.tu-meter--in{--tu-state:var(--on)}.tu-note{justify-content:center;align-items:baseline;gap:2px;min-height:104px;display:flex}.tu-note-name{font-family:var(--font-head);color:var(--text);transition:color var(--dur-fast);font-size:96px;font-weight:700;line-height:1}.tu-meter--in .tu-note-name{color:var(--on);text-shadow:0 0 24px rgba(var(--color-success-rgb), .45)}.tu-meter--idle .tu-note-name{color:var(--white-a12)}.tu-note-octave{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--muted)}.tu-scale{border-radius:var(--br-sm);background:var(--white-a04);height:44px;margin:0 6px;position:relative;overflow:hidden}.tu-scale-zone{background:rgba(var(--color-success-rgb), .16);border-left:1px solid rgba(var(--color-success-rgb), .35);border-right:1px solid rgba(var(--color-success-rgb), .35);width:10%;position:absolute;top:0;bottom:0;left:45%}.tu-tick{background:var(--white-a12);width:1px;height:10px;position:absolute;bottom:0;transform:translate(-50%)}.tu-tick--zero{background:rgba(var(--color-success-rgb), .6);height:100%}.tu-needle{background:var(--tu-state);width:4px;box-shadow:0 0 14px var(--tu-state);transition:left .12s ease-out, background var(--dur-fast);border-radius:2px;position:absolute;top:4px;bottom:4px;transform:translate(-50%)}.tu-meter--idle .tu-needle{opacity:.25;box-shadow:none}.tu-scale-labels{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);justify-content:space-between;margin:0 6px;display:flex}.tu-status{justify-content:center;align-items:baseline;gap:var(--sp-3);min-height:24px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;margin:0;display:flex}.tu-status-label{color:var(--tu-state);font-weight:700}.tu-status-cents{color:var(--muted);font-variant-numeric:tabular-nums;text-transform:none}.tu-strings{gap:var(--sp-2);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.tu-string{border-radius:var(--br-md);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));min-height:56px;color:var(--text);cursor:pointer;touch-action:manipulation;transition:background var(--dur-fast), border-color var(--dur-fast);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tu-string:hover{border-color:rgba(var(--page-accent-rgb), .45);background:rgba(var(--page-accent-rgb), .08)}.tu-string-note{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:700;line-height:1}.tu-string-num{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.tu-string.is-active{border-color:var(--streak);background:rgba(var(--color-warning-rgb), .12)}.tu-string.is-in{border-color:var(--on);background:rgba(var(--color-success-rgb), .15)}.tu-string.is-in .tu-string-note{color:var(--on)}.tu-string:focus-visible{outline:2px solid var(--text);outline-offset:2px}.tu-actions{gap:var(--sp-2);flex-direction:column;display:flex}.tu-level{background:var(--white-a08);border-radius:99px;height:4px;display:block;overflow:hidden}.tu-level-fill{background:var(--page-accent);height:100%;transition:width 80ms linear;display:block}.tu-warning{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--streak);margin:0}.tu-hint{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--muted);margin:0}.tu-privacy{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);text-align:center;margin:0}.tu-settings{gap:var(--sp-4);padding:var(--sp-4);flex-direction:column;display:flex}.tu-setting{gap:var(--sp-2);flex-direction:column;display:flex}.tu-setting-note{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;color:var(--muted);margin:0}.tu-a4{align-items:center;gap:var(--sp-3);display:inline-flex}.tu-a4-value{text-align:center;min-width:120px;font-family:var(--font-mono);font-size:var(--fs-md);font-variant-numeric:tabular-nums;color:var(--text)}.tu-cta{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);flex-direction:column;display:flex}.tu-cta-btn{margin-top:var(--sp-2)}.tu-section{gap:var(--sp-3);padding:var(--sp-4) var(--sp-1) 0;flex-direction:column;display:flex}.tu-links{gap:var(--sp-2);font-size:var(--fs-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tu-table-notes{font-family:var(--font-mono);white-space:nowrap;color:var(--text)}.tu-table-pick{border:none;border-bottom:1px dashed var(--border2);min-height:40px;color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;padding:0;font-weight:600}.tu-table-pick:hover{color:var(--page-accent);border-bottom-color:var(--page-accent)}@media (min-width:520px){.tu-hero{padding:var(--sp-6) var(--sp-6) var(--sp-5)}.tu-settings,.tu-cta{padding:var(--sp-5) var(--sp-6)}}@media (min-width:760px){.tu-title{font-size:36px}.tu-note-name{font-size:120px}.tu-note{min-height:128px}}@media (prefers-reduced-motion:reduce){.tu-needle{transition:none}}.profile-page{max-width:var(--page-w-app);flex-direction:column;gap:1.25rem;margin:0 auto;padding:1.5rem 1rem 5rem;display:flex}.profile-hero{flex-direction:column;gap:.9rem;display:flex}.profile-hero-identity{align-items:center;gap:1rem;display:flex}.profile-avatar{object-fit:cover;border:2px solid var(--white-a12);border-radius:50%;flex-shrink:0;width:56px;height:56px}.profile-avatar--initials{background:rgba(var(--accent-you-rgb), .07);border-color:rgba(var(--accent-you-rgb), .23);color:var(--accent-you);box-shadow:0 0 18px rgba(var(--accent-you-rgb), .14);font-size:var(--fs-xl);font-weight:700;font-family:var(--font-head);letter-spacing:.05em;justify-content:center;align-items:center;display:flex}.profile-avatar--icon svg{width:46%;height:46%}.profile-hero-text{flex-direction:column;gap:.15rem;display:flex}.profile-kicker{text-transform:uppercase;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;color:var(--accent-you);text-shadow:0 0 12px rgba(var(--accent-you-rgb), .25), 0 0 28px rgba(var(--accent-you-rgb), .09);margin:0;font-weight:700}.profile-hero-name{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-you);text-shadow:0 0 18px rgba(var(--accent-you-rgb), .16);margin:0;font-weight:700;line-height:1.1}.profile-hero-since{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em;color:var(--muted);margin:0;line-height:1.6}.profile-signin-banner{border-radius:var(--br-sm);background:var(--oasis-a10);border:1px solid var(--oasis-a35);font-size:var(--fs-base);color:var(--accent-oasis);flex-wrap:wrap;align-items:center;gap:.9rem;padding:.65rem .9rem;display:flex}.profile-signin-btn{-webkit-appearance:none;appearance:none;background:rgba(var(--accent-you-rgb), .05);border:1px solid rgba(var(--accent-you-rgb), .18);color:var(--accent-you);border-radius:var(--br-xs);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:.35rem .75rem;font-weight:600}.profile-signin-btn:hover{background:rgba(var(--accent-you-rgb), .1)}.profile-section{background:radial-gradient(ellipse 700px 260px at 0% 0%, rgba(var(--accent-you-rgb), .23), transparent 58%), radial-gradient(ellipse 400px 240px at 100% 100%, rgba(var(--color-warning-rgb), .36), transparent 55%), radial-gradient(ellipse 300px 200px at 50% 110%, rgba(var(--accent-you-rgb), .06), transparent 55%), var(--bg2);border:1px solid rgba(var(--accent-you-rgb), .26);border-radius:var(--br-md);box-shadow:0 6px 28px rgba(var(--black-rgb), .35), 0 0 80px rgba(var(--accent-you-rgb), .06), inset 0 1px 0 #ffdc642e;padding:1rem 1.1rem 1.2rem;position:relative;overflow:hidden}.profile-section:before{content:"";background:linear-gradient(90deg, rgba(var(--accent-you-rgb), .09) 0%, #ffd250f2 35%, rgba(var(--color-warning-rgb), .9) 70%, rgba(var(--accent-you-rgb), .07) 100%);height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.profile-section-header{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.profile-section-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.05em;text-transform:uppercase;color:#e6c86eeb;text-shadow:0 0 18px rgba(var(--accent-you-rgb), .16);align-items:center;gap:.4rem;margin:0;font-weight:700;display:flex}.profile-section-icon{font-size:.95rem}.profile-toggle-completed{-webkit-appearance:none;appearance:none;background:rgba(var(--color-success-rgb), .1);border:1px solid rgba(var(--color-success-rgb), .3);color:var(--journey-far);border-radius:var(--br-pill);font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;align-self:flex-start;margin-top:.4rem;padding:.25rem .65rem;font-weight:600}.profile-toggle-completed:hover{background:rgba(var(--color-success-rgb), .18)}@media (max-width:600px){.profile-field--grow{grid-column:auto}}.profile-field-label,.profile-field span{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em}.profile-field-hint{min-height:1rem;color:var(--muted);letter-spacing:.02em;margin-top:.25rem;font-size:.75rem;display:block}@keyframes profile-goal-celebration-in{0%{opacity:0;transform:scaleY(.74)}to{opacity:1;transform:scaleY(1)}}.profile-goal-celebration{border:1px solid rgba(var(--color-success-rgb), .34);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .08)), rgba(var(--black-rgb), .1);box-shadow:inset 0 1px 0 rgba(var(--color-success-rgb), .2), 0 8px 24px rgba(var(--black-rgb), .2);transform-origin:top;animation:profile-goal-celebration-in var(--dur-slow) var(--ease-spring) both;border-radius:10px;align-items:center;gap:12px;margin:0 0 .7rem;padding:.72rem .8rem;display:flex}.profile-goal-celebration-icon{width:24px;height:24px;color:var(--on);filter:drop-shadow(0 0 8px rgba(var(--color-success-rgb), .4));flex-shrink:0}.profile-goal-celebration-text{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-goal-celebration-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--on);font-size:16px;font-weight:700;line-height:1.1}.profile-goal-celebration-sub{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--color-success-rgb), .7);font-weight:600;line-height:1.35}.profile-goal-celebration-close{-webkit-appearance:none;appearance:none;border:1px solid rgba(var(--color-success-rgb), .36);background:rgba(var(--color-success-rgb), .08);color:var(--on);border-radius:var(--br-xs);cursor:pointer;width:24px;height:24px;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.profile-goal-celebration-close:hover{background:rgba(var(--color-success-rgb), .16);border-color:rgba(var(--color-success-rgb), .5)}.profile-goal-item{border:1px solid var(--white-a08);background:var(--white-a02);transition:border-color var(--dur-fast);border-radius:10px;align-items:flex-start;gap:.6rem;padding:.6rem .5rem .6rem .6rem;display:flex}.profile-goal-item:hover{border-color:rgba(var(--accent-you-rgb), .14)}.profile-goal-item--done{opacity:.6}.profile-goal-check{-webkit-appearance:none;appearance:none;border:2px solid rgba(var(--white-rgb), .25);cursor:pointer;width:22px;height:22px;transition:border-color var(--dur-fast), background var(--dur-fast);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.55rem;padding:0;display:flex}.profile-goal-check:hover{border-color:var(--journey-far);background:rgba(var(--color-success-rgb), .1)}.profile-goal-check--done{border-color:var(--journey-far);background:rgba(var(--color-success-rgb), .15)}.profile-goal-check--done:after{content:"✓";color:var(--journey-far);font-size:.7rem;line-height:1}.profile-goal-check-ring{display:none}.profile-goal-body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.profile-goal-name-input{color:inherit;background:0 0;border:none;width:100%;min-width:0;padding:.3rem .1rem;font-family:inherit;font-size:.93rem}.profile-goal-name-input:focus{border-bottom:1px solid rgba(var(--accent-you-rgb), .32);outline:none}.profile-goal-name-input::placeholder{color:var(--muted);font-style:italic}.profile-goal-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.profile-goal-date-input{-webkit-appearance:none;appearance:none;background:rgba(var(--black-rgb), .25);border:1px solid var(--white-a10);color:var(--muted);cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:5px;padding:.2rem .5rem;font-family:inherit;font-size:.75rem}.profile-goal-date-input:focus{outline:1px solid rgba(var(--accent-you-rgb), .32);box-shadow:0 0 0 3px rgba(var(--accent-you-rgb), .05)}.profile-goal-date-input::-webkit-calendar-picker-indicator{filter:invert(.6);opacity:.7;cursor:pointer}.profile-goal-remaining{letter-spacing:.02em;font-size:.74rem}.profile-goal-delete{-webkit-appearance:none;appearance:none;color:rgba(var(--white-rgb), .25);cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;border-radius:4px;flex-shrink:0;margin-top:.3rem;padding:.2rem .3rem;font-size:1.2rem;line-height:1}.profile-goal-delete:hover{color:var(--color-danger);background:rgba(var(--color-danger-rgb), .1)}.profile-list--completed-panel{border-top:1px solid var(--white-a07);margin-top:.5rem;padding-top:.6rem}.profile-completed-name{text-decoration:line-through;-webkit-text-decoration-color:rgba(var(--white-rgb), .3);text-decoration-color:rgba(var(--white-rgb), .3);color:var(--muted);font-size:.88rem}.profile-past-gear{border-top:1px solid var(--white-a07);flex-direction:column;gap:.5rem;padding-top:.6rem;display:flex}.profile-past-gear-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.72rem}.profile-gear-item{border:1px solid var(--white-a07);border-radius:var(--br-sm);background:rgba(var(--white-rgb), .015);align-items:flex-start;gap:.6rem;padding:.55rem .4rem .55rem .55rem;display:flex}.profile-gear-type-chip{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--white-a06);white-space:nowrap;border-radius:4px;flex-shrink:0;margin-top:.6rem;padding:.2rem .45rem;font-size:.68rem}.profile-gear-fields{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.profile-gear-name-input{color:inherit;background:0 0;border:none;width:100%;padding:.3rem .1rem;font-family:inherit;font-size:.9rem}.profile-gear-name-input:focus{border-bottom:1px solid rgba(var(--accent-you-rgb), .32);outline:none}.profile-gear-name-input::placeholder{color:var(--muted);font-style:italic}.profile-gear-row2{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.profile-gear-select{-webkit-appearance:auto;appearance:auto;background:rgba(var(--black-rgb), .25);border:1px solid var(--white-a10);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:5px;padding:.2rem .4rem;font-family:inherit;font-size:.75rem}.profile-gear-date-input{-webkit-appearance:none;appearance:none;background:rgba(var(--black-rgb), .25);border:1px solid var(--white-a10);color:var(--muted);cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:5px;padding:.2rem .5rem;font-family:inherit;font-size:.75rem}.profile-gear-date-input::-webkit-calendar-picker-indicator{filter:invert(.6);opacity:.7;cursor:pointer}.profile-leave-btn{-webkit-appearance:none;appearance:none;border:1px solid rgba(var(--color-danger-rgb), .38);color:var(--color-danger);border-radius:var(--br-sm);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);background:0 0;align-self:flex-start;margin-top:8px;padding:.5rem .85rem;font-weight:600}.profile-leave-btn:hover:not(:disabled){border-color:rgba(var(--color-danger-rgb), .7);background:rgba(var(--color-danger-rgb), .08)}.profile-leave-btn:disabled{opacity:.5;cursor:default}.profile-leave-error{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-danger);margin:0 0 6px}.profile-save-pill{border-radius:var(--br-pill);font-size:.78rem;font-family:var(--font-mono,monospace);letter-spacing:.04em;text-transform:uppercase;pointer-events:none;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:.45rem;padding:.5rem 1rem;transition:opacity .3s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.profile-save-pill[data-state=pending]{color:#a89f98;background:#28241ce0;border:1px solid #a89f984d}.profile-save-pill[data-state=saving]{border:1px solid rgba(var(--accent-teach-rgb), .4);color:var(--journey-near);background:#282414e0}.profile-save-pill[data-state=saved]{border:1px solid rgba(var(--color-success-rgb), .4);color:var(--journey-far);background:#14281ee0}.profile-save-pill[data-state=error]{border:1px solid rgba(var(--color-danger-rgb), .4);color:#f06060;background:#281414e0}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-save-spinner{border:2px solid rgba(var(--accent-teach-rgb), .3);border-top-color:var(--journey-near);border-radius:50%;width:10px;height:10px;animation:.7s linear infinite profile-spin;display:inline-block}@media (max-width:600px){.profile-save-pill{font-size:.72rem;bottom:1rem;right:1rem}}.profile-section-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.05em;text-transform:uppercase;color:#e6c86eeb;text-shadow:0 0 18px rgba(var(--accent-you-rgb), .16);margin:0 0 .8rem;font-weight:700}.profile-section-body{flex-direction:column;gap:.8rem;display:flex}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start;gap:.7rem;display:grid}.profile-field{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.profile-field--grow{grid-column:span 2}@media (max-width:600px){.profile-field--grow{grid-column:auto}}.profile-field span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.profile-field input,.profile-field select{background:var(--black-a35);border:1px solid rgba(var(--accent-you-rgb), .1);border-radius:var(--br-xs);color:inherit;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding:.55rem .7rem;font-family:inherit;font-size:.95rem}.profile-field input[type=date]{cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.profile-field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer;opacity:.85}.profile-field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.profile-field input:focus,.profile-field select:focus{outline:2px solid rgba(var(--accent-you-rgb), .32);outline-offset:1px;box-shadow:0 0 0 4px rgba(var(--accent-you-rgb), .05)}.profile-field-hint{min-height:1.05rem;color:var(--muted);letter-spacing:.02em;text-transform:none;margin-top:.3rem;font-size:.78rem;display:block}.profile-field-hint--far{color:var(--journey-far)}.profile-field-hint--near{color:var(--journey-near)}.profile-field-hint--soon{color:var(--journey-soon)}.profile-field-hint--overdue{color:var(--journey-overdue);font-weight:600}.profile-completed-name{text-decoration:line-through;-webkit-text-decoration-color:rgba(var(--white-rgb), .35);text-decoration-color:rgba(var(--white-rgb), .35);font-weight:500}.profile-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.profile-tag{background:rgba(var(--color-success-rgb), .15);border:1px solid rgba(var(--color-success-rgb), .4);color:#7be0a3;border-radius:var(--br-pill);letter-spacing:.05em;text-transform:uppercase;padding:.15rem .55rem;font-size:.72rem;display:inline-block}.profile-add-btn{-webkit-appearance:none;appearance:none;border:1px solid rgba(var(--accent-you-rgb), .18);color:var(--accent-you);border-radius:var(--br-sm);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);background:0 0;align-self:flex-start;padding:.55rem .85rem;font-weight:600}.profile-add-btn:hover{border-color:rgba(var(--accent-you-rgb), .34);color:#e8c85a;background:rgba(var(--accent-you-rgb), .04)}.profile-empty{color:var(--muted);margin:0;font-size:.9rem;font-style:italic}@media (max-width:767px){.profile-save-pill{bottom:calc(var(--bottom-nav-h) + 16px + var(--safe-bottom))}}.profile-hero-chips{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.profile-hero-chip{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--white-a04);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:4px 10px;overflow:hidden}.profile-hero-chip--goals{border-color:rgba(var(--accent-you-rgb), .2);color:var(--accent-you)}.profile-hero-chip--done{border-color:rgba(var(--color-success-rgb), .4);color:var(--on)}.profile-section{background:radial-gradient(ellipse 520px 200px at 0% 0%, rgba(var(--accent-you-rgb), .05), transparent 60%), var(--bg2);border:1px solid rgba(var(--accent-you-rgb), .13);border-radius:var(--br-lg);padding:var(--sp-4) var(--sp-4) var(--sp-5);box-shadow:var(--shadow-lg), var(--shadow-inset)}.profile-section:before{background:linear-gradient(90deg, rgba(var(--accent-you-rgb), .07) 0%, var(--accent-you) 40%, rgba(var(--accent-you-rgb), .07) 100%)}.profile-section-title{color:var(--accent-you);text-shadow:none;gap:var(--sp-2)}.profile-section-icon{border-radius:var(--br-sm);background:rgba(var(--accent-you-rgb), .05);width:30px;height:30px;color:var(--accent-you);font-size:inherit;justify-content:center;align-items:center;display:inline-flex}.profile-toggle-completed{border-radius:var(--br-pill);border:1px solid rgba(var(--color-success-rgb), .35);background:rgba(var(--color-success-rgb), .08);min-height:40px;color:var(--on);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.profile-toggle-completed svg{transition:transform var(--dur-normal) var(--ease-out)}.profile-toggle-completed[aria-expanded=true] svg{transform:rotate(180deg)}.profile-toggle-completed:focus-visible{outline:2px solid var(--on);outline-offset:2px}.sg-page{max-width:var(--page-w-app);flex-direction:column;gap:2.5rem;margin:0 auto;padding:0 1rem 6rem;animation:.2s ease-out fadeIn;display:flex}.sg-hero{flex-direction:column;gap:12px;padding:0;display:flex}.sg-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:700}.sg-headline{font-family:var(--font-head);font-size:var(--fs-hero);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700;line-height:1.1}.sg-entities{flex-direction:column;gap:10px;margin-top:4px;display:flex}.sg-entity{border-left:2px solid var(--border2);flex-direction:column;gap:3px;padding-left:10px;display:flex}.sg-entity-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-oasis);font-weight:700}.sg-entity-desc{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.02em;margin:0;line-height:1.6}@media (min-width:520px){.sg-entities{flex-direction:row;gap:20px}.sg-entity{flex:1}}.sg-sub{color:var(--muted);font-size:var(--fs-md);margin:0;line-height:1.7}.sg-users{border-top:1px solid var(--border);padding:2rem 0}.sg-users-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:.25rem 0 1.25rem;font-size:22px;font-weight:700;line-height:1.2}.sg-users-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (max-width:560px){.sg-users-grid{grid-template-columns:1fr}}.sg-user-card{background:var(--bg2);border:1px solid var(--border2);border-radius:14px;flex-direction:column;gap:10px;padding:18px;display:flex}.sg-user-card--student{border-color:rgba(var(--color-success-rgb), .22)}.sg-user-card--teacher{border-color:rgba(var(--accent-teach-rgb), .22)}.sg-user-card-head{align-items:center;gap:8px;display:flex}.sg-user-card-icon{font-size:20px;line-height:1}.sg-user-card-label{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;font-size:14px;font-weight:700}.sg-user-card--student .sg-user-card-label{color:var(--on)}.sg-user-card--teacher .sg-user-card-label{color:var(--accent-clapton)}.sg-user-card-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;background:rgba(var(--accent-teach-rgb), .1);border:1px solid rgba(var(--accent-teach-rgb), .28);color:var(--accent-clapton);border-radius:5px;margin-left:auto;padding:2px 7px;font-weight:700}.sg-user-card-headline{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0;font-size:16px;font-weight:700;line-height:1.2}.sg-user-points{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sg-user-point{font-family:var(--font-body);color:var(--muted);padding-left:14px;font-size:12px;line-height:1.5;position:relative}.sg-user-point:before{content:"—";font-size:10px;position:absolute;left:0}.sg-user-card--student .sg-user-point:before{color:rgba(var(--color-success-rgb), .45)}.sg-user-card--teacher .sg-user-point:before{color:rgba(var(--accent-teach-rgb), .4)}.sg-user-card-more{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-clapton);border-bottom:1px solid rgba(var(--accent-teach-rgb), .35);align-self:flex-start;margin-top:2px;font-size:10px;font-weight:700;text-decoration:none;transition:color .15s,border-color .15s}.sg-user-card-more:hover{color:var(--white);border-bottom-color:rgba(var(--accent-teach-rgb), .7)}.sg-card-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sg-card-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;background:rgba(var(--color-success-rgb), .1);border:1px solid rgba(var(--color-success-rgb), .3);color:var(--on);white-space:nowrap;border-radius:5px;padding:2px 7px;font-weight:700}.sg-card-bullet-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.8;margin:.3rem 0 0;font-size:10px;font-weight:700}.sg-card-bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sg-card-bullet{font-family:var(--font-body);color:var(--muted);padding-left:14px;font-size:12px;line-height:1.5;position:relative}.sg-card-bullet:before{content:"—";color:var(--sg-accent,var(--accent-oasis));opacity:.65;font-size:10px;position:absolute;left:0}.sg-card-contact-prompt{border-top:1px solid var(--border);color:var(--text);margin:.5rem 0 0;padding-top:.6rem;font-size:12px;line-height:1.6}.sg-card-contact-link{-webkit-appearance:none;appearance:none;background:var(--white-a04);border:1px solid var(--white-a12);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;border-radius:var(--br-xs);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);align-self:flex-start;align-items:center;gap:.4rem;margin-top:.2rem;padding:.45rem .9rem;text-decoration:none;display:inline-flex}.sg-card-contact-link:hover{border-color:var(--sg-accent,var(--accent-oasis));color:var(--sg-accent,var(--accent-oasis));background:var(--oasis-a08)}.sg-academy{--sg-accent:var(--accent-clapton);background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .22);border-radius:var(--br-lg);box-shadow:var(--shadow-md), var(--shadow-inset);flex-direction:column;gap:.6rem;margin-top:14px;padding:1.5rem;display:flex}.sg-academy-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-clapton);margin:0;font-weight:700}.sg-academy-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:20px;font-weight:700;line-height:1.2}.sg-academy-body{font-family:var(--font-body);color:var(--muted);max-width:640px;margin:0;font-size:14px;line-height:1.7}.sg-academy-grid{grid-template-columns:1.3fr 1fr;align-items:start;gap:20px;margin-top:.4rem;display:grid}@media (max-width:700px){.sg-academy-grid{grid-template-columns:1fr}}.sg-academy-domain{flex-direction:column;gap:0;display:flex}.sg-academy-domain-bar{background:rgba(var(--black-rgb), .35);border:1px solid var(--border2);border-radius:10px 10px 0 0;align-items:center;gap:6px;padding:10px 14px;display:flex}.sg-academy-domain-dot{background:var(--border2);border-radius:50%;width:8px;height:8px}.sg-academy-domain-url{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);margin-left:10px;font-size:12px}.sg-academy-domain-url strong{color:var(--accent-clapton);font-weight:700}.sg-academy-domain-caption{border:1px solid var(--border2);background:rgba(var(--accent-teach-rgb), .04);font-family:var(--font-mono);letter-spacing:.03em;color:var(--muted);text-align:center;border-top:none;border-radius:0 0 10px 10px;margin:0;padding:1.4rem;font-size:11px}.sg-academy-ctas{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.4rem;padding-top:1rem;display:flex}.sg-academy-ctas .sg-card-contact-prompt{border-top:none;margin:0;padding-top:0}.sg-academy-primary-cta{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .18), rgba(var(--teach-deep-rgb), .1));border:1px solid rgba(var(--accent-teach-rgb), .45);color:var(--accent-clapton);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 2px 10px rgba(var(--accent-teach-rgb), .14), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:10px;align-items:center;gap:.4rem;padding:10px 20px;font-size:12px;font-weight:700;transition:background .18s,border-color .18s,transform .14s,box-shadow .18s;display:inline-flex}.sg-academy-primary-cta:hover{background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .28), rgba(var(--teach-deep-rgb), .18));border-color:rgba(var(--accent-teach-rgb), .7);box-shadow:0 6px 18px rgba(var(--accent-teach-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1);transform:translateY(-1px)}.sg-academy-contact-links{flex-wrap:wrap;gap:8px;display:flex}.sg-living{border-top:1px solid var(--border);padding:2rem 0}.sg-living-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--on);margin:.25rem 0 .9rem;font-size:22px;font-weight:700;line-height:1.2}.sg-living-question{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0 0 .5rem;font-size:18px;font-weight:700}.sg-mission-cta{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .16), rgba(var(--practice-deep-rgb), .1));border:1px solid rgba(var(--accent-practice-rgb), .45);color:var(--accent-oasis);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 2px 10px rgba(var(--accent-practice-rgb), .14), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:10px;align-items:center;gap:.4rem;margin-top:.5rem;padding:10px 20px;font-size:12px;font-weight:700;transition:background .18s,border-color .18s,transform .14s,box-shadow .18s;display:inline-flex}.sg-mission-cta:hover{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .26), rgba(var(--practice-deep-rgb), .18));border-color:rgba(var(--accent-practice-rgb), .7);box-shadow:0 6px 18px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1);transform:translateY(-1px)}.sg-living-body{font-family:var(--font-body);color:var(--muted);max-width:640px;margin:0 0 .9rem;font-size:14px;line-height:1.7}.sg-living-links{font-family:var(--font-mono);color:var(--muted);margin:0 0 1.5rem;font-size:12px;line-height:1.6}.sg-living-link{color:var(--accent-oasis);border-bottom:1px solid rgba(var(--accent-practice-rgb), .35);text-decoration:none;transition:color .15s,border-color .15s}.sg-living-link:hover{color:var(--white);border-bottom-color:rgba(var(--accent-practice-rgb), .7)}.sg-builder{border-top:1px solid var(--border);padding:2rem 0}.sg-builder-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-clapton);margin:.25rem 0 .9rem;font-size:22px;font-weight:700;line-height:1.2}.sg-builder-body{font-family:var(--font-body);color:var(--muted);max-width:640px;margin:0;font-size:14px;line-height:1.7}.sg-living-roadmap-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem;font-size:11px;font-weight:700}.sg-roadmap{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sg-roadmap-item{font-family:var(--font-mono);color:var(--muted);align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;display:flex}.sg-roadmap-dot{background:var(--on);opacity:.55;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:5px}.sg-roadmap-group{flex-direction:column;gap:8px;display:flex}.sg-roadmap-group+.sg-roadmap-group{margin-top:1.1rem}.sg-roadmap-group-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-size:11px;font-weight:700}.sg-outro{border-top:1px solid var(--border);flex-direction:column;gap:1rem;padding-top:2rem;display:flex}@media (min-width:760px){.sg-outro{flex-direction:row;align-items:stretch}}.sg-outro-panel{text-align:center;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--br-lg);box-shadow:var(--shadow-md), var(--shadow-inset);flex-direction:column;flex:1;align-items:center;gap:.75rem;padding:1.75rem 1.5rem;display:flex}.sg-outro-panel--teacher{border-color:rgba(var(--accent-teach-rgb), .22)}.sg-outro-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:clamp(1.375rem,3.2vw,1.75rem)}.sg-outro-body{color:var(--muted);font-size:var(--fs-md);margin:0;line-height:1.65}.sg-outro-cta{-webkit-appearance:none;appearance:none;background:var(--accent-oasis);color:var(--bg);font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--br-sm);cursor:pointer;transition:opacity var(--dur-fast), transform var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);border:none;align-items:center;gap:.5rem;margin-top:.4rem;padding:.8rem 1.75rem;font-weight:700;text-decoration:none;display:inline-flex}.sg-outro-cta:hover{opacity:.88;transform:translateY(-1px)}.sg-outro-cta--teacher{background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .18), rgba(var(--teach-deep-rgb), .1));border:1px solid rgba(var(--accent-teach-rgb), .45);color:var(--accent-clapton)}.sg-outro-cta--teacher:hover{background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .28), rgba(var(--teach-deep-rgb), .18));border-color:rgba(var(--accent-teach-rgb), .7);opacity:1}.ob{width:100%;min-width:0;max-width:var(--page-w-flow);flex-direction:column;gap:8px;margin:0 auto;padding:0 0 32px;display:flex}.ob-top{align-items:center;gap:12px;min-height:44px;display:flex}.ob-top--welcome{justify-content:flex-end}.ob-back{border-radius:var(--br-md);width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-left:-10px;display:flex}.ob-back:hover{background:var(--white-a06)}.ob-back svg{width:20px;height:20px}.ob-progress{flex:1;gap:4px;display:grid}.ob-progress-seg{background:var(--white-a12);height:4px;transition:background var(--dur-normal);border-radius:99px}.ob-progress-seg.is-on{background:var(--accent-oasis)}.ob-count{text-align:right;min-width:34px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);flex:none}.ob-skip{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px}.ob-skip:hover{color:var(--text)}.ob-step{animation:ob-fade-up .35s var(--ease-out,ease-out) both;flex-direction:column;gap:20px;padding-top:20px;display:flex}@keyframes ob-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ob-head{flex-direction:column;gap:8px;display:flex}.ob-kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);margin:0;font-weight:500}.ob-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:34px;font-weight:700;line-height:1.05}.ob-title--xl{letter-spacing:.03em;font-size:44px;line-height:1.02}.ob-body{font-size:var(--fs-md);color:var(--muted);margin:0;line-height:1.45}.ob-outline{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none}.ob-outline-row{align-items:center;gap:12px;min-height:52px;padding:0 14px;display:flex}.ob-outline-row+.ob-outline-row{border-top:1px solid var(--border)}.ob-outline-num{border:1px solid rgba(var(--white-rgb), .18);width:24px;height:24px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.ob-outline-label{font-size:var(--fs-md);color:var(--text);flex:1}.ob-outline-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:none}.ob-field{flex-direction:column;gap:8px;display:flex}.ob-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}.ob-input{box-sizing:border-box;border:1px solid var(--border2);background:var(--bg2);height:52px;color:var(--text);font:inherit;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:14px;outline:none;padding:0 14px;font-size:16px}.ob-input::placeholder{color:var(--muted);opacity:.7}.ob-input:focus{border-color:rgba(var(--accent-practice-rgb), .6);box-shadow:0 0 0 3px rgba(var(--accent-practice-rgb), .12)}.ob-input--date{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.ob-segmented{border-radius:var(--br-md);background:var(--bg2);border:1px solid var(--border2);grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.ob-segmented-btn{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;font-size:14px}.ob-segmented-btn.is-active{background:rgba(var(--accent-practice-rgb), .14);color:var(--accent-oasis);font-weight:600}.ob-chips{flex-wrap:wrap;gap:8px;display:flex}.ob-chip{border-radius:var(--br-pill);border:1px solid rgba(var(--white-rgb), .18);background:var(--bg2);min-height:40px;color:var(--text);font:inherit;cursor:pointer;padding:0 14px;font-size:14px}.ob-chip:hover{border-color:rgba(var(--accent-practice-rgb), .45)}.ob-chip.is-active{border-color:rgba(var(--accent-practice-rgb), .6);background:rgba(var(--accent-practice-rgb), .12);color:var(--accent-oasis)}.ob-choices{flex-direction:column;gap:10px;display:flex}.ob-choice{box-sizing:border-box;border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);width:100%;min-height:72px;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);align-items:center;gap:14px;padding:14px;display:flex}.ob-choice:hover{border-color:rgba(var(--accent-practice-rgb), .35)}.ob-choice.is-selected{border-color:rgba(var(--accent-practice-rgb), .6);background:rgba(var(--accent-practice-rgb), .1)}.ob-choice-icon{border-radius:var(--br-md);background:var(--white-a06);width:40px;height:40px;color:var(--muted);flex:none;justify-content:center;align-items:center;display:flex}.ob-choice-icon svg{width:20px;height:20px}.ob-choice.is-selected .ob-choice-icon{background:rgba(var(--accent-practice-rgb), .18);color:var(--accent-oasis)}.ob-choice-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ob-choice-label{color:var(--text);font-size:16px;font-weight:600}.ob-choice-sub{color:var(--muted);font-size:14px;line-height:1.35}.ob-choice-sub--mono{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.ob-radio{box-sizing:border-box;border:2px solid rgba(var(--white-rgb), .25);border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.ob-choice.is-selected .ob-radio{border-color:var(--accent-oasis)}.ob-choice.is-selected .ob-radio:after{content:"";background:var(--accent-oasis);border-radius:50%;width:10px;height:10px}.ob-bars{align-items:flex-end;gap:4px;height:20px;display:flex}.ob-bar{background:rgba(var(--white-rgb), .18);border-radius:2px;width:5px}.ob-bar--1{height:8px}.ob-bar--2{height:14px}.ob-bar--3{height:20px}.ob-bar.is-on{background:var(--text)}.ob-choice.is-selected .ob-bar.is-on{background:var(--accent-oasis)}.ob-perks{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none}.ob-perk{align-items:center;gap:12px;padding:12px 14px;display:flex}.ob-perk+.ob-perk{border-top:1px solid var(--border)}.ob-perk-icon{background:rgba(var(--color-success-rgb), .12);width:36px;height:36px;color:var(--on);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.ob-perk-icon svg{width:18px;height:18px}.ob-perk-text{flex-direction:column;min-width:0;display:flex}.ob-perk-title{font-weight:600;font-size:var(--fs-md);color:var(--text)}.ob-perk-body{font-size:var(--fs-base);color:var(--muted)}.ob-actions{flex-direction:column;gap:6px;padding-top:8px;display:flex}.ob-btn{border:1px solid var(--border2);min-height:52px;font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:transform var(--dur-fast), box-shadow var(--dur-fast), opacity var(--dur-fast);border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-weight:500;display:flex}.ob-btn:disabled{opacity:.45;cursor:default}.ob-btn--google{background:var(--white);color:#1f1f1f;font-family:var(--font-body);font-size:var(--fs-md);letter-spacing:0;text-transform:none;border-color:#0000;font-weight:600}.ob-btn--google:not(:disabled):hover{box-shadow:0 6px 18px rgba(var(--black-rgb), .4);transform:translateY(-1px)}.ob-text-btn{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;font-size:14px}.ob-text-btn:not(:disabled):hover{color:var(--text)}.ob-aside{text-align:center;font-size:var(--fs-base);color:var(--muted);margin:0}.ob-link-btn{min-height:44px;color:var(--accent-oasis);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-weight:600}.ob-link-btn:hover{text-decoration:underline}.ob-step--welcome{padding-top:24px}@media (min-width:760px){.ob{padding-top:24px}.ob-title--xl{font-size:52px}}.sg-about{gap:var(--sp-10)}.sg-about .sg-headline{font-family:var(--font-head);font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:.04em;text-transform:uppercase}.sg-about .sg-sub{max-width:640px}.sg-about .sg-sub--teacher{font-size:var(--fs-base);color:var(--muted)}.sg-about .sg-entities{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sg-about .sg-entity{padding:var(--sp-3);border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg2);border-left-width:1px;margin:0}.sg-about-cta-row{align-items:center;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;display:flex}.sg-about .sg-mission-cta{min-height:48px}.sg-about-teacher-link{min-height:44px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-clapton);align-items:center;text-decoration:none;display:inline-flex}.sg-about-teacher-link:hover{text-decoration:underline}.sg-about-teacher-link:focus-visible{outline:2px solid var(--accent-clapton);outline-offset:2px}@media (min-width:760px){.sg-about .sg-users-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.sg-about-how{gap:var(--sp-4);flex-direction:column;display:flex}.sg-about-how-title{font-family:var(--font-head);font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0}.sg-about-loop{padding:var(--sp-4);gap:var(--sp-4);border-radius:var(--br-lg);border:1px solid var(--oasis-a30);background:linear-gradient(135deg, var(--oasis-a08), transparent 60%), var(--bg2);box-shadow:var(--shadow-lg), var(--shadow-inset);margin:0;list-style:none;display:grid}.sg-about-loop-step{align-items:flex-start;gap:var(--sp-3);display:flex;position:relative}.sg-about-loop-step:not(:last-child):after{content:"";top:34px;left:15px;bottom:calc(-1 * var(--sp-4) + 2px);background:var(--oasis-a30);border-radius:2px;width:2px;position:absolute}.sg-about-loop-num{background:var(--oasis-a18);border:1px solid var(--oasis-a45);width:32px;height:32px;color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.sg-about-loop-text{flex-direction:column;gap:2px;padding-top:4px;display:flex}.sg-about-loop-time{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-oasis)}.sg-about-loop-desc{font-size:var(--fs-md);color:var(--text);line-height:1.4}@media (min-width:760px){.sg-about-loop{gap:var(--sp-3);grid-template-columns:repeat(4,minmax(0,1fr))}.sg-about-loop-step{flex-direction:column}.sg-about-loop-step:not(:last-child):after{left:40px;right:calc(-1 * var(--sp-3) + 4px);width:auto;height:2px;top:15px;bottom:auto}}.sg-about-steps{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.sg-about-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}.sg-about-step{gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);box-shadow:var(--shadow-inset);flex-direction:column;scroll-margin-top:96px;display:flex}.sg-about-step-icon{border-radius:var(--br-md);width:40px;height:40px;color:var(--sg-accent,var(--accent-oasis));background:color-mix(in srgb, var(--sg-accent,var(--accent-oasis)) 14%, transparent);border:1px solid color-mix(in srgb, var(--sg-accent,var(--accent-oasis)) 35%, transparent);justify-content:center;align-items:center;display:inline-flex}.sg-about-step-icon svg{width:20px;height:20px}.sg-about-step-title{font-family:var(--font-head);font-size:var(--fs-xl);font-weight:700;line-height:var(--lh-snug);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0}.sg-about-step-body{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted);margin:0}.sg-about-step-cta{min-height:40px;padding:0 var(--sp-3);border-radius:var(--br-sm);border:1px solid var(--border2);background:linear-gradient(180deg, var(--white-a06), var(--white-a02));color:var(--text);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast);align-self:flex-start;margin-top:auto}.sg-about-step-cta:hover{border-color:color-mix(in srgb, var(--sg-accent,var(--accent-oasis)) 55%, transparent)}.sg-about-step-cta:focus-visible{outline:2px solid var(--sg-accent,var(--accent-oasis));outline-offset:2px}.sg-about-roadmap-toggle{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--bg2);min-height:40px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.sg-about-roadmap-toggle:hover{color:var(--text)}.sg-about-roadmap-toggle:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.sg-about-roadmap-toggle svg{transition:transform var(--dur-normal) var(--ease-out)}.sg-about-roadmap-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.sg-about-roadmap{gap:var(--sp-2);flex-direction:column;display:flex}@media (min-width:760px){.sg-about-outro{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}}.assigned-card{background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .1) 0%, rgba(var(--accent-teach-rgb), .03) 60%, transparent 100%), var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .32);box-shadow:0 14px 40px rgba(var(--black-rgb), .45), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:16px;margin-bottom:18px;padding:20px 22px;animation:.45s ease-out both assigned-card-fade-up;position:relative;overflow:hidden}.assigned-card:before{content:"";background:linear-gradient(180deg, var(--accent-clapton) 0%, rgba(var(--accent-teach-rgb), .4) 100%);width:3px;box-shadow:0 0 14px rgba(var(--accent-teach-rgb), .45);position:absolute;top:0;bottom:0;left:0;right:auto}.assigned-card--overdue{border-color:rgba(var(--color-warning-rgb), .45)}.assigned-card--overdue:before{background:linear-gradient(180deg, var(--streak) 0%, rgba(var(--color-warning-rgb), .4) 100%);box-shadow:0 0 14px rgba(var(--color-warning-rgb), .5)}.assigned-card--done{border-color:rgba(var(--color-success-rgb), .45)}.assigned-card--done:before{background:linear-gradient(180deg, var(--on) 0%, rgba(var(--color-success-rgb), .4) 100%);box-shadow:0 0 14px rgba(var(--color-success-rgb), .5)}.assigned-card-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-clapton);text-shadow:0 0 10px rgba(var(--accent-teach-rgb), .4);margin:0 0 8px;font-size:10px;font-weight:700}.assigned-card-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0 0 14px;font-size:20px;font-weight:700;line-height:1.15}.assigned-card-meta{flex-wrap:wrap;gap:18px;margin:0 0 14px;padding:0;list-style:none;display:flex}.assigned-card-meta-item{flex-direction:column;gap:2px;display:flex}.assigned-card-meta-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.assigned-card-meta-value{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.assigned-card-status{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:5px;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:700}.assigned-card-status--pending{background:rgba(var(--accent-teach-rgb), .16);border:1px solid rgba(var(--accent-teach-rgb), .4);color:var(--accent-clapton)}.assigned-card-status--completed{background:rgba(var(--color-success-rgb), .18);border:1px solid rgba(var(--color-success-rgb), .45);color:var(--on)}.assigned-card-status--overdue{background:rgba(var(--color-warning-rgb), .18);border:1px solid rgba(var(--color-warning-rgb), .5);color:var(--streak)}.assigned-card-overdue-notice{font-family:var(--font-mono);letter-spacing:.06em;color:var(--streak);margin:0 0 14px;font-size:11px;font-weight:600}.assigned-card-teacher-note{border-left:2px solid rgba(var(--accent-teach-rgb), .55);background:rgba(var(--accent-teach-rgb), .06);font-family:var(--font-body);color:var(--text);border-radius:0 8px 8px 0;margin:0;padding:10px 14px;font-size:13px;font-style:italic;line-height:1.5}.assigned-card-teacher-note-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-clapton);margin-bottom:4px;font-size:10px;font-style:normal;font-weight:700;display:block}.assigned-card-actions{flex-wrap:wrap;gap:10px;display:flex}.assigned-card-btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:10px;padding:11px 18px;font-size:11px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s}.assigned-card-btn--primary{background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .95) 0%, #aa8a32f2 100%);border:1px solid rgba(var(--accent-teach-rgb), .55);color:var(--on-gold);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), 0 4px 14px rgba(var(--accent-teach-rgb), .32)}.assigned-card-btn--primary:hover:not(:disabled){box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .28), 0 8px 22px rgba(var(--accent-teach-rgb), .48);transform:translateY(-1px)}.assigned-card-btn--primary:disabled{opacity:.55;cursor:not-allowed}.assigned-card-btn--ghost{background:linear-gradient(180deg, rgba(var(--white-rgb), .06), rgba(var(--white-rgb), .02));border:1px solid var(--border2);color:var(--muted);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .04)}.assigned-card-btn--ghost:hover{background:rgba(var(--accent-teach-rgb), .1);border-color:rgba(var(--accent-teach-rgb), .4);color:var(--text)}.assigned-card-form{background:rgba(var(--black-rgb), .3);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;margin-top:14px;padding:14px;display:flex}.assigned-card-field{flex-direction:column;gap:6px;display:flex}.assigned-card-field-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.assigned-card-input,.assigned-card-textarea{font-family:var(--font-mono);color:var(--text);background:rgba(var(--black-rgb), .35);border:1px solid var(--border2);border-radius:8px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .18s,box-shadow .18s}.assigned-card-input:focus,.assigned-card-textarea:focus{border-color:rgba(var(--accent-teach-rgb), .5);box-shadow:0 0 0 3px rgba(var(--accent-teach-rgb), .12)}.assigned-card-textarea{resize:vertical;min-height:56px;font-family:var(--font-body)}.assigned-card-error{font-family:var(--font-mono);color:var(--color-danger);margin:0;font-size:11px}.assigned-card-done{background:linear-gradient(135deg, rgba(var(--color-success-rgb), .18) 0%, rgba(var(--success-deep-rgb), .1) 100%);border:1px solid rgba(var(--color-success-rgb), .32);border-radius:10px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.assigned-card-done-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--on);text-shadow:0 0 12px rgba(var(--color-success-rgb), .4);font-size:16px;font-weight:700}.assigned-card-done-sub{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:rgba(var(--color-success-rgb), .7);font-size:10px;font-weight:600}.assigned-card-section-empty{font-family:var(--font-mono);color:var(--muted);border:1px dashed rgba(var(--white-rgb), .1);text-align:center;border-radius:12px;margin-bottom:18px;padding:14px 18px;font-size:12px}@keyframes assigned-card-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes teacher-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes teacher-spin{to{transform:rotate(360deg)}}.teacher-btn{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:10px;padding:10px 16px;font-size:11px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s}.teacher-btn:disabled{opacity:.55;cursor:not-allowed}.teacher-btn--primary{background:var(--teach-grad);border-color:rgba(var(--accent-teach-rgb), .65);color:var(--on-gold);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .3), inset 0 -1px 0 rgba(var(--black-rgb), .18), 0 4px 14px rgba(var(--accent-teach-rgb), .3)}.teacher-btn--primary:hover:not(:disabled){box-shadow:0 8px 22px rgba(var(--accent-teach-rgb), .5);transform:translateY(-1px)}.teacher-btn--ghost{background:linear-gradient(180deg, rgba(var(--white-rgb), .05), rgba(var(--white-rgb), .02));border-color:var(--border2);color:var(--muted)}.teacher-btn--ghost:hover:not(:disabled){background:rgba(var(--accent-teach-rgb), .1);border-color:rgba(var(--accent-teach-rgb), .4);color:var(--text)}.teacher-section{flex-direction:column;gap:14px;display:flex}.teacher-modal{background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .35);width:100%;max-width:480px;max-height:85vh;box-shadow:0 24px 60px rgba(var(--black-rgb), .55);border-radius:16px;flex-direction:column;gap:12px;padding:22px;display:flex;overflow-y:auto}.teacher-modal-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-clapton);margin:0;font-size:10px;font-weight:700}.teacher-modal-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:22px;font-weight:700;line-height:1.15}.teacher-modal-form{flex-direction:column;gap:10px;display:flex}.teacher-modal-field{flex-direction:column;gap:4px;display:flex}.teacher-modal-field-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.teacher-modal-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.teacher-modal-input,.teacher-modal-select,.teacher-modal-textarea{background:rgba(var(--black-rgb), .35);border:1px solid var(--border2);color:var(--text);font-family:var(--font-mono);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:8px;outline:none;width:100%;padding:9px 11px;font-size:13px;transition:border-color .18s,box-shadow .18s}.teacher-modal-input:focus,.teacher-modal-select:focus,.teacher-modal-textarea:focus{border-color:rgba(var(--accent-teach-rgb), .55);box-shadow:0 0 0 3px rgba(var(--accent-teach-rgb), .14)}.teacher-modal-textarea{resize:vertical;min-height:60px}.teacher-modal-error{font-family:var(--font-mono);color:var(--color-danger);margin:0;font-size:11px}.teacher-modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}@media (max-width:520px){.cal-banner{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px}.cal-lesson-chip{font-size:var(--fs-2xs)}}.tp{--tp-gold:var(--accent-clapton);--tp-gold-soft:rgba(var(--accent-teach-rgb), .14);--tp-gold-line:rgba(var(--accent-teach-rgb), .5);flex-direction:column;gap:18px;width:100%;min-width:0;max-width:880px;margin:0 auto;padding:4px 0 32px;display:flex}.tp-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tp-head-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tp-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--tp-gold);font-weight:500}.tp-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);overflow-wrap:anywhere;margin:0;font-size:30px;font-weight:700;line-height:1.05}.tp-head-sub{color:var(--muted);font-size:13px}.tp-btn{border-radius:var(--br-md);border:1px solid var(--border2);min-height:44px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), border-color var(--dur-fast);background:0 0;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.tp-btn svg{width:16px;height:16px}.tp-btn:hover:not(:disabled){border-color:var(--tp-gold-line)}.tp-btn:disabled{opacity:.6;cursor:default}.tp-btn--primary{border-color:rgba(var(--accent-teach-rgb), .55);background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .28), rgba(var(--teach-deep-rgb), .18));color:var(--teach-light)}.tp-btn--primary:hover:not(:disabled){background:linear-gradient(135deg, rgba(var(--accent-teach-rgb), .38), rgba(var(--teach-deep-rgb), .26))}.tp-btn--done{border-color:rgba(var(--color-success-rgb), .5);color:var(--on)}.tp-btn--sm{min-height:38px;font-size:var(--fs-2xs);padding:0 12px}.tp-btn--block{width:100%;min-height:48px}.tp-icon-btn{border:1px solid rgba(var(--accent-teach-rgb), .4);width:40px;height:40px;color:var(--tp-gold);cursor:pointer;background:0 0;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tp-icon-btn svg{width:16px;height:16px}.tp-icon-btn:hover{background:var(--tp-gold-soft)}.tp-icon-btn--blue{border-color:var(--oasis-a35);color:var(--accent-oasis)}.tp-icon-btn--blue:hover{background:var(--oasis-a10)}.tp-icon-btn--plain{color:var(--muted);border-color:#0000}.tp-icon-btn--plain:hover{background:var(--white-a06);color:var(--text)}.tp-text-btn{min-height:40px;color:var(--accent-oasis);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:14px}.tp-invite{border-radius:var(--br-lg);background:radial-gradient(circle at 0% 0%, rgba(var(--accent-teach-rgb), .12), transparent 55%), var(--bg2);border:1px solid var(--tp-gold-line);flex-direction:column;gap:10px;padding:16px;display:flex}.tp-invite-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tp-invite-head>span{flex-direction:column;gap:2px;display:flex}.tp-invite-body{color:var(--muted);margin:0;font-size:14px}.tp-invite-row{gap:8px;display:flex}.tp-input{border-radius:var(--br-md);border:1px solid var(--border2);background:rgba(var(--black-rgb), .3);min-width:0;height:44px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);flex:1;padding:0 12px}.tp-invite-code{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);margin:0}.tp-invite-code strong{color:var(--tp-gold);letter-spacing:.08em}.tp-error{color:var(--color-danger);margin:0;font-size:14px}.tp-tabs{scrollbar-width:none;border-bottom:1px solid var(--border);gap:6px;padding-bottom:12px;display:flex;overflow-x:auto}.tp-tabs::-webkit-scrollbar{display:none}.tp-tab{border-radius:var(--br-pill);border:1px solid var(--border2);min-height:38px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tp-tab svg{width:14px;height:14px}.tp-tab:hover{color:var(--text)}.tp-tab.is-active{border-color:rgba(var(--accent-teach-rgb), .6);background:var(--tp-gold-soft);color:var(--tp-gold)}.tp-tab-badge{box-sizing:border-box;background:var(--color-danger);min-width:16px;height:16px;color:var(--bg);font-size:var(--fs-2xs);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.tp-panel{flex-direction:column;gap:18px;animation:.3s ease-out both tp-fade-up;display:flex}@keyframes tp-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tp-today,.tp-students,.tp-assignments{flex-direction:column;gap:18px;display:flex}.tp-tone--amber{--tone:var(--streak);--tone-bg:rgba(var(--color-warning-rgb), .12)}.tp-tone--blue{--tone:var(--accent-oasis);--tone-bg:var(--oasis-a12)}.tp-tone--green{--tone:var(--on);--tone-bg:rgba(var(--color-success-rgb), .12)}.tp-tone--gold{--tone:var(--accent-clapton);--tone-bg:rgba(var(--accent-teach-rgb), .12)}.tp-tone--muted{--tone:var(--muted);--tone-bg:var(--white-a06)}.tp-glance{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.tp-glance-item{border-radius:var(--br-md);background:var(--bg2);border:1px solid var(--border2);flex-direction:column;gap:2px;padding:10px 8px;display:flex}.tp-glance-num{font-family:var(--font-head);color:var(--tone);font-size:26px;font-weight:700;line-height:1}.tp-glance-item.is-zero .tp-glance-num{color:var(--muted);opacity:.6}.tp-glance-label{font-size:var(--fs-xs);color:var(--muted);line-height:1.2}.tp-section{flex-direction:column;gap:8px;min-width:0;display:flex}.tp-section-head{align-items:center;gap:10px;display:flex}.tp-section-icon{width:30px;height:30px;color:var(--tone);background:var(--tone-bg);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.tp-section-icon svg{width:16px;height:16px}.tp-section-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);flex:1;margin:0;font-weight:700}.tp-section-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex:1;margin:0;font-weight:500}.tp-section-label.is-warn{color:var(--color-danger)}.tp-section-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.tp-list{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none;overflow:hidden}.tp-row{align-items:center;gap:8px;padding-right:10px;display:flex}.tp-row+.tp-row{border-top:1px solid var(--border)}.tp-row-main{min-width:0;min-height:60px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:8px 4px 8px 12px;display:flex}.tp-row-main:hover .tp-row-name{color:var(--tp-gold)}.tp-row-main:focus-visible{outline:2px solid var(--tp-gold);outline-offset:-2px}.tp-avatar{background:var(--bg3);border:1px solid var(--border2);width:38px;height:38px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.tp-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tp-row-name{font-weight:600;font-size:var(--fs-md);transition:color var(--dur-fast);line-height:1.25}.tp-row-sub{color:var(--muted);overflow-wrap:anywhere;font-size:13px;line-height:1.35}.tp-row-last{color:var(--text);font-size:13px}.tp-row-btn{border:1px solid var(--border2);min-height:36px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:10px;flex:none;padding:0 12px}.tp-row-btn:hover{color:var(--text)}.tp-row-btn--primary{border-color:rgba(var(--accent-teach-rgb), .55);background:var(--tp-gold-soft);color:#e0c56a}.tp-row--student .tp-row-main{min-height:72px}.tp-activity--today .tp-row-last{color:var(--on)}.tp-activity--idle .tp-row-last,.tp-activity--never .tp-row-last{color:var(--streak)}.tp-activity--idle .tp-avatar,.tp-activity--never .tp-avatar{border-color:rgba(var(--color-warning-rgb), .55)}.tp-activity--loading .tp-row-last{color:var(--muted)}.tp-row-side{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.tp-streak{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:4px;display:inline-flex}.tp-streak svg{width:12px;height:12px}.tp-streak.is-on{color:var(--streak)}.tp-badge{border-radius:var(--br-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--tp-gold);background:rgba(var(--accent-teach-rgb), .12);flex:none;padding:2px 7px}.tp-badge--overdue{color:var(--color-danger);background:rgba(var(--yt-bright-rgb), .12)}.tp-badge--done{color:var(--on);background:rgba(var(--color-success-rgb), .12)}.tp-badge--gold{vertical-align:middle;margin-left:8px}.tp-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.tp-tile{background:var(--bg2);border:1px solid var(--border2);border-radius:14px;flex-direction:column;gap:2px;padding:12px 10px;display:flex}.tp-tile-num{font-family:var(--font-head);color:var(--text);font-size:26px;font-weight:700;line-height:1}.tp-tile-of{font-size:var(--fs-md);color:var(--muted)}.tp-tile-label{font-size:var(--fs-sm);color:var(--muted);line-height:1.25}.tp-tile-warn{color:var(--color-danger)}.tp-list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tp-segmented{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;gap:2px;padding:3px;display:flex}.tp-segmented-btn{min-height:32px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0 10px}.tp-segmented-btn.is-active{background:var(--tp-gold-soft);color:var(--tp-gold)}.tp-empty,.tp-allclear{background:var(--bg2);border:1px dashed rgba(var(--white-rgb), .18);border-radius:18px;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 18px;display:flex}.tp-allclear{border-style:solid;border-color:rgba(var(--color-success-rgb), .3)}.tp-empty-icon,.tp-allclear-icon{background:var(--white-a06);width:40px;height:40px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;display:flex}.tp-allclear-icon{background:rgba(var(--color-success-rgb), .12);color:var(--on)}.tp-empty-icon svg,.tp-allclear-icon svg{width:20px;height:20px}.tp-empty-title,.tp-allclear-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:22px;font-weight:700}.tp-empty-body,.tp-allclear-body{color:var(--muted);margin:0;font-size:14px}.tp-academy-tab{flex-direction:column;gap:22px;display:flex}.tp-section-label--gold{color:var(--tp-gold)}.tp-section-hint{color:var(--muted);margin:0;font-size:13px}.tp-joincard{border-radius:var(--br-lg);background:radial-gradient(circle at 0% 0%, rgba(var(--accent-teach-rgb), .14), transparent 60%), var(--bg2);border:1px solid var(--border2);align-items:center;gap:14px;padding:16px;display:flex}.tp-joincard-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.tp-joincode{font-family:var(--font-mono);letter-spacing:.18em;color:var(--teach-light);overflow-wrap:anywhere;font-size:30px;line-height:1.1}.tp-joincard-hint{color:var(--muted);font-size:13px}.tp-joincard-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.tp-share-btn{border:1px solid rgba(var(--accent-practice-rgb), .4);background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .12), rgba(var(--practice-deep-rgb), .07));min-height:38px;color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tp-share-btn svg{width:14px;height:14px}.tp-share-btn.is-copied{border-color:rgba(var(--color-success-rgb), .45);background:rgba(var(--color-success-rgb), .12);color:var(--on)}.tp-qr{background:var(--bg);border:1px solid var(--border2);border-radius:10px;flex:none;padding:6px;line-height:0}.tp-week{border-radius:var(--br-lg)}.tp-day{align-items:center;gap:12px;min-height:54px;padding:0 14px;display:flex;position:relative}.tp-day+.tp-day{border-top:1px solid var(--border)}.tp-day-name{width:42px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex:none}.tp-day-select,.tp-day-value{min-width:0;font:inherit;color:var(--text);flex:1;font-size:14px}.tp-day-select{-webkit-appearance:none;appearance:none;cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;height:52px;padding:0 24px 0 0}.tp-day-select:focus-visible{outline:none}.tp-day:focus-within{background:var(--tp-gold-soft)}.tp-day-select option,.tp-day-select optgroup{background:var(--bg2);color:var(--text)}.tp-day>svg{width:16px;height:16px;color:var(--muted);pointer-events:none;position:absolute;right:14px}.tp-day.is-rest .tp-day-select,.tp-day.is-rest .tp-day-value{color:var(--muted)}.tp-day.is-changed{box-shadow:inset 3px 0 0 var(--tp-gold)}.tp-day.is-changed .tp-day-name{color:var(--tp-gold)}.tp-savebar{bottom:calc(var(--bottom-nav-h) + 12px + var(--safe-bottom));z-index:2;background:color-mix(in srgb, var(--bg2) 88%, var(--tp-gold));border:1px solid var(--tp-gold-line);box-shadow:var(--card-shadow);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex;position:sticky}.tp-savebar-text{flex:1;min-width:0;font-size:13px}.tp-saved{color:var(--on);align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.tp-saved svg{width:14px;height:14px}.tp-program-row .tp-row-main{cursor:default}.tp-create{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 18px;display:flex}.tp-create .tp-empty-icon{background:var(--tp-gold-soft);color:var(--tp-gold)}.tp-create-form{flex-direction:column;gap:8px;width:100%;margin-top:6px;display:flex}.tp-input{border:1px solid var(--border2);background:var(--bg3);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:12px;padding:0 14px;font-size:16px}.tp-input:focus{border-color:var(--tp-gold-line);box-shadow:0 0 0 3px rgba(var(--accent-teach-rgb), .12);outline:none}.tp-back{min-height:44px;color:var(--text);font-family:var(--font-body);font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;margin-left:-8px;padding:0 8px;display:inline-flex}.tp-back svg{width:20px;height:20px}.tp-student-head{flex-direction:column;gap:14px;display:flex}.tp-student-id{align-items:center;gap:14px;min-width:0;display:flex}.tp-avatar--lg{width:56px;height:56px;font-size:var(--fs-lg);background:radial-gradient(circle at 30% 30%, rgba(var(--accent-teach-rgb), .35), var(--bg3));border-color:var(--tp-gold-line)}.tp-program{border-radius:var(--br-lg);background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .35);align-items:center;gap:12px;padding:14px;display:flex}.tp-program-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tp-program-name{font-size:16px;font-weight:600}.tp-program-meta{color:var(--muted);font-size:13px}.tp-program-options{flex-direction:column;gap:8px;display:flex}.tp-program-option{background:var(--bg2);border:1px solid var(--border2);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.tp-program-option.is-active{border-color:var(--tp-gold-line);background:var(--tp-gold-soft)}.tp-heatmap{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;padding:14px;display:grid}.tp-heatmap-col{grid-template-rows:repeat(7,auto);gap:4px;display:grid}.tp-heat{aspect-ratio:1;background:var(--white-a06);border-radius:3px;display:block}.tp-heat--1{background:rgba(var(--color-success-rgb), .25)}.tp-heat--2{background:rgba(var(--color-success-rgb), .45)}.tp-heat--3{background:rgba(var(--color-success-rgb), .7)}.tp-heat--4{background:var(--on)}.tp-heat-legend{font-size:var(--fs-xs);color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;display:flex}.tp-heat-legend .tp-heat{width:10px}.tp-trend{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);flex-direction:column;gap:8px;padding:14px;display:flex}.tp-trend-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tp-trend-title{font-weight:600}.tp-trend-meta{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted)}.tp-trend-meta strong{color:var(--text);font-weight:500}.tp-trend-meta strong.is-target{color:var(--tp-gold)}.tp-trend svg{width:100%;height:70px;display:block}.tp-trend-line{fill:none;stroke:var(--text);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tp-trend-target{stroke:rgba(var(--accent-teach-rgb), .55);stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.tp-trend-dot{stroke:var(--text);stroke-width:7px;stroke-linecap:round;vector-effect:non-scaling-stroke}.tp-trend-empty{color:var(--muted);margin:0;font-size:13px}.tp-student-body,.tp-student-main{flex-direction:column;gap:18px;min-width:0;display:flex}.tp-tile-num.is-streak{color:var(--streak)}.tp-trends{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tp-empty--compact{padding:18px 16px}.tp-row--static .tp-row-main{cursor:default}.tp-row--static .tp-row-main:hover .tp-row-name{color:inherit}.tp-row--static.is-done .tp-row-name{color:var(--muted)}.tp-row-check{border:1.5px solid var(--border2);border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.tp-row-check.is-done{border-color:rgba(var(--color-success-rgb), .55);background:rgba(var(--color-success-rgb), .14);color:var(--on)}.tp-row-check svg{width:13px;height:13px}.tp-field{flex-direction:column;gap:6px;display:flex}.tp-field-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.tp-input--title{font-weight:600}.tp-textarea{resize:vertical;min-height:0;padding:10px 14px;font-size:15px;line-height:1.45}.tp-input:disabled{opacity:.75;cursor:default}.tp-pg-live{align-items:center;gap:8px;display:flex}.tp-pg-live svg{width:16px;height:16px;color:var(--tp-gold);flex:none}.tp-pg-cards{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tp-pg-card{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast);flex-direction:column;gap:10px;padding:14px;display:flex}.tp-pg-card:hover{border-color:var(--tp-gold-line)}.tp-pg-card:focus-visible{outline:2px solid var(--tp-gold);outline-offset:2px}.tp-pg-card-top{align-items:flex-start;gap:10px;display:flex}.tp-pg-card-top>svg{width:18px;height:18px;color:var(--muted);flex:none;margin-top:2px}.tp-pg-card-foot{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.tp-pg-chips{flex-wrap:wrap;gap:4px;display:flex}.tp-pg-chip{border:1px solid rgba(var(--accent-teach-rgb), .35);background:rgba(var(--accent-teach-rgb), .08);max-width:100%;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--tp-gold);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:4px 8px;overflow:hidden}.tp-pg-stagetabs{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.tp-pg-stagetab{border:1px solid var(--border2);background:var(--bg2);min-width:96px;max-width:160px;min-height:60px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;flex:none;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.tp-pg-stagetab.is-active{border-color:rgba(var(--accent-teach-rgb), .6);background:var(--tp-gold-soft);color:var(--tp-gold)}.tp-pg-stagetab-n{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;opacity:.85}.tp-pg-stagetab-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.tp-pg-stagetab--add{border-style:dashed;border-color:var(--tp-gold-line);min-width:52px;color:var(--tp-gold);background:0 0;justify-content:center;align-items:center}.tp-pg-stagetab--add svg{width:18px;height:18px}.tp-pg-stage{border-radius:var(--br-lg);background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .35);flex-direction:column;gap:12px;padding:14px;display:flex}.tp-pg-stage .tp-list{background:var(--bg)}.tp-pg-stage-head{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.tp-pg-stage-actions{align-items:center;gap:2px;display:flex}.tp-pg-stage-actions .tp-text-btn{align-self:center;margin-left:6px}.tp-pg-flip svg{transform:scaleX(-1)}.tp-icon-btn:disabled{opacity:.35;cursor:default}.tp-pg-danger{border-top:1px solid var(--border);padding-top:6px}.tp-pg-confirm{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.tp-pg-confirm>span{flex:100%}.tp-text-btn--danger{color:var(--color-danger)}.tp-btn--danger{border-color:rgba(var(--color-danger-rgb), .5);color:var(--color-danger)}.tp-btn--danger:hover:not(:disabled){border-color:var(--color-danger)}.tp-program-stage{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.tp-program-bar{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;width:100%;display:grid}.tp-program-bar>span{border-radius:var(--br-pill);background:var(--white-a06);height:6px}.tp-program-bar>span.is-done{background:var(--on)}.tp-program-bar>span.is-now{background:var(--tp-gold)}.tp-program-group{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}.tp-program--stack{flex-direction:column;align-items:stretch}.tp-program-top{align-items:center;gap:12px;display:flex}.tp-pg-goals{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tp-pg-goal{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.tp-pg-goal--static{flex-wrap:nowrap;justify-content:space-between;min-height:48px;padding:6px 12px}.tp-pg-goal-field{align-items:center;gap:6px;min-width:0;display:flex}.tp-pg-goal-field--grow{flex:160px}.tp-pg-goal-field--grow .tp-input{width:100%}.tp-pg-select{min-height:44px;padding:0 10px;font-size:14px}.tp-pg-goal-bpm .tp-input{width:84px;min-height:44px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:0 10px}.tp-pg-goal-unit,.tp-pg-goal-target{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.tp-pg-goal-target{color:var(--tp-gold)}.tp-pg-addgoal{border:1px dashed var(--border2);min-height:44px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:10px}.tp-pg-addgoal:hover{border-color:var(--tp-gold-line);color:var(--text)}.tp-moveup{border-radius:var(--br-lg);background:radial-gradient(circle at 100% 0%, rgba(var(--accent-teach-rgb), .16), transparent 60%), var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .45);flex-direction:column;gap:10px;padding:14px;display:flex}.tp-moveup-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tp-moveup-row{border:1px solid var(--border);background:rgba(var(--black-rgb), .25);width:100%;min-height:60px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.tp-moveup-row:hover{border-color:var(--tp-gold-line)}.tp-moveup-row:focus-visible{outline:2px solid var(--tp-gold);outline-offset:2px}.tp-moveup-badge{margin-left:0}.tp-request{border-radius:var(--br-lg);background:radial-gradient(circle at 100% 0%, rgba(var(--accent-teach-rgb), .2), transparent 60%), var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .55);flex-direction:column;gap:10px;padding:16px;display:flex}.tp-request-head{align-items:center;gap:10px;display:flex}.tp-request-head>svg{width:22px;height:22px;color:var(--tp-gold);flex:none}.tp-request-title{min-width:0;font-size:var(--fs-md);flex:1;margin:0;font-weight:600}.tp-request-quote{background:rgba(var(--black-rgb), .3);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:10px 12px;font-size:14px}.tp-request-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.tp-request-reply{flex-direction:column;gap:8px;display:flex}.tp-request-note{font-size:var(--fs-sm);color:var(--muted);margin:0}.tp-goalprog{border-top:1px solid var(--border);flex-direction:column;gap:10px;width:100%;padding-top:10px;display:flex}.tp-goalprog-badge{vertical-align:middle;margin-left:8px}.tp-goalprog-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tp-goalprog-row{flex-direction:column;gap:6px;display:flex}.tp-goalprog-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tp-goalprog-name{overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:600}.tp-goalprog-val{font-family:var(--font-mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none}.tp-goalprog-row.is-met .tp-goalprog-val{color:var(--on)}.tp-goalprog-bar{border-radius:var(--br-pill);background:var(--white-a06);height:6px;overflow:hidden}.tp-goalprog-bar>span{border-radius:var(--br-pill);background:var(--tp-gold);height:100%;display:block}.tp-goalprog-row.is-met .tp-goalprog-bar>span{background:var(--on)}.tp-history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tp-history-item{gap:12px;padding-bottom:14px;display:flex;position:relative}.tp-history-item:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:18px;bottom:0;left:5px}.tp-history-dot{background:var(--on);border-radius:50%;flex:none;width:12px;height:12px;margin-top:4px}.tp-history-item:first-child .tp-history-dot{background:var(--tp-gold)}@media (min-width:900px){.tp-student-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.tp-student-head{flex-direction:row;justify-content:space-between;align-items:center}.tp-student-head .tp-btn--block{width:auto}.tp-savebar{bottom:16px}.tp-create-form{flex-direction:row;max-width:520px}}.hs-card{border-radius:var(--br-lg);background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .35);flex-direction:column;gap:14px;padding:16px;display:flex}.hs-head{flex-direction:column;gap:2px;display:flex}.hs-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-teach)}.hs-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:24px;font-weight:700;line-height:1.1}.hs-bar{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;display:grid}.hs-bar>span{border-radius:var(--br-pill);background:var(--white-a06);height:6px}.hs-bar>span.is-done{background:var(--color-success)}.hs-bar>span.is-now{background:var(--text)}.hs-goals{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hs-goal{align-items:center;gap:10px;min-height:28px;display:flex}.hs-goal-mark{border:1px dashed var(--border2);width:20px;height:20px;color:var(--bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.hs-goal-mark svg{width:12px;height:12px}.hs-goal.is-met .hs-goal-mark{background:var(--color-success);border:none}.hs-goal-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px}.hs-goal-val{font-family:var(--font-mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.hs-goal.is-met .hs-goal-val{color:var(--color-success)}.hs-ask,.hs-btn{border:1px solid var(--border2);min-height:48px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:flex}.hs-ask:hover,.hs-btn:hover:not(:disabled){color:var(--text);border-color:rgba(var(--accent-teach-rgb), .5)}.hs-ask svg{width:16px;height:16px}.hs-ask--ready{border-color:rgba(var(--color-success-rgb), .5);background:rgba(var(--color-success-rgb), .12);color:var(--color-success)}.hs-ask--ready:hover{color:var(--color-success);border-color:var(--color-success)}.hs-btn:disabled{opacity:.6;cursor:default}.hs-btn--primary{border-color:rgba(var(--accent-teach-rgb), .6);background:rgba(var(--accent-teach-rgb), .18);color:var(--text)}.hs-note{background:rgba(var(--black-rgb), .25);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;margin:0;padding:12px;font-size:14px;display:flex}.hs-note svg{width:18px;height:18px;color:var(--muted);flex:none}.hs-reply{background:rgba(var(--accent-teach-rgb), .08);border:1px solid rgba(var(--accent-teach-rgb), .3);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.hs-reply-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-teach)}.hs-reply-text{overflow-wrap:anywhere;font-size:14px}.hs-moved{background:rgba(var(--color-success-rgb), .12);border:1px solid rgba(var(--color-success-rgb), .4);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.hs-moved>svg{width:22px;height:22px;color:var(--color-success);flex:none}.hs-moved-text{flex-direction:column;display:flex}.hs-moved-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--color-success);font-size:16px;font-weight:700}.hs-moved-sub{color:var(--muted);font-size:13px}.hs-form{flex-direction:column;gap:10px;display:flex}.hs-form-hint{color:var(--muted);margin:0;font-size:13px}.hs-field{flex-direction:column;gap:6px;display:flex}.hs-field-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.hs-input{border:1px solid var(--border2);background:rgba(var(--black-rgb), .32);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:12px;padding:10px 14px;font-size:15px}.hs-input:focus{border-color:rgba(var(--accent-teach-rgb), .6);box-shadow:0 0 0 3px rgba(var(--accent-teach-rgb), .12);outline:none}.hs-check{border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;min-height:48px;padding:0 12px;font-size:14px;display:flex}.hs-check input{width:20px;height:20px;accent-color:var(--accent-teach)}.hs-form-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.hs-error{color:var(--color-danger);margin:0;font-size:14px}.pl-page{max-width:var(--page-w-flow);box-sizing:border-box;flex-direction:column;gap:18px;margin:0 auto;padding:16px 16px 32px;display:flex}.pl-back{min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;margin-left:-8px;padding:0 8px;display:inline-flex}.pl-back svg{width:20px;height:20px}.pl-head,.pl-hero{flex-direction:column;gap:8px;display:flex}.pl-hero{border-radius:var(--br-lg);border:1px solid rgba(var(--page-accent-rgb), .35);background:radial-gradient(circle at 0% 0%, rgba(var(--page-accent-rgb), .16), transparent 50%), var(--bg2);padding:22px 18px 18px;position:relative;overflow:hidden}.pl-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0}.pl-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:34px;font-weight:700;line-height:1.05}.pl-title--xl{font-size:36px}.pl-body{color:var(--muted);margin:0}.pl-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pl-step{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);box-sizing:border-box;align-items:center;gap:12px;min-height:60px;padding:8px 12px;display:flex}.pl-step-num{border:1px solid rgba(var(--page-accent-rgb), .5);width:28px;height:28px;color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.pl-step-text,.pl-row-text,.pl-entry-text,.pl-option-text{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pl-step-name{font-weight:600}.pl-step-what{color:var(--muted);font-size:13px}.pl-step-min{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);flex:none}.pl-note{border-radius:var(--br-md);background:rgba(var(--page-accent-rgb), .06);border:1px solid rgba(var(--page-accent-rgb), .3);margin:0;padding:12px;font-size:13px}.pl-note--teach{background:rgba(var(--accent-teach-rgb), .08);border-color:rgba(var(--accent-teach-rgb), .3)}.pl-tips{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.pl-actions{flex-direction:column;gap:8px;display:flex}.pl-actions .ui-btn svg{width:14px;height:14px;margin-right:8px}.pl-quiet{min-height:44px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-self:center;padding:0 12px}.pl-results{flex-direction:column;gap:8px;display:flex}.pl-section-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.pl-rows{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);gap:0;overflow:hidden}.pl-row{box-sizing:border-box;min-height:58px;padding:8px 14px}.pl-row+.pl-row{border-top:1px solid var(--white-a06)}.pl-row-bar{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pl-row .hs-goal-val.is-short{color:var(--color-warning)}.pl-entry{box-sizing:border-box;border-radius:var(--br-lg);border:1px dashed rgba(var(--page-accent-rgb), .55);background:rgba(var(--page-accent-rgb), .06);width:100%;min-height:72px;color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.pl-entry>svg{width:18px;height:18px;color:var(--page-accent);flex:none}.pl-entry-title{font-weight:600}.pl-entry-body{color:var(--muted);font-size:13px}.pl-entry-icon{border-radius:var(--br-md);background:rgba(var(--page-accent-rgb), .14);width:40px;height:40px;color:var(--page-accent);flex:none;justify-content:center;align-items:center;display:flex}.pl-entry-icon svg{width:20px;height:20px}.pl-entry:hover{background:rgba(var(--page-accent-rgb), .1);color:var(--text)}.pl-notes{color:var(--muted);flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.pl-notes li{gap:10px;display:flex}.pl-notes svg{width:16px;height:16px;color:var(--color-success);flex:none;margin-top:2px}.pl-status{color:var(--color-success);margin:0;font-size:13px}.pl-status.is-error{color:var(--color-danger)}.pl-picker{flex-direction:column;gap:10px;display:flex}.pl-picker-current{margin:0;font-weight:600}.pl-picker-options{flex-direction:column;gap:8px;display:flex}.pl-option{box-sizing:border-box;border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);width:100%;min-height:60px;color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:12px;padding:10px 14px;display:flex}.pl-option.is-selected{border-color:rgba(var(--page-accent-rgb), .6);background:rgba(var(--page-accent-rgb), .08)}.pl-option:disabled{cursor:default;opacity:.7}.pl-option-name{font-weight:600}.pl-option-sub{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.pl-option-tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:none}.pl-option.is-selected .pl-option-tag{color:var(--page-accent)}.pl-picker-test{color:var(--muted);margin:0;font-size:13px}.pl-retake{align-self:flex-start;margin-top:12px}.pl-teacher{border-radius:var(--br-lg);background:radial-gradient(circle at 100% 0%, rgba(var(--accent-teach-rgb), .16), transparent 60%), var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .45);flex-direction:column;gap:12px;padding:16px;display:flex}.pl-teacher-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.pl-teacher-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-teach);margin:0;font-weight:500}.pl-teacher-date{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.pl-teacher-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:26px;font-weight:700;line-height:1.05}.pl-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.pl-tile{border-radius:var(--br-md);background:var(--bg);border:1px solid var(--white-a06);flex-direction:column;gap:2px;padding:8px;display:flex}.pl-tile-val{font-family:var(--font-head);color:var(--text);font-size:22px;font-weight:700;line-height:1}.pl-tile.is-met .pl-tile-val{color:var(--color-success)}.pl-tile-name{color:var(--muted);overflow-wrap:anywhere;font-size:11px;line-height:1.2}.is-celebrating{position:relative;overflow:hidden}.is-celebrating .daily-ex-success-hero{position:relative}.is-celebrating .daily-ex-success-check{animation:cel-check-pop .6s var(--ease-spring) both}@keyframes cel-check-pop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.cel-strings{pointer-events:none;width:100%;height:60px;position:absolute;top:6px;left:0;overflow:visible}.cel-string{stroke:var(--color-success);opacity:0;animation:1.1s linear both cel-string-ring,1.6s ease-out both cel-string-fade}@keyframes cel-string-ring{0%{transform:translateY(0)}12%{transform:translateY(-5px)}24%{transform:translateY(4px)}36%{transform:translateY(-3px)}48%{transform:translateY(2px)}60%{transform:translateY(-1px)}80%,to{transform:translateY(0)}}@keyframes cel-string-fade{0%{opacity:0}10%{opacity:.9}to{opacity:0}}.is-celebrating .session-summary-stat,.is-celebrating .session-summary-row{animation:.5s ease-out both cel-rise}.is-celebrating .session-summary-stat:nth-child(2){animation-delay:80ms}.is-celebrating .session-summary-stat:nth-child(3){animation-delay:.16s}.is-celebrating .session-summary-row:first-child{animation-delay:.2s}.is-celebrating .session-summary-row:nth-child(2){animation-delay:.26s}.is-celebrating .session-summary-row:nth-child(3){animation-delay:.32s}.is-celebrating .session-summary-row:nth-child(n+4){animation-delay:.38s}@keyframes cel-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.session-summary-row-stamp{border:1.5px solid var(--streak);color:var(--streak);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:6px;margin-top:4px;padding:2px 8px;display:inline-block;transform:rotate(-4deg)}.is-celebrating .session-summary-row-stamp{animation:.45s cubic-bezier(.2,.8,.2,1) .9s both cel-stamp}@keyframes cel-stamp{0%{opacity:0;transform:scale(1.6)rotate(-8deg)}70%{opacity:1;transform:scale(.95)rotate(-4deg)}to{opacity:1;transform:scale(1)rotate(-4deg)}}.streak-chip-flame-wrap{flex:none;display:inline-flex;position:relative}.streak-chip-glow,.streak-chip-spark{display:none}.streak-chip-roll{vertical-align:bottom;height:1.25em;line-height:1.25em;display:inline-block;overflow:hidden}.streak-chip-roll-inner{flex-direction:column;display:flex}.streak-chip--bump .streak-chip-flame{transform-origin:50% 80%;animation:.9s cubic-bezier(.2,.8,.2,1.2) both cel-flame-jump}@keyframes cel-flame-jump{0%{transform:scale(1)}35%{transform:scale(1.7)translateY(-2px)}65%{transform:scale(.9)}to{transform:scale(1)}}.streak-chip--bump .streak-chip-glow{background:radial-gradient(circle, rgba(var(--color-warning-rgb), .7), transparent 65%);pointer-events:none;border-radius:50%;animation:1.1s ease-out both cel-glow;display:block;position:absolute;top:-8px;bottom:-8px;left:-8px;right:-8px}@keyframes cel-glow{0%{opacity:0;transform:scale(.4)}25%{opacity:.9;transform:scale(1.4)}to{opacity:0;transform:scale(2)}}.streak-chip--bump .streak-chip-spark{background:var(--streak);pointer-events:none;border-radius:50%;width:4px;height:4px;animation:.9s ease-out .15s both cel-spark;display:block;position:absolute;top:5px;left:5px}@keyframes cel-spark{0%{opacity:0;transform:translate(0)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1)}}.streak-chip--bump .streak-chip-roll-inner{animation:.55s cubic-bezier(.5,0,.2,1) .3s both cel-roll}@keyframes cel-roll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media (prefers-reduced-motion:reduce){.is-celebrating .daily-ex-success-check,.is-celebrating .session-summary-stat,.is-celebrating .session-summary-row,.is-celebrating .session-summary-row-stamp,.streak-chip--bump .streak-chip-flame{animation:none}.cel-strings,.streak-chip--bump .streak-chip-glow,.streak-chip--bump .streak-chip-spark{display:none}.streak-chip--bump .streak-chip-roll-inner{animation:none;transform:translateY(-50%)}}.session-week-done{margin:var(--sp-3) 0;border-radius:var(--br-md);background:rgba(var(--color-success-rgb), .1);border:1px solid rgba(var(--color-success-rgb), .4);align-items:center;gap:12px;padding:12px;display:flex}.is-celebrating .session-week-done{animation:cel-week-in .7s var(--ease-spring) 1.3s both}@keyframes cel-week-in{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:none}}.session-week-done-check{background:var(--color-success);width:32px;height:32px;color:var(--bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.session-week-done-check svg{width:18px;height:18px}.session-week-done-text{flex-direction:column;min-width:0;display:flex}.session-week-done-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-success)}.session-week-done-title{color:var(--text);font-weight:600}.pg-week-done{margin:var(--sp-2) 0 0;color:var(--color-success);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.pg-week-done-check{background:var(--color-success);width:20px;height:20px;color:var(--bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.pg-week-done-check svg{width:12px;height:12px}@media (prefers-reduced-motion:reduce){.is-celebrating .session-week-done{animation:none}}.session-summary-stat--best{position:relative}.session-summary-stat--best .session-summary-row-stamp,.ex-done-feel{align-self:flex-start}.ex-done-next{border:1px solid var(--border2);background:rgba(var(--black-rgb), .25);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;padding:12px}.ex-done-next:hover{border-color:rgba(var(--accent-practice-rgb), .6)}.ex-done-next:focus-visible{outline:2px solid var(--accent-practice);outline-offset:2px}.ex-done-next-cta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-practice);flex:none}.hl-page{flex-direction:column;gap:32px;width:100%;min-width:0;max-width:640px;margin:0 auto;padding:8px 0 40px;display:flex}.hl-hero{flex-direction:column;gap:14px;padding-top:12px;display:flex}.hl-kicker{align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-oasis);flex-wrap:wrap;margin:0;font-weight:500;display:flex}.hl-headline{font-family:var(--font-head);letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:0;font-size:44px;font-weight:700;line-height:1.02}.hl-sub{color:var(--muted);margin:0;font-size:16px;line-height:1.45}.hl-note{text-align:center;font-size:var(--fs-base);color:var(--muted);margin:0}.hl-signin{text-align:center;font-size:var(--fs-base);color:var(--muted);margin:-4px 0 0}.hl-link-btn{min-height:44px;color:var(--accent-oasis);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-weight:600}.hl-link-btn:hover{color:#7ab8ff;text-decoration:underline}.hl-section{flex-direction:column;gap:12px;display:flex}.hl-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.hl-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:26px;font-weight:700}.daily-exercise-card.hl-preview-card{align-content:start;min-height:0;margin:0}.hl-preview-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);flex:none;margin-top:4px}.hl-preview-more{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted);margin:0}.hl-how{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hl-how-item{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);gap:14px;padding:14px;display:flex}.hl-how-icon{background:rgba(var(--accent-practice-rgb), .12);width:36px;height:36px;color:var(--accent-oasis);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.hl-how-icon svg{width:18px;height:18px}.hl-how-text{flex-direction:column;gap:2px;min-width:0;display:flex}.hl-how-title{font-weight:600;font-size:var(--fs-md);color:var(--text)}.hl-how-body{color:var(--muted);font-size:14px;line-height:1.4}.hl-tools{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.hl-tool{grid-column:span 2}.hl-tool--wide{grid-column:span 3}.hl-tool{--tool-accent:var(--page-accent);--tool-tint:rgba(var(--page-accent-rgb), .12);box-sizing:border-box;background:var(--bg2);border:1px solid var(--border2);min-height:112px;color:var(--text);transition:border-color var(--dur-fast), transform var(--dur-fast);border-radius:14px;flex-direction:column;gap:8px;padding:12px;text-decoration:none;display:flex}.hl-tool:hover{border-color:var(--tool-accent);color:var(--text);transform:translateY(-1px)}.hl-tool--wide{min-height:96px}.hl-cta{margin-top:6px}.hl-teach-cta{min-height:44px}.hl-tool-icon{background:var(--tool-tint);width:32px;height:32px;color:var(--tool-accent);border-radius:9px;justify-content:center;align-items:center;display:flex}.hl-tool-icon svg{width:16px;height:16px}.hl-tool-title{font-weight:600;font-size:var(--fs-base);line-height:1.2}.hl-tool-body{font-size:var(--fs-sm);color:var(--muted);line-height:1.3}.hl-teach{border-radius:var(--br-lg);background:var(--bg2);border:1px solid rgba(var(--accent-teach-rgb), .35);flex-direction:column;gap:10px;padding:16px;display:flex}.hl-teach-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-clapton);align-items:center;gap:8px;margin:0;font-weight:500;display:flex}.hl-teach-kicker svg{flex:none;width:16px;height:16px}.hl-teach-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:22px;font-weight:700;line-height:1.1}.hl-teach-body{color:var(--muted);margin:0;font-size:14px}.hl-footer{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:8px;padding-top:20px;display:flex}.hl-lang{border-radius:var(--br-md);background:var(--bg2);border:1px solid var(--border2);grid-template-columns:repeat(3,1fr);align-self:stretch;gap:4px;padding:4px;display:grid}.hl-lang-btn{min-height:40px;color:var(--muted);font:inherit;font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;border-radius:9px}.hl-lang-btn.is-active{background:rgba(var(--accent-practice-rgb), .14);color:var(--accent-oasis);font-weight:600}.hl-about-link{min-height:44px;font-size:var(--fs-base);color:var(--muted);align-items:center;display:inline-flex}.hl-about-link:hover{color:var(--text)}@media (min-width:760px){.hl-page{gap:40px;padding-top:24px}.hl-headline{font-size:56px}.hl-hero .hl-cta{align-self:flex-start;min-width:260px}.hl-note,.hl-signin{text-align:left}}@media (min-width:1000px){.hl-page{max-width:var(--page-w-wide);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:48px 56px;display:grid}.hl-page>*{grid-column:1/-1}.hl-page>.hl-hero{grid-column:1}.hl-page>.hl-hero+.hl-section{grid-column:2}.hl-how{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.hl-how-item{box-sizing:border-box;height:100%}.hl-footer{justify-self:center;width:min(100%,520px)}}.hl-ea-badge{min-height:22px;padding:0 var(--sp-2);border-radius:var(--br-pill);border:1px solid rgba(var(--accent-practice-rgb), .45);background:rgba(var(--accent-practice-rgb), .12);color:var(--text);font-size:var(--fs-2xs);letter-spacing:.12em;align-items:center;display:inline-flex}.hl-teach-ea{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-teach);margin:0}.ac{width:100%;min-width:0;max-width:var(--page-w-app);flex-direction:column;gap:28px;margin:0 auto;padding:16px 0 40px;display:flex}.ac-hero{flex-direction:column;gap:10px;display:flex}.ac-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:38px;font-weight:700;line-height:1}.ac-body{color:var(--muted);margin:0;line-height:1.55}.ac-ctas{flex-direction:column;gap:8px;margin-top:8px;display:flex}.ac-preview{background:radial-gradient(circle at 100% 0%, rgba(var(--page-accent-rgb), .18), transparent 60%), var(--bg2);border:1px solid rgba(var(--page-accent-rgb), .35);box-shadow:var(--card-shadow);border-radius:20px;flex-direction:column;gap:10px;padding:14px;display:flex}.ac-preview-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--page-accent);margin:0}.ac-preview-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.ac-preview-tile{border:1px solid var(--border);border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.ac-preview-num{font-family:var(--font-head);font-size:24px;font-weight:700;line-height:1.1}.ac-preview-label{font-size:var(--fs-xs);color:var(--muted);line-height:1.25}.ac-tone--amber .ac-preview-num{color:var(--streak)}.ac-tone--green .ac-preview-num{color:var(--on)}.ac-tone--gold .ac-preview-num{color:var(--page-accent)}.ac-preview-list{background:var(--bg);border:1px solid var(--border);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.ac-preview-row{align-items:center;gap:10px;padding:9px 12px;display:flex}.ac-preview-row+.ac-preview-row{border-top:1px solid var(--border)}.ac-preview-avatar{background:var(--bg3);border:1px solid rgba(var(--color-warning-rgb), .55);width:30px;height:30px;font-family:var(--font-mono);font-size:var(--fs-2xs);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.ac-preview-text{flex-direction:column;flex:1;min-width:0;display:flex}.ac-preview-name{font-size:14px;font-weight:600}.ac-preview-sub{font-size:var(--fs-sm);color:var(--streak)}.ac-preview-btn{border:1px solid rgba(var(--page-accent-rgb), .5);color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;border-radius:8px;flex:none;padding:6px 10px}.ac-section{flex-direction:column;gap:12px;min-width:0;display:flex}.ac-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:500}.ac-label--gold{color:var(--page-accent)}.ac-steps{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.ac-step{gap:12px;display:flex}.ac-step-num{border:1px solid rgba(var(--page-accent-rgb), .5);width:30px;height:30px;color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.ac-step-text{flex-direction:column;display:flex}.ac-step-title{font-weight:600}.ac-step-body{color:var(--muted);font-size:14px}.ac-columns,.ac-side{flex-direction:column;gap:28px;min-width:0;display:flex}.ac-list{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);margin:0;padding:0;list-style:none;overflow:hidden}.ac-item{flex-direction:column;padding:12px 14px;display:flex}.ac-item+.ac-item{border-top:1px solid var(--border)}.ac-item-title{font-weight:600}.ac-item-body{color:var(--muted);font-size:13px}.ac-contact{border-radius:var(--br-lg);border:1px dashed rgba(var(--page-accent-rgb), .4);flex-direction:column;gap:10px;padding:18px;display:flex}.ac-contact-title{font-size:var(--fs-md);margin:0;font-weight:600}.ac-contact-links{flex-wrap:wrap;gap:6px 18px;display:flex}.ac-link{min-height:36px;color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;align-items:center;text-decoration:none;display:inline-flex}@media (min-width:900px){.ac{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:40px;padding-top:32px;display:grid}.ac-title{font-size:52px}.ac-ctas{flex-direction:row}.ac-ctas .ac-btn{flex:0 auto}.ac-how{grid-column:1/-1}.ac-steps{flex-direction:row;gap:24px}.ac-step{flex:1}.ac-columns{grid-column:1/-1;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}}.jn{width:100%;min-width:0;max-width:var(--page-w-flow);flex-direction:column;gap:20px;margin:0 auto;padding:16px 0 40px;display:flex}.jn-head{flex-direction:column;gap:8px;margin-top:-10px;display:flex}.jn-title{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:34px;font-weight:700;line-height:1.02}.jn-body{color:var(--muted);margin:0;line-height:1.5}.jn-hint{color:var(--muted);margin:0;font-size:13px}.jn-link{color:var(--page-accent)}.jn-form{flex-direction:column;gap:10px;display:flex}.jn-code-input{border:1px solid var(--border2);background:var(--bg3);width:100%;height:64px;color:var(--text);font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;border-radius:14px;outline:none;padding:0 18px;font-size:28px}.jn-code-input::placeholder{color:var(--muted);opacity:.35}.jn-code-input:focus-visible{outline:none}.jn-code-input:focus{border-color:rgba(var(--page-accent-rgb), .7);box-shadow:0 0 0 3px rgba(var(--page-accent-rgb), .12)}.jn-btn--ghost{margin-top:-10px}.jn-card{border-radius:var(--br-lg);background:var(--bg2);border:1px solid var(--border2);flex-direction:column;gap:10px;padding:16px;display:flex}.jn-card-title{font-size:var(--fs-md);margin:0;font-weight:600}.jn-what-list{color:var(--muted);flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:14px;display:flex}.jn-what-list li::marker{color:var(--page-accent)}.jn-status{flex-direction:row;align-items:center}.jn-spinner{border:2px solid var(--border2);border-top-color:var(--page-accent);border-radius:50%;flex:none;width:20px;height:20px;animation:.85s linear infinite jn-spin}@keyframes jn-spin{to{transform:rotate(360deg)}}.jn-problem{align-items:flex-start}.jn-problem-icon,.jn-success-icon{background:rgba(var(--yt-bright-rgb), .12);width:40px;height:40px;color:var(--color-danger);border-radius:12px;justify-content:center;align-items:center;display:flex}.jn-problem-icon svg,.jn-success-icon svg{width:20px;height:20px}.jn-steps-list{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.jn-success{text-align:center;align-items:center}.jn-success-icon{background:rgba(var(--color-success-rgb), .14);color:var(--on)}.jn-academy{text-align:center;background:radial-gradient(circle at 50% 0%, rgba(var(--page-accent-rgb), .22), transparent 70%), var(--bg2);border:1px solid rgba(var(--page-accent-rgb), .4);border-radius:20px;flex-direction:column;align-items:center;gap:8px;padding:24px 18px;display:flex}.jn-academy-mark{background:var(--bg3);border:1px solid rgba(var(--page-accent-rgb), .6);width:64px;height:64px;color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-lg);border-radius:18px;justify-content:center;align-items:center;display:flex}.jn-academy-mark svg{width:28px;height:28px}.jn-academy-name{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;margin:4px 0 0;font-size:30px;font-weight:700;line-height:1.05}.jn-academy-sub{color:var(--muted);margin:0}.jn-academy-tag{background:rgba(var(--page-accent-rgb), .12);color:var(--page-accent);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;border-radius:6px;margin:0;padding:3px 8px}.jn-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.jn-step{align-items:flex-start;gap:12px;display:flex}.jn-step-num{background:rgba(var(--page-accent-rgb), .12);width:32px;height:32px;color:var(--page-accent);font-family:var(--font-mono);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.jn-step-text{flex-direction:column;display:flex}.jn-step-title{font-weight:600}.jn-step-body{color:var(--muted);font-size:13px}.cal-banner{background:rgba(var(--accent-practice-rgb), .06);border:1px solid rgba(var(--accent-practice-rgb), .2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;display:flex}.cal-banner--connected{background:rgba(var(--color-success-rgb), .05);border-color:rgba(var(--color-success-rgb), .18)}.cal-banner--expired{background:rgba(var(--color-warning-rgb), .06);border-color:rgba(var(--color-warning-rgb), .22)}.cal-banner-text{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);flex:1;min-width:0;font-size:11px;font-weight:600}.cal-banner-text--warn{color:var(--streak)}.cal-banner-btn{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;border:1px solid rgba(var(--accent-practice-rgb), .4);background:rgba(var(--accent-practice-rgb), .1);color:var(--accent-practice);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:10px;font-weight:700;transition:background .18s,border-color .18s}.cal-banner-btn:hover:not(:disabled){background:rgba(var(--accent-practice-rgb), .2);border-color:rgba(var(--accent-practice-rgb), .6)}.cal-banner-btn:disabled{opacity:.55;cursor:not-allowed}.cal-banner-btn--warn{border-color:rgba(var(--color-warning-rgb), .4);background:rgba(var(--color-warning-rgb), .1);color:var(--streak)}.cal-banner-btn--warn:hover:not(:disabled){background:rgba(var(--color-warning-rgb), .2);border-color:rgba(var(--color-warning-rgb), .6)}.cal-banner-link{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:10px;font-weight:600;text-decoration:underline}.cal-banner-link:hover{color:var(--text)}.cal-banner-error{font-family:var(--font-mono);color:#ff5252;width:100%;font-size:10px}.cal-lesson-chip{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-practice);background:rgba(var(--accent-practice-rgb), .1);border:1px solid rgba(var(--accent-practice-rgb), .3);cursor:pointer;border-radius:6px;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;font-size:10px;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.cal-lesson-chip:hover{background:rgba(var(--accent-practice-rgb), .18);border-color:rgba(var(--accent-practice-rgb), .5)}@keyframes cal-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cal-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-practice);text-shadow:0 0 10px rgba(var(--accent-practice-rgb), .35);margin:0;font-size:10px;font-weight:700}.cal-body{font-family:var(--font-body);color:var(--muted);margin:0;font-size:13px;line-height:1.45}.cal-btn{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:10px;padding:10px 16px;font-size:11px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s}.cal-btn:disabled{opacity:.55;cursor:not-allowed}.cal-btn--primary{background:linear-gradient(135deg, var(--accent-practice) 0%, #2a6fd6 100%);border-color:rgba(var(--accent-practice-rgb), .65);color:var(--white);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .22), inset 0 -1px 0 rgba(var(--black-rgb), .18), 0 4px 14px rgba(var(--accent-practice-rgb), .3)}.cal-btn--primary:hover:not(:disabled){box-shadow:0 8px 22px rgba(var(--accent-practice-rgb), .5);transform:translateY(-1px)}.cal-btn--ghost{background:linear-gradient(180deg, rgba(var(--white-rgb), .05), rgba(var(--white-rgb), .02));border-color:var(--border2);color:var(--muted)}.cal-btn--ghost:hover:not(:disabled){background:rgba(var(--accent-practice-rgb), .1);border-color:rgba(var(--accent-practice-rgb), .4);color:var(--text)}.cal-btn--danger{color:#ff5252;background:0 0;border-color:#ff525259}.cal-btn--danger:hover:not(:disabled){background:#ff52521a;border-color:#ff52528c}.cal-section-head{flex-direction:column;gap:2px;display:flex}.cal-section-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:20px;font-weight:700}.cal-day-group{flex-direction:column;gap:6px;display:flex}.cal-day-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);margin:0;padding:4px 0;font-size:11px;font-weight:700}.cal-lesson{background:var(--bg2);border:1px solid var(--border2);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;transition:border-color .18s,transform .14s;display:flex}.cal-lesson:hover{border-color:rgba(var(--accent-practice-rgb), .35);transform:translateY(-1px)}.cal-lesson-left{align-items:center;gap:12px;min-width:0;display:flex}.cal-lesson-time{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;min-width:50px;font-size:13px;font-weight:700}.cal-lesson-info{flex-direction:column;gap:1px;min-width:0;display:flex}.cal-lesson-name{font-family:var(--font-body);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;font-weight:500;overflow:hidden}.cal-lesson-instrument{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:10px}.cal-lesson-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.cal-status-pill{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700}.cal-status-pill--scheduled{background:rgba(var(--accent-practice-rgb), .12);border:1px solid rgba(var(--accent-practice-rgb), .3);color:var(--accent-practice)}.cal-status-pill--completed{background:rgba(var(--color-success-rgb), .12);border:1px solid rgba(var(--color-success-rgb), .3);color:var(--on)}.cal-status-pill--student_absent,.cal-status-pill--teacher_absent{background:rgba(var(--color-warning-rgb), .12);border:1px solid rgba(var(--color-warning-rgb), .3);color:var(--streak)}.cal-status-pill--cancelled{color:#ff5252;background:#ff52521a;border:1px solid #ff525240}.cal-empty{text-align:center;border:1px dashed rgba(var(--white-rgb), .1);border-radius:14px;padding:24px 16px}.cal-empty-text{font-family:var(--font-body);color:var(--muted);margin:0;font-size:13px}.cal-share-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-share-btn{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border-radius:9px;align-items:center;gap:5px;padding:9px 14px;font-size:10px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .14s,box-shadow .18s;display:inline-flex}.cal-share-btn--copy{border:1px solid rgba(var(--accent-practice-rgb), .35);background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .12), rgba(var(--practice-deep-rgb), .07));color:var(--accent-practice);box-shadow:0 2px 10px rgba(var(--accent-practice-rgb), .14), inset 0 1px 0 rgba(var(--white-rgb), .06)}.cal-share-btn--copy:hover{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .22), rgba(var(--practice-deep-rgb), .14));border-color:rgba(var(--accent-practice-rgb), .6);box-shadow:0 6px 18px rgba(var(--accent-practice-rgb), .28), inset 0 1px 0 rgba(var(--white-rgb), .1);transform:translateY(-1px)}.cal-share-btn--copied{border-color:rgba(var(--color-success-rgb), .45);background:linear-gradient(135deg, rgba(var(--color-success-rgb), .16), rgba(var(--success-deep-rgb), .09));color:var(--on);box-shadow:0 2px 12px rgba(var(--color-success-rgb), .22), inset 0 1px 0 rgba(var(--white-rgb), .08)}.cal-share-btn--whatsapp{color:#25d366;box-shadow:0 2px 10px #25d36624, inset 0 1px 0 rgba(var(--white-rgb), .06);background:linear-gradient(135deg,#25d3661f,#14a04612);border:1px solid #25d36659}.cal-share-btn--whatsapp:hover{box-shadow:0 6px 18px #25d36647, inset 0 1px 0 rgba(var(--white-rgb), .1);background:linear-gradient(135deg,#25d36638,#14a04624);border-color:#25d36699;transform:translateY(-1px)}.cal-modal{background:var(--bg2);border:1px solid var(--border2);width:100%;max-width:480px;max-height:85vh;box-shadow:0 20px 60px rgba(var(--black-rgb), .5), inset 0 1px 0 rgba(var(--white-rgb), .06);border-radius:16px;flex-direction:column;gap:14px;padding:24px;animation:.25s ease-out cal-modal-in;display:flex;overflow-y:auto}@keyframes cal-modal-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.cal-modal-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:20px;font-weight:700}.cal-form-group{flex-direction:column;gap:4px;display:flex}.cal-form-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.cal-form-input,.cal-form-select,.cal-form-textarea{font-family:var(--font-body);color:var(--text);background:rgba(var(--black-rgb), .3);border:1px solid var(--border2);border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .18s,box-shadow .18s}.cal-form-input:focus,.cal-form-select:focus,.cal-form-textarea:focus{border-color:rgba(var(--accent-practice-rgb), .5);box-shadow:0 0 0 3px rgba(var(--accent-practice-rgb), .1)}.cal-form-input::placeholder,.cal-form-textarea::placeholder{color:var(--muted);opacity:.6}.cal-form-select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23a89f98' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.cal-form-textarea{resize:vertical;min-height:60px}.cal-form-hint{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:10px}.cal-form-error{font-family:var(--font-mono);color:#ff5252;margin:0;font-size:10px}.cal-form-row{gap:10px;display:flex}.cal-form-row>.cal-form-group{flex:1}.cal-form-actions{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.cal-form-toggle{cursor:pointer;align-items:center;gap:8px;display:flex}.cal-form-toggle input[type=checkbox]{accent-color:var(--accent-practice);width:16px;height:16px}.cal-form-toggle-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:600}.cal-existing-lesson{background:rgba(var(--white-rgb), .03);border:1px solid var(--border2);border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.cal-existing-lesson-info{align-items:center;gap:8px;display:flex}.cal-cancel-confirm{flex-direction:column;gap:4px;display:flex}.cal-type-toggle{border:1px solid var(--border2);border-radius:8px;gap:0;display:flex;overflow:hidden}.cal-type-option{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:1;padding:9px 12px;font-size:10px;font-weight:700;transition:background .15s,color .15s}.cal-type-option:not(:last-child){border-right:1px solid var(--border2)}.cal-type-option:hover{color:var(--text)}.cal-type-option--active{background:rgba(var(--accent-practice-rgb), .12);color:var(--accent-practice)}.cal-attendance-group{flex-wrap:wrap;gap:6px;display:flex}.cal-attendance-option{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border2);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:7px 12px;font-size:10px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.cal-attendance-option:hover{border-color:rgba(var(--accent-practice-rgb), .35);color:var(--text)}.cal-attendance-option--active{border-color:rgba(var(--accent-practice-rgb), .55);background:rgba(var(--accent-practice-rgb), .12);color:var(--accent-practice)}.cal-attendance-option--completed.cal-attendance-option--active{border-color:rgba(var(--color-success-rgb), .55);background:rgba(var(--color-success-rgb), .12);color:var(--on)}.cal-attendance-option--cancelled.cal-attendance-option--active,.cal-attendance-option--student_absent.cal-attendance-option--active,.cal-attendance-option--teacher_absent.cal-attendance-option--active{border-color:rgba(var(--color-warning-rgb), .45);background:rgba(var(--color-warning-rgb), .1);color:var(--streak)}.cal-upcoming-card{background:linear-gradient(135deg, rgba(var(--accent-practice-rgb), .1) 0%, rgba(var(--practice-deep-rgb), .04) 100%), var(--bg2);border:1px solid rgba(var(--accent-practice-rgb), .28);border-radius:14px;flex-direction:column;gap:8px;padding:16px 18px;animation:.45s ease-out both cal-fade-up;display:flex}.cal-upcoming-card--loading{border-color:var(--border);background:var(--bg2);min-height:110px;animation:none}.cal-upcoming-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-practice);text-shadow:0 0 10px rgba(var(--accent-practice-rgb), .35);margin:0;font-size:10px;font-weight:700}.cal-upcoming-heading{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:18px;font-weight:700}.cal-upcoming-time{font-family:var(--font-mono);color:var(--accent-practice);font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:700}.cal-upcoming-notes{font-family:var(--font-body);color:var(--muted);background:rgba(var(--black-rgb), .2);border-left:3px solid rgba(var(--accent-practice-rgb), .35);border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4}.cal-upcoming-notes-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:10px;font-weight:700}.cal-grid-wrap{flex-direction:column;gap:12px;margin-top:4px;display:flex}.cal-grid-nav{align-items:center;gap:10px;display:flex}.cal-grid-nav-btn{border:1px solid var(--border2);background:linear-gradient(180deg, rgba(var(--white-rgb), .06), rgba(var(--white-rgb), .02));width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:8px;font-size:15px;line-height:1;transition:background .15s,border-color .15s,color .15s}.cal-grid-nav-btn:hover{background:rgba(var(--accent-practice-rgb), .1);border-color:rgba(var(--accent-practice-rgb), .4);color:var(--text)}.cal-grid-nav-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text);font-variant-numeric:tabular-nums;text-align:center;min-width:130px;font-size:12px;font-weight:700}.cal-grid-today-btn{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(var(--accent-practice-rgb), .35);background:rgba(var(--accent-practice-rgb), .1);color:var(--accent-practice);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:10px;font-weight:700}.cal-grid-today-btn:hover{background:rgba(var(--accent-practice-rgb), .18)}.cal-grid{border:1px solid var(--border2);background:var(--bg2);scroll-snap-type:x mandatory;border-radius:12px;display:flex;overflow-x:auto}.cal-grid-time-axis{z-index:2;background:var(--bg2);border-right:1px solid var(--border2);flex-shrink:0;width:48px;position:sticky;left:0}.cal-grid-time-label{box-sizing:border-box;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);padding:2px 6px 0 0}.cal-grid-days{flex:1;min-width:0;display:flex}.cal-grid-day{scroll-snap-align:start;border-right:1px solid var(--border);flex-direction:column;flex:1;min-width:140px;display:flex}.cal-grid-day:last-child{border-right:none}.cal-grid-day-header{z-index:1;background:var(--bg2);border-bottom:1px solid var(--border2);flex-direction:column;justify-content:center;align-items:center;gap:1px;height:44px;display:flex;position:sticky;top:0}.cal-grid-day-name{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.cal-grid-day-num{font-family:var(--font-head);color:var(--text);font-size:15px;font-weight:700}.cal-grid-day-header--today{background:rgba(var(--accent-practice-rgb), .1)}.cal-grid-day-header--today .cal-grid-day-name,.cal-grid-day-header--today .cal-grid-day-num{color:var(--accent-practice)}.cal-grid-day-col{cursor:pointer;position:relative}.cal-grid-hour-row{box-sizing:border-box;border-bottom:1px solid var(--border)}.cal-grid-lesson-block{cursor:pointer;border:1px solid rgba(var(--accent-practice-rgb), .4);background:rgba(var(--accent-practice-rgb), .16);border-radius:6px;flex-direction:column;gap:1px;padding:3px 6px;transition:transform .12s;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.cal-grid-lesson-block:hover{transform:translateY(-1px)}.cal-grid-lesson-block--completed{border-color:rgba(var(--color-success-rgb), .4);background:rgba(var(--color-success-rgb), .16)}.cal-grid-lesson-block--student_absent,.cal-grid-lesson-block--teacher_absent{border-color:rgba(var(--color-warning-rgb), .4);background:rgba(var(--color-warning-rgb), .16)}.cal-grid-lesson-time{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.cal-grid-lesson-name{font-family:var(--font-body);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cal-picker-list{flex-direction:column;gap:6px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cal-picker-row{border:1px solid var(--border2);background:rgba(var(--white-rgb), .02);width:100%;min-height:44px;color:var(--text);cursor:pointer;text-align:left;font-family:var(--font-body);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.cal-picker-row:hover{border-color:rgba(var(--accent-practice-rgb), .35);background:rgba(var(--accent-practice-rgb), .08)}.cal-picker-avatar{background:rgba(var(--accent-practice-rgb), .15);border:1px solid rgba(var(--accent-practice-rgb), .3);width:28px;height:28px;font-family:var(--font-mono);color:var(--accent-practice);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.cal-picker-name{font-weight:500}@media (max-width:520px){.cal-lesson{flex-wrap:wrap;padding:10px 12px}.cal-lesson-right{justify-content:flex-end;width:100%}.cal-form-row{flex-direction:column}.cal-modal{padding:18px 14px}.cal-share-row{flex-direction:column;align-items:stretch}.cal-share-btn{justify-content:center}.cal-grid-day{min-width:118px}.cal-grid-time-axis{width:40px}.cal-grid-lesson-name{font-size:10px}}.bottom-nav{display:none}@media (max-width:767px){.bottom-nav{z-index:140;padding:6px 4px calc(6px + var(--safe-bottom));padding-left:calc(4px + var(--safe-left));padding-right:calc(4px + var(--safe-right));background:rgba(var(--bg-rgb), .94);-webkit-backdrop-filter:blur(12px)saturate(1.3);backdrop-filter:blur(12px)saturate(1.3);border-top:1px solid var(--border2);box-shadow:0 -8px 28px rgba(var(--black-rgb), .45);grid-auto-columns:1fr;grid-auto-flow:column;align-items:stretch;gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{border-radius:var(--br-sm);min-height:56px;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 2px 4px;display:flex;position:relative}.bottom-nav-item:before{content:"";border-radius:0 0 var(--br-pill) var(--br-pill);background:var(--tab-accent,var(--text));opacity:0;width:0;height:2px;transition:width var(--dur-normal) var(--ease-spring), opacity var(--dur-fast) var(--ease-out);position:absolute;top:0;left:50%;transform:translate(-50%)}.bottom-nav-item.is-active{color:var(--tab-accent,var(--text))}.bottom-nav-item.is-active:before{opacity:1;width:26px}.bottom-nav-item.is-active .bottom-nav-icon{filter:drop-shadow(0 0 8px color-mix(in srgb, var(--tab-accent,var(--text)) 50%, transparent))}.bottom-nav-icon{stroke-linecap:round;width:23px;height:23px;transition:transform var(--dur-fast) var(--ease-out)}.bottom-nav-item.is-active .bottom-nav-icon{transform:translateY(-1px)}.bottom-nav-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700;line-height:1}.bottom-nav-item:focus-visible{outline:2px solid var(--tab-accent,var(--accent-oasis));outline-offset:-2px}}@media (max-width:767px) and (hover:none) and (pointer:coarse){.bottom-nav-item:active{transform:scale(.92)}}.header-bar{gap:var(--sp-4)}.header-wordmark{flex:none}.header-nav{justify-content:center;gap:var(--sp-1);flex:1;min-width:0;display:none}@media (min-width:768px){.header-nav{display:flex}}.header-nav-item{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-3);border-radius:var(--br-sm);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:0;display:inline-flex;position:relative}.header-nav-item:hover{color:var(--text);background:var(--white-a04)}.header-nav-item:focus-visible{outline:2px solid var(--tab-accent,var(--text));outline-offset:2px}.header-nav-item.is-active{color:var(--tab-accent,var(--text))}.header-nav-item.is-active:after{content:"";left:var(--sp-3);right:var(--sp-3);background:var(--tab-accent,var(--text));border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-13px}.header-nav-icon{flex:none;width:18px;height:18px}.streak-chip{min-height:36px}.streak-chip-flame{flex:none;width:14px;height:14px}.menu-btn{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--bg3);min-height:40px;color:var(--muted);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);align-items:center;gap:6px;padding:3px 10px 3px 3px;display:inline-flex}.menu-btn:not(.has-user){padding:0 10px}.menu-btn:hover,.menu-btn.is-open{border-color:var(--oasis-a50);color:var(--text)}.menu-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.menu-btn-avatar{object-fit:cover;border-radius:50%;flex:none;width:32px;height:32px}.menu-btn-avatar--initials{background:var(--oasis-a15);color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.menu-btn-icon{flex:none;width:20px;height:20px}.auth-drawer.app-menu{width:340px;max-width:92vw;padding:calc(var(--safe-top) + var(--sp-3)) var(--sp-4) calc(var(--safe-bottom) + var(--sp-4));gap:var(--sp-4);box-shadow:-18px 0 48px rgba(var(--black-rgb), .45)}.app-menu-head{justify-content:space-between;align-items:center;display:flex}.app-menu-title{font-family:var(--font-head);font-size:var(--fs-xl);letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-weight:700}.app-menu-close{border:1px solid var(--border2);background:var(--bg3);width:44px;height:44px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.app-menu-close:hover{color:var(--text);border-color:var(--white-a12)}.app-menu-close:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:2px}.app-menu-account{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg3);display:flex}.app-menu-avatar{object-fit:cover;border-radius:50%;flex:none;width:40px;height:40px}.app-menu-avatar--initials{background:var(--oasis-a15);color:var(--accent-oasis);font-family:var(--font-mono);font-size:var(--fs-sm);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.app-menu-account-text{flex-direction:column;flex:1;min-width:0;display:flex}.app-menu-account-name{font-size:var(--fs-md);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.app-menu-account-email{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-menu-signout{border-radius:var(--br-sm);border:1px solid var(--border2);min-height:36px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;flex:none;padding:0 10px}.app-menu-signout:hover{color:var(--text);border-color:var(--white-a12)}.app-menu-group{gap:var(--sp-2);flex-direction:column;display:flex}.app-menu-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.app-menu-nav{border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg3);flex-direction:column;display:flex;overflow:hidden}.app-menu-item{align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-3);color:var(--text);text-align:left;cursor:pointer;transition:background var(--dur-fast);background:0 0;border:0;display:flex}.app-menu-item+.app-menu-item{border-top:1px solid var(--border)}.app-menu-item:hover{background:var(--white-a04)}.app-menu-item:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:-2px}.app-menu-item-icon{border-radius:var(--br-sm);background:var(--white-a06);width:34px;height:34px;color:var(--text);flex:none;justify-content:center;align-items:center;display:inline-flex}.app-menu-item-icon svg{width:18px;height:18px}.app-menu-item--learn .app-menu-item-icon{background:rgba(var(--yt-bright-rgb), .12);color:var(--yt-red-bright)}.app-menu-item--metronome .app-menu-item-icon,.app-menu-item--tuner .app-menu-item-icon{background:rgba(var(--accent-tools-rgb), .14);color:var(--accent-tools)}.app-menu-item--fretboardMemory .app-menu-item-icon{background:var(--oasis-a12);color:var(--accent-oasis)}.app-menu-item--chords .app-menu-item-icon{background:rgba(var(--accent-practice-rgb), .12);color:var(--accent-practice)}.app-menu-item--teacher .app-menu-item-icon{background:rgba(var(--accent-teach-rgb), .12);color:var(--accent-teach)}.app-menu-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.app-menu-item-label{font-size:var(--fs-md);font-weight:600}.app-menu-item-desc{font-size:var(--fs-sm);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.app-menu-setting{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-2) var(--sp-3);border-radius:var(--br-md);border:1px solid var(--border2);background:var(--bg3);display:flex}.app-menu-setting-label{font-size:var(--fs-base);color:var(--text)}.app-menu-segment{border-radius:var(--br-pill);background:rgba(var(--black-rgb), .3);border:1px solid var(--border);padding:3px;display:inline-flex}.app-menu-segment-btn{border-radius:var(--br-pill);min-width:44px;min-height:34px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:0 10px}.app-menu-segment-btn.is-active{background:var(--oasis-a18);color:var(--accent-oasis)}.app-menu-segment-btn:focus-visible{outline:2px solid var(--accent-oasis);outline-offset:1px}.app-menu-switch{border-radius:var(--br-pill);border:1px solid var(--border2);background:var(--white-a08);cursor:pointer;width:48px;height:28px;transition:background var(--dur-fast), border-color var(--dur-fast);flex:none;position:relative}.app-menu-switch:before{content:"";position:absolute;top:-9px;bottom:-9px;left:-4px;right:-4px}.app-menu-switch-knob{background:var(--muted);width:20px;height:20px;transition:transform var(--dur-normal) var(--ease-out), background var(--dur-fast);border-radius:50%;position:absolute;top:3px;left:3px}.app-menu-switch.is-on{background:rgba(var(--color-success-rgb), .25);border-color:rgba(var(--color-success-rgb), .55)}.app-menu-switch.is-on .app-menu-switch-knob{background:var(--on);transform:translate(20px)}.app-menu-switch:focus-visible{outline:2px solid var(--on);outline-offset:2px}.app-menu-data{gap:var(--sp-2);flex-wrap:wrap;display:flex}.app-menu-data-btn{min-height:40px;padding:0 var(--sp-3);border-radius:var(--br-sm);border:1px solid var(--border2);color:var(--muted);font-size:var(--fs-sm);cursor:pointer;background:0 0}.app-menu-data-btn:hover{color:var(--text);border-color:var(--white-a12)}.app-menu-data-btn--danger{color:var(--error);border-color:rgba(var(--color-danger-rgb), .3)}.app-menu-data-btn--danger:hover{color:#ff7a7a;border-color:rgba(var(--color-danger-rgb), .6)}.app-menu-footer{align-items:center;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted);flex-wrap:wrap;margin-top:auto;display:flex}.app-menu-footer-link{min-height:32px;color:var(--muted);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:0}.app-menu-footer-link:hover{color:var(--text)}.app-menu-version{letter-spacing:.06em;margin-left:auto}.app-menu-version-info{flex-direction:column;gap:2px;min-width:0;display:flex}.app-menu-build{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.04em;overflow-wrap:anywhere}.app-menu-build-version{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);letter-spacing:.04em}.app-menu-build-status{font-size:var(--fs-xs);color:var(--text)}.app-menu-build-check{padding:var(--sp-1) var(--sp-3);border-radius:var(--br-pill);border:1px solid var(--border);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;flex-shrink:0}.app-menu-build-check:hover{border-color:var(--border2)}.app-menu-build-check:disabled{opacity:.6;cursor:default}.app-connection{background:rgba(var(--color-warning-rgb), .12);border-bottom:1px solid rgba(var(--color-warning-rgb), .3);color:var(--streak);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-align:center;justify-content:center;align-items:center;gap:8px;padding:7px 16px;animation:.25s ease-out both app-notice-in;display:flex}.app-connection.is-online{background:rgba(var(--color-success-rgb), .1);border-bottom-color:rgba(var(--color-success-rgb), .3);color:var(--on)}.app-connection svg{flex:none}.app-update{left:12px;right:12px;bottom:calc(var(--bottom-nav-h) + 12px + var(--safe-bottom));z-index:10000;border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg3);max-width:520px;box-shadow:var(--shadow-lg);align-items:center;gap:12px;margin:0 auto;padding:12px 12px 12px 16px;animation:.3s ease-out both app-notice-in;display:flex;position:fixed}.app-update-text{min-width:0;color:var(--muted);flex-direction:column;flex:1;gap:2px;font-size:13px;display:flex}.app-update-text strong{color:var(--text);font-size:14px;font-weight:600}.app-update-actions{flex:none;gap:6px;display:flex}.app-update-later,.app-update-btn{min-height:40px;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:10px;padding:0 12px}.app-update-later{color:var(--muted);background:0 0;border:none}.app-update-btn{border:1px solid rgba(var(--color-success-rgb), .5);background:rgba(var(--color-success-rgb), .14);color:var(--on)}.app-update-btn.is-updating{cursor:progress;opacity:.85;animation:1.1s ease-in-out infinite app-update-pulse}@keyframes app-update-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.app-update-btn.is-updating{animation:none}}body:has(.practice-overlay) .app-update{display:none}.consent{left:12px;right:12px;bottom:calc(var(--bottom-nav-h) + 12px + var(--safe-bottom));z-index:9998;gap:var(--sp-2);max-width:520px;padding:var(--sp-4);border-radius:var(--br-lg);border:1px solid var(--border2);background:var(--bg2);box-shadow:var(--shadow-lg);flex-direction:column;margin:0 auto;display:flex;position:fixed}.consent-title{font-weight:600;font-size:var(--fs-md);color:var(--text);margin:0}.consent-body{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted);margin:0}.consent-link{color:var(--text);text-decoration:underline}.consent-actions{gap:var(--sp-2);margin-top:var(--sp-1);grid-template-columns:1fr 1fr;display:grid}.consent-btn{border-radius:var(--br-sm);border:1px solid var(--border2);background:var(--bg3);min-height:44px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.consent-btn:hover{border-color:var(--text)}.consent-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (min-width:1024px){.consent{bottom:24px}}body:has(.practice-overlay) .consent{display:none}.app-update-later:focus-visible{outline:2px solid var(--text);outline-offset:2px}.app-update-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (min-width:768px){.app-update{bottom:24px}}@keyframes app-notice-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.install-cta{border:1px solid rgba(var(--page-accent-rgb), .3);background:linear-gradient(180deg, rgba(var(--white-rgb), .06), rgba(var(--white-rgb), .02));color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .05), 0 2px 10px rgba(var(--black-rgb), .25);-webkit-tap-highlight-color:transparent;border-radius:11px;align-items:center;gap:10px;padding:10px 16px;transition:background .18s,border-color .18s,transform .14s,box-shadow .18s;display:inline-flex}.install-cta:hover{background:rgba(var(--page-accent-rgb), .1);border-color:rgba(var(--page-accent-rgb), .42);box-shadow:inset 0 1px 0 rgba(var(--white-rgb), .07), 0 6px 18px rgba(var(--page-accent-rgb), .22);transform:translateY(-1px)}.install-cta:active{transform:scale(.98)}.install-cta svg{color:var(--page-accent);flex-shrink:0}.install-cta-text{flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2;display:flex}.install-cta-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.install-cta-hint{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600}.home-install{margin:2px 0 20px}.install-card{border-radius:var(--br-lg);background:var(--bg2);border:1px dashed rgba(var(--white-rgb), .18);align-items:center;gap:12px;padding:14px;display:flex}.install-card-icon{border-radius:var(--br-md);background:var(--white-a06);width:40px;height:40px;color:var(--text);flex:none;justify-content:center;align-items:center;display:flex}.install-card-icon svg{width:18px;height:18px}.install-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.install-card-title{color:var(--text);font-size:14px;font-weight:600}.install-card-body{font-size:var(--fs-base);color:var(--muted)}.install-card-btn{border:1px solid rgba(var(--white-rgb), .18);min-height:40px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:10px;flex:none;padding:0 14px}.install-card-btn:hover{border-color:rgba(var(--accent-practice-rgb), .5);color:var(--accent-oasis)}.ms-field-hint{font-size:var(--fs-xs);line-height:var(--lh-snug);color:var(--muted);margin:0}.ms-chip{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text);background:var(--white-a04);border:1px solid var(--border2);border-radius:var(--br-pill);cursor:pointer;min-height:32px;transition:border-color var(--dur-fast), color var(--dur-fast);padding:6px 12px}.ms-chip:hover{border-color:var(--oasis-a50);color:var(--accent-oasis);outline:none}.ms-chip:focus-visible{border-color:var(--oasis-a50);color:var(--accent-oasis);outline:none}.ms-take-link{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-oasis);cursor:pointer;background:0 0;border:0;padding:6px 0;font-weight:700}.ms-take-link:hover{outline:none;text-decoration:underline}.ms-take-link:focus-visible{outline:none;text-decoration:underline}.ms-material{gap:8px}.ms-material-input{width:100%;min-height:40px;font-size:var(--fs-md)}.ms-material-picks{flex-wrap:wrap;gap:6px;display:flex}.ms-feel-note{border-top:1px dashed var(--border);gap:6px;padding-top:10px}.ms-feel-note .daily-ex-optional-label{font-size:var(--fs-2xs);opacity:.85}.ms-feel-note .daily-ex-input{font-size:var(--fs-base);background:0 0;min-height:36px}.ms-take-control{text-align:center;justify-items:center;gap:6px;display:grid}.ms-take-btn{min-height:44px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:var(--white-a04);border:1px solid var(--border2);border-radius:var(--br-pill);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);align-items:center;gap:8px;padding:10px 18px;font-weight:700;display:inline-flex}.ms-take-btn:hover:not(:disabled){border-color:rgba(var(--color-danger-rgb), .35);outline:none}.ms-take-btn:focus-visible{border-color:rgba(var(--color-danger-rgb), .35);outline:none}.ms-take-btn:disabled{opacity:.6;cursor:wait}.ms-take-btn.is-recording{color:var(--color-danger);border-color:rgba(var(--color-danger-rgb), .35);background:rgba(var(--color-danger-rgb), .12);font-variant-numeric:tabular-nums}.ms-rec-dot{background:var(--color-danger);border-radius:50%;flex:none;width:10px;height:10px}.ms-take-btn.is-recording .ms-rec-dot{animation:ms-rec-pulse 1.1s var(--ease-out) infinite}@keyframes ms-rec-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.ms-take-btn.is-recording .ms-rec-dot{animation:none}}.ms-take-saved{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;display:flex}.ms-take-saved-text{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--on)}.ms-take-review{box-sizing:border-box;border:1px solid var(--border2);border-radius:var(--br-md);background:var(--white-a02);align-self:stretch;gap:12px;width:100%;padding:12px;display:grid}.ms-take-review-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.ms-take-player{gap:4px;display:grid}.ms-take-player-head{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:8px;margin:0;display:flex}.ms-take-player-label{color:var(--text)}.ms-take-player-meta{color:var(--muted)}.ms-audio{width:100%;height:48px;display:block}.ms-material{align-self:stretch;width:100%}.ms-rating-row{gap:6px;display:grid}.ms-rating-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text);align-items:baseline;gap:8px;font-weight:700;display:flex}.ms-rating-hint{font-family:var(--font-body);text-transform:none;letter-spacing:0;color:var(--muted);font-weight:400}.ms-rating-scale{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}@media (max-width:480px){.ms-take-review{width:calc(100% + 8px);margin-inline-start:-4px;margin-inline-end:-4px;padding:12px 10px}.ms-rating-btn{min-height:48px;font-size:var(--fs-md)}}.ms-rating-btn{min-height:44px;font-family:var(--font-mono);font-size:var(--fs-base);color:var(--muted);background:var(--bg3);border:1px solid var(--border2);border-radius:var(--br-sm);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);font-weight:700}.ms-rating-btn:hover{border-color:var(--oasis-a50);color:var(--text);outline:none}.ms-rating-btn:focus-visible{border-color:var(--oasis-a50);color:var(--text);outline:none}.ms-rating-btn.is-active{color:var(--bg);background:var(--accent-oasis);border-color:var(--accent-oasis)}.ms-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ms-card-head>div{gap:4px;min-width:0;display:grid}.ms-card-intro{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--muted);margin:0}.ms-status{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--streak);border-radius:var(--br-pill);white-space:nowrap;border:1px solid;flex:none;padding:4px 10px;font-weight:700}.ms-status.is-done{color:var(--on)}.ms-rules{font-size:var(--fs-base);line-height:var(--lh-snug);color:var(--text);gap:4px;margin:0;padding-left:20px;display:grid}.ms-checkin-session{margin-top:4px}.ms-checkin-session .today-session{box-shadow:none}.ms-results{gap:8px;display:grid}.ms-results-title{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.ms-table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.ms-table th,.ms-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:9px 4px}.ms-table thead th{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.ms-table tbody th{color:var(--text);font-weight:600}.ms-table .ms-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.ms-table td.ms-num{color:var(--muted)}.ms-table td.ms-now{color:var(--text);font-weight:700}.ms-delta{color:var(--muted)}.ms-delta.is-up{color:var(--on)}.ms-delta.is-down{color:var(--color-danger)}.ms-take-compare{gap:10px;margin-top:4px;display:grid}.ms-goal-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.ms-goal-item{gap:4px;display:grid}.ms-goal-name{font-size:var(--fs-md);color:var(--text);margin:0;font-weight:600}.ms-goal-exercise{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--muted);margin:0}.ms-goal-progress{gap:6px;margin-top:4px;display:grid}.ms-goal-progress-line{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ms-goal-progress-value{color:var(--text)}.ms-goal-progress-left{color:var(--muted);white-space:nowrap}.ms-goal-progress.is-reached .ms-goal-progress-left{color:var(--on)}.ms-goal-bar{border-radius:var(--br-pill);background:var(--white-a06);height:6px;position:relative;overflow:hidden}.ms-goal-bar-fill{border-radius:inherit;background:var(--on);transition:width var(--dur-normal) var(--ease-out);position:absolute;top:0;bottom:0;left:0;right:auto}.pg-hero .ms-goal-progress{max-width:420px}.ms-goal-chip{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text);border:1px solid var(--oasis-a30);background:var(--oasis-a08);border-radius:var(--br-pill);align-self:flex-start;align-items:center;gap:8px;margin:0;padding:5px 12px;display:inline-flex}.ms-goal-chip-dot{background:var(--accent-oasis);border-radius:50%;width:8px;height:8px}.ms-goal-reached{border-radius:var(--br-md);border:1px solid rgba(var(--color-success-rgb), .38);background:rgba(var(--color-success-rgb), .08);color:var(--on);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;gap:4px;padding:10px 12px;font-weight:700;display:grid}.ms-goal-reached p{margin:0}.ms-goal-measure{flex-wrap:wrap;gap:8px 12px;margin-top:8px;display:flex}.ms-goal-measure-field{flex:180px;gap:4px;min-width:0;display:grid}.ms-goal-measure-field--bpm{flex:0 120px}.ms-goal-measure-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ms-goal-select,.ms-goal-bpm-input{width:100%;min-height:40px;font:inherit;font-size:var(--fs-base);color:var(--text);background:rgba(var(--black-rgb), .25);border:1px solid var(--white-a10);border-radius:var(--br-sm);padding:6px 10px}.ms-goal-select:focus,.ms-goal-bpm-input:focus{border-color:var(--accent-clapton);box-shadow:0 0 0 3px rgba(var(--accent-teach-rgb), .15);outline:none}.profile-page .ms-goal-bar-fill{background:var(--accent-clapton)}.ms-take-list{margin:0;padding:0;list-style:none;display:grid}.ms-take-row{border-bottom:1px solid var(--border);gap:8px;padding-bottom:8px;display:grid}.ms-take-row:last-child{border-bottom:0}.ms-take-row-head{text-align:left;min-height:52px;color:var(--text);cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr auto;grid-template-areas:"icon name rating""icon meta rating";align-items:center;column-gap:10px;padding:6px 0;display:grid}.ms-take-row-head:focus-visible{outline:2px solid var(--on);outline-offset:2px;border-radius:var(--br-xs)}.ms-take-row-play{color:var(--on);font-size:var(--fs-md);grid-area:icon}.ms-take-row-name{font-weight:600;font-size:var(--fs-base);grid-area:name}.ms-take-row-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-area:meta;overflow:hidden}.ms-take-row-rating{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--on);grid-area:rating;font-weight:700}.ms-take-row-unit{font-size:var(--fs-2xs);color:var(--muted);margin-left:2px;font-weight:400}.ms-stage-note{background:rgba(var(--accent-teach-rgb), .08);border:1px solid rgba(var(--accent-teach-rgb), .3);color:var(--text);border-radius:12px;margin:0;padding:10px 12px;font-size:13px}@media (max-width:767px){.main-container{padding-top:12px;padding-left:6px;padding-right:6px}.search-scope-switch{display:none}.landing-intro{max-width:none;margin-left:-6px;margin-right:-6px;padding:8px 6px}}@media (max-width:479px){.main-container{padding:8px 6px 60px}.header{padding:14px}.header-wordmark{font-size:var(--fs-lg)}.search-input-row{flex-direction:column}.search-container--compact .search-submit-btn{width:100%;min-height:40px}.controls-section{gap:16px}.filter-options{gap:6px}.filter-btn{font-size:var(--fs-xs);min-height:40px;padding:8px 12px}.active-filters{margin-bottom:16px;padding:10px 12px}.active-filters-list{gap:6px}.filter-pill{font-size:var(--fs-2xs);padding:5px 10px}.search-input{padding:12px 14px;font-size:16px}.search-scope-switch{gap:6px}.search-scope-btn{font-size:var(--fs-2xs);padding:7px 10px}.search-scope-btn,.chord-pill,.song-chord-pill{justify-content:center;align-items:center;min-height:44px;padding:10px 12px;display:inline-flex}.song-results-grid{grid-template-columns:1fr}.preset-grid,.chords-grid{grid-template-columns:1fr;gap:12px}.preset-card{padding:14px}.song-result-card{gap:8px;padding:12px}.song-result-card .preset-card-title h3{font-size:var(--fs-base);margin-bottom:2px}.song-result-card .preset-card-artist{font-size:var(--fs-2xs)}.song-result-card .preset-card-meta{gap:6px}.song-result-card .preset-card-meta-item{font-size:var(--fs-xs)}.song-result-actions{gap:6px;margin-top:6px}.song-chords-preview{gap:6px;padding-top:6px}.preset-card-header{gap:8px}.preset-card-title h3{font-size:var(--fs-sm)}.preset-card-badge{font-size:var(--fs-2xs);padding:3px 6px}.preset-card-description{font-size:var(--fs-xs)}.filter-group-label{font-size:var(--fs-2xs)}.preset-counter{font-size:var(--fs-xs);padding:0 8px}.nav-arrow-btn{width:36px;height:36px;font-size:14px}.preset-controls{gap:12px;padding:10px 0}.preset-detail h1{font-size:var(--fs-xl)}.preset-number{font-size:var(--fs-hero);min-width:48px}.preset-detail-grid{grid-template-columns:1fr;gap:16px}.preset-tabs{flex-wrap:nowrap;justify-content:flex-start;gap:6px;padding:8px;overflow-x:auto}.preset-tab-btn{white-space:nowrap;font-size:var(--fs-2xs);min-height:40px;padding:8px 12px}.search-scope-switch{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.search-scope-btn{white-space:nowrap;min-height:38px}.chord-diagram-wrapper{gap:.55rem;padding:.95rem}.chord-diagram-svg{width:100%;max-width:220px;height:auto}.chord-string-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}.practice-hero h1{font-size:26px}.practice-layout,.practice-chord-stage{grid-template-columns:1fr;gap:12px}.practice-section-meta{grid-template-columns:1fr;gap:10px;margin-bottom:12px}.practice-next-card{padding:12px}.practice-subtitle{font-size:var(--fs-xs);line-height:1.45}.practice-song-chords{gap:8px;padding:10px}.practice-song-chords-list{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.practice-main-card,.practice-side-card,.practice-chord-fallback,.practice-mode-empty{padding:12px}.practice-current-chord-name{font-size:40px}.practice-next-value{font-size:24px}.practice-mode{padding-bottom:calc(88px + var(--safe-bottom))}.practice-mobile-bar{left:12px;right:12px;bottom:calc(10px + var(--safe-bottom));z-index:120;border:1px solid var(--border2);border-radius:var(--br-md);background:rgba(var(--bg-rgb), .94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;display:grid;position:fixed}.practice-mobile-bar .landing-guide-btn{min-height:42px;font-size:var(--fs-xs);letter-spacing:.04em;padding:8px 6px}.param{font-size:var(--fs-xs);justify-content:flex-start}.preset-subtitle{font-size:var(--fs-2xs)}.param{font-size:var(--fs-xs)}.app-footer{padding:16px 12px}.footer-content{font-size:var(--fs-2xs)}}@media (min-width:480px) and (max-width:767px){.main-container{padding:24px 16px 70px}.landing-intro{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.header{padding:16px}.header-wordmark{font-size:var(--fs-xl)}.search-input-row{flex-direction:row}.filter-options{gap:8px}.filter-btn{font-size:var(--fs-sm);min-height:44px;padding:6px 12px}.search-scope-btn,.chord-pill,.song-chord-pill{justify-content:center;align-items:center;min-height:44px;padding:9px 13px;display:inline-flex}.preset-grid,.chords-grid{grid-template-columns:1fr;gap:14px}.preset-card{padding:16px}.song-result-card{gap:9px;padding:14px}.song-result-card .preset-card-title h3{font-size:var(--fs-base)}.song-result-card .preset-card-meta-item{font-size:var(--fs-xs)}.song-result-actions{gap:7px;margin-top:7px}.song-chords-preview{gap:7px;padding-top:7px}.detail-section{gap:8px}.preset-detail-grid{grid-template-columns:1fr;gap:18px}.preset-tabs{flex-wrap:nowrap;justify-content:flex-start;padding-bottom:6px;overflow-x:auto}.preset-tab-btn{white-space:nowrap;min-height:42px}.chord-diagram-svg{width:100%;max-width:220px;height:auto}.chord-string-legend{grid-template-columns:repeat(3,minmax(0,1fr))}.search-scope-switch{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.search-scope-btn{white-space:nowrap;min-height:40px}.practice-hero h1{font-size:30px}.practice-layout,.practice-chord-stage{grid-template-columns:1fr;gap:14px}.practice-section-meta{grid-template-columns:1fr;gap:10px;margin-bottom:12px}.practice-next-card{padding:12px}.practice-current-chord-name{font-size:48px}.practice-next-value{font-size:30px}.practice-song-chords{padding:10px 12px}.practice-song-chords-list{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.practice-mode{padding-bottom:calc(94px + var(--safe-bottom))}.practice-mobile-bar{left:16px;right:16px;bottom:calc(12px + var(--safe-bottom));z-index:120;border:1px solid var(--border2);border-radius:var(--br-md);background:rgba(var(--bg-rgb), .94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;display:grid;position:fixed}.practice-mobile-bar .landing-guide-btn{min-height:44px;font-size:var(--fs-xs);letter-spacing:.04em;padding:8px}.param{justify-content:flex-start}}@media (min-width:768px) and (max-width:1023px){.main-container{padding:28px 20px 75px}.header{padding:18px 20px}.header-bar{max-width:100%}.preset-grid{grid-template-columns:repeat(2,1fr);gap:16px}.preset-detail-grid{grid-template-columns:1fr 1fr}.filter-options{gap:8px}.filter-btn{font-size:var(--fs-sm);min-height:44px;padding:6px 12px}.practice-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);align-items:start;gap:16px}.practice-chord-stage{grid-template-columns:minmax(0,1fr) 220px;gap:14px}.practice-side-card{gap:12px;padding:14px;position:sticky;top:88px}.practice-section-meta{gap:10px;margin-bottom:14px}.practice-current-chord-name{font-size:48px}.practice-next-value{font-size:var(--fs-hero)}.practice-speed-control,.practice-feedback{padding:12px}}@media (min-width:1024px) and (max-width:1439px){.main-container{padding:32px 28px 80px}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.preset-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}}@media (min-width:1440px){.main-container{padding:40px 32px 100px}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.preset-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:22px}}@media (max-width:1023px){button:not(.exercise-check-btn):not(.ui-switch):not(.app-menu-switch):not(.app-menu-build-check):not(.profile-add-btn):not(.ui-chip):not(.sh-chip),[role=button],.filter-btn{min-width:44px;min-height:44px}.app-menu-build-check,.profile-add-btn,.ui-chip,.sh-chip{position:relative}.app-menu-build-check:after,.profile-add-btn:after,.ui-chip:after,.sh-chip:after{content:"";height:44px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.exercise-check-btn{position:relative}.exercise-check-btn:after{content:"";position:absolute;top:-14px;bottom:-14px;left:-14px;right:-14px}}@media (max-width:767px){.search-input,.search-container--compact .search-input,.artist-search-input,.daily-ex-input,.profile-field input,.profile-field select,.profile-field textarea,.profile-goal-name-input,.profile-goal-date-input,.profile-gear-name-input,.profile-gear-select,.profile-gear-date-input{font-size:16px}.daily-ex-tip-text{font-size:var(--fs-base)}}@media (hover:none) and (pointer:coarse){.preset-card:active{opacity:.82;transform:translateY(-2px)}.home-band-card:active{opacity:.88}.exercise-item:active{background:var(--white-a05)}.landing-guide-btn:active,.search-scope-btn:active,.filter-btn:active,.search-scopebar-btn:active{opacity:.7;transform:scale(.97)}.daily-ex-start-btn:active,.daily-ex-end-btn:active,.daily-ex-feedback-done-btn:active{opacity:.85;transform:scale(.98)}}@media (max-width:767px){.search-scopebar,.search-scope-switch,.practice-song-chords-list{scrollbar-width:none}.search-scopebar::-webkit-scrollbar{display:none}.search-scope-switch::-webkit-scrollbar{display:none}.practice-song-chords-list::-webkit-scrollbar{display:none}.daily-ex-bpm-step{width:48px;height:48px;font-size:16px}.daily-ex-bpm-step--large{width:56px;height:56px;font-size:var(--fs-xl)}.exercise-item{min-height:48px;padding:10px 12px}.main-container{padding-bottom:calc(var(--bottom-nav-h) + 20px + var(--safe-bottom))}.save-toast{bottom:calc(var(--bottom-nav-h) + 20px + var(--safe-bottom))}.milestone-toast-stack{bottom:calc(var(--bottom-nav-h) + 16px + var(--safe-bottom))}}.error-boundary{min-height:100vh;background:var(--color-bg);min-height:100dvh;color:var(--color-text);justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.error-boundary__card{background:var(--white-a04);border:1px solid var(--white-a08);width:100%;max-width:32rem;box-shadow:0 10px 30px var(--black-a35);border-radius:.75rem;padding:2rem}.error-boundary__title{margin:0 0 .75rem;font-size:1.5rem}.error-boundary__message{opacity:.85;margin:0 0 1rem;line-height:1.5}.error-boundary__detail{background:var(--black-a35);white-space:pre-wrap;word-break:break-word;border-radius:.5rem;max-height:8rem;margin:0 0 1.25rem;padding:.75rem 1rem;font-size:.85rem;overflow:auto}.error-boundary__button{-webkit-appearance:none;appearance:none;cursor:pointer;background:var(--accent-clapton);color:var(--bg);border:0;border-radius:.5rem;padding:.65rem 1.25rem;font-weight:600}.error-boundary__button:hover{background:var(--plate)}.error-boundary__button:focus-visible{outline:2px solid var(--plate);outline-offset:2px}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-condensed-vietnamese-400-normal-Dq9fsqrz.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-400-normal-BHpO_q_4.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-condensed-latin-ext-400-normal-DPMBkgfB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-400-normal-DN7qpd_C.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-condensed-latin-400-normal-Dc2u_eUW.woff2)format("woff2"),url(/assets/barlow-condensed-latin-400-normal-BXL2z6Kg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/barlow-condensed-vietnamese-900-normal-Dt_hWMjt.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-900-normal-swJS2L_Y.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/barlow-condensed-latin-ext-900-normal-BgjSW1bu.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-900-normal-CoV-fQpy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/barlow-condensed-latin-900-normal-SFh9ViAc.woff2)format("woff2"),url(/assets/barlow-condensed-latin-900-normal-Bz1RFETY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/barlow-vietnamese-300-normal-C-vF8s9W.woff2)format("woff2"),url(/assets/barlow-vietnamese-300-normal-C78rbeCN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/barlow-latin-ext-300-normal-0BBo-pVS.woff2)format("woff2"),url(/assets/barlow-latin-ext-300-normal-DpgRkAuy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/barlow-latin-300-normal-DTgcxP_Z.woff2)format("woff2"),url(/assets/barlow-latin-300-normal-Sl273xH3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
