*{box-sizing:border-box}html,body,#root{width:100%;margin:0;padding:0}body{color:#191916;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#f1f0eb;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif}::selection{color:#fff;background:#a6432f}:focus-visible{outline-offset:3px;outline:2px solid #a6432f}button{font-family:inherit;transition:filter .15s,background .15s,border-color .15s,box-shadow .15s,transform 60ms}button:not(:disabled):hover{filter:brightness(.965)}button:not(:disabled):active{transform:translateY(1px)}button:disabled{cursor:not-allowed}input[type=range]{accent-color:#a6432f}input,select,textarea{font:inherit}.auth-page{color:#191916;background:#f1f0eb;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.auth-editorial{color:#f8f5ee;background:#1b1b18;flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(42px,6vw,86px);display:flex;position:relative;overflow:hidden}.auth-editorial:before{content:"";opacity:.13;pointer-events:none;background-image:repeating-linear-gradient(#0000 0 22px,#ffffff61 23px,#0000 24px);background-size:100% 120px;position:absolute;inset:0;transform:rotate(-5deg)scale(1.16)}.auth-editorial:after{content:"𝄞";color:#ffffff0a;pointer-events:none;font:520px/1 Georgia,serif;position:absolute;bottom:-120px;right:-36px}.auth-brand,.auth-editorial-copy,.auth-feature-list{z-index:1;position:relative}.auth-brand{letter-spacing:.03em;align-items:center;gap:13px;display:flex}.brand-mark{color:#d56b54;border:1px solid #ffffff57;place-items:center;width:38px;height:38px;font:25px/1 Georgia,serif;display:grid}.brand-name{font:600 19px/1.1 Iowan Old Style,Songti SC,Georgia,serif}.brand-caption{color:#ffffff85;letter-spacing:.18em;text-transform:uppercase;margin-top:3px;font-size:10px}.auth-editorial-copy{max-width:710px;margin:clamp(72px,12vh,150px) 0 80px}.auth-kicker,.section-kicker{color:#c75b45;letter-spacing:.19em;text-transform:uppercase;margin:0 0 18px;font-size:11px;font-weight:750}.auth-editorial-copy h1{letter-spacing:-.035em;max-width:650px;margin:0;font:500 clamp(40px,5vw,74px)/1.08 Iowan Old Style,Songti SC,Georgia,serif}.auth-editorial-copy p:last-child{color:#ffffff94;max-width:520px;margin:28px 0 0;font-size:15px;line-height:1.85}.auth-feature-list{border-top:1px solid #ffffff29;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.auth-feature{border-right:1px solid #ffffff1f;padding:18px 20px 0 0}.auth-feature:last-child{border-right:0;padding-left:20px}.auth-feature:nth-child(2){padding-left:20px}.auth-feature-index{color:#c75b45;letter-spacing:.15em;font-size:10px}.auth-feature strong{margin-top:9px;font-size:13px;font-weight:650;display:block}.auth-feature span:last-child{color:#ffffff75;margin-top:5px;font-size:11px;line-height:1.5;display:block}.auth-form-side{background:#f8f7f3;place-items:center;min-height:100vh;padding:56px clamp(28px,5vw,84px);display:grid}.auth-panel{width:min(100%,420px)}.auth-panel-mobile-brand{display:none}.auth-panel-header{margin-bottom:30px}.auth-panel-header .auth-kicker{margin-bottom:12px}.auth-panel-header h2{letter-spacing:-.02em;margin:0;font:520 34px/1.2 Iowan Old Style,Songti SC,Georgia,serif}.auth-panel-header p:last-child{color:#706c64;margin:10px 0 0;font-size:13px;line-height:1.7}.auth-tabs{border-bottom:1px solid #dcd9d0;gap:26px;margin:0 0 26px;display:flex}.auth-tab{color:#88837a;cursor:pointer;background:0 0;border:0;padding:0 0 12px;font-size:13px;font-weight:650;position:relative}.auth-tab[data-active=true]{color:#191916}.auth-tab[data-active=true]:after{content:"";background:#a6432f;height:2px;position:absolute;bottom:-1px;left:0;right:0}.auth-panel input{transition:border-color .16s,box-shadow .16s,background .16s}.auth-panel input:focus{outline:none;box-shadow:0 0 0 3px #a6432f17;border-color:#777168!important}.platform-topbar{min-height:62px}.platform-primary-nav{scrollbar-width:none;min-width:0;overflow-x:auto}.platform-primary-nav::-webkit-scrollbar{display:none}.platform-actions{white-space:nowrap;align-items:center;gap:8px;display:flex}.platform-nav-btn{justify-content:center;align-items:center;gap:5px;display:inline-flex}.icon-label{justify-content:center;align-items:center;gap:7px;display:inline-flex!important}.training-workbench-header{border-bottom:1px solid #dcd9d0;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;padding:4px 0 22px;display:flex}.training-workbench-header h1{letter-spacing:-.025em;margin:0;font:500 36px/1.15 Iowan Old Style,Songti SC,Georgia,serif}.training-workbench-header p:last-child{color:#706c64;margin:9px 0 0;font-size:13px;line-height:1.65}.training-workbench-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.portal-hero{border-bottom:1px solid #dcd9d0;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;padding:34px 0 30px;display:grid}.portal-hero h2{letter-spacing:-.035em;max-width:760px;margin:0;font:500 clamp(32px,4vw,52px)/1.12 Iowan Old Style,Songti SC,Georgia,serif}.portal-hero p:last-child{color:#706c64;margin:14px 0 0;font-size:14px}.portal-date{color:#777168;text-align:right;font:500 13px/1.5 Iowan Old Style,Songti SC,Georgia,serif}.student-dashboard{flex-direction:column;gap:14px;margin-bottom:28px;display:flex}.student-dashboard>section{margin-bottom:0!important}.student-dashboard-card{color:var(--glass-text);border-color:var(--glass-border)!important;border-radius:24px!important}.student-dashboard-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.student-dashboard-heading h3{letter-spacing:-.025em;margin:3px 0 0;font-size:22px;line-height:1.2}.student-dashboard-kicker{color:var(--glass-muted);letter-spacing:.16em;font-size:10px;font-weight:760}.student-pending-count,.student-all-done{border-radius:999px;padding:6px 11px;font-size:12px;font-weight:720}.student-pending-count{color:#8c3827;background:#f7e9e3}.student-all-done{color:#2f6951;background:#e8f2ed}.student-assignment-card{padding:26px 28px!important;box-shadow:0 18px 50px #26303d13!important}.student-assignment-list{flex-direction:column;gap:9px;display:flex}.student-assignment-row{border:1px solid color-mix(in srgb, var(--glass-border) 75%, transparent);background:color-mix(in srgb, var(--glass-surface-strong) 90%, transparent);border-radius:15px;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:14px;min-height:74px;padding:11px 12px;display:grid}.student-assignment-row[data-done=true]{opacity:.72}.student-assignment-icon{color:#8c3827;background:#f7e9e3;border-radius:12px;place-items:center;width:38px;height:38px;font-size:17px;font-weight:800;display:grid}.student-assignment-row[data-done=true] .student-assignment-icon{color:#2f6951;background:#e8f2ed}.student-assignment-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.student-assignment-copy b{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.student-assignment-copy span,.student-assignment-meta span{color:var(--glass-muted);font-size:12px}.student-assignment-meta{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:3px;min-width:54px;display:flex}.student-assignment-meta b{font-size:14px}.student-assignment-row>button{min-width:88px;box-shadow:none!important;padding:9px 14px!important}.student-assignment-empty{color:#2f6951;align-items:center;gap:13px;padding:15px 2px 5px;display:flex}.student-assignment-empty>span{background:#e8f2ed;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.student-assignment-empty div{flex-direction:column;gap:2px;display:flex}.student-assignment-empty small{color:var(--glass-muted)}.student-completed-assignments{border-top:1px solid var(--glass-border);margin-top:12px;padding-top:10px}.student-completed-assignments>button,.student-achievement-toggle,.student-log-toggle{color:var(--glass-muted);cursor:pointer;font:inherit;background:0 0;border:0}.student-completed-assignments>button{align-items:center;gap:6px;padding:3px 0;font-size:13px;font-weight:680;display:flex}.student-completed-assignments>button>span{font-size:20px;line-height:1;transition:transform .18s;transform:rotate(0)}.student-completed-assignments>button>span.is-open{transform:rotate(90deg)}.student-assignment-done-list{margin-top:8px}.student-log-toggle,.student-achievement-toggle{border-radius:9px;padding:6px 10px;font-size:12px;font-weight:680}.student-log-toggle:hover,.student-achievement-toggle:hover{color:var(--glass-text);background:var(--glass-surface-soft)}.student-today-layout{grid-template-columns:minmax(280px,1.15fr) minmax(330px,.85fr);align-items:stretch;gap:26px;display:grid}.student-today-focus{align-items:center;gap:20px;min-width:0;display:flex}.student-today-count{border-right:1px solid var(--glass-border);flex-direction:column;min-width:94px;padding-right:20px;display:flex}.student-today-count strong{color:var(--glass-accent);letter-spacing:-.055em;font-size:46px;font-weight:740;line-height:.95}.student-today-count span{color:var(--glass-muted);margin-top:7px;font-size:12px}.student-today-progress{flex:1;min-width:0}.student-today-progress>div:first-child{flex-direction:column;gap:4px;display:flex}.student-today-progress b{font-size:14px}.student-today-progress span{color:var(--glass-muted);font-size:11px}.student-progress-track{background:color-mix(in srgb, var(--glass-border) 70%, transparent);border-radius:999px;height:7px;margin-top:12px;overflow:hidden}.student-progress-track>div{border-radius:inherit;height:100%;transition:width .3s}.student-stat-grid{border:1px solid var(--glass-border);background:color-mix(in srgb, var(--glass-surface-strong) 84%, transparent);border-radius:15px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.student-stat{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:96px;padding:12px 9px;display:flex}.student-stat+.student-stat{border-left:1px solid var(--glass-border)}.student-stat strong{letter-spacing:-.035em;font-size:23px;font-weight:740}.student-stat span{color:var(--glass-muted);margin-top:3px;font-size:11px}.student-stat small{max-width:115px;color:var(--glass-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9px;overflow:hidden}.student-streak-note,.student-module-summary{color:var(--glass-muted);margin-top:13px;font-size:12px}.student-streak-note{color:var(--glass-accent);font-weight:680}.student-module-summary>span{color:var(--glass-text);margin-right:8px;font-weight:680}.student-achievements-embedded{border-top:1px solid var(--glass-border);margin-top:16px;padding-top:15px}.student-achievement-head{align-items:center;gap:14px;display:flex}.student-achievement-title{align-items:center;gap:9px;display:flex}.student-achievement-mark{color:#8c3827;background:#f7e9e3;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.student-achievement-title h3{margin:0;font-size:14px}.student-achievement-title div>span{color:var(--glass-muted);font-size:10px}.student-achievement-icons{flex:1;gap:3px;min-width:0;display:flex;overflow:hidden}.student-achievement-icons>span{font-size:17px}.student-achievement-next{color:var(--glass-muted);margin:8px 0 0 41px;font-size:11px}.student-achievement-next span{margin-left:7px}.student-achievement-group{margin-top:14px}.student-achievement-group-label{color:var(--glass-muted);margin-bottom:7px;font-size:11px;font-weight:720}.student-achievement-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:8px;display:grid}.student-achievement-badge{border-radius:10px;min-width:0;padding:10px 9px 8px}.module-section-head{justify-content:space-between;align-items:end;gap:24px;margin:34px 0 16px;display:flex}.module-section-head h3{margin:0;font-size:16px;font-weight:720}.module-section-head p{color:#706c64;margin:0;font-size:12px}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.module-card{text-align:left;color:#191916;cursor:pointer;background:#fbfaf7;border:1px solid #dcd9d0;border-radius:10px;min-height:312px;padding:0;display:block;position:relative;overflow:hidden}.module-card:after{content:"";background:#a6432f;width:0;height:3px;transition:width .22s;position:absolute;bottom:0;left:0}.module-card:hover{border-color:#bcb7ac;transform:translateY(-2px);box-shadow:0 14px 32px #19191612}.module-card:hover:after{width:100%}.module-art{background:#e7e3da;border-bottom:1px solid #dcd9d0;height:188px;position:relative;overflow:hidden}.module-art:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff26}.module-art img{object-fit:cover;filter:saturate(.86)contrast(1.02);width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.75,.2,1),filter .25s;display:block}.module-card:hover .module-art img{filter:saturate()contrast(1.03);transform:scale(1.035)}.module-number{color:#615d56;letter-spacing:.14em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbfaf7eb;min-width:28px;padding:5px 7px;font-size:9px;font-weight:750;position:absolute;top:12px;left:12px}.module-card-copy{min-height:122px;padding:20px 44px 20px 20px;position:relative}.module-name{font-size:18px;font-weight:720}.module-desc{color:#706c64;margin-top:7px;font-size:12px;line-height:1.6}.module-arrow{color:#9a958b;font-size:17px;position:absolute;bottom:20px;right:18px}.platform-shell{--glass-bg:#d9d1c4;--glass-bg-deep:#a99c8a;--glass-text:#1d1c18;--glass-muted:#1d1c189e;--glass-surface:#fffcf59e;--glass-surface-strong:#fffcf5d1;--glass-surface-soft:#fffcf561;--glass-border:#ffffffad;--glass-border-dark:#4c3e302b;--glass-accent:#a84934;--glass-accent-2:#2f6755;--glass-glow:#ffeeda75;--glass-shadow:0 24px 66px #402f232e, 0 2px 8px #402f2312;--glass-shadow-raised:0 30px 74px #402f2340, 0 12px 24px #402f231a;--glass-blur:24px;--glass-ambient-opacity:.72;isolation:isolate;min-height:100vh;color:var(--glass-text);background:radial-gradient(circle at 13% 3%, var(--glass-glow), transparent 31%), radial-gradient(circle at 92% 14%, color-mix(in srgb, var(--glass-accent) 20%, transparent), transparent 27%), linear-gradient(142deg, var(--glass-bg), var(--glass-bg-deep));transition:color .5s,background .65s;position:relative}.platform-shell[data-glass-theme=smoke]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--glass-bg:#101817;--glass-bg-deep:#060b0b;--glass-text:#f2eee5;--glass-muted:#f2eee599;--glass-surface:#121c1ba3;--glass-surface-strong:#182523db;--glass-surface-soft:#ffffff13;--glass-border:#fff3;--glass-border-dark:#00000047;--glass-accent:#d66f57;--glass-accent-2:#77bda1;--glass-glow:#4f9d8138;--glass-shadow:0 28px 80px #00000075, 0 2px 8px #00000052;--glass-shadow-raised:0 38px 96px #0000008f, 0 16px 34px #00000052;--glass-blur:30px;--glass-ambient-opacity:.58}.platform-shell[data-glass-theme=ice]{--glass-bg:#cbd9de;--glass-bg-deep:#98abb3;--glass-text:#152026;--glass-muted:#15202699;--glass-surface:#f2fafc85;--glass-surface-strong:#f8fdfec2;--glass-surface-soft:#f8fdfe4f;--glass-border:#ffffffc7;--glass-border-dark:#2a495324;--glass-accent:#be583f;--glass-accent-2:#26728a;--glass-glow:#d6f6ffa1;--glass-shadow:0 25px 72px #2b4b5730, 0 2px 8px #2b4b5714;--glass-shadow-raised:0 34px 88px #2b4b5742, 0 14px 28px #2b4b571c;--glass-blur:20px;--glass-ambient-opacity:.64}.platform-shell[data-glass-theme=white]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--glass-bg:#fff;--glass-bg-deep:#fff;--glass-text:#1d1d1f;--glass-muted:#1d1d1f99;--glass-surface:#ffffffeb;--glass-surface-strong:#fffffffa;--glass-surface-soft:#f7f8fae0;--glass-border:#e0e2e6db;--glass-border-dark:#1d1d1f14;--glass-accent:#b64f3a;--glass-accent-2:#4f7794;--glass-glow:#fffffff2;--glass-shadow:0 10px 34px #222b3711, 0 1px 2px #222b3709;--glass-shadow-raised:0 24px 58px #222b371c, 0 6px 16px #222b370d;--glass-blur:28px;--glass-ambient-opacity:.38;background:#fff}.platform-shell:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 8% 18%, color-mix(in srgb, var(--glass-accent) 17%, transparent), transparent 34%), radial-gradient(ellipse at 92% 72%, color-mix(in srgb, var(--glass-accent-2) 18%, transparent), transparent 36%), radial-gradient(ellipse at 50% 28%, #ffffff57, transparent 42%);opacity:var(--glass-ambient-opacity);filter:blur(10px);transition:opacity .5s,background .65s;position:fixed;inset:0;transform:scale(1.08)}.platform-shell[data-glass-theme=white]:before{filter:blur(18px);background:radial-gradient(at 82% 10%,#d2e6f46b,#0000 31%),radial-gradient(at 14% 88%,#e5ebf247,#0000 34%)}.portal-page{color:var(--glass-text)!important;background:0 0!important}.glass-surface{box-shadow:inset 0 1px 0 #ffffff52, var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.24);border-color:var(--glass-border)!important;background:radial-gradient(circle at var(--light-x,20%) var(--light-y,8%), #ffffff4f, transparent 30%), var(--glass-surface)!important}.platform-topbar.glass-surface{color:var(--glass-text);box-shadow:inset 0 1px #ffffff47,0 12px 38px #231c161a;border-bottom:1px solid var(--glass-border)!important}.platform-shell .platform-topbar>button{color:var(--glass-text)!important}.platform-shell .platform-topbar>button:first-child{align-items:center;gap:6px;display:inline-flex}.platform-shell .platform-nav-btn{color:var(--glass-muted)!important}.platform-shell .platform-nav-btn[data-active=true]{color:var(--glass-text)!important;border-bottom-color:var(--glass-accent)!important}.platform-shell .platform-actions>span{color:var(--glass-muted)!important}.platform-shell .platform-actions>button{box-shadow:inset 0 1px #fff3;color:var(--glass-text)!important;border-color:var(--glass-border)!important;background:var(--glass-surface-soft)!important}.platform-shell .platform-actions>button:first-of-type{color:#fff!important;background:var(--glass-accent)!important;border-color:#0000!important}.portal-page .portal-hero{border-color:var(--glass-border-dark)}.portal-page .portal-hero p:last-child,.portal-page .portal-date,.portal-page .module-section-head>p{color:var(--glass-muted)}.portal-page .section-kicker{color:var(--glass-accent)}.portal-page .module-card{color:var(--glass-text);transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(0);transform-style:preserve-3d;border-radius:20px;transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s,border-color .3s,background .5s;overflow:hidden}.portal-page .module-card:after{background:var(--glass-accent)}.portal-page .module-card-copy{background:color-mix(in srgb, var(--glass-surface-strong) 84%, transparent);border-top:1px solid var(--glass-border)}.portal-page .module-desc,.portal-page .module-arrow{color:var(--glass-muted)}.portal-page .module-number{color:var(--glass-text);border:1px solid var(--glass-border);background:var(--glass-surface-strong);border-radius:9px;box-shadow:inset 0 1px #ffffff40}.platform-shell[data-glass-theme=smoke] .module-art img{filter:saturate(.65)contrast(1.08)brightness(.7)}.platform-shell[data-glass-theme=white] .portal-page{background:#fff!important;padding-top:26px!important}.platform-shell[data-glass-theme=white] .platform-topbar.glass-surface{box-shadow:0 1px #1d1d1f11;background:#fffffff0!important}.platform-shell[data-glass-theme=white] .portal-hero{background:radial-gradient(circle at 86% 18%,#d8eaf74d,#0000 29%),linear-gradient(145deg,#fff,#fbfcfe);border:1px solid #fffffff0;border-radius:32px;grid-template-columns:minmax(0,820px);align-content:center;min-height:350px;margin-bottom:44px;padding:72px clamp(34px,7vw,100px);display:grid;position:relative;overflow:hidden;box-shadow:0 18px 54px #26303d0f,inset 0 0 0 1px #1d1d1f06}.platform-shell[data-glass-theme=white] .portal-hero:after{content:"";aspect-ratio:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none;border:clamp(24px,4vw,48px) solid #eaeef3ad;border-radius:50%;width:clamp(180px,27vw,360px);position:absolute;top:50%;right:clamp(-70px,2vw,30px);transform:translateY(-50%);box-shadow:0 0 0 1px #d6dee65c,0 28px 70px #45637b17,inset 0 0 48px #78abcd13}.platform-shell[data-glass-theme=white] .portal-hero>div:first-child{z-index:1;position:relative}.platform-shell[data-glass-theme=white] .portal-hero h2{letter-spacing:-.055em;max-width:760px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,sans-serif;font-size:clamp(44px,5.3vw,72px);font-weight:690;line-height:1.04}.platform-shell[data-glass-theme=white] .portal-hero p:last-child{margin-top:20px;font-size:16px}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student{min-height:220px;margin-bottom:26px;padding:42px clamp(30px,5vw,68px)}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student h2{font-size:clamp(38px,4.2vw,56px)}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student:after{border-width:clamp(20px,3vw,34px);width:clamp(150px,21vw,260px)}.platform-shell[data-glass-theme=white] .portal-date{display:none}.platform-shell[data-glass-theme=white] .module-section-head{margin:0 2px 22px}.platform-shell[data-glass-theme=white] .module-section-head h3{letter-spacing:-.035em;font-size:clamp(24px,2.4vw,34px)}.platform-shell[data-glass-theme=white] .module-grid{gap:18px}.platform-shell[data-glass-theme=white] .module-card{min-height:334px;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:none;border-radius:26px;background:#fff!important;border-color:#1d1d1f13!important}.platform-shell[data-glass-theme=white] .module-art{border-bottom-color:#1d1d1f0f;height:202px}.platform-shell[data-glass-theme=white] .module-card-copy{background:#fff;border-top-color:#1d1d1f0e;min-height:132px;padding:22px 48px 22px 22px}.platform-shell[data-glass-theme=white] .module-name{letter-spacing:-.02em;font-size:20px}.platform-shell[data-glass-theme=white] .module-desc{margin-top:8px;font-size:12px}.appearance-menu{flex:none;position:relative}.appearance-menu>summary{border:1px solid var(--glass-border);min-height:32px;color:var(--glass-muted);background:var(--glass-surface-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:650;list-style:none;display:inline-flex;box-shadow:inset 0 1px #ffffff38}.appearance-menu>summary::-webkit-details-marker{display:none}.appearance-menu[open]>summary{color:var(--glass-text);background:var(--glass-surface-strong)}.appearance-popover{z-index:30;width:min(330px,100vw - 24px);color:var(--glass-text);border:1px solid var(--glass-border);background:var(--glass-surface-strong);box-shadow:inset 0 1px 0 #ffffff52, var(--glass-shadow-raised);-webkit-backdrop-filter:blur(calc(var(--glass-blur) + 8px)) saturate(1.3);border-radius:20px;padding:16px;position:absolute;top:calc(100% + 12px);right:0}.appearance-heading{justify-content:space-between;align-items:start;gap:12px;padding:2px 2px 12px;display:flex}.appearance-heading b{font-size:14px;display:block}.appearance-heading span:not(.appearance-current){color:var(--glass-muted);margin-top:4px;font-size:10px;display:block}.appearance-current{color:var(--glass-accent);font:600 24px/1 Georgia,serif}.appearance-options{gap:7px;display:grid}.appearance-options button{text-align:left;min-height:54px;color:var(--glass-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:13px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 11px;display:grid}.appearance-options button:hover{background:var(--glass-surface-soft)}.appearance-options button[data-selected=true]{color:var(--glass-text);border-color:var(--glass-border);background:var(--glass-surface-soft);box-shadow:inset 0 1px #ffffff38}.appearance-options button b,.appearance-options button small{display:block}.appearance-options button b{font-size:12px}.appearance-options button small{color:var(--glass-muted);margin-top:3px;font-size:9px}.appearance-swatch{border:1px solid #ffffff7a;border-radius:10px;width:32px;height:32px;box-shadow:inset 0 1px #ffffff61,0 5px 12px #0000001f}[data-theme-option=warm] .appearance-swatch{background:linear-gradient(135deg,#f1e9dc,#a84934)}[data-theme-option=smoke] .appearance-swatch{background:linear-gradient(135deg,#182624,#77bda1)}[data-theme-option=ice] .appearance-swatch{background:linear-gradient(135deg,#edf9fc,#26728a)}[data-theme-option=white] .appearance-swatch{background:linear-gradient(135deg,#fff 10%,#dfe5ec 72%,#9bb8cc)}.tactile-toggle{text-align:left;width:100%;color:var(--glass-text);border:0;border-top:1px solid var(--glass-border-dark);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:13px 3px 2px;display:flex}.tactile-toggle b,.tactile-toggle small{display:block}.tactile-toggle b{font-size:11px}.tactile-toggle small{color:var(--glass-muted);margin-top:4px;font-size:9px}.tactile-toggle i{background:var(--glass-accent-2);border-radius:999px;flex:none;width:42px;height:24px;padding:3px;transition:background .22s}.tactile-toggle i:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .24s cubic-bezier(.2,.9,.2,1);display:block;transform:translate(18px);box-shadow:0 3px 8px #0000002e}.tactile-toggle[aria-pressed=false] i{background:color-mix(in srgb, var(--glass-text) 18%, transparent)}.tactile-toggle[aria-pressed=false] i:after{transform:translate(0)}@media (hover:hover){.platform-shell[data-tactile=on] .portal-page .tactile-card:hover{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-6px);border-color:color-mix(in srgb, var(--glass-border) 72%, var(--glass-accent));box-shadow:inset 0 1px 0 #ffffff61, var(--glass-shadow-raised)}}.platform-shell[data-tactile=on] button:not(:disabled):active{transform:translateY(2px)scale(.985)}.platform-shell[data-tactile=off] .tactile-card,.platform-shell[data-tactile=off] button{transition-duration:50ms!important}.platform-shell[data-tactile=off] .tactile-card{transform:none!important}.rhythm-advanced-settings{background:#f7f5f0;border:1px solid #d8d4cb;border-radius:12px;margin:0 0 14px;overflow:hidden;box-shadow:0 2px 8px #342d2509}.rhythm-advanced-settings>.rhythm-advanced-settings-trigger{color:#34312d;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:11px;min-height:62px;padding:8px 12px;list-style:none;transition:background-color .18s,box-shadow .18s;display:flex}.rhythm-advanced-settings>.rhythm-advanced-settings-trigger::-webkit-details-marker{display:none}.rhythm-exact-constraints>.rhythm-exact-constraints-trigger::-webkit-details-marker{display:none}.rhythm-advanced-settings>.rhythm-advanced-settings-trigger:hover{background:#f0ede6}.rhythm-advanced-settings>.rhythm-advanced-settings-trigger:focus-visible,.rhythm-exact-constraints>.rhythm-exact-constraints-trigger:focus-visible{outline-offset:-3px;outline:3px solid #8f5c4d38}.rhythm-advanced-trigger-icon,.rhythm-exact-trigger-icon{color:#8f5c4d;background:#ebe1da;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;display:grid}.rhythm-advanced-trigger-copy{gap:3px;min-width:0;line-height:1.2;display:grid}.rhythm-advanced-trigger-copy strong{font-size:14px;font-weight:800}.rhythm-advanced-trigger-copy small{color:#777168;font-size:11px;font-weight:500;line-height:1.35}.rhythm-advanced-trigger-action{color:#777168;white-space:nowrap;flex:none;align-items:center;gap:5px;margin-left:auto;font-size:11px;font-weight:700;display:flex}.rhythm-trigger-open{display:none}.rhythm-advanced-chevron,.rhythm-exact-chevron{flex:none;transition:transform .2s}.rhythm-advanced-settings[open]>.rhythm-advanced-settings-trigger .rhythm-trigger-closed{display:none}.rhythm-advanced-settings[open]>.rhythm-advanced-settings-trigger .rhythm-trigger-open{display:inline}.rhythm-advanced-settings[open]>.rhythm-advanced-settings-trigger .rhythm-advanced-chevron,.rhythm-exact-constraints[open]>.rhythm-exact-constraints-trigger .rhythm-exact-chevron{transform:rotate(180deg)}.rhythm-advanced-settings-body{background:#fbfaf7;border-top:1px solid #dcd9d0;padding:14px 12px 12px}.rhythm-exact-constraints{background:#fff;border:1px solid #ded8cd;border-radius:11px;margin-top:14px;overflow:hidden}.rhythm-exact-constraints>.rhythm-exact-constraints-trigger{color:#34312d;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;min-height:58px;padding:8px 10px;list-style:none;transition:background-color .18s;display:flex}.rhythm-exact-constraints>.rhythm-exact-constraints-trigger:hover{background:#faf6f2}.rhythm-exact-trigger-icon{color:#746b60;background:#f0ede7;border-radius:9px;width:34px;height:34px}.rhythm-constraint-status{color:#817a70;white-space:nowrap;background:#f1eee8;border-radius:999px;flex:none;margin-left:auto;padding:4px 8px;font-size:10px;font-weight:800}.rhythm-constraint-status.is-active{color:#7f4939;background:#f2dfd7}.rhythm-exact-chevron{color:#817a70}.rhythm-exact-constraints-body{background:#fffdf9;border-top:1px solid #eee9e0;padding:2px 10px 12px}.rhythm-constraint-error{color:#743d31;background:#fff3ef;border:1px solid #d9a294;border-radius:10px;gap:4px;margin:-4px 0 14px;padding:10px 12px;font-size:11px;line-height:1.45;display:grid}.rhythm-constraint-error strong{font-size:12px}@media (width<=520px){.rhythm-advanced-settings>.rhythm-advanced-settings-trigger{gap:8px;min-height:58px;padding:7px 9px}.rhythm-advanced-trigger-icon{width:34px;height:34px}.rhythm-advanced-trigger-action>span{display:none!important}.rhythm-exact-constraints>.rhythm-exact-constraints-trigger{gap:7px;padding:7px 8px}.rhythm-exact-trigger-icon{width:31px;height:31px}.rhythm-constraint-status{padding:3px 6px}}.dictation-workbench,.sight-singing-workbench{color:#191916;max-width:1160px;margin:0 auto;padding:38px 24px 72px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.dictation-workbench .dictation-header,.sight-singing-header{border-bottom:1px solid #dcd9d0;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;padding-bottom:22px;display:flex}.dictation-workbench .dictation-header h2,.sight-singing-header h2{letter-spacing:-.025em;margin:0;font:500 36px/1.15 Iowan Old Style,Songti SC,Georgia,serif}.dictation-workbench .dictation-header p:last-child,.sight-singing-header p:last-child{color:#706c64;max-width:560px;margin:9px 0 0;font-size:13px;line-height:1.65}.sight-mode-tabs{background:#ebe9e2;border:1px solid #dcd9d0;gap:2px;padding:3px;display:inline-flex}.sight-voice-row{align-items:center;gap:8px;margin:12px 0 18px;display:flex}.dictation-workbench .dictation-score-paper,.sight-score-paper{cursor:pointer;background:#fffefb;border:1px solid #dcd9d0;border-radius:4px;width:100%;position:relative;overflow:hidden;box-shadow:0 10px 30px #1919160d}.dictation-workbench .dictation-control-strip,.sight-control-strip{align-items:center;gap:12px;min-height:38px;margin:16px 0;display:flex}.sight-score-viewport{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b7b1a6 transparent;border-radius:4px;width:100%;overflow-x:auto}.sight-score-viewport .sight-score-paper{min-width:920px;max-width:none}.phrase-practice-bar{background:#fbfaf7;border:1px solid #dcd9d0;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;margin:14px 0 10px;padding:13px 15px;display:flex}.phrase-practice-bar.is-active{background:#b334310b;border-color:#b3343157}.phrase-practice-bar>div:first-child{grid-template-columns:auto 1fr;align-items:baseline;gap:3px 10px;min-width:0;display:grid}.phrase-practice-bar .section-kicker{grid-column:1/-1}.phrase-practice-bar strong{white-space:nowrap;font:600 16px/1.2 Iowan Old Style,Songti SC,Georgia,serif}.phrase-practice-bar strong+span{color:#706c64;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.45;overflow:hidden}.phrase-practice-actions{flex:none;gap:7px;display:flex}.phrase-practice-actions button{color:#4b4944;cursor:pointer;background:#fff;border:1px solid #cbc6bc;border-radius:999px;min-height:34px;padding:6px 11px}.phrase-practice-actions button.primary{color:#fff;background:#a73331;border-color:#a73331}.phrase-practice-actions button:disabled{cursor:default;opacity:.48}.phrase-measure-hitbox{z-index:3;cursor:crosshair;background:0 0;border:0;border-radius:0;outline:none;padding:0;position:absolute}.phrase-measure-hitbox:hover{background:#a7333113}.phrase-measure-hitbox.is-selected{box-shadow:none;background:#a733311b}.phrase-measure-hitbox span{color:#fff;text-align:center;background:#a73331;border-radius:999px;min-width:18px;padding:1px 5px;font:700 10px/16px system-ui,sans-serif;position:absolute;top:-19px;left:4px}.phrase-measure-hitbox:focus-visible span{box-shadow:0 0 0 3px #a733312e}.sight-editor-panel{border-top:1px solid #dcd9d0;margin-top:22px;padding-top:20px}.exam-generator-panel{background:#fbfaf7;border:1px solid #d7d3c9;border-left:3px solid #a6432f;grid-template-columns:minmax(230px,.8fr) minmax(420px,1.4fr) auto;align-items:center;gap:18px;margin:0 0 16px;padding:16px 18px 24px;display:grid;position:relative}.exam-generator-copy{flex-direction:column;gap:3px;display:flex}.exam-generator-copy .section-kicker{margin:0 0 2px;font-size:9px}.exam-generator-copy strong{font-size:15px}.exam-generator-copy>span:last-child{color:#706c64;font-size:11px}.exam-generator-select{color:#706c64;align-items:center;gap:8px;font-size:11px;display:flex}.exam-generator-select select{color:#191916;background:#fffefb;border:1px solid #c8c3b8;border-radius:5px;padding:8px 28px 8px 10px;font-size:12px}.curated-bank-controls{flex-direction:column;gap:7px;min-width:0;display:flex}.curated-filter-row{gap:10px;display:flex}.curated-filter-row label,.exam-generator-select{color:#706c64;align-items:center;gap:6px;font-size:10px;display:flex}.curated-filter-row select{color:#31302c;background:#fffefb;border:1px solid #d2cec4;border-radius:4px;padding:5px 22px 5px 7px;font-size:11px}.exam-generator-select select{min-width:0;max-width:330px}.exam-generator-select em{color:#9a958b;white-space:nowrap;font-size:9px;font-style:normal}.exam-generator-actions{gap:8px;display:flex}.exam-generator-source a{color:var(--copper);text-underline-offset:3px}.exam-generator-source{white-space:nowrap;color:#9a958b;align-items:center;gap:5px;font-size:9px;display:flex;position:absolute;bottom:7px;left:18px;right:18px;overflow:hidden}.exam-generator-source>span{text-overflow:ellipsis;overflow:hidden}.exam-generator-source a{flex:none}.accompaniment-preview{background:radial-gradient(circle at 12% 0,#b7cfef38,#0000 32%),linear-gradient(135deg,#fff 0%,#fafbfd 100%);border:1px solid #ddd9cf;border-radius:10px;grid-template-columns:minmax(220px,1fr) auto minmax(180px,.55fr);align-items:center;gap:18px;margin:-4px 0 16px;padding:17px 18px 15px;display:grid;box-shadow:0 14px 40px #212e3f0f}.accompaniment-preview-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.accompaniment-preview-copy strong{color:#20242b;font:500 19px/1.2 Iowan Old Style,Songti SC,Georgia,serif}.accompaniment-preview-copy>span:last-child{color:#777b82;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.accompaniment-preview-actions{gap:8px;display:flex}.accompaniment-action{color:#303740;cursor:pointer;min-height:38px;font:inherit;background:#ffffffdb;border:1px solid #ccd2da;border-radius:999px;padding:0 13px;font-size:12px;font-weight:600}.accompaniment-action-primary{color:#fff;background:#263544;border-color:#263544}.accompaniment-action:disabled{cursor:not-allowed;opacity:.48}.accompaniment-volume{color:#666c75;white-space:nowrap;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;font-size:10px;display:grid}.accompaniment-volume input{accent-color:#52697f;width:100%}.accompaniment-review-note{color:#92969d;border-top:1px solid #78808a29;grid-column:1/-1;justify-content:space-between;padding-top:10px;font-size:9px;display:flex}.accompaniment-source-review{color:#666c75;border-top:1px solid #78808a29;grid-column:1/-1;font-size:10px}.accompaniment-source-review summary{color:#4d6277;cursor:pointer;letter-spacing:.01em;width:max-content;padding-top:10px;font-weight:650}.accompaniment-source-review ol{color:#8b6e65;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 24px;margin:10px 0;padding-left:20px;line-height:1.55;display:grid}.accompaniment-source-image{background:#eceff2;border:1px solid #d7d9dd;border-radius:6px;max-height:560px;margin-top:10px;overflow:auto}.accompaniment-source-image img{width:100%;min-width:980px;height:auto;display:block}.accompaniment-review-editor{background:#fff;border:1px solid #d8d8d4;border-radius:10px;margin:0 0 18px;padding:18px;box-shadow:0 16px 44px #1f2a360f}.accompaniment-review-editor__head{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.accompaniment-review-editor__head>div{flex-direction:column;gap:3px;display:flex}.accompaniment-review-editor__head strong{color:#20242b;font:500 21px/1.2 Iowan Old Style,Songti SC,Georgia,serif}.accompaniment-review-editor__head>div>span:last-child,.accompaniment-review-editor__head>span{color:#858a91;font-size:10px}.accompaniment-score-scroll{background:#fffefb;border:1px solid #dcdedc;border-radius:7px;max-height:720px;overflow:auto}.accompaniment-score-canvas{cursor:crosshair;width:920px;min-width:920px}.accompaniment-score-canvas svg{display:block}.accompaniment-note-editor{background:#fafaf8;border:1px solid #e0e1de;border-radius:8px;grid-template-columns:minmax(145px,.75fr) minmax(145px,.7fr) minmax(135px,.65fr) minmax(160px,.75fr) minmax(220px,1.35fr);align-items:end;gap:12px;margin-top:14px;padding:13px 14px;display:grid}.accompaniment-note-editor label,.accompaniment-note-editor__selection{flex-direction:column;gap:5px;min-width:0;display:flex}.accompaniment-note-editor label>span,.accompaniment-note-editor__selection>span{color:#858079;letter-spacing:.04em;font-size:9px}.accompaniment-note-editor__selection strong{color:#30353b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.accompaniment-note-editor input,.accompaniment-note-editor select{color:#252a30;min-height:36px;font:inherit;background:#fff;border:1px solid #ccd0d3;border-radius:5px;padding:6px 9px;font-size:12px}.accompaniment-pitch-field{grid-template-columns:34px 1fr 34px;display:grid}.accompaniment-pitch-field input{text-align:center;border-radius:0;min-width:0}.accompaniment-pitch-field button{color:#3d454d;cursor:pointer;background:#f5f6f6;border:1px solid #ccd0d3}.accompaniment-pitch-field button:first-child{border-radius:5px 0 0 5px}.accompaniment-pitch-field button:last-child{border-radius:0 5px 5px 0}.accompaniment-reason{grid-column:span 1}.accompaniment-note-editor__actions{grid-column:1/-1;gap:8px;display:flex}.accompaniment-note-editor__actions button{color:#303840;cursor:pointer;min-height:36px;font:inherit;background:#fff;border:1px solid #c8cdd1;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:11px;font-weight:600;display:inline-flex}.accompaniment-note-editor__actions button:first-child{color:#fff;background:#35495c;border-color:#35495c}.accompaniment-note-editor__actions button.danger{color:#a34838;margin-left:auto}.accompaniment-note-editor__actions button.armed{color:#fff;background:#a34838;border-color:#a34838}.accompaniment-note-editor__actions button:disabled{cursor:not-allowed;opacity:.5}.accompaniment-note-editor__empty{color:#94989d;text-align:center;grid-column:1/-1;padding:8px 0;font-size:11px}.accompaniment-note-editor__message{color:#755e55;margin-top:9px;font-size:11px}@media (width<=980px){.auth-page{grid-template-columns:1fr}.auth-editorial{display:none}.auth-form-side{min-height:100vh;padding:40px 24px}.auth-panel-mobile-brand{color:#191916;margin-bottom:48px;display:flex}.auth-panel-mobile-brand .brand-mark{border-color:#c8c3b8}.auth-panel-mobile-brand .brand-caption{color:#88837a}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-topbar{flex-wrap:wrap}.platform-primary-nav{scroll-snap-type:x proximity;order:3;width:100%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.platform-nav-btn{scroll-snap-align:start}}@media (width<=640px){.platform-topbar{gap:8px!important;padding:6px 14px 0!important}.platform-topbar>button:first-child{min-height:36px;padding:0!important}.platform-actions{gap:4px;margin-left:auto}.platform-actions button{min-height:34px;padding-left:7px!important;padding-right:7px!important}.platform-brand-wordmark{display:none}.platform-brand-note{font-size:22px}.appearance-menu>summary{justify-content:center;width:34px;padding:0}.appearance-menu>summary span{display:none}.appearance-popover{position:fixed;top:52px;right:12px}.platform-primary-nav{width:calc(100% + 28px);margin:0 -14px;padding:0 14px 6px}.platform-nav-btn{min-height:40px;border-bottom:0!important;border-radius:7px!important;align-self:auto!important;padding:0 13px!important}.platform-nav-btn[data-active=true]{box-shadow:inset 0 -2px 0 var(--glass-accent);color:var(--glass-text)!important;background:var(--glass-surface-strong)!important}.training-workbench-header{flex-direction:column;align-items:start;gap:16px;padding-bottom:18px}.training-workbench-header h1{font-size:32px}.training-workbench-actions{justify-content:stretch;width:100%}.training-workbench-actions>*{flex:auto}.module-grid{grid-template-columns:1fr}.student-dashboard-card,.student-assignment-card{border-radius:20px!important;padding:20px 17px!important}.student-dashboard-heading{margin-bottom:14px}.student-dashboard-heading h3{font-size:20px}.student-assignment-row{grid-template-columns:38px minmax(0,1fr) auto;gap:10px}.student-assignment-meta{display:none}.student-assignment-row>button{min-width:74px;padding:8px 10px!important}.student-today-layout{grid-template-columns:1fr;gap:16px}.student-today-focus{gap:14px}.student-today-count{min-width:78px;padding-right:14px}.student-today-count strong{font-size:40px}.student-stat{min-height:82px}.student-stat strong{font-size:20px}.student-achievement-head{flex-wrap:wrap;align-items:flex-start;gap:9px}.student-achievement-title{flex:1}.student-achievement-icons{flex-basis:100%;order:3;padding-left:41px}.student-achievement-next{margin-left:41px}.portal-hero{grid-template-columns:1fr}.portal-date{display:none}.platform-shell[data-glass-theme=white] .portal-page{padding-top:14px!important}.platform-shell[data-glass-theme=white] .portal-hero{border-radius:26px;min-height:330px;margin:0 0 32px;padding:46px 24px 138px}.platform-shell[data-glass-theme=white] .portal-hero h2{font-size:clamp(38px,12vw,50px)}.platform-shell[data-glass-theme=white] .portal-hero p:last-child{max-width:260px;font-size:14px}.platform-shell[data-glass-theme=white] .portal-hero:after{border-width:25px;width:180px;top:auto;bottom:-78px;right:-34px;transform:none}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student{min-height:190px;margin-bottom:20px;padding:28px 22px 78px}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student h2{font-size:34px}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student p:last-child{margin-top:12px;font-size:13px}.platform-shell[data-glass-theme=white] .portal-hero.portal-hero-student:after{border-width:20px;width:130px;bottom:-74px;right:-28px}.platform-shell[data-glass-theme=white] .module-section-head{flex-direction:column;align-items:start;gap:8px}.platform-actions>span{display:none}.sight-singing-workbench{padding:26px 14px 56px;overflow-x:hidden}.sight-singing-header{flex-direction:column;align-items:start}.sight-mode-tabs{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.sight-mode-tabs button{min-height:42px}.sight-voice-row{grid-template-columns:auto 1fr 1.3fr;align-items:center;gap:9px;margin-bottom:16px;display:grid}.sight-voice-row>button{min-height:44px}.sight-voice-divider{display:none!important}.sight-tempo-label{grid-column:1}.sight-tempo-slider{grid-column:2;width:100%!important}.sight-tempo-value{text-align:right;grid-column:3}.sight-library-toggle{grid-column:1/-1;justify-content:center;width:100%;min-height:42px;border-radius:7px!important;margin-left:0!important}.exam-generator-panel{grid-template-columns:1fr;gap:14px;padding:18px 16px 34px}.curated-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.curated-filter-row:first-child{grid-template-columns:1fr}.curated-filter-row label,.exam-generator-select{flex-direction:column;align-items:stretch;gap:5px}.curated-filter-row select,.exam-generator-select select{width:100%;max-width:none;min-height:42px;font-size:13px}.exam-generator-select em{align-self:flex-end;margin-top:-2px}.exam-generator-actions{grid-template-columns:1fr 1fr;display:grid}.exam-generator-actions button{min-height:44px}.exam-generator-source{font-size:10px}.accompaniment-preview{grid-template-columns:1fr;gap:13px;padding:16px}.accompaniment-preview-actions{grid-template-columns:1fr 1fr;display:grid}.accompaniment-action{min-height:44px}.accompaniment-review-note{flex-direction:column;gap:4px;line-height:1.5}.accompaniment-source-review ol{grid-template-columns:1fr}.accompaniment-review-editor{padding:14px}.accompaniment-review-editor__head{flex-direction:column;align-items:start;gap:8px}.accompaniment-note-editor{grid-template-columns:1fr}.accompaniment-note-editor__actions{grid-template-columns:1fr;display:grid}.accompaniment-note-editor__actions button{justify-content:center;min-height:42px}.accompaniment-note-editor__actions button.danger{margin-left:0}.sight-score-viewport{width:calc(100% + 28px);margin:0 -14px;padding:0 14px 8px}.sight-score-viewport:after{content:"左右滑动查看完整乐谱";color:#8b867c;letter-spacing:.04em;width:max-content;margin-top:7px;font-size:10px;display:block;position:sticky;left:14px}.phrase-practice-bar{flex-direction:column;align-items:stretch;gap:10px}.phrase-practice-bar strong+span{white-space:normal}.phrase-practice-actions{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.phrase-practice-actions button{min-height:42px}.sight-control-strip{z-index:6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfaf7f5;border:1px solid #d4cfc4;border-radius:10px;flex-wrap:wrap;padding:10px;position:sticky;bottom:10px;box-shadow:0 14px 30px #19191624}.sight-control-strip>button{flex:auto;min-height:44px}.rhythm-workbench-page{padding:26px 14px 56px!important}}svg{max-width:100%}.platform-two-col{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}@media (width<=760px){.platform-two-col{grid-template-columns:1fr}}.chordScope{color:#17201a;-webkit-font-smoothing:antialiased;box-sizing:border-box;background:#f4f2ed;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.chordScope *{box-sizing:border-box}.chordScope button,.chordScope input,.chordScope select{font:inherit}.chordScope button{color:#17201a;cursor:pointer;background:#fffdf8;border:1px solid #cfc8bc;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;transition:border-color .16s,background .16s,transform .16s;display:inline-flex}.chordScope button:hover:not(:disabled){background:#f7fbf5;border-color:#3f7660}.chordScope button:active:not(:disabled){transform:translateY(1px)}.chordScope button:disabled{cursor:not-allowed;opacity:.48}.appShell{background:#f1f0eb;justify-content:center;align-items:stretch;min-height:100vh;padding:38px 24px 72px;display:flex}.workspace{grid-auto-rows:auto;gap:16px;width:min(1160px,100%);display:grid}.topBar,.sessionTabs,.controlBand,.staffPanel,.answerPanel,.examAnswerPanel,.mixPanel{background:#fffdf8;border:1px solid #ded7cb}.topBar{background:0 0;border:0;border-bottom:1px solid #dcd9d0;border-radius:0;justify-content:space-between;align-items:end;gap:24px;min-height:0;margin-bottom:8px;padding:0 0 22px;display:flex}.topBarActions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:inline-flex}.logoutButton{color:#6b3a31;border-color:#d8c7bf;min-height:42px}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brandIcon{color:#f8f4ec;background:#1f3d34;border-radius:8px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.brand h1{letter-spacing:-.025em;margin:0;font:500 36px/1.15 Iowan Old Style,Songti SC,Georgia,serif}.brand p{color:#6b6458;margin:9px 0 0;font-size:13px;line-height:1.65}.brand .chordKicker{color:#a6432f;letter-spacing:.19em;text-transform:uppercase;margin:0 0 18px;font-size:11px;font-weight:750;line-height:1}.modeTabs,.sessionTabs,.optionTabs,.accidentalTabs{background:#eee8dd;border-radius:8px;grid-auto-flow:column;gap:4px;padding:4px;display:inline-grid}.modeTabs button,.sessionTabs button,.optionTabs button,.accidentalTabs button{background:0 0;border:0;border-radius:6px;min-width:44px;min-height:40px;padding:0 12px;font-size:17px}.modeTabs button.active,.sessionTabs button.active,.optionTabs button.active,.accidentalTabs button.active{color:#1f3d34;background:#fffdf8;box-shadow:0 1px 4px #352a1921}.optionRow{flex-wrap:wrap;gap:10px;display:flex}.mockExamRow{background:#fffdf8;border:1px solid #ded7cb;border-radius:8px;align-items:center;padding:10px 12px}.mockExamToggle{color:#3a352c;cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.mockExamField{color:#6b6357;align-items:center;gap:4px;font-size:12px;display:flex}.mockExamField input,.mockExamField select{background:#fff;border:1px solid #ded7cb;border-radius:6px;min-height:30px;padding:2px 6px;font-size:13px}.mockExamField input{text-align:center;font-variant-numeric:tabular-nums;width:52px}.mixPanel{border-radius:8px;grid-template-columns:140px minmax(0,1fr);display:grid;overflow:hidden}.mixHeader{border-right:1px solid #e8e1d6;align-content:center;gap:4px;padding:12px 14px;display:grid}.mixHeader span{color:#7b7367;font-size:12px}.mixHeader strong{font-size:17px;line-height:1.2}.mixRows{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 12px;display:grid}.mixRow{color:#17201a;grid-template-columns:auto minmax(76px,1fr) 48px;align-items:center;gap:8px;min-width:0;display:grid}.mixRow>span{white-space:nowrap;font-size:13px}.mixSlider{accent-color:#1f3d34;width:100%;min-width:0}.mixNumber{color:#17201a;text-align:center;background:#fff;border:1px solid #cfc8bc;border-radius:6px;outline:none;width:48px;min-height:34px;padding:0 6px}.mixNumber:focus{border-color:#3f7660;box-shadow:0 0 0 3px #3f76601f}.sessionTabs{width:fit-content}.sessionTabs button{min-width:112px;min-height:34px;padding:0 12px}.speedRow{align-items:center;gap:10px;display:flex}.speedLabel{color:#5b4636;white-space:nowrap;font-size:13px}.speedRow input[type=range]{flex:1;max-width:240px}.controlBand{border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex;overflow-x:auto}.controlBand button{gap:8px;min-height:42px;padding:0 14px}.mockExamPhase{color:#6b6357;font-variant-numeric:tabular-nums;flex:1;min-width:0;font-size:13px}.mockClock{color:#1f3d34;font-variant-numeric:tabular-nums;text-align:center;background:#f2f6f3;border:1px solid #cfd8d2;border-radius:999px;flex-shrink:0;min-width:68px;padding:4px 10px;font-size:15px;font-weight:800}.mockClock.urgent{color:#c0392b;background:#fdeceb;border-color:#d9534f;animation:1s ease-out mockTick}@keyframes mockTick{0%{transform:scale(1.18)}40%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.mockClock.urgent{animation:none}}.mixToggle{cursor:pointer;color:#6b6357;background:0 0;border:0;align-items:center;gap:6px;padding:6px 2px;font-size:13px;font-weight:600;display:flex}.mixToggleCaret{color:#9a9186;transition:transform .15s;display:inline-block}.mixToggleCaret.open{transform:rotate(90deg)}.pitchPoolCard{background:#fffdf8c7;border:1px solid #ded7cb;border-radius:10px;overflow:hidden}.chordScope .pitchPoolToggle{background:0 0;border:0;border-radius:0;justify-content:flex-start;width:100%;min-height:48px;padding:0 13px}.pitchPoolToggleTitle{white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:750;display:inline-flex}.pitchPoolIcon{color:#315747;background:#edf2ed;border-radius:7px;justify-content:center;align-items:center;width:27px;height:27px;display:inline-flex}.pitchPoolSummary{text-overflow:ellipsis;white-space:nowrap;color:#766f64;min-width:0;margin-left:auto;font-size:12px;font-weight:550;overflow:hidden}.pitchPoolChevron{color:#91887a;flex:none;transition:transform .16s}.pitchPoolCard.open .pitchPoolChevron{transform:rotate(90deg)}.pitchPoolBody{background:#faf8f2b3;border-top:1px solid #ebe5db;gap:12px;padding:13px;display:grid}.pitchPoolPresets,.pitchPoolScope{flex-wrap:wrap;gap:7px;display:flex}.chordScope .pitchPoolPresets button,.chordScope .pitchPoolScope button{border-radius:999px;min-height:32px;padding:0 10px;font-size:12px}.pitchPoolScope{background:#eae6dd;border-radius:9px;width:fit-content;padding:3px}.chordScope .pitchPoolScope button{background:0 0;border:0;border-radius:7px}.chordScope .pitchPoolScope button.active{color:#1f3d34;background:#fffdf8;box-shadow:0 1px 4px #352a1921}.pitchPoolKeyboard{-webkit-user-select:none;user-select:none;width:min(100%,560px);height:118px;position:relative}.pitchPoolWhiteKeys{grid-template-columns:repeat(7,minmax(0,1fr));height:100%;display:grid}.chordScope .pitchPoolWhiteKeys button{color:#82796c;background:#fff;border:1px solid #cfc9bd;border-right-width:0;border-radius:0 0 6px 6px;align-items:flex-end;min-width:0;height:100%;min-height:0;padding:0;position:relative}.chordScope .pitchPoolWhiteKeys button:first-child{border-radius:6px 0 0 6px}.chordScope .pitchPoolWhiteKeys button:last-child{border-right-width:1px;border-radius:0 6px 6px 0}.chordScope .pitchPoolWhiteKeys button.selected{color:#214d3b;background:linear-gradient(#eef5ef 0%,#dceadf 100%)}.pitchPoolWhiteKeys span{padding-bottom:7px;font-size:11px;font-weight:750}.chordScope .pitchPoolBlackKey{z-index:2;color:#ffffffa6;background:linear-gradient(#222924 0%,#111512 100%);border:1px solid #151b18;border-radius:0 0 5px 5px;align-items:flex-end;width:8.6%;min-width:28px;height:70%;min-height:0;padding:0;position:absolute;top:0;transform:translate(-50%);box-shadow:0 3px 5px #1417143d}.chordScope .pitchPoolBlackKey.selected{color:#fff;background:linear-gradient(#41725f 0%,#28523f 100%);border-color:#4c8a70;box-shadow:0 3px 7px #1f3d3447}.pitchPoolBlackKey span{padding-bottom:6px;font-size:9px;font-weight:750}.pitchPoolFoot{color:#837a6d;justify-content:space-between;align-items:flex-start;gap:12px;font-size:11px;line-height:1.5;display:flex}.pitchPoolFoot strong{color:#a34f3b;text-align:right;font-weight:700}.pitchPoolError{color:#9b3f2d;background:#fff5f1;border:1px solid #e2b5a9;border-radius:8px;margin-top:-8px;padding:9px 12px;font-size:12px;line-height:1.5}.assignmentPitchPool{color:#315747;background:#edf2ed;border-radius:999px;width:fit-content;padding:6px 10px;font-size:12px;font-weight:650}.mixRow.unavailable{color:#9a9388}.mixRow.unavailable>span:after{content:" · 0";color:#b76a57;font-size:11px}.primaryButton{color:#fffdf8;background:#1f3d34;border-color:#1f3d34}.primaryButton:hover:not(:disabled){color:#fffdf8;background:#2c594b;border-color:#2c594b}.loginShell{align-items:center}.loginCard{background:#fffdf8;border:1px solid #ded7cb;border-radius:8px;gap:22px;width:min(420px,100%);padding:22px;display:grid;box-shadow:0 18px 60px #352a1914}.loginBrand h1{margin:0;font-size:22px;line-height:1.2}.loginBrand p{color:#6b6458;margin:4px 0 0;font-size:13px}.loginForm{gap:12px;display:grid}.loginForm label{color:#6b6458;gap:6px;font-size:13px;display:grid}.loginForm input{color:#17201a;background:#fff;border:1px solid #cfc8bc;border-radius:8px;outline:none;width:100%;min-height:42px;padding:0 12px}.loginForm input:focus{border-color:#3f7660;box-shadow:0 0 0 3px #3f76601f}.loginError{color:#b53a2d;background:#b53a2d14;border:1px solid #b53a2d42;border-radius:8px;align-items:center;min-height:34px;padding:7px 10px;font-size:13px;display:flex}.staffPanel{border-radius:8px;min-height:0;display:block;position:relative;overflow:visible}.staffScrollViewport{width:100%;overflow:visible}.staffSwipeHint{display:none}.staffToolbar{z-index:8;background:#fffdf8f0;border:1px solid #cfc8bcd1;border-radius:8px;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:7px;min-height:0;padding:5px;display:flex;position:absolute;top:10px;left:12px;box-shadow:0 8px 24px #352a191a}.accidentalTabs button{width:32px;min-height:32px;padding:0;font-size:17px}.iconOnly{width:44px;min-height:44px;padding:0}.iconOnly.active{color:#b53a2d;background:#fffdf8;border-color:#b53a2d;box-shadow:0 0 0 3px #b53a2d1a}.staffToolbarActions{justify-content:flex-start;align-items:center;gap:5px;min-width:0;display:flex}.chordAnswerControls,.intervalAnswerControls{align-items:center;gap:8px;min-width:0;display:inline-flex}.chordAnswerControls label,.intervalAnswerControls label{color:#6b6458;align-items:center;gap:5px;min-width:0;font-size:12px;display:inline-flex}.chordAnswerControls select{color:#17201a;background:#fffdf8;border:1px solid #cfc8bc;border-radius:6px;outline:none;min-height:34px;padding:0 24px 0 8px}.chordAnswerControls select:focus{border-color:#3f7660;box-shadow:0 0 0 3px #3f76601f}.compactSelect{display:inline-flex;position:relative}.compactSelectButton{color:#17201a;background:#fffdf8;border-radius:6px;gap:0;width:44px;min-height:28px;padding:0 4px}.compactSelectButton.placeholder{color:#8b8175}.compactSelectButton[aria-expanded=true]{color:#1f3d34;background:#eff6f2;border-color:#1f3d34;box-shadow:0 0 0 2px #1f3d3414}.compactSelectMenu{z-index:20;background:#fffdf8;border:1px solid #cfc8bc;border-radius:6px;min-width:48px;position:absolute;top:calc(100% + 4px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 24px #352a192e}.compactSelectOption{color:#17201a;background:#fffdf8;border:0;border-radius:0;gap:2px;width:100%;min-height:28px;padding:0 8px}.compactSelectOption:hover,.compactSelectOption[aria-selected=true]{color:#1f3d34;background:#eff6f2}.staffAnswerArea{width:100%;height:320px;min-height:0;position:relative;overflow:visible}.staffCanvas{cursor:crosshair;touch-action:manipulation;background:repeating-linear-gradient(90deg,#1f3d340a 0 1px,#0000 1px 52px),#fffdf8;width:100%;height:320px}.staffCanvas.erasing{cursor:cell}.staffCanvas svg{width:100%;height:320px;display:block}.answerToolRow{z-index:4;pointer-events:none;position:absolute;bottom:58px;left:0;right:0;overflow:visible}.answerToolGrid{align-items:start;display:grid;overflow:visible}.answerToolCell{pointer-events:auto;align-content:start;justify-items:center;gap:3px;min-width:0;min-height:36px;padding:0 2px;display:grid}.answerToolCell.active{background:0 0}.answerToolCell.active .answerToolIndex{color:#1f3d34;font-weight:760}.answerToolIndex{color:#6b6458;font-variant-numeric:tabular-nums;background:#fffdf8f5;border:1px solid #d6cec2;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.answerToolCell.active .answerToolIndex{color:#fffdf8;background:#1f3d34;border-color:#3f7660;box-shadow:0 2px 8px #1f3d342e}.answerToolRow .chordAnswerControls,.answerToolRow .intervalAnswerControls{place-items:center;gap:4px;display:inline-flex}.answerToolRow .chordAnswerControls label,.answerToolRow .intervalAnswerControls label{gap:3px;font-size:11px}.answerToolRow .compactSelectButton{width:42px;min-height:28px}.answerToolRow .chordFigureButton{width:58px}.answerToolRow .compactSelectMenu{min-width:46px}.answerToolRow .intervalAnswerControls{gap:3px}.answerToolRow .intervalAnswerControls .compactSelectButton{width:36px}.answerToolRow .intervalAnswerControls .compactSelect:first-child .compactSelectButton{width:38px}.degreeSuffix{margin-left:1px}.chordSuffix{color:inherit;white-space:nowrap;font-size:11px;line-height:1}.answerToolRow .chordSuffix{font-size:10px}.staffCanvas svg .vf-input-preview{opacity:.56;pointer-events:none}.answerPanel{border-radius:8px;grid-template-columns:180px minmax(0,1fr);display:grid;overflow:hidden}.answerText{border-right:1px solid #e8e1d6;align-content:center;gap:6px;padding:16px 14px;display:grid}.answerText span{color:#7b7367;font-size:12px}.answerText strong{font-size:18px;line-height:1.2}.answerText em{color:#3f7660;font-size:13px;font-style:normal}.shortMeta{white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.figureStack{place-items:center;gap:0;font-size:.72em;line-height:.86;display:inline-grid}.answerCanvas{background:repeating-linear-gradient(90deg,#1f3d3409 0 1px,#0000 1px 52px),#fffdf8;width:100%;height:170px}.answerCanvas svg{width:100%;height:170px;display:block}.examAnswerPanel{border-radius:8px;overflow:hidden}.examAnswerHeader{border-bottom:1px solid #e8e1d6;justify-content:space-between;align-items:center;min-height:56px;padding:12px 14px;display:flex}.examAnswerHeader div{gap:3px;display:grid}.examAnswerHeader span{color:#7b7367;font-size:12px}.examAnswerHeader strong{font-size:20px;line-height:1.2}.examAnswerScroll{overflow-x:auto}.examAnswerCanvas{min-width:860px}.examFigureRow{min-width:860px;margin:-18px 78px 0 108px;padding-bottom:12px;display:grid}.examFigureItem{border-left:1px solid #e8e1d6;align-content:start;gap:4px;min-width:0;min-height:58px;padding:7px 8px 8px;display:grid}.examFigureItem:last-child{border-right:1px solid #e8e1d6}.examFigureItem span{color:#7b7367;font-size:11px;line-height:1.1}.examFigureItem strong{font-size:15px;line-height:1.2}.examFigureItem.correct strong,.examFigureItem.correct span{color:#1d6b43}.examFigureItem.partial strong,.examFigureItem.partial span{color:#9a6a1c}.examFigureItem.wrong strong,.examFigureItem.wrong span{color:#b53a2d}@media (width<=760px){.appShell{padding:26px 14px 56px}.topBar{flex-direction:column;align-items:stretch;gap:16px;padding-bottom:18px}.brand h1{font-size:32px}.topBarActions{flex-direction:column;align-items:stretch;width:100%}.modeTabs{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;width:100%}.logoutButton{flex:none}.sessionTabs{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;width:100%}.controlBand{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.staffToolbar{flex-direction:row;align-items:center;right:10px}.staffToolbarActions{justify-content:flex-start}.mixPanel{grid-template-columns:1fr}.mixHeader{border-bottom:1px solid #e8e1d6;border-right:0}.mixRows{grid-template-columns:1fr}.pitchPoolSummary{max-width:48%}.pitchPoolKeyboard{height:104px}.pitchPoolFoot{flex-direction:column}.pitchPoolFoot strong{text-align:left}.answerPanel{grid-template-columns:1fr}.answerText{border-bottom:1px solid #e8e1d6;border-right:0}.answerToolRow .chordAnswerControls{justify-content:center}.multiQuestionStaff{overflow:hidden}.multiQuestionStaff .staffScrollViewport{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#1f3d3452 transparent;-webkit-overflow-scrolling:touch;overflow:auto hidden}.multiQuestionStaff .staffScrollViewport::-webkit-scrollbar{height:5px}.multiQuestionStaff .staffScrollViewport::-webkit-scrollbar-thumb{background:#1f3d344d;border-radius:999px}.staffAnswerArea.multiQuestion{min-width:var(--mobile-staff-width)}.staffAnswerArea.multiQuestion .answerToolCell{scroll-snap-align:center}.multiQuestionStaff .staffSwipeHint{z-index:9;color:#6b6458;pointer-events:none;background:#fffdf8eb;border:1px solid #cfc8bce0;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:650;display:block;position:absolute;top:68px;right:12px;box-shadow:0 4px 14px #352a1914}.staffAnswerArea.multiQuestion .answerToolRow{bottom:34px}.staffAnswerArea.multiQuestion .answerToolCell{gap:5px}.staffAnswerArea.multiQuestion .compactSelectButton{width:58px;min-height:44px;padding:0 7px;font-size:14px}.staffAnswerArea.multiQuestion .chordFigureButton{width:76px}.staffAnswerArea.multiQuestion .intervalAnswerControls .compactSelectButton,.staffAnswerArea.multiQuestion .intervalAnswerControls .compactSelect:first-child .compactSelectButton{width:54px}.staffAnswerArea.multiQuestion .compactSelectMenu{min-width:64px;max-height:190px;top:auto;bottom:calc(100% + 5px);overflow-y:auto}.staffAnswerArea.multiQuestion .compactSelectOption{min-height:40px;padding:0 10px}}@keyframes daRiseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.topBar{animation:.5s cubic-bezier(.4,0,.2,1) 20ms both daRiseIn}.controlBand{animation:.5s cubic-bezier(.4,0,.2,1) 80ms both daRiseIn}.shortMeta{animation:.5s cubic-bezier(.4,0,.2,1) .14s both daRiseIn}.staffPanel{animation:.5s cubic-bezier(.4,0,.2,1) .2s both daRiseIn}.primaryButton{transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .16s,filter .16s;box-shadow:0 6px 16px #1f3d3433}.primaryButton:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 12px 26px #1f3d3442}.primaryButton:active{transform:translateY(0)scale(.97)}.controlBand button,.staffToolbarActions button,.iconOnly,.logoutButton{transition:transform .14s,box-shadow .16s,background .2s,border-color .2s,color .2s}.controlBand button:not(:disabled):hover,.staffToolbarActions button:hover,.iconOnly:hover,.logoutButton:hover{transform:translateY(-1px)}.controlBand button:not(:disabled):active,.staffToolbarActions button:active,.accidentalTabs button:active{transform:translateY(0)scale(.95)}.sessionTabs button,.optionTabs button,.modeTabs button,.compactSelectButton{transition:all .2s}.staffPanel{background:radial-gradient(140% 90% at 50% -12%,#3f76600d,#0000 55%),linear-gradient(#fffefb,#fdfbf5);box-shadow:inset 0 1px #ffffffe6,0 14px 48px #352a1912}.chordScope button:focus-visible,.compactSelectButton:focus-visible{outline-offset:2px;outline:2px solid #3f766080}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}.appShell{align-items:flex-start!important}.workspace{align-content:start;gap:10px}.igRoot{--ig-accent:#8a5a37;color:#2c2620;font-family:Songti SC,Noto Serif SC,Georgia,system-ui,-apple-system,PingFang SC,serif}@keyframes igStaffPop{0%{opacity:0;transform:scale(.7)translateY(14px)}60%{opacity:1;transform:scale(1.06)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.igStaffPop{animation:.42s cubic-bezier(.34,1.56,.64,1) igStaffPop}@keyframes igEarPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.igEarPulse{animation:1.6s ease-in-out infinite igEarPulse}@keyframes igFlashGreen{0%{background:#fbf8f1;box-shadow:0 0 #5e735600}30%{background:#eef4ea;box-shadow:0 0 0 6px #5e735680}to{background:#fbf8f1;box-shadow:0 0 #5e735600}}.igFlashGreen{animation:.6s ease-out igFlashGreen}@keyframes igFlashRed{0%{background:#fbf8f1;box-shadow:0 0 #a8523c00}30%{background:#f6ebe7;box-shadow:0 0 0 6px #a8523c80}to{background:#fbf8f1;box-shadow:0 0 #a8523c00}}.igFlashRed{animation:.7s ease-out igFlashRed}@keyframes igShake{0%,to{transform:translate(0)}15%{transform:translate(-9px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}}.igShake{animation:.5s ease-in-out igShake}@keyframes igFloatUp{0%{opacity:0;transform:translate(-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-10px)scale(1.15)}to{opacity:0;transform:translate(-50%,-90px)scale(1)}}.igFloat{color:#5e7356;text-shadow:0 2px 6px #5e735659;pointer-events:none;z-index:5;font-size:30px;font-weight:900;animation:.95s ease-out forwards igFloatUp;position:absolute;top:8px;left:50%;transform:translate(-50%)}@keyframes igComboPop{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}.igComboPop{animation:.34s cubic-bezier(.34,1.56,.64,1) igComboPop}@keyframes igFlameBurst{0%{opacity:0;transform:translate(-50%)scale(.4)}25%{opacity:1;transform:translate(-50%,-8px)scale(1.4)}to{opacity:0;transform:translate(-50%,-70px)scale(1.1)}}.igFlame{pointer-events:none;z-index:6;font-size:46px;animation:1s ease-out forwards igFlameBurst;position:absolute;top:0;left:50%}@keyframes igRingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.igRingDanger{animation:.6s ease-in-out infinite igRingPulse}.igOpt{color:#2c2620;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fbf8f1;border:2px solid #e3d9c6;border-radius:14px;min-height:56px;padding:16px 8px;font-size:clamp(15px,4.2vw,19px);font-weight:700;transition:transform 80ms,background .15s,border-color .15s;position:relative}.igOpt:active{transform:scale(.95)}.igOpt:hover:not(:disabled){border-color:var(--ig-accent);background:#f4efe3}.igOpt:disabled{cursor:default}.igOptCorrect{animation:.34s igComboPop;color:#fff!important;background:#5e7356!important;border-color:#4d6147!important}.igOptWrong{color:#fff!important;background:#a8523c!important;border-color:#8f4231!important}.igOptReveal{box-shadow:0 0 0 2px #5e735666;background:#eef4ea!important;border-color:#5e7356!important}@keyframes igNodePulse{0%,to{box-shadow:0 0 #8a5a3780}50%{box-shadow:0 0 0 12px #8a5a3700}}.igNodeCurrent{animation:1.6s ease-out infinite igNodePulse}.igNode{transition:transform .12s}.igNode:active{transform:scale(.92)}@keyframes igStarPop{0%{opacity:0;transform:scale(0)rotate(-40deg)}60%{opacity:1;transform:scale(1.35)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.igStar{opacity:0;display:inline-block}.igStarOn{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards igStarPop}@keyframes igSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.igSlideUp{animation:.4s ease-out igSlideUp}@media (prefers-reduced-motion:reduce){.igStaffPop,.igFlashGreen,.igFlashRed,.igShake,.igFloat,.igComboPop,.igFlame,.igRingDanger,.igNodeCurrent,.igStarOn,.igSlideUp,.igEarPulse{animation:none!important}.igStar{opacity:1}}.cgRoot{--cg-accent:#2f8f6b;color:#2c2620;font-family:Songti SC,Noto Serif SC,Georgia,system-ui,-apple-system,PingFang SC,serif}@keyframes cgStaffPop{0%{opacity:0;transform:scale(.7)translateY(14px)}60%{opacity:1;transform:scale(1.06)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.cgStaffPop{animation:.42s cubic-bezier(.34,1.56,.64,1) cgStaffPop}@keyframes cgFlashGreen{0%{background:#fbf8f1;box-shadow:0 0 #5e735600}30%{background:#eef4ea;box-shadow:0 0 0 6px #5e735680}to{background:#fbf8f1;box-shadow:0 0 #5e735600}}.cgFlashGreen{animation:.6s ease-out cgFlashGreen}@keyframes cgFlashRed{0%{background:#fbf8f1;box-shadow:0 0 #a8523c00}30%{background:#f6ebe7;box-shadow:0 0 0 6px #a8523c80}to{background:#fbf8f1;box-shadow:0 0 #a8523c00}}.cgFlashRed{animation:.7s ease-out cgFlashRed}@keyframes cgShake{0%,to{transform:translate(0)}15%{transform:translate(-9px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}}.cgShake{animation:.5s ease-in-out cgShake}@keyframes cgFloatUp{0%{opacity:0;transform:translate(-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-10px)scale(1.15)}to{opacity:0;transform:translate(-50%,-90px)scale(1)}}.cgFloat{color:#5e7356;text-shadow:0 2px 6px #5e735659;pointer-events:none;z-index:5;font-size:30px;font-weight:900;animation:.95s ease-out forwards cgFloatUp;position:absolute;top:8px;left:50%;transform:translate(-50%)}@keyframes cgComboPop{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}.cgComboPop{animation:.34s cubic-bezier(.34,1.56,.64,1) cgComboPop}@keyframes cgFlameBurst{0%{opacity:0;transform:translate(-50%)scale(.4)}25%{opacity:1;transform:translate(-50%,-8px)scale(1.4)}to{opacity:0;transform:translate(-50%,-70px)scale(1.1)}}.cgFlame{pointer-events:none;z-index:6;font-size:46px;animation:1s ease-out forwards cgFlameBurst;position:absolute;top:0;left:50%}@keyframes cgRingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.cgRingDanger{animation:.6s ease-in-out infinite cgRingPulse}.cgOpt{color:#2c2620;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fbf8f1;border:2px solid #e3d9c6;border-radius:14px;min-height:54px;padding:14px 8px;font-size:clamp(14px,3.8vw,18px);font-weight:700;transition:transform 80ms,background .15s,border-color .15s;position:relative}.cgOpt:active{transform:scale(.95)}.cgOpt:hover:not(:disabled){border-color:var(--cg-accent);background:#f4efe3}.cgOpt:disabled{cursor:default}.cgOptPicked{box-shadow:0 0 0 2px #2f8f6b59;border-color:var(--cg-accent)!important;background:#eaf3ee!important}.cgOptCorrect{animation:.34s cgComboPop;color:#fff!important;background:#5e7356!important;border-color:#4d6147!important}.cgOptWrong{color:#fff!important;background:#a8523c!important;border-color:#8f4231!important}.cgOptReveal{box-shadow:0 0 0 2px #5e735666;background:#eef4ea!important;border-color:#5e7356!important}@keyframes cgNodePulse{0%,to{box-shadow:0 0 #2f8f6b80}50%{box-shadow:0 0 0 12px #2f8f6b00}}.cgNodeCurrent{animation:1.6s ease-out infinite cgNodePulse}.cgNode{transition:transform .12s}.cgNode:active{transform:scale(.92)}@keyframes cgStarPop{0%{opacity:0;transform:scale(0)rotate(-40deg)}60%{opacity:1;transform:scale(1.35)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.cgStar{opacity:0;display:inline-block}.cgStarOn{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards cgStarPop}@keyframes cgSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.cgSlideUp{animation:.4s ease-out cgSlideUp}@media (prefers-reduced-motion:reduce){.cgStaffPop,.cgFlashGreen,.cgFlashRed,.cgShake,.cgFloat,.cgComboPop,.cgFlame,.cgRingDanger,.cgNodeCurrent,.cgStarOn,.cgSlideUp{animation:none!important}.cgStar{opacity:1}}
