:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Apple SD Gothic Neo,Noto Sans KR,sans-serif;color:#24242b;background:#f4f5f8;--ink:#24242b;--muted:#7e808b;--line:#ffffff9c;--glass:#ffffff9c;--purple:#635bce;--blue:#5d9de3;--sage:#b9dcc7;--lavender:#d5d2f1;--peach:#f4c8bb;--sky:#c6e2ef;--yellow:#f4dc99}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 0 0,#eef1ff 0,#f4f5f8 38%,#f7f7fa)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}h1,h2,h3,p{margin-top:0}h1{font:700 38px/1.25 Gowun Batang,serif;letter-spacing:-.09em;margin:8px 0 0}h1 i{color:var(--purple);font-style:normal}h2{font-size:22px;letter-spacing:-.06em;margin:7px 0 0}h3{font-size:15px;letter-spacing:-.04em;margin-bottom:6px}.eyebrow{color:#8c86be;font:500 9px DM Mono,monospace;letter-spacing:.12em}.muted{color:var(--muted);font-size:12px;line-height:1.7}.app-shell{display:flex;min-height:100svh}.sidebar{width:250px;flex-shrink:0;padding:28px 20px 22px;display:flex;flex-direction:column;background:#ffffff58;border-right:1px solid #fff;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:-.05em;cursor:pointer}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:11px;background:linear-gradient(135deg,#7770e2,#4f9fe2);color:#fff;font:22px serif;box-shadow:0 8px 20px #635bce44}.profile-chip{display:flex;gap:10px;align-items:center;margin:55px 0 25px}.profile-chip strong,.profile-chip small{display:block}.profile-chip strong{font-size:12px}.profile-chip small{margin-top:4px;color:var(--muted);font-size:9px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#c8b4ec,#8ea9dc);color:#fff;font-size:12px;font-weight:800;box-shadow:0 4px 12px #7f7ac733}.avatar.small{width:30px;height:30px}nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:13px;padding:12px;border-radius:13px;color:#80818d;background:transparent;text-align:left;font-size:12px;font-weight:600}.nav-item span{width:18px;text-align:center;font-size:18px}.nav-item label{cursor:pointer}.nav-item em{margin-left:auto;padding:2px 7px;border-radius:9px;background:#e1e1fb;color:#7069c8;font-size:9px;font-style:normal}.nav-item:hover,.nav-item.active{color:var(--purple);background:#fff9;box-shadow:0 7px 20px #6d68bd12}.nav-item.active{font-weight:800}.sidebar-bottom{margin-top:auto}.mini-tip{display:flex;gap:10px;padding:13px;border-radius:16px;color:#66688b;background:linear-gradient(135deg,#e7e7ff99,#ebf5ff99);border:1px solid #fff}.mini-tip span{color:#7b72d6}.mini-tip p{margin:0;font-size:10px;line-height:1.6}.sidebar-bottom>small{display:block;margin-top:18px;color:#a7a8b2;font-size:9px;text-align:center}.main-content{width:calc(100% - 250px)}.topbar{display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 6%}.mobile-brand{display:none}.top-actions{display:flex;align-items:center;gap:9px;margin-left:auto}.sync-label{color:#8d8e9a;font-size:9px}.status-dot{width:6px;height:6px;border-radius:50%;background:#c2c3cb}.status-dot.online{background:#69c08e;box-shadow:0 0 0 4px #69c08e22}.icon-button,.text-button{background:transparent}.icon-button{color:#8d8e99}.text-button{color:#6f70a3;font-size:11px;font-weight:800}.page-wrap{width:calc(100% - 32px);max-width:1040px;margin:20px auto 80px}.narrow{max-width:850px}.page-heading,.page-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-title-row h1{font-size:37px}.page-title-row p{margin:8px 0 0}.streak{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid #fff;border-radius:16px;background:#ffffff91;box-shadow:0 10px 30px #555a9410;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.streak>span{color:#efb45b;font-size:21px}.streak b,.streak small{display:block}.streak b{font-size:10px}.streak small{margin-top:3px;color:var(--muted);font-size:9px}.glass-card{border:1px solid #ffffffd1;background:linear-gradient(135deg,#fffb,#ffffff72);border-radius:22px;box-shadow:0 20px 55px #626a9b14,inset 0 1px #fff;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.activity-card{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:20px;margin-bottom:28px}.activity-card h3{margin:7px 0 3px}.activity-card p{margin:0;font-size:10px}.activity-card p b{color:var(--purple)}.heatmap{position:relative;display:flex;flex-wrap:wrap;gap:4px;width:405px;padding-bottom:19px}.heat{width:12px;height:12px;border-radius:4px;background:#e5e6ee}.level-1{background:#d6e9dd}.level-2{background:#a7d6b8}.level-3{background:#73bf90}.level-4{background:#438c69}.heat-legend{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:4px;color:#a4a5af;font-size:8px}.heat-legend .heat{width:9px;height:9px}.stepper{display:flex;align-items:center;margin-bottom:16px}.step{display:flex;align-items:center;gap:7px;color:#b0b1ba;font-size:10px;font-weight:700;white-space:nowrap}.step b{font:10px DM Mono}.step.current{color:var(--purple)}.step.done b{color:#66ab7b}.step-line{width:40px;height:1px;margin:0 10px;background:#dfe0e8}.section-heading{display:flex;justify-content:space-between;align-items:flex-start}.soft-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:13px;background:#eeeefe;color:var(--purple);font-size:19px}.time-card{max-width:720px;padding:28px 20px 24px;margin:auto}.duration-options{display:flex;gap:10px;margin:24px 0}.duration{position:relative;display:grid;flex:1;grid-template-columns:auto auto;justify-content:center;column-gap:5px;padding:18px 10px;color:var(--muted);background:#ffffff73;border:1px solid #fff;border-radius:16px}.duration strong{grid-row:span 2;color:#38384b;font:46px/1 Gowun Batang}.duration span{align-self:end;font-size:11px;text-align:left}.duration small{align-self:start;margin-top:4px;font-size:8px;text-align:left}.duration.selected{border:2px solid #8078df;background:#ecebffb5;box-shadow:0 8px 20px #726bd529}.duration i{position:absolute;top:9px;right:10px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--purple);color:#fff;font-size:10px;font-style:normal}.primary,.outline{padding:11px 16px;border-radius:11px;font-size:11px;font-weight:800}.primary{color:#fff;background:linear-gradient(135deg,#766fe0,#5b9bdd);box-shadow:0 8px 18px #665fd033}.primary:disabled{opacity:.4;cursor:not-allowed}.outline{color:var(--purple);background:#ffffff42;border:1px solid #ffffff}.large{width:100%;padding:14px}.large span{float:right;font-size:17px}.plan-card{padding:25px 18px}.back-button{color:var(--muted);background:transparent;font-size:10px}.field-row{display:flex;gap:10px;align-items:end;margin-top:17px}.field-row label{flex:1}.add-song{white-space:nowrap}.single-field{display:grid;margin-top:14px}label{display:grid;gap:7px;color:#666779;font-size:10px;font-weight:700}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #fff;border-radius:11px;outline:0;background:#ffffff82;color:var(--ink);font-size:11px;box-shadow:inset 0 1px #fff}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#a69fee;box-shadow:0 0 0 3px #8279df1d}.plan-heading{display:flex;align-items:end;justify-content:space-between;margin:26px 0 11px}.plan-heading h3{margin:0 0 3px}.slot-count{color:var(--purple);font:11px DM Mono}.plan-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.plan-slot{display:flex;align-items:center;min-height:56px;padding:5px;border:1px dashed #d8d9e9;border-radius:12px;color:#a7a8b2;font-size:9px;background:#ffffff3d}.plan-slot>span{padding:0 10px}.plan-slot>span b{margin-right:7px;color:#a5a6b3;font:9px DM Mono}.program{display:flex;align-items:center;gap:7px;width:100%;padding:10px;border-radius:9px;color:#4d4e5b;font-size:10px}.program b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.program button{margin-left:auto;color:#77798c;background:transparent}.tile-number{color:#7c7d8d;font:9px DM Mono}.sage{background:#e2f1e7}.lavender{background:#e9e7fa}.peach{background:#fbe4dc}.blue{background:#e1f0f6}.yellow{background:#faeec4}.program-library{margin:24px 0;border-top:1px solid #ffffff;padding-top:16px}.library-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.library-title h3{margin:0 0 3px}.library-list{display:flex;gap:8px;overflow:auto;padding:10px 0 2px;scrollbar-width:none}.library-tile{display:flex;align-items:center;gap:8px;min-width:180px;padding:11px;text-align:left;border:1px solid #fff;border-radius:13px;background:#ffffff72}.library-tile:disabled{opacity:.4}.library-tile>div{min-width:0}.library-tile b,.library-tile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-tile b{font-size:10px}.library-tile small{margin-top:4px;color:var(--muted);font-size:9px}.library-tile>span:last-child{margin-left:auto;color:var(--purple)}.tile-dot{display:inline-block;flex:0 0 auto;width:10px;height:10px;border-radius:50%}.tile-dot.sage{background:#78bb8d}.tile-dot.lavender{background:#9790d8}.tile-dot.peach{background:#e29b85}.tile-dot.blue{background:#77b5d2}.tile-dot.yellow{background:#d6ae45}.empty-inline{padding:14px;border-radius:12px;color:#999ba9;background:#fff5;font-size:10px}.song-grid,.program-grid{display:grid;grid-template-columns:1fr;gap:13px}.song-card{position:relative;padding:10px}.cover{display:grid;place-items:center;height:150px;border-radius:16px;color:#fff;font:48px serif}.cover-0{background:linear-gradient(135deg,#9d8de0,#76afe1)}.cover-1{background:linear-gradient(135deg,#83bba3,#73a7cf)}.cover-2{background:linear-gradient(135deg,#c58fb1,#8f92dc)}.song-info{padding:15px 6px 7px}.song-info h3{margin:6px 0 11px;font:17px Gowun Batang}.song-info p{margin:0;color:var(--muted);font-size:10px}.song-info p b{color:var(--purple)}.delete-button{position:absolute;top:19px;right:18px;padding:6px 8px;border-radius:8px;color:#c36773;background:#fffb;font-size:9px}.program-card{position:relative;display:flex;align-items:flex-start;gap:16px;padding:22px}.program-card .program-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#ffffffb5;color:var(--purple);font-size:18px}.program-card h3{margin:7px 0 5px;font-size:16px}.program-card p{margin:0;color:#686a79;font-size:11px;line-height:1.6}.program-card .delete-button{top:15px;right:15px;opacity:0}.program-card:hover .delete-button{opacity:1}.empty-state{padding:45px 20px;text-align:center}.empty-state>span{color:var(--purple);font-size:30px}.empty-state h2{margin:13px 0 5px}.total-time{text-align:right}.total-time b,.total-time span{display:block}.total-time b{color:var(--purple);font:24px DM Mono}.total-time span{color:var(--muted);font-size:9px}.record-list{display:grid;gap:12px;margin-top:23px}.record-card{padding:18px}.record-date{display:flex;justify-content:space-between;color:#92939f;font:9px DM Mono}.record-date span{padding:3px 8px;border-radius:10px;color:#4c9e68;background:#daf1e2;font:9px Manrope}.record-main{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0 17px}.record-main h3{margin:6px 0 7px;font:17px Gowun Batang}.record-main p{margin:0;font-size:9px}.record-main>strong{color:var(--purple);font:17px DM Mono;white-space:nowrap}.record-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid #ffffff}.record-tiles{display:flex;flex-wrap:wrap;gap:6px}.record-tiles span{display:flex;align-items:center;gap:4px;color:#777985;font-size:9px}.record-tiles i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;color:var(--purple);background:#e5e4fb;font-style:normal;font-size:8px}.lesson-form{display:grid;gap:17px;padding:20px}.lesson-form button{justify-self:end}.lesson-item{display:flex;align-items:flex-start;gap:14px;padding:22px 6px;border-bottom:1px solid #fff}.lesson-item time{flex:0 0 90px;color:#9697a3;font:9px DM Mono}.lesson-item h3{font-size:13px}.lesson-item p{margin:0;font-size:10px}.lesson-item .icon-button{margin-left:auto}.info-pill{padding:8px 11px;border-radius:15px;color:#4f9870;background:#def0e5;font-size:9px}.tuning-card{padding:25px 18px;text-align:center}.note-picker>div{display:flex;align-items:center;justify-content:center;gap:26px;margin:9px 0 3px}.note-picker button{color:#9a9bad;background:transparent;font-size:27px}.note-picker strong{color:var(--purple);font:53px Gowun Batang}.note-picker>span:last-child{color:#a2a3ae;font-size:9px}.tuner-dial{position:relative;display:grid;place-items:center;width:225px;height:225px;margin:27px auto 13px;border:11px solid #e9e9f2;border-top-color:#d8eadf;border-right-color:#cce4ef;border-radius:50%}.tuner-dial.active{border-color:#f1e8e4;border-left-color:#e3a87d}.dial-label{color:var(--purple);font:43px DM Mono}.tuner-dial>div>span{color:#9b9ca9;font-size:9px}.dial-needle{position:absolute;top:28px;left:calc(50% - 1px);width:2px;height:84px;background:#8178d5;transform-origin:bottom}.tuner-dial.active .dial-needle{transform:rotate(26deg)}.tuning-status{color:#787986;font-size:11px}.tuning-help{display:flex;gap:12px;align-items:flex-start;padding:16px;margin-top:14px;border-radius:16px;background:#ffffff6b;border:1px solid #fff}.tuning-help>span{color:#71a182;font-size:21px}.tuning-help b{font-size:10px}.tuning-help p{margin:5px 0 0;font-size:9px}.practice-view{display:flex;flex-direction:column;min-height:100svh;background:radial-gradient(circle at 50% 0,#e7ecff,#f4f5f8 55%)}.practice-header{display:flex;align-items:center;justify-content:space-between;padding:22px 20px}.practice-center{width:calc(100% - 32px);max-width:600px;margin:28px auto;flex:1;text-align:center}.timer-ring{display:grid;place-items:center;width:255px;height:255px;margin:27px auto;border:12px solid #e1e2ee;border-top-color:#6db18b;border-right-color:#8dbedb;border-radius:50%;box-shadow:0 15px 45px #5560961c}.timer-ring strong,.timer-ring span{display:block}.timer-ring strong{color:var(--purple);font:45px DM Mono;letter-spacing:-.08em}.timer-ring span{margin-top:8px;color:#9495a2;font-size:9px}.current-program{display:flex;align-items:center;gap:14px;padding:17px;text-align:left;border:1px solid #fff;border-radius:18px;background:#ffffffa8;box-shadow:0 12px 30px #57639413;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.current-program .tile-dot{width:14px;height:14px}.current-program h2{font-size:16px}.current-program p{margin:5px 0 0;color:#858692;font-size:10px}.practice-start{width:180px;margin-top:19px;padding:14px;border-radius:13px;color:#fff;background:linear-gradient(135deg,#766fe0,#5b9bdd);font-weight:800;box-shadow:0 10px 22px #665fd033}.practice-start span{margin-left:9px}.metronome{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 20px;background:#ffffff8c;border-top:1px solid #fff;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px)}.metronome h3{margin:4px 0 0}.metronome>button:not(.sound-button){width:28px;height:28px;border-radius:50%;color:var(--purple);background:#fff}.metronome>strong{color:var(--purple);font:24px DM Mono}.bpm-label{color:#9798a6;font:9px DM Mono}.metro-line{position:relative;flex:1;min-width:90px;height:3px;background:#d3d5e4}.metro-line i{position:absolute;top:-4px;width:11px;height:11px;border-radius:50%;background:var(--purple)}.sound-button{margin-left:auto;color:#777890;background:transparent;font-size:9px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:16px;background:#28274442}.modal{width:min(100%,430px);display:grid;gap:16px;padding:24px;box-shadow:0 25px 80px #31305a38}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2px}.modal-heading h2{margin-top:6px}.label-hint{color:#9b9cac;font:9px DM Mono}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}h1,.duration strong,.song-info h3,.record-main h3,.note-picker strong{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Apple SD Gothic Neo,Noto Sans KR,sans-serif!important}@media(min-width:600px){.page-wrap{width:min(87%,1040px);margin-top:32px}.time-card{padding:35px 45px 39px}.plan-card{padding:32px 38px 38px}.song-grid,.program-grid{grid-template-columns:repeat(2,1fr)}.tuning-card{padding:34px}.metronome{padding:20px 8%}}@media(min-width:900px){.song-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.sidebar{position:fixed;z-index:3;bottom:0;left:0;width:100%;height:66px;padding:7px 8px;display:block;border:0;border-top:1px solid #fff;background:#ffffffc9;box-shadow:0 -10px 30px #575b8a18}.sidebar .brand,.sidebar .profile-chip,.sidebar-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:0}.nav-item{display:flex;flex:1;flex-direction:column;justify-content:center;gap:3px;padding:7px 3px;border-radius:12px;font-size:9px;text-align:center}.nav-item span{width:auto;font-size:17px;line-height:17px}.nav-item label{display:block;font-size:8px;white-space:nowrap}.nav-item em{display:none}.main-content{width:100%;padding-bottom:64px}.topbar{height:63px;padding:0 18px}.mobile-brand{display:block;font-size:15px;font-weight:800}.top-actions .icon-button{display:none}.page-heading{align-items:flex-start;flex-direction:column}.streak{align-self:flex-end}.activity-card{align-items:flex-start;flex-direction:column}.heatmap{width:100%}.field-row{flex-direction:column;align-items:stretch}.plan-slots{grid-template-columns:1fr}.page-title-row{align-items:flex-start;flex-direction:column}.page-title-row .primary{align-self:stretch}.song-grid,.program-grid{grid-template-columns:1fr}.record-footer{align-items:flex-start;flex-direction:column}.total-time{align-self:flex-end}.lesson-item{flex-wrap:wrap}.lesson-item time{flex-basis:100%}.info-pill{align-self:flex-start}.metronome{gap:10px}.metronome>div:first-child{flex-basis:100%}.metro-line{order:5;flex-basis:100%}.sound-button{margin-left:0}}.level-0{background:#e5e6ee}.skeleton{position:relative;overflow:hidden;background:linear-gradient(90deg,#e5e6ee 25%,#f7f7fb,#e5e6ee 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-card{padding:10px;min-height:235px}.skeleton-cover{height:150px;border-radius:16px}.skeleton-line{width:78%;height:10px;margin:16px 6px 0;border-radius:8px}.skeleton-line.short{width:42%;margin-top:15px}.skeleton-line.medium{width:58%;height:15px;margin-top:22px}.skeleton-line.tiny{width:28%;height:8px;margin-top:10px}.skeleton-program{display:flex;gap:16px;align-items:flex-start;min-height:116px;padding:22px}.skeleton-icon{width:38px;height:38px;flex:0 0 auto;border-radius:14px}.skeleton-copy{width:100%}.skeleton-record{min-height:125px;padding:18px}.empty-state{min-height:240px;display:grid;place-items:center;align-content:center;gap:4px}.empty-state>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:8px;border-radius:18px;color:#a8a9b5;background:#e7e8ef;font-size:24px}.empty-state h2{margin:0}.empty-state p{margin:0 0 10px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes page-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main-content>*{animation:page-rise .32s ease both}@media(max-width:700px){.sidebar{left:14px;bottom:14px;width:calc(100% - 28px);height:64px;padding:7px;border:1px solid #ffffffd9;border-radius:23px;background:#ffffff61;box-shadow:0 16px 40px #4f578d2e,inset 0 1px #fff;backdrop-filter:blur(30px) saturate(140%);-webkit-backdrop-filter:blur(30px) saturate(140%)}.main-content{padding-bottom:96px}.sidebar nav{height:50px;align-items:stretch}.nav-item{position:relative;height:50px;justify-content:center;padding:0 3px;transition:transform .25s ease,color .25s ease,background .25s ease}.nav-item:before{position:absolute;content:"";top:1px;right:1px;bottom:1px;left:1px;z-index:-1;border-radius:17px;background:#ebeaff7a;opacity:0;transform:scale(.72);transition:opacity .25s ease,transform .25s ease}.nav-item.active{transform:translateY(-2px)}.nav-item.active:before{opacity:1;transform:scale(1)}.nav-item span{transition:transform .25s ease}.nav-item.active span{transform:scale(1.12)}}@media(prefers-reduced-transparency:reduce){.sidebar{background:#f8f8fce6}}body:before,body:after{position:fixed;z-index:-1;content:"";pointer-events:none;border-radius:50%;filter:blur(2px);opacity:.7;animation:ambient-drift 18s ease-in-out infinite alternate}body:before{top:-10%;left:-7%;width:280px;height:280px;background:radial-gradient(circle,#d4ccff 0,#d4ccff00 70%)}body:after{right:-12%;bottom:12%;width:360px;height:360px;background:radial-gradient(circle,#b9e7f6 0,#f6cbe400 68%);animation-delay:-8s}.glass-card{background:linear-gradient(135deg,#ffffffad,#ffffff47);border-color:#ffffffc7;box-shadow:0 24px 70px #4743851f,0 2px 3px #ffffffa6 inset,0 -1px #857ecd0d inset;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease}.glass-card:hover{border-color:#fffffffa;box-shadow:0 28px 80px #47438529,0 2px 3px #fffc inset}.primary,.outline,.duration,.library-tile,.nav-item,.icon-button,.text-button,.delete-button{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease}.primary:hover,.outline:hover{transform:translateY(-2px)}.primary:active,.outline:active,.duration:active,.library-tile:active{transform:scale(.97)}.duration:hover{border-color:#827ae08f;box-shadow:0 12px 24px #635bce1f}.library-tile:hover{transform:translateY(-3px);box-shadow:0 12px 24px #5a56a01f;background:#ffffffdb}.song-card:hover,.program-card:hover{transform:translateY(-5px)}.delete-button:hover{transform:scale(1.06);background:#fff}.modal-backdrop{animation:backdrop-in .25s ease both}.modal{animation:modal-in .42s cubic-bezier(.2,.8,.2,1) both}.practice-start{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.practice-start:hover{transform:translateY(-3px);filter:saturate(1.12);box-shadow:0 14px 30px #665fd04d}.tuner-dial{transition:transform .6s cubic-bezier(.2,.8,.2,1),border-color .4s ease}.tuner-dial.active{animation:tuner-pulse 1.8s ease-in-out infinite}@keyframes ambient-drift{0%{transform:translate3d(-12px,6px,0) scale(1)}to{transform:translate3d(18px,-16px,0) scale(1.08)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tuner-pulse{0%,to{box-shadow:0 0 #635bce00}50%{box-shadow:0 0 0 12px #635bce14}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.brand-mark{overflow:hidden;font-size:0;background:linear-gradient(135deg,#ffffff8c,#b0a9ff73),url(data:image/webp;base64,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) center/cover}.brand>span:last-child{font-size:0}.brand>span:last-child:after{content:"연습 기록";font-size:18px}.mobile-brand{font-size:0}.mobile-brand:after{content:"연습 기록";font-size:15px}.eyebrow{font-size:11px;letter-spacing:.1em}.muted{font-size:14px;line-height:1.65}h2{font-size:24px}h3{font-size:17px}.step{font-size:13px;gap:8px}.step b{font-size:13px}.back-button{display:inline-flex;align-items:center;min-height:42px;padding:10px 14px;border:1px solid rgba(255,255,255,.9);border-radius:12px;color:#5e5f83;background:#ffffff94;font-size:13px;font-weight:700;box-shadow:0 8px 18px #4b498b14}.back-button:hover{transform:translateY(-2px);background:#ffffffd1}.primary,.outline{min-height:44px;padding:12px 18px;font-size:13px}label{font-size:13px}input,select,textarea{font-size:14px}.duration small{font-size:11px}.library-tile b,.program b{font-size:12px}.library-tile small{font-size:11px}.lesson-form-enter{animation:modal-in .35s cubic-bezier(.2,.8,.2,1) both}.lesson-actions{display:flex;justify-content:flex-end;gap:10px}.lesson-add-button{display:block;width:100%;max-width:260px;margin:18px auto 0}.back-button{display:none}.back-link{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:4px 0;color:#6969a1;background:transparent;font-size:13px;font-weight:700;transition:color .2s ease,transform .2s ease}.back-link span{font-size:18px;line-height:1;transition:transform .2s ease}.back-link:hover{color:var(--purple);transform:translate(-2px)}.back-link:hover span{transform:translate(-3px)}.section-heading>div{display:flex;flex-direction:column;align-items:flex-start}.section-heading>div h2{order:-1;margin-bottom:6px}.section-heading>div .eyebrow{order:1}.plan-card .section-heading>div{gap:7px}.plan-card .section-heading>div .eyebrow{order:-1;color:#7770d1;font-size:16px;line-height:1.15;letter-spacing:.02em;font-weight:800}.plan-card .section-heading>div h2{order:1;margin:0;font-size:22px}.section-heading>div .eyebrow{order:-1}.section-heading>div h2{order:1}.time-card .section-heading>div .eyebrow{color:#7770d1;font-size:16px;line-height:1.15;letter-spacing:.02em;font-weight:800}.practice-stepper .step.current{color:#7770d1;font-size:16px;line-height:1.15;letter-spacing:.02em;font-weight:800}.practice-stepper .step.current b,.practice-stepper .step.current span{display:none}.practice-stepper .step.current:after{content:"STEP 03 · 집중하기"}.practice-stepper{display:flex;align-items:center;justify-content:center;margin-bottom:18px}.practice-stepper .step-line{width:32px;margin:0 9px}.back-link{font-size:0}.back-link:after{content:"뒤로가기";font-size:13px}.back-link span{font-size:18px}.practice-back{margin:0 0 16px}@media(max-width:700px){h1{font-size:34px}h2{font-size:22px}.eyebrow{font-size:10px}.muted{font-size:13px}.step{font-size:11px}.step b{font-size:12px}.back-button{width:100%;justify-content:center}.field-row .add-song{width:100%}.duration strong{font-size:42px}.duration span{font-size:13px}.duration small{font-size:10px}.primary,.outline{min-height:46px;font-size:14px}label{font-size:13px}input,select,textarea{font-size:14px;min-height:46px}.lesson-actions{flex-direction:column-reverse}.lesson-actions button{width:100%}}@media(max-width:700px){.sidebar{border-color:transparent;background:#ffffff47}.sidebar nav{position:relative;height:50px;align-items:stretch}.sidebar nav:before{position:absolute;content:"";z-index:0;top:1px;bottom:1px;left:2px;width:calc(20% - 4px);border:1px solid transparent;border-radius:17px;background:#ebeaff57;box-shadow:0 7px 18px #5b55be1f,inset 0 1px #fff6;transition:left .38s cubic-bezier(.2,.8,.2,1),background-color .25s ease;pointer-events:none}.sidebar nav:has(.nav-item:nth-child(2).active):before{left:calc(20% + 2px)}.sidebar nav:has(.nav-item:nth-child(3).active):before{left:calc(40% + 2px)}.sidebar nav:has(.nav-item:nth-child(4).active):before{left:calc(60% + 2px)}.sidebar nav:has(.nav-item:nth-child(5).active):before{left:calc(80% - 2px)}.nav-item{z-index:1;border:0;background:transparent!important}.nav-item:before{display:none}}.sync-cluster{display:flex;flex-direction:column;align-items:center;gap:3px}.sync-status{display:flex;align-items:center;gap:7px}.tuning-modal{max-height:calc(100svh - 32px);overflow:auto}.tuning-modal .note-picker>.eyebrow{color:#7770d1;font-size:15px!important;font-weight:800;letter-spacing:.02em}@media(max-width:700px){.sidebar nav{display:flex;position:relative}.sidebar nav:before{width:calc(20% - 4px)}.nav-item-songs{order:1}.nav-item-programs{order:2}.nav-item-home{order:3}.nav-item-records{order:4}.nav-item-lessons{order:5}.sidebar nav:has(.nav-item-songs.active):before{left:2px}.sidebar nav:has(.nav-item-programs.active):before{left:calc(20% + 2px)}.sidebar nav:has(.nav-item-home.active):before{left:calc(40% + 2px)}.sidebar nav:has(.nav-item-records.active):before{left:calc(60% + 2px)}.sidebar nav:has(.nav-item-lessons.active):before{left:calc(80% - 2px)}}.mobile-brand-wrap,.top-tuning-button{display:none}@media(max-width:700px){.mobile-brand-wrap{display:flex;align-items:center;gap:8px}.top-tuning-button{display:inline-flex;align-items:center;gap:3px;padding:5px 8px;border-radius:9px;color:#6f70a3;background:#fff9;font-size:12px;box-shadow:0 5px 12px #4b498b14}.top-tuning-button small{font-size:9px;font-weight:800}.top-tuning-button:hover{color:var(--purple);background:#ffffffe6}}.sidebar,.glass-card,.activity-card,.modal,.lesson-form,.tuning-card,.current-program,.duration,.library-tile,.song-card,.program-card,.record-card,.lesson-item,.tuning-help,.plan-slot,.empty-inline{border:0!important}.glass-card{box-shadow:0 24px 70px #4743851f,inset 0 1px #fff9,inset 0 -1px #746cbe0a}.primary,.outline,.duration{border:0!important}input,select,textarea{border:0!important;box-shadow:inset 0 1px #ffffff94}input:focus,select:focus,textarea:focus{border:1px solid rgba(126,116,226,.88)!important;box-shadow:0 0 0 4px #7e74e229,inset 0 1px #ffffffbf}.modal-backdrop{background:#25234938;backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%)}.modal{background:linear-gradient(135deg,#ffffff8f,#ffffff38);backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%)}.sidebar,.streak,.mini-tip,.glass-card,.duration,.library-tile,.record-footer,.lesson-item,.program-library,.metronome,.tuning-help,.current-program,.plan-slot{border:0!important}.glass-card{background:linear-gradient(135deg,#ffffff61,#ffffff1f)!important;box-shadow:0 24px 70px #4743851f}.sidebar{border-right:0!important}.sidebar nav:before{border:0!important}.program-library,.record-footer,.lesson-item,.metronome{border-top:0!important;border-bottom:0!important}input,select,textarea{border:0!important;box-shadow:none}input:focus,select:focus,textarea:focus{border:1px solid rgba(126,116,226,.9)!important;box-shadow:0 0 0 4px #7e74e229}.modal-backdrop{isolation:isolate;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:none!important}.modal-backdrop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:#2523490f}.modal{position:relative;z-index:1;box-sizing:border-box;width:min(100%,430px);display:grid;gap:16px;padding:24px;border:0!important;border-radius:22px;background:#ffffff1f!important;backdrop-filter:blur(34px) saturate(175%)!important;-webkit-backdrop-filter:blur(34px) saturate(175%)!important;box-shadow:0 28px 90px #24215238}.modal label{display:grid;gap:7px}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.page-title-row,.page-heading{padding-inline:0;margin-left:0;margin-right:0}.page-title-row>div:first-child,.page-heading>div:first-child{margin-inline-start:0}.song-composer{display:block;font-size:13px!important;letter-spacing:.04em}.card-actions{position:absolute;top:15px;right:15px;display:flex;align-items:center;gap:6px}.card-actions .delete-button{position:static;opacity:1}.edit-button,.card-actions .delete-button{min-height:34px;padding:7px 10px;border:0;border-radius:10px;font-size:12px;font-weight:700}.edit-button{color:var(--purple);background:#ebeaffb8}.card-actions .delete-button{color:#c36773;background:#ffffff9e}.lesson-item .card-actions{position:static;margin-left:auto;flex-shrink:0}.measure-field{display:grid;gap:9px;margin-top:14px}.field-label{color:#666779;font-size:13px;font-weight:700}.measure-range{display:flex;align-items:end;gap:10px}.measure-range label{flex:1}.measure-range>span{padding-bottom:13px;color:var(--muted);font-size:18px}.whole-measure{display:flex;align-items:center;grid-template-columns:auto 1fr;gap:8px;width:fit-content;color:#666779;font-size:12px}.whole-measure input{width:18px;min-height:18px;accent-color:var(--purple)}.measure-range input:disabled{opacity:.42;cursor:not-allowed;background:#dcdce66b}.practice-view .metronome{position:fixed;left:16px;right:16px;bottom:16px;z-index:4;border:0!important;border-radius:24px;background:#ffffff38!important;backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);box-shadow:0 18px 50px #36397033}.metro-toggle{width:38px;height:38px;border:0;border-radius:50%;color:#fff;background:linear-gradient(135deg,#766fe0,#5b9bdd);box-shadow:0 8px 18px #665fd038}.confirm-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.danger-button{min-height:44px;padding:12px 18px;border:0;border-radius:11px;color:#fff;background:linear-gradient(135deg,#d87888,#bd6077);font-size:13px;font-weight:800}.sidebar nav:before{box-shadow:0 7px 18px #5b55be1f!important}.sidebar{background:#fff3!important;box-shadow:0 16px 40px #4f578d29!important}.streak,.mini-tip,.duration,.library-tile,.record-footer,.lesson-item,.program-library,.metronome,.tuning-help,.current-program,.plan-slot{box-shadow:none}
