@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b3097673cd409a21-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/2409d02eaee47cb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b72a6a678d511e3a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/a33a3f3323a75998-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bd9b9909c3a641ff-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b3097673cd409a21-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2409d02eaee47cb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b72a6a678d511e3a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/a33a3f3323a75998-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/bd9b9909c3a641ff-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Oswald Fallback;src:local("Arial");ascent-override:146.51%;descent-override:35.49%;line-gap-override:0.00%;size-adjust:81.43%}.__className_b570fd{font-family:Oswald,Oswald Fallback;font-style:normal}.__variable_b570fd{--font-oswald:"Oswald","Oswald Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_b32614{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_b32614{--font-jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}*{box-sizing:border-box;margin:0}.app,body{background:#14171C}.app{min-height:100vh;color:#F2E8D5;max-width:640px;margin:0 auto;padding:24px 16px 48px;font-family:-apple-system,Segoe UI,Roboto,sans-serif}.loading{color:#8B93A1;text-align:center;padding-top:40vh}.eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#63C6B0}.eyebrow,h1{font-family:var(--font-oswald),sans-serif}h1{font-weight:600;font-size:26px;margin-top:4px;letter-spacing:.5px}.ph{color:#8B93A1;font-weight:500}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px}.h1btn{background:none;border:none;padding:0;cursor:pointer;text-align:left;color:inherit}.caret{color:#63C6B0;font-size:14px}.cfg{background:#1B2028;border:1px solid #3c4552;border-radius:8px;padding:12px 14px;margin-bottom:16px}.cfgrow{display:flex;align-items:center;gap:10px;font-size:13px;color:#B7BEC9;margin-bottom:10px;flex-wrap:wrap}.cfgnum{font-family:var(--font-jetbrains),monospace;color:#F2E8D5;font-size:15px;min-width:22px;text-align:center}.cfghint{font-size:12px;color:#8B93A1;line-height:1.5}.dinput{background:#14171C;border:1px solid #2a313c;border-radius:6px;color:#F2E8D5;padding:8px 10px;font-family:var(--font-jetbrains),monospace;font-size:12px;min-height:40px;color-scheme:dark}.dinput:focus{outline:none;border-color:#63C6B0}.daterow{display:flex;align-items:center;gap:10px;font-size:13px;color:#8B93A1;margin-bottom:12px;flex-wrap:wrap}.streak{text-align:right}.snum{font-family:var(--font-jetbrains),monospace;font-size:28px;font-weight:700;color:#E8B44A;display:block;line-height:1}.slbl{font-size:11px;color:#8B93A1}.amp{background:linear-gradient(180deg,#232933,#1B2028);border:1px solid #333b47;border-radius:10px;padding:14px 16px 12px;margin-bottom:20px;position:relative;box-shadow:inset 0 1px 0 rgba(242,232,213,.06),0 4px 16px rgba(0,0,0,.4)}.jewel{position:absolute;top:14px;right:16px;width:12px;height:12px;border-radius:50%;background:#3A2222;border:1px solid #555;transition:background .1s,box-shadow .1s}.jewel.on{background:#E4483A;box-shadow:0 0 10px #E4483A}.ampname{font-family:var(--font-oswald),sans-serif;font-size:11px;letter-spacing:4px;color:#8B93A1;margin-bottom:10px}.ampctl{display:flex;align-items:center;gap:12px}.bpmwrap{flex:1 1;text-align:center}.bpm{font-family:var(--font-jetbrains),monospace;font-size:42px;font-weight:700;color:#F2E8D5;letter-spacing:-1px}.bpmlbl{font-size:10px;letter-spacing:3px;color:#8B93A1;display:block}.knobbtn{background:#2A313C;color:#F2E8D5;border:1px solid #3c4552;border-radius:50%;width:44px;height:44px;font-family:var(--font-jetbrains),monospace;font-size:13px;cursor:pointer}.knobbtn:active{background:#333B47}.power{background:#14171C;color:#63C6B0;border:1px solid #63c6b0;border-radius:6px;padding:10px 14px;font-family:var(--font-oswald),sans-serif;letter-spacing:2px;font-size:12px;cursor:pointer}.power.lit{background:#63C6B0;color:#14171C}.beats{display:flex;gap:8px;justify-content:center;margin-top:10px}.dot{width:8px;height:8px;border-radius:50%;background:#2A313C;transition:background .08s}.dot.lit{background:#63C6B0;box-shadow:0 0 8px #63C6B0}.amprow2{display:flex;align-items:center;gap:10px;margin-top:12px}.tapbtn{background:#2A313C;color:#F2E8D5;border:1px solid #3c4552;border-radius:6px;padding:8px 16px;font-family:var(--font-oswald),sans-serif;letter-spacing:2px;font-size:12px;cursor:pointer;min-height:44px}.tapbtn:active{background:#3C4552}.linkbtn{background:none;border:none;color:#8B93A1;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.linkbtn:hover{color:#63C6B0}.notes{width:100%;background:#1B2028;border:1px solid #2a313c;border-radius:8px;color:#F2E8D5;padding:11px 14px;font-size:13px;margin:4px 0 10px}.notes::placeholder{color:#5C6472}.notes:focus{outline:none;border-color:#63C6B0}.exlist{margin:10px 0 0 26px}.ex{border:1px solid #2a313c;border-radius:6px;margin-bottom:6px;overflow:hidden}.ex.open{border-color:#3C4552}.exhead{width:100%;display:flex;justify-content:space-between;align-items:center;background:#202631;border:none;color:#F2E8D5;padding:10px 12px;cursor:pointer;font-family:var(--font-oswald),sans-serif;font-size:13px;letter-spacing:.5px;min-height:44px;text-align:left}.exarrow{color:#63C6B0;font-family:var(--font-jetbrains),monospace;font-size:15px}.exbody{padding:12px;background:#171C23}.exwhat{line-height:1.5;margin-bottom:10px}.exhow,.exwhat{font-size:13px;color:#B7BEC9}.exhow{margin:0 0 10px 18px;line-height:1.6}.exhow li{margin-bottom:4px}.extab{font-family:var(--font-jetbrains),monospace;font-size:11px;line-height:1.5;color:#63C6B0;background:#14171C;border:1px solid #2a313c;border-radius:6px;padding:10px 12px;overflow-x:auto;margin-bottom:10px;white-space:pre}.exerr{font-size:12px;color:#8B93A1}.exerrlbl{color:#E8B44A;font-family:var(--font-oswald),sans-serif;font-size:11px;letter-spacing:1px;text-transform:uppercase}.exerr ul{margin:4px 0 0 18px;line-height:1.5}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip{background:#2A313C;color:#B7BEC9;border:1px solid #3c4552;border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;font-family:var(--font-jetbrains),monospace}.chip.on{background:#63C6B0;color:#14171C;border-color:#63C6B0}.subdivs{display:flex;gap:6px;flex-wrap:wrap}.drill{border:1px solid #2a313c;border-radius:6px;margin:4px 0 12px;overflow:hidden}.drillbody{padding:12px;background:#171C23}.drillrow{display:flex;align-items:center;gap:12px}.drillres{font-family:var(--font-jetbrains),monospace;font-size:13px;color:#E8B44A}.reptap{width:100%;background:#1B2028;border:2px solid #63c6b0;border-radius:10px;padding:22px;cursor:pointer;text-align:center}.reptap:active{background:#223028}.repcount{display:block;font-family:var(--font-jetbrains),monospace;font-size:44px;font-weight:700;color:#63C6B0}.replbl{font-size:12px;color:#8B93A1;letter-spacing:1px}.gradbox{border:1px solid #2a313c;border-radius:6px;padding:10px 12px;margin-bottom:8px;background:#171C23}.gradlbl{font-family:var(--font-oswald),sans-serif;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#E8B44A;margin-bottom:6px}.rut{background:#241F17;border:1px solid #e8b44a;border-radius:8px;padding:11px 14px;font-size:13px;color:#E8C87F;line-height:1.5;margin-bottom:12px}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid #2a313c}.tab{background:none;color:#8B93A1;font-family:var(--font-oswald),sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;padding:8px 14px;cursor:pointer;border:none;border-bottom:2px solid transparent;display:inline-block;text-decoration:none}.tab.on{color:#F2E8D5;border-bottom-color:#63C6B0}.block{background:#1B2028;border:1px solid #2a313c;border-radius:8px;padding:12px 14px;margin-bottom:10px}.block.done{border-color:#63C6B0;opacity:.85}.bhead{display:flex;align-items:center;gap:10px;cursor:pointer}.blabel{font-family:var(--font-oswald),sans-serif;font-size:15px;letter-spacing:.5px;flex:1 1}.bmin{font-family:var(--font-jetbrains),monospace;font-size:12px;color:#E8B44A}.bdesc{line-height:1.45}.bdesc,.warmbpm{font-size:13px;color:#B7BEC9;margin:8px 0 0 26px}.warmbpm{display:flex;align-items:center;gap:8px}.warmbpm b{font-family:var(--font-jetbrains),monospace;color:#F2E8D5}.mini{background:#2A313C;color:#F2E8D5;border:none;border-radius:4px;width:26px;height:26px;cursor:pointer}.btimer{display:flex;align-items:center;gap:10px;margin:10px 0 0 26px}.btime{font-family:var(--font-jetbrains),monospace;font-size:15px;color:#8B93A1}.tbtn{background:none;border:1px solid #3c4552;color:#F2E8D5;border-radius:4px;padding:3px 12px;font-size:12px}.save,.tbtn{cursor:pointer}.save{width:100%;margin-top:6px;background:#63C6B0;color:#14171C;border:none;border-radius:8px;padding:13px;font-family:var(--font-oswald),sans-serif;font-size:14px;letter-spacing:1px}.save:disabled{background:#2A313C;color:#8B93A1;cursor:default}.phase{background:#1B2028;border:1px solid #2a313c;border-radius:8px;padding:14px 16px;margin-bottom:12px}.phase.act{border-color:#E8B44A}.pweeks{font-family:var(--font-jetbrains),monospace;font-size:11px;color:#E8B44A}.phase h2{font-family:var(--font-oswald),sans-serif;font-size:18px;margin:4px 0 8px}.pgoal,.ptech{font-size:13px;color:#B7BEC9;line-height:1.5;margin-bottom:6px}.songs{list-style:none;margin-top:8px}.songs li{padding:4px 0;font-size:13px}.songs label{display:flex;gap:8px;cursor:pointer;align-items:center}.sdone{text-decoration:line-through;color:#8B93A1}.card{background:#1B2028;border:1px solid #2a313c;border-radius:8px;padding:14px 16px;margin-bottom:12px}.card h3{font-family:var(--font-oswald),sans-serif;font-size:14px;letter-spacing:1px;margin-bottom:10px;color:#F2E8D5}.grid28{display:grid;grid-template-columns:repeat(14,1fr);grid-gap:4px;gap:4px}.cell{aspect-ratio:1;border-radius:3px;background:#2A313C}.cell.lit{background:#63C6B0}.meta{margin-top:10px}.meta,.rule{font-size:12px;color:#8B93A1}.rule{text-align:center;margin-top:8px;font-style:italic}.setrow{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.errmsg{color:#E4483A}.errmsg,.okmsg{font-size:12px;margin-top:10px}.okmsg{color:#63C6B0}.importbox{border:1px solid #3c4552;border-radius:6px;padding:10px 12px;margin-top:10px;background:#171C23}.dangerzone{border-color:#E4483A}.dangerbtn{background:#14171C;color:#E4483A;border:1px solid #e4483a;border-radius:6px;padding:10px 14px;font-family:var(--font-oswald),sans-serif;letter-spacing:2px;font-size:12px;cursor:pointer}.dangerbtn.confirm{background:#E4483A;color:#14171C}input[type=checkbox]{accent-color:#63C6B0;width:16px;height:16px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}