.teacher-workspace{gap:20px;padding-bottom:20px;display:grid}.teacher-workspace-heading{justify-content:space-between;align-items:center;display:flex}.teacher-workspace-heading span{color:#819271;font-size:12px}.teacher-workspace-heading h1{margin-top:7px;font-size:24px}.teacher-workspace-heading button{color:#63a424;background:#eff9e3;border:0;border-radius:16px;padding:12px;display:flex}.teacher-overview{grid-template-columns:1fr 1fr;gap:12px;display:grid}.teacher-overview>div,.teacher-overview>button{color:#6b9c3c;font:inherit;background:#f1fae8;border:1px solid #d3eac1;border-radius:18px;flex-direction:column;align-items:center;gap:9px;padding:16px;display:flex}.teacher-overview>div{color:#119bc5;background:#eaf7ff;border-color:#c5eaff}.teacher-overview strong{color:#555;font-size:25px}.teacher-overview small{color:#999;font-size:12px}.teacher-overview span{font-size:12px}.teacher-workspace-tabs{background:#f6f6f6;border-radius:17px;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;display:grid}.teacher-workspace-tabs button{font:inherit;color:#888;background:0 0;border:1px solid #0000;border-radius:13px;flex-direction:column;align-items:center;gap:8px;padding:11px 3px;font-size:12px;display:flex}.teacher-workspace-tabs button[aria-pressed=true]{color:#009dcd;background:#e5f6ff;border-color:#95dcf7}.teacher-workspace-panel{animation:.23s ease-out roster-reveal}.teacher-workspace .card{margin:0 0 16px}.teacher-workspace .class-grid{grid-template-columns:1fr;gap:0;display:grid}.teacher-workspace .section-heading{margin-top:0}.feedback-tools{flex-wrap:wrap;gap:6px;margin:16px 0;display:flex}.feedback-tools button{font:inherit;color:#888;background:#fff;border:1px solid #e5e5e5;border-radius:20px;padding:7px 12px;font-size:12px}.feedback-tools button[aria-pressed=true]{color:#009ccc;background:#e7f8ff;border-color:#91dcff}.feedback-empty{text-align:center;color:#95a18c;padding:28px 8px}.feedback-empty svg{color:#99c965;margin-bottom:12px}.feedback-empty h3{font-size:16px}.feedback-empty p{margin-top:8px;font-size:12px}.feedback-identity{justify-content:space-between;align-items:center;gap:8px;display:flex}.feedback-identity small{color:#999;font-size:10px}.feedback-word{text-align:center;background:#f1f9e9;border-radius:14px;margin:12px 0;padding:12px;font-size:23px}.feedback-inbox audio{width:100%;margin-bottom:12px}.feedback-inbox textarea{width:100%;min-height:90px}.feedback-inbox .dark-btn{width:100%;margin-top:12px}.feedback-inbox .card{border-radius:18px;padding:16px}.teacher-workspace .audio-studio .toolbar{align-items:stretch}.teacher-workspace .lesson-select{width:100%}.studio-coverage{color:#89917f;justify-content:space-between;gap:10px;margin:14px 0;font-size:12px;display:flex}.teacher-workspace .recording-list{scrollbar-width:none;-ms-overflow-style:none;max-height:270px}.teacher-workspace .recording-list::-webkit-scrollbar{display:none}.teacher-workspace .recorder-panel{background:#f6fbef;border:1px solid #d7ecca;border-radius:18px;margin-top:16px;padding:18px}.teacher-workspace .studio-layout{display:block}.teacher-workspace .audio-studio h2,.feedback-inbox h2{font-size:18px}.teacher-workspace textarea[name=assignment]{scrollbar-width:none;-ms-overflow-style:none}.teacher-workspace textarea[name=assignment]::-webkit-scrollbar{display:none}.teacher-roster{gap:20px;padding-bottom:20px;display:grid}.roster-heading{justify-content:space-between;align-items:center;display:flex}.roster-heading h1{margin-top:6px;font-size:25px}.roster-eyebrow{color:#829177;font-size:12px}.roster-heading-icon{color:#62a329;background:#eff9e4;border-radius:18px;padding:14px;display:flex}.roster-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.roster-summary>div{background:#f2fbe9;border:1px solid #d9edcb;border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:16px 4px;display:flex}.roster-summary>div:nth-child(2){background:#fff7df;border-color:#f7e7b3}.roster-summary>div:nth-child(3){background:#eaf7ff;border-color:#cceafb}.roster-summary svg{color:#75a645;width:21px}.roster-summary>div:nth-child(2) svg{color:#efaa00}.roster-summary>div:nth-child(3) svg{color:#15a1d0}.roster-summary strong{font-size:25px}.roster-summary span{white-space:nowrap;font-size:11px}.roster-tools{gap:14px;display:grid}.roster-search{color:#aaa;background:#fafafa;border:2px solid #e5e5e5;border-radius:14px;align-items:center;gap:10px;padding:11px 13px;display:flex}.roster-search input{width:100%;min-width:0;font:inherit;color:#555;background:0 0;border:0;outline:none;font-size:14px}.roster-search:focus-within{border-color:#70cef3}.roster-filters{flex-wrap:wrap;gap:7px;display:flex}.roster-filters button{color:#777;font:inherit;background:#fff;border:1px solid #e4e4e4;border-radius:20px;padding:8px 12px;font-size:11px}.roster-filters button[aria-pressed=true]{color:#008ebc;background:#e7f7ff;border-color:#95dcfa}.roster-list-heading{color:#888;justify-content:space-between;align-items:center;font-size:12px;display:flex}.roster-list-heading select{font:inherit;color:#666;background:0 0;border:0;max-width:130px;padding:6px}.roster-list{gap:16px;display:grid}.roster-student{background:#fff;border:2px solid #e5e5e5;border-bottom-width:5px;border-radius:22px;padding:18px;overflow:hidden}.roster-identity{align-items:center;gap:11px;display:flex}.roster-avatar{border-radius:17px;flex-shrink:0;width:54px;height:54px;overflow:hidden}.roster-identity>div{flex:1;min-width:0}.roster-identity h2{overflow-wrap:anywhere;font-size:16px;line-height:1.7}.roster-username{color:#999;font-size:12px;display:inline-block}.roster-badge{white-space:nowrap;color:#8a8a8a;background:#f2f2f2;border-radius:14px;padding:5px 8px;font-size:10px}.roster-badge.is-active{color:#649c26;background:#efffde}.roster-progress-caption{color:#91998b;justify-content:space-between;align-items:center;margin-top:20px;font-size:11px;display:flex}.roster-progress-caption b{color:#656d60;font-weight:500}.roster-student progress{accent-color:#58cc02;border:0;border-radius:9px;width:100%;height:9px;margin:10px 0 14px;display:block;overflow:hidden}.roster-student progress::-webkit-progress-bar{background:#ededed}.roster-student progress::-webkit-progress-value{background:#58cc02;border-radius:9px}.roster-metrics{color:#77846a;flex-wrap:wrap;gap:20px;font-size:11px;display:flex}.roster-metrics span{align-items:center;gap:6px;display:flex}.roster-details-toggle{color:#00a0cd;width:100%;font:inherit;background:0 0;border:0;border-top:1px solid #eee;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 0 0;font-size:12px;display:flex}.roster-details-toggle svg{transition:transform .25s}.roster-details-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.roster-details{border-top:1px solid #eee;margin-top:14px;padding-top:14px;animation:.25s ease-out roster-reveal}.roster-last-practice{color:#858b7e;align-items:center;gap:7px;padding:9px 0;font-size:11px;display:flex}.roster-last-practice b{color:#555;margin-right:auto;font-weight:500}.roster-details h3{margin:15px 0 10px;font-size:13px}.roster-recall{gap:6px;display:grid}.roster-recall>div{background:#f3f9ed;border-radius:10px;justify-content:space-between;padding:10px;font-size:12px;display:flex}.roster-recall>div:nth-child(2){background:#fff8e4}.roster-recall>div:nth-child(3){background:#fff0e9}.roster-bio{color:#777;overflow-wrap:anywhere;font-size:13px}.roster-empty{text-align:center;color:#999;border:2px dashed #e5e5e5;border-radius:20px;justify-items:center;gap:12px;padding:35px 15px;display:grid}.roster-empty h2{font-size:16px}.roster-empty p{font-size:12px}@keyframes roster-reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.app .teacher-roster .roster-search input{box-shadow:none;background:0 0;border:0;border-radius:0;min-height:26px;margin:0;padding:0}.app .teacher-roster .roster-list-heading label{align-items:center;gap:7px;margin:0;display:flex}.app .teacher-roster .roster-list-heading select{background:#fff;border:1px solid #e5e5e5;border-radius:9px;width:auto;margin:0;padding:5px 8px;font-size:12px}.roster-sort{align-items:center;gap:8px;display:flex;position:relative}.app .roster-sort-trigger{color:#666;min-width:108px;font:inherit;background:#fff;border:2px solid #e5e5e5;border-bottom-width:4px;border-radius:13px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;font-size:12px;display:flex}.app .roster-sort-trigger[aria-expanded=true]{color:#009cc9;background:#edf9ff;border-color:#8cdaff}.roster-sort-trigger svg{transition:transform .2s}.roster-sort-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.roster-sort-menu{z-index:20;background:#fff;border:2px solid #e5e5e5;border-radius:16px;width:185px;padding:6px;animation:.18s ease-out roster-reveal;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 25px #344b4720}.roster-sort-menu [role=option]{cursor:pointer;color:#666;border-radius:10px;justify-content:space-between;align-items:center;min-height:42px;padding:12px 10px;font-size:13px;display:flex}.roster-sort-menu [aria-selected=true]{color:#009ccc;background:#e5f6ff;font-weight:600}.roster-sort-menu .focused{box-shadow:inset 0 0 0 2px #9addf7}.roster-sort-menu:focus{outline:none}.avatar-art{width:100%;height:100%;display:block}.profile-portrait.avatar-launch{cursor:pointer;width:104px;height:104px;padding:0;position:relative;overflow:hidden}.avatar-launch .avatar-edit-mark{color:#48a300;background:#fff;border-radius:0 12px 0 0;padding:5px;display:flex;position:absolute;bottom:0;left:0}.avatar-builder{color:#454545;background:#fff;border:2px solid #e5e5e5;border-radius:24px;width:min(430px,100vw - 20px);max-height:calc(100dvh - 24px);margin:auto;padding:0;overflow:auto;box-shadow:0 20px 80px #173c3244}.avatar-builder::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#23423d99}.avatar-builder header{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.avatar-builder h2{margin:0;font-size:19px}.avatar-builder header button{color:#6a8760;background:#f4f7f0;border:0;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.avatar-builder .avatar-shuffle{color:#00a2d2;background:#e9f8ff}.avatar-preview{justify-content:center;height:210px;padding:0 20px 16px;display:flex}.avatar-preview svg{border-radius:24px;width:200px}.avatar-controls{border:0;min-width:0;margin:0;padding:0}.avatar-controls nav{scrollbar-width:thin;border-block:1px solid #e8e8e8;gap:4px;padding:10px 12px;display:flex;overflow-x:auto}.avatar-controls nav button{color:#888;white-space:nowrap;font:inherit;background:0 0;border:0;border-radius:12px;padding:10px;font-size:13px}.avatar-controls nav button[aria-pressed=true]{color:#0099cb;background:#e4f6ff}.avatar-options{min-height:164px;padding:14px 18px}.avatar-options h3{margin:0 0 12px;font-size:15px}.avatar-palette{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.avatar-palette button{color:#fff;text-shadow:0 1px 3px #000;border:3px solid #fff;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 0 0 1px #ddd}.avatar-palette button[aria-pressed=true]{box-shadow:0 0 0 3px #00acdf}.avatar-palette svg{filter:drop-shadow(0 1px 2px #333)}.avatar-option-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.avatar-option-grid button{border:2px solid #e5e5e5;font:inherit;color:#666;background:#fff;border-bottom-width:4px;border-radius:16px;padding:4px;overflow:hidden}.avatar-option-grid button[aria-pressed=true]{background:#effaff;border-color:#58c7ee}.avatar-option-grid svg{height:85px}.avatar-option-grid span{padding:5px 0;font-size:11px;display:block}.avatar-builder footer{background:#fff;border-top:1px solid #eee;padding:12px 18px 18px;position:sticky;bottom:0}.avatar-builder footer .dark-btn{width:100%}.avatar-builder footer p{color:#ac4935;font-size:13px}.avatar-builder button:focus-visible{outline-offset:3px;outline:3px solid #007ec6}@media (height<=700px){.avatar-preview{height:150px}.avatar-preview svg{width:145px}.avatar-option-grid svg{height:65px}}.student-profile{gap:18px;padding-bottom:12px;display:grid}.student-profile .card{margin:0;padding:20px}.student-profile h2{margin:0 0 18px;font-size:18px}.profile-hero{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex;background:linear-gradient(160deg,#f1ffdf,#fff)!important}.profile-portrait{background:#ddf6bb;border:3px solid #fff;border-radius:28px;place-items:center;width:88px;height:88px;font-size:48px;display:grid;box-shadow:0 4px #c6e79d}.profile-level{color:#0085b4;background:#e0f5ff;border-radius:20px;padding:4px 12px;font-size:12px}.profile-hero h1{margin:0;font-size:25px}.profile-handle{color:#777;font-size:14px}.profile-hero p{overflow-wrap:anywhere;margin:2px 0}.profile-hero .outline-btn{width:100%;margin-top:10px}.profile-section-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.profile-section-title h2{margin:0}.profile-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0 24px;display:grid}.profile-stats>div{background:#f5f8ef;border-radius:14px;flex-direction:column;align-items:center;gap:7px;padding:12px 3px;display:flex}.profile-stats svg{color:#68a126;width:22px}.profile-stats strong{font-size:23px}.profile-stats span{white-space:nowrap;font-size:11px}.profile-progress-label{justify-content:space-between;gap:6px;font-size:13px;display:flex}.student-profile progress{accent-color:#58cc02;width:100%;height:12px;margin:12px 0}.student-profile small{color:#777}.profile-link{color:#008fbd;width:100%;font:inherit;text-align:right;background:0 0;border:0;border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:8px;margin-top:16px;padding:16px 0 0;display:flex}.profile-link>span{align-items:center;gap:8px;display:flex}.profile-recall{gap:8px;display:grid}.profile-recall>span{background:#f5f8ef;border-radius:12px;justify-content:space-between;padding:12px;font-size:14px;display:flex}.profile-recall>span:nth-child(2){background:#fff7dc}.profile-recall>span:nth-child(3){background:#fff0e9}.profile-logout{width:100%;margin-top:20px;color:#b45746!important}.profile-form{gap:14px;display:grid}.profile-form fieldset{border:0;min-width:0;padding:0}.profile-form label{gap:8px;margin:10px 0;font-size:14px;display:grid}.profile-form input:not([type=radio]),.profile-form textarea{box-sizing:border-box;width:100%;font:inherit;background:#fafafa;border:2px solid #e5e5e5;border-radius:12px;padding:12px}.profile-avatar-options{gap:10px;display:flex}.profile-avatar-options label{position:relative}.profile-avatar-options input{opacity:0;position:absolute}.profile-avatar-options span{border:2px solid #eee;border-radius:14px;padding:8px;font-size:30px;display:block}.profile-avatar-options input:checked+span{background:#efffde;border-color:#58cc02}.profile-avatar-options input:focus-visible+span{outline:2px solid #008fbd}.profile-message,.profile-error{background:#efffde;border-radius:12px;margin:0;padding:14px}.profile-error{color:#9c352d;background:#fff0e9}.topbar{justify-content:flex-end}.app .install-banner{z-index:45;inset-inline:0;box-sizing:border-box;width:100%;max-width:430px;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));text-align:right;direction:rtl;background:#fff;border:0;border-top:1px solid #dce5e9;border-radius:0;margin-inline:auto;position:fixed;bottom:0}.app.auth-app.has-install-footer{padding-bottom:calc(28px + var(--install-footer-height,180px))}.app.has-install-footer>main{padding-bottom:calc(75px + env(safe-area-inset-bottom,0px) + var(--install-footer-height,180px))}.app.has-install-footer>.sidebar{bottom:var(--install-footer-height,180px)}.app .install-heading{color:#078ac3;align-items:center;gap:8px;padding-inline-end:26px;font-size:17px;display:flex}.app .install-banner>p{color:#65726a;margin:8px 0 14px;font-size:13px;line-height:1.9}.app .install-dismiss{color:#738171;background:0 0;border:0;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:8px;left:8px}.app .install-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.app .install-choice{color:#078ac3;min-height:52px;font:inherit;background:#fff;border:2px solid #e5e5e5;border-radius:13px;justify-content:center;align-items:center;gap:7px;padding:8px 6px;font-size:14px;font-weight:700;line-height:1.5;text-decoration:none;display:flex}.app .install-choice.selected{background:#ddf4ff;border-color:#a3e4ff}.app .install-choice svg{flex-shrink:0}.app .install-choice:disabled{opacity:.65}.app .install-choice:focus-visible,.app .install-dismiss:focus-visible{outline-offset:3px;outline:3px solid #008cff}.app .install-banner .install-help{border-top:1px solid #e5e5e5;margin:14px 0 0;padding-top:12px}@keyframes install-arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app .install-help p{margin:0;font-size:13px;line-height:1.9}.app .install-help a{color:#078ac3;margin-top:8px;font-size:14px;font-weight:700;display:inline-block}.app .app-update{z-index:60;box-sizing:border-box;overscroll-behavior:contain;direction:rtl;background:#fff;border-inline:1px solid #e5e5e5;outline:none;flex-direction:column;width:100%;max-width:430px;height:100dvh;display:flex;position:fixed;inset:0 auto 0 50%;overflow-y:auto;transform:translate(-50%)}.app .update-page-header{padding:calc(22px + env(safe-area-inset-top)) 24px 18px;color:#888;text-align:center;border-bottom:2px solid #f1f1f1;font-size:16px;font-weight:700}.app .update-page-content{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.app .update-page-content img{object-fit:contain;width:min(100%,290px);height:auto;max-height:38dvh;display:block}.app .update-panda-message{color:#087eb4;background:#ddf4ff;border:2px solid #a9e5ff;border-radius:18px;margin:18px 0 14px;padding:12px 18px;font-size:16px;font-weight:700;line-height:1.8;display:block}.app .app-update h1{color:#444;margin:10px 0;font-size:27px;line-height:1.7}.app .app-update p{color:#a94432;font-size:15px;line-height:1.8}.app .update-page-actions{padding:18px 24px calc(24px + env(safe-area-inset-bottom));border:0;margin:0;display:block}.app .update-page-actions button{justify-content:center;width:100%;min-height:56px;font-size:18px}.app.auth-app{background:#fff;align-items:center;min-height:100dvh;padding:28px 22px;display:grid}.app .auth-card{text-align:center;gap:22px;display:grid}.app .auth-sprout{color:#58a700;margin:auto}.app .auth-card h1{font-size:27px}.app .auth-card h2{font-size:22px}.app .auth-card p,.app .auth-card small{color:#777}.app .auth-card form,.app .auth-card label{text-align:right;gap:12px;display:grid}.app .auth-card input{width:100%;min-height:50px;font:inherit;border:2px solid #e5e5e5;border-radius:14px;padding:10px 14px}.app .auth-roles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.app .auth-roles button{color:#777;background:#fff;border:2px solid #e5e5e5;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:64px;display:flex}.app .auth-roles [aria-pressed=true]{color:#078ac3;background:#ddf4ff;border-color:#a9e5ff}.app .auth-card [role=alert]{color:#ba3947}.app .account-details{gap:18px;display:grid}.app .student-roster{gap:14px;display:grid}.app .student-roster article{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.app .student-roster article>span{color:#777;direction:ltr}.app .student-roster article>p{grid-column:1/-1;margin:0;font-size:14px;line-height:2}.app .teacher-heading{color:#078ac3;font-size:14px;font-weight:700}.app .demo-access{border-top:2px solid #f0f0f0;gap:9px;padding-top:18px;display:grid}.app .demo-access>span{color:#888;font-size:12px}.app .demo-access>button{color:#4d8619;min-height:50px;font:inherit;background:#f1ffe4;border:2px solid #b9e98b;border-radius:15px;font-weight:800}.app .demo-access>button:active{transform:translateY(1px)}.app .demo-access>small{color:#888;font-size:11px;line-height:1.8}.app .mission-summary{text-align:center;color:#7850a0;background:#f1e6ff;border:2px solid #ddc4ff;border-radius:22px;justify-items:center;gap:12px;margin-bottom:22px;padding:24px 18px;display:grid}.app .mission-summary h2{font-size:22px}.app .mission-summary progress{width:100%}.app .mission-list{gap:18px;display:grid}.app .mission-card{gap:16px;display:grid}.app .mission-heading{align-items:center;gap:12px;display:flex}.app .mission-heading h3{flex:1}.app .mission-icon{color:#078ac3;background:#ddf4ff;border-radius:14px;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.app .mission-card.complete{border-color:#ace67b}.app .mission-card.complete .mission-icon{color:#58a700;background:#e5ffc9}.app .mission-count{justify-content:space-between;gap:12px;font-size:14px;display:flex}.app .mission-card p{color:#777;font-size:15px}.app .mission-card progress,.app .mission-card button{width:100%}.app .daily-missions-entry{width:100%;margin-top:18px}.app .leaderboard{margin-bottom:24px}.app .leaderboard-title{color:#c99a32;align-items:center;gap:10px;display:flex}.app .leaderboard-title h2{color:#4b4b4b;flex:1;margin:0;font-size:23px}.app .leaderboard-join{gap:14px;margin:20px 0;display:grid}.app .leaderboard-join label{gap:8px;display:grid}.app .leaderboard-join input{box-sizing:border-box;width:100%;min-height:50px;font:inherit;border:2px solid #e5e5e5;border-radius:14px;padding:12px}.app .leaderboard-list{gap:10px;margin:20px 0;padding:0;list-style:none;display:grid}.app .leaderboard-list li{border:2px solid #eee;border-radius:16px;align-items:center;gap:12px;padding:14px 10px;display:flex}.app .leaderboard-list li.is-me{background:#ddf4ff;border-color:#a9e5ff}.app .leaderboard-list strong{overflow-wrap:anywhere;flex:1;min-width:0}.app .leaderboard-list strong small{color:#078ac3;font-size:12px;display:block}.app .leaderboard-list b{color:#078ac3;white-space:nowrap;font-size:17px}.app .leaderboard-rank{color:#b88620;justify-items:center;min-width:26px;display:grid}.app .leaderboard-rank small{font-size:11px}.app .leaderboard>p,.app .leaderboard-join small{font-size:14px;line-height:1.9}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vazirmatn-arabic-400-normal-DMZFCm7K.woff2)format("woff2"),url(/assets/vazirmatn-arabic-400-normal-C4W5XURk.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vazirmatn-latin-ext-400-normal-BdGhO0lm.woff2)format("woff2"),url(/assets/vazirmatn-latin-ext-400-normal-DPxMaNjI.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vazirmatn-latin-400-normal-BT_DHTc7.woff2)format("woff2"),url(/assets/vazirmatn-latin-400-normal-GKyMcI03.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/vazirmatn-arabic-500-normal-C_lbnnKa.woff2)format("woff2"),url(/assets/vazirmatn-arabic-500-normal-Dqq3-xo3.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/vazirmatn-latin-ext-500-normal-CgxvvVrG.woff2)format("woff2"),url(/assets/vazirmatn-latin-ext-500-normal-4XgegWYb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/vazirmatn-latin-500-normal-6zZzgpg4.woff2)format("woff2"),url(/assets/vazirmatn-latin-500-normal-Bg_BALlD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/vazirmatn-arabic-600-normal-CPKvAnd1.woff2)format("woff2"),url(/assets/vazirmatn-arabic-600-normal-CWYTfCgi.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/vazirmatn-latin-ext-600-normal-CyxCUfFz.woff2)format("woff2"),url(/assets/vazirmatn-latin-ext-600-normal-Di8rk35l.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/vazirmatn-latin-600-normal-D-zF-Oec.woff2)format("woff2"),url(/assets/vazirmatn-latin-600-normal-BxJiDPKT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/vazirmatn-arabic-700-normal-Dge_DOjm.woff2)format("woff2"),url(/assets/vazirmatn-arabic-700-normal-B5nPuCFv.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/vazirmatn-latin-ext-700-normal-BfoXmNMx.woff2)format("woff2"),url(/assets/vazirmatn-latin-ext-700-normal-DMYLqBto.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/vazirmatn-latin-700-normal-9BlbvDRV.woff2)format("woff2"),url(/assets/vazirmatn-latin-700-normal-DrB0PBU6.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/vazirmatn-arabic-800-normal-Bwnt96zj.woff2)format("woff2"),url(/assets/vazirmatn-arabic-800-normal-BH12s3-y.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/vazirmatn-latin-ext-800-normal-BzH3Tiwu.woff2)format("woff2"),url(/assets/vazirmatn-latin-ext-800-normal-HbVXW2Kv.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/vazirmatn-latin-800-normal-e0EQwLmk.woff2)format("woff2"),url(/assets/vazirmatn-latin-800-normal-fM8Xz9cI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#253f38;font-synthesis:none;--green:#234c3f;--muted:#849087;background:#f7f8f5;font-family:Vazirmatn,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .18s,transform .18s}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #c7a552}button:disabled{cursor:default}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-1px;font-size:29px;font-weight:800}h2{font-size:21px;font-weight:700}h3{font-size:16px}p{line-height:1.9}small{font-size:11px}.sidebar{z-index:10;background:#fff;border-left:1px solid #e7ebe5;flex-direction:column;width:240px;padding:38px 24px 20px;display:flex;position:fixed;top:0;bottom:0;right:0}.brand{align-items:center;gap:11px;font-size:31px;font-weight:800;display:flex}.brand small{color:#87938b;letter-spacing:0;font-size:10px;font-weight:400;display:block}.brand-icon{color:#e0edb6;background:#234c3f;border-radius:15px;place-items:center;width:47px;height:51px;display:grid}.brand-icon svg{width:29px;height:29px}.class-label{color:#9baba1;margin:54px 15px 15px;font-size:10px}.nav{color:#7b8981;text-align:right;background:0 0;border:0;border-radius:10px;align-items:center;gap:13px;width:100%;margin-bottom:7px;padding:14px 16px;font-size:13px;display:flex}.nav.active{color:#274e3e;background:#edf3e9;font-weight:700}.nav-dot{background:#648366;border-radius:100%;width:6px;height:6px;margin-right:auto}.sidebar-note{background:#f7f8f1;border:1px solid #edf0e5;border-radius:13px;margin-top:auto;padding:23px 16px 17px;position:relative}.sidebar-note span{color:#879570;font-size:12px}.sidebar-note p{margin-top:12px;font-size:13px}.sidebar-note svg{color:#acba8a;position:absolute;bottom:18px;left:12px;transform:rotate(-25deg)}.profile{border-top:1px solid #edf0e9;align-items:center;gap:11px;margin-top:25px;padding-top:22px;font-size:12px;display:flex}.profile small{color:#909c93;margin-top:4px;display:block}.avatar{color:#7b6850;background:#eee6d4;border-radius:50%;place-items:center;width:37px;height:37px;font-weight:700;display:grid}main{margin-right:240px}.topbar{background:#fafbf8;border-bottom:1px solid #e6eae2;justify-content:space-between;align-items:center;height:83px;padding:0 42px;display:flex}.breadcrumb{color:#939c95;align-items:center;gap:14px;font-size:11px;display:flex}.top-stats{align-items:center;gap:23px;font-size:12px;display:flex}.top-stats>span{align-items:center;gap:7px;display:flex}.local-badge{color:#768a77;border:1px solid #e4e9df;border-radius:20px;padding:5px 10px;font-size:10px}.content{max-width:1380px;margin:auto;padding:35px 42px 0}.page-heading{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.eyebrow{letter-spacing:.2px;color:#7a8a7b;align-items:center;gap:7px;font-size:10px;display:flex}.page-heading h1{margin:7px 0}.heading-leaf{color:#b8a66b;font-size:28px}.date{color:#849086;align-items:center;gap:8px;font-size:11px;display:flex}.dashboard{grid-template-columns:minmax(0,1fr) 265px;gap:25px;display:grid}.primary-column{min-width:0}.hero{background:#e5eddd;border:1px solid #dbe6d2;border-radius:18px;min-height:326px;padding:30px;display:flex;position:relative;overflow:hidden}.hero-copy{z-index:2;width:55%;position:relative}.pill{color:#617959;background:#f5f8efb8;border:1px solid #d5e0cc;border-radius:20px;padding:5px 11px;font-size:10px;display:inline-flex}.hero h2{letter-spacing:-1.3px;color:#234634;margin:14px 0 9px;font-size:33px;line-height:1.6}.hero p{color:#74856a;font-size:12px;line-height:1.85}.dark-btn,.outline-btn{border:1px solid var(--green);border-radius:8px;justify-content:center;align-items:center;gap:20px;padding:11px 18px;font-size:12px;font-weight:600;display:inline-flex}.dark-btn{background:var(--green);color:#fff}.outline-btn{color:var(--green);background:0 0;border-color:#d6dfd2}.hero .dark-btn{margin-top:21px}.hero-meta{color:#8c9c81;gap:19px;margin-top:15px;font-size:9px;display:flex}.hero-art{direction:ltr;width:46%;height:100%;position:absolute;top:0;left:0}.sun{background:#d7e2bc;border-radius:100%;width:160px;height:160px;position:absolute;top:36px;left:32px}.orbit{border:1px solid #bdcda998;border-radius:50%;width:250px;height:250px;position:absolute;top:52px;left:-23px;transform:rotate(-22deg)}.hanzi-card{border:1px solid #ffffffb0;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;width:122px;height:158px;font-family:serif;font-size:75px;display:flex;position:absolute;box-shadow:0 14px 25px #4a624017}.hanzi-card small{margin-top:5px;font-family:Vazirmatn;font-size:11px}.hanzi-card.back{color:#516a45;background:#c7d7b5;top:74px;left:20px;transform:rotate(-14deg)}.hanzi-card.front{color:#3f6747;background:#fcfcf3;top:115px;left:102px;transform:rotate(12deg)}.art-star{color:#6d8556;font-size:60px;position:absolute;top:21px;left:139px}.art-caption{letter-spacing:2px;color:#8b9b7c;font:8px monospace;position:absolute;bottom:20px;left:27px}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin:26px 0 15px;display:flex}.section-heading h2{font-size:16px}.text-btn{color:#7c8f73;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;font-size:10px;display:flex}.lesson-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.lesson-card{text-align:right;color:inherit;background:#fff;border:1px solid #e6eae1;border-radius:13px;align-items:center;gap:12px;padding:20px 14px;display:flex}.lesson-char{border-radius:10px;flex-shrink:0;place-items:center;width:53px;height:61px;font:33px serif;display:grid}.mint{color:#657d50;background:#e9efdf}.peach{color:#b28a65;background:#f5e8df}.lavender{color:#8a77a4;background:#eeebf6}.cream{color:#9e894e;background:#f4eedb}.lesson-card small{color:#9ba596;font-size:9px}.lesson-card h3{margin:5px 0;font-size:14px}.lesson-card p{color:#929d93;font-size:9px}.circle-arrow{color:#a2ae9a;place-items:center;margin-right:auto;display:grid}.review-banner{background:#f0f2e9;border:1px solid #e5e8dd;border-radius:12px;align-items:center;gap:15px;margin-top:21px;padding:21px 17px;display:flex}.review-icon{color:#8b9870;display:flex}.review-banner h3{font-size:13px}.review-banner p{color:#929a81;margin-top:5px;font-size:10px}.review-banner .outline-btn{white-space:nowrap;margin-right:auto;padding:8px 12px;font-size:10px}.muted{color:#8a968b;font-size:12px}.journey{background:#fff;border:1px solid #e7ebe3;border-radius:13px;justify-content:space-around;padding:22px 10px;display:flex;position:relative}.journey:before{content:"";border-top:2px dashed #e7ecdf;position:absolute;top:45px;left:15%;right:15%}.step{color:#7e8e7c;background:0 0;border:0;flex-direction:column;align-items:center;gap:9px;display:flex;position:relative}.step>span{z-index:1;background:#f0f3e9;border:5px solid #fff;border-radius:50%;outline:1px solid #e4e9da;place-items:center;width:46px;height:46px;font:22px serif;display:grid}.step b{font-size:10px;font-weight:500}.step small{color:#a2aa9d;font-size:8px}.step.complete>span{color:#fff;background:#406b4b}.card{background:#fff;border:1px solid #e6eae1;border-radius:14px;padding:24px}.daily .section-heading{color:#536749;margin:0}.daily .section-heading h3{font-size:14px}.goal-ring{background:conic-gradient(#7f995e var(--progress),#edf1e5 0);border-radius:50%;width:139px;height:139px;margin:24px auto 15px;padding:8px;transform:rotate(-30deg)}.goal-ring>div{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;transform:rotate(30deg)}.goal-ring b{font-size:37px;font-weight:700}.goal-ring b span{color:#b2b9aa;margin-right:6px;font-size:17px}.goal-ring small{color:#9aa48d;font-size:9px}.daily h4{text-align:center;font-size:13px}.daily p{text-align:center;color:#a0a790;margin:7px 0 20px;font-size:9px}.week{border-top:1px solid #f0f2eb;justify-content:space-between;padding-top:16px;display:flex}.week>div{flex-direction:column;align-items:center;gap:8px;display:flex}.week small{color:#9ca693;font-size:8px}.week span{background:#f3f5ed;border-radius:50%;place-items:center;width:21px;height:21px;display:grid}.week i{background:#d7dfce;border-radius:50%;width:4px;height:4px}.week .checked{color:#fff;background:#74905c}.assignment{background:#fcfbf5;border-color:#ece9da;margin-top:20px}.assignment h3{margin:14px 0 10px;font-size:14px}.assignment p{color:#929482;font-size:11px;line-height:2}.assignment .text-btn{color:#9c916c;margin-top:15px}.word-day{text-align:center;background:#f7f9f2;border:1px dashed #dce4d3;border-radius:13px;margin-top:20px;padding:19px}.word-day .eyebrow{justify-content:center}.word-day strong{color:#6e815c;margin-top:15px;font:52px serif;display:block}.word-day>span{color:#a1ad92;font-size:11px}.word-day p{margin-top:8px;font-size:12px}.word-day>div:last-child{color:#a5ae98;margin-top:14px;font-size:9px}footer{color:#a5afa0;align-items:center;gap:7px;padding:29px 0 22px;font-size:9px;display:flex}footer span{margin-right:auto}.info-strip{background:#e8efdf;border-radius:12px;align-items:center;gap:17px;margin-bottom:24px;padding:24px;display:flex}.info-strip p{color:#78866c;font-size:12px}.info-strip b{margin-right:auto}.path-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.path-card>.lesson-char{width:75px;height:80px;margin-bottom:20px;font-size:45px}.path-card>small{color:#8a9b80}.path-card h2{margin:10px 0}.path-card p{color:#8c9983;font-size:12px}.preview-words{gap:8px;margin:23px 0;display:flex}.preview-words span{background:#f5f7f1;border-radius:7px;padding:8px}.toolbar{gap:15px;margin-bottom:24px;display:flex}.toolbar input{flex:1;min-width:0}.word-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.vocabulary{text-align:center;padding-top:42px;position:relative}.vocabulary strong{color:#477050;margin:15px 0;font:40px serif;display:block}.vocabulary>span{color:#93a287;font-size:13px}.vocabulary h3{margin:13px 0}.vocabulary small{color:#96a28b;font-size:9px}.sound{color:#72925d;background:#f0f4e9;border:0;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:inline-flex}.vocabulary .sound{position:absolute;top:12px;left:12px}.class-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.class-grid h2{margin:14px 0}.assignment-box{background:#f4f5ed;border-radius:10px;gap:15px;margin:25px 0;padding:20px;display:flex}.assignment-box svg{flex-shrink:0}.assignment-box p{color:#768268;margin-top:12px;font-size:13px}.gold{color:#be9b54}progress{accent-color:#7c9b60;background:#e9eee2;border:0;border-radius:10px;width:100%;height:8px;overflow:hidden}progress::-webkit-progress-bar{background:#e9eee2}progress::-webkit-progress-value{background:#7c9b60;border-radius:10px}.class-grid progress{margin-top:25px}.notice{color:#8c7952;background:#f3ecd7;border:1px solid #e9ddbc;border-radius:10px;margin-bottom:23px;padding:15px;font-size:12px}.form{flex-direction:column;gap:16px;display:flex}.form h2{margin:0 0 5px}.form label{color:#71816a;flex-direction:column;gap:7px;font-size:12px;display:flex}input,textarea,select{color:#365037;background:#fafbf7;border:1px solid #dde5d6;border-radius:7px;outline:none;width:100%;padding:11px 13px}input:focus,textarea:focus,select:focus{border-color:#839e6b;box-shadow:0 0 0 3px #dbe8ce}textarea{resize:vertical;min-height:110px}.form-row{gap:12px;display:flex}.form-row>*{flex:1;min-width:0}.class-grid .outline-btn{margin-top:18px}.toast{color:#fff;z-index:100;background:#264d3c;border-radius:12px;align-items:center;gap:18px;max-width:min(460px,90vw);padding:17px 22px;font-size:13px;display:flex;position:fixed;bottom:25px;left:25px;right:auto;box-shadow:0 8px 40px #173d3330}.toast button{color:#fff;background:0 0;border:0;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:50;background:#18382fcc;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.exercise{background:#fcfdf8;border-radius:22px;width:100%;max-width:550px;max-height:92vh;padding:38px;position:relative;overflow:auto;box-shadow:0 25px 90px #122f3366}.close{color:#829079;background:0 0;border:0;padding:5px;display:flex;position:absolute;top:17px;left:18px}.exercise>.eyebrow{margin:5px 0 20px}.exercise h2{text-align:center;margin:25px 0;font-size:21px}.question-word{text-align:center;background:#edf2e5;border-radius:15px;margin:20px 0;padding:25px;position:relative}.question-word strong{color:#375b39;font:65px serif;display:block}.question-word>span{color:#869673;margin-top:12px;font-size:17px;display:block}.question-word .sound{background:#fff9;position:absolute;top:13px;left:13px}.answers{grid-template-columns:1fr 1fr;gap:12px;display:grid}.answer{color:#46613e;text-align:right;background:#fff;border:1px solid #dce3d3;border-radius:10px;align-items:center;gap:12px;padding:16px;font-size:13px;display:flex}.answer>span{color:#9caa91;border:1px solid #e3e9dc;border-radius:5px;padding:1px 6px;font-size:10px}.feedback{justify-content:space-between;align-items:center;gap:10px;margin-top:21px;font-size:13px;display:flex}.feedback.good p{color:#547b36}.feedback.bad p{color:#ae7259}.flip{color:#536e42;background:#fff;border:1px dashed #bbcda9;border-radius:10px;width:100%;margin-bottom:18px;padding:22px}.result{text-align:center}.result .eyebrow{justify-content:center}.result-icon{color:#91a254;background:#e7edce;border-radius:50%;place-items:center;width:88px;height:88px;margin:20px auto;display:grid}.result>strong{color:#698e48;direction:ltr;margin:20px;font-size:34px;display:block}.result .dark-btn{margin-top:25px}.empty{text-align:center;color:#8c9984;padding:50px}.sidebar{width:205px;padding:30px 18px 20px}main{margin-right:205px}.topbar{padding:0 25px}.dashboard{grid-template-columns:minmax(0,1fr) 225px;gap:18px}.hero{min-height:335px;padding:24px}.hero-meta{gap:8px}.review-banner{flex-wrap:wrap}.card{padding:20px}.dashboard{grid-template-columns:1fr}.secondary-column{grid-template-columns:1fr 1fr;gap:18px;display:grid}.assignment{margin:0}.word-day{display:none}.hero{min-height:320px}.hero-art{width:42%}.lesson-grid{grid-template-columns:1fr 1fr}.lesson-card{padding:15px 12px}.lesson-char{width:42px;height:53px}.circle-arrow{display:none}.daily .goal-ring{width:100px;height:100px;margin:16px auto}.daily .goal-ring b{font-size:28px}.daily p{margin-bottom:12px}.page-heading .date{display:none}.word-grid{grid-template-columns:repeat(2,1fr)}.class-grid{grid-template-columns:1fr}.top-stats{gap:12px}.local-badge{display:none!important}.sidebar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffed;border-top:1px solid #e3e9dc;border-left:0;width:100%;height:70px;padding:0 5px;top:auto;bottom:0}.sidebar .brand,.sidebar .class-label,.sidebar-note,.profile{display:none}.sidebar nav{justify-content:space-around;align-items:center;width:100%;height:100%;display:flex}.nav{border-radius:9px;flex-direction:column;gap:5px;width:20%;margin:0;padding:8px 3px;font-size:9px;display:flex}.nav svg{width:19px;height:19px}.nav.active{color:#315d3d;background:0 0}.nav-dot{display:none}main{margin:0;padding-bottom:75px}.topbar{height:61px;padding:0 19px}.breadcrumb{gap:8px;font-size:10px}.top-stats{gap:15px;font-size:10px}.top-stats svg{width:15px}.content{padding:24px 18px 0}.page-heading{margin-bottom:23px}h1{font-size:24px}.page-heading p{font-size:10px}.eyebrow{font-size:9px}.hero{border-radius:15px;min-height:307px;padding:23px 20px}.hero h2{font-size:29px}.hero p{font-size:10px}.hero-copy{width:58%}.hero-art{width:42%;left:-10px}.hanzi-card{width:81px;height:115px;font-size:48px}.hanzi-card.front{top:132px;left:57px}.hanzi-card.back{top:80px;left:0}.hanzi-card small{font-size:8px}.sun{width:120px;height:120px;top:60px;left:0}.art-star{font-size:44px;top:35px;left:65px}.orbit{width:180px;height:210px;left:-10px}.art-caption{letter-spacing:1px;font-size:6px;bottom:28px;left:4px}.hero .dark-btn{margin-top:18px;padding:10px 14px;font-size:11px}.hero-meta{gap:10px;font-size:8px}.pill{font-size:8px}.section-heading{margin-top:25px}.section-heading h2{font-size:14px}.lesson-grid{gap:10px}.lesson-card{flex-wrap:wrap;gap:9px;padding:13px 10px}.lesson-card .lesson-char{width:40px;height:43px;font-size:26px}.lesson-card>div:nth-child(2){width:100%}.lesson-card h3{font-size:13px}.lesson-card p{font-size:9px}.review-banner{gap:10px;padding:17px 13px}.review-banner h3{font-size:12px}.review-banner p{font-size:9px}.review-banner .outline-btn{margin-right:36px}.step b{font-size:9px}.step small{font-size:8px}.secondary-column{grid-template-columns:1fr 1fr;gap:12px}.secondary-column .card{padding:15px}.daily h4{font-size:11px}.daily p{font-size:8px}.week small{font-size:6px}.week span{width:17px;height:17px}.assignment h3{font-size:12px}.assignment p{font-size:10px}.daily .section-heading h3{font-size:12px}.word-grid{gap:12px}.vocabulary{padding:35px 12px 20px}.vocabulary strong{font-size:34px}.toolbar{flex-direction:column}.toolbar input{font-size:12px}.path-grid{grid-template-columns:1fr}.path-card>.lesson-char{float:left}.path-card .dark-btn{width:100%}.class-grid h2{font-size:19px}footer{flex-wrap:wrap;font-size:8px}footer span{display:none}.exercise{border-radius:17px;padding:33px 20px 24px}.exercise h2{font-size:18px}.question-word strong{font-size:55px}.answer{gap:8px;padding:14px 10px;font-size:12px}.feedback{font-size:11px}.feedback .dark-btn{padding:10px 14px}.modal-backdrop{padding:12px}.form-row{gap:9px}.notice{font-size:11px}.info-strip{gap:12px;padding:18px}.info-strip p{font-size:10px}.info-strip h3{font-size:14px}.audio-studio{margin-bottom:25px}.audio-studio .section-heading{margin:0 0 15px}.audio-studio h2{margin-top:8px}.audio-local-note{color:#8e805d;background:#f4f1e5;border-radius:8px;margin:15px 0 23px;padding:12px 15px;font-size:11px}.studio-layout{grid-template-columns:1fr 1fr;gap:25px;display:grid}.studio-layout .toolbar{gap:10px}.studio-layout select,.studio-layout input{min-width:0;font-size:11px}.studio-layout select{max-width:50%}.recording-list{border:1px solid #e1e8da;border-radius:10px;max-height:410px;overflow:auto}.recording-item{text-align:right;color:#36543e;background:#fff;border:0;border-bottom:1px solid #edf0e8;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:15px;display:flex}.recording-item.selected{background:#e9f0df;box-shadow:inset -3px 0 #76945d}.recording-item b{font-size:20px;font-weight:500}.recording-item small{color:#859275;margin-top:5px;font-size:10px;display:block}.audio-state{white-space:nowrap;color:#aaa78d;font-size:9px}.audio-state.recorded{color:#638347;background:#e4edda;border-radius:20px;padding:4px 8px}.recorder-panel{text-align:center;background:#f8faf3;border:1px solid #e1e9d7;border-radius:12px;padding:23px}.recorder-panel>.eyebrow{justify-content:center}.recorder-panel>h3{overflow-wrap:anywhere;margin:18px 0 10px;font-size:32px}.recorder-panel>p{color:#7c8c70;font-size:13px}.recorder-panel>.dark-btn,.record-stop{min-height:46px;margin:23px auto 5px}.record-stop{color:#ad5b42;background:#f7e5dd;border:1px solid #d7a798;border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;display:flex}.saved-audio,.draft-audio{background:#fff;border:1px solid #e1e7d7;border-radius:9px;margin-top:20px;padding:16px}.saved-audio small{color:#7d906c}.recorder-panel audio{width:100%;margin:12px 0;display:block}.draft-audio b{font-size:12px}.draft-audio .dark-btn,.draft-audio .outline-btn{gap:8px;padding:10px;font-size:11px}.draft-audio>.text-btn{margin:15px auto 0}.record-error{background:#f4e0d9;border-radius:8px;margin-top:15px;padding:12px;color:#a65945!important}.record-success{background:#e7f0dd;border-radius:8px;margin-top:15px;padding:12px}.audio-label{color:#9a9e8d;margin:10px 0;font-size:9px;display:block}.book-source{min-height:48px;margin-top:15px}.preview-words{flex-wrap:wrap}.phrase-text{overflow-wrap:anywhere;font-size:27px!important;line-height:1.7!important}.question-word .phrase-text{padding:10px;font-size:35px!important}.vocabulary{flex-direction:column;justify-content:center;display:flex}.vocabulary>strong{min-height:55px}.vocabulary>span,.answers .answer{overflow-wrap:anywhere}.recorder-panel .empty svg{margin-bottom:15px}button:disabled{opacity:.6}.studio-layout{grid-template-columns:1fr}.recording-list{max-height:250px}.studio-layout .toolbar{flex-direction:row}.recorder-panel{padding:18px}.question-word .phrase-text{font-size:27px!important}.recorder-panel>h3{font-size:27px}.audio-studio{padding:17px}.phrase-text{font-size:23px!important}.vocabulary h3{font-size:13px}:root{background:#e9ede5}body{min-width:320px}.app{background:#f7f8f5;width:100%;max-width:430px;min-height:100dvh;margin-inline:auto;box-shadow:0 0 0 1px #dce3d5,0 12px 80px #2545350c}.sidebar{width:min(100%,430px);height:calc(70px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);right:50%;transform:translate(50%)}main{padding-bottom:calc(75px + env(safe-area-inset-bottom,0px))}.content{max-width:100%}.exercise{max-width:406px}.toast{left:50%;right:auto;bottom:calc(85px + env(safe-area-inset-bottom,0px));width:min(390px,100% - 32px);transform:translate(-50%)}:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.35,.64,1)}.sidebar{border-top-color:#dce6d5;box-shadow:0 -6px 28px #29493608}.sidebar nav{isolation:isolate;position:relative}.nav-indicator{pointer-events:none;width:20%;height:54px;transition:transform .46s var(--ease-spring);z-index:-1;position:absolute;top:7px;right:0}.nav-indicator:before{content:"";background:linear-gradient(150deg,#e5eedc,#eff4e9);border:1px solid #dde8d3;border-radius:17px;position:absolute;inset:0 5px}.sidebar .nav{min-height:54px;transition:color .22s ease, transform .18s var(--ease-out)}.sidebar .nav svg{transition:transform .38s var(--ease-spring), stroke-width .22s ease}.sidebar .nav.active{color:#315e3e;font-weight:700}.sidebar .nav.active svg{stroke-width:2.3px;transform:translateY(-2px)scale(1.12)}.sidebar .nav:active{transform:scale(.94)}.sidebar .nav:active svg{transform:translateY(1px)scale(.92)}.content{animation:page-arrive .38s var(--ease-out) both}.content>.page-heading{animation:heading-arrive .46s var(--ease-out) both}.path-card,.vocabulary{animation:card-arrive .43s var(--ease-out) both}.path-card:nth-child(2),.vocabulary:nth-child(2){animation-delay:35ms}.path-card:nth-child(3),.vocabulary:nth-child(3){animation-delay:65ms}.path-card:nth-child(4),.vocabulary:nth-child(4){animation-delay:90ms}.dark-btn,.outline-btn,.lesson-card,.answer,.recording-item,.sound{transition:transform .2s var(--ease-out), background-color .2s ease, border-color .2s ease, box-shadow .2s ease}.dark-btn:active,.outline-btn:active,.lesson-card:active,.answer:not(:disabled):active{transform:scale(.975)}.sound:active{transform:scale(.88)}.dark-btn svg,.outline-btn svg,.text-btn svg{transition:transform .25s var(--ease-out)}@media (hover:hover){.dark-btn:hover{box-shadow:0 5px 14px #274d3a20}.dark-btn:hover svg,.outline-btn:hover svg,.text-btn:hover svg{transform:translate(-3px)}.lesson-card:hover{border-color:#bed1ac;transform:translateY(-2px)}}.modal-backdrop{animation:.18s both veil-arrive}.exercise{transform-origin:50% 80%;animation:sheet-arrive .36s var(--ease-out) both}.feedback{animation:feedback-arrive .25s var(--ease-out) both}.answer.correct{animation:correct-settle .3s var(--ease-out)}.result-icon{animation:reward-arrive .6s var(--ease-spring) both}.draft-audio,.record-success,.record-error{animation:feedback-arrive .28s var(--ease-out) both}.toast{animation:toast-arrive .3s var(--ease-out) both}.toast.toast-leaving{pointer-events:none;animation:.28s cubic-bezier(.4,0,1,1) both toast-leave}@keyframes toast-leave{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,10px)}}@keyframes page-arrive{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes heading-arrive{0%{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes card-arrive{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes veil-arrive{0%{opacity:0}to{opacity:1}}@keyframes sheet-arrive{0%{opacity:0;transform:translateY(25px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes feedback-arrive{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes correct-settle{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@keyframes reward-arrive{0%{opacity:0;transform:scale(.6)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes toast-arrive{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.progress-badges{z-index:25;direction:rtl;align-items:center;gap:7px;display:flex;position:relative}.progress-chip{isolation:isolate;min-height:39px;transition:transform .25s var(--ease-spring),box-shadow .25s ease,border-color .25s ease;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:4px;padding:4px 9px 4px 6px;display:flex;position:relative;overflow:hidden}.progress-chip b{animation:badge-number .4s var(--ease-spring);font-size:13px;font-weight:800}.progress-chip small{opacity:.7;font-size:8px;font-weight:500}.badge-emblem{flex-shrink:0;place-items:center;width:24px;height:27px;display:grid}.streak-chip{color:#b36532;background:#fff3e9;border-color:#f3dbc8}.streak-chip.lit .badge-emblem svg{fill:#efb477;stroke:#d58041;filter:drop-shadow(0 2px 3px #e89b5c38);animation:flame-welcome .7s var(--ease-spring)}.xp-chip{color:#947222;background:linear-gradient(140deg,#fff9de,#f7efcd);border-color:#ede0b0;padding-bottom:7px}.xp-chip .badge-emblem svg{fill:#e8c75c;stroke:#b28c27}.chip-track{background:#e9dfb5;border-radius:4px;height:2px;position:absolute;bottom:3px;left:9px;right:9px}.chip-track i{height:100%;transition:width .7s var(--ease-out);background:#bf9b37;border-radius:4px;display:block}.progress-chip[aria-expanded=true]{border-color:currentColor;transform:translateY(-1px);box-shadow:0 3px 10px #604a1712}.progress-chip:active{transform:scale(.94)}.progress-chip:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff90,#0000);width:30%;position:absolute;inset:-30% auto -30% -50%;transform:skew(-20deg)}@media (hover:hover){.progress-chip:hover:after{animation:.65s badge-shine}.progress-chip:hover .badge-emblem{transition:transform .25s var(--ease-spring);transform:rotate(-8deg)}}.badge-details{text-align:right;width:270px;max-width:calc(100vw - 36px);animation:badge-pop .25s var(--ease-out);transform-origin:35% 0;background:#fffefa;border:1px solid #e9e6d8;border-radius:18px;padding:22px 18px 16px;position:absolute;top:49px;left:0;box-shadow:0 14px 40px #213e3424}.badge-details h3{align-items:center;gap:5px;margin:12px 0 7px;font-size:15px;display:flex}.badge-details p{color:#8c8f79;font-size:11px;line-height:1.9}.badge-close{color:#839078;background:#f2f3eb;border:0;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:10px;left:10px}.detail-emblem{color:#d28546;background:#fbebd9;border-radius:13px;place-items:center;width:43px;height:43px;display:grid}.badge-details.xp .detail-emblem{color:#b49231;background:#f7efc9}.detail-emblem svg{fill:#eed09860}.badge-footnote{color:#9b9d89;border-top:1px solid #edeee5;margin-top:14px;padding-top:11px;font-size:9px;line-height:1.9}.level-track{background:#eee9d5;border-radius:8px;height:7px;margin-top:15px;overflow:hidden}.level-track i{height:100%;animation:level-fill .65s var(--ease-out);transform-origin:100%;background:linear-gradient(90deg,#dac168,#ac8c30);border-radius:8px;display:block}.level-label{color:#a0997b;justify-content:space-between;margin-top:7px;font-size:9px;display:flex}.topbar{z-index:26;position:relative}.breadcrumb{flex-shrink:1;min-width:0}.breadcrumb b{white-space:nowrap}@keyframes badge-number{0%{opacity:.2;transform:translateY(5px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes flame-welcome{0%{transform:rotate(-14deg)scale(.7)}60%{transform:rotate(7deg)scale(1.12)}to{transform:rotate(0)scale(1)}}@keyframes badge-shine{to{left:140%}}@keyframes badge-pop{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes level-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (width<=360px){.progress-chip{gap:2px;padding-inline:5px}.badge-emblem{width:20px}.breadcrumb{gap:4px;font-size:9px}.progress-badges{gap:4px}}.streak-flame{isolation:isolate;vertical-align:middle;justify-content:center;align-items:center;width:29px;height:35px;display:inline-flex;position:relative}.streak-flame>svg{filter:drop-shadow(0 2px 2px #eb82242b);width:100%;height:100%;position:relative;overflow:visible}.flame-halo{opacity:.18;filter:blur(7px);background:#ffb33d;border-radius:50%;position:absolute;inset:28% 10% 8%}.flame-body{transform-origin:40px 83px;animation:1.9s ease-in-out infinite flame-dance}.flame-core{transform-origin:42px 80px;animation:1.3s ease-in-out infinite alternate core-dance}.flame-shadow{transform-origin:40px 89px;animation:1.9s ease-in-out infinite shadow-breathe}.flame-halo{animation:2.3s ease-in-out infinite halo-breathe}.flame-spark{opacity:0;animation:2.8s ease-out infinite ember-rise}.spark-two{animation-delay:1s}.spark-three{animation-delay:1.8s}.detail-emblem:has(.streak-flame){background:radial-gradient(#fff0ce 0,#0000 65%);border-radius:0;width:100%;height:108px;margin:0 0 6px}.detail-emblem .streak-flame{width:80px;height:96px}.streak-chip .badge-emblem{width:27px;height:31px}.streak-chip.lit .badge-emblem .streak-flame>svg{fill:none;stroke:none;filter:drop-shadow(0 2px 2px #eb82242b);animation:none}.detail-emblem .streak-flame svg{fill:none}.streak-flame.is-celebrating{animation:.65s cubic-bezier(.22,1,.36,1) both flame-cheer}.is-unlit{filter:grayscale();opacity:.5}.is-unlit .flame-body,.is-unlit .flame-core,.is-unlit .flame-shadow,.is-unlit .flame-halo,.is-unlit .flame-spark{animation:none}.is-unlit .flame-halo{opacity:0}.progress-chip:hover .badge-emblem:has(.streak-flame){transform:none}@keyframes flame-dance{0%,to{transform:rotate(-3deg)scaleX(.98)}35%{transform:rotate(2deg)scale(1.025,.96)}70%{transform:rotate(-1deg)scale(.96,1.045)}}@keyframes core-dance{0%{transform:scale(.92,1.02)rotate(-2deg)}to{transform:scale(1.05,.93)rotate(3deg)}}@keyframes halo-breathe{0%,to{opacity:.13;transform:scale(.85)}50%{opacity:.28;transform:scale(1.13)}}@keyframes shadow-breathe{0%,to{opacity:.16;transform:scaleX(1)}70%{opacity:.1;transform:scaleX(.85)}}@keyframes ember-rise{0%{opacity:0;transform:translateY(10px)scale(.6)}20%{opacity:.8}65%,to{opacity:0;transform:translate(3px,-14px)scale(.3)}}@keyframes flame-cheer{0%{transform:translateY(7px)scale(.65,.8)}45%{transform:translateY(-5px)scale(1.12,1.15)}70%{transform:translateY(2px)scale(1.04,.94)}to{transform:translateY(0)scale(1)}}.streak-back{color:#8f927c;margin-bottom:20px;font-size:11px}.streak-stage{text-align:center;background:radial-gradient(at 50% 27%,#fff0ce 0%,#fff8ed 45%,#fcfaf5 80%);border:1px solid #f0e5d4;border-radius:24px;padding:25px 20px 22px;overflow:hidden}.streak-kicker{letter-spacing:.4px;color:#b38e5a;font-size:10px}.streak-sun{background:radial-gradient(#ffd88b45,#0000 65%);place-items:center;height:183px;margin:4px 0 0;display:grid}.streak-sun .streak-flame{width:135px;height:162px}.streak-number{color:#c47735;font-variant-numeric:tabular-nums;font-size:65px;font-weight:800;line-height:1.2}.streak-number>span{color:#b98952;margin-top:8px;font-size:16px;font-weight:600;display:block}.streak-stage h2{color:#63492f;margin:22px 0 10px;font-size:18px}.streak-stage p{color:#a7967e;font-size:11px;line-height:2}.streak-today{color:#9e896a;background:#f0e9dc;border-radius:20px;align-items:center;gap:7px;margin-top:20px;padding:8px 13px;font-size:10px;display:inline-flex}.streak-today.done{color:#7d8a46;background:#ebefd9}.streak-records{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}.streak-records>div{background:#fff;border:1px solid #e7e8dc;border-radius:15px;flex-direction:column;align-items:center;gap:8px;padding:20px 8px;display:flex}.streak-records svg{color:#b39d63}.streak-records b{color:#626f4d;font-size:24px}.streak-records small{font-size:11px;font-weight:400}.streak-records span{color:#9b9f8b;font-size:10px}.streak-calendar{padding:20px 16px}.streak-calendar .section-heading,.streak-milestone .section-heading{margin:0 0 10px}.streak-calendar .section-heading>span,.streak-milestone .section-heading>span{color:#9f9b80;font-size:10px}.streak-calendar>p{color:#9b9f8b;margin-bottom:18px;font-size:10px}.streak-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.streak-day{text-align:center;background:#f3f5ed;border:1px solid #0000;border-radius:9px;min-height:52px;padding:7px 0}.streak-day small{color:#a4ad96;font-size:8px;display:block}.streak-day>span{color:#9daa8d;place-items:center;height:21px;font-size:10px;display:grid}.streak-day.practiced{background:#fff0d5;border-color:#f7ddb1}.streak-day.practiced>span{color:#d08b3c}.streak-day.today{outline-offset:1px;outline:2px solid #aab78e}.streak-calendar-key{color:#9ba489;justify-content:center;gap:19px;margin-top:17px;font-size:9px;display:flex}.streak-calendar-key span{align-items:center;gap:5px;display:flex}.streak-calendar-key i{background:#ffdfac;border-radius:3px;width:9px;height:9px}.streak-calendar-key span:last-child i{background:0 0;border:1px solid #aab78e}.streak-milestone{background:#faf9f0;margin:18px 0}.streak-milestone h3{align-items:center;gap:8px;font-size:13px;display:flex}.streak-milestone p{color:#9c9a7b;margin-top:10px;font-size:10px}.streak-practice{width:100%;padding:14px}.streak-explainer{text-align:center;color:#a0a592;padding:18px 10px 0;font-size:10px}.streak-page{animation:page-arrive .4s var(--ease-out) both}.month-viewport{box-sizing:border-box;margin:-3px;padding:3px;transition:height .32s cubic-bezier(.22,1,.36,1);overflow:hidden}.month-slide{animation:.32s cubic-bezier(.22,1,.36,1) both calendar-month-in}.month-title-motion{animation:.28s ease-out both calendar-month-title}@keyframes calendar-month-in{0%{opacity:0;transform:translateX(var(--month-shift))}to{opacity:1;transform:translate(0)}}@keyframes calendar-month-title{0%{opacity:0;transform:translateX(calc(var(--month-shift)*.4))}to{opacity:1;transform:translate(0)}}.app .lesson-guide{font-size:16px;line-height:1.95}.app .guide-title{align-items:center;gap:16px;margin:24px 0;display:flex}.app .guide-title>div{flex:1;min-width:0}.app .guide-title .lesson-char{flex-shrink:0;width:64px;height:76px;font-size:42px}.app .guide-title h1{margin:4px 0;font-size:26px}.app .guide-title p{text-align:left;color:#168bc1;overflow-wrap:anywhere;font-size:17px}.app .guide-goal{background:#ddf4ff;border:2px solid #b5e5fc;border-radius:18px;align-items:flex-start;gap:12px;padding:18px;display:flex}.guide-goal svg{flex-shrink:0;margin-top:4px}.guide-jumps{flex-wrap:wrap;gap:8px;margin:18px 0 26px;display:flex}.guide-jumps a{color:#168bc1;border:2px solid #e5e5e5;border-radius:12px;padding:8px 12px;font-size:14px;font-weight:700}.app .lesson-guide section[id]{scroll-margin-top:110px}.app .lesson-guide h2{margin:28px 0 16px;font-size:23px}.app .lesson-guide h3{margin-bottom:12px;font-size:19px}.app .guide-note{margin-bottom:16px;padding:20px}.app .guide-note p{font-size:16px;line-height:2}.guide-step{color:#a46b00;background:#fff2b3;border-radius:10px;place-items:center;width:32px;height:32px;margin-bottom:12px;font-weight:800;display:grid}.guide-example{background:#f0faff;border-radius:14px;flex-direction:column;gap:10px;margin-top:18px;padding:16px;display:flex}.guide-example strong{text-align:left;overflow-wrap:anywhere;font-family:serif;font-size:28px;font-weight:500}.guide-example>span{color:#168bc1;text-align:left;overflow-wrap:anywhere;font-size:17px}.guide-example p{font-size:16px}.app .guide-vocabulary{padding:4px 18px}.guide-word{justify-content:space-between;align-items:center;gap:12px;padding:17px 0;display:flex}.guide-word+.guide-word{border-top:1px solid #e5e5e5}.guide-word>div{flex:1;min-width:0}.guide-word strong{text-align:left;font-family:serif;font-size:28px;font-weight:500;display:block}.guide-word span{text-align:left;color:#168bc1;overflow-wrap:anywhere;display:block}.guide-word p{margin-top:7px;font-size:16px}.guide-word .sound{flex-shrink:0}.app .guide-phrase{margin-bottom:14px;padding:16px}.guide-phrase .guide-example{background:0 0;margin:0;padding:0}.guide-phrase .sound{margin-top:14px}.app .guide-check{background:#fff8dd;border-color:#ffe79e;margin-top:26px}.app .guide-check h2,.app .guide-speaking h2{margin-top:0}.guide-check details{margin-top:18px}.guide-check summary{cursor:pointer;color:#996b00;padding:10px 0;font-weight:800}.guide-check details p{border-top:1px solid #e8dcae;margin-top:10px;padding-top:14px}.app .guide-speaking{background:#f1ffe6;margin-top:20px}.app .guide-source{color:#777;margin:24px 0;font-size:13px;line-height:1.9}.app .guide-practice,.app .guide-next{width:100%}.app .guide-next{margin-top:14px}.app .path-card .guide-open{width:100%;margin-bottom:12px}.app .review-card-shell{perspective:1100px;margin:22px 0;position:relative}.app .review-card{width:100%;color:inherit;text-align:center;cursor:pointer;box-shadow:none;background:0 0;border:0;border-radius:22px;padding:0;display:block;transform:none}.app .review-card-inner{transform-style:preserve-3d;transition:transform .65s cubic-bezier(.22,.7,.2,1);display:grid}.app .review-card.is-flipped .review-card-inner{transform:rotateY(180deg)}.app .review-card-face{box-sizing:border-box;backface-visibility:hidden;background:#ddf4ff;border:2px solid #a9e5ff;border-bottom-width:5px;border-radius:22px;flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;gap:22px;min-height:290px;padding:42px 22px 24px;display:flex}.app .review-card-back{background:#f1ffe5;border-color:#bee99a;transform:rotateY(180deg)}.app .review-card-caption{color:#59808e;font-size:14px;font-weight:600}.app .review-card-front strong{color:#078ac3;overflow-wrap:anywhere;font-size:64px;font-weight:500;line-height:1.4}.app .review-card-front strong.review-phrase{font-size:36px}.app .review-card-back strong{color:#477229;overflow-wrap:anywhere;font-size:27px;line-height:1.8}.app .review-pinyin{color:#078ac3;font-size:21px;line-height:1.6}.app .review-card-hint{color:#678590;justify-content:center;align-items:center;gap:7px;margin-top:auto;padding-top:8px;font-size:13px;font-weight:500;display:flex}.app .review-card-sound{color:#1cb0f6;cursor:pointer;background:#fff;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:12px;left:12px}.app .review-card:focus-visible{outline-offset:4px;outline:3px solid #1cb0f6}.app .review-action-reveal{grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.22,.7,.2,1);display:grid}.app .review-action-reveal.is-open{grid-template-rows:1fr}.app .review-action-slot{align-items:center;min-height:0;display:grid;overflow:hidden}.app .review-action-slot .review-action-panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:1/1;margin:0;transition:opacity .25s,transform .25s,visibility 0s linear .25s;transform:translateY(6px)}.app .review-action-slot .review-action-panel.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:.18s,.18s,0s;transform:translateY(0)}.app .review-action-slot .feedback p{margin:0 0 10px}.app .review-action-slot .review-ratings{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.app .review-ratings>button{white-space:normal;width:100%;min-width:0;min-height:56px;padding:10px 6px;font-size:14px;line-height:1.6}.app .review-ratings .review-partial{color:#947000;background:#fff7db;border-color:#f4d780}.app .review-status-open{width:100%;margin-bottom:18px}.app .review-status-filters{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.app .review-status-filters button{padding:10px 6px;font-size:14px}.app .review-status-filters [aria-pressed=true]{background:#ddf4ff;border-color:#1cb0f6}.app .review-status-list{gap:14px;margin-top:16px;display:grid}.app .review-status-list article{gap:8px;display:grid}.app .review-status-list article>strong{font-size:32px}.app .review-summary{text-align:right;gap:8px;margin:18px 0;display:grid}.app .review-summary p{background:#f5f9ef;border-radius:10px;justify-content:space-between;gap:16px;padding:8px 12px;display:flex}.app .practice-hub{padding-bottom:10px}.app .practice-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.app .practice-nav h2{margin:0;font-size:23px}.app .practice-hub label{gap:8px;font-size:16px;display:grid}.app .practice-hub select{width:100%;min-height:50px;font:inherit;background:#fff;border:2px solid #e5e5e5;border-radius:14px;padding:10px}.app .practice-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.app .practice-mode{text-align:right;cursor:pointer;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;padding:18px 14px;display:flex}.app .practice-mode strong{font-size:17px}.app .practice-mode small{color:#777;font-size:13px;line-height:1.8}.app .practice-mode-icon{color:#078ac3;background:#ddf4ff;border-radius:15px;place-items:center;width:48px;height:48px;font-size:29px;font-weight:800;display:grid}.app .mode-sentence .practice-mode-icon,.app .mode-speak .practice-mode-icon{color:#a25be4;background:#f0e4ff}.app .mode-write .practice-mode-icon,.app .mode-tone .practice-mode-icon{color:#d29300;background:#fff3cc}.app .practice-counter{color:#888;margin-bottom:12px;font-size:14px}.app .practice-hub progress{width:100%;height:12px}.app .practice-task{gap:18px;margin-top:22px;display:grid}.app .practice-task h3{text-align:center;font-size:22px}.app .practice-prompt,.app .practice-dialogue{text-align:center;overflow-wrap:anywhere;background:#ddf4ff;border-radius:20px;padding:24px 18px}.app .practice-hanzi{overflow-wrap:anywhere;text-align:center;font-size:38px;line-height:1.7;display:block}.app .practice-dialogue strong{font-size:30px;line-height:1.7;display:block}.app .practice-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app .practice-options button,.app .practice-pairs button{white-space:normal;overflow-wrap:anywhere;justify-content:center;min-height:60px;padding:12px;font-size:17px;line-height:1.7}.app .practice-hub .selected{color:#078ac3;background:#ddf4ff;border-color:#1cb0f6}.app .practice-hub .matched{color:#4f9000;opacity:1;background:#eaffd9;border-color:#8cdc53}.app .practice-hub .wrong{color:#ce4554;background:#fff0f1;border-color:#ff8c94}.app .practice-listen{color:#078ac3;cursor:pointer;background:#ddf4ff;border:2px solid #a9e5ff;border-bottom-width:5px;border-radius:24px;flex-direction:column;align-items:center;gap:10px;padding:24px;font-size:60px;display:flex}.app .practice-listen span{font-size:17px}.app .practice-pairs{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;display:grid}.app .practice-pairs>div{gap:14px;display:grid}.app .practice-pairs button{width:100%}.app .practice-token-answer,.app .practice-token-bank{border:2px dashed #b4dff4;border-radius:18px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:72px;padding:14px;display:flex}.app .practice-token-bank{border:0}.app .practice-token-answer button,.app .practice-token-bank button{cursor:pointer;background:#fff;border:2px solid #d9e2e8;border-bottom-width:4px;border-radius:12px;padding:10px 14px;font-size:23px}.app .practice-token-bank button:disabled{opacity:.2}.app .practice-good{color:#4f9000}.app .practice-bad{color:#bb4b40}.app .practice-result{justify-items:center;gap:18px;display:grid}.app .practice-speaking{gap:16px;display:grid}.app .practice-speaking audio{width:100%;max-width:100%}.app .practice-speaking small{color:#777;font-size:13px;line-height:1.8}.app .practice-speaking textarea{box-sizing:border-box;width:100%;min-height:100px;font:inherit;border:2px solid #ddd;border-radius:12px;padding:12px;display:block}.app .practice-file{border:2px dashed #b4dff4;border-radius:14px;gap:10px;padding:14px;font-size:14px;display:grid}.app .practice-file input{max-width:100%;font-size:13px}.app .practice-writing{justify-items:center;gap:16px;display:grid}.app .stroke-board{aspect-ratio:1;touch-action:none;background:#fff;border:2px solid #ddd;border-radius:18px;width:100%;max-width:280px}.app .stroke-demo{stroke-dasharray:1;stroke-dashoffset:1px;animation:.8s linear forwards stroke-draw}@keyframes stroke-draw{to{stroke-dashoffset:0}}.app .practice-entry{justify-content:center;width:100%;margin:14px 0}.app .path-card .lesson-actions{gap:14px;display:grid}.app .path-card .lesson-actions>button{width:100%;margin:0}.app .lesson-select{gap:8px;font-size:16px;display:grid;position:relative}.app .lesson-select-trigger{color:#4b4b4b;width:100%;min-height:52px;font:inherit;text-align:right;cursor:pointer;background:#fff;border:2px solid #e5e5e5;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.app .lesson-select-trigger[aria-expanded=true]{background:#f2fbff;border-color:#1cb0f6}.app .lesson-select-menu{top:calc(100% + 8px);z-index:10;overscroll-behavior:contain;scrollbar-width:none;background:#fff;border:2px solid #a9e5ff;border-radius:18px;max-height:min(320px,45dvh);padding:6px;position:absolute;inset-inline:0;overflow-y:auto;box-shadow:0 8px 24px #24526924}.app .lesson-select-option{color:#4b4b4b;cursor:pointer;border:2px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:10px 12px;display:flex}.app .lesson-select-option[aria-selected=true]{color:#078ac3;background:#ddf4ff;font-weight:700}.app .lesson-select-option.focused{background:#f2fbff;border-color:#a9e5ff}.app .lesson-select-trigger:focus-visible{outline-offset:3px;outline:3px solid #a9e5ff}.app .lesson-select-menu:focus{outline:none}.app .lesson-select-menu::-webkit-scrollbar{display:none}.app .exit-practice{text-align:center;padding:26px 22px 24px}.app .exit-panda-static{object-fit:contain;width:100%;height:100%;animation:none;display:block;transform:none}.app .exit-mascot-scene{aspect-ratio:1;width:190px;max-width:65%;margin:0 auto 10px;position:relative}.app .exit-practice h2{margin:8px 0 10px;font-size:30px}.app .exit-practice p{color:#777;margin:0 0 24px;font-size:17px;line-height:1.9}.app .exit-practice-actions{gap:14px;display:grid}.app .exit-practice-actions button{justify-content:center;width:100%;min-height:54px;font-size:17px}.app .exit-practice-actions .outline-btn{color:#888;background:#fff;border:2px solid #e5e5e5;border-bottom-width:4px;border-radius:14px}.app .heading-leaf{display:none}.app .audio-local-note{color:#937017;background:#fff8dd;border-radius:14px}.app .recorder-panel{background:#f2faff;border:2px solid #c5eaff;border-radius:18px}.app .recording-list{border:2px solid #e5e5e5;border-radius:14px}.app .recording-item{color:#4b4b4b}.app .recording-item.selected{background:#ddf4ff;box-shadow:inset -4px 0 #1cb0f6}.app .audio-state.recorded{color:#488b00;background:#d7ffb8}:root{color:#4b4b4b;--green:#58b900;--muted:#777;background:#f2f4f7}.app{background:#fff;box-shadow:0 0 0 2px #e5e5e5}.app .topbar{z-index:26;height:calc(72px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 16px 0;background:#fff;border-bottom:2px solid #e5e5e5;position:sticky;top:0}.breadcrumb{gap:5px}.breadcrumb b{color:#777;font-weight:800}.app .page-heading h1{color:#4b4b4b;font-size:26px}.page-heading p{color:#777;font-size:12px}.eyebrow{color:#888}.app .card,.app .lesson-card,.app .journey{border:2px solid #e5e5e5;border-radius:20px;box-shadow:0 3px #e5e5e5}.app .dark-btn{color:#fff;background:#58cc02;border:0;border-bottom:4px solid #46a302;border-radius:14px;gap:12px;min-height:46px;font-size:13px;font-weight:800}.app .dark-btn:active{border-bottom-width:1px;transform:translateY(3px)}.app .outline-btn{color:#1a9ed9;background:#fff;border:2px solid #e5e5e5;border-bottom-width:4px;border-radius:14px;font-weight:800}.app .text-btn{color:#159dd9;font-size:11px;font-weight:700}.app input,.app select,.app textarea{color:#4b4b4b;background:#f7f7f7;border:2px solid #e5e5e5;border-radius:12px}.app input:focus,.app select:focus,.app textarea:focus{border-color:#1cb0f6;box-shadow:0 0 0 3px #ddf4ff}.app .sidebar{box-shadow:none;background:#fff;border-top:2px solid #e5e5e5}.app .nav{color:#9a9a9a;font-weight:700}.app .nav svg{width:26px;height:26px}.app .nav.active{color:#1cb0f6}.app .nav-indicator:before{background:#e2f5ff;border:2px solid #b8e7fc;border-radius:14px}.app .hero{background:#ddf4ff;border:2px solid #b5e5fc;border-radius:22px}.app .hero h2{color:#187ab5}.app .hero p,.app .hero-meta{color:#427894}.app .pill{color:#1687bc;background:#fff;border:0;font-weight:700}.app .sun{background:#9cdefb}.app .orbit{display:none}.app .art-star{color:#ffc800}.app .hanzi-card{border:3px solid #fff;border-radius:18px;box-shadow:0 5px #1199ce33}.app .hanzi-card.front{color:#148cc7;background:#fff}.app .hanzi-card.back{color:#a96500;background:#ffc800}.app .art-caption{color:#4988a1}.app .lesson-char{border-radius:14px;font-weight:700}.app .mint{color:#58a700;background:#d7ffb8}.app .peach{color:#d77c00;background:#ffdfb5}.app .lavender{color:#a65ce5;background:#edddff}.app .cream{color:#c29700;background:#fff2b3}.app .lesson-card h3{font-size:15px}.app .lesson-card small,.app .lesson-card p{color:#777}.app .review-banner,.app .info-strip{background:#f1e5ff;border:2px solid #dfc6f7;border-radius:18px}.app .review-icon{color:#a560e8}.app .review-banner p,.app .info-strip p{color:#826795}.app .assignment,.app .assignment-box,.app .notice{color:#937017;background:#fff8dd;border-color:#ffe79e}.app .assignment p{color:#87713d}.app .goal-ring{background:conic-gradient(#58cc02 var(--progress),#e5e5e5 0)}.app .goal-ring b{color:#58b000}.app .week .checked,.app .step.complete>span{background:#58cc02}.app .step>span{color:#159dd9;background:#ddf4ff;outline-color:#b5e5fc}.app .vocabulary strong{color:#4b4b4b}.app .vocabulary>span{color:#159dd9}.app .vocabulary h3{font-size:14px}.app .vocabulary small{color:#777}.app .sound{color:#1a9ed9;background:#ddf4ff}.app .preview-words span{color:#168bbc;background:#ddf4ff}.app progress{accent-color:#58cc02;background:#e5e5e5;height:12px}.app progress::-webkit-progress-bar{background:#e5e5e5}.app progress::-webkit-progress-value{background:#58cc02}.app .progress-chip{box-shadow:none;background:#fff;border:0;border-radius:10px;gap:4px;padding:5px 4px}.app .progress-chip b{font-size:21px;font-weight:800}.app .progress-chip small{font-size:10px;font-weight:800}.app .streak-chip{color:#ff9600}.app .xp-chip{color:#1cb0f6}.app .badge-emblem{box-shadow:none;background:0 0}.app .xp-chip .badge-emblem{color:#1cb0f6}.app .chip-track{display:none}.app .badge-details{background:#fff;border:2px solid #e5e5e5;border-radius:20px}.app .xp .detail-emblem{color:#1cb0f6;background:#ddf4ff}.app .level-track i{background:#1cb0f6}.app .xp-chip .badge-emblem svg,.app .xp .detail-emblem svg{fill:currentColor;stroke:none}.app .streak-stage{background:#fff;border:0;padding:8px 12px 22px}.app .streak-kicker{color:#999;font-size:12px}.app .streak-sun{background:0 0;height:160px}.app .streak-sun .streak-flame{width:120px;height:144px}.app .streak-number{color:#ff9600;font-size:64px}.app .streak-number>span{color:#ff9600;font-size:19px;font-weight:800}.app .streak-stage h2{color:#4b4b4b;font-size:20px}.app .streak-stage p{color:#777;font-size:12px}.app .streak-today{color:#b87700;background:#fff4d5;font-weight:700}.app .streak-today.done{color:#58a700;background:#e5ffc9}.app .streak-records{border:2px solid #e5e5e5;border-radius:22px;gap:0;margin:4px 0 24px;overflow:hidden}.app .streak-records>div{border:0;border-radius:0;gap:9px;padding:24px 8px}.app .streak-records>div+div{border-right:2px solid #e5e5e5}.app .streak-records svg{color:#ffb800}.app .streak-records b{color:#4b4b4b;font-size:27px}.app .streak-records small{font-size:17px;font-weight:800}.app .streak-records span{color:#777;font-size:13px}.app .streak-calendar{box-shadow:none;padding:18px 12px}.calendar-heading{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.calendar-heading h3{color:#777;font-size:20px;font-weight:800}.calendar-heading button{color:#999;background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.calendar-heading button:disabled{opacity:.25}.month-grid{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:12px;display:grid}.month-grid>small{color:#999;padding-bottom:8px;font-size:14px;font-weight:800}.month-day{color:#888;background:#fafafa;place-items:center;height:42px;display:grid;position:relative}.month-day b{z-index:1;font-size:17px;position:relative}.month-day.future{color:#b5b5b5;background:#fafafa}.month-day.today{outline-offset:-2px;border-radius:12px;outline:2px solid #ffb800}.month-day.practiced{color:#fff}.month-day>svg{color:#1cb0f6;filter:drop-shadow(0 3px #79d7ff);width:47px;height:47px;position:absolute}.app .streak-calendar-key{color:#777;margin-top:24px;font-size:11px}.app .streak-calendar-key i{background:#1cb0f6}.app .streak-calendar-key span:last-child i{background:#fff8df;border:2px solid #ffb800}.app .calendar-total{text-align:center;color:#888;margin:16px 0 0;font-size:11px}.app .streak-milestone{background:#fff8df;border-color:#ffe69c;box-shadow:0 3px #ffe69c}.app .streak-milestone h3{color:#a46b00}.app .streak-milestone p{color:#947222;font-size:12px}.app .streak-explainer{color:#888;font-size:11px}.exercise{background:#fff;border:2px solid #e5e5e5}.question-word{background:#ddf4ff}.question-word strong{color:#168bc1}.answer{color:#4b4b4b;border:2px solid #e5e5e5;border-bottom-width:4px;border-radius:14px}.answer.correct{background:#d7ffb8;border-color:#58cc02}.answer.wrong{background:#ffdfdf;border-color:#ff4b4b}.app .journey .step.complete>span>svg{color:#fff;stroke:#fff}.app .feedback .dark-btn:disabled{color:#888;opacity:1;cursor:default;filter:none;background:#e5e5e5;border-bottom-color:#cecece;transform:none}.app .path-card>p[dir=ltr]{text-align:left;clear:both;direction:ltr;unicode-bidi:isolate}.app .toast{bottom:calc(98px + env(safe-area-inset-bottom,0px));text-align:right;align-items:center;gap:12px;width:min(394px,100% - 32px);padding:14px 16px;font-size:15px;line-height:1.9}.app .toast-message{overflow-wrap:anywhere;flex:1;min-width:0}.app .toast button{border-radius:10px;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;margin:0;padding:8px}.app{font-size:16px;font-weight:500;line-height:1.8}.app h1,.app h2,.app h3,.app h4{font-weight:800;line-height:1.6}.app .page-heading h1{font-size:28px}.app .page-heading p{font-size:16px}.app .eyebrow,.app .pill,.app .hero-meta,.app .lesson-card small,.app .lesson-card p,.app .vocabulary small,.app .audio-label,.app .book-source,.app .path-card>small,.app .audio-state,.app .recording-item small,.app .saved-audio small,.app .streak-kicker,.app .streak-today,.app .streak-calendar-key,.app .calendar-total,.app .streak-explainer,.app .streak-records span,.app .badge-footnote,.app .level-label{font-size:14px;line-height:1.9}.app .muted,.app .notice,.app .info-strip p,.app .assignment p,.app .assignment-box p,.app .review-banner p,.app .daily p,.app .path-card p,.app .audio-local-note,.app .recorder-panel>p,.app .streak-stage p,.app .streak-milestone p,.app .badge-details p,.app .form label,.app .draft-audio b{font-size:16px;line-height:1.9}.app .section-heading h2,.app .section-heading h3,.app .daily .section-heading h3,.app .review-banner h3,.app .assignment h3,.app .lesson-card h3,.app .vocabulary h3,.app .daily h4,.app .info-strip h3,.app .streak-milestone h3{font-size:19px}.app .class-grid h2,.app .audio-studio h2,.app .path-card h2,.app .streak-stage h2{font-size:24px}.app .dark-btn,.app .outline-btn,.app .hero .dark-btn,.app .review-banner .outline-btn,.app .draft-audio .dark-btn,.app .draft-audio .outline-btn,.app .record-stop{gap:10px;min-height:52px;padding:12px 16px;font-size:16px;font-weight:800}.app .text-btn{font-size:14px;line-height:1.8}.app input,.app textarea,.app select,.app .toolbar input,.app .studio-layout input,.app .studio-layout select{min-height:50px;font-size:16px}.app .breadcrumb{gap:4px;font-size:12px}.app .breadcrumb>span:first-child{display:none}.app .progress-chip b{font-size:24px}.app .progress-chip small{font-size:12px}.app .topbar{padding-inline:14px}.app .progress-badges{gap:6px}.app .hero{min-height:380px;padding:22px}.app .hero-copy{width:100%}.app .hero h2{letter-spacing:-.5px;max-width:65%;min-height:160px;font-size:32px;line-height:1.6}.app .hero p{margin-top:24px;font-size:16px}.app .hero .dark-btn{width:100%;margin-top:20px}.app .hero-art{width:32%;height:200px;top:35px;left:6px}.app .hanzi-card.front{top:85px;left:25px}.app .hanzi-card.back{top:30px;left:0}.app .sun{width:95px;height:95px;top:30px}.app .art-star{top:0;left:45px}.app .art-caption{display:none}.app .hero-meta{flex-wrap:wrap;gap:4px 14px}.app .pill{font-size:13px}.app .lesson-card{align-content:start;padding:16px 12px}.app .lesson-card h3{margin:8px 0}.app .lesson-card .lesson-char{width:52px;height:56px;font-size:34px}.app .review-banner{gap:12px;padding:20px 16px}.app .review-banner .outline-btn{width:100%;margin:4px 0 0}.app .secondary-column{grid-template-columns:1fr;gap:20px}.app .secondary-column .card{padding:22px}.app .daily .goal-ring{width:130px;height:130px}.app .goal-ring small{font-size:13px}.app .daily .goal-ring b{font-size:38px}.app .week small{font-size:12px}.app .week span{width:30px;height:30px}.app .journey{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px;display:grid}.app .journey:before{display:none}.app .step b{font-size:15px}.app .step small{font-size:13px}.app .step>span{width:55px;height:55px;font-size:27px}.app .vocabulary{padding:44px 12px 22px}.app .vocabulary strong{font-size:46px}.app .vocabulary>span{font-size:17px}.app .vocabulary .phrase-text{font-size:28px!important}.app .vocabulary h3{margin:10px 0}.app .sound{min-width:40px;min-height:40px}.app .recording-item b{font-size:28px}.app .recording-item{padding:16px 12px}.app .audio-state{white-space:normal;text-align:center}.app .studio-layout .toolbar{flex-direction:column}.app .studio-layout select{max-width:none}.app .streak-number>span{font-size:22px}.app .streak-records b{font-size:30px}.app .streak-records small{font-size:19px}.app .calendar-heading h3{font-size:22px}.app .month-day b{font-size:20px}.app .month-grid>small{font-size:16px}.app .section-heading{flex-wrap:wrap}.app .streak-milestone .section-heading>span{font-size:14px}.app .badge-details{width:300px}.app .badge-details h3{font-size:23px}.app footer{font-size:12px}.app{--content-edge-gap:24px;--bottom-nav-height:82px}.app .content{padding-top:var(--content-edge-gap)}.app .sidebar{height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}.app main{padding-bottom:calc(var(--bottom-nav-height) + var(--content-edge-gap) + env(safe-area-inset-bottom,0px))}.app .nav{gap:7px;min-height:64px;font-size:11px;font-weight:800;line-height:1.4}.app .nav-indicator{height:66px}.app .exercise h2{font-size:23px}.app .exercise .eyebrow{font-size:14px}.app .answer{min-height:58px;font-size:17px;font-weight:700}.app .answer>span{font-size:12px}.app .feedback{flex-wrap:wrap;font-size:16px}.app .feedback .dark-btn{flex:0 0 100%;width:100%;font-size:16px}.app .flip{font-size:18px}.app .question-word>span{font-size:21px}.app .question-word .phrase-text{font-size:32px!important}@media (width<=360px){.app .hero{padding:18px}.app .hero h2{font-size:28px}.app .nav{font-size:10px}.app .breadcrumb{font-size:11px}.app .topbar{padding-inline:10px}.app .progress-chip{gap:3px}.app .progress-chip b{font-size:22px}}.app .topbar .progress-chip{box-sizing:border-box;align-items:center;height:44px;min-height:44px;padding-block:4px}.app .topbar .badge-emblem{justify-content:center;align-items:center;width:30px;height:34px;display:flex}.app .topbar .badge-emblem>svg{width:28px;height:28px;display:block}.app .topbar .badge-emblem .streak-flame{width:28px;height:34px}.app .topbar .badge-value{align-items:baseline;gap:4px;line-height:1;display:flex}.app .topbar .badge-value b,.app .topbar .badge-value small{margin:0;padding:0;line-height:1}.app .exercise-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.app .exercise-heading .eyebrow{min-width:0;margin:0;line-height:1.6}.app .exercise-heading .close{flex:0 0 32px;place-items:center;width:32px;height:32px;margin:0;padding:0;display:grid;position:static}.app .lesson-card .lesson-pinyin{text-align:left;direction:ltr}.app .lesson-grid .lesson-card{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 6px;display:grid;position:relative}.app .lesson-grid .lesson-number-badge{color:#078ac3;white-space:nowrap;background:#ddf4ff;border-radius:999px;grid-area:1/2;justify-content:center;place-self:center end;align-items:center;padding:5px 10px;font-size:12px;font-weight:700;line-height:1.5;display:inline-flex;position:static}.app .lesson-grid .lesson-card>.lesson-char{grid-area:1/1}.app .lesson-grid .lesson-card>div:not(.lesson-char){grid-area:2/1/auto/-1;width:100%;min-width:0}
