@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.cfdd66c2.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.c30238d4.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.4564287c.woff2)format("woff2");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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_d7b50fc5-module__qeW00a__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_d7b50fc5-module__qeW00a__variable{--font-space-grotesk:"Space Grotesk","Space Grotesk Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.4b5f6188.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.d8302362.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.e316a4a9.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.f2813c2a.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_ed3df95c-module__D4oVwa__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_ed3df95c-module__D4oVwa__variable{--font-dm-mono:"DM Mono","DM Mono Fallback"}
:root{--bg:#f4ba34;--bg-deep:#cfa23c;--panel:#f6c447;--panel-deep:#efad2f;--ink:#2f1a00;--ink-muted:#6a3e00;--stroke:#4f2c0040;--shadow-hi:#ffffff73;--shadow-lo:#7b3c0059;--focus:#1a1200}html,body{max-width:100vw;overflow-x:hidden}body{color:var(--ink);background:var(--bg);font-family:var(--font-space-grotesk),"Trebuchet MS",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative}body:before{content:"";opacity:0;pointer-events:none;mix-blend-mode:multiply;background-image:radial-gradient(#00000014 1px,#0000 1px);background-size:6px 6px;position:fixed;inset:0}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}main.shell{z-index:1;max-width:920px;margin:44px auto 64px;padding:0 18px 32px;position:relative}.hero-shell{margin-bottom:0;padding-bottom:0}.hero{background:0 0;border-radius:18px;margin-bottom:18px;overflow:visible}.hero-video{object-fit:cover;opacity:0;mix-blend-mode:darken;clip-path:inset(3px 0);width:100%;height:0;display:block;transform:translate(101px,78px)scale(1.08)}.hero-video-ready{opacity:.95;height:clamp(200px,36vw,320px)}main.shell.shell-tight{max-width:620px}.shell-header{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;margin-top:67px;margin-bottom:18px;padding:18px}.shell-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.shell-nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.global-logo{z-index:6;pointer-events:auto;width:200px;height:200px;position:fixed;top:12px;left:12px}.kicker{font-family:var(--font-dm-mono),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);font-size:11px}.title{margin:8px 0 6px;font-size:clamp(24px,4vw,34px)}.sub{color:var(--ink-muted);max-width:56ch}.card{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;margin-bottom:16px;padding:18px;animation:.42s both rise}.card-title{margin-bottom:8px;font-size:18px}.credits{border:1px solid var(--stroke);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;background:var(--panel-deep);cursor:pointer;border-radius:12px;padding:8px 10px}.credits-wrap{position:relative}.credits-panel{border:1px solid var(--stroke);background:var(--panel);white-space:nowrap;border-radius:12px;padding:8px 10px;font-size:12px;position:absolute;top:calc(100% + 6px);right:0}.credits-email{opacity:.8;margin-top:6px;font-size:11px}.build-tag{letter-spacing:.08em;text-transform:uppercase;color:#6a3e00;font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-top:16px}.meta{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:8px}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-grid{gap:12px;display:grid}.timer{border:1px solid var(--stroke);text-align:left;cursor:pointer;background:radial-gradient(120px 90px at 12% 20%,#ffd376 0%,#0000 70%),radial-gradient(140px 110px at 90% 0,#f0a11d 0%,#0000 60%),linear-gradient(160deg,#f3b12a 0%,#f2a620 100%);border-radius:16px;gap:6px;width:100%;margin:10px 0 12px;padding:14px 16px;transition:transform .12s,box-shadow .12s;display:grid}.timer:hover{transform:translateY(-1px)}.timer-active{box-shadow:none}.timer-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.timer-readout{font-size:clamp(22px,4vw,32px);font-family:var(--font-dm-mono),ui-monospace,monospace}.timer-state{color:var(--ink-muted);font-size:12px}.metronome{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.metronome-title{font-size:clamp(20px,4vw,30px);font-family:var(--font-dm-mono),ui-monospace,monospace;margin-top:6px}.metronome-sub{color:var(--ink-muted);margin-top:4px;font-size:13px}.metronome-led{width:100%;height:14px;box-shadow:inset -3px -3px 8px var(--shadow-hi),inset 3px 3px 8px #783c0073;opacity:.5;background:linear-gradient(90deg,#f1a41f 0%,#f7c96b 50%,#f1a41f 100%);border-radius:999px;margin-top:14px}.metronome-led-on{opacity:1;animation:.6s ease-in-out infinite ledPulse}.setup-guide{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;margin-bottom:16px;padding:12px 16px}.setup-guide summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:12px;list-style:none;display:flex}.setup-guide summary::-webkit-details-marker{display:none}.setup-title{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.setup-sub{color:var(--ink-muted);font-size:12px}.setup-body{margin-top:10px}.timer-flash{z-index:20;cursor:pointer;background:radial-gradient(circle at 50% 40%,#ffe08e 0%,#f5b124 60%,#d98c12 100%);place-items:center;animation:.9s ease-in-out infinite flashPulse;display:grid;position:fixed;inset:0}.timer-flash-inner{background:var(--panel);border:1px solid var(--stroke);text-align:center;border-radius:20px;padding:22px 26px}.timer-flash-title{margin-top:8px;font-size:clamp(24px,4vw,36px)}.timer-flash-sub{color:var(--ink-muted);margin-top:6px;font-size:13px}.btn{background:var(--panel-deep);border:1px solid var(--stroke);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:600;transition:transform .14s,box-shadow .14s;display:inline-flex}.btn:hover{box-shadow:none;transform:translateY(-1px)}.btn-ghost{box-shadow:none;background:0 0}.row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.field{gap:6px;display:grid}.field label,.field span{color:var(--ink-muted);font-size:13px}.input,select,input{border:1px solid var(--stroke);box-shadow:none;background:#f7c04a;border-radius:12px;padding:10px 12px}.input:focus,select:focus,input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}ul{margin:10px 0 0 18px}li{margin:6px 0}.stop{color:var(--ink-muted);border:1px dashed #4e2d0059;border-radius:12px;margin-top:12px;padding:10px 12px}.tiny{color:var(--ink-muted);margin-top:10px;font-size:12px}.mono{font-family:var(--font-dm-mono),ui-monospace,monospace}.error{color:#6b1000;margin-top:4px;font-size:13px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes flashPulse{0%,to{filter:saturate()}50%{filter:saturate(1.2)brightness(1.06)}}@keyframes ledPulse{0%,to{filter:brightness(.9)}50%{filter:brightness(1.2)}}.recorder{border:1px solid var(--stroke);background:linear-gradient(135deg,#f5c04a 0%,#f0a920 100%);border-radius:16px;margin-top:16px;padding:16px}.recorder-compact{padding:12px}.recorder-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.recorder-icon{font-size:18px}.recorder-title{letter-spacing:.04em;font-size:14px;font-weight:600}.recorder-error{color:#6b1000;background:#6b10001f;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.recorder-error-dismiss{cursor:pointer;opacity:.7;background:0 0;border:none;font-size:18px;line-height:1}.recorder-error-dismiss:hover{opacity:1}.recorder-unsupported{background:#6b100014;flex-direction:column;align-items:flex-start}.recorder-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.recorder-btn{background:var(--panel);border:1px solid var(--stroke);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:600;transition:transform .12s,box-shadow .12s;display:inline-flex}.recorder-btn:hover:not(:disabled){transform:translateY(-1px)}.recorder-btn:disabled{opacity:.5;cursor:not-allowed}.recorder-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.recorder-btn-record{background:var(--panel)}.recorder-btn-icon-record{color:#c02020;font-size:12px}.recorder-btn-stop{background:#f5d070;border-color:#4f2c0059}.recorder-btn-small{border-radius:8px;padding:6px 10px;font-size:12px}.recorder-btn-tiny{border-radius:6px;min-width:28px;padding:4px 8px;font-size:11px}.recorder-btn-ghost{background:0 0;border-color:#0000}.recorder-btn-ghost:hover:not(:disabled){background:#0000000d}.recorder-timer{font-family:var(--font-dm-mono),ui-monospace,monospace;align-items:center;gap:8px;display:flex}.recorder-timer-dot{background:#c02020;border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite recorderPulse}.recorder-timer-value{font-size:18px;font-weight:600}.recorder-timer-max{color:var(--ink-muted);font-size:12px}.recorder-playback{border-top:1px dashed var(--stroke);margin-top:12px;padding-top:12px}.recorder-playback-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:8px}.recorder-playback-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.recorder-duration{font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink-muted);font-size:12px}.recorder-history{border-top:1px dashed var(--stroke);margin-top:14px;padding-top:14px}.recorder-history-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:8px}.recorder-history-list{margin:0;padding:0;list-style:none}.recorder-history-item{align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.recorder-history-item:not(:last-child){border-bottom:1px solid #4f2c001a}.recorder-history-date{color:var(--ink-muted);flex:1;font-size:12px}.recorder-history-actions{gap:4px;display:flex}.recorder-hint{color:var(--ink-muted);margin-top:12px;font-size:12px;font-style:italic}@keyframes recorderPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}.module-progress{margin-bottom:16px}.module-progress-header{margin-bottom:12px}.module-progress-compact{background:var(--panel);border:1px solid var(--stroke);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.module-dots{gap:6px;display:flex}.module-dot{background:var(--stroke);border-radius:50%;width:12px;height:12px;transition:all .2s}.module-dot-complete{background:var(--ink)}.module-dot-current{background:var(--ink);box-shadow:0 0 0 3px var(--panel),0 0 0 5px var(--ink-muted)}.module-label{color:var(--ink-muted);font-size:13px;font-family:var(--font-dm-mono),ui-monospace,monospace}.module-advance-hint{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:8px;margin-left:auto;padding:4px 10px;font-size:12px;transition:transform .12s}.module-advance-hint:hover{transform:translateY(-1px)}.module-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.module-card{background:var(--panel);border:1px solid var(--stroke);opacity:.6;border-radius:14px;padding:16px;transition:all .2s}.module-card-complete{opacity:.8;background:linear-gradient(135deg,var(--panel)0%,var(--panel-deep)100%)}.module-card-current{opacity:1;border-color:var(--ink-muted);box-shadow:0 2px 8px #0000001a}.module-card-future{opacity:.5}.module-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.module-number{background:var(--panel-deep);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:600;display:flex}.module-card-complete .module-number,.module-card-current .module-number{background:var(--ink);color:var(--bg)}.module-duration{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace}.module-title{margin-bottom:6px;font-size:16px}.module-focus{color:var(--ink-muted);font-size:13px;line-height:1.4}.module-current-badge{border-top:1px dashed var(--stroke);margin-top:12px;padding-top:12px}.module-sessions{color:var(--ink-muted);margin-bottom:8px;font-size:12px;display:block}.module-advance-btn{padding:8px 12px;font-size:13px}.module-advance-modal{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.module-advance-content{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;max-width:400px;padding:24px}.module-advance-content h3{margin-bottom:12px}.progress-stats{flex-wrap:wrap;gap:24px;margin-top:12px;display:flex}.progress-stat{flex-direction:column;gap:4px;display:flex}.progress-stat-value{font-size:28px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.progress-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.progress-keywords{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.progress-keyword{background:var(--panel-deep);color:var(--ink-muted);border-radius:20px;padding:4px 10px;font-size:12px}.gap-controls{border-top:1px dashed var(--stroke);margin-top:16px;padding-top:16px}.gap-controls-compact{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.gap-controls-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.gap-controls-title{flex:1;min-width:200px}.gap-controls-desc{color:var(--ink-muted);margin-top:4px;font-size:13px}.gap-controls-body{margin-top:16px}.gap-presets{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.gap-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.gap-preset-select{border-radius:10px;padding:6px 10px;font-size:13px}.gap-settings{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.gap-setting{flex-direction:column;gap:4px;display:flex}.gap-setting-label{color:var(--ink-muted);font-size:12px}.gap-setting-hint{color:var(--ink-muted);opacity:.8;font-size:11px}.gap-input{text-align:center;border-radius:10px;width:70px;padding:8px 10px}.gap-checkbox-label{cursor:pointer;align-items:center;gap:8px;display:flex}.gap-checkbox{width:18px;height:18px;accent-color:var(--ink)}.gap-info{background:var(--panel-deep);border-radius:10px;gap:20px;padding:10px 12px;display:flex}.gap-info-item{flex-direction:column;gap:2px;display:flex}.gap-info-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace}.gap-info-value{font-size:14px;font-weight:600}.gap-projection-tip{background:var(--panel-deep);border-radius:10px;margin-top:12px;padding:0;overflow:hidden}.projection-tip-toggle{cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:500;display:flex}.projection-tip-toggle:hover{background:#0000000d}.projection-tip-content{padding:0 14px 14px;font-size:13px;line-height:1.5}.projection-tip-content p{margin:0 0 10px}.projection-tip-content p:last-child{margin-bottom:0}.projection-tip-content strong{color:var(--ink)}.gap-visual{background:var(--panel-deep);border:1px solid var(--stroke);border-radius:14px;margin-top:14px;padding:12px}.gap-visual-bar{background:#0000001a;border-radius:12px;height:24px;position:relative;overflow:hidden}.gap-visual-fill{border-radius:12px;height:100%;transition:width 60ms linear;position:absolute;top:0;left:0}.gap-visual-fill-click{background:linear-gradient(90deg,#4a9f4a 0%,#5cb85c 100%)}.gap-visual-fill-gap{background:linear-gradient(90deg,#a04a4a 0%,#c75050 100%)}.gap-visual-markers{justify-content:space-around;align-items:center;padding:0 4px;display:flex;position:absolute;inset:0}.gap-visual-marker{opacity:.4;border-radius:50%;width:8px;height:8px;transition:all .1s}.gap-visual-marker-click{background:#2a6a2a}.gap-visual-marker-gap{background:#6a2a2a}.gap-visual-marker-active{opacity:1;transform:scale(1.5);box-shadow:0 0 8px}.gap-visual-info{font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;justify-content:space-between;align-items:center;margin-top:10px;display:flex}.gap-visual-status{letter-spacing:.08em;border-radius:8px;padding:4px 10px;font-weight:600}.gap-visual-status-click{color:#2a6a2a;background:#5ab85c4d}.gap-visual-status-gap{color:#8a2a2a;background:#c750504d}.gap-visual-beat{color:var(--ink-muted)}.gap-visual-countdown{color:var(--ink-muted);opacity:.8}.metronome-led-gap{opacity:.3;background:linear-gradient(90deg,#c75050 0%,#e08080 50%,#c75050 100%);animation:none}.drill-controls{gap:20px;display:grid}.drill-section{flex-direction:column;gap:8px;display:flex}.drill-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.drill-bpm{align-items:center;gap:8px;display:flex}.drill-bpm-input{text-align:center;width:80px;font-size:20px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.drill-hint{color:var(--ink-muted);font-size:12px}.drill-presets{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.drill-preset-btn{text-align:center;flex-direction:column;align-items:center;padding:12px;display:flex}.drill-preset-name{font-size:14px;font-weight:600}.drill-preset-detail{color:var(--ink-muted);margin-top:2px;font-size:11px}.drill-custom-details{border:1px solid var(--stroke);background:var(--panel-deep);border-radius:12px}.drill-custom-summary{cursor:pointer;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;list-style:none;display:flex}.drill-custom-summary::-webkit-details-marker{display:none}.drill-custom-active{background:var(--ink);color:var(--bg);border-radius:6px;padding:2px 8px;font-size:11px}.drill-custom-body{padding:0 14px 14px}.drill-custom-row{gap:16px;display:flex}.drill-custom-field{flex-direction:column;gap:4px;display:flex}.drill-custom-field span{color:var(--ink-muted);font-size:12px}.drill-custom-field input{text-align:center;width:80px}.drill-checkbox-label{cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.drill-checkbox-label input{width:18px;height:18px;accent-color:var(--ink)}.drill-timer-options{flex-wrap:wrap;gap:8px;display:flex}.drill-action{justify-content:center;margin-top:20px;display:flex}.drill-start-btn{color:#fff;background:linear-gradient(135deg,#5cb85c 0%,#4a9f4a 100%);border-color:#3d8b3d;padding:14px 32px;font-size:16px}.drill-stop-btn{color:#fff;background:linear-gradient(135deg,#c75050 0%,#a04a4a 100%);border-color:#8a3a3a;padding:14px 32px;font-size:16px}.drill-active-card{border:2px solid var(--ink-muted);animation:2s ease-in-out infinite drillPulse}.drill-active-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.drill-active-label{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink-muted)}.drill-active-bpm{font-size:24px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.drill-active-pattern{margin-bottom:16px}.drill-pattern-visual{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.drill-pattern-dot{border-radius:50%;width:20px;height:20px;transition:all .2s}.drill-pattern-dot-on{background:linear-gradient(135deg,#5cb85c 0%,#4a9f4a 100%);box-shadow:0 2px 8px #5cb85c66}.drill-pattern-dot-off{opacity:.4;background:linear-gradient(135deg,#888 0%,#666 100%)}.drill-pattern-labels{color:var(--ink-muted);justify-content:center;gap:24px;font-size:12px;display:flex}.drill-pattern-label-on{color:#3d8b3d}.drill-pattern-label-off{opacity:.6}.drill-offbeat-badge{text-align:center;background:var(--panel-deep);color:var(--ink-muted);border-radius:8px;margin-bottom:16px;padding:6px 12px;font-size:12px}.drill-stats{justify-content:center;gap:32px;display:flex}.drill-stat{flex-direction:column;align-items:center;gap:4px;display:flex}.drill-stat-value{font-size:28px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.drill-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px}@keyframes drillPulse{0%,to{border-color:var(--ink-muted)}50%{border-color:var(--ink)}}@media (prefers-reduced-motion:reduce){.card{animation:none}.btn{transition:none}.recorder-timer-dot{animation:none}.recorder-btn,.module-card,.module-dot{transition:none}.drill-active-card{animation:none}.gap-visual-fill,.gap-visual-marker{transition:none}}.calendar-container{margin-bottom:16px}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.calendar-title{letter-spacing:.04em;font-size:14px;font-weight:600}.calendar-legend{align-items:center;gap:4px;display:flex}.calendar-legend-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace}.calendar-legend-cell{border-radius:3px;width:12px;height:12px}.calendar-grid-wrapper{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.calendar-weekdays{flex-direction:column;gap:3px;padding-top:20px;display:flex}.calendar-weekday{height:12px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:12px}.calendar-main{flex:1;min-width:0}.calendar-months{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;height:16px;margin-bottom:4px;display:grid}.calendar-month{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace}.calendar-grid{gap:3px;display:flex}.calendar-week{flex-direction:column;gap:3px;display:flex}.calendar-cell{border:none;border-radius:3px;width:12px;height:12px;padding:0;transition:transform .1s,box-shadow .1s}.calendar-cell:hover{box-shadow:0 0 0 2px var(--ink-muted);transform:scale(1.2)}.calendar-cell:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.calendar-level-0{background:#2f1a0014}.calendar-level-1{background:#f5d999}.calendar-level-2{background:#f0c055}.calendar-level-3{background:#d9a020}.calendar-level-4{background:#a67c00}.calendar-tooltip{z-index:50;background:var(--ink);color:var(--bg);pointer-events:none;white-space:nowrap;border-radius:10px;padding:8px 12px;font-size:12px;position:fixed;box-shadow:0 4px 12px #0000004d}.calendar-tooltip-date{margin-bottom:2px;font-weight:600}.calendar-tooltip-stats{opacity:.85;font-family:var(--font-dm-mono),ui-monospace,monospace}.calendar-tooltip-sep{opacity:.5;margin:0 6px}.streak-card{background:linear-gradient(135deg,var(--panel)0%,var(--panel-deep)100%);border:1px solid var(--stroke);border-radius:16px;padding:16px}.streak-main{align-items:center;gap:16px;display:flex}.streak-fire-container{justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative}.streak-fire{font-size:36px;transition:transform .2s}.streak-fire-active{animation:2s ease-in-out infinite fireGlow}.streak-fire-glow{pointer-events:none;background:radial-gradient(circle,#ff8c004d 0%,#0000 70%);border-radius:50%;animation:2s ease-in-out infinite glowPulse;position:absolute;inset:-4px}.streak-info{flex:1}.streak-current{align-items:baseline;gap:8px;display:flex}.streak-current-number{font-size:32px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.streak-current-label{color:var(--ink-muted);font-size:14px}.streak-status{font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace;letter-spacing:.04em;border-radius:12px;margin-top:6px;padding:4px 10px;display:inline-block}.streak-status-active{color:#2a6a2a;background:#5ab85c33}.streak-status-warning{color:#8b6914;background:#ffb40033}.streak-status-gentle{color:var(--ink-muted);background:#0000000f}.streak-secondary{border-top:1px dashed var(--stroke);gap:24px;margin-top:14px;padding-top:14px;display:flex}.streak-stat{flex-direction:column;gap:2px;display:flex}.streak-stat-value{font-size:16px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.streak-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.streak-compact{background:var(--panel);border:1px solid var(--stroke);border-radius:12px;align-items:center;gap:6px;padding:8px 14px;display:flex}.streak-compact-fire{font-size:18px}.streak-compact-count{font-size:18px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace}.streak-compact-label{color:var(--ink-muted);font-size:12px}.streak-compact-active{color:#2a6a2a;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace;background:#5ab85c33;border-radius:8px;margin-left:6px;padding:2px 8px}.streak-badge{font-family:var(--font-dm-mono),ui-monospace,monospace;background:#ff8c0026;border-radius:10px;align-items:center;gap:3px;padding:3px 8px;display:inline-flex}.streak-badge-fire{font-size:12px}.streak-badge-count{font-size:12px;font-weight:600}@keyframes fireGlow{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes glowPulse{0%,to{opacity:.6}50%{opacity:1}}.stats-card{background:var(--panel);border:1px solid var(--stroke);border-radius:16px;padding:16px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:16px;display:grid}.stat-item{flex-direction:column;gap:2px;display:flex}.stat-item-value{font-size:24px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1.1}.stat-item-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.stat-item-trend{font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-top:2px}.stat-item-trend-up{color:#2a6a2a}.stat-item-trend-down{color:#8a4a4a}.compact-stats{background:var(--panel);border:1px solid var(--stroke);border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex}.compact-stat{align-items:center;gap:4px;display:flex}.compact-stat-value{font-size:16px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace}.compact-stat-label{color:var(--ink-muted);font-size:12px}.compact-stat-fire{font-size:14px}.compact-stat-check{color:#2a6a2a;margin-left:2px;font-size:12px}.compact-stat-sep{color:var(--ink-muted);opacity:.5}.achievements-card{background:var(--panel);border:1px solid var(--stroke);border-radius:16px;padding:16px}.achievements-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.achievements-title{letter-spacing:.04em;font-size:14px;font-weight:600}.achievements-count{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.achievements-grid{gap:10px;display:grid}.achievements-grid-locked{opacity:.6}.achievement{background:var(--panel-deep);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;transition:transform .1s;display:flex}.achievement:hover{transform:translate(2px)}.achievement-unlocked{background:linear-gradient(135deg,var(--panel-deep)0%,#f5d999 100%)}.achievement-locked{background:#0000000a}.achievement-icon{flex-shrink:0;font-size:24px}.achievement-icon-locked{filter:grayscale();opacity:.5}.achievement-info{flex-direction:column;gap:2px;display:flex}.achievement-title{font-size:13px;font-weight:600}.achievement-desc{color:var(--ink-muted);font-size:11px}.achievements-locked{border-top:1px dashed var(--stroke);margin-top:14px;padding-top:14px}.achievements-locked-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:10px;display:block}@media (prefers-reduced-motion:reduce){.streak-fire-active,.streak-fire-glow{animation:none}.calendar-cell,.achievement{transition:none}}.touch-target{min-width:44px;min-height:44px}.mobile-nav-toggle{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;display:none}.mobile-nav-toggle-icon{flex-direction:column;gap:4px;width:20px;display:flex}.mobile-nav-toggle-icon span{background:var(--ink);border-radius:2px;height:2px;transition:transform .2s,opacity .2s}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-toggle-icon span:first-child{transform:rotate(45deg)translate(4px,4px)}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-toggle-icon span:nth-child(2){opacity:0}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-toggle-icon span:nth-child(3){transform:rotate(-45deg)translate(4px,-4px)}.mobile-nav-menu{display:none}.desktop-nav{display:contents}@media (max-width:768px){.global-logo{width:120px;height:120px}main.shell{margin-top:24px;padding:0 12px 24px}.shell-header{margin-top:48px;padding:14px}.title{font-size:clamp(20px,5vw,28px)}.card{padding:14px}.grid{grid-template-columns:1fr}.gap-settings{flex-direction:column;gap:12px}.gap-info{flex-wrap:wrap;gap:12px}}@media (max-width:640px){html{font-size:16px}.global-logo{width:80px;height:80px;top:8px;left:8px}main.shell{margin-top:16px;padding:0 10px 20px}.shell-header{border-radius:14px;margin-top:32px;padding:12px}.shell-head{flex-direction:column;gap:12px}.shell-nav{justify-content:flex-start;width:100%}.desktop-nav{display:none}.mobile-nav-toggle{display:flex}.mobile-nav-menu{background:var(--bg);z-index:100;flex-direction:column;gap:8px;padding:80px 20px 20px;display:none;position:fixed;inset:0;overflow-y:auto}.mobile-nav-menu.mobile-nav-open{display:flex}.mobile-nav-menu .btn{justify-content:flex-start;width:100%;min-height:48px;font-size:16px}.mobile-nav-close{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:24px;display:flex;position:absolute;top:12px;right:12px}.title{font-size:20px}.sub{font-size:14px}.kicker{font-size:10px}.card{border-radius:14px;margin-bottom:12px;padding:12px}.card-title{font-size:16px}.timer{border-radius:14px;min-height:88px;padding:16px}.timer-readout{font-size:28px}.timer-label,.timer-state{font-size:11px}.timer-flash-inner{width:calc(100% - 32px);max-width:320px;margin:16px;padding:20px}.metronome{flex-direction:column;align-items:flex-start;gap:12px}.metronome-title{font-size:24px}.metronome .btn{width:100%;min-height:48px;font-size:16px}.metronome-led{height:12px}.gap-visual{padding:10px}.gap-visual-bar{border-radius:16px;height:32px}.gap-visual-marker{width:10px;height:10px}.gap-visual-info{flex-direction:column;align-items:flex-start;gap:6px;font-size:11px}.gap-controls{margin-top:12px;padding-top:12px}.gap-controls-compact{flex-direction:column;align-items:stretch;gap:8px}.gap-controls-compact .btn{width:100%;min-height:44px}.gap-controls-compact select{width:100%;min-height:44px;font-size:16px}.gap-presets{flex-direction:column;align-items:stretch}.gap-presets .btn{min-height:44px}.gap-settings{flex-direction:column}.gap-setting{width:100%}.gap-input{width:100%;min-height:44px;font-size:16px}.gap-checkbox{width:24px;height:24px}.btn{min-height:44px;padding:12px 16px;font-size:15px}.btn-small{min-height:40px;padding:10px 14px}.row{flex-direction:column;gap:8px}.row .btn{width:100%}.input,select,input{min-height:44px;padding:12px 14px;font-size:16px}.field{gap:8px}.field label,.field span{font-size:14px}.recorder{border-radius:14px;padding:12px}.recorder-controls{flex-direction:column;align-items:stretch}.recorder-btn{justify-content:center;width:100%;min-height:52px;font-size:16px}.recorder-btn-record{background:linear-gradient(135deg,var(--panel)0%,#f5c04a 100%)}.recorder-btn-icon-record{font-size:16px}.recorder-timer{background:var(--panel-deep);border-radius:10px;justify-content:center;padding:12px}.recorder-playback-row{flex-direction:column;gap:8px}.recorder-playback-row .recorder-btn{width:100%}.recorder-history-item{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0}.recorder-history-actions{gap:8px;width:100%;display:flex}.recorder-history-actions .recorder-btn{flex:1;min-height:40px}.module-progress-compact{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 12px}.module-dots{gap:8px}.module-dot{width:14px;height:14px}.module-advance-hint{text-align:center;justify-content:center;align-items:center;width:100%;min-height:40px;margin-left:0;display:flex}.module-grid{grid-template-columns:1fr}.compact-stats{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.compact-stat-sep{display:none}.streak-main{flex-direction:column;align-items:flex-start}.streak-fire-container{width:40px;height:40px}.streak-fire{font-size:28px}.streak-secondary{flex-direction:column;gap:12px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.calendar-header{flex-direction:column;align-items:flex-start}.calendar-cell{width:10px;height:10px}.calendar-weekday{font-size:8px}.setup-guide{padding:10px 12px}.setup-guide summary{align-items:center;min-height:44px}.credits{justify-content:center;align-items:center;min-height:40px;display:flex}.credits-panel{z-index:50;border-radius:14px;padding:16px;position:fixed;inset:auto 10px 20px}.drill-bpm{flex-direction:column;align-items:stretch}.drill-bpm-input{width:100%;min-height:52px;font-size:24px}.drill-bpm .btn{min-width:48px;min-height:48px}.drill-presets{grid-template-columns:1fr}.drill-preset-btn{min-height:60px}.drill-custom-row{flex-direction:column;gap:12px}.drill-custom-field input{width:100%;min-height:44px}.drill-start-btn,.drill-stop-btn{width:100%;min-height:56px;font-size:18px}.drill-stats{flex-direction:column;gap:16px}ul{margin-left:12px}li{margin:8px 0}li .btn{text-align:left;white-space:normal;line-height:1.4}}@media (max-width:375px){.global-logo{width:60px;height:60px}main.shell{padding:0 8px 16px}.shell-header{margin-top:24px;padding:10px}.title{font-size:18px}.card{border-radius:12px;padding:10px}.timer{padding:14px}.timer-readout{font-size:24px}.metronome-title{font-size:20px}.btn{padding:10px 12px;font-size:14px}.recorder-btn{min-height:48px}.gap-visual-marker{width:8px;height:8px}.stats-grid{grid-template-columns:1fr 1fr}.stat-item-value{font-size:20px}.streak-current-number{font-size:26px}}@media (max-height:500px) and (orientation:landscape){.timer-flash{padding:10px}.timer-flash-inner{padding:14px 20px}.timer-flash-title{font-size:20px}.mobile-nav-menu{flex-flow:wrap;padding-top:60px}.mobile-nav-menu .btn{flex:none;width:auto}}@supports (padding:max(0px)){main.shell{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}.mobile-nav-menu{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}.timer-flash{padding:max(16px,env(safe-area-inset-top))max(16px,env(safe-area-inset-right))max(16px,env(safe-area-inset-bottom))max(16px,env(safe-area-inset-left))}}@media (hover:none){.btn:active,.timer:active,.recorder-btn:active{opacity:.9;transform:scale(.98)}.btn:hover,.timer:hover,.recorder-btn:hover:not(:disabled){transform:none}}.error-boundary{text-align:center;max-width:480px;margin:40px auto;padding:32px 20px}.error-boundary-icon{opacity:.8;margin-bottom:16px;font-size:64px}.error-boundary-title{margin-bottom:8px;font-size:24px}.error-boundary-message{color:var(--ink-muted);margin-bottom:24px}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.error-boundary-details{background:var(--panel-deep);text-align:left;border-radius:12px;margin-top:24px;padding:12px;font-size:12px}.error-boundary-details summary{cursor:pointer;color:var(--ink-muted);margin-bottom:8px}.error-boundary-details pre{font-family:var(--font-dm-mono),ui-monospace,monospace;white-space:pre-wrap;word-break:break-word;font-size:11px;overflow-x:auto}.error-page-card{text-align:center;padding:24px}.error-page-icon{opacity:.8;margin-bottom:12px;font-size:48px}.error-page-details{background:var(--panel-deep);text-align:left;border-radius:12px;margin-top:20px;padding:12px}.error-page-details summary{cursor:pointer;color:var(--ink-muted);margin-bottom:8px;font-size:13px}.error-page-stack{font-family:var(--font-dm-mono),ui-monospace,monospace;white-space:pre-wrap;word-break:break-word;color:var(--ink-muted);font-size:11px;overflow-x:auto}.loading-spinner-container{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.loading-spinner{gap:6px;display:flex}.loading-spinner-dot{background:var(--ink);border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite both spinnerBounce}.loading-spinner-dot:first-child{animation-delay:-.32s}.loading-spinner-dot:nth-child(2){animation-delay:-.16s}.loading-spinner-small .loading-spinner-dot{width:6px;height:6px}.loading-spinner-large .loading-spinner-dot{width:14px;height:14px}.loading-spinner-message{color:var(--ink-muted);font-size:14px}.inline-spinner{vertical-align:middle;gap:3px;margin-left:6px;display:inline-flex}.inline-spinner-dot{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.4s ease-in-out infinite both spinnerBounce}.inline-spinner-dot:first-child{animation-delay:-.32s}.inline-spinner-dot:nth-child(2){animation-delay:-.16s}.loading-overlay{z-index:200;background:#f4ba34f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-overlay-content{flex-direction:column;align-items:center;gap:16px;display:flex}.loading-overlay-message{color:var(--ink);font-size:16px}@keyframes spinnerBounce{0%,80%,to{opacity:.5;transform:scale(0)}40%{opacity:1;transform:scale(1)}}.ai-loading{background:var(--panel);border:1px solid var(--stroke);border-radius:16px;align-items:flex-start;gap:16px;margin-bottom:16px;padding:20px;display:flex}.ai-loading-icon{flex-shrink:0;font-size:32px}.ai-loading-content{flex:1}.ai-loading-message{margin-bottom:12px;font-size:16px;font-weight:600}.ai-loading-bar{background:#0000001a;border-radius:2px;height:4px;margin-bottom:8px;overflow:hidden}.ai-loading-bar-fill{background:var(--ink);border-radius:2px;width:30%;height:100%;animation:2s ease-in-out infinite aiLoadingBar}.ai-loading-hint{color:var(--ink-muted);font-size:13px}@keyframes aiLoadingBar{0%{width:0%;margin-left:0%}50%{width:60%;margin-left:20%}to{width:0%;margin-left:100%}}.skeleton{background:linear-gradient(90deg,#00000014 25%,#0000001f 50%,#00000014 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s ease-in-out infinite skeletonShimmer}.skeleton-card{min-height:80px}.skeleton-title{width:50%;height:20px;margin-bottom:12px}.skeleton-meta{width:30%;height:12px;margin-bottom:8px}.skeleton-line{height:14px;margin-bottom:8px}.skeleton-line:last-child{margin-bottom:0}.skeleton-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.skeleton-timer{border-radius:16px;height:80px;margin:10px 0 12px}.skeleton-list{flex-direction:column;gap:10px;display:flex}.skeleton-session-item{flex-direction:column;gap:6px;padding:8px 0;display:flex}.skeleton-stat{flex-direction:column;gap:4px;display:flex}.skeleton-stat-value{width:60px;height:28px}.skeleton-stat-label{width:80px;height:10px}.skeleton-calendar{height:120px;margin-top:12px}.skeleton-setup{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;margin-bottom:16px;padding:12px 16px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.offline-indicator{background:var(--ink);color:var(--bg);z-index:150;border-radius:24px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;animation:.3s slideUp;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.offline-indicator-restored{background:#2a6a2a;animation:.3s slideUp,.3s 2.5s forwards fadeOut}.offline-indicator-icon{font-size:14px}.offline-indicator-text{white-space:nowrap}.offline-badge{background:#ffb40033;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;display:inline-flex}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;visibility:hidden}}.field-error{background:#a04a4a14!important;border-color:#a04a4a!important}.field-error-message{color:#8a3a3a;align-items:center;gap:4px;margin-top:4px;font-size:12px;display:flex}.field-error-icon{font-size:12px}.form-error{color:#6b1000;background:#a04a4a1a;border:1px solid #a04a4a33;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.form-error-icon{flex-shrink:0;font-size:18px}.form-success{color:#2a6a2a;background:#5ab85c1a;border:1px solid #5ab85c33;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.form-success-icon{flex-shrink:0;font-size:18px}@media (prefers-reduced-motion:reduce){.loading-spinner-dot,.inline-spinner-dot{opacity:1;animation:none}.loading-spinner-dot:first-child{opacity:.4}.loading-spinner-dot:nth-child(2){opacity:.7}.loading-spinner-dot:nth-child(3){opacity:1}.ai-loading-bar-fill{width:50%;margin-left:25%;animation:none}.skeleton{background:#0000001a;animation:none}.offline-indicator,.offline-indicator-restored{animation:none}}.diagnostic-progress{margin-bottom:16px}.diagnostic-progress-text{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:8px;display:block}.diagnostic-progress-bar{background:#0000001a;border-radius:3px;height:6px;overflow:hidden}.diagnostic-progress-fill{background:linear-gradient(90deg,var(--ink)0%,var(--ink-muted)100%);border-radius:3px;height:100%;transition:width .3s}.diagnostic-exercise{border:2px solid var(--ink-muted)}.diagnostic-counter{text-align:center;margin:24px 0}.diagnostic-hit-btn{background:linear-gradient(145deg,var(--panel)0%,var(--panel-deep)100%);border:3px solid var(--stroke);cursor:pointer;border-radius:60px;flex-direction:column;justify-content:center;align-items:center;width:120px;height:120px;transition:transform .1s,box-shadow .1s;display:inline-flex;box-shadow:0 4px 12px #00000026}.diagnostic-hit-btn:hover:not(:disabled){transform:scale(1.02)}.diagnostic-hit-btn:active:not(:disabled){transform:scale(.95);box-shadow:0 2px 6px #0003}.diagnostic-hit-btn:disabled{cursor:default;color:#fff;background:linear-gradient(145deg,#5cb85c 0%,#4a9f4a 100%);border-color:#3d8b3d}.diagnostic-hit-btn-active{animation:.15s hitPulse}.diagnostic-hit-count{font-size:42px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.diagnostic-hit-label{color:var(--ink-muted);font-size:14px}.diagnostic-listen{background:var(--panel-deep);border-radius:14px;margin:24px 0;padding:16px}.diagnostic-outcomes{gap:10px;margin-top:12px;display:grid}.diagnostic-outcome{border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.diagnostic-outcome-good{color:#2a6a2a;background:#5ab85c26}.diagnostic-outcome-bad{color:#8a3a3a;background:#c7505026}.diagnostic-outcome-icon{font-size:16px;font-weight:700}.diagnostic-verdict{text-align:center;margin-top:24px}.diagnostic-verdict-prompt{margin-bottom:12px;font-weight:600}.diagnostic-verdict-btn{min-width:140px}.diagnostic-verdict-clean{color:#fff;background:linear-gradient(135deg,#5cb85c 0%,#4a9f4a 100%);border-color:#3d8b3d}.diagnostic-verdict-flam{color:#fff;background:linear-gradient(135deg,#e08080 0%,#c75050 100%);border-color:#a04a4a}.diagnostic-result-header{text-align:center}.diagnostic-result-emoji{margin-bottom:12px;font-size:48px;display:block}.diagnostic-results-list{margin:0;padding:0;list-style:none}.diagnostic-result-item{border-bottom:1px solid var(--stroke);align-items:center;gap:12px;padding:12px 0;display:flex}.diagnostic-result-item:last-child{border-bottom:none}.diagnostic-result-icon{text-align:center;width:28px;font-size:20px}.diagnostic-result-title{flex:1;font-weight:600}.diagnostic-result-status{color:var(--ink-muted);font-size:13px}.diagnostic-prescription{background:linear-gradient(135deg,var(--panel)0%,#f5d999 100%);border:2px solid var(--ink-muted)}.diagnostic-prescription ol{margin:12px 0 0 18px}.diagnostic-prescription li{margin:8px 0}@keyframes hitPulse{0%,to{transform:scale(1)}50%{background:var(--ink);color:var(--bg);transform:scale(.92)}}.visual-metronome{justify-content:center;align-items:center;margin:16px 0;display:flex}.visual-metronome-circle{background:var(--panel-deep);border:3px solid var(--stroke);border-radius:50%;width:80px;height:80px;transition:transform 60ms,background-color 60ms}.visual-metronome-circle-pulse{background:var(--ink);border-color:var(--ink);transform:scale(1.15)}.visual-metronome-circle-gap{opacity:.4;background:#c750504d;border-color:#c7505080}.visual-metronome-beat-indicator{font-size:24px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink-muted);text-align:center;min-width:60px}.visual-metronome-toggle{align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.visual-metronome-toggle input{width:18px;height:18px;accent-color:var(--ink)}@media (max-width:640px){.diagnostic-hit-btn{border-radius:50px;width:100px;height:100px}.diagnostic-hit-count{font-size:36px}.diagnostic-verdict .row{flex-direction:column}.diagnostic-verdict-btn{width:100%}.diagnostic-outcomes{gap:8px}.diagnostic-outcome{padding:10px 12px;font-size:13px}}.audiation{background:linear-gradient(135deg,var(--panel)0%,#e8d4a8 100%);border:1px solid var(--stroke);border-radius:16px;margin-top:16px;padding:16px}.audiation-compact{padding:12px}.audiation-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.audiation-icon{font-size:20px}.audiation-title{letter-spacing:.04em;font-size:15px;font-weight:600}.audiation-intro{color:var(--ink-muted);margin-bottom:16px;font-size:14px}.audiation-patterns{gap:10px;margin-bottom:16px;display:grid}.audiation-pattern-btn{background:var(--panel);border:1px solid var(--stroke);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px;transition:transform .1s,box-shadow .1s;display:flex}.audiation-pattern-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.audiation-pattern-name{font-size:14px;font-weight:600}.audiation-pattern-syllables{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.audiation-legend{background:#0000000d;border-radius:10px;padding:12px}.audiation-legend-item{color:var(--ink-muted);margin:4px 0 0;font-size:12px}.audiation-countdown{text-align:center;margin:24px 0}.audiation-countdown-number{font-size:72px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1;animation:.6s infinite countdownPulse}.audiation-countdown-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:8px;font-size:14px}.audiation-phase-indicator{text-align:center;border-radius:12px;margin-bottom:16px;padding:12px 20px;font-size:18px;font-weight:700}.audiation-phase-sing{color:#1a4a5a;background:linear-gradient(135deg,#a8d4e8 0%,#7bb8d4 100%)}.audiation-phase-play{color:#5a4a1a;background:linear-gradient(135deg,#e8d4a8 0%,#d4b87b 100%)}.audiation-phase-complete{color:#1a5a2a;background:linear-gradient(135deg,#a8e8b4 0%,#7bd488 100%)}.audiation-current-pattern{text-align:center;margin:16px 0}.audiation-syllables-display{font-size:20px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace;background:var(--panel);border:2px solid var(--stroke);border-radius:12px;margin:12px 0;padding:16px}.audiation-syllables-active{border-color:var(--ink);animation:1.5s infinite syllablePulse}.audiation-notation{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.audiation-instruction{color:var(--ink-muted);text-align:center;margin:16px 0;font-size:14px}.audiation-action-btn{color:#fff;background:linear-gradient(135deg,#5cb85c 0%,#4a9f4a 100%);border-color:#3d8b3d;width:100%;margin-bottom:10px;padding:16px;font-size:16px}.audiation-progress{text-align:center;color:var(--ink-muted);font-size:14px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin:12px 0}.audiation-review{background:var(--panel);border-radius:12px;margin:16px 0;padding:12px}.audiation-review ul{margin:8px 0 0 16px;font-size:14px}@keyframes countdownPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes syllablePulse{0%,to{box-shadow:0 0 #2f1a0033}50%{box-shadow:0 0 0 8px #2f1a0000}}@media (max-width:640px){.audiation-countdown-number{font-size:56px}.audiation-syllables-display{padding:12px;font-size:16px}.audiation-pattern-btn{padding:14px}}.skill-progress-summary{background:linear-gradient(135deg,var(--panel)0%,var(--panel-deep)100%);border:1px solid var(--stroke);border-radius:16px;margin-bottom:16px;padding:16px}.skill-progress-stats{justify-content:space-around;gap:12px;margin-bottom:14px;display:flex}.skill-progress-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.skill-progress-stat-value{font-size:24px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.skill-progress-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.skill-progress-bar-container{align-items:center;gap:12px;display:flex}.skill-progress-bar{background:#0000001a;border-radius:4px;flex:1;height:8px;overflow:hidden}.skill-progress-bar-fill{background:linear-gradient(90deg,var(--ink)0%,var(--ink-muted)100%);border-radius:4px;height:100%;transition:width .4s}.skill-progress-percent{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;min-width:72px}.skill-progress-next{border-top:1px dashed var(--stroke);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.skill-progress-next-label{color:var(--ink-muted);font-size:12px}.skill-progress-next-skill{background:var(--panel);border:1px solid var(--stroke);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600}.skill-category-filter{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.skill-category-btn{background:var(--panel);border:1px solid var(--stroke);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:12px;transition:all .15s}.skill-category-btn:hover{background:var(--panel-deep)}.skill-category-btn-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.skill-tree-grid-wrapper{padding-bottom:8px;overflow-x:auto}.skill-tree-grid{gap:16px;min-width:max-content;padding:8px 0;display:flex;position:relative}.skill-connections{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.skill-connection{stroke-width:2px;stroke-linecap:round}.skill-connection-active{stroke:var(--ink-muted);opacity:.6}.skill-connection-inactive{stroke:var(--stroke);opacity:.3}.skill-tree-category{z-index:1;flex-direction:column;gap:8px;min-width:120px;display:flex;position:relative}.skill-tree-category-header{background:var(--panel-deep);border-radius:8px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 10px;display:flex}.skill-tree-category-icon{opacity:.7;font-size:14px}.skill-tree-category-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-size:11px;font-weight:600}.skill-tree-category-skills{flex-direction:column;gap:8px;display:flex}.skill-node{background:var(--panel);border:2px solid var(--stroke);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:100px;padding:12px 10px;transition:all .15s;display:flex;position:relative}.skill-node:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.skill-node:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.skill-node-icon{opacity:.7;font-size:18px}.skill-node-name{text-align:center;font-size:12px;font-weight:600;line-height:1.2}.skill-node-locked{opacity:.5;background:#0000000a;border-style:dashed}.skill-node-locked:hover{box-shadow:none;transform:none}.skill-node-unlocked{background:var(--panel);border-color:var(--ink-muted)}.skill-node-mastered{background:linear-gradient(135deg,var(--panel)0%,#f5d999 100%);border-color:var(--ink)}.skill-node-recommended{border-color:var(--ink);animation:2s ease-in-out infinite recommendedPulse}.skill-node-progress{background:#0000001a;border-radius:2px;height:3px;position:absolute;bottom:4px;left:8px;right:8px;overflow:hidden}.skill-node-progress-fill{background:var(--ink);border-radius:2px;height:100%;transition:width .3s}.skill-node-mastered-badge{background:var(--ink);width:20px;height:20px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.skill-node-lock{opacity:.6;font-size:12px;position:absolute;top:-4px;right:-4px}.skill-node-recommended-badge{background:var(--ink);color:var(--bg);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:9px;font-weight:600;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.skill-tree-compact{flex-wrap:wrap;gap:8px;display:flex}.skill-tree-compact .skill-node{min-width:80px;padding:10px 8px}.skill-tree-compact .skill-node-name{font-size:11px}.skill-detail-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.skill-detail{background:var(--panel);border:1px solid var(--stroke);border-radius:18px;width:100%;max-width:420px;max-height:80vh;padding:24px;animation:.2s slideUp;position:relative;overflow-y:auto}.skill-detail-close{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex;position:absolute;top:12px;right:12px}.skill-detail-close:hover{background:var(--stroke)}.skill-detail-header{margin-bottom:16px}.skill-detail-category{background:var(--panel-deep);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;border-radius:6px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 10px;font-size:11px;display:inline-flex}.skill-detail-category-icon{font-size:12px}.skill-detail-title{margin-bottom:8px;font-size:22px}.skill-detail-status{text-transform:uppercase;letter-spacing:.06em;border-radius:8px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.skill-detail-status-locked{color:var(--ink-muted);background:#00000014}.skill-detail-status-unlocked{color:#2a6a2a;background:#5ab85c33}.skill-detail-status-mastered{background:var(--ink);color:var(--bg)}.skill-detail-description{color:var(--ink-muted);margin-bottom:16px;font-size:14px;line-height:1.5}.skill-detail-section{margin-bottom:16px}.skill-detail-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:10px;font-family:var(--font-dm-mono),ui-monospace,monospace;margin-bottom:6px}.skill-detail-benefit{color:#2a6a2a;background:#5ab85c1a;border-radius:10px;margin:0;padding:10px 12px;font-size:14px}.skill-detail-requirements{flex-wrap:wrap;gap:6px;display:flex}.skill-detail-requirement{background:var(--panel-deep);border-radius:8px;padding:6px 10px;font-size:12px}.skill-detail-unlock{color:var(--ink-muted);margin:0;font-size:13px;font-style:italic}.skill-detail-progress-bar{background:#0000001a;border-radius:4px;height:8px;margin-bottom:6px;overflow:hidden}.skill-detail-progress-fill{background:linear-gradient(90deg,var(--ink)0%,var(--ink-muted)100%);border-radius:4px;height:100%;transition:width .4s}.skill-detail-progress-text{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.skill-detail-date{font-size:14px;font-family:var(--font-dm-mono),ui-monospace,monospace}.skill-page-progress{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.skill-page-progress-main{flex-direction:column;align-items:center;display:flex}.skill-page-progress-percent{font-size:42px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.skill-page-progress-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.skill-page-progress-stats{flex:1;justify-content:space-around;gap:20px;display:flex}.skill-page-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.skill-page-stat-value{font-size:20px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace}.skill-page-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.skill-page-recommended{background:linear-gradient(135deg,var(--panel)0%,#e8d4a8 100%);border:2px solid var(--ink-muted)}.skill-page-recommended-content{gap:16px;margin-top:12px;display:flex}.skill-page-recommended-icon{opacity:.7;font-size:32px}.skill-page-recommended-info{flex:1}.skill-page-recommended-name{margin-bottom:6px;font-size:18px}.skill-page-recommended-desc{color:var(--ink-muted);margin:0 0 8px;font-size:14px;line-height:1.4}.skill-page-recommended-meta{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.skill-page-list{flex-direction:column;gap:10px;display:flex}.skill-page-item{background:var(--panel-deep);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.skill-page-item-icon{opacity:.6;font-size:18px}.skill-page-item-info{flex:1}.skill-page-item-name{margin-bottom:4px;font-size:14px;font-weight:600}.skill-page-item-progress{align-items:center;gap:8px;display:flex}.skill-page-item-progress-bar{background:#0000001a;border-radius:2px;flex:1;height:4px;overflow:hidden}.skill-page-item-progress-fill{background:var(--ink);border-radius:2px;height:100%}.skill-page-item-progress-text{color:var(--ink-muted);font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace;min-width:40px}.skill-page-mastered-list{flex-direction:column;gap:8px;display:flex}.skill-page-mastered-item{background:var(--panel-deep);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.skill-page-mastered-check{background:var(--ink);width:20px;height:20px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.skill-page-mastered-name{flex:1;font-size:14px;font-weight:500}.skill-page-mastered-date{color:var(--ink-muted);font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace}@keyframes recommendedPulse{0%,to{box-shadow:0 0 #2f1a0033}50%{box-shadow:0 0 0 6px #2f1a0000}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.skill-node{transition:none}.skill-node-recommended{box-shadow:0 0 0 3px var(--ink-muted);animation:none}.skill-detail-overlay,.skill-detail{animation:none}.skill-progress-bar-fill,.skill-detail-progress-fill,.skill-page-item-progress-fill{transition:none}}@media (max-width:640px){.skill-progress-summary{padding:14px}.skill-progress-stats{gap:8px}.skill-progress-stat-value{font-size:20px}.skill-progress-bar-container{flex-direction:column;align-items:stretch;gap:6px}.skill-progress-percent{text-align:center}.skill-progress-next{flex-direction:column;align-items:flex-start}.skill-category-filter{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.skill-category-btn{white-space:nowrap}.skill-tree-category{min-width:100px}.skill-node{min-width:90px;padding:10px 8px}.skill-node-name{font-size:11px}.skill-detail{max-height:85vh;padding:20px}.skill-detail-title{padding-right:32px;font-size:20px}.skill-page-progress{flex-direction:column;gap:16px}.skill-page-progress-stats{width:100%}.skill-page-recommended-content{flex-direction:column;gap:12px}.skill-page-recommended-icon{font-size:24px}}.community-tabs{gap:8px;margin-bottom:16px;display:flex}.community-tab{background:var(--panel);border:1px solid var(--stroke);cursor:pointer;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.community-tab:hover{background:var(--panel-deep)}.community-tab-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.community-tab-badge{background:#fff3;border-radius:10px;padding:2px 8px;font-size:12px}.community-tab-active .community-tab-badge{background:#f4ba344d}.community-empty{text-align:center;padding:24px 0}.community-empty-icon{margin-bottom:12px;font-size:48px;display:block}.community-empty h3{margin-bottom:8px}.community-review-card{border:2px solid var(--ink-muted)}.community-review-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.community-review-count{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.community-review-pattern{background:var(--panel-deep);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.community-review-bpm{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.community-player{background:var(--panel-deep);border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.community-play-btn{background:var(--ink);color:var(--bg);cursor:pointer;border:none;border-radius:10px;padding:12px 24px;font-weight:600;transition:transform .1s}.community-play-btn:hover{transform:scale(1.02)}.community-duration{font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink-muted);font-size:14px}.community-description{color:var(--ink-muted);margin-bottom:16px;font-style:italic}.community-already-reviewed{text-align:center;color:var(--ink-muted);flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.feedback-form{border-top:1px dashed var(--stroke);margin-top:20px;padding-top:20px}.feedback-section{margin-bottom:20px}.feedback-label{margin-bottom:8px;font-size:13px;font-weight:600;display:block}.feedback-rating{gap:8px;display:flex}.feedback-rating-btn{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:10px;width:44px;height:44px;font-size:16px;font-weight:600;transition:all .1s}.feedback-rating-btn:hover{background:var(--panel)}.feedback-rating-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.feedback-rating-labels{color:var(--ink-muted);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.feedback-issues{flex-wrap:wrap;gap:8px;display:flex}.feedback-issue-btn{background:var(--panel-deep);border:1px solid var(--stroke);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;transition:all .1s;display:flex}.feedback-issue-btn:hover{background:var(--panel)}.feedback-issue-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.feedback-issue-emoji{font-size:14px}.feedback-comment{border:1px solid var(--stroke);background:var(--panel-deep);resize:vertical;border-radius:10px;width:100%;min-height:60px;padding:12px;font-size:14px}.feedback-actions{gap:10px;margin-top:16px;display:flex}.feedback-submit-btn{color:#fff;background:linear-gradient(135deg,#5cb85c 0%,#4a9f4a 100%);border-color:#3d8b3d;flex:1}.my-recordings-list{flex-direction:column;gap:12px;display:flex}.my-recording-card{margin-bottom:0}.my-recording-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.my-recording-date{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.my-recording-pattern{background:var(--panel-deep);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.my-recording-feedback-count{color:var(--ink-muted);margin-left:auto;font-size:12px}.my-recording-description{color:var(--ink-muted);margin-bottom:12px;font-size:14px;font-style:italic}.my-recording-feedback{background:var(--panel-deep);border-radius:10px;padding:12px}.my-recording-scores{gap:24px;margin-bottom:12px;display:flex}.my-recording-score{flex-direction:column;align-items:center;display:flex}.my-recording-score-value{font-size:24px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace}.my-recording-score-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.my-recording-issues{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.my-recording-issues-label{color:var(--ink-muted);margin-right:4px;font-size:12px}.my-recording-issue{background:#00000014;border-radius:6px;padding:3px 8px;font-size:11px}.my-recording-comments{border-top:1px dashed var(--stroke);padding-top:12px}.my-recording-comments-label{color:var(--ink-muted);margin-bottom:8px;font-size:12px;display:block}.my-recording-comment{color:var(--ink-muted);margin:6px 0;font-size:13px;font-style:italic}.recorder-share-btn{color:#1a4a5a;background:linear-gradient(135deg,#a8d4e8 0%,#7bb8d4 100%);border-color:#5a9ab8;width:100%;margin-top:10px}.recorder-share-success{color:#2a6a2a;text-align:center;background:#5ab85c26;border-radius:10px;margin-top:10px;padding:10px 14px;font-size:13px}.recorder-share-success a{font-weight:600;text-decoration:underline}@media (max-width:640px){.community-tabs,.feedback-issues{flex-direction:column}.feedback-issue-btn{justify-content:flex-start;width:100%}.feedback-actions{flex-direction:column}.my-recording-scores{gap:16px}}.maintenance-card{position:relative}.maintenance-loading{flex-direction:column;align-items:center;gap:12px;padding:32px 0;display:flex}.maintenance-due-list{flex-direction:column;gap:8px;margin:16px 0;display:flex}.maintenance-due-item{background:var(--panel-deep);border:1px solid var(--stroke);border-radius:10px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.maintenance-due-name{font-size:14px;font-weight:600}.maintenance-due-module{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace}.maintenance-due-more{text-align:center;color:var(--ink-muted);padding:8px;font-size:13px}.maintenance-preview-stats{color:var(--ink-muted);justify-content:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.maintenance-practice{padding:0;overflow:hidden}.maintenance-progress{background:var(--stroke);width:100%;height:4px}.maintenance-progress-fill{background:var(--ink);height:100%;transition:width .3s}.maintenance-progress-text{text-align:center;color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;padding:8px}.maintenance-pattern{text-align:center;background:linear-gradient(180deg,var(--panel)0%,var(--panel-deep)100%);padding:24px 18px}.maintenance-pattern-module{font-family:var(--font-dm-mono),ui-monospace,monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-muted);margin-bottom:8px;font-size:11px}.maintenance-pattern-name{margin:0 0 12px;font-size:clamp(22px,5vw,28px);font-weight:700}.maintenance-reveal-btn{color:var(--ink-muted);border:1px solid var(--stroke);cursor:pointer;background:0 0;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .15s}.maintenance-reveal-btn:hover{background:var(--panel);color:var(--ink)}.maintenance-pattern-desc{color:var(--ink-muted);max-width:40ch;margin-top:12px;margin-left:auto;margin-right:auto;font-size:14px}.maintenance-pattern-memory{color:var(--ink-muted);font-size:12px;font-family:var(--font-dm-mono),ui-monospace,monospace;justify-content:center;gap:8px;margin-top:16px;display:flex}.maintenance-prompt{text-align:center;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);padding:20px 18px}.maintenance-prompt-text{margin-bottom:6px;font-size:16px;font-weight:600}.maintenance-prompt-sub{color:var(--ink-muted);font-size:13px}.maintenance-ratings{border-bottom:1px solid var(--stroke);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.maintenance-rating-btn{background:var(--panel);border:none;border-right:1px solid var(--stroke);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:18px 12px;transition:background .15s;display:flex}.maintenance-rating-btn:last-child{border-right:none}.maintenance-rating-btn:hover{background:var(--panel-deep)}.maintenance-rating-btn:active{transform:scale(.98)}.maintenance-rating-emoji{font-size:28px;line-height:1}.maintenance-rating-label{margin-top:4px;font-size:14px;font-weight:700}.maintenance-rating-desc{color:var(--ink-muted);text-align:center;max-width:12ch;font-size:11px}.maintenance-skip{width:100%;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:14px;font-size:13px;transition:color .15s;display:block}.maintenance-skip:hover{color:var(--ink)}.maintenance-complete{text-align:center;padding:32px 18px}.maintenance-complete-icon{color:#1a5a2a;background:linear-gradient(135deg,#a8e8b4 0%,#7bd488 100%);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:32px;font-weight:700;display:flex}.maintenance-complete-count{color:var(--ink-muted);margin-top:8px;font-size:16px}.maintenance-stats{flex-wrap:wrap;justify-content:center;gap:24px;margin:24px 0;display:flex}.maintenance-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.maintenance-stat-value{font-size:28px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.maintenance-stat-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px}@media (max-width:640px){.maintenance-ratings{grid-template-columns:1fr}.maintenance-rating-btn{border-right:none;border-bottom:1px solid var(--stroke);flex-direction:row;justify-content:flex-start;gap:12px;padding:16px 18px}.maintenance-rating-btn:last-child{border-bottom:none}.maintenance-rating-emoji{font-size:24px}.maintenance-rating-desc{text-align:left;max-width:none}.maintenance-stats{gap:16px}.maintenance-stat-value{font-size:24px}}.shuffle-mode{background:linear-gradient(135deg,var(--panel)0%,#e5d4a0 100%);border:1px solid var(--stroke);border-radius:16px;padding:18px}.shuffle-mode-compact{padding:14px}.shuffle-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.shuffle-title{align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.shuffle-icon{font-size:20px}.shuffle-explain-btn{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:12px;transition:background .15s}.shuffle-explain-btn:hover{background:#0000000d}.shuffle-explanation{background:#0000000a;border-radius:12px;margin-bottom:16px;padding:14px;font-size:13px;line-height:1.5}.shuffle-explanation p{margin:0 0 10px}.shuffle-explanation p:last-child{margin-bottom:0}.shuffle-explanation-key{background:#ffdc644d;border-radius:8px;padding:10px 12px;font-weight:500}.shuffle-setup{gap:16px;margin-bottom:18px;display:grid}.shuffle-section{flex-direction:column;gap:8px;display:flex}.shuffle-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:12px;font-weight:600}.shuffle-categories,.shuffle-modes,.shuffle-lengths{flex-wrap:wrap;gap:8px;display:flex}.shuffle-cat-btn,.shuffle-mode-btn{flex-direction:column;gap:2px;min-width:80px;display:flex}.shuffle-mode-name{font-size:13px;font-weight:600}.shuffle-mode-desc{opacity:.7;font-size:10px}.shuffle-checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.shuffle-checkbox-label input{width:18px;height:18px;accent-color:var(--ink)}.shuffle-hint{color:var(--ink-muted);margin-left:26px;font-size:12px}.shuffle-weakness{background:#c750501a;border-radius:12px;padding:12px}.shuffle-weakness-list{gap:6px;margin-top:8px;display:grid}.shuffle-weakness-item{justify-content:space-between;align-items:center;font-size:13px;display:flex}.shuffle-weakness-name{font-weight:500}.shuffle-weakness-ratio{color:#9a4040;font-size:11px;font-family:var(--font-dm-mono),ui-monospace,monospace}.shuffle-start-btn{width:100%;padding:14px 20px;font-size:15px;font-weight:600}.shuffle-mode-active{background:linear-gradient(135deg,#e8e0c8 0%,#d8c890 100%)}.shuffle-active-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.shuffle-progress{color:var(--ink-muted);font-size:13px;font-weight:600;font-family:var(--font-dm-mono),ui-monospace,monospace}.shuffle-active-tempo{font-size:14px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace}.shuffle-tempo-offset{color:var(--ink-muted);margin-left:4px;font-size:11px;font-weight:400}.shuffle-current{text-align:center;background:var(--panel);border:1px solid var(--stroke);border-radius:14px;margin-bottom:14px;padding:20px 16px}.shuffle-pattern-name{margin:8px 0;font-size:22px;font-weight:700}.shuffle-pattern-syllables{font-size:16px;font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink);margin-bottom:6px}.shuffle-pattern-notation{font-size:13px;font-family:var(--font-dm-mono),ui-monospace,monospace;color:var(--ink-muted)}.shuffle-next-preview{background:#0000000a;border-radius:10px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;display:flex}.shuffle-next-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:11px}.shuffle-next-name{font-size:14px;font-weight:600}.shuffle-rating{margin-top:16px}.shuffle-rating-prompt{text-align:center;margin-bottom:10px;font-size:14px;font-weight:500}.shuffle-rating-buttons{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.shuffle-rating-btn{border-radius:10px;padding:12px 8px;font-size:13px;font-weight:500;transition:transform .1s,background .1s}.shuffle-rating-smooth{color:#1a5a2a;background:linear-gradient(135deg,#b8e8b8 0%,#8ed88e 100%);border-color:#6abf6a}.shuffle-rating-smooth:hover{transform:translateY(-2px)}.shuffle-rating-okay{background:linear-gradient(135deg,#e8e0b8 0%,#d8c890 100%);border-color:#c0a860}.shuffle-rating-okay:hover{transform:translateY(-2px)}.shuffle-rating-struggled{color:#6a2a2a;background:linear-gradient(135deg,#e8c8c8 0%,#d8a0a0 100%);border-color:#c08080}.shuffle-rating-struggled:hover{transform:translateY(-2px)}.shuffle-cancel-btn{width:100%;margin-top:12px}.shuffle-mode-complete{background:linear-gradient(135deg,#d8f0d8 0%,#b8e0b8 100%)}.shuffle-complete-header{justify-content:center;align-items:center;gap:10px;margin-bottom:16px;display:flex}.shuffle-complete-icon{font-size:28px}.shuffle-complete-title{font-size:18px;font-weight:700}.shuffle-summary{justify-content:center;gap:24px;margin:20px 0;display:flex}.shuffle-summary-item{flex-direction:column;align-items:center;gap:4px;display:flex}.shuffle-summary-value{font-size:28px;font-weight:700;font-family:var(--font-dm-mono),ui-monospace,monospace;line-height:1}.shuffle-summary-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:11px}.shuffle-summary-smooth .shuffle-summary-value{color:#2a7a3a}.shuffle-summary-struggled .shuffle-summary-value{color:#9a4040}.shuffle-complete-tip{background:#0000000f;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.5}.shuffle-complete-actions{gap:10px;display:flex}.shuffle-complete-actions .btn{flex:1}.drill-mode-selector{flex-direction:column;gap:12px;display:flex}.drill-mode-header{margin-bottom:4px}.drill-mode-desc{color:var(--ink-muted);margin-top:6px;font-size:14px}.drill-mode-buttons{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.drill-mode-btn{flex-direction:column;align-items:center;gap:4px;padding:16px 12px;display:flex}.drill-mode-btn-title{font-size:15px;font-weight:600}.drill-mode-btn-desc{opacity:.7;font-size:11px}@media (max-width:640px){.shuffle-header{flex-direction:column;gap:8px}.shuffle-explain-btn{align-self:flex-start}.shuffle-rating-buttons{grid-template-columns:1fr;gap:6px}.shuffle-rating-btn{padding:14px 12px}.shuffle-summary{gap:16px}.shuffle-summary-value{font-size:24px}.shuffle-complete-actions{flex-direction:column}.drill-mode-buttons{grid-template-columns:1fr}}
