:root{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;color:#2b3749;background:#fafafa;font-synthesis:none;--bg:#fafafa;--surface:#fff;--text:#2b3749;--muted:#6f7b8a;--line:#e3e5e8;--primary:#2b3749;--blue:#5399e5;--soft:#f4f5f7;--hand-stroke:#bfc1c4;--hand-fill:#f5f5f585;color-scheme:light}:root[data-theme=dark]{--bg:#151a22;--surface:#202732;--text:#e2e8f0;--muted:#9ba9bb;--line:#37404d;--primary:#c4d1e2;--blue:#81b5f3;--soft:#293340;--hand-stroke:#687687;--hand-fill:#20273280;color-scheme:dark;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;touch-action:manipulation}button,a,input,select,textarea{transition:background-color .18s,color .18s,opacity .18s,box-shadow .2s,transform .22s cubic-bezier(.2,.7,.3,1)}button:hover{background-color:var(--soft)}button:active{transform:scale(.975)}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}a{color:var(--text);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.3;font-weight:750;letter-spacing:-1px}h2{font-size:20px;font-weight:650;letter-spacing:-.5px}h3{font-size:16px;font-weight:600}svg{width:20px;height:20px;stroke-width:1.65;vertical-align:middle;flex-shrink:0}::selection{background:#a6d0ff55}.muted{color:var(--muted);font-size:13px}.hidden{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;z-index:20;background:var(--surface);border-right:1px solid #f0f1f3;display:flex;flex-direction:column}.brand{height:72px;padding:16px 20px;display:flex;align-items:center;gap:4px;white-space:nowrap;color:var(--text)}.brand>svg{width:39px;height:36px;stroke:none}.brand strong{font-family:system-ui,sans-serif;font-weight:800;font-size:26px;letter-spacing:-1px;color:#242726}.sidebar nav{margin:30px 0 0 20px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;min-height:53px;padding:14px 12px;font-size:16px;text-align:left;position:relative;border-radius:8px 0 0 8px}.nav-item svg{width:19px;height:19px}.nav-item.active{background:var(--soft)}.nav-item.active:after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:var(--primary)}.nav-separated{border-top:1px solid var(--line);margin-top:8px;padding-top:22px;border-radius:0}.sidebar-bottom{margin-top:auto;padding:20px 24px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.sidebar-bottom>button{display:flex;align-items:center;gap:6px;border-radius:20px;padding:5px 10px;background:var(--soft);font-size:11px;min-height:28px}.sidebar-bottom>button svg{width:13px;height:13px}.sidebar-bottom>button.feedback{background:#eef7ff;color:#4d8be7}.local-edition{font-size:10px;color:var(--muted);opacity:.7;margin-top:2px}.topbar{height:72px;position:fixed;top:0;right:0;left:246px;display:flex;align-items:center;justify-content:space-between;z-index:18;background:color-mix(in srgb,var(--bg) 96%,transparent);padding:0 35px 0 20px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:20px}.topbar-actions button{white-space:nowrap}.locale-button{display:flex;align-items:center;gap:7px;padding:10px 8px;font-size:14px}.locale-button svg{width:17px;height:17px}.locale-button svg:last-child{width:12px}.outline-button,.dark-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 23px;border-radius:25px;line-height:1.4;font-size:14px;white-space:nowrap}.outline-button{border:1px solid #aab1ba;background:var(--surface)}.outline-button:hover{background:var(--soft)}.dark-button{background:#2c3849;color:#fff;border:1px solid #2c3849}.dark-button:hover{background:#465269}.outline-button svg,.dark-button svg,.danger-button svg{width:16px;height:16px}.danger-button{color:#cf4a46;border:1px solid #e3b0ad}.menu-button{width:32px;height:40px;display:grid;place-items:center}.menu-button svg{width:18px}.save-button{color:var(--muted);border-color:#bfc6cf}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:14px;color:var(--text);min-height:36px;padding:6px 0}.text-button svg{width:17px;height:17px}.text-button:hover{color:var(--blue);background:transparent}main{margin-left:246px;padding-top:72px;min-height:100vh;outline:none}.home-content{max-width:1325px;margin:auto;padding:54px 45px 70px}.greeting{display:flex;align-items:center;gap:18px;margin-bottom:40px}.greeting .dark-button{min-height:40px;font-size:13px;padding:9px 20px}.dashboard-subject{margin-bottom:45px}.subject-title{font-size:16px;display:flex;align-items:center;gap:7px;margin-bottom:22px}.subject-title>span{width:8px;height:8px;border-radius:50%}.subject-grid{display:grid;grid-template-columns:minmax(285px,1fr) minmax(510px,1.05fr);gap:55px}.enrolled-cards{display:flex;gap:20px;align-items:flex-start}.course-card{width:274px;position:relative;padding:8px;background:var(--surface);box-shadow:0 2px 6px #172b3a15;border:1px solid #f0f0f0;border-radius:18px;overflow:hidden;flex-shrink:0}.cover-button{display:block;width:100%;height:174px;padding:0;border-radius:10px;overflow:hidden;background:#e9f2f5;position:relative}.cover-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}.cover-button:hover img{transform:scale(1.025)}.cover-fallback:after{content:"ABC";font-size:48px;color:#75a3bb;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.card-more{position:absolute;top:8px;right:8px;background:#ffffff80;border-radius:0 10px 0 5px;width:25px;height:26px;display:grid;place-items:center}.card-more svg{width:18px;height:18px}.course-card-body{padding:16px 8px 18px}.course-title{display:block;padding:0;text-align:left;font-size:15px;font-weight:650;line-height:1.6;min-height:28px}.course-title:hover{background:transparent;color:var(--blue)}.course-progress{margin-top:44px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;gap:10px}.course-progress strong{color:var(--text);font-weight:650}.mini-progress{height:4px;background:var(--line);margin-top:12px;border-radius:10px;overflow:hidden}.mini-progress>span{display:block;height:100%;background:#60adf1}.dashboard-statistics{min-width:0;position:relative}.dashboard-statistics fieldset{border:1px solid #d8dadd;border-radius:21px;margin:0;min-width:0}.dashboard-statistics legend{font-size:12px;font-weight:650;padding:0 10px}.time-box{padding:28px 25px 24px}.rings{display:flex;align-items:center;justify-content:space-between;gap:20px}.time-ring-item{text-align:center;flex:1}.time-ring-item>strong{font-size:11px;white-space:nowrap;display:block;margin-bottom:12px}.time-ring-item>strong>b{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ff7049;margin-right:4px}.time-ring{width:86px;height:86px;background:conic-gradient(#ff6745 calc(var(--progress)*1%),#e4e7eb 0);border-radius:50%;display:grid;place-items:center;margin:auto}.time-ring>div{width:71px;height:71px;border-radius:50%;background:var(--bg);font-size:11px;display:flex;flex-direction:column;justify-content:center;line-height:1.2}.time-ring>div b{font-size:11px;font-weight:650}.time-ring-item>span{display:block;font-size:11px;margin-top:10px}.overall-time{border-left:1px solid var(--line);padding-left:25px;min-width:110px;text-align:center}.overall-time strong{display:block;font-size:23px;white-space:nowrap}.overall-time span{display:block;font-size:11px;line-height:1.8;margin-top:5px}.dashboard-lower{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-top:8px}.speed-box{padding:28px 20px 24px}.speed-bars{height:138px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.speed-bars>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;flex:1}.speed-bars b{font-size:11px;white-space:nowrap;margin-bottom:5px}.speed-bars b small{font-size:8px;font-weight:400}.speed-bars span{width:40px;min-height:1px;background:#67a5f0;border-radius:3px 3px 0 0}.speed-bars>div>small{font-size:10px;width:100%;text-align:center;border-top:1px solid var(--line);padding-top:6px}.performance-box{padding:28px 26px;display:flex;flex-direction:column;gap:9px}.performance-box>span{font-size:12px}.performance-box>strong{font-size:20px;margin-bottom:13px}.more-stats{display:flex;margin:8px 0 0 auto}.no-practice{min-height:300px;border:1px solid #d8dadd;border-radius:21px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:15px;padding:40px;line-height:1.8}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-heading h2{font-size:23px}.recommendation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.recommended-card{width:auto;min-width:0;height:100%}.recommended-card .cover-button{height:auto;aspect-ratio:4/3}.recommended-card .course-card-body{padding:15px 11px 24px}.course-meta{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:13px}.course-meta>span{display:flex;align-items:center;gap:4px}.course-meta svg{width:13px;height:13px}.standard-content{max-width:1550px;padding:54px 40px 70px;margin:auto}.standard-content>h1{margin-bottom:40px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px;gap:20px}.segmented{display:flex;align-items:center;gap:3px;padding:4px;background:#edf0f4;border-radius:25px}.segmented button{padding:10px 23px;font-size:14px;border-radius:24px}.segmented button.selected{background:var(--surface);box-shadow:0 1px 4px #182a3808}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats-panel,.panel{background:var(--surface);border:1px solid #eceef0;border-radius:18px;box-shadow:0 1px 5px #1b2a3910}.stats-panel{padding:30px;margin-bottom:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:35px;margin-bottom:28px}.panel-heading h2{font-size:16px;color:var(--muted);display:flex;align-items:center;gap:6px}.panel-heading h2 svg{width:16px;height:16px}.panel-heading select{min-height:32px;border-radius:20px;padding:5px 12px;font-size:12px;max-width:150px}select{border:1px solid #d3d6dc;border-radius:8px;background:var(--surface);padding:8px 12px;min-height:38px;font-size:13px}input[type=checkbox]{accent-color:var(--blue)}.time-overview{display:flex;align-items:center;justify-content:space-between;padding:8px 0 15px;gap:25px;min-height:220px}.time-overview>div:first-child>strong{display:block;font-size:28px}.time-overview>div:first-child>span{display:block;font-size:14px;color:var(--muted);margin-top:7px}.donut{width:190px;height:190px;background:conic-gradient(#8bc7f5 calc(var(--pct)*1%),var(--fill) 0);border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut>div{width:125px;height:125px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--muted);font-size:16px}.time-breakdown{display:flex;justify-content:space-between;gap:18px;margin-top:23px}.time-breakdown>div{position:relative;padding-left:20px}.time-breakdown>div>span{position:absolute;left:0;top:7px;width:11px;height:11px;border-radius:50%}.time-breakdown strong{font-size:15px;display:block}.time-breakdown small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.attempt-overview{display:flex;align-items:stretch;height:290px;gap:30px}.attempt-counts{width:95px;display:flex;flex-direction:column;justify-content:space-between}.attempt-counts>div{padding:10px 0 22px;border-bottom:1px solid var(--line)}.attempt-counts>div:last-child{border:0}.attempt-counts span{font-size:12px;color:var(--muted)}.attempt-counts strong{display:block;font-size:26px;margin-top:6px}.attempt-counts small{font-size:12px;font-weight:400;margin-left:5px}.attempt-bars{flex:1;display:flex;align-items:flex-end;justify-content:space-around;background:repeating-linear-gradient(to top,transparent 0,transparent 63px,var(--line) 64px,transparent 65px);border-bottom:1px solid var(--line);margin:12px 0 33px}.attempt-bars>div{height:100%;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;position:relative;flex:1}.attempt-bars span{width:40px;background:#a1bcfc}.attempt-bars small{position:absolute;bottom:-30px;white-space:nowrap;font-size:12px;color:var(--muted)}.calendar-panel .panel-heading{margin-bottom:55px}.week-start-label{color:var(--muted);font-size:12px}.calendar-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:20px}.calendar-toolbar strong{font-size:18px;margin-left:8px}.square-button{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid #d7dde4;border-radius:3px;color:var(--muted);padding:3px}.square-button svg{width:15px;height:15px}.practice-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line)}.calendar-day{border-right:1px solid var(--line);min-width:0}.calendar-day:last-child{border-right:0}.calendar-day>header{display:flex;flex-direction:column;align-items:center;gap:5px;border-bottom:1px solid var(--line);padding:12px 5px}.calendar-day>header>span{font-size:12px;color:var(--muted)}.calendar-day>header strong{font-size:19px}.calendar-day.today>header{background:#edf5ff}.calendar-events{height:210px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,var(--line) 52px,transparent 53px);padding:20px 6px}.calendar-event{display:block;background:#e6f1ff;color:#4e7fbd;border-left:3px solid #79acf1;padding:10px 7px;font-size:11px;line-height:1.8}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th,td{text-align:left;padding:15px 10px;border-bottom:1px solid var(--line)}th{font-size:12px;font-weight:450;color:var(--muted)}td{font-size:12px}tbody tr:last-child td{border:0}.empty-table{text-align:center;color:var(--muted);padding:38px 10px}.stars{display:inline-flex;gap:3px;align-items:center;color:#e0e2e6}.stars span{display:flex}.stars svg{width:18px;height:18px;fill:currentColor;stroke:#bec2c8}.stars .earned{color:#ffd43d}.stars .earned svg{stroke:#e3b72c}.small-stars svg{width:13px;height:13px}.time-chart{display:flex;height:240px;gap:20px;padding:15px 0 30px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:10px;white-space:nowrap}.time-chart-bars{flex:1;display:flex;align-items:flex-end;justify-content:space-around;gap:10px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 94px,var(--line) 95px,transparent 96px)}.chart-column{height:100%;width:6%;position:relative;display:flex;align-items:center;justify-content:flex-end;flex-direction:column}.chart-column .bar{background:#8bc7f5;width:65%;min-height:1px;border-radius:2px 2px 0 0}.chart-column small{position:absolute;bottom:-28px;font-size:9px;white-space:nowrap;color:var(--muted)}.typing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.typing-summary>div{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.typing-summary>div>span{font-size:13px;color:var(--muted)}.typing-summary strong{display:block;font-size:34px;margin-top:10px}.typing-summary small{font-size:13px;font-weight:400;margin-left:6px}.speed-history{height:250px;display:flex;align-items:flex-end;justify-content:space-around;gap:15px;padding:20px 0 35px}.speed-history>div{display:flex;align-items:center;justify-content:flex-end;flex-direction:column;height:100%;flex:1;max-width:50px;position:relative}.speed-history span{display:block;width:75%;background:#7fb5f0}.speed-history b{font-size:11px;color:var(--muted);margin-bottom:4px}.speed-history small{font-size:9px;color:var(--muted);position:absolute;bottom:-20px}.speed-history>p{margin:auto;color:var(--muted);font-size:13px}.keyboard-hint{margin-bottom:25px}.filter-sidebar{position:fixed;inset:72px auto 0 0;width:302px;padding:70px 32px 40px 62px;border-right:1px solid var(--line);background:var(--bg);overflow:auto;z-index:16}.filter-sidebar>h2{font-size:24px;margin-bottom:37px}.filter-sidebar h3{font-size:15px;margin-bottom:17px}.sort-options{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}.filter-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px;border-radius:6px;font-size:12px;text-align:left}.filter-option.selected{background:#fcf0e2;font-weight:600}.filter-option svg{width:15px;height:15px}.filter-heading{display:flex;align-items:center;justify-content:space-between}.filter-heading .text-button{font-size:10px;color:var(--muted);margin-bottom:17px;min-height:0}.subject-options{display:flex;flex-direction:column;gap:4px;margin-bottom:36px}.subject-options>label{padding:10px 12px;font-size:13px;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:41px;border-radius:5px}.subject-options>label:has(input:checked){background:#e9f1fb}.subject-options>label:hover{background:var(--soft)}.subject-options input{position:absolute;opacity:0;width:100%;height:100%;top:0;right:0;bottom:0;left:0;cursor:pointer;margin:0}.subject-options label:has(input:focus-visible){outline:2px solid var(--blue)}.subject-options label>svg{width:15px;height:15px}.filter-sidebar>select{display:block;width:100%;border-width:0 0 1px;border-radius:0;background:none;padding-left:0}.library-topbar{left:0;background:var(--surface);border-bottom:1px solid var(--line);padding-left:0}.library-mode main{margin-left:302px}.library-content{padding:24px 64px 70px;max-width:1800px;margin:auto}.back-link{display:inline-flex;align-items:center;gap:5px;padding:4px 0;font-size:12px;color:var(--muted);min-height:28px;margin-bottom:20px}.back-link svg{width:15px;height:15px}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:62px}.library-heading h1{font-size:38px}.search-input{display:flex;align-items:center;border:1px solid #7e8998;border-radius:40px;height:56px;padding:0 23px;gap:15px;width:40%;min-width:240px}.search-input input{border:0;background:none;outline:none;width:100%;font-size:14px;color:var(--text)}.search-input svg{width:20px;height:20px;color:var(--muted)}.search-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #7eaff329}.search-input input:focus-visible{outline:none}.library-section{margin-bottom:35px}.library-section>h2{font-size:16px;color:var(--muted);margin-bottom:22px}.library-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.library-grid .course-card{border-radius:17px}.library-grid .course-title{font-size:15px}.library-grid .course-card-body{min-height:100px}.empty-search{text-align:center;padding:65px 15px}.empty-search>svg{width:42px;height:42px;color:var(--muted);margin-bottom:22px}.empty-search p{font-size:13px;color:var(--muted);margin:18px 0 23px}.course-mode .topbar{background:#eefafb;border-bottom:1px solid #ffffff77}.course-toolbar-title{display:flex;align-items:center;gap:14px;white-space:nowrap}.course-toolbar-title>strong{font-size:20px}.course-toolbar-title>span{height:22px;width:1px;background:#cddde0;margin:0 3px}.course-toolbar-title small{font-size:11px;display:flex;align-items:center;gap:4px}.course-toolbar-title svg{width:13px;height:13px;color:#8c9caa}.course-world{min-height:100vh;background:linear-gradient(#edfafa,#e9f8fa 45%,#e3f1f7);position:relative;overflow:hidden;padding:88px 50px 100px}.course-sections{position:relative;z-index:1;max-width:1050px;margin:auto}.course-section{scroll-margin-top:105px;margin-bottom:120px}.course-section>h2{font-size:24px;margin-bottom:62px}.lesson-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:36px 30px}.lesson-tile{position:relative;display:flex;flex-direction:column;aspect-ratio:1/1.04;background:#ffffffed;border-radius:6px;box-shadow:0 3px 8px #4e758915;transform:rotate(-2deg);padding:17px 10px 0;min-width:0;color:#63778b}.lesson-tile:nth-child(3n){transform:rotate(-1deg)}.lesson-tile:nth-child(4n){transform:rotate(-3deg)}.lesson-tile:hover{background:#fff;box-shadow:0 7px 16px #5f829b22;transform:rotate(0) translateY(-4px)}.lesson-tile:active{transform:scale(.97)}.tile-number{position:absolute;left:12px;top:12px;font-size:20px;font-weight:850;color:#5f758e;text-shadow:1px 1px #c3cfd6}.tile-lock{position:absolute;right:10px;top:10px;color:#aab6c3}.tile-lock svg{width:11px;height:11px;fill:#aab6c366}.tile-art{display:flex;align-items:center;justify-content:center;flex-direction:column;flex:1;padding-top:15px;min-height:0}.tile-art>svg{width:36px;height:36px;stroke-width:1.1;color:#7c858d}.key-pair{font-size:14px;font-weight:700;color:#8b9398;margin-bottom:2px;white-space:nowrap;overflow:hidden;max-width:95%}.tile-caption{font-size:10px;line-height:1.5;border-top:1px solid #e9edf0;width:calc(100% + 20px);margin-left:-10px;padding:7px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#344354;min-height:29px}.tile-complete{display:grid;place-items:center;position:absolute;bottom:25px;left:50%;transform:translate(-50%);width:32px;height:22px;border-radius:12px;background:#24c780;color:#fff;z-index:2}.tile-complete svg{width:19px;height:19px;stroke-width:3}.lesson-tile.locked{background:#ffffffbd}.lesson-tile.locked .tile-art{opacity:.6}.mountain{position:absolute;pointer-events:none;opacity:.25;background:#c6dde5;clip-path:polygon(0 88%,16% 64%,30% 65%,32% 39%,48% 22%,56% 25%,70% 4%,100% 48%,100% 100%,0 100%)}.mountain-one{width:105%;height:1100px;left:-10%;top:260px}.mountain-two{width:100%;height:1100px;right:-25%;top:1700px;background:#bfd5dc}.mountain-three{width:100%;height:1300px;left:-10%;top:3400px;background:#b8d8e0}.minimap{position:fixed;right:4px;top:200px;display:flex;flex-direction:column;gap:5px;z-index:5;background:#fffb;padding:7px 2px;box-shadow:0 2px 6px #18394b14;border-radius:3px}.minimap>button{padding:5px 3px;width:14px;height:21px}.minimap span{display:block;background:#b2cbe7;width:4px;height:5px;border-radius:1px}.collapse-sidebar{position:absolute;bottom:8px;right:9px;border:1px solid #a7b2bf;border-radius:3px;width:31px;height:31px;display:grid;place-items:center}.collapse-sidebar svg{width:17px;height:17px}.sidebar-collapsed .sidebar{width:65px}.sidebar-collapsed .sidebar .brand strong,.sidebar-collapsed .nav-item>span{display:none}.sidebar-collapsed .sidebar .brand{padding:15px}.sidebar-collapsed .sidebar nav{margin-left:0}.sidebar-collapsed main{margin-left:65px}.sidebar-collapsed .topbar{left:65px}.badges-page>h1{margin-bottom:0}.badge-empty{text-align:center;padding:90px 0 105px}.badge-illustration{width:310px;height:310px;border-radius:50%;background:#f4f6f8;position:relative;display:grid;place-items:center;margin:auto}.badge-illustration>div{width:215px;height:215px;border-radius:50%;background:#fff;display:grid;place-items:center;position:relative;box-shadow:0 70px 0 -65px #d7dce4}.badge-illustration>div>svg{width:110px;height:110px;stroke-width:1.8;color:#2b3e52}.gold-ribbon{position:absolute;width:38px;height:125px;border:6px solid #edb841;border-radius:60%;transform:rotate(32deg);top:39px;left:89px}.laurel{position:absolute;color:#d0d5dc;z-index:2}.laurel svg{width:70px;height:70px;stroke-width:1.1}.laurel.left{left:16px;top:140px;transform:rotate(-30deg)}.laurel.right{right:8px;top:56px;transform:rotate(22deg);color:#e6ba4b}.badge-empty h2{font-size:24px;margin:30px 0 16px}.badge-empty p{color:var(--text);font-size:15px;line-height:1.9}.badge-section-heading{font-size:20px;color:var(--muted);margin-bottom:65px}.badges-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:52px 30px}.badge-card{padding:0;text-align:center;background:none;border-radius:0}.badge-medal{width:145px;height:145px;border:7px solid #b2b4b6;background:#eeeeef;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 4px #fff;margin:auto auto 20px;color:#a7aaad}.badge-medal svg{width:65px;height:65px;stroke-width:1.6}.badge-card h3{font-size:15px;margin:13px 0}.badge-card p{font-size:12px;color:var(--muted);line-height:1.9}.badge-card:hover{background:transparent;transform:translateY(-3px)}.badge-card.earned .badge-medal{background:#fff4d6;color:#d3a44a;border-color:#dfbb63}.earned-badges{padding:60px 0 65px}.earned-badges h2{margin-bottom:35px}.game-options{display:flex;gap:30px;padding:22px 25px;margin-bottom:26px}.game-options label{display:flex;align-items:center;gap:14px;font-size:14px}.game-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-mode-card{padding:35px 24px;text-align:left}.game-mode-card>span{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:#ecf6ff;color:#598ec8;margin-bottom:25px}.game-mode-card:nth-child(2)>span{background:#f3f0fc;color:#9681be}.game-mode-card:nth-child(3)>span{background:#fff5e6;color:#c9a26b}.game-mode-card>span svg{width:30px;height:30px}.game-mode-card h2{font-size:22px;margin-bottom:15px}.game-mode-card p{font-size:13px;color:var(--muted);line-height:1.9;min-height:48px}.game-mode-card b{font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;margin-top:24px}.game-mode-card b svg{width:16px;height:16px}.game-mode-card:hover{transform:translateY(-3px);background:var(--surface);box-shadow:0 8px 22px #273d4c12}.custom-practice{padding:30px;margin-top:25px}.custom-practice p{margin:10px 0 20px;color:var(--muted);font-size:13px}textarea{width:100%;border:1px solid #cbd2dc;background:var(--surface);color:var(--text);padding:15px;border-radius:8px;font-size:14px;resize:vertical;line-height:1.8}.custom-practice textarea{min-height:140px;margin-bottom:20px}.settings-page{max-width:1150px;margin:0 auto}.settings-panel{padding:26px 30px;margin-bottom:22px}.settings-panel>h2{font-size:19px;margin-bottom:15px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:23px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0}.setting-row strong{font-size:15px;font-weight:550}.setting-row p{font-size:12px;color:var(--muted);line-height:1.9;margin-top:6px}.setting-row input[type=checkbox],.popup-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:39px;height:22px;background:#c3cbd6;border-radius:20px;cursor:pointer;flex-shrink:0}.setting-row input[type=checkbox]:before,.popup-switch input:before{content:"";position:absolute;width:16px;height:16px;background:#fff;top:3px;left:3px;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .2s}.setting-row input:checked,.popup-switch input:checked{background:#5f9ddd}.setting-row input:checked:before,.popup-switch input:checked:before{transform:translate(17px)}input[type=file]{font-size:11px;max-width:240px;color:var(--muted)}input[type=file]::file-selector-button{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:8px 12px;color:var(--text);cursor:pointer;font:inherit}.popup{position:fixed;z-index:100;width:240px;background:var(--surface);border:1px solid var(--line);box-shadow:0 5px 25px #152e4426;border-radius:9px;padding:7px;animation:popup-in .16s both}.popup>button{display:flex;align-items:center;gap:10px;font-size:13px;text-align:left;width:100%;padding:11px 12px;border-radius:5px;min-height:39px}.popup>button svg{width:16px;height:16px}.popup>button>small{margin-left:auto;color:var(--muted)}.popup>h3{font-size:13px;margin:10px 11px 15px}.popup>p{font-size:11px;color:var(--muted);padding:8px 12px;line-height:1.8}.popup-switch,.popup-font{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;padding:12px 10px;cursor:pointer}.popup-font select{font-size:11px;min-height:30px}.theme-options{display:flex;flex-direction:column;gap:3px}.theme-options button{display:flex;align-items:center;gap:10px;padding:11px;font-size:12px;border-radius:5px}.theme-options svg{width:16px;height:16px}.theme-options .selected{background:var(--soft)}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#1c222f66;padding:25px;animation:fade-in .18s both}.modal{background:var(--surface);border-radius:16px;box-shadow:0 5px 30px #14263c18;max-height:calc(100dvh - 50px);overflow:auto;position:relative;padding:35px;width:min(550px,100%);animation:modal-in .22s cubic-bezier(.2,.7,.3,1) both;outline:none}.modal h2{font-size:24px;margin-bottom:18px}.modal>p{font-size:14px;color:var(--muted);line-height:1.9;margin:15px 0 25px}.modal-close{position:absolute;right:16px;top:16px;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#2b374960;color:#fff}.modal-close svg{width:17px;height:17px}.modal-close:hover{background:#2b37498f}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:30px}.detail-modal{padding:0;width:560px}.detail-cover{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:#eef5f7}.detail-body{padding:25px 24px 23px}.detail-body>.muted{font-size:11px}.detail-body h2{font-size:20px;margin:10px 0 22px}.detail-body>p{font-size:14px;line-height:1.8;min-height:45px;margin-bottom:35px}.detail-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;padding-bottom:35px;border-bottom:1px solid var(--line)}.detail-meta>span{display:flex;align-items:center;gap:6px}.detail-meta svg{width:14px;height:14px}.detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding-top:23px}.detail-actions .dark-button{padding:9px 20px}.badge-modal-icon{text-align:center;color:#a2aab3;margin:10px 0 28px}.badge-modal-icon svg{width:80px;height:80px;stroke-width:1.3}.badge-modal-icon.earned{color:#d3aa4c}.attempt-detail{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}.attempt-detail strong{font-size:18px;font-weight:550}.leaving{animation:fade-out .19s both;pointer-events:none}.leaving .modal{animation:modal-out .19s both}.auth-mode main{margin:0;padding:0}.auth-page{min-height:100dvh;position:relative;background:#fcfaf7;display:flex;align-items:center;justify-content:center;padding:110px 25px 70px;overflow:hidden}.auth-brand{position:absolute;left:45px;top:5px;z-index:2}.auth-card{position:relative;z-index:1;width:500px;background:var(--surface);border-radius:21px;box-shadow:0 2px 7px #2222221c;padding:33px 32px;text-align:left}.auth-card h1{text-align:center;font-size:22px;letter-spacing:0;margin-bottom:24px}.auth-description{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:22px}.auth-card>p:not(.auth-description){font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:25px}.social-signin{display:flex;flex-direction:column;gap:8px}.social-signin button{width:100%;border-color:#435063;min-height:46px;font-size:13px}.social-signin b{font-size:16px;color:#4285f4}.social-signin button:nth-child(3) b{color:#f35325}.or-line{height:1px;background:var(--line);position:relative;margin:28px 0 25px}.or-line span{position:absolute;left:50%;transform:translate(-50%,-50%);padding:0 10px;background:var(--surface);font-size:11px;color:var(--muted)}#profile-form{display:flex;flex-direction:column;gap:20px}#profile-form>label{font-size:14px;font-weight:500;display:flex;flex-direction:column;gap:9px}#profile-name{border:1px solid #b0bac8;border-radius:30px;background:var(--surface);padding:10px 16px;font-size:14px;min-height:42px;width:100%}.restore-label{color:var(--muted)}.auth-card .dark-button{width:100%;margin-top:10px}.auth-switch{text-align:center!important;font-size:13px!important;color:var(--text)!important;margin:20px 0 0!important}.auth-switch button{font-size:13px;color:#4e94d9}.auth-back{font-size:11px;display:flex;margin:10px auto 0;color:var(--muted)}.auth-landscape{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.hill{position:absolute;border-radius:50%;background:#f5eee6}.hill.h1{width:95%;height:85%;left:-35%;bottom:-35%;transform:rotate(20deg)}.hill.h2{width:100%;height:90%;right:-55%;top:24%;background:#f6f0e9}.hill.h3{width:80%;height:80%;right:-36%;bottom:-55%;background:#ffd9c6}.windmill{position:absolute;left:9%;bottom:15%;height:170px;width:60px;background:#fff9f0;clip-path:polygon(30% 0,70% 0,100% 100%,0 100%)}.windmill span{position:absolute;top:0;right:0;bottom:0;left:0;background:#f7c0a9;clip-path:polygon(0 0,100% 0,100% 15%,0 15%,0 0)}.windmill i,.windmill b{position:absolute;background:#ee9374;top:30px;left:-35px;width:130px;height:12px;transform:rotate(55deg)}.windmill b{transform:rotate(-55deg)}.practice-page{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface);border-radius:0;width:100%;height:100dvh;max-height:100dvh;padding:0;box-shadow:none;animation:fade-in .2s both;overscroll-behavior:contain}.practice-page .practice-toolbar{height:53px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;gap:15px;position:sticky;top:0;background:var(--surface);z-index:3}.practice-toolbar>button{padding:3px 0;display:grid;place-items:center;width:23px;height:36px}.practice-toolbar>span{font-size:14px}.practice-tools{display:flex;align-items:center;gap:28px;margin-left:auto}.practice-tools>button{width:28px;height:36px;display:grid;place-items:center;color:var(--muted)}.practice-tools>button>svg{width:17px;height:17px}.practice-tools>button:last-child{margin-left:40px}.practice-stage{position:relative;width:min(900px,calc(100% - 100px));margin:0 auto;padding:165px 0 45px}.start-typing{position:absolute;top:0;left:-110px;width:84px;height:137px;background:#5997df;color:#fff;border-radius:0 0 8px 8px;font-size:12px;text-align:center;line-height:1.25;padding-top:99px;font-weight:350}.typing-passage{font-family:Consolas,SFMono-Regular,Microsoft YaHei,monospace;font-size:36px;line-height:1.95;color:#777b7d;white-space:pre-wrap;overflow-wrap:anywhere;max-height:232px;overflow-y:auto;border-bottom:1px solid #c8c8c8;scroll-behavior:smooth;position:relative;padding-bottom:8px}.typing-passage>span{transition:color .1s,background-color .1s}.typing-passage .caret{border-bottom:3px solid #207bd7;padding-bottom:2px}.typing-passage .correct{color:#7cbb7f}.typing-passage .incorrect{background:#f9e1df;color:#d7514b;border-radius:2px}.typing-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;resize:none;opacity:.001;z-index:1;cursor:text;outline:none;padding:0;caret-color:transparent;color:transparent;border:0}.typing-input:focus-visible{outline:none}.practice-metrics{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:14px;font-size:10px;color:var(--muted);min-height:16px;opacity:.75}.practice-metrics b{font-weight:500;color:var(--text)}.keyboard-wrap{position:relative;max-width:650px;margin:44px auto 0;padding-bottom:0}.keyboard{display:flex;flex-direction:column;align-items:stretch;gap:3px;position:relative;z-index:1}.keyboard-row{display:flex;gap:3px;justify-content:center}.key{border:1px solid #dddfe1;color:#a9adb1;background:var(--surface);height:42px;min-width:0;flex:1;display:flex;align-items:center;justify-content:center;font-family:Consolas,monospace;font-size:21px;border-radius:2px;box-shadow:0 1px 1px #0000000a;font-weight:350}.key-backspace{flex:1.6;font-size:9px}.key-tab{flex:1.5;font-size:11px;justify-content:flex-start;padding-left:8px}.key-caps-lock{flex:1.9;font-size:10px}.key-enter{flex:1.6;font-size:10px}.key-shift{flex:2.3;font-size:10px}.key-control,.key-option{flex:1.6;font-size:11px}.key-space{flex:7;font-size:12px}.key.next-key{background:#8eb9f2;color:#fff;box-shadow:inset 0 0 0 4px #c6defb}.key.practiced{background:#dcecff;color:#6386b0}.hand-guide{display:none;position:absolute;inset:65px 0 auto;width:100%;height:auto;z-index:2;pointer-events:none}.show-hands{padding-bottom:220px}.practice-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 0;color:var(--muted);font-size:10px;opacity:.55}.practice-bottom .text-button{font-size:11px}.practice-bottom:hover{opacity:1}.lives-label{text-align:right;font-size:12px;color:#d87765;margin-bottom:20px}.practice-race{position:relative;display:flex;flex-direction:column;gap:4px;margin:0 0 26px}.practice-race>span{height:4px;background:#67a5ef;border-radius:5px;width:0;transition:width .16s linear;max-width:100%}.practice-race>span:nth-child(2){background:#c6cdd5}.practice-race small{font-size:10px;color:var(--muted);position:absolute;right:0;bottom:15px}.result-page{width:100%;max-width:100%;min-height:100dvh;border-radius:0;padding:0;max-height:100dvh;background:var(--surface);position:fixed;top:0;right:0;bottom:0;left:0}.result-toolbar{height:55px;display:flex;align-items:center;gap:30px;padding:0 32px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.result-toolbar .text-button{font-size:12px}.result-body{max-width:700px;margin:75px auto 60px;text-align:center;padding:0 25px}.result-stars{display:flex;justify-content:center;gap:12px;margin-bottom:40px}.result-stars svg{width:63px;height:63px;stroke-width:1.4}.result-stars>span:nth-child(3){transform:translateY(-10px) scale(1.2)}.result-body>h2{font-size:34px;margin-bottom:17px}.result-body>p{color:var(--muted);font-size:14px;line-height:1.8}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:50px 0 28px}.result-grid>div{display:flex;flex-direction:column;gap:12px}.result-grid strong{font-size:37px;font-weight:650;letter-spacing:-1px;white-space:nowrap}.result-grid span{font-size:13px;color:var(--muted)}.result-points{font-size:19px;color:#5a7798;background:var(--soft);border-radius:9px;padding:18px;display:flex;align-items:center;justify-content:center;gap:8px}.result-points>span{font-size:12px;margin-left:15px;color:var(--muted)}.result-actions{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:40px}.placement-result{font-size:14px;margin-top:22px}.practice-page~.popup{z-index:100}#toast{position:fixed;z-index:150;left:50%;bottom:28px;transform:translate(-50%,15px);background:#2b3749;color:#fff;border-radius:8px;padding:13px 23px;font-size:13px;line-height:1.8;max-width:min(90vw,580px);opacity:0;pointer-events:none;text-align:center;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%)}.modal textarea{margin-bottom:22px;min-height:130px}.modal a{color:#438bd3;font-size:13px}.modal a svg{width:14px;height:14px}main>div,.course-card,.stats-panel,.lesson-tile,.badge-card{animation:content-in .24s ease-out both}main{view-transition-name:main-content}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(main-content){animation:fade-out .15s both}::view-transition-new(main-content){animation:content-in .25s both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes content-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes popup-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-out{to{opacity:0;transform:translateY(10px) scale(.98)}}:root[data-theme=dark] .brand strong{color:var(--text)}:root[data-theme=dark] .course-card,:root[data-theme=dark] .stats-panel,:root[data-theme=dark] .panel{border-color:var(--line)}:root[data-theme=dark] .time-ring>div{background:var(--bg)}:root[data-theme=dark] .segmented{background:#29313c}:root[data-theme=dark] .filter-option.selected{background:#433a2c}:root[data-theme=dark] .course-mode .topbar{background:#22353a}:root[data-theme=dark] .course-world{background:linear-gradient(#233c44,#20343e)}:root[data-theme=dark] .lesson-tile{background:#33444d;color:var(--text)}:root[data-theme=dark] .lesson-tile.locked{background:#2d3e46}:root[data-theme=dark] .tile-caption{color:#c6d2df;border-color:#4b5b64}:root[data-theme=dark] .tile-art svg,:root[data-theme=dark] .key-pair{color:#b2bdc6}:root[data-theme=dark] .tile-number{color:#bdcfdd;text-shadow:none}:root[data-theme=dark] .key{border-color:#56616c;color:#9ca9b7}:root[data-theme=dark] .typing-passage{color:#9caab8}:root[data-theme=dark] .typing-passage .incorrect{background:#6e2b2b;color:#ffaf9d}:root[data-theme=dark] .badge-illustration{background:#28323d}:root[data-theme=dark] .badge-illustration>div{background:#36424e}:root[data-theme=dark] .calendar-day.today>header{background:#2b4159}:root[data-theme=dark] .auth-page{background:var(--bg)}@media(min-width:1750px){.home-content{max-width:1325px;padding-left:55px;padding-right:55px}.subject-grid{grid-template-columns:minmax(400px,1fr) minmax(550px,1.03fr);gap:78px}.course-world{padding-left:100px;padding-right:100px}.course-sections{max-width:1050px}.course-section>h2{margin-bottom:65px}.lesson-map{gap:37px 33px}.home-content{padding-top:58px}}@media(max-width:1450px){.home-content{padding:50px 38px}.subject-grid{grid-template-columns:minmax(260px,.85fr) minmax(480px,1.25fr);gap:28px}.time-box{padding:23px 20px}.rings{gap:10px}.overall-time{padding-left:15px;min-width:100px}.overall-time strong{font-size:20px}.time-ring{width:76px;height:76px}.time-ring>div{width:63px;height:63px}.time-ring-item>strong{font-size:10px}.dashboard-lower{grid-template-columns:1.4fr 1fr}.standard-content{padding:50px 32px}.stats-panel{padding:25px}.donut{width:160px;height:160px}.donut>div{width:108px;height:108px}.time-breakdown{gap:10px}.time-breakdown strong{font-size:13px}.time-breakdown small{font-size:11px}.library-content{padding:24px 40px 60px}.library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.course-world{padding-left:55px;padding-right:55px}.lesson-map{gap:30px 24px}.lesson-tile{padding-top:12px}.tile-number{font-size:18px}.tile-art>svg{width:31px;height:31px}.key-pair{font-size:12px}.badges-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.badge-medal{width:125px;height:125px}.badge-medal svg{width:54px;height:54px}.practice-stage{padding-top:130px}.start-typing{left:-40px;top:0;height:112px;padding-top:75px;width:70px}.practice-tools{gap:22px}.course-toolbar-title{gap:9px}.course-toolbar-title>strong{font-size:18px}.course-toolbar-title small{font-size:10px}.topbar-actions{gap:16px}.outline-button{padding:9px 20px}.recommendation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1200px){.sidebar{width:210px}.topbar{left:210px;padding-right:24px}main{margin-left:210px}.brand strong{font-size:24px}.brand>svg{width:36px;height:33px}.home-content{padding-left:32px;padding-right:32px}.subject-grid{grid-template-columns:230px minmax(0,1fr);gap:22px}.course-card{width:230px}.cover-button{height:149px}.course-progress{margin-top:35px}.time-box{padding:20px 14px}.time-ring{width:65px;height:65px}.time-ring>div{width:54px;height:54px;font-size:10px}.time-ring>div b{font-size:9px}.rings{gap:8px}.overall-time{padding-left:9px;min-width:75px}.overall-time strong{font-size:16px}.overall-time span{font-size:9px}.performance-box{padding:23px 18px}.speed-box{padding:23px 15px}.speed-bars{gap:8px}.speed-bars span{width:30px}.speed-bars b small{display:none}.speed-bars b{font-size:10px}.speed-bars>div>small{font-size:9px}.more-stats{font-size:12px}.library-topbar{left:0}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.library-grid .course-card,.recommended-card{width:100%}.filter-sidebar{width:245px;padding-left:35px;padding-right:25px}.library-mode main{margin-left:245px}.library-heading{gap:20px}.search-input{min-width:200px;width:48%;height:48px}.library-content{padding-left:35px;padding-right:35px}.time-overview{min-height:205px;gap:15px}.time-overview>div:first-child>strong{font-size:23px}.donut{width:130px;height:130px}.donut>div{width:86px;height:86px;font-size:13px}.stats-panel{padding:23px}.time-breakdown{gap:8px}.time-breakdown>div{padding-left:13px}.time-breakdown>div>span{width:8px;height:8px;top:6px}.time-breakdown strong{font-size:11px}.time-breakdown small{font-size:10px}.panel-heading h2{font-size:14px}.panel-heading h2 svg{width:13px;height:13px}.panel-heading select{font-size:11px;max-width:115px}.attempt-overview{gap:20px}.attempt-counts{width:70px}.course-toolbar-title>small:last-child{display:none}.course-toolbar-title>strong{font-size:16px}.course-world{padding-left:40px;padding-right:40px}.lesson-map{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 22px}.course-section>h2{margin-bottom:45px}.badges-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-stage{width:min(850px,calc(100% - 100px))}.practice-tools>button:last-child{margin-left:15px}.game-mode-grid{gap:15px}.game-mode-card{padding:25px 19px}.game-mode-card h2{font-size:20px}}@media(max-width:1000px)and (min-width:761px){.sidebar{width:180px}.topbar{left:180px}.library-topbar{left:0}main{margin-left:180px}.brand{padding-left:15px}.brand strong{font-size:21px}.brand>svg{width:31px}.sidebar nav{margin-left:12px}.nav-item{font-size:14px;gap:9px}.home-content{padding:40px 25px}.subject-grid{grid-template-columns:1fr;gap:30px}.dashboard-statistics{max-width:100%}.course-card{width:260px}.cover-button{height:170px}.recommended-card{width:100%}.time-ring{width:82px;height:82px}.time-ring>div{width:68px;height:68px}.overall-time{padding-left:20px;min-width:110px}.overall-time strong{font-size:24px}.overall-time span{font-size:11px}.time-ring-item>strong{font-size:12px}.speed-bars b small{display:inline}.performance-box{gap:9px}.recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}.time-overview{min-height:220px}.donut{width:170px;height:170px}.donut>div{width:115px;height:115px}.time-breakdown strong{font-size:14px}.time-breakdown small{font-size:12px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-content{padding-left:28px;padding-right:28px}.library-heading{flex-direction:column;align-items:flex-start;gap:25px;margin-bottom:40px}.search-input{width:100%}.course-toolbar-title>small{display:none}.course-toolbar-title>span{display:none}.topbar-actions .save-button{display:none}.lesson-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 20px}.course-world{padding:65px 35px}.typing-summary{grid-template-columns:1fr 1fr}.game-mode-grid{grid-template-columns:1fr}.game-mode-card{display:grid;grid-template-columns:80px 1fr;gap:0 20px;padding:25px}.game-mode-card>span{grid-row:1/4;margin-bottom:0;align-self:center}.game-mode-card h2{margin-bottom:7px}.game-mode-card p{min-height:0}.game-mode-card b{margin-top:12px}.standard-content{padding-left:25px;padding-right:25px}.badges-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.badge-medal{width:110px;height:110px}.badge-card h3{font-size:13px}.practice-tools{gap:18px}.practice-tools>button:last-child{margin-left:5px}}@media(max-width:760px){html{scrollbar-gutter:auto}h1{font-size:27px}h2{font-size:19px}.sidebar{width:65px;border-right:1px solid var(--line)}.sidebar .brand{padding:16px 12px;height:65px;justify-content:center}.sidebar .brand strong{display:none}.sidebar .brand>svg{width:35px;height:34px}.sidebar nav{margin:25px 0 0 5px}.nav-item{padding:14px 12px;min-height:53px;justify-content:center;gap:0}.nav-item>span{display:none}.nav-item svg{width:21px;height:21px}.nav-separated{padding-top:23px}.sidebar-bottom{padding:14px 8px;align-items:center;gap:14px}.sidebar-bottom>button{font-size:0;padding:7px;width:31px;height:31px;justify-content:center}.sidebar-bottom>button>svg{width:15px;height:15px}.sidebar-bottom>.local-edition{font-size:8px;writing-mode:vertical-lr;letter-spacing:2px;margin:4px 0 0}.topbar{left:65px;height:65px;padding:0 14px}.topbar-actions{gap:10px}.topbar-actions .locale-button{display:none}.outline-button,.dark-button,.danger-button{min-height:38px;font-size:12px;padding:8px 16px}.topbar .outline-button{font-size:11px;padding:7px 13px;min-height:35px}.menu-button{width:22px;height:35px}.topbar .save-button{display:none}main{margin-left:65px;padding-top:65px}.home-content{padding:35px 20px 50px}.greeting{gap:12px;margin-bottom:30px}.greeting h1{font-size:28px}.greeting .dark-button{min-height:34px;font-size:10px;padding:7px 13px}.subject-title{font-size:14px;margin-bottom:18px}.subject-title>span{width:7px;height:7px}.subject-grid{grid-template-columns:1fr;gap:22px}.course-card{width:min(274px,100%);border-radius:14px}.cover-button{height:auto;aspect-ratio:3/2}.course-progress{margin-top:28px}.course-card-body{padding-top:14px}.course-title{font-size:14px}.time-box{padding:19px 12px}.rings{flex-wrap:wrap;gap:12px 6px;justify-content:space-around}.time-ring-item{flex:0 1 27%}.time-ring-item>strong{font-size:8px;margin-bottom:8px}.time-ring{width:61px;height:61px}.time-ring>div{width:50px;height:50px;font-size:8px}.time-ring>div b{font-size:8px}.time-ring-item>span{font-size:9px;margin-top:7px}.overall-time{flex-basis:100%;min-width:0;border-left:0;border-top:1px solid var(--line);padding:12px 0 0;display:flex;justify-content:center;align-items:center;gap:12px}.overall-time strong{font-size:19px}.overall-time span{font-size:9px;margin:0}.dashboard-lower{gap:10px;grid-template-columns:1.35fr 1fr}.speed-box{padding:18px 10px 15px}.speed-bars{gap:3px;height:120px}.speed-bars b{font-size:9px}.speed-bars b small{display:none}.speed-bars span{width:22px}.speed-bars>div>small{font-size:8px}.performance-box{padding:19px 13px;gap:6px}.performance-box>span{font-size:10px}.performance-box>strong{font-size:17px;margin-bottom:13px}.dashboard-statistics fieldset{border-radius:15px}.dashboard-statistics legend{font-size:10px;padding:0 6px}.more-stats{font-size:10px;margin-top:6px}.more-stats svg{width:13px}.dashboard-subject{margin-bottom:35px}.no-practice{min-height:180px;font-size:12px;padding:25px;border-radius:15px}.section-heading{margin-bottom:18px;gap:10px}.section-heading h2{font-size:20px}.section-heading .text-button{font-size:10px}.text-button{font-size:12px}.recommendation-grid{grid-template-columns:1fr;gap:17px}.recommended-card{width:100%}.course-meta{font-size:10px}.standard-content{padding:35px 20px 50px}.page-heading{margin-bottom:28px;gap:12px}.page-heading h1{font-size:27px}.segmented{padding:3px;gap:0}.segmented button{font-size:10px;padding:8px 11px}.stats-grid{grid-template-columns:1fr;gap:0}.stats-panel{padding:21px 17px;border-radius:14px}.panel-heading{margin-bottom:20px;gap:10px;flex-wrap:wrap}.panel-heading h2{font-size:13px}.panel-heading select{min-height:30px;font-size:10px}.time-overview{gap:8px;padding:3px 0 10px;min-height:170px}.time-overview>div:first-child>strong{font-size:21px}.time-overview>div:first-child>span{font-size:11px}.donut{width:112px;height:112px}.donut>div{width:76px;height:76px;font-size:11px}.time-breakdown{margin-top:17px;flex-wrap:wrap;gap:15px}.time-breakdown strong{font-size:10px}.time-breakdown small{font-size:9px}.time-breakdown>div{padding-left:12px}.time-breakdown>div>span{width:7px;height:7px;top:5px}.attempt-overview{height:250px;gap:20px}.attempt-counts{width:58px}.attempt-counts strong{font-size:23px}.attempt-counts span,.attempt-counts small{font-size:10px}.attempt-bars small{font-size:9px}.attempt-bars span{width:25px}.calendar-panel .panel-heading{margin-bottom:25px}.week-start-label{font-size:9px;display:flex;align-items:center;gap:5px}.week-start-label select{font-size:10px;min-height:28px}.calendar-toolbar strong{font-size:13px}.calendar-toolbar{gap:5px;margin-bottom:15px}.square-button{width:24px;height:24px}.practice-calendar{overflow:hidden}.calendar-day>header{padding:10px 0}.calendar-day>header>span{font-size:0}.calendar-day>header>span:after{content:"日";font-size:9px}.calendar-day:nth-child(2)>header>span:after{content:"一"}.calendar-day:nth-child(3)>header>span:after{content:"二"}.calendar-day:nth-child(4)>header>span:after{content:"三"}.calendar-day:nth-child(5)>header>span:after{content:"四"}.calendar-day:nth-child(6)>header>span:after{content:"五"}.calendar-day:nth-child(7)>header>span:after{content:"六"}.calendar-day>header strong{font-size:14px}.calendar-events{height:150px;padding:15px 1px}.calendar-event{font-size:7px;padding:6px 2px;border-left-width:2px;overflow:hidden}.time-chart{gap:8px;height:200px}.chart-y{font-size:8px}.time-chart-bars{gap:4px}.chart-column small{font-size:7px;transform:rotate(-55deg);bottom:-24px}.table-wrap{margin-right:-7px}.panel-heading .text-button{font-size:10px}.typing-summary{grid-template-columns:1fr 1fr;gap:10px}.typing-summary>div{padding:19px 15px}.typing-summary>div>span{font-size:10px}.typing-summary strong{font-size:28px}.typing-summary small{font-size:10px}.filter-sidebar{width:190px;padding:30px 20px 25px;top:65px}.filter-sidebar>h2{font-size:21px;margin-bottom:25px}.filter-sidebar h3{font-size:13px}.filter-option{font-size:11px}.subject-options>label{font-size:11px;padding:9px}.filter-heading .text-button{font-size:9px}.library-topbar{left:0;padding-right:15px;height:65px}.library-topbar .brand{padding-left:16px;height:65px}.library-topbar .brand>svg{width:31px}.library-topbar .brand strong{font-size:22px}.library-mode main{margin-left:190px}.library-content{padding:24px 20px 50px}.library-heading{align-items:flex-start;flex-direction:column;gap:19px;margin-bottom:30px}.library-heading h1{font-size:28px}.search-input{width:100%;min-width:0;height:42px;padding:0 13px;gap:5px}.search-input input{font-size:12px;min-width:0}.search-input svg{width:16px}.library-grid{grid-template-columns:1fr;gap:15px}.library-grid .course-card{width:100%}.library-section>h2{font-size:13px;margin-bottom:16px}.library-grid .course-title{font-size:13px}.library-grid .course-card-body{padding:12px 5px 17px;min-height:85px}.library-grid .course-meta{font-size:8px;gap:4px;flex-wrap:wrap}.library-grid .course-meta svg{width:10px}.back-link{font-size:10px}.empty-search{padding:40px 0}.empty-search h2{font-size:17px}.empty-search p{font-size:11px}.empty-search .outline-button{font-size:10px;padding:7px 10px}.course-toolbar-title{display:none}.course-world{padding:50px 25px 60px}.course-section>h2{font-size:22px;margin-bottom:35px}.lesson-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 15px}.lesson-tile{padding:10px 5px 0;min-height:92px}.tile-number{font-size:15px;left:8px;top:8px}.tile-lock{right:5px;top:5px}.tile-lock svg{width:9px;height:9px}.tile-art{padding-top:16px}.tile-art>svg{width:28px;height:28px}.key-pair{font-size:8px}.tile-caption{font-size:8px;padding:5px 2px;min-height:23px;width:calc(100% + 10px);margin-left:-5px}.tile-complete{bottom:19px;width:25px;height:18px}.tile-complete svg{width:16px}.course-section{margin-bottom:75px}.minimap{right:1px;top:100px}.minimap>button{width:10px}.minimap span{width:3px}.badges-page>h1{margin-bottom:0}.badge-empty{padding:65px 0 80px}.badge-illustration{width:220px;height:220px}.badge-illustration>div{width:150px;height:150px}.badge-illustration>div>svg{width:78px;height:78px}.gold-ribbon{width:27px;height:92px;left:62px;top:24px;border-width:5px}.laurel svg{width:45px;height:45px}.laurel.left{left:8px;top:98px}.laurel.right{right:8px;top:40px}.badge-empty h2{font-size:21px;margin-top:23px}.badge-empty p{font-size:12px}.badge-section-heading{font-size:17px;margin-bottom:35px}.badges-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 15px}.badge-medal{width:95px;height:95px;border-width:5px;margin-bottom:18px}.badge-medal svg{width:42px;height:42px}.badge-card h3{font-size:13px;margin:12px 0}.badge-card p{font-size:10px}.game-options{flex-direction:column;gap:15px;padding:21px}.game-options label{font-size:12px;justify-content:space-between;gap:12px}.game-options select{font-size:12px;min-width:115px}.game-mode-grid{grid-template-columns:1fr;gap:17px}.game-mode-card{padding:25px}.game-mode-card>span{width:55px;height:55px;margin-bottom:20px}.game-mode-card>span svg{width:25px;height:25px}.game-mode-card h2{font-size:21px}.game-mode-card p{font-size:12px;min-height:0}.custom-practice{padding:23px 20px}.custom-practice textarea{font-size:16px}.custom-practice p{font-size:11px}.settings-panel{padding:22px 19px;border-radius:14px}.settings-panel>h2{font-size:17px}.setting-row{padding:21px 0;gap:15px}.setting-row strong{font-size:13px}.setting-row p{font-size:10px}.setting-row select{font-size:11px;max-width:115px}.setting-row:has(input[type=file]){flex-direction:column;align-items:flex-start}.setting-row input[type=file]{max-width:100%}.setting-row .outline-button,.setting-row .danger-button{font-size:10px;padding:8px 13px}.modal-backdrop{padding:18px}.modal{padding:29px 24px;max-height:calc(100dvh - 36px);border-radius:14px}.modal h2{font-size:22px;margin-bottom:16px}.modal>p{font-size:12px}.modal-actions{gap:9px;flex-wrap:wrap}.modal-actions>button{flex:1;font-size:12px;padding:9px 14px}.detail-modal{padding:0}.detail-body{padding:22px}.detail-body h2{font-size:20px;margin-bottom:18px}.detail-body>p{font-size:12px;margin-bottom:25px}.detail-meta{flex-wrap:wrap;gap:17px;padding-bottom:25px;font-size:11px}.detail-meta>span{width:calc(50% - 9px)}.detail-actions{flex-wrap:wrap;gap:9px;padding-top:20px}.detail-actions .outline-button{font-size:11px;padding:8px 13px}.detail-actions .dark-button{font-size:11px}.attempt-detail{gap:20px 12px}.attempt-detail strong{font-size:14px}.auth-page{padding:100px 20px 50px;min-height:100dvh;align-items:flex-start}.auth-brand{left:0;top:0}.auth-brand .brand>svg{width:33px}.auth-brand .brand strong{font-size:23px}.auth-card{padding:29px 23px;border-radius:17px}.auth-card h1{font-size:22px}.auth-card .auth-description{font-size:11px}.social-signin button{font-size:12px}.auth-card>p:not(.auth-description){font-size:11px}.auth-landscape .windmill{display:none}.auth-page .hill.h1{width:170%;left:-80%;bottom:-40%}.auth-page .hill.h2{width:180%;right:-90%}.auth-page #profile-name{font-size:16px}.practice-page{max-height:100dvh;padding:0;border-radius:0;width:100%;height:100dvh}.practice-page .practice-toolbar{padding:0 13px;gap:8px;min-height:53px}.practice-toolbar>span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.practice-tools{gap:9px}.practice-tools>button{width:22px;height:36px}.practice-tools>button>svg{width:16px;height:16px}.practice-tools>button:nth-child(2),.practice-tools>button:nth-child(3),.practice-tools>button:nth-child(4),.practice-tools>button:nth-child(5){display:none}.practice-tools>button:last-child{margin-left:1px}.practice-stage{width:calc(100% - 42px);padding:95px 0 35px}.start-typing{left:0;top:0;width:56px;height:77px;padding-top:44px;font-size:10px}.typing-passage{font-size:25px!important;max-height:195px;line-height:1.9;padding-bottom:8px}.practice-metrics{gap:13px;flex-wrap:wrap;font-size:8px;margin-top:13px}.keyboard-wrap{margin-top:35px;width:100%;max-width:650px}.keyboard,.keyboard-row{gap:2px}.key{height:29px;font-size:13px;min-width:0}.key-backspace{font-size:5px}.key-tab,.key-caps-lock,.key-enter,.key-shift{font-size:6px;padding-left:0}.key-control,.key-option{font-size:6px}.key-space{font-size:9px}.key.next-key{box-shadow:inset 0 0 0 2px #c6defb}.hand-guide{top:45px}.show-hands{padding-bottom:140px}.practice-bottom{margin-top:28px;font-size:8px;gap:8px;opacity:.8}.practice-bottom .text-button{font-size:10px}.practice-race{margin-bottom:22px}.practice-race small{font-size:8px}.lives-label{font-size:11px}.result-page{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-height:100dvh;padding:0;border-radius:0}.result-toolbar{height:54px;padding:0 20px;gap:20px;font-size:11px}.result-toolbar .text-button{font-size:10px;white-space:nowrap}.result-body{margin:65px auto 45px;padding:0 24px}.result-stars{gap:5px;margin-bottom:35px}.result-stars svg{width:46px;height:46px}.result-body>h2{font-size:29px}.result-body>p{font-size:12px}.result-grid{gap:12px;margin-top:36px}.result-grid strong{font-size:27px}.result-grid span{font-size:10px}.result-points{font-size:17px;flex-wrap:wrap;padding:18px 12px}.result-points>span{font-size:11px;margin-left:8px}.result-actions{gap:10px;flex-wrap:wrap;margin-top:29px}.result-actions>button{font-size:12px;padding:9px 17px}.popup{width:225px}.popup>button{font-size:12px}.popup-switch{font-size:11px}.practice-page .practice-tools button{min-height:36px}#toast{font-size:12px;padding:12px 18px;bottom:22px}.sidebar-collapsed main{margin-left:65px}.sidebar-collapsed .topbar{left:65px}}@media(max-width:500px){.filter-sidebar{position:relative;inset:auto;width:auto;padding:0 0 20px;border-right:0;margin:0 20px;border-bottom:1px solid var(--line);background:transparent}.filter-sidebar>h2,.filter-sidebar>h3,.filter-heading,.subject-options,.filter-sidebar>select{display:none}.filter-sidebar .sort-options{margin:0;display:flex;flex-direction:row;gap:5px;overflow:auto}.filter-option{width:auto;flex:1;justify-content:center;padding:10px 5px;font-size:10px;white-space:nowrap}.filter-option svg{display:none}.library-mode #app{padding-top:88px}.library-mode main{margin-left:0;padding-top:0}.library-content{padding:20px}.library-heading{flex-direction:row;align-items:center;gap:20px;margin-bottom:30px}.library-heading h1{font-size:29px;white-space:nowrap}.library-heading .search-input{width:65%;height:43px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.library-grid .course-meta>span:last-child{display:none}.library-grid .course-title{font-size:12px}.library-grid .course-card{padding:6px;border-radius:13px}.library-grid .course-card-body{padding:12px 6px 16px;min-height:84px}.library-grid .cover-button{aspect-ratio:4/3;border-radius:8px}.lesson-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 21px}.course-world{padding-left:26px;padding-right:26px}.lesson-tile{min-height:112px}.tile-art>svg{width:34px;height:34px}.tile-caption{font-size:9px;min-height:26px}.tile-number{font-size:18px}.key-pair{font-size:10px}.tile-complete{bottom:21px}.course-section>h2{font-size:21px}.topbar-actions{gap:8px}.home-content{padding-left:18px;padding-right:18px}.rings{gap:12px 4px}.time-ring-item{flex-basis:29%}.time-ring{width:58px;height:58px}.time-ring>div{width:48px;height:48px}.overall-time strong{font-size:18px}.dashboard-lower{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.performance-box{padding-left:13px;padding-right:10px}.standard-content{padding-left:18px;padding-right:18px}.badges-grid{gap:32px 10px}.badge-medal{width:85px;height:85px}.badge-medal svg{width:36px;height:36px}.badge-empty{padding-top:50px}.badge-illustration{width:200px;height:200px}.badge-illustration>div{width:140px;height:140px}.gold-ribbon{left:56px}.laurel svg{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*){animation-duration:.01ms!important}}.practice-caption{font-size:16px;color:var(--muted);line-height:1.8;margin-bottom:22px}.finger-colors .key[data-finger="0"]{background:#f6dbe4;color:#775e67}.finger-colors .key[data-finger="1"]{background:#f7e7cb;color:#807052}.finger-colors .key[data-finger="2"]{background:#f5efcc;color:#7a7454}.finger-colors .key[data-finger="3"]{background:#d9eddd;color:#56735c}.finger-colors .key[data-finger="4"]{background:#d9e9f8;color:#5b7391}.finger-colors .key.next-key{box-shadow:inset 0 0 0 3px #6b9be8;color:#3067a5}.key.key-hit{transform:translateY(2px);filter:brightness(.94)}@media(min-width:1100px){.practice-page .typing-passage{min-height:196px}.practice-page .keyboard-wrap{margin-left:22px;margin-right:0}}.mobile-filter-toggle{display:none}.lesson-tile{animation:fade-in .24s ease-out backwards}@media(min-width:1750px){.home-content{max-width:1275px;position:relative;left:-38px}}@media(max-width:500px){.mobile-filter-toggle{display:flex;align-items:center;gap:8px;padding:0 0 14px;font-size:12px}.mobile-filter-toggle svg{width:14px;height:14px}.filters-open>.subject-options{display:flex}.filters-open>.filter-heading{display:flex}.filters-open>h3,.filters-open>select{display:block}.filters-open>h3{margin-top:20px}}@media(max-width:760px){.calendar-day>header>span:after{content:attr(data-day)!important}}.typeflow-brand{gap:11px}.typeflow-brand img{width:40px;height:40px;flex-shrink:0;box-shadow:0 4px 12px #2479ee20;border-radius:12px}.typeflow-brand>span{display:flex;flex-direction:column;gap:3px}.typeflow-brand strong{font-size:21px!important;letter-spacing:1px;color:var(--text,#253247)}.typeflow-brand small{font-size:11px;letter-spacing:2px;color:#778497;font-weight:500}.brand.typeflow-brand{align-items:center}.pinyin-composer{max-width:800px;margin:18px auto 12px;padding:16px 20px;border:1px solid #d9e4f2;border-radius:18px;background:linear-gradient(145deg,#fff,#f7faff);box-shadow:0 8px 24px #17488208;text-align:left;animation:ime-enter .28s ease both}.ime-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px;color:#536982}.ime-heading>span{display:flex;align-items:center;gap:8px;font-weight:600}.ime-heading svg{width:17px;height:17px}.ime-heading button{font-size:12px}.ime-field{display:flex;align-items:center;gap:14px;border-radius:10px;background:#edf4fe;padding:10px 14px}.ime-field>span{font-size:16px;color:#315e99;white-space:nowrap}.ime-field input{width:100%;min-width:0;border:0!important;outline:0;background:transparent!important;font-size:22px;letter-spacing:1.5px;color:#1764ca;padding:2px 0!important;box-shadow:none!important}.ime-field input::placeholder{font-size:16px;color:#91a1b6;letter-spacing:0}.ime-field:focus-within{box-shadow:0 0 0 2px #3886ef45}.ime-field input.ime-invalid{color:#cf424a}.ime-candidates{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:46px;margin-top:9px}.ime-candidate{display:flex;gap:8px;align-items:center;border:1px solid transparent;border-radius:8px;background:transparent;padding:7px 11px;font-size:18px;color:#344861;transition:background .18s,transform .18s,border-color .18s,opacity .18s;animation:ime-enter .18s both}.ime-candidate kbd{font-family:inherit;font-size:11px;color:#8593a5}.ime-candidate.selected,.ime-candidate:hover{border-color:#bed8fd;background:#e8f1ff;color:#1764ca}.ime-candidate:active{transform:scale(.95)}.ime-empty{font-size:13px;color:#8a96a6;padding-left:4px}.ime-help{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#76879a;margin-top:7px;line-height:1.6}.ime-help small{font-size:11px;color:#8e9bad}.ime-native-note{font-size:13px;color:#70839a;line-height:1.7;margin:0}.finger-hint{height:25px;text-align:center;margin-top:8px;font-size:12px;color:#7a8ba2;transition:color .18s}.practice-page .key{transition:background-color .09s,color .09s,box-shadow .09s,transform .09s,border-color .09s}.practice-page .key.next-key{background:#e4f0ff;color:#226ed1;border-color:#8dbbf4;box-shadow:0 3px #a7c8f0}.practice-page .key.is-held{transform:translateY(3px) scale(.97);background:#337ee3!important;color:#fff!important;border-color:#226cce!important;box-shadow:0 0 0 3px #337ee322!important}.practice-page .key.feedback-correct{background:#dcf3ed;color:#187963;border-color:#85cbb9}.practice-page .key.feedback-error{background:#ffe4e7!important;color:#c13c4a!important;border-color:#e77d89!important;box-shadow:0 0 0 3px #e86f8220!important}.practice-page .key.is-held.feedback-correct{background:#289d81!important;color:#fff!important;border-color:#198870!important}.practice-page .key.is-held.feedback-error{background:#d65465!important;color:#fff!important}.typing-input[hidden],.ime-local[hidden],.ime-native-note[hidden]{display:none!important}.practice-page:has(.pinyin-composer) .practice-stage{padding-top:34px}.practice-page:has(.pinyin-composer) .practice-text-area{margin-bottom:0}.practice-page:has(.pinyin-composer) .typing-passage{max-height:125px}.practice-page:has(.pinyin-composer) .start-typing{display:none}.practice-page:has(.pinyin-composer) .keyboard-wrap{margin-top:10px}.practice-page:has(.pinyin-composer) .hands-guide{max-height:140px}.practice-page:has(.pinyin-composer) .practice-metrics{margin-top:10px}.native-mode{background:var(--panel,#f7faff)}[data-theme=dark] .pinyin-composer{background:linear-gradient(145deg,#202b3b,#1b2636);border-color:#35465d}[data-theme=dark] .ime-field{background:#263950}[data-theme=dark] .ime-field>span,[data-theme=dark] .ime-field input{color:#96c3ff}[data-theme=dark] .ime-candidate{color:#bbcce0}[data-theme=dark] .ime-candidate.selected,[data-theme=dark] .ime-candidate:hover{background:#29405d;border-color:#4979b5}[data-theme=dark] .typeflow-brand strong{color:#e2ebf7}@keyframes ime-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.pinyin-composer{padding:12px;margin:12px 0 10px;border-radius:12px}.ime-field{gap:8px;padding:9px}.ime-field>span{font-size:13px}.ime-field input{font-size:19px}.ime-field input::placeholder{font-size:13px}.ime-candidate{padding:6px 8px;font-size:17px}.ime-help{gap:4px}.practice-page:has(.pinyin-composer) .practice-stage{padding-top:18px}.practice-page:has(.pinyin-composer) .typing-passage{max-height:110px}.typeflow-brand strong{font-size:19px!important}.finger-hint{margin-top:3px}}@media(prefers-reduced-motion:reduce){.pinyin-composer,.ime-candidate{animation:none}.practice-page .key{transition:none}}.practice-page:has(.pinyin-composer) .typing-passage{min-height:0}.practice-page:has(.pinyin-composer) .keyboard-wrap{margin-left:auto;margin-right:auto}.practice-page:has(.pinyin-composer) .practice-bottom{margin-top:12px;opacity:.85}@media(max-width:600px){.ime-candidates{min-height:82px;align-content:center}}:root{--blue:#0a84ff;--a1:#12c2a5;--a2:#0a84ff;--ok:#0f9d73;--bad:#ef4444;--amber:#f5a524;--bg:#fafafa;--text:#2b3749;--muted:#6f7b8a;--line:#e3e5e8;--surface:#fff;--g-hl:.55;--g-fill:rgba(255,255,255,.66);--g-fill2:rgba(255,255,255,.4);--g-edge:rgba(255,255,255,.95);--g-edge2:rgba(255,255,255,.6);--g-sh:0 18px 48px rgba(30,50,100,.14);--g-sh2:0 6px 18px rgba(30,50,100,.1);--f0:rgba(255,90,125,.42);--f1:rgba(255,160,40,.42);--f2:rgba(245,215,50,.5);--f3:rgba(40,200,120,.42);--f4:rgba(10,132,255,.34);--aurora:radial-gradient(60vmax 50vmax at 6% -8%,rgba(127,212,255,.55),transparent 60%),radial-gradient(55vmax 45vmax at 98% 6%,rgba(195,178,255,.5),transparent 60%),radial-gradient(60vmax 50vmax at 72% 110%,rgba(255,196,168,.5),transparent 60%),radial-gradient(50vmax 40vmax at -4% 100%,rgba(142,240,207,.45),transparent 60%)}:root[data-theme=dark]{--blue:#4da3ff;--a1:#2ee6c5;--a2:#4da3ff;--ok:#34d399;--bad:#ff6b6b;--amber:#fbbf24;--bg:#111722;--text:#e2e8f0;--muted:#9ba9bb;--line:#2e3b4d;--surface:#1c2534;--g-hl:.12;--g-fill:rgba(26,38,54,.72);--g-fill2:rgba(18,27,40,.6);--g-edge:rgba(255,255,255,.18);--g-edge2:rgba(80,125,185,.26);--g-sh:0 22px 56px rgba(0,0,0,.55);--g-sh2:0 8px 24px rgba(0,0,0,.45);--f0:rgba(255,90,125,.5);--f1:rgba(255,160,40,.45);--f2:rgba(245,215,50,.4);--f3:rgba(40,200,120,.45);--f4:rgba(77,163,255,.5);--aurora:radial-gradient(60vmax 50vmax at 6% -8%,rgba(23,71,214,.4),transparent 60%),radial-gradient(55vmax 45vmax at 98% 6%,rgba(109,40,217,.35),transparent 60%),radial-gradient(60vmax 50vmax at 72% 110%,rgba(190,24,93,.28),transparent 60%),radial-gradient(50vmax 40vmax at -4% 100%,rgba(15,118,110,.35),transparent 60%)}html{background-color:var(--bg)!important;color:var(--text);color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background-color:var(--bg)!important;color:var(--text)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--aurora);transition:opacity .2s ease}body,.sidebar,.topbar,.course-card,.panel,.stats-panel,.bento-card,.auth-flow-card,.sync-card,.security-card,.profile-hero-card,.outline-chapter-card,.modal{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}.course-card,.stats-panel,.panel,.game-mode-card,.badge-card,.recommended-card,.performance-box,.speed-box,.time-box,.auth-card,.custom-practice,.lesson-tile,.modal,.popup,.pinyin-composer,.practice-text-area,.practice-metrics span,.result-body,.result-points,.keyboard-wrap:before,.outline-button,.ime-candidate,.search-input,.segmented,.setting-row select,.filter-sidebar{background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--g-edge2);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh)}.outline-button,.ime-candidate,.search-input,.segmented,.setting-row select,.practice-metrics span,.result-points{box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2)}:root[data-theme=dark] .course-card,:root[data-theme=dark] .stats-panel,:root[data-theme=dark] .panel{border-color:var(--g-edge2)}.course-card,.stats-panel,.panel,.game-mode-card,.badge-card,.recommended-card{border-radius:26px}.course-card,.game-mode-card,.badge-card,.recommended-card{transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s}.course-card:hover,.game-mode-card:hover,.badge-card:hover,.recommended-card:hover{transform:translateY(-4px);box-shadow:inset 0 1px 0 var(--g-edge),0 26px 52px #1e3c8233;background-color:transparent}.game-mode-card:hover{background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2))}.game-mode-card>span{box-shadow:inset 0 1px #ffffffb3}.sidebar{background:linear-gradient(180deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);border-right:1px solid var(--g-edge2);box-shadow:inset -1px 0 0 var(--g-edge)}.sidebar nav{margin:30px 14px 0}.nav-item{border-radius:16px}.nav-item:hover:not(.active){background:color-mix(in srgb,var(--blue) 10%,transparent)}.nav-item.active{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-weight:600;box-shadow:inset 0 1px #ffffff80,0 10px 22px color-mix(in srgb,var(--a2) 32%,transparent)}.nav-item.active:after{display:none}.nav-item.active svg{stroke:#fff}.topbar{background:color-mix(in srgb,var(--bg) 45%,transparent);-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%)}.dark-button{background:linear-gradient(135deg,var(--a1),var(--a2));border:0;color:#fff;box-shadow:inset 0 1px #ffffff80,0 10px 22px color-mix(in srgb,var(--a2) 32%,transparent)}.dark-button:hover{background:linear-gradient(135deg,var(--a1),var(--a2));filter:brightness(1.07)}.outline-button:hover{background-color:transparent;filter:brightness(1.04)}.modal-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal{border-radius:32px}.popup{border-radius:20px}#toast{background:#0f1624d1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px #ffffff40,0 10px 30px #0000004d}.lesson-tile{border-radius:18px}.sound-tools{display:flex;gap:10px;align-items:center}.sound-options{display:grid;gap:4px}.sound-options button{text-align:left;padding:9px 12px;border-radius:12px;font-size:13px}.sound-options button.selected{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff}.practice-page,.result-page{background:var(--aurora),var(--bg)}.practice-page .practice-toolbar,.result-toolbar{background:var(--g-fill2);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%);border-bottom:1px solid var(--g-edge2)}.start-typing{background:linear-gradient(160deg,var(--a1),var(--a2));box-shadow:0 12px 24px color-mix(in srgb,var(--a2) 35%,transparent);font-weight:600}.practice-text-area{position:relative;border-radius:30px;padding:22px 30px 12px;transition:box-shadow .3s}.typing-passage{border-bottom:0;color:var(--muted)}.typing-passage .correct{color:var(--ok)}.typing-passage .incorrect{background:var(--bad);color:#fff;border-radius:7px}.typing-passage .caret{border-bottom:0;padding:0;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--a2) 25%,transparent),0 4px 14px color-mix(in srgb,var(--a2) 45%,transparent)}.typing-passage .pop{position:relative;animation:glass-pop .24s}@keyframes glass-pop{40%{top:-6px;text-shadow:0 0 14px currentColor}}.practice-text-area.hot{box-shadow:inset 0 1px 0 var(--g-edge),0 0 0 1px #ff8c3c80,0 0 46px #ff8c3c59}.shake{animation:glass-shake .22s}@keyframes glass-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.float-text{position:absolute;left:50%;top:6px;z-index:3;font-weight:800;font-size:22px;color:var(--a2);pointer-events:none;white-space:nowrap;animation:glass-float .9s ease-out forwards}.float-text.combo{color:#ff8a3d}@keyframes glass-float{0%{opacity:1;transform:translate(-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-48px) scale(1.2)}}body.edge-flash:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200;box-shadow:inset 0 0 100px #ff3b3066;animation:glass-edge .3s forwards}@keyframes glass-edge{to{opacity:0}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:300}.practice-metrics{opacity:1;font-size:13px;gap:12px;margin-top:18px}.practice-metrics span{padding:8px 18px;border-radius:22px}.practice-metrics b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.practice-race>span{height:8px;background:linear-gradient(90deg,var(--a1),var(--a2));box-shadow:0 0 12px color-mix(in srgb,var(--a2) 55%,transparent)}.practice-race>span:nth-child(2){background:linear-gradient(90deg,#f59e0b,#fb923c);box-shadow:none}#practice-keyboard{position:relative;max-width:680px;margin:16px auto 0;padding:16px 18px 12px;border-radius:28px;background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--g-edge2);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh);transition:all .25s ease}.practice-page #practice-keyboard:not(.hidden){animation:keyboard-reveal .32s cubic-bezier(.2,.7,.3,1) both}@keyframes keyboard-reveal{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.keyboard-wrap{position:relative;width:100%;max-width:650px;margin:0 auto;padding-bottom:0}.keyboard-wrap.show-hands{padding-bottom:155px!important;overflow:visible!important}.keyboard-wrap:before{display:none}.key{position:relative;border-radius:10px;border:1px solid var(--g-edge2);color:var(--text);font-weight:500;background:linear-gradient(180deg,#ffffff9e,#ffffff0f 62%),var(--fc,rgba(255,255,255,.3));box-shadow:inset 0 1px 0 var(--g-edge),inset 0 -3px #0000001f,0 6px 10px #14285a1a}:root[data-theme=dark] .key{border-color:var(--g-edge2);color:var(--text);background:linear-gradient(180deg,#ffffff29,#ffffff05 62%),var(--fc,rgba(255,255,255,.06))}.finger-colors .key[data-finger="0"]{--fc:var(--f0)}.finger-colors .key[data-finger="1"]{--fc:var(--f1)}.finger-colors .key[data-finger="2"]{--fc:var(--f2)}.finger-colors .key[data-finger="3"]{--fc:var(--f3)}.finger-colors .key[data-finger="4"]{--fc:var(--f4)}.key.practiced{background:linear-gradient(180deg,#ffffff8c,#ffffff0d 62%),color-mix(in srgb,var(--a1) 28%,transparent);color:var(--text)}.key.next-key{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;border-color:transparent;transform:translateY(-3px) scale(1.06);z-index:2;box-shadow:inset 0 1px #ffffff80,0 0 0 2px var(--a2),0 0 26px color-mix(in srgb,var(--a2) 65%,transparent)}.key.is-held{transform:translateY(3px);filter:brightness(.93)}.key.feedback-correct:after,.key.feedback-error:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;animation:glass-ripple .38s ease-out}.key.feedback-correct{background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 60%),var(--ok);color:#fff}.key.feedback-error{background:linear-gradient(180deg,rgba(255,255,255,.3),transparent 60%),var(--bad);color:#fff}@keyframes glass-ripple{0%{box-shadow:0 0 color-mix(in srgb,var(--a2) 60%,transparent)}to{box-shadow:0 0 0 14px transparent}}.pinyin-composer{border-radius:26px}.ime-candidate{border-radius:16px}.ime-candidate.selected{outline:2px solid var(--a2);background:color-mix(in srgb,var(--a2) 14%,transparent)}.ime-candidate kbd{color:var(--muted)}.hand-guide{display:none;position:absolute;left:0;right:0;top:50px;width:100%;height:auto;z-index:2;pointer-events:none}.show-hands .hand-guide{display:block}.finger-hint{position:relative;z-index:3;height:26px;line-height:26px;text-align:center;margin-top:8px;font-size:13px;font-weight:700;color:var(--blue);letter-spacing:.5px}.practice-page{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;border:0!important;box-shadow:none!important;padding:0!important;overflow-y:auto!important;overflow-x:hidden!important}.practice-stage{position:relative;width:min(920px,calc(100% - 60px));margin:0 auto;padding:40px 0 24px!important}.practice-text-area{position:relative}.practice-page:has(.pinyin-composer) .practice-stage{padding:12px 0 16px!important}.practice-page:has(.pinyin-composer) .typing-passage{max-height:100px!important;min-height:0!important}.practice-page:has(.pinyin-composer) .pinyin-composer{max-width:780px!important;margin:6px auto!important;padding:10px 16px!important;border-radius:18px!important}.practice-page:has(.pinyin-composer) #practice-keyboard{margin-top:8px!important;padding:12px 14px 10px!important}.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:135px!important;overflow:visible!important}.practice-page:has(.pinyin-composer) .finger-hint{margin-top:5px!important}.practice-page:has(.pinyin-composer) .practice-bottom{margin-top:8px!important}@media(max-width:900px){.user-hub-button .user-display-name{display:none}.user-hub-button{padding:6px 8px;gap:6px}}@media(max-width:760px){.user-hub-button .hub-status-dot,.tool-tile span{display:none}.tool-tile{padding:8px 4px}}.sidebar-bottom{margin-top:auto;padding:12px 14px 16px!important;display:flex;flex-direction:column;gap:10px!important}.sidebar-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.tool-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:9px 6px;border-radius:14px;background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);border:1px solid var(--g-edge2);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;position:relative;transition:all .24s cubic-bezier(.34,1.56,.64,1);width:100%}.tool-tile:hover{background:linear-gradient(135deg,#ffffffe6,#ffffff80);transform:translateY(-2px);color:var(--blue);border-color:var(--blue);box-shadow:inset 0 1px 0 var(--g-edge),0 6px 16px #0a84ff2e}.tool-tile:active{transform:scale(.95)}.tool-tile.active{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;border-color:transparent;box-shadow:inset 0 1px #ffffff80,0 6px 16px color-mix(in srgb,var(--a2) 40%,transparent)}.tool-tile.active svg{color:#fff!important}.tool-tile svg{width:18px;height:18px;color:var(--blue);transition:transform .28s cubic-bezier(.34,1.56,.64,1)!important}.tool-tile:hover svg{transform:scale(1.22) rotate(6deg)}.tool-tile .support-count{position:absolute;top:4px;right:6px;background:var(--blue);color:#fff;border-radius:8px;padding:1px 5px;font-size:9px;font-weight:700}.sidebar-status-tag{display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 10px;border-radius:20px;background:color-mix(in srgb,var(--text) 4%,transparent);width:100%}.status-pulse-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981;animation:pulse-glow 2s infinite ease-in-out}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}button svg,a svg{transition:transform .26s cubic-bezier(.34,1.56,.64,1),filter .24s ease!important}.nav-item:hover svg{transform:scale(1.2) translateY(-1px);filter:drop-shadow(0 2px 6px color-mix(in srgb,var(--blue) 50%,transparent))}.nav-item:active svg{transform:scale(.92)}.nav-item.active svg{animation:svg-spring-pop .38s cubic-bezier(.34,1.56,.64,1)}@keyframes svg-spring-pop{0%{transform:scale(.75)}60%{transform:scale(1.25) rotate(4deg)}to{transform:scale(1) rotate(0)}}.locale-button{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:20px;border:1px solid var(--g-edge2);background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));font-size:13px;font-weight:600;color:var(--text);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);transition:all .2s}.locale-button:hover{background:linear-gradient(135deg,#ffffffe6,#ffffff80);color:var(--blue);border-color:var(--blue);transform:translateY(-1px)}.locale-button:hover svg:first-child{transform:rotate(20deg) scale(1.15)}.locale-button:hover svg:last-child{transform:translateY(2px)}.locale-flag{font-size:15px;line-height:1}.lang-options{display:flex;flex-direction:column;gap:5px;min-width:170px;padding:4px}.lang-options button{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13px;font-weight:550;color:var(--text);border:0;background:transparent;cursor:pointer;transition:all .18s;width:100%;text-align:left}.lang-options button:hover{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue)}.lang-options button.selected{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-weight:700}.lang-options button.selected svg{margin-left:auto;stroke:#fff;width:15px;height:15px}.lang-flag{font-size:16px}.user-hub-button{display:flex;align-items:center;gap:9px;padding:6px 14px;border-radius:24px;background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));border:1px solid var(--g-edge2);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);color:var(--text);font-size:14px;font-weight:600}.user-hub-button:hover{transform:translateY(-1px);border-color:var(--blue);color:var(--blue)}.user-avatar-tag{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:13px;font-weight:700;box-shadow:0 2px 6px color-mix(in srgb,var(--a2) 40%,transparent)}.hub-status-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981}.modal-backdrop{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:100!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#0f172a73!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;padding:24px!important}.modal{position:relative!important;border-radius:28px!important;background:radial-gradient(120% 80% at 10% -10%,rgba(255,255,255,var(--g-hl)),transparent 55%),linear-gradient(135deg,var(--g-fill),var(--g-fill2))!important;-webkit-backdrop-filter:blur(28px) saturate(180%)!important;backdrop-filter:blur(28px) saturate(180%)!important;border:1px solid var(--g-edge2)!important;box-shadow:inset 0 1px 0 var(--g-edge),0 24px 60px #0f172a40!important;max-height:calc(100dvh - 48px)!important;overflow-y:auto!important;outline:none!important}.modal-close{position:absolute!important;right:18px!important;top:18px!important;z-index:20!important;width:34px!important;height:34px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:color-mix(in srgb,var(--text) 8%,transparent)!important;color:var(--text)!important;border:1px solid var(--g-edge2)!important;box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2)!important;cursor:pointer!important;transition:all .2s!important}.modal-close:hover{background:color-mix(in srgb,var(--blue) 20%,transparent)!important;color:var(--blue)!important;transform:rotate(90deg)!important}.user-hub-modal,.feedback-modal{max-width:580px;padding:32px}.hub-header{display:flex;align-items:center;gap:18px;margin-bottom:20px}.hub-avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:24px;font-weight:800;box-shadow:0 8px 20px color-mix(in srgb,var(--a2) 35%,transparent)}.hub-title-wrap h2{margin:0 0 4px;font-size:22px}.hub-title-wrap p{margin:0;font-size:12px;color:var(--muted)}.hub-profile-box,.hub-sync-box{margin-top:16px}.hub-profile-box label,.fb-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;margin-bottom:14px}.hub-profile-box input,.fb-form input,.fb-form select,.fb-form textarea{border:1px solid var(--g-edge2);background:var(--surface);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--text)}.hub-stats-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0;text-align:center}.hub-stats-badges>div{padding:14px 10px;border-radius:14px;background:var(--soft);border:1px solid var(--line)}.hub-stats-badges span{font-size:11px;color:var(--muted);display:block;margin-bottom:4px}.hub-stats-badges strong{font-size:16px}.sync-card{padding:16px;border-radius:16px;background:var(--soft);border:1px solid var(--line)}.sync-card h3{margin:0 0 6px;font-size:14px}.sync-card p{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.6}.sync-copy-row{display:flex;gap:8px}.sync-copy-row input{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12px;background:var(--surface);color:var(--muted)}.sync-actions-row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.file-picker-label{cursor:pointer;position:relative}.fb-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fb-list-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.fb-items-scroll{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow-y:auto;padding-right:4px}.fb-item-card{padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--g-sh2)}.fb-item-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.fb-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:8px;background:color-mix(in srgb,var(--blue) 15%,transparent);color:var(--blue)}.fb-time{margin-left:auto;font-size:11px;color:var(--muted)}.fb-item-card p{margin:0 0 8px;font-size:13px;line-height:1.6;color:var(--text)}.fb-id{font-size:11px;color:var(--muted)}.result-body{border-radius:38px;padding:44px 36px 40px;margin-top:56px}.result-stars .earned{animation:glass-star .55s both}.result-stars>span:nth-child(2).earned{animation-delay:.14s}.result-stars>span:nth-child(3).earned{animation-delay:.28s}.result-stars>span:nth-child(4).earned{animation-delay:.42s}.result-stars>span:nth-child(5).earned{animation-delay:.56s}.stars .earned{color:var(--amber);filter:drop-shadow(0 2px 8px rgba(245,165,36,.5))}@keyframes glass-star{0%{opacity:0;transform:scale(.2) rotate(-40deg)}70%{transform:scale(1.35) rotate(8deg)}to{opacity:1;transform:none}}.result-points{border-radius:20px}main{padding-top:88px!important}.home-content{padding-top:24px!important;padding-bottom:60px!important}.greeting{margin-bottom:28px!important}.sidebar-bottom{padding:16px 18px 22px!important;gap:8px!important}.local-edition{font-size:11px!important;color:var(--muted);opacity:.85;margin-top:4px}@media(prefers-reduced-transparency:reduce){.course-card,.stats-panel,.panel,.game-mode-card,.badge-card,.recommended-card,.sidebar,.topbar,.modal,.popup,.pinyin-composer,.practice-text-area,.result-body,.keyboard-wrap:before,.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-reduced-motion:reduce){.typing-passage .pop,.result-stars .earned,.float-text{animation:none}}.brand.typeflow-brand{gap:10px;isolation:isolate;text-decoration:none;transition:opacity .22s ease,transform .22s ease;animation:brand-reveal .45s cubic-bezier(.2,.75,.25,1) both}.brand.typeflow-brand .typeflow-mark{position:relative;display:block;flex:0 0 44px;width:44px;height:44px;border-radius:13px;overflow:hidden;filter:drop-shadow(0 3px 6px #3162ac18);transition:transform .3s cubic-bezier(.2,.75,.25,1),filter .3s ease}.brand.typeflow-brand .typeflow-mark img{display:block;width:44px;height:44px;max-width:none;border-radius:0;box-shadow:none;transition:transform .3s ease}.brand.typeflow-brand .typeflow-mark:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;background:linear-gradient(110deg,transparent 38%,#ffffffa6 49%,transparent 60%);transform:translate(-95%);opacity:0;pointer-events:none;transition:transform .6s ease,opacity .25s ease}.brand.typeflow-brand .typeflow-wordmark{font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:24px!important;font-weight:650;letter-spacing:-.85px!important;line-height:1.1;color:#1e304b;transition:color .22s ease,text-shadow .22s ease}.brand.typeflow-brand .typeflow-wordmark>span{color:#356ba8;transition:color .22s ease}.brand.typeflow-brand:hover .typeflow-mark{transform:translateY(-1px) rotate(-4deg);filter:drop-shadow(0 5px 8px #3162ac29)}.brand.typeflow-brand:hover .typeflow-mark:after{transform:translate(95%);opacity:.75}.brand.typeflow-brand:hover .typeflow-wordmark>span{color:#1b75d1}.brand.typeflow-brand:active{transform:scale(.975)}.brand.typeflow-brand:active .typeflow-mark{transform:scale(.96)}.brand.typeflow-brand:focus-visible{outline:2px solid #5b9adf;outline-offset:-3px;border-radius:12px}:root[data-theme=dark] .brand.typeflow-brand .typeflow-wordmark{color:#e5edf8}:root[data-theme=dark] .brand.typeflow-brand .typeflow-wordmark>span{color:#9bcaff}:root[data-theme=dark] .brand.typeflow-brand .typeflow-mark{filter:drop-shadow(0 3px 9px #599aeb26)}@keyframes brand-reveal{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.brand.typeflow-brand{gap:8px}.brand.typeflow-brand .typeflow-wordmark{font-size:22px!important}.brand.typeflow-brand .typeflow-mark,.brand.typeflow-brand .typeflow-mark img{width:40px;height:40px}.brand.typeflow-brand .typeflow-mark{flex-basis:40px}}@media(prefers-reduced-motion:reduce){.brand.typeflow-brand,.brand.typeflow-brand *,.brand.typeflow-brand:after{animation:none!important;transition:none!important}.brand.typeflow-brand .typeflow-mark:after{display:none}}.pixel-icon{width:24px;height:24px;flex-shrink:0;shape-rendering:crispEdges}.course-world.quest-world{min-height:calc(100dvh - 72px);padding:30px 32px 50px;overflow:visible;background:linear-gradient(180deg,#f5faffd9,#f8fafdd9 520px);color:var(--text)}.quest-container{max-width:1120px;margin:auto;min-width:0}.quest-breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px;color:#8393a8;margin-bottom:22px}.quest-breadcrumb>.pixel-icon{width:17px;height:17px}.quest-breadcrumb b{font:500 10px Consolas,monospace;letter-spacing:1.3px;color:#5f7796}.learning-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:26px}.learning-track{min-width:0;display:flex;align-items:center;text-align:left;gap:12px;padding:16px;border:1px solid #dfe7f1;border-radius:12px;background:#ffffffb3;box-shadow:0 3px #dfe7f144,inset 0 1px #fff;color:#55667d;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;animation:quest-appear .3s both}.learning-track:hover{border-color:#a5c8f4;background:#fff;transform:translateY(-2px)}.learning-track:active{transform:translateY(1px) scale(.985)}.learning-track.is-active{background:linear-gradient(125deg,#edf5ff,#fff);border-color:#8cb8ef;box-shadow:0 3px #c4daf6,inset 0 1px #fff}.track-symbol{width:39px;height:39px;display:grid;place-items:center;background:#edf3fa;border:1px solid #e0eaf5;border-radius:8px;color:#7890ad}.learning-track.is-active .track-symbol{background:#3279d7;color:#fff;border-color:#3279d7;box-shadow:0 3px #235aa6}.track-copy{flex:1;min-width:0}.track-copy>small{font:10px Consolas,monospace;letter-spacing:1.3px;color:#92a0b3}.track-copy>strong{display:flex;align-items:baseline;gap:10px;margin-top:4px;font-size:17px;font-weight:650;color:#31445f}.track-copy>strong>span{font-size:10px;font-weight:400;white-space:nowrap;color:#8a9aaf}.track-tail{display:flex;color:#99adc4}.track-tail svg{width:18px;height:18px}.track-tail b{font-size:10px;font-weight:500;white-space:nowrap}.quest-hero{display:flex;align-items:center;justify-content:space-between;position:relative;min-height:215px;padding:24px 30px;border:1px solid #dbe7f4;border-radius:16px;background:radial-gradient(ellipse at 90% 15%,#dcecffaa,transparent 60%),linear-gradient(120deg,#fff,#f5faff);box-shadow:0 8px 32px #254f8710,inset 0 1px #fff;overflow:hidden;animation:quest-appear .35s both}.quest-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(#9bb7d42b .8px,transparent .8px);background-size:12px 12px;-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}.quest-hero-copy{position:relative;z-index:1}.quest-eyebrow{font:10px Consolas,monospace;letter-spacing:1.5px;color:#7f95af}.quest-hero h1{font-size:32px;line-height:1.3;margin:9px 0;color:#253a58;letter-spacing:1px;font-weight:700}.quest-hero p{font-size:12px;color:#7d8ea5;line-height:1.8;margin:0 0 22px}.quest-start.pixel-button{display:inline-flex;align-items:center;gap:9px;border:1px solid #286ac4;border-radius:7px;padding:11px 14px;background:linear-gradient(#458ee9,#3277d2);color:#fff;font-size:12px;font-weight:600;box-shadow:0 4px #24579e,inset 0 1px #8dbbff;transition:transform .2s,box-shadow .2s,filter .2s}.quest-start .pixel-icon{width:17px;height:17px}.quest-start span{font:10px Consolas,monospace;letter-spacing:.5px;opacity:.7;margin-left:9px}.quest-start:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 6px #24579e,inset 0 1px #8dbbff}.quest-start:active{transform:translateY(3px);box-shadow:0 1px #24579e}.quest-hero-art{width:230px;flex-shrink:0;position:relative;text-align:center}.quest-island{width:220px;height:140px;shape-rendering:crispEdges;filter:drop-shadow(0 12px 12px #648db91a);animation:island-appear .6s cubic-bezier(.2,.7,.3,1) both}.quest-hero-art>span{display:block;font:8px Consolas,monospace;letter-spacing:2px;color:#8da3ba}.quest-course-switch{display:flex;align-items:center;gap:12px;margin:16px 0 20px;font-size:11px;color:#7589a4;position:relative}.quest-switch-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;letter-spacing:.3px;color:#4f6b8c;white-space:nowrap;flex-shrink:0;-webkit-user-select:none;user-select:none}.quest-switch-label .pixel-icon{width:16px;height:16px;color:#3975c3}.quest-switch-rail,.quest-chapters-rail{position:relative;display:flex;align-items:center;gap:6px;flex:1;min-width:0}.quest-switch-track,.quest-course-switch>div{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;min-width:0;flex:1;padding:5px 8px;background:#ffffffa6;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(205,222,244,.8);border-radius:12px;box-shadow:inset 0 1px #fff,0 4px 16px #234b870d;cursor:grab;-webkit-user-select:none;user-select:none;scroll-behavior:smooth}.quest-switch-track.is-dragging{cursor:grabbing!important;scroll-behavior:auto!important}.quest-scroll-arrow{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:8px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(205,222,244,.9);color:#537093;cursor:pointer;flex-shrink:0;box-shadow:0 2px 6px #28508c0f;transition:all .2s cubic-bezier(.16,1,.3,1)}.quest-scroll-arrow .pixel-icon{width:14px;height:14px}.quest-scroll-arrow:hover{background:#fff;color:#2563eb;border-color:#93c5fd;transform:scale(1.08);box-shadow:0 4px 12px #2563eb29}.quest-scroll-arrow:active{transform:scale(.95)}.quest-course-chip{flex-shrink:0;white-space:nowrap;padding:6px 13px;font-size:11.5px;font-weight:500;letter-spacing:.2px;color:#5a7291;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .22s cubic-bezier(.16,1,.3,1)}.quest-course-chip:hover{background:#e6f1ffcc;color:#2563eb;transform:translateY(-1px)}.quest-course-chip.selected{background:linear-gradient(135deg,#fffffffa,#ebf5ffeb);border-color:#93c5fd;color:#1d4ed8;font-weight:600;box-shadow:0 2px 8px #2563eb29,inset 0 1px #fff;transform:translateY(-1px)}.quest-course-chip:active{transform:scale(.96) translateY(0)}.quest-progress-panel{display:flex;gap:24px;align-items:center;padding:17px 22px;border:1px solid #e0e8f1;border-radius:12px;background:#ffffffb3;animation:quest-appear .35s .05s both}.quest-progress-main{flex:1}.quest-progress-label{display:flex;align-items:center;gap:8px;color:#71849c;font-size:11px}.quest-progress-label>svg{width:16px;height:16px;color:#8fa8c6}.quest-progress-label>strong{margin-left:auto;color:#385778;font-size:15px}.quest-progress-label small{font-size:10px;color:#8c9bad;font-weight:400}.quest-progress-meter{height:6px;overflow:hidden;border-radius:2px;background:#edf1f6;margin-top:10px;box-shadow:inset 0 1px #d8e1ed}.quest-progress-meter>span{display:block;height:100%;background:repeating-linear-gradient(90deg,#4e91df 0,#4e91df 8px,#78acec 8px,#78acec 10px);transition:width .5s ease}.quest-small-stat{display:grid;grid-template-columns:20px auto;column-gap:8px;row-gap:3px;border-left:1px solid #e6ecf4;padding-left:22px}.quest-small-stat>.pixel-icon{grid-row:1/3;align-self:center;width:20px;height:20px;color:#90a7c4}.quest-small-stat strong{font:600 16px Consolas,monospace;color:#4b6382}.quest-small-stat span{font-size:10px;color:#8b9aaf}.quest-map-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:36px 0 18px}.quest-map-heading h2{font-size:20px;color:#344c6d;margin:7px 0 0}.quest-map-heading .quest-eyebrow{font-size:9px}.quest-legend{display:flex;gap:14px;font-size:10px;color:#8495aa}.quest-legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.quest-legend i{display:inline-block;width:6px;height:6px;background:#b9c6d6;box-shadow:1px 1px #9dafc4}.quest-legend .legend-current{background:#3984df;box-shadow:1px 1px #225ea7}.quest-legend .legend-cleared{background:#73b5a4;box-shadow:1px 1px #458c7a}.quest-chapters-rail{position:relative;display:flex;align-items:center;gap:6px;margin:16px 0 22px;min-width:0}.quest-chapters{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding:4px 2px;flex:1;min-width:0;cursor:grab;scroll-behavior:smooth}.quest-chapters.is-dragging{cursor:grabbing!important;scroll-behavior:auto!important}.quest-chapters>button{flex-shrink:0;white-space:nowrap;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;background:#ffffffbf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(220,231,243,.9);color:#556e8e;font-size:11px;box-shadow:0 2px 6px #28508c0a;transition:all .2s cubic-bezier(.16,1,.3,1)}.quest-chapters>button:hover{background:#fff;border-color:#93c5fd;color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb1f}.quest-chapters>button:active{transform:scale(.98)}.quest-chapters b{font:10px Consolas,monospace;color:#8fa5c2}.quest-chapters small{font:9px Consolas,monospace;color:#8299b6}.quest-stage{scroll-margin-top:90px;position:relative;border:1px solid #dce6f1;border-radius:12px;margin-bottom:24px;background:#ffffffd9;box-shadow:0 5px 22px #344f7510;overflow:hidden;animation:quest-appear .35s .08s both}.quest-stage-header{display:flex;align-items:center;gap:14px;padding:20px 23px;border-bottom:1px solid #eaf0f7;background:linear-gradient(100deg,#f0f6ff,#fff)}.quest-world-number{display:block;font:8px/1.4 Consolas,monospace;letter-spacing:.5px;color:#8ba4c1;border-right:1px solid #d7e4f4;padding-right:15px}.quest-world-number b{font-size:22px;font-weight:500;letter-spacing:1px;color:#4774a8}.quest-stage-header h2{font-size:17px;font-weight:650;color:#3d587b;margin:0 0 5px}.quest-stage-header p{font-size:10px;color:#93a2b4;margin:0;line-height:1.5}.quest-stage-progress{display:flex;align-items:center;gap:6px;font:10px Consolas,monospace;color:#a0afc1;margin-left:auto;white-space:nowrap}.quest-stage-progress .pixel-icon{width:14px;height:14px;color:#aebed0}.quest-stage-progress b{color:#6884a4;font-weight:500}.quest-level-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px;row-gap:20px;padding:28px 23px 24px;background-image:radial-gradient(#a5bed224 .7px,transparent .7px);background-size:10px 10px}.quest-level{display:flex;position:relative;flex-direction:column;align-items:center;gap:0;min-width:0;min-height:146px;padding:8px 4px;border-radius:8px;border:1px solid transparent;background:transparent;color:#617997;transition:transform .22s,background .22s,border-color .22s;animation:quest-node-in .35s var(--node-delay,0ms) both}.quest-level:before{content:"";position:absolute;left:-8px;right:-8px;top:62px;height:3px;background:repeating-linear-gradient(90deg,#cfdfef 0,#cfdfef 4px,transparent 4px,transparent 8px);z-index:0}.quest-level.is-current{background:#eff6ff9c;border-color:#c8defa}.quest-level:hover{background:#f1f6fc;border-color:#d5e5f7;transform:translateY(-3px)}.quest-level:active{transform:translateY(1px) scale(.97)}.quest-level.is-locked:hover{background:#f5f7fa;border-color:#e5ebf2}.quest-level:focus-visible{outline:2px solid #5296ef;outline-offset:2px}.quest-level-top{display:flex;justify-content:center;align-items:center;gap:9px;min-height:19px;width:100%;margin-bottom:7px;position:relative;z-index:1}.quest-level-top b{font:600 12px Consolas,monospace;color:#8fa4bd}.quest-level-top>.pixel-icon{width:11px;height:11px;color:#b2c1d2}.quest-level-top small{font:8px Consolas,monospace;color:#3074ca;background:#e0edff;padding:3px 4px}.quest-level-pad{display:grid;place-items:center;width:62px;height:56px;margin-bottom:10px;position:relative;z-index:1;background:linear-gradient(145deg,#f8fbff,#e7eff9);box-shadow:inset 0 2px #fff,inset 0 -5px #c8d9ed;clip-path:polygon(6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,100% 3px,100% calc(100% - 6px),calc(100% - 3px) calc(100% - 6px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px),0 3px,6px 3px);transition:background .22s,transform .22s,box-shadow .22s;color:#8fa9c7}.quest-level-pad>.pixel-icon{width:26px;height:26px;margin-bottom:3px}.is-current .quest-level-pad{background:linear-gradient(145deg,#71a8f2,#347bd7);box-shadow:inset 0 2px #9fc9ff,inset 0 -6px #2660ac;color:#fff}.is-current .quest-level-top b{color:#3373c5}.is-cleared .quest-level-pad{background:linear-gradient(145deg,#dcf1ee,#c7e5dd);box-shadow:inset 0 2px #f2fffb,inset 0 -5px #91c1b5;color:#539280}.is-cleared .quest-level-top>.pixel-icon{color:#66a695}.is-locked .quest-level-pad{background:linear-gradient(145deg,#f4f6f9,#e9eef4);box-shadow:inset 0 2px #fff,inset 0 -5px #d8e1ec;color:#b2c0d0}.quest-level:hover .quest-level-pad{transform:translateY(-2px)}.quest-level-name{font-size:11px;line-height:1.55;max-width:100%;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#5d7491;position:relative;z-index:1}.quest-level.is-current .quest-level-name{color:#326ab0;font-weight:600}.quest-level-detail{font-size:9px;line-height:1.4;color:#9eadbf;margin-top:3px}.is-locked .quest-level-name{color:#91a1b5}.is-cleared .quest-level-detail{color:#74a391}.quest-stage-footer{display:flex;align-items:center;gap:8px;padding:13px 22px;background:#f9fbfd;border-top:1px solid #eaf0f7;font-size:10px;color:#93a5ba}.quest-stage-footer>.pixel-icon{width:14px;height:14px;color:#9aafc8}.quest-stage-footer>span:last-child{margin-left:auto;font:9px Consolas,monospace;white-space:nowrap}.quest-map-footer{display:flex;align-items:center;gap:9px;font-size:11px;color:#93a4ba;padding:4px 0 18px}.quest-map-footer>.pixel-icon{width:19px;height:19px}.quest-map-footer>button{margin-left:auto;font-size:11px;display:flex;gap:7px;align-items:center}.quest-map-footer>button>.pixel-icon{width:15px;height:15px}.library-tracks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:2px 0 30px}.library-track{display:flex;justify-content:center;align-items:center;gap:9px;padding:13px 12px;color:#7e91aa;background:#ffffffa3;border:1px solid #dfe8f4;border-radius:10px;font-size:13px;transition:background .2s,border-color .2s,transform .2s}.library-track>.pixel-icon{width:20px;height:20px}.library-track>span{font:10px Consolas,monospace;color:#9eb0c5}.library-track.is-active{color:#3479ce;border-color:#98beec;background:#edf5ff;box-shadow:0 2px #c7ddf6}.library-track:hover{transform:translateY(-2px);border-color:#9abfe9}.library-track:active{transform:scale(.98)}.home-content>.learning-tracks{margin:25px 0 30px}.library-section>.track-group-heading{display:flex;align-items:center;gap:9px}.track-group-heading .pixel-icon{width:20px;height:20px;color:#78a2cf}.track-group-heading small{font:9px Consolas,monospace;letter-spacing:1px;color:#a0afbf;margin-left:6px}.course-mode .topbar{background:#ffffff80;border-bottom:1px solid #e2eaf4}:root[data-theme=dark] .course-world.quest-world{background:linear-gradient(180deg,#17273be8,#192432ed 700px)}:root[data-theme=dark] .quest-hero,:root[data-theme=dark] .quest-stage,:root[data-theme=dark] .quest-progress-panel,:root[data-theme=dark] .learning-track,:root[data-theme=dark] .library-track{background:#223247da;border-color:#354a66;color:#a6bad2;box-shadow:0 5px 16px #07101c15}:root[data-theme=dark] .quest-hero h1,:root[data-theme=dark] .track-copy>strong,:root[data-theme=dark] .quest-map-heading h2,:root[data-theme=dark] .quest-stage-header h2{color:#d5e4f6}:root[data-theme=dark] .quest-stage-header{background:linear-gradient(100deg,#293c55,#243449);border-color:#354963}:root[data-theme=dark] .learning-track.is-active,:root[data-theme=dark] .library-track.is-active{background:#2b4361;border-color:#5784b9}:root[data-theme=dark] .track-symbol,:root[data-theme=dark] .quest-chapters>button{background:#293e57;border-color:#3d5470;color:#aac6e8}:root[data-theme=dark] .quest-course-chip.selected{background:#2a405c;border-color:#43648b;color:#a7ceff}:root[data-theme=dark] .quest-level.is-current{background:#29466880;border-color:#4777ac}:root[data-theme=dark] .quest-level:hover{background:#2b3c51;border-color:#435d7b}:root[data-theme=dark] .quest-level-name{color:#b6c8de}:root[data-theme=dark] .quest-level.is-current .quest-level-name{color:#b6d8ff}:root[data-theme=dark] .is-locked .quest-level-name{color:#7f96b1}:root[data-theme=dark] .quest-level:before{background:repeating-linear-gradient(90deg,#3d5570 0,#3d5570 4px,transparent 4px,transparent 8px)}:root[data-theme=dark] .is-locked .quest-level-pad{background:linear-gradient(145deg,#35485e,#2b3c51);box-shadow:inset 0 2px #455d79,inset 0 -5px #223044;color:#5f7894}:root[data-theme=dark] .quest-stage-footer{background:#203044;border-color:#344a65}:root[data-theme=dark] .quest-progress-meter{background:#1d2c40;box-shadow:inset 0 1px #142136}:root[data-theme=dark] .quest-progress-label>strong,:root[data-theme=dark] .quest-small-stat strong{color:#b7cfea}:root[data-theme=dark] .quest-small-stat{border-color:#3e526c}:root[data-theme=dark] .course-mode .topbar{background:#1d2f43bb;border-color:#354c66}@keyframes quest-appear{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes quest-node-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes island-appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.track-copy>strong{gap:7px}.track-copy>strong>span{display:none}.learning-track{padding:13px;gap:10px}.quest-hero-art{width:200px}.quest-island{width:190px}.quest-level-grid{column-gap:7px;padding-left:18px;padding-right:18px}}@media(max-width:1000px){.course-world.quest-world{padding:24px}.quest-level-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.quest-hero{padding:24px}.track-tail{display:none}.learning-track{gap:9px}.quest-hero-art,.quest-island{width:170px}.quest-small-stat{padding-left:14px}.quest-progress-panel{gap:16px}.quest-hero h1{font-size:28px}}@media(max-width:760px){.course-world.quest-world{padding:23px 20px 30px}.learning-tracks{gap:8px;margin-bottom:18px}.learning-track{gap:9px;padding:12px}.track-symbol{width:32px;height:32px}.track-symbol .pixel-icon{width:20px;height:20px}.track-copy>small{font-size:8px;letter-spacing:.6px}.track-copy>strong{font-size:15px}.quest-level-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.quest-hero p{font-size:11px}.quest-progress-panel{padding:15px}.quest-hero-art,.quest-island{width:160px}.quest-legend{gap:9px}.quest-hero-art>span{font-size:7px;letter-spacing:1px}}@media(max-width:600px){.course-world.quest-world{padding:20px 15px 30px}.quest-breadcrumb{margin-bottom:17px;font-size:10px}.quest-breadcrumb b{font-size:9px;letter-spacing:.8px}.learning-tracks{gap:7px}.learning-track{display:grid;grid-template-columns:26px 1fr;gap:6px;padding:11px 8px;border-radius:8px}.track-symbol{width:25px;height:29px;border:0;background:transparent}.track-symbol .pixel-icon{width:20px;height:20px}.learning-track.is-active .track-symbol{background:transparent;color:#3479ce;border:0;box-shadow:none}.track-copy>small{font-size:7px;letter-spacing:.1px}.track-copy>strong{font-size:14px;margin-top:3px}.quest-hero{min-height:206px;padding:23px 19px;border-radius:12px}.quest-hero h1{font-size:27px;letter-spacing:.5px;margin:10px 0}.quest-hero p{max-width:195px;margin-bottom:20px;line-height:1.7}.quest-hero-art{position:absolute;right:-29px;top:6px;width:146px;opacity:.65}.quest-island{width:146px;height:125px}.quest-hero-art>span{display:none}.quest-eyebrow{font-size:9px;letter-spacing:1px}.quest-start.pixel-button{font-size:11px;padding:10px 12px;gap:7px}.quest-start span{font-size:9px;margin-left:3px}.quest-course-switch{gap:9px;margin:17px 0}.quest-course-switch>span{font-size:10px}.quest-course-chip{font-size:10px;padding:6px 8px}.quest-progress-panel{gap:10px;padding:13px;border-radius:9px}.quest-progress-label{font-size:10px;gap:5px}.quest-progress-label>svg{width:13px;height:13px}.quest-progress-label strong{font-size:13px}.quest-progress-label small{font-size:8px}.quest-small-stat{padding-left:10px;column-gap:5px;grid-template-columns:auto}.quest-small-stat>.pixel-icon{display:none}.quest-small-stat strong{font-size:14px}.quest-small-stat span{font-size:8px}.quest-map-heading{margin-top:27px;align-items:center}.quest-map-heading h2{font-size:18px}.quest-map-heading .quest-eyebrow{font-size:7px;letter-spacing:.7px}.quest-legend{gap:7px;font-size:8px}.quest-legend i{width:5px;height:5px}.quest-chapters{gap:5px}.quest-chapters>button{gap:5px;padding:8px;font-size:10px}.quest-chapters small{display:none}.quest-stage-header{padding:16px 14px;gap:10px}.quest-stage-header h2{font-size:15px}.quest-stage-header p{font-size:9px;max-width:175px}.quest-world-number{font-size:7px;padding-right:10px}.quest-world-number b{font-size:20px}.quest-stage-progress{font-size:9px;gap:4px}.quest-stage-progress>.pixel-icon{display:none}.quest-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 5px;padding:20px 12px}.quest-level{padding:6px 2px;min-height:145px}.quest-level-name{font-size:11px}.quest-stage-footer{padding:12px;font-size:9px;gap:6px}.quest-stage-footer>span:last-child{font-size:8px}.quest-map-footer{font-size:10px;flex-wrap:wrap}.quest-map-footer>button{font-size:10px}.library-tracks{gap:6px;margin-bottom:22px}.library-track{gap:5px;padding:12px 5px;font-size:11px}.library-track>.pixel-icon{width:16px;height:16px}.library-track>span{font-size:9px}.home-content>.learning-tracks{margin-top:20px}}@media(max-width:350px){.course-world.quest-world{padding-left:12px;padding-right:12px}.learning-track{padding:10px 6px;gap:4px;grid-template-columns:21px 1fr}.track-copy>small{font-size:6px}.track-copy>strong{font-size:13px}.quest-hero-art{right:-47px;opacity:.4}.quest-hero p{max-width:175px}.quest-progress-panel{gap:7px;padding:11px}.quest-small-stat{padding-left:7px}.quest-legend{gap:5px}.quest-stage-header p{max-width:149px}.quest-chapters>button{padding:7px 6px;font-size:9px}}@media(prefers-reduced-motion:reduce){.quest-world *,.learning-tracks *,.library-tracks *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.quest-switch-track,.quest-course-switch>div,.quest-chapters,.quest-chapters-rail nav,.library-tracks,.learning-tracks,[data-scroll-gesture]{scrollbar-width:none!important;-ms-overflow-style:none!important;scroll-behavior:smooth}.quest-switch-track::-webkit-scrollbar,.quest-course-switch>div::-webkit-scrollbar,.quest-chapters::-webkit-scrollbar,.quest-chapters-rail nav::-webkit-scrollbar,.library-tracks::-webkit-scrollbar,.learning-tracks::-webkit-scrollbar,[data-scroll-gesture]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.quest-course-chip{flex-shrink:0}@media(min-width:761px){.course-world.quest-world{padding-top:23px}.quest-breadcrumb{margin-bottom:16px}.learning-tracks{margin-bottom:20px}.learning-track{padding-top:12px;padding-bottom:12px}.quest-hero{min-height:166px;padding:19px 25px}.quest-hero h1{font-size:28px;margin:6px 0}.quest-hero p{margin-bottom:14px}.quest-hero-art{width:205px}.quest-island{height:115px;width:185px}.quest-hero-art>span{font-size:7px}.quest-course-switch{margin:15px 0}.quest-progress-panel{padding:13px 19px}.quest-map-heading{margin-top:26px;margin-bottom:15px}.quest-map-heading h2{font-size:19px}.quest-stage-header{padding-top:16px;padding-bottom:16px}}@media(max-width:600px){.quest-hero{min-height:180px;padding-top:19px;padding-bottom:19px}.quest-hero h1{margin:7px 0}.quest-hero p{margin-bottom:16px}.quest-course-switch{margin:14px 0}.quest-switch-track{padding:4px 6px}}body{--sidebar-width:246px;--filter-width:302px;--rail-width:76px;--sidebar-time:.42s;--sidebar-ease:cubic-bezier(.22,.8,.22,1)}.sidebar{width:var(--sidebar-width);transition:width var(--sidebar-time) var(--sidebar-ease)}body:not(.library-mode):not(.auth-mode) main{margin-left:var(--sidebar-width)}body:not(.library-mode):not(.auth-mode) .topbar{left:var(--sidebar-width)}main{transition:margin-left var(--sidebar-time) var(--sidebar-ease)}.topbar{transition:left var(--sidebar-time) var(--sidebar-ease)}.sidebar .brand{padding-left:16px!important;padding-right:12px!important;justify-content:flex-start;gap:10px;overflow:hidden}.sidebar .brand .typeflow-wordmark{display:block!important;max-width:165px;opacity:1;transform:translate(0);transition:max-width var(--sidebar-time) var(--sidebar-ease),opacity .24s ease,transform var(--sidebar-time) var(--sidebar-ease);overflow:hidden}.sidebar nav{margin:30px 12px 0!important;min-height:0;overflow:auto;scrollbar-width:none}.sidebar .nav-item{height:53px;min-height:53px;padding:14px 16px;gap:12px;white-space:nowrap;overflow:hidden;transition:padding var(--sidebar-time) var(--sidebar-ease),gap var(--sidebar-time) var(--sidebar-ease),background-color .2s,transform .2s}.sidebar .nav-item>span{display:block!important;opacity:1;max-width:190px;transform:translate(0);transition:max-width var(--sidebar-time) var(--sidebar-ease),opacity .22s ease,transform var(--sidebar-time) var(--sidebar-ease)}.sidebar .nav-item.nav-separated{margin-top:8px;padding-top:14px}.sidebar .sidebar-bottom{padding:16px 12px 20px!important;align-items:stretch}.sidebar .sidebar-tools-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.sidebar .tool-tile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;height:36px;min-height:36px;min-width:0;padding:0 10px;overflow:hidden;gap:10px;border:0;border-radius:11px;background:transparent;box-shadow:none;color:var(--ink);font-size:12px;font-weight:500;transition:gap var(--sidebar-time) var(--sidebar-ease),padding var(--sidebar-time) var(--sidebar-ease),transform .16s ease,background-color .18s ease,color .18s ease}.sidebar .tool-tile>svg{width:16px;height:16px;flex:0 0 16px}.sidebar .tool-tile>span{display:block!important;min-width:0;white-space:nowrap;max-width:180px;max-height:20px;overflow:hidden;opacity:1;transform:translate(0);transition:max-width var(--sidebar-time) var(--sidebar-ease),opacity .16s .1s ease,transform var(--sidebar-time) var(--sidebar-ease)}.sidebar .tool-tile:hover{transform:scale(1.015);background:transparent;color:var(--blue)}.sidebar .tool-tile:active{transform:scale(.97)}.sidebar .tool-tile:hover svg{transform:scale(1.06)}.sidebar .tool-tile.active{background:transparent;color:var(--blue)}.sidebar .sidebar-bottom{flex-shrink:0;gap:10px}.sidebar .tool-tile{width:calc(100% - 14px);margin-inline:7px}.sidebar-status-tag{height:30px;overflow:hidden;white-space:nowrap;transition:gap var(--sidebar-time) var(--sidebar-ease)}.sidebar .local-edition{max-width:190px;opacity:1;overflow:hidden;transition:max-width var(--sidebar-time) var(--sidebar-ease),opacity .18s ease}.sidebar-toggle{position:absolute;z-index:2;top:74px;right:-14px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;padding:0;background:var(--surface);border:1px solid var(--line);color:var(--muted);box-shadow:0 3px 12px #172b3a12;transition:transform .2s,background .2s,color .2s}.sidebar-toggle svg{width:16px;height:16px;transition:transform var(--sidebar-time) var(--sidebar-ease)}.sidebar-toggle:hover{transform:scale(1.1);color:var(--blue);background:var(--surface)}.sidebar-toggle:active{transform:scale(.92)}.sidebar-collapsed{--sidebar-width:var(--rail-width)}.sidebar-collapsed .sidebar{width:var(--rail-width)}.sidebar-collapsed .sidebar .brand .typeflow-wordmark{max-width:0;opacity:0;transform:translate(-10px)}.sidebar-collapsed .sidebar .brand,.sidebar-collapsed .sidebar .nav-item{gap:0}.sidebar-collapsed .sidebar .nav-item>span{max-width:0;opacity:0;transform:translate(-8px)}.sidebar-collapsed .sidebar .tool-tile{height:36px;gap:0;padding:0 10px;width:calc(100% - 14px)}.sidebar-collapsed .sidebar .tool-tile>span{max-width:0;max-height:20px;opacity:0;transform:translate(-6px);pointer-events:none;transition:max-width var(--sidebar-time) var(--sidebar-ease),opacity .1s ease,transform var(--sidebar-time) var(--sidebar-ease)}.sidebar-collapsed .sidebar .sidebar-tools-grid{grid-template-columns:minmax(0,1fr);gap:6px}.sidebar-collapsed .sidebar .tool-tile svg{width:16px;height:16px}.sidebar-collapsed .local-edition{max-width:0;opacity:0}.sidebar-collapsed .sidebar-status-tag{gap:0}.sidebar-collapsed .sidebar-toggle svg,.filters-collapsed .filter-toggle svg{transform:rotate(180deg)}.filter-sidebar{width:var(--filter-width);padding:0;overflow:visible;transition:width var(--sidebar-time) var(--sidebar-ease)}.library-mode main{margin-left:var(--filter-width)}.library-mode .library-topbar{left:0}.filter-toggle{top:24px}.filter-panel{height:100%;overflow:hidden;opacity:1;visibility:visible;transition:opacity .24s ease,visibility 0s,max-height var(--sidebar-time) var(--sidebar-ease)}.filter-panel-inner{height:100%;width:var(--filter-width);padding:70px 32px 40px 62px;overflow:auto;transform:translate(0);transition:transform var(--sidebar-time) var(--sidebar-ease)}.filter-panel h2{font-size:24px;margin-bottom:37px}.filter-panel h3{font-size:15px;margin-bottom:17px}.filter-panel select{display:block;width:100%;border-width:0 0 1px;border-radius:0;background:none;padding-left:0}.filter-rail{position:absolute;left:12px;right:12px;top:70px;display:flex;flex-direction:column;gap:12px;opacity:0;visibility:hidden;transform:translate(-10px);transition:opacity .18s ease,transform var(--sidebar-time) var(--sidebar-ease),visibility 0s .24s}.filter-rail button{height:48px;border-radius:14px;display:grid;place-items:center;color:var(--blue)}.filters-collapsed{--filter-width:var(--rail-width)}.filters-collapsed .filter-panel{opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s var(--sidebar-time)}.filters-collapsed .filter-panel-inner{transform:translate(-24px)}.filters-collapsed .filter-rail{opacity:1;visibility:visible;transform:none;transition:opacity .24s .16s ease,transform var(--sidebar-time) var(--sidebar-ease),visibility 0s}.library-back{display:inline-flex;align-items:center;gap:6px;min-height:36px;border-radius:12px;padding:6px 8px}@media(max-width:1200px)and (min-width:761px){body:not(.sidebar-collapsed){--sidebar-width:210px}body:not(.filters-collapsed){--filter-width:245px}.filter-panel-inner{padding-left:30px;padding-right:24px}}@media(max-width:1000px)and (min-width:761px){body:not(.sidebar-collapsed){--sidebar-width:180px}.sidebar .brand .typeflow-wordmark{font-size:20px!important}}@media(max-width:760px){body{--rail-width:68px;--sidebar-width:210px;--filter-width:220px}.sidebar-collapsed{--sidebar-width:68px}.sidebar .brand{height:65px;padding-left:12px!important}.sidebar nav{margin-left:8px!important;margin-right:8px!important}.sidebar .nav-item>svg{margin:0}.sidebar .nav-item>span{font-size:14px}.sidebar .sidebar-bottom{padding:12px 8px!important}.filter-panel-inner{padding:45px 22px}.filter-panel h2{font-size:21px;margin-bottom:25px}.filters-collapsed{--filter-width:68px}.library-back span{display:none}.library-back svg{width:19px;height:19px}}@media(max-width:500px){body:not(.sidebar-collapsed){--sidebar-width:210px}body:not(.library-mode):not(.auth-mode) main{margin-left:var(--rail-width)}body:not(.library-mode):not(.auth-mode) .topbar{left:var(--rail-width)}.sidebar{box-shadow:8px 0 32px #172b3a18}.filter-sidebar{position:relative;inset:auto;width:auto;margin:0 20px;padding:0;border:0;border-bottom:1px solid var(--line);background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.filter-toggle{top:0;right:0;width:36px;height:36px}.filter-toggle svg{transform:rotate(-90deg)}.filters-collapsed .filter-toggle svg{transform:rotate(90deg)}.filter-rail{display:none}.filter-panel,.filters-collapsed .filter-panel{display:grid;grid-template-rows:1fr;height:auto;opacity:1;visibility:visible;transition:grid-template-rows var(--sidebar-time) var(--sidebar-ease),opacity .22s,visibility 0s}.filter-panel-inner{width:auto;padding:0 44px 0 0;min-height:0;overflow:hidden;transform:none!important;height:auto}.filter-panel h2{font-size:18px;margin:6px 0 20px}.filter-panel .mobile-filter-toggle{display:none}.filter-panel .sort-options{display:flex;flex-direction:column;margin-bottom:24px}.filter-panel h3{display:block;margin:16px 0}.filter-panel .filter-heading,.filter-panel .subject-options{display:flex}.filter-panel select{margin-bottom:20px}.filters-collapsed .filter-panel{grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows var(--sidebar-time) var(--sidebar-ease),opacity .18s,visibility 0s var(--sidebar-time)}.filters-collapsed .filter-sidebar{min-height:40px}.library-mode main{margin-left:0;padding-top:0!important}.library-content{padding-top:16px}}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar *,.filter-sidebar,.filter-sidebar *,main,.topbar{transition-duration:.01ms!important;animation-duration:.01ms!important}}#modal-root>.fullscreen-view{display:block!important;padding:0!important;background:var(--bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;animation:fullscreen-enter .22s ease both}#modal-root>.fullscreen-view>.modal{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;border-radius:0!important;border:0!important;padding:0!important;box-shadow:none!important;background:var(--aurora),var(--bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;animation:fullscreen-content-enter .26s cubic-bezier(.22,.8,.22,1) both}#modal-root>.fullscreen-view.leaving{animation:fullscreen-leave .18s ease both}#modal-root>.fullscreen-view.leaving>.modal{animation:fullscreen-content-leave .18s ease both}.fullscreen-view .practice-toolbar,.fullscreen-view .result-toolbar{position:sticky;top:0;z-index:3}@keyframes fullscreen-enter{0%{opacity:0}to{opacity:1}}@keyframes fullscreen-content-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fullscreen-leave{0%{opacity:1}to{opacity:0}}@keyframes fullscreen-content-leave{0%{transform:none}to{transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){#modal-root>.fullscreen-view,#modal-root>.fullscreen-view>.modal{animation:none!important}}.practice-page .keyboard-wrap .hand-guide{top:50px;width:100%;height:auto;max-height:none;overflow:hidden}.practice-page .keyboard-wrap.show-hands,.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:100px!important;overflow:hidden!important}@media(max-width:760px){.practice-page .keyboard-wrap.show-hands,.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:calc(15.385vw - 8px)!important}}.practice-page{scrollbar-gutter:stable}.practice-page .practice-stage,.practice-page:has(.pinyin-composer) .practice-stage{padding:28px 0 24px!important}.practice-page .practice-text-area{overflow:visible;padding:24px 28px 14px;isolation:isolate}.practice-page .typing-passage,.practice-page:has(.pinyin-composer) .typing-passage{height:clamp(130px,20dvh,190px);min-height:0!important;max-height:none!important;line-height:1.8;scrollbar-gutter:stable;padding-bottom:12px}.practice-page .practice-text-area>.typing-input{z-index:0}.practice-page #practice-keyboard{transition:background-color .24s,box-shadow .24s,border-color .24s;scrollbar-gutter:auto}.practice-page .keyboard-wrap,.practice-page .keyboard-wrap.show-hands,.practice-page:has(.pinyin-composer) .keyboard-wrap,.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:100px!important;overflow:hidden!important}.practice-page .keyboard-wrap .hand-guide{display:block!important;opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .24s ease,transform .3s ease,visibility 0s .24s}.practice-page .keyboard-wrap.show-hands .hand-guide{opacity:1;visibility:visible;transform:none;transition:opacity .24s ease,transform .3s ease,visibility 0s}.practice-page .finger-hint{height:28px!important;line-height:28px!important;margin:6px 0 0!important;font-size:12px;letter-spacing:0;white-space:nowrap}.practice-page .practice-bottom{margin-top:14px!important;min-height:36px;font-size:11px;opacity:1;align-items:center}.practice-page .practice-bottom .text-button{font-size:12px;min-height:36px}.practice-tools button{border-radius:10px;transition:background .2s,color .2s,transform .2s}.practice-tools button[aria-pressed=true]{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue)}.practice-tools button:hover{background:color-mix(in srgb,var(--blue) 16%,transparent);transform:scale(1.04)}.practice-tools button:active{transform:scale(.94)}.practice-page .practice-text-area>.ime-dock{position:relative;z-index:5;max-width:none!important;width:100%;height:52px;margin:10px 0 0!important;padding:6px 0 0!important;border:0;border-top:1px solid var(--line);border-radius:0!important;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:center;gap:14px;animation:none;text-align:left}.ime-dock .ime-heading{margin:0;font-size:12px;color:var(--muted);flex-shrink:0}.ime-dock .ime-heading>span{gap:6px}.ime-dock .ime-heading svg{width:16px;height:16px}.ime-dock .ime-local{flex:1;min-width:0}.ime-dock .ime-field{height:38px;padding:6px 10px;gap:12px;border-radius:12px;background:color-mix(in srgb,var(--blue) 6%,transparent);transition:background .22s,box-shadow .22s}.ime-dock .ime-field>span{font-size:13px;color:var(--blue)}.ime-dock .ime-field input{font-size:17px;letter-spacing:1px;color:var(--text);height:26px}.ime-dock .ime-field input::placeholder{font-size:12px;color:var(--muted);letter-spacing:0}.ime-dock .ime-mode-switch{display:flex;align-items:center;gap:3px;flex-shrink:0;font-size:12px;min-height:36px;padding:6px 8px;border-radius:10px;color:var(--muted)}.ime-dock .ime-mode-switch svg{width:13px;height:13px}.ime-dock .ime-mode-switch:hover{color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent)}.ime-dock .ime-candidates{position:absolute;bottom:calc(100% + 8px);left:0;right:0;z-index:6;max-height:120px;min-height:48px;margin:0;padding:9px;gap:6px;overflow:auto;border:1px solid var(--g-edge2);border-radius:16px;background:linear-gradient(135deg,var(--g-fill),var(--g-fill2)),var(--surface);box-shadow:var(--g-sh);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .18s,transform .2s,visibility 0s .2s}.ime-dock.is-composing .ime-candidates{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .18s,transform .2s,visibility 0s}.ime-dock .ime-candidate{min-height:34px;font-size:16px;border-radius:10px;padding:5px 10px;box-shadow:none;background:transparent;animation:none;color:var(--text)}.ime-dock .ime-candidate.selected{background:color-mix(in srgb,var(--blue) 14%,var(--surface));outline:1px solid color-mix(in srgb,var(--blue) 40%,transparent);color:var(--blue)}.ime-dock .ime-help{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ime-dock .ime-native-note{flex:1;font-size:12px;margin:0;color:var(--muted)}.popup-leaving{animation:popover-out .16s ease both!important;pointer-events:none}@keyframes popover-out{to{opacity:0;transform:translateY(-4px) scale(.98)}}:root[data-theme=dark]{--bg:#000;--surface:#171717;--text:#ededed;--muted:#a3a3a3;--line:#343434;--primary:#ededed;--soft:#262626;--fill:#292929;--hand-stroke:#929292;--hand-fill:#18181866;--aurora:linear-gradient(#000,#000);--g-hl:.06;--g-fill:rgba(30,30,30,.92);--g-fill2:rgba(18,18,18,.86);--g-edge:rgba(255,255,255,.16);--g-edge2:rgba(255,255,255,.13);--g-sh:0 18px 48px #0008;--g-sh2:0 5px 18px #0006;--a1:#2584e9;--a2:#0a84ff}:root[data-theme=dark] body{background:#000}:root[data-theme=dark] body:before{background:#000}:root[data-theme=dark] :is(.popup,.modal,.pinyin-composer){background:linear-gradient(135deg,var(--g-fill),var(--g-fill2))!important;color:var(--text);border-color:var(--line)!important}:root[data-theme=dark] :is(.topbar,.course-mode .topbar,.practice-toolbar,.result-toolbar,.library-topbar){background:#0c0c0ce0;border-color:var(--line)}:root[data-theme=dark] :is(.course-world.quest-world,.auth-page){background:#000}:root[data-theme=dark] :is(.quest-hero,.quest-stage,.quest-progress-panel,.learning-track,.library-track,.quest-stage-header,.quest-stage-footer,.track-symbol,.quest-chapters>button,.quest-course-chip,.quest-level-pad,.badge-illustration,.badge-illustration>div,.segmented){background:linear-gradient(135deg,#222e,#141414ee);border-color:var(--line);color:var(--text);box-shadow:inset 0 1px #ffffff14,var(--g-sh2)}:root[data-theme=dark] :is(.quest-level.is-current,.quest-level:hover,.quest-course-chip.selected,.learning-track.is-active,.library-track.is-active,.quest-chapters>button.active){background:#202020;border-color:#666;color:var(--text)}:root[data-theme=dark] :is(.quest-hero h1,.track-copy>strong,.quest-map-heading h2,.quest-stage-header h2,.quest-level-name,.quest-level.is-current .quest-level-name,.quest-progress-label>strong,.quest-small-stat strong){color:var(--text)}:root[data-theme=dark] .quest-level.is-locked .quest-level-name{color:#858585}:root[data-theme=dark] .quest-level:before{background:repeating-linear-gradient(90deg,#555 0,#555 4px,transparent 4px,transparent 8px)}:root[data-theme=dark] .quest-progress-meter{background:#292929;box-shadow:inset 0 1px #000}:root[data-theme=dark] :is(.tool-tile:hover,.outline-button:hover,.locale-button:hover,.user-hub-button:hover,.sidebar-toggle:hover,.filter-option.selected,.calendar-day.today>header){background:#292929;color:var(--text)}:root[data-theme=dark] :is(input:not([type=checkbox]):not([type=range]),select,textarea){background-color:#1e1e1e;border-color:#414141;color:var(--text)}:root[data-theme=dark] :is(.setting-row input[type=checkbox],.popup-switch input){background:#484848}:root[data-theme=dark] :is(.setting-row input:checked,.popup-switch input:checked){background:var(--blue)}:root[data-theme=dark] .key{background:linear-gradient(#333,#202020);border-color:#414141;color:var(--text);box-shadow:0 3px #101010,inset 0 1px #ffffff12}:root[data-theme=dark] .key.next-key{background:#15283c;color:#8ec5ff;border-color:#456a8f;box-shadow:0 3px #101010}:root[data-theme=dark] .typing-passage{color:#adadad}:root[data-theme=dark] .ime-field{background:#232323}:root[data-theme=dark] .ime-field>span,:root[data-theme=dark] .ime-field input{color:#a7d2ff}:root[data-theme=dark] .ime-dock .ime-field input{background:transparent!important}:root[data-theme=dark] .practice-text-area>.ime-dock{background:none!important}:root[data-theme=dark] .ime-candidate.selected,:root[data-theme=dark] .ime-candidate:hover{background:#252525;border-color:#666;color:#a7d2ff}:root[data-theme=dark] .ime-dock .ime-candidates{background:linear-gradient(135deg,#242424f5,#161616f5);border-color:#484848}:root[data-theme=dark] .time-ring{background:conic-gradient(var(--blue) calc(var(--progress)*1%),#303030 0)}:root[data-theme=dark] :is(.search-input,.setting-row select,.game-options select){color:var(--text)}:root[data-theme=dark] .course-card:hover,:root[data-theme=dark] .game-mode-card:hover,:root[data-theme=dark] .badge-card:hover{box-shadow:inset 0 1px 0 var(--g-edge),0 20px 50px #0008}:root[data-theme=dark] .keyboard-wrap.finger-colors .key{background:linear-gradient(#3338,#15151588),var(--fc,#242424)}:is(.panel,.modal,.popup,.topbar,.sidebar,.filter-sidebar,.practice-text-area,.practice-metrics>span,.result-body,.key,.ime-field,select,input,textarea){transition-property:background-color,border-color,color,box-shadow,opacity,transform;transition-duration:.22s;transition-timing-function:ease}.sidebar{transition:width var(--sidebar-time) var(--sidebar-ease),background-color .22s,color .22s}.topbar{transition:left var(--sidebar-time) var(--sidebar-ease),background-color .22s,color .22s}.filter-sidebar{transition:width var(--sidebar-time) var(--sidebar-ease),background-color .22s,color .22s}@media(max-width:760px){.practice-page .practice-stage,.practice-page:has(.pinyin-composer) .practice-stage{width:calc(100% - 28px);padding:20px 0!important}.practice-page .practice-text-area{padding:18px 16px 10px;border-radius:22px}.practice-page .keyboard-wrap,.practice-page .keyboard-wrap.show-hands,.practice-page:has(.pinyin-composer) .keyboard-wrap,.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:calc(15.385vw - 8px)!important}.ime-dock .ime-heading>span{font-size:0;gap:0}.ime-dock .ime-mode-switch{font-size:11px;padding:4px}.practice-page .practice-text-area>.ime-dock{gap:6px}.ime-dock .ime-field{gap:6px;padding:6px}.ime-dock .ime-field>span{font-size:12px}.ime-dock .ime-field input::placeholder{font-size:11px}.practice-page .practice-metrics{gap:6px;flex-wrap:wrap}.practice-page .practice-metrics>span{padding:6px 10px;font-size:11px}.practice-page .practice-metrics b{font-size:17px}.practice-page .practice-bottom{font-size:10px}.practice-page .practice-bottom .text-button{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{transition:background-color .28s ease,color .22s ease}body:before{transition:opacity .28s ease}:root[data-theme=dark] body:before{opacity:0}:root[data-theme=dark] .modal-backdrop{background:#0000009e!important}:root[data-theme=dark] #toast{background:#1c1c1cf0;color:var(--text)}:root[data-theme=dark] .sidebar-status-tag{background:#ffffff08}:root[data-theme=dark] :is(.hub-tabs button:hover,.fb-tabs button:hover,.segmented button:hover){background:#303030}:root[data-theme=dark] :is(.hub-tabs button.selected,.fb-tabs button.selected,.segmented button.selected){background:#353535;color:var(--text)}@media(min-width:761px)and (max-height:800px){.practice-page .practice-stage,.practice-page:has(.pinyin-composer) .practice-stage{padding:12px 0 10px!important}.practice-page .practice-text-area{padding:16px 22px 10px}.practice-page .typing-passage,.practice-page:has(.pinyin-composer) .typing-passage{height:88px;font-size:28px!important;line-height:1.65}.practice-page .practice-metrics{margin-top:8px!important;gap:8px}.practice-page .practice-metrics>span{padding:5px 13px;font-size:12px}.practice-page .practice-metrics b{font-size:18px}.practice-page #practice-keyboard{max-width:560px;margin-top:6px!important;padding:10px 12px 8px!important}.practice-page .key{height:29px;font-size:17px}.practice-page .key[class*=key-]{font-size:9px}.practice-page .keyboard-wrap,.practice-page .keyboard-wrap.show-hands,.practice-page:has(.pinyin-composer) .keyboard-wrap,.practice-page:has(.pinyin-composer) .keyboard-wrap.show-hands{padding-bottom:80px!important;margin-top:0!important}.practice-page .keyboard-wrap .hand-guide{top:36px}.practice-page .finger-hint{height:24px!important;line-height:24px!important;margin-top:4px!important}.practice-page .practice-bottom{min-height:32px;margin-top:6px!important}}.topbar .topbar-actions{gap:14px}.topbar-switches{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--g-edge2);border-radius:16px;background:linear-gradient(135deg,var(--g-fill),var(--g-fill2));box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);animation:topbar-controls-in .34s ease both}.topbar .topbar-icon-control{position:relative;display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;min-height:38px;margin:0;padding:0;border:0;border-radius:12px;color:var(--text);background:transparent;box-shadow:none;transition:background-color .2s,color .2s,transform .2s,box-shadow .2s;isolation:isolate}.topbar .topbar-icon-control:hover{color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent);transform:scale(1.045);box-shadow:inset 0 1px 0 var(--g-edge)}.topbar .topbar-icon-control:active{transform:scale(.91)}.topbar .topbar-icon-control:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.topbar .locale-button[aria-expanded=true]{color:var(--blue);background:color-mix(in srgb,var(--blue) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 25%,transparent)}.topbar .topbar-icon-control svg{width:21px!important;height:21px!important;stroke-width:1.7}.globe-motion{display:grid;place-items:center;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.globe-motion svg path:first-of-type{transform-box:view-box;transform-origin:12px 12px;animation:globe-longitude 3.2s ease-in-out infinite;animation-play-state:paused}.locale-button:hover .globe-motion{transform:rotate(-12deg)}.locale-button[aria-expanded=true] .globe-motion{transform:rotate(12deg)}.locale-button:is(:hover,:focus-visible,[aria-expanded=true]) .globe-motion svg path:first-of-type{animation-play-state:running}.control-pixel{position:absolute;right:6px;bottom:6px;width:3px;height:3px;border-radius:1px;background:var(--blue);opacity:0;transform:scale(0);transition:opacity .2s,transform .28s cubic-bezier(.2,.9,.3,1.4)}.locale-button[aria-expanded=true] .control-pixel{opacity:1;transform:scale(1)}.theme-motion{position:relative;width:22px;height:22px;display:block}.theme-motion>span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;transition:opacity .28s,transform .5s cubic-bezier(.22,.8,.22,1);transform-origin:center}.theme-motion .theme-sun{opacity:0;transform:rotate(-100deg) scale(.45)}.theme-motion .theme-moon{opacity:1;transform:rotate(0) scale(1)}:root[data-theme=dark] .theme-motion .theme-sun{opacity:1;transform:rotate(0) scale(1)}:root[data-theme=dark] .theme-motion .theme-moon{opacity:0;transform:rotate(100deg) scale(.45)}.theme-toggle:hover .theme-motion{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--blue) 30%,transparent))}.theme-toggle .theme-sun svg path{transform-origin:12px 12px;transition:transform .4s}.theme-toggle:hover .theme-sun svg path{transform:rotate(25deg)}.language-popover{width:244px;z-index:110;padding:8px;border-radius:20px;transform-origin:calc(100% - 24px) 0;animation:language-menu-in .24s cubic-bezier(.2,.8,.2,1) both}.language-popover.popup-leaving{animation:language-menu-out .18s ease both!important}.language-popover>h3{display:flex;justify-content:space-between;align-items:center;margin:8px 10px 12px;font-size:12px;color:var(--muted)}.language-popover>h3 small{font-size:10px;letter-spacing:1px;font-weight:400}.language-popover .lang-options{display:grid;gap:4px}.language-popover .lang-options button{width:100%;min-height:44px;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;font-size:13px;text-align:left;color:var(--text);transition:background-color .2s,transform .2s,color .2s;animation:language-option-in .22s ease both}.language-popover .lang-options button:nth-child(2){animation-delay:25ms}.language-popover .lang-options button:nth-child(3){animation-delay:50ms}.language-popover .lang-options button:nth-child(4){animation-delay:75ms}.language-popover .lang-options button:nth-child(5){animation-delay:.1s}.language-popover .lang-options button:hover{background:color-mix(in srgb,var(--blue) 10%,transparent);transform:translate(2px)}.language-popover .lang-options button:active{transform:scale(.97)}.language-popover .lang-options button.selected{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff}.language-popover .lang-code{width:27px;height:27px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,currentColor 7%,transparent);border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:7px;font-family:Consolas,Microsoft YaHei,monospace;font-size:11px}.language-popover .lang-name{flex:1;font-weight:500}.language-popover .lang-check{width:16px;opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s}.language-popover .selected .lang-check{opacity:1;transform:scale(1)}.language-popover .lang-check svg{width:15px;height:15px}:root[data-theme=dark] .topbar .topbar-icon-control:hover{background:#282828;color:var(--blue)}:root[data-theme=dark] .topbar .locale-button[aria-expanded=true]{background:#1d2b39;color:var(--blue)}@keyframes globe-longitude{0%,to{transform:scaleX(1)}50%{transform:scaleX(.18)}}@keyframes topbar-controls-in{0%{opacity:0;transform:translateY(-4px) scale(.94)}to{opacity:1;transform:none}}@keyframes language-menu-in{0%{opacity:0;transform:translateY(-6px) scale(.94)}to{opacity:1;transform:none}}@keyframes language-menu-out{to{opacity:0;transform:translateY(-5px) scale(.96)}}@keyframes language-option-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(max-width:760px){.topbar .topbar-actions{gap:8px}.topbar-switches{padding:2px;border-radius:14px}.topbar .topbar-icon-control{width:34px;height:34px;min-height:34px;flex-basis:34px}.topbar .topbar-icon-control svg{width:20px!important;height:20px!important}.language-popover{width:min(244px,calc(100vw - 24px))}}@media(prefers-reduced-motion:reduce){.topbar-switches,.topbar-switches *,.language-popover,.language-popover *{animation:none!important;transition:none!important}}#site-topbar-leading{display:flex;align-items:center;min-width:0}:is(.home-content,.standard-content,.library-content,.dashboard-subject,.subject-grid,.enrolled-cards,.dashboard-statistics,.course-card,.course-card-body,.stats-panel,.panel,.badge-card,.game-mode-card,.learning-track,.library-track,.quest-hero-copy,.quest-progress-main){min-width:0}:is(.course-card,.stats-panel,.panel,.badge-card,.game-mode-card,.learning-track,.library-track){max-width:100%;height:auto}:is(.course-card,.stats-panel,.panel,.badge-card,.game-mode-card,.learning-track,.library-track) :is(h1,h2,h3,p,strong,b,small,button){overflow-wrap:anywhere;word-break:normal}:is(.course-title,.course-progress,.course-meta,.track-copy,.panel-heading,.quest-level-name,.quest-level-detail){min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}.course-title{width:100%;white-space:normal;line-height:1.65;min-height:2.8em}.course-card-body{display:flex;flex-direction:column;height:auto}.course-meta,.course-progress{flex-wrap:wrap;gap:8px 12px;line-height:1.6}.course-meta>span,.course-progress>span{min-width:0;max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere}.course-meta>span{align-items:flex-start}.course-progress strong{font-variant-numeric:tabular-nums}.course-card .cover-button{max-width:100%}.enrolled-cards{flex-wrap:wrap;align-items:flex-start}.enrolled-cards .course-card{flex:0 1 274px;width:min(274px,100%)}.recommendation-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.library-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr))}.library-grid .course-card{width:100%;min-width:0}.library-grid .course-meta{font-size:11px;gap:6px 10px;flex-wrap:wrap}.library-grid .course-meta>span:last-child{display:flex}.library-grid .course-card-body{min-height:0;padding:14px 10px 18px}.library-grid .course-title{font-size:14px}.greeting,.section-heading,.page-heading,.panel-heading{flex-wrap:wrap;gap:12px}.greeting h1,.section-heading h2,.page-heading h1,.panel-heading h2{min-width:0;overflow-wrap:anywhere}.dashboard-subject{container:subject / inline-size}.subject-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr)}.dashboard-statistics{container:dashboard / inline-size}.dashboard-statistics :is(fieldset,.time-ring-item,.overall-time,.speed-bars>div){min-width:0;max-width:100%}.dashboard-statistics fieldset{position:relative;padding-top:38px}.dashboard-statistics fieldset>legend{position:absolute;top:18px;left:24px;z-index:1;display:block;width:auto;margin:0;padding:0 4px;color:var(--muted);font-size:12px;line-height:1.3;letter-spacing:.04em;background:transparent}.dashboard-statistics .time-box>legend{margin-left:0}.dashboard-statistics .speed-box>legend,.dashboard-statistics .performance-box>legend{margin-left:0}.rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.2fr);align-items:center;gap:14px}.time-ring-item>strong{white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.5;min-height:1.5em}.time-ring-item>span{font-size:11px;line-height:1.5;overflow-wrap:anywhere}.time-ring{--ring-size:clamp(58px,17cqi,82px);width:var(--ring-size);height:var(--ring-size);max-width:100%}.time-ring>div{width:calc(var(--ring-size) - 12px);height:calc(var(--ring-size) - 12px);font-size:10px;line-height:1.3;padding:3px}.time-ring>div b{font-size:10px;white-space:normal;overflow-wrap:anywhere}.overall-time{min-width:0;padding-left:14px}.overall-time strong{white-space:normal;overflow-wrap:anywhere;font-size:clamp(18px,4cqi,24px);line-height:1.5;font-variant-numeric:tabular-nums}.overall-time span{font-size:11px;line-height:1.6;overflow-wrap:anywhere}.dashboard-lower{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.speed-bars{gap:10px}.speed-bars>div{flex:1 1 0;min-width:0}.speed-bars b{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.5;font-size:11px;font-variant-numeric:tabular-nums}.speed-bars b small{display:block;font-size:10px;line-height:1.5}.speed-bars span{width:min(40px,100%)}.speed-bars>div>small{min-width:0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.performance-box{padding:22px 18px}.performance-box>span{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.performance-box>strong{font-size:20px;line-height:1.4;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.time-breakdown{flex-wrap:wrap;row-gap:14px}.time-breakdown>div{min-width:0;flex:1 1 90px}.time-overview>div:first-child{min-width:0}.time-overview>div:first-child>strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.panel-heading h2{flex:1 1 150px;line-height:1.6}.panel-heading select{max-width:100%;flex:0 1 auto}.game-mode-card h2{line-height:1.5;white-space:normal}.game-mode-card p{height:auto;line-height:1.8;margin-bottom:14px}.game-mode-card b{display:flex;flex-wrap:wrap;gap:8px;align-items:center;line-height:1.6}.badge-card h3{line-height:1.6;white-space:normal}.badge-card p{white-space:normal;line-height:1.8}.badge-medal{max-width:100%}.track-copy>strong{flex-wrap:wrap;row-gap:3px;line-height:1.5}.track-copy>small{display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.5}.track-copy>strong>span{white-space:normal;overflow-wrap:anywhere}.learning-track{align-items:center}.learning-track .track-tail{flex-shrink:0}.library-track{white-space:normal;line-height:1.5;flex-wrap:wrap}.quest-hero-copy h1,.quest-hero-copy p{overflow-wrap:anywhere}.quest-progress-panel{flex-wrap:wrap}.quest-progress-main{flex:1 1 180px}.quest-progress-label{flex-wrap:wrap}.quest-small-stat{min-width:0;max-width:100%;overflow-wrap:anywhere}.quest-stage-header{flex-wrap:wrap}.quest-stage-header>div{min-width:0;flex:1 1 100px}.quest-stage-progress{max-width:100%;overflow-wrap:anywhere}.quest-chapters>button{min-width:0;max-width:100%;flex-wrap:wrap;white-space:normal}.quest-level-name{display:block;-webkit-line-clamp:unset;overflow:visible;white-space:normal;line-height:1.6}.quest-level-detail{max-width:100%;white-space:normal;overflow-wrap:anywhere}.hub-stats-badges{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-stats-badges>div{min-width:0;overflow-wrap:anywhere}.sync-card,.fb-item-card{min-width:0;max-width:100%;overflow-wrap:anywhere}@container subject (max-width:780px){.subject-grid{grid-template-columns:minmax(0,1fr);gap:22px}.enrolled-cards .course-card{flex-basis:274px}}@container dashboard (max-width:440px){.rings{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.overall-time{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;border-left:0;border-top:1px solid var(--line);padding:12px 0 0}.overall-time span{margin:0}.dashboard-lower{gap:12px}.speed-box,.performance-box{padding:18px 12px}}@container dashboard (max-width:300px){.dashboard-lower{grid-template-columns:minmax(0,1fr)}.performance-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:8px}.performance-box>strong{margin:0}.speed-bars{gap:8px}}@media(max-width:760px){.stats-grid{grid-template-columns:minmax(0,1fr)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}.recommendation-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.track-copy>strong>span{display:none}.badge-card h3{font-size:14px}.badge-card p{font-size:12px}}@media(max-width:500px){.home-content{padding-left:18px!important;padding-right:18px!important}.library-grid .course-meta{font-size:11px}.performance-box>span{font-size:12px}.performance-box>strong{font-size:20px}.time-box{padding:18px 12px}.game-mode-card{grid-template-columns:minmax(0,55px) minmax(0,1fr);column-gap:14px}}.games-page{width:min(100%,1480px);padding:28px clamp(22px,4vw,58px) 76px;display:flex;flex-direction:column;gap:24px}.games-page>.back-link{align-self:flex-start;margin:0 0 -7px;animation:games-enter .28s both}.games-hero,.games-config,.games-custom{position:relative;overflow:hidden;border:1px solid var(--g-edge2);background:radial-gradient(100% 140% at 0% 0%,rgba(112,196,255,.15),transparent 55%),radial-gradient(80% 120% at 100% 100%,rgba(172,157,255,.13),transparent 58%),linear-gradient(135deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2)}.games-hero{min-height:168px;padding:clamp(24px,4vw,40px);border-radius:28px;display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:24px;animation:games-enter .36s .03s both}.games-hero-copy{min-width:0}.games-eyebrow,.games-section-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:10px;font-weight:750;letter-spacing:.18em}.games-hero h1{margin:8px 0 7px;font-size:clamp(28px,3vw,38px);letter-spacing:-.04em}.games-hero p{max-width:650px;color:var(--muted);font-size:14px;line-height:1.8}.games-hero-art{width:108px;height:108px;display:grid;place-items:center;justify-self:end;border:1px solid var(--g-edge2);border-radius:28px;color:var(--blue);background:linear-gradient(145deg,#ffffffdb,#dcedff8f);box-shadow:inset 0 1px #fff,0 12px 30px #2b70be1f;transform:rotate(3deg);transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s}.games-hero:hover .games-hero-art{transform:rotate(0) translateY(-2px);box-shadow:inset 0 1px #fff,0 16px 34px #2b70be2b}.games-hero-art .pixel-icon{width:58px;height:58px}.games-config{padding:22px 26px 24px;border-radius:24px;animation:games-enter .38s .08s both}.games-config-heading,.games-group-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.games-config-heading{margin-bottom:17px}.games-config-heading h2{font-size:18px;margin-top:4px}.games-config-note{color:var(--muted);font-size:12px}.games-config-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.games-option-group{min-width:0;margin:0;padding:0;border:0}.games-option-label{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--text);font-size:12px;font-weight:650}.games-option-label .pixel-icon{width:16px;height:16px;color:var(--blue)}.games-pills{display:flex;flex-wrap:wrap;gap:7px;padding:4px;border:1px solid var(--g-edge2);border-radius:15px;background:#f2f7ff9e}.games-pill{min-height:38px;min-width:74px;flex:1 1 auto;padding:8px 13px;border:1px solid transparent;border-radius:11px;color:var(--muted);font-size:12px;transition:transform .18s,background .2s,color .2s,box-shadow .2s,border-color .2s}.games-pill:hover{color:var(--text);background:#ffffffb8;transform:translateY(-1px)}.games-pill:active{transform:scale(.97)}.games-pill.selected{color:#fff;background:linear-gradient(110deg,var(--a1),var(--a2));box-shadow:0 5px 14px #0a84ff38}.games-pill:focus-visible,.games-mode-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.games-mode-library{display:flex;flex-direction:column;gap:28px}.games-mode-section{min-width:0;animation:games-enter .4s both}.games-mode-section:nth-child(2){animation-delay:.06s}.games-mode-section:nth-child(3){animation-delay:.12s}.games-group-heading{margin-bottom:13px}.games-group-heading h2{font-size:20px;letter-spacing:-.02em}.games-group-heading p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.6}.games-group-heading>span{flex:none;padding:7px 10px;border:1px solid var(--g-edge2);border-radius:10px;color:var(--blue);background:#ffffff80;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.08em}.game-mode-grid.games-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.game-mode-card.games-mode-card{min-width:0;min-height:204px;padding:19px 20px 17px;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:0;border:1px solid var(--g-edge2);border-radius:21px;background:radial-gradient(90% 90% at 100% 0%,rgba(129,183,255,.1),transparent 60%),linear-gradient(145deg,var(--g-fill),var(--g-fill2));-webkit-backdrop-filter:blur(20px) saturate(165%);backdrop-filter:blur(20px) saturate(165%);box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);animation:games-enter .42s both;transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s,background .22s}.games-mode-card:nth-child(2){animation-delay:.04s}.games-mode-card:nth-child(3){animation-delay:.08s}.game-mode-card.games-mode-card:hover{transform:translateY(-4px);border-color:#0a84ff5c;box-shadow:inset 0 1px 0 var(--g-edge),0 18px 34px #23528e24}.game-mode-card.games-mode-card:active{transform:translateY(-1px) scale(.985)}.games-mode-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.games-mode-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--g-edge2);border-radius:13px;background:#e8f3ffb8;color:var(--blue);box-shadow:inset 0 1px #fff}.games-mode-icon .pixel-icon{width:22px;height:22px}.games-mode-tag{max-width:62%;padding:5px 9px;border:1px solid rgba(10,132,255,.14);border-radius:999px;color:var(--blue);background:#e6f2ff94;font-size:10px;line-height:1.2;text-align:center;overflow-wrap:anywhere}.games-mode-card h3{font-size:17px;line-height:1.4;letter-spacing:-.02em}.games-mode-card p{min-height:46px;margin:5px 0 13px;color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.games-mode-card b{display:flex;align-items:center;gap:7px;margin-top:auto;color:var(--blue);font-size:12px;font-weight:650}.games-mode-card b svg{width:15px;height:15px;transition:transform .2s}.games-mode-card:hover b svg{transform:translate(3px)}.games-mode-card.tone-amber .games-mode-icon{color:#a77518;background:#fff5dcc7}.games-mode-card.tone-rose .games-mode-icon{color:#a44a65;background:#ffebf1c7}.games-mode-card.tone-violet .games-mode-icon{color:#6854ad;background:#f0ebffc7}.games-mode-card.tone-slate .games-mode-icon{color:#52647b;background:#ebf1f7c7}.games-custom{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:28px;align-items:center;padding:25px 27px;border-radius:24px;animation:games-enter .44s .14s both}.games-custom-copy h2{margin:5px 0;font-size:19px}.games-custom-copy p{max-width:320px;color:var(--muted);font-size:12px;line-height:1.7}.games-custom-editor{min-width:0}.games-custom-editor textarea{display:block;width:100%;min-height:94px;resize:vertical;padding:13px 15px;border:1px solid var(--g-edge2);border-radius:15px;background:#ffffff9e;font-size:13px;line-height:1.65;transition:border-color .2s,box-shadow .2s,background .2s}.games-custom-editor textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff1f;outline:0}.games-custom-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.games-custom-actions>span{color:var(--muted);font-size:11px}.games-custom-actions .dark-button{min-height:38px;padding:8px 15px;font-size:12px;background:linear-gradient(105deg,var(--a1),var(--a2));border:0;box-shadow:0 7px 17px #0a84ff33}.games-custom-actions .dark-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0a84ff47}.memory-preview{margin:0 0 24px;padding:22px;border:1px solid var(--g-edge2);border-radius:19px;background:linear-gradient(140deg,var(--g-fill),var(--g-fill2));box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2);animation:games-enter .28s both}.memory-preview h2{margin:5px 0 11px;font-size:19px}.memory-preview p{margin:0 0 18px;font-family:ui-monospace,Consolas,monospace;font-size:clamp(17px,2vw,24px);line-height:1.7;overflow-wrap:anywhere}.memory-preview .dark-button{background:linear-gradient(105deg,var(--a1),var(--a2));border:0}.practice-text-area.memory-concealed .typing-passage{visibility:hidden}.practice-text-area.memory-locked .typing-input{pointer-events:none}.mode-goal{margin-bottom:20px;padding:9px 13px;border:1px solid var(--g-edge2);border-radius:12px;color:var(--blue);background:#eef6ffa6;font-size:12px;font-weight:650;text-align:center}.badges-hero-tag{display:flex;align-items:center;gap:8px}.badges-hero-tag .pixel-icon{width:16px;height:16px}.egg-locked-icon svg{width:19px;height:19px}.egg-banner-btn svg{width:16px;height:16px}@keyframes games-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1050px){.game-mode-grid.games-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.games-custom{grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr)}}@media(max-width:760px){.games-page{padding:28px 20px 58px;gap:19px}.games-hero{grid-template-columns:minmax(0,1fr) 78px;min-height:140px;padding:23px;border-radius:22px}.games-hero-art{width:70px;height:70px;border-radius:20px}.games-hero-art .pixel-icon{width:38px;height:38px}.games-hero p{font-size:12px}.games-config{padding:19px;border-radius:20px}.games-config-grid{gap:12px}.games-custom{gap:18px;padding:21px}.games-group-heading h2{font-size:18px}}@media(max-width:560px){.games-page{padding:25px 15px 46px;gap:17px}.games-hero{grid-template-columns:minmax(0,1fr) 54px;gap:12px;padding:20px}.games-hero h1{font-size:27px}.games-hero-art{width:52px;height:52px;border-radius:16px}.games-hero-art .pixel-icon{width:30px;height:30px}.games-eyebrow{font-size:9px}.games-config{padding:17px}.games-config-heading{align-items:flex-start}.games-config-note{max-width:118px;text-align:right;line-height:1.45}.games-config-grid{grid-template-columns:1fr}.games-option-group{padding-bottom:11px;border-bottom:1px solid var(--g-edge2)}.games-option-group:last-child{padding:0;border:0}.games-pills{gap:5px}.games-pill{min-width:0;min-height:36px;padding:7px 9px;font-size:11px}.game-mode-grid.games-mode-grid{grid-template-columns:1fr;gap:10px}.game-mode-card.games-mode-card{min-height:0;padding:16px 17px}.games-mode-head{margin-bottom:10px}.games-mode-icon{width:36px;height:36px}.games-mode-card p{min-height:0;margin-bottom:12px}.games-mode-section{margin-bottom:3px}.games-custom{grid-template-columns:1fr;gap:14px;padding:18px}.games-custom-editor textarea{min-height:105px}.games-custom-actions .dark-button{min-height:36px}.games-group-heading>span{font-size:9px}.memory-preview{padding:18px}}@media(prefers-reduced-motion:reduce){.games-page *,.memory-preview{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root[data-theme=dark] .games-hero-art{background:linear-gradient(145deg,#293d56e6,#1f2d44b3);box-shadow:inset 0 1px #ffffff21,0 12px 30px #0000003d}:root[data-theme=dark] .games-pills{background:#111b2a8f}:root[data-theme=dark] .games-mode-tag{background:#1d38587a}:root[data-theme=dark] .games-custom-editor textarea{background:#111b2a8c}:root[data-theme=dark] .games-mode-card.tone-amber .games-mode-icon{background:#5d451a59}:root[data-theme=dark] .games-mode-card.tone-rose .games-mode-icon{background:#57283761}:root[data-theme=dark] .games-mode-card.tone-violet .games-mode-icon{background:#3d306166}:root[data-theme=dark] .games-mode-card.tone-slate .games-mode-icon{background:#2d3b4e8c}.auth-config-notice{margin:0 0 18px;padding:12px 16px;border:1px solid rgba(36,118,222,.24);border-radius:14px;background:#e7f3ffbd;color:#315675;font-size:.88rem;line-height:1.5;animation:cloud-card-in .35s ease both}.admin-page{max-width:1160px;margin-inline:auto;padding-bottom:56px}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:24px 0}.admin-heading>div>span,.admin-role-pill{font-size:.72rem;letter-spacing:.14em;color:#3975b8}.admin-heading h1{margin:6px 0;font-size:clamp(1.8rem,4vw,2.6rem)}.admin-heading p,.admin-reminder-panel p{margin:0;color:#60758b}.admin-role-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(49,132,223,.22);border-radius:999px;background:#ffffff94;letter-spacing:0}.admin-overview-panel,.admin-reminder-panel{padding:clamp(18px,3vw,30px);margin:18px 0;animation:cloud-card-in .42s cubic-bezier(.2,.75,.25,1) both}.admin-table-wrap{overflow:auto;border:1px solid rgba(122,163,205,.2);border-radius:16px;background:#ffffff6b}.admin-users-table{width:100%;min-width:650px;border-collapse:collapse;text-align:left}.admin-users-table th,.admin-users-table td{padding:14px 16px;border-bottom:1px solid rgba(122,163,205,.16)}.admin-users-table th{font-size:.78rem;color:#637b94;background:#edf6ff8a}.admin-users-table tr:last-child td{border-bottom:0}.admin-reminder-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr);gap:28px;align-items:start}.admin-reminder-panel h2{margin:8px 0}#admin-reminder-form{display:grid;gap:14px}#admin-reminder-form label{display:grid;gap:7px;color:#52677e;font-size:.88rem}#admin-reminder-form input,#admin-reminder-form select,#admin-reminder-form textarea{width:100%;min-height:44px;padding:11px 13px;border:1px solid rgba(94,146,204,.3);border-radius:13px;background:#ffffffb8;color:#20334a;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}#admin-reminder-form textarea{min-height:112px;resize:vertical}#admin-reminder-form input:focus,#admin-reminder-form select:focus,#admin-reminder-form textarea:focus{outline:0;border-color:#3794e9;box-shadow:0 0 0 3px #3794e921}.learning-notifications{grid-column:1/-1;animation:cloud-card-in .38s ease both}.learning-notifications ul{display:grid;gap:10px;padding:0;margin:14px 0 0;list-style:none}.learning-notifications li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid rgba(122,163,205,.2);border-radius:14px;background:#ffffff6b}.learning-notifications li.is-unread{border-color:#1997db52;background:#e8f7ff99}.learning-notifications p{margin:5px 0;color:#52677e}.learning-notifications small{color:#7d8ea0}.admin-page button,.learning-notifications button{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.admin-page button:not(:disabled):hover,.learning-notifications button:not(:disabled):hover{transform:translateY(-1px)}.admin-page button:not(:disabled):active,.learning-notifications button:not(:disabled):active{transform:scale(.98)}@keyframes cloud-card-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:760px){.admin-heading{align-items:flex-start;flex-direction:column}.admin-reminder-panel{grid-template-columns:1fr}.learning-notifications li{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.auth-config-notice,.admin-overview-panel,.admin-reminder-panel,.learning-notifications{animation:none}}.home-integrated{padding-top:32px!important;max-width:1420px}.home-integrated .greeting{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.home-integrated .greeting-lead h1{font-size:32px;font-weight:750;line-height:1.2;letter-spacing:-.02em;margin:0;color:var(--text)}.home-integrated .greeting-action-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 20px;border-radius:9999px;font-size:14px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.home-integrated .greeting-action-btn:hover{transform:translateY(-1px)}.home-integrated .greeting-action-btn svg{width:16px;height:16px}.home-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);gap:20px;align-items:start;margin-bottom:28px}.home-courses,.home-overview{min-width:0;padding:24px;border-radius:24px}.home-workspace .section-heading{margin-bottom:20px;gap:12px}.home-workspace .section-heading h2{font-size:19px;letter-spacing:0}.home-workspace .section-heading p{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.6}.home-workspace .section-heading .text-button{font-size:11px}.home-courses .learning-tracks{gap:6px;margin:0 0 20px}.home-courses .learning-track{padding:10px 8px;gap:6px;border-radius:12px}.home-courses .track-symbol{width:26px;height:30px;flex-shrink:0}.home-courses .track-symbol .pixel-icon{width:18px;height:18px}.home-courses .track-copy>strong{font-size:14px}.home-courses .track-copy>strong>span,.home-courses .track-tail{display:none}.home-courses .track-copy>small{font-size:7px;letter-spacing:.6px}.home-courses .dashboard-subject{container:none;margin:0 0 18px}.home-courses .dashboard-subject:last-child{margin-bottom:0}.home-courses .subject-title{font-size:12px;margin:0 0 10px;gap:6px;color:var(--muted)}.home-courses .subject-title .pixel-icon{width:16px;height:16px}.home-courses .subject-title small{font:8px Consolas,monospace;letter-spacing:1px}.home-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr));gap:10px}.home-course-grid .course-card{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:12px;border-radius:16px;box-shadow:inset 0 1px 0 var(--g-edge),var(--g-sh2)}.home-course-grid .cover-button{width:76px;height:80px;aspect-ratio:auto;border-radius:10px}.home-course-grid .course-card-body{padding:4px 16px 4px 0;min-height:0}.home-course-grid .course-title{font-size:13px;min-height:0;line-height:1.6}.home-course-grid .course-progress{margin-top:12px;font-size:10px;gap:4px 8px}.home-course-grid .mini-progress{margin-top:8px;height:3px}.home-course-grid .card-more{top:8px;right:7px;border-radius:8px;width:22px;height:22px}.home-overview .dashboard-statistics{container:dashboard / inline-size}.home-overview .dashboard-statistics fieldset{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border:0;border-radius:0;padding:0;margin:0;min-width:0}.home-overview .dashboard-statistics fieldset>legend{position:static;float:none;margin:0 0 14px;padding:0;line-height:1.5;font-size:11px}.home-overview .rings{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-overview .overall-time{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border:0;border-top:1px solid var(--line);padding:14px 0 0;margin-top:4px}.home-overview .overall-time strong{font-size:20px}.home-overview .overall-time span{margin:0;font-size:10px}.home-overview .dashboard-lower{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.home-overview .speed-bars{height:102px;gap:8px}.home-overview .performance-box{display:flex;gap:6px;border-left:1px solid var(--line)!important;padding-left:16px!important}.home-overview .performance-box>span{font-size:10px}.home-overview .performance-box>strong{font-size:18px;margin-bottom:5px}.home-overview .more-stats{font-size:11px;margin-top:18px;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.home-integrated .recommended>.section-heading{margin-bottom:14px}.home-integrated .recommended h2{font-size:18px}.home-integrated .recommendation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.home-integrated .recommended-card .cover-button{height:106px;aspect-ratio:auto}.home-integrated .recommended-card .course-card-body{padding:12px;min-height:0}.home-integrated .recommended-card .course-title{min-height:0;font-size:13px}.home-integrated .recommended-card .course-meta{margin-bottom:8px;font-size:10px}.home-empty{padding:24px 0;font-size:13px;color:var(--muted);line-height:1.8}@media(max-width:1100px){.home-workspace{grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);gap:14px}.home-courses,.home-overview{padding:18px}.home-course-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:850px){.home-workspace{grid-template-columns:minmax(0,1fr)}.home-course-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.home-integrated .recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.home-integrated{padding-top:24px!important}.home-courses,.home-overview{padding:16px}.home-workspace .section-heading{margin-bottom:16px}.home-courses .learning-track{display:flex;gap:4px;padding:8px 5px}.home-courses .track-symbol{display:none}.home-courses .track-copy>strong{font-size:12px}.home-courses .track-copy>small{font-size:6px}.home-course-grid .course-card{grid-template-columns:65px minmax(0,1fr);gap:10px}.home-course-grid .cover-button{width:65px;height:72px}.home-integrated .recommendation-grid{grid-template-columns:minmax(0,1fr)}.home-integrated .recommended-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:10px}.home-integrated .recommended-card .cover-button{height:85px}.home-integrated .recommended-card .course-card-body{padding:6px}.home-overview .dashboard-lower{gap:10px}.home-overview .performance-box{padding-left:10px!important}}.course-outline-dialog{max-width:820px!important;width:95vw!important;padding:32px 36px!important}.outline-modal-inner{display:flex;flex-direction:column;gap:20px}.outline-modal-header{display:flex;flex-direction:column;gap:8px}.outline-track-badge{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.5px;color:#3b82f6;background:#eff6ffd9;border:1px solid rgba(191,219,254,.8);padding:4px 12px;border-radius:9999px;align-self:flex-start}.outline-track-badge .pixel-icon{width:15px;height:15px}.outline-modal-header h2{font-size:26px;font-weight:750;color:var(--text);margin:4px 0 0;letter-spacing:-.02em}.outline-course-desc{font-size:12.5px;color:var(--muted);line-height:1.6;margin:0}.outline-meta-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}.outline-meta-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(215,230,248,.7);border-radius:12px;box-shadow:inset 0 1px #fff,0 2px 8px #1e3c6e0a}.outline-meta-item .meta-icon .pixel-icon{width:20px;height:20px;color:#3b82f6}.outline-meta-item .meta-text{display:flex;flex-direction:column}.outline-meta-item .meta-text small{font-size:10px;color:var(--muted)}.outline-meta-item .meta-text strong{font-size:13px;color:var(--text);font-weight:600}.outline-chapters-container{display:flex;flex-direction:column;gap:14px;max-height:440px;overflow-y:auto;padding-right:4px}.outline-chapters-container::-webkit-scrollbar{width:5px}.outline-chapters-container::-webkit-scrollbar-thumb{background:#b4cdeb80;border-radius:9999px}.outline-chapter-card{border-radius:16px;background:#ffffffb3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(215,230,248,.8);box-shadow:inset 0 1px #fff,0 4px 14px #1e46820a;overflow:hidden;transition:all .25s cubic-bezier(.16,1,.3,1)}.outline-chapter-card:hover{border-color:#93c5fd;box-shadow:inset 0 1px #fff,0 6px 20px #2563eb14}.outline-chapter-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;background:#f5faff80;border-bottom:1px solid rgba(220,233,248,.6);-webkit-user-select:none;user-select:none}.chapter-title-group{display:flex;align-items:center;gap:12px}.chapter-number{font:700 10px Consolas,monospace;letter-spacing:1px;padding:3px 7px;border-radius:6px;background:#dbeafe;color:#1d4ed8}.chapter-title-group h3{font-size:15px;font-weight:650;color:var(--text);margin:0}.chapter-range{font-size:11px;color:var(--muted)}.chapter-progress-pill{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:#58718f;background:#ffffffe6;padding:4px 11px;border-radius:9999px;border:1px solid rgba(210,226,245,.8)}.chapter-progress-pill.cleared{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.chapter-progress-pill .pixel-icon{width:14px;height:14px}.chapter-progress-pill .toggle-icon .pixel-icon{width:12px;height:12px;transition:transform .25s ease;transform:rotate(90deg)}.outline-chapter-card.is-collapsed .chapter-progress-pill .toggle-icon .pixel-icon{transform:rotate(0)}.outline-chapter-card.is-collapsed .outline-lessons-grid{display:none}.outline-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;padding:14px 18px}.outline-lesson-item{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:#fffc;border:1px solid rgba(220,233,248,.9);box-shadow:0 2px 6px #28508c0a;text-align:left;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.outline-lesson-item:hover{transform:translateY(-2px);border-color:#60a5fa;box-shadow:0 4px 14px #2563eb26;background:#fff}.outline-lesson-item.is-current{border-color:#3b82f6;background:linear-gradient(135deg,#eff6fff2,#fffffffa);box-shadow:0 0 0 2px #3b82f640,0 4px 12px #2563eb1f}.outline-lesson-item.is-cleared{border-color:#a7f3d0;background:#f0fdfad9}.outline-lesson-item.is-locked{opacity:.65;background:#f8fafcb3;cursor:not-allowed}.lesson-item-top{display:flex;align-items:center;justify-content:space-between}.lesson-num{font:700 11px Consolas,monospace;color:#64748b}.lesson-status-icon .pixel-icon{width:14px;height:14px}.is-cleared .lesson-status-icon{color:#10b981}.is-current .lesson-status-icon{color:#3b82f6}.is-locked .lesson-status-icon{color:#94a3b8}.lesson-name{font-size:12px;font-weight:600;color:var(--text);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-meta-foot{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.lesson-xp{font-family:Consolas,monospace;color:#2563eb;font-weight:600}.outline-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px;padding-top:14px;border-top:1px solid rgba(220,233,248,.7)}.placement-dialog,.placement-report-modal{max-width:780px!important;width:95vw!important;padding:32px 36px!important}.placement-modal-inner{display:flex;flex-direction:column;gap:18px}.placement-header{display:flex;flex-direction:column;gap:6px}.placement-pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#2563eb;background:#eff6ffe6;border:1px solid rgba(191,219,254,.8);padding:4px 12px;border-radius:9999px;align-self:flex-start}.placement-pill .pixel-icon{width:15px;height:15px}.placement-header h2{font-size:26px;font-weight:750;color:var(--text);margin:4px 0 0;letter-spacing:-.02em}.placement-tagline{font-size:12.5px;color:var(--muted);line-height:1.6;margin:0}.placement-track-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px}.placement-tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 14px;border-radius:14px;background:#ffffffa6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(215,230,248,.8);color:#64748b;cursor:pointer;transition:all .22s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 6px #28508c0a}.placement-tab:hover{transform:translateY(-2px);border-color:#93c5fd;color:#2563eb;background:#fff}.placement-tab.selected{background:linear-gradient(135deg,#eff6fff2,#fff);border-color:#3b82f6;color:#1d4ed8;font-weight:600;box-shadow:0 4px 14px #2563eb29,inset 0 1px #fff}.placement-tab .pixel-icon{width:22px;height:22px;margin-bottom:2px}.placement-tab small{font:700 9px Consolas,monospace;letter-spacing:1px;opacity:.7}.placement-card-body{display:flex;flex-direction:column;gap:14px}.placement-focus-box{padding:12px 16px;border-radius:12px;background:#f0f9ffb3;border:1px solid rgba(186,230,253,.8);display:flex;flex-direction:column;gap:4px}.focus-title{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#0284c7}.focus-title .pixel-icon{width:14px;height:14px}.placement-focus-box p{font-size:12px;color:#334155;margin:0;line-height:1.5}.placement-tiers-preview h4{font-size:12.5px;font-weight:600;color:var(--text);margin:0 0 8px}.tier-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tier-card{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:10px;background:#ffffffb3;border:1px solid rgba(220,233,248,.8);font-size:11px}.tier-card strong{font-size:11px;color:var(--text)}.tier-card span{font:700 11px Consolas,monospace;color:#2563eb}.tier-card p{font-size:10px;color:var(--muted);margin:2px 0 0;line-height:1.3}.placement-passage-preview{display:flex;flex-direction:column;gap:6px}.preview-label{font-size:11px;font-weight:600;color:var(--muted)}.preview-text-box{padding:12px 14px;border-radius:10px;background:#f8fafccc;border:1px solid rgba(226,232,240,.8);font-size:12px;color:#475569;line-height:1.6;max-height:72px;overflow:hidden;position:relative}.placement-specs-row{display:flex;align-items:center;justify-content:space-around;padding:10px 14px;border-radius:10px;background:#fff9;border:1px solid rgba(220,233,248,.7);font-size:11.5px;color:#475569}.placement-specs-row span{display:inline-flex;align-items:center;gap:6px}.placement-specs-row .pixel-icon{width:14px;height:14px;color:#3b82f6}.placement-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(220,233,248,.7)}.placement-launch-btn{padding:10px 22px!important;font-size:13.5px!important;font-weight:600!important}.diagnostic-report-inner{display:flex;flex-direction:column;gap:18px}.report-badge-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.report-trophy .pixel-icon{width:44px;height:44px;color:#f59e0b}.report-tier-title{font-size:14px;font-weight:700;color:#d97706;background:#fef3c7;border:1px solid #fde68a;padding:4px 14px;border-radius:9999px}.report-badge-hero h2{font-size:22px;font-weight:750;color:var(--text);margin:4px 0 0}.report-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric-tile{display:flex;flex-direction:column;align-items:center;padding:12px;border-radius:12px;background:#ffffffbf;border:1px solid rgba(220,233,248,.8);box-shadow:0 2px 6px #28508c0a}.metric-tile strong{font-size:20px;font-weight:700;color:#1e3a8a;font-family:Consolas,monospace}.metric-tile span{font-size:10.5px;color:var(--muted);margin-top:3px}.report-analysis-card{padding:14px 18px;border-radius:14px;background:#f0f9ffbf;border:1px solid rgba(186,230,253,.8)}.report-analysis-card h3{font-size:13px;font-weight:650;color:#0369a1;margin:0 0 6px;display:flex;align-items:center;gap:7px}.report-analysis-card h3 .pixel-icon{width:16px;height:16px}.report-analysis-card p{font-size:12.5px;color:#334155;line-height:1.6;margin:0}.report-recommendations h3{font-size:13px;font-weight:650;color:var(--text);margin:0 0 10px;display:flex;align-items:center;gap:7px}.report-recommendations h3 .pixel-icon{width:16px;height:16px;color:#3b82f6}.recommended-courses-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.report-course-card{display:flex;flex-direction:column;border-radius:14px;background:#ffffffd9;border:1px solid rgba(215,230,248,.85);box-shadow:0 3px 10px #234b870d;overflow:hidden;transition:all .22s ease}.report-course-card:hover{transform:translateY(-3px);border-color:#60a5fa;box-shadow:0 6px 18px #2563eb1f}.report-course-card img{width:100%;height:95px;object-fit:cover}.report-course-info{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}.report-course-info h4{font-size:13.5px;font-weight:650;color:var(--text);margin:0}.report-course-info p{font-size:11px;color:var(--muted);line-height:1.4;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.report-enroll-btn{margin-top:6px;padding:6px 12px!important;font-size:11.5px!important;border-radius:8px!important;width:100%;justify-content:center}.report-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(220,233,248,.7)}:root[data-theme=dark] .outline-meta-item,:root[data-theme=dark] .outline-chapter-card,:root[data-theme=dark] .outline-lesson-item,:root[data-theme=dark] .placement-tab,:root[data-theme=dark] .tier-card,:root[data-theme=dark] .metric-tile,:root[data-theme=dark] .report-course-card{background:#1e2c3ebf;border-color:#3c5573b3;box-shadow:0 2px 8px #00000040;color:#e2e8f0}:root[data-theme=dark] .outline-chapter-header{background:#233246b3;border-color:#3c557399}:root[data-theme=dark] .chapter-progress-pill{background:#141e2dcc;border-color:#3b5373;color:#94a3b8}:root[data-theme=dark] .chapter-progress-pill.cleared{background:#064e3b66;color:#34d399;border-color:#059669}:root[data-theme=dark] .outline-lesson-item.is-current{background:linear-gradient(135deg,#1e3a8a40,#1e293b);border-color:#3b82f6}:root[data-theme=dark] .outline-lesson-item.is-cleared{background:#064e3b40;border-color:#059669}:root[data-theme=dark] .placement-focus-box,:root[data-theme=dark] .report-analysis-card{background:#0e749033;border-color:#06b6d466;color:#e0f2fe}:root[data-theme=dark] .placement-focus-box p,:root[data-theme=dark] .report-analysis-card p{color:#cbd5e1}:root[data-theme=dark] .preview-text-box{background:#0f172a99;border-color:#334155;color:#94a3b8}:root[data-theme=dark] .placement-specs-row{background:#1e2c3e99;border-color:#3b5373;color:#cbd5e1}:root[data-theme=dark] .placement-tab.selected{background:linear-gradient(135deg,#1e3a8a,#1e293b);border-color:#3b82f6;color:#93c5fd}.placement-page{max-width:1240px;margin:0 auto;padding:8px 16px 48px}.placement-page-inner{display:flex;flex-direction:column;gap:20px}.placement-page-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,1fr);gap:24px;align-items:start}.placement-primary-col,.placement-secondary-col{display:flex;flex-direction:column;gap:16px}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-header small{font:600 11px Consolas,monospace;color:var(--muted)}.placement-action-bar{display:flex;align-items:center;gap:14px;margin-top:6px}.tier-grid-vertical{display:flex;flex-direction:column;gap:10px}.tier-card-head{display:flex;justify-content:space-between;align-items:center}.outline-page{padding-bottom:60px}.outline-page-inner{display:flex;flex-direction:column;gap:22px}.outline-page-chapters{max-height:none!important;overflow-y:visible!important;display:flex;flex-direction:column;gap:16px}.outline-meta-action{display:flex;align-items:center;justify-content:flex-end}@media(max-width:960px){.placement-page-grid{grid-template-columns:1fr}}.placement-page{width:min(1160px,100%);padding:18px 28px 64px}.placement-page-inner{gap:22px}.placement-page .placement-header{gap:8px;max-width:760px}.placement-page .placement-header h1{margin:0;font-size:clamp(28px,3vw,38px);line-height:1.18;letter-spacing:-.045em}.placement-page .placement-tagline{max-width:620px;font-size:13px;line-height:1.7}.placement-page .placement-track-tabs{gap:12px;margin-top:0}.placement-page .placement-tab{min-height:76px;padding:12px 16px;flex-direction:row;justify-content:flex-start;gap:12px;text-align:left;border-radius:16px}.placement-page .placement-tab .pixel-icon{width:22px;height:22px;margin:0;flex:0 0 22px}.placement-page .placement-tab span{font-size:14px;font-weight:650}.placement-page .placement-tab small{margin-left:auto;font-size:9px}.placement-page-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);gap:18px}.placement-page .placement-primary-col,.placement-page .placement-secondary-col{gap:14px;min-width:0}.placement-page .placement-focus-box,.placement-page .placement-passage-preview,.placement-page .placement-tiers-preview{padding:18px;border:1px solid color-mix(in srgb,var(--blue) 12%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--surface) 76%,transparent);-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);box-shadow:inset 0 1px #ffffffa8,0 10px 30px #254b7410}.placement-page .placement-focus-box{padding:14px 16px}.placement-page .placement-focus-box p{line-height:1.65}.placement-page .placement-passage-preview{gap:12px}.placement-page .preview-header{gap:10px}.placement-page .preview-label{color:var(--text);font-size:12px}.placement-page .preview-text-box{max-height:112px;overflow:auto;scrollbar-width:thin;border-radius:12px;line-height:1.75}.placement-page .placement-specs-row{flex-wrap:wrap;justify-content:flex-start;gap:10px 18px;padding:12px 14px;background:color-mix(in srgb,var(--surface) 72%,transparent);border-radius:14px}.placement-page .placement-action-bar{gap:12px;margin-top:2px}.placement-page .placement-launch-btn{min-height:48px;padding-inline:24px!important;border-radius:16px}.placement-page .placement-tiers-preview h4{margin-bottom:14px;font-size:14px}.placement-page .tier-grid-vertical{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.placement-page .tier-card{min-width:0;min-height:112px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--surface) 84%,transparent);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.placement-page .tier-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 42%,var(--line));box-shadow:0 8px 20px #254b7412}.placement-page .tier-card-head{align-items:flex-start;gap:8px}.placement-page .tier-card strong{min-width:0;line-height:1.45}.placement-page .tier-card span{flex:0 0 auto;white-space:nowrap;font-size:10px}.placement-page .tier-card p{line-height:1.5}@media(max-width:960px){.placement-page-grid{grid-template-columns:minmax(0,1fr)}.placement-page .placement-tiers-preview{order:2}}@media(max-width:600px){.placement-page{padding:12px 16px 48px}.placement-page-inner{gap:16px}.placement-page .placement-track-tabs{grid-template-columns:minmax(0,1fr);gap:8px}.placement-page .placement-tab{min-height:58px;padding:10px 13px}.placement-page .placement-focus-box,.placement-page .placement-passage-preview,.placement-page .placement-tiers-preview{padding:14px}.placement-page .tier-grid-vertical{grid-template-columns:minmax(0,1fr)}.placement-page .tier-card{min-height:0}.placement-page .placement-specs-row{align-items:flex-start;flex-direction:column}.placement-page .placement-action-bar{align-items:stretch;flex-direction:column}.placement-page .placement-action-bar button{width:100%}}.back-link{display:inline-flex!important;align-items:center!important;gap:8px!important;height:38px!important;padding:0 16px 0 10px!important;margin-bottom:20px!important;border-radius:9999px!important;font-size:13px!important;font-weight:550!important;letter-spacing:.2px!important;color:var(--text)!important;background:color-mix(in srgb,var(--surface) 75%,transparent)!important;-webkit-backdrop-filter:blur(16px) saturate(160%)!important;backdrop-filter:blur(16px) saturate(160%)!important;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line))!important;box-shadow:inset 0 1px #ffffffe6,0 2px 8px #234b870d!important;cursor:pointer!important;transition:all .22s cubic-bezier(.16,1,.3,1)!important;text-decoration:none!important;outline:none!important;-webkit-user-select:none!important;user-select:none!important}.back-link svg,.back-link .pixel-icon{width:16px!important;height:16px!important;color:var(--blue)!important;transition:transform .22s cubic-bezier(.16,1,.3,1)!important}.back-link:hover{background:var(--surface)!important;border-color:var(--blue)!important;color:var(--blue)!important;transform:translateY(-1px)!important;box-shadow:inset 0 1px #fff,0 6px 16px #2563eb24!important}.back-link:hover svg,.back-link:hover .pixel-icon{transform:translate(-3px)!important}.back-link:active{transform:scale(.97) translateY(0)!important}.back-link:focus-visible{outline:2px solid var(--blue)!important;outline-offset:3px!important}.practice-toolbar .practice-back-control,.result-toolbar .result-back-control,.placement-action-bar .placement-back-control{width:auto!important;min-width:0!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0 12px 0 9px!important;flex:0 0 auto;white-space:nowrap}.practice-toolbar .practice-back-control span{display:inline;font-size:12px}@keyframes back-control-enter{0%{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:none}}.back-link{animation:back-control-enter .3s cubic-bezier(.2,.7,.3,1) both}@media(prefers-reduced-motion:reduce){.back-link{animation:none!important;transition-duration:.01ms!important}}.profile-page{width:min(1200px,100%);margin:0 auto;padding:12px 24px 64px}.profile-page-inner{display:flex;flex-direction:column;gap:20px}.profile-hero-card{display:flex;align-items:center;gap:24px;padding:24px 30px;border-radius:24px;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid color-mix(in srgb,var(--blue) 20%,var(--line));box-shadow:inset 0 1px #fffffff2,0 12px 36px #234b8714}.hero-avatar-wrap{position:relative;flex-shrink:0}.profile-hero-avatar{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:32px;font-weight:800;box-shadow:0 8px 24px color-mix(in srgb,var(--a2) 40%,transparent);border:3px solid rgba(255,255,255,.8)}.avatar-status-badge{position:absolute;bottom:0;right:0;width:22px;height:22px;border-radius:50%;background:#10b981;color:#fff;display:grid;place-items:center;border:2px solid #fff}.avatar-status-badge .pixel-icon{width:12px;height:12px}.hero-info-wrap{flex:1;display:flex;flex-direction:column;gap:4px}.hero-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero-name-row h2{font-size:24px;font-weight:750;color:var(--text);margin:0;letter-spacing:-.02em}.user-tier-pill{font-size:11.5px;font-weight:600;color:#2563eb;background:#eff6ffe6;border:1px solid rgba(191,219,254,.8);padding:3px 12px;border-radius:9999px}.user-email-text{font-size:13px;color:var(--muted);margin:0 0 4px;font-family:Consolas,monospace}.user-quick-meta{display:flex;gap:16px;font-size:12px;color:var(--muted);flex-wrap:wrap}.user-quick-meta span{display:inline-flex;align-items:center;gap:5px}.user-quick-meta .pixel-icon{width:14px;height:14px;color:var(--blue)}.hero-action-slot{flex-shrink:0}.profile-auth-switch-btn{padding:10px 22px!important;font-size:14px!important;font-weight:600!important}.profile-nav-segmented{display:flex;gap:8px;padding:6px;border-radius:16px;background:color-mix(in srgb,var(--surface) 65%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--blue) 15%,var(--line));box-shadow:inset 0 1px #ffffffe6,0 4px 14px #234b870a;overflow-x:auto;scrollbar-width:none}.profile-nav-segmented::-webkit-scrollbar{display:none}.profile-tab-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:12px;font-size:13px;font-weight:550;color:var(--muted);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);white-space:nowrap}.profile-tab-btn:hover{background:#ffffff80;color:var(--text)}.profile-tab-btn.selected{background:var(--surface);color:var(--blue);font-weight:650;border-color:color-mix(in srgb,var(--blue) 35%,var(--line));box-shadow:0 4px 12px #234b8714,inset 0 1px #fff;transform:translateY(-1px)}.profile-tab-btn .pixel-icon{width:16px;height:16px}.apple-bento-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.bento-card{padding:24px;border-radius:20px;background:color-mix(in srgb,var(--surface) 75%,transparent);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid color-mix(in srgb,var(--blue) 16%,var(--line));box-shadow:inset 0 1px #fffffff2,0 8px 24px #234b870d;display:flex;flex-direction:column;gap:16px;transition:transform .22s ease,box-shadow .22s ease}.bento-card:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fffffff2,0 14px 32px #2563eb1a}.card-header-line{display:flex;align-items:center;justify-content:space-between}.card-header-line h3{font-size:16px;font-weight:700;color:var(--text);margin:0}.card-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--blue);background:#eff6ffcc;border:1px solid rgba(191,219,254,.8);padding:2px 10px;border-radius:9999px}.card-pill .pixel-icon{width:12px;height:12px}.bento-metrics-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bento-metric-tile{padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--surface) 65%,transparent);border:1px solid color-mix(in srgb,var(--line) 75%,transparent);display:flex;flex-direction:column;gap:4px}.metric-number{font:750 22px Consolas,monospace;color:var(--text)}.metric-label{font-size:11px;color:var(--muted)}.cloud-status-indicator{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:#ecfdf5b3;border:1px solid rgba(167,243,208,.8)}.cloud-pulse-dot{width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981}.cloud-status-text strong{display:block;font-size:13px;color:#065f46}.cloud-status-text small{font-size:11px;color:#047857}.sync-token-box{display:flex;flex-direction:column;gap:4px;font-size:11px}.sync-token-box .token-title{color:var(--muted)}.sync-token-box code{padding:8px 12px;border-radius:10px;background:#0f172a0d;font:600 13px Consolas,monospace;color:var(--text)}.card-inline-actions{display:flex;gap:10px}.enrolled-mini-list{display:flex;flex-direction:column;gap:10px}.enrolled-mini-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 55%,transparent);border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.mini-course-cover{width:44px;height:44px;border-radius:8px;object-fit:cover}.mini-course-info{flex:1;min-width:0}.mini-course-info strong{display:block;font-size:13px;color:var(--text)}.mini-course-info p{font-size:10.5px;color:var(--muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bento-action-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;border-radius:14px;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--line) 75%,transparent);cursor:pointer;transition:all .2s ease;text-align:left}.bento-action-tile:hover{background:var(--surface);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 6px 16px #234b8714}.bento-action-tile .pixel-icon{width:20px;height:20px;color:var(--blue)}.bento-action-tile strong{font-size:13px;color:var(--text)}.bento-action-tile small{font-size:10.5px;color:var(--muted)}.auth-flow-container{max-width:540px;margin:0 auto}.auth-flow-card{padding:32px 36px;border-radius:24px;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);border:1px solid color-mix(in srgb,var(--blue) 20%,var(--line));box-shadow:inset 0 1px #fffffff2,0 16px 40px #234b8714;display:flex;flex-direction:column;gap:20px}.auth-mode-switch{display:flex;gap:6px;padding:4px;border-radius:14px;background:color-mix(in srgb,var(--surface) 50%,transparent);border:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.auth-mode-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;border-radius:10px;font-size:13px;font-weight:600;color:var(--muted);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.auth-mode-btn.selected{background:var(--surface);color:var(--blue);box-shadow:0 2px 8px #0000000f;border-color:color-mix(in srgb,var(--blue) 30%,transparent)}.auth-mode-btn .pixel-icon{width:14px;height:14px}.auth-form-head h3{font-size:20px;font-weight:750;color:var(--text);margin:0 0 6px}.auth-form-head p{font-size:12.5px;color:var(--muted);margin:0;line-height:1.5}.auth-form-body{display:flex;flex-direction:column;gap:14px}.auth-field-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text)}.auth-field-label input{height:44px;padding:0 14px;border-radius:12px;background:#ffffffb3;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);font-size:14px;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}.auth-field-label input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.auth-form-options{display:flex;align-items:center;justify-content:space-between;font-size:12px}.remember-checkbox,.terms-checkbox{display:inline-flex;align-items:center;gap:6px;color:var(--muted);cursor:pointer;font-size:12px}.text-link-btn{background:transparent;border:none;color:var(--blue);font-size:12px;cursor:pointer}.auth-submit-btn{height:44px!important;font-size:14px!important;font-weight:650!important;border-radius:12px!important;margin-top:6px}.social-auth-divider{position:relative;text-align:center;margin:8px 0}.social-auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:color-mix(in srgb,var(--line) 80%,transparent)}.social-auth-divider span{position:relative;background:color-mix(in srgb,var(--surface) 90%,transparent);padding:0 12px;font-size:11px;color:var(--muted)}.social-auth-buttons{display:flex;flex-direction:column;gap:8px}.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--surface) 75%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.social-btn:hover{background:var(--surface);transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.auth-switch-foot{text-align:center;font-size:12px;color:var(--muted);margin-top:6px}.sync-bento-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.sync-card,.security-card{padding:24px;border-radius:20px;background:color-mix(in srgb,var(--surface) 75%,transparent);border:1px solid color-mix(in srgb,var(--blue) 16%,var(--line));display:flex;flex-direction:column;gap:16px}.sync-desc{font-size:12.5px;color:var(--muted);line-height:1.6;margin:0}.sync-details-box{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--surface) 50%,transparent);border:1px solid color-mix(in srgb,var(--line) 75%,transparent);font-size:12px}.sync-row{display:flex;justify-content:space-between;align-items:center}.sync-row span{color:var(--muted)}.card-actions-row{display:flex;gap:10px}.backup-actions-grid{display:grid;grid-template-columns:1fr;gap:12px}.backup-btn-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px!important;border-radius:14px!important;text-align:left!important;cursor:pointer}.security-form{display:flex;flex-direction:column;gap:14px;max-width:480px}.security-divider{border:0;height:1px;background:color-mix(in srgb,var(--line) 80%,transparent);margin:12px 0}.danger-zone{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:14px;background:#ef444414;border:1px solid rgba(239,68,68,.2)}.danger-text h4{font-size:13.5px;color:#b91c1c;margin:0 0 4px}.danger-text p{font-size:11.5px;color:#7f1d1d;margin:0}:root[data-theme=dark] .profile-hero-card,:root[data-theme=dark] .bento-card,:root[data-theme=dark] .auth-flow-card,:root[data-theme=dark] .sync-card,:root[data-theme=dark] .security-card{background:#1c2a3cbf;border-color:#3c5573b3;box-shadow:0 8px 30px #00000059}:root[data-theme=dark] .auth-field-label input{background:#0f172a99;border-color:#334155cc;color:#f1f5f9}:root[data-theme=dark] .danger-zone{background:#ef444426;border-color:#ef44444d}:root[data-theme=dark] .danger-text h4{color:#fca5a5}:root[data-theme=dark] .danger-text p{color:#fecaca}@media(max-width:900px){.apple-bento-grid,.sync-bento-grid{grid-template-columns:1fr}.profile-hero-card{flex-direction:column;text-align:center}}.profile-page{width:min(1080px,100%);padding:12px 24px 52px}.profile-page-inner{gap:14px}.profile-page .profile-back{display:inline-flex;align-self:flex-start;width:auto;min-height:34px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--blue) 16%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--surface) 68%,transparent)}.profile-page .profile-hero-card{gap:18px;padding:18px 22px;border-radius:20px}.profile-page .profile-hero-avatar{width:60px;height:60px;font-size:26px}.profile-page .hero-name-row h2{font-size:22px}.profile-page .profile-nav-segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:5px;border-radius:15px}.profile-page .profile-tab-btn{min-width:0;height:40px;gap:7px;padding:0 10px;font-size:12px;transition:color .18s ease,background-color .22s ease,border-color .22s ease,transform .18s ease,box-shadow .22s ease}.profile-page .profile-tab-btn:hover{transform:translateY(-1px)}.profile-page .profile-tab-btn.selected{transform:none}.profile-page .profile-tab-content{min-width:0;animation:profile-panel-in .24s cubic-bezier(.22,.8,.22,1) both}.profile-page :is(.bento-card,.auth-flow-card,.sync-card,.security-card){min-width:0;padding:20px;border:1px solid color-mix(in srgb,var(--blue) 14%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);box-shadow:inset 0 1px #ffffffa8,0 10px 30px #254b7410;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.profile-page :is(.sync-bento-grid,.apple-bento-grid){gap:14px}.profile-page .security-card{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.profile-page .security-card .card-header-line{margin:0}.profile-page .security-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:760px}.profile-page .security-form .setting-label{display:grid;gap:7px;min-width:0;margin:0;color:var(--muted);font-size:12px;font-weight:600}.profile-page .security-form input,.profile-page .auth-field-label input{width:100%;min-width:0;min-height:42px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--blue) 18%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);box-shadow:inset 0 1px 2px #19385a08;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.profile-page .security-form input:focus,.profile-page .auth-field-label input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 15%,transparent)}.profile-page .security-form .form-actions{grid-column:1 / -1;margin:0}.profile-page .security-form .form-actions button{min-height:40px;padding:9px 17px;border-radius:13px}.profile-page .security-divider{width:100%;margin:0;border:0;border-top:1px solid var(--line)}.profile-page .danger-zone{gap:16px;padding:14px 16px;border-radius:14px}.profile-page .auth-flow-container{justify-content:flex-start}.profile-page .auth-flow-card{width:min(540px,100%);margin:0 auto}.profile-page .sync-card{display:flex;flex-direction:column;gap:12px}.profile-page .sync-desc{margin:0;line-height:1.65}.profile-page :is(.sync-details-box,.sync-token-box){min-width:0;overflow-wrap:anywhere}.profile-page .card-actions-row,.profile-page .backup-actions-grid{gap:9px}.profile-page :is(.backup-btn-tile,.card-actions-row button){min-width:0;transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.profile-page :is(.backup-btn-tile,.card-actions-row button):hover{transform:translateY(-1px)}@keyframes profile-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.profile-page{padding:10px 16px 42px}.profile-page .profile-hero-card{flex-direction:row;text-align:left;padding:15px}.profile-page .hero-action-slot{margin-left:auto}.profile-page .user-quick-meta{gap:7px 12px}.profile-page .profile-nav-segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-page .security-form{grid-template-columns:minmax(0,1fr)}.profile-page .security-form .form-actions{grid-column:auto}.profile-page .danger-zone{align-items:flex-start;flex-direction:column}}@media(max-width:460px){.profile-page .profile-hero-card{align-items:flex-start;flex-wrap:wrap}.profile-page .hero-action-slot{width:100%;margin:0}.profile-page .hero-action-slot button{width:100%}.profile-page :is(.bento-card,.auth-flow-card,.sync-card,.security-card){padding:15px}.profile-page .profile-tab-btn{justify-content:flex-start;font-size:11px}.profile-page .card-actions-row{flex-direction:column;align-items:stretch}}@media(prefers-reduced-motion:reduce){.profile-page *,.profile-page *:before,.profile-page *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.profile-page .auth-flow-container{width:100%;max-width:none;margin:0;display:grid;grid-template-columns:minmax(250px,.82fr) minmax(0,1.18fr);align-items:stretch;gap:16px}.profile-page :is(.auth-flow-aside,.auth-flow-card){min-width:0;border:1px solid color-mix(in srgb,var(--blue) 17%,var(--line));border-radius:20px;background:color-mix(in srgb,var(--surface) 76%,transparent);-webkit-backdrop-filter:blur(24px) saturate(155%);backdrop-filter:blur(24px) saturate(155%);box-shadow:inset 0 1px #ffffffdb,0 14px 34px #234b8712;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}.profile-page .auth-flow-aside{position:relative;display:flex;flex-direction:column;overflow:hidden;padding:24px;background:radial-gradient(ellipse at 16% 4%,rgba(72,165,255,.15),transparent 46%),color-mix(in srgb,var(--surface) 76%,transparent);animation:auth-panel-in .34s cubic-bezier(.22,.8,.22,1) both}.profile-page .auth-aside-motif{position:relative;display:grid;width:76px;height:76px;place-items:center;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--blue) 17%,var(--line));border-radius:22px;background:color-mix(in srgb,var(--surface) 72%,transparent);box-shadow:inset 0 1px #ffffffe0,0 9px 22px #2563eb1a;isolation:isolate}.profile-page .auth-motif-glow{position:absolute;z-index:-1;top:10px;right:10px;bottom:10px;left:10px;border-radius:16px;background:linear-gradient(145deg,#13c2b42e,#2563eb2e)}.profile-page .auth-aside-motif .pixel-icon{width:38px;height:38px;color:var(--blue);filter:drop-shadow(0 4px 7px rgba(37,99,235,.14))}.profile-page .auth-motif-pixels{position:absolute;right:-6px;bottom:-6px;width:20px;height:20px;border:3px solid var(--surface);border-radius:6px;background:var(--blue);box-shadow:8px -7px 0 -3px color-mix(in srgb,var(--blue) 44%,var(--surface))}.profile-page .auth-aside-eyebrow{margin:0 0 8px;color:var(--blue);font-size:10px;font-weight:750;letter-spacing:.17em}.profile-page .auth-flow-aside h3{margin:0;color:var(--text);font-size:clamp(23px,2.1vw,29px);font-weight:760;line-height:1.25;letter-spacing:-.035em}.profile-page .auth-flow-aside h3 span{color:var(--blue)}.profile-page .auth-aside-copy{max-width:34ch;margin:10px 0 20px;color:var(--muted);font-size:12.5px;line-height:1.65}.profile-page .auth-benefit-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.profile-page .auth-benefit-list li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-width:0;animation:auth-item-in .3s cubic-bezier(.22,.8,.22,1) both}.profile-page .auth-benefit-list li:nth-child(2){animation-delay:45ms}.profile-page .auth-benefit-list li:nth-child(3){animation-delay:90ms}.profile-page .auth-benefit-list li>.pixel-icon{box-sizing:content-box;width:16px;height:16px;padding:8px;border:1px solid color-mix(in srgb,var(--blue) 12%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--surface) 72%,transparent);color:var(--blue)}.profile-page .auth-benefit-list li span{display:grid;gap:2px;min-width:0}.profile-page .auth-benefit-list strong{color:var(--text);font-size:12px;font-weight:650}.profile-page .auth-benefit-list small{color:var(--muted);font-size:10.5px;line-height:1.4}.profile-page .auth-aside-foot{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:18px;color:var(--muted);font-size:10.5px}.profile-page .auth-aside-foot .pixel-icon{width:14px;height:14px;color:var(--blue)}.profile-page .auth-flow-card{width:auto;margin:0;padding:20px 22px;border-radius:20px;gap:14px;animation:auth-panel-in .38s cubic-bezier(.22,.8,.22,1) 35ms both}.profile-page .auth-mode-switch{gap:5px;padding:4px;border-radius:13px}.profile-page .auth-mode-btn{min-height:40px;border-radius:10px;transition:color .18s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .18s ease}.profile-page .auth-mode-btn:active,.profile-page .social-btn:active,.profile-page .auth-submit-btn:active{transform:scale(.98)}.profile-page .auth-form-body{gap:10px;animation:auth-form-in .26s cubic-bezier(.22,.8,.22,1) both}.profile-page #typeflow-register-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;column-gap:12px;row-gap:10px}.profile-page #typeflow-register-form .auth-form-head,.profile-page #typeflow-register-form .terms-checkbox,.profile-page #typeflow-register-form .auth-submit-btn,.profile-page #typeflow-register-form .auth-switch-foot{grid-column:1 / -1}.profile-page .auth-form-head h3{margin-bottom:4px;font-size:18px;letter-spacing:-.02em}.profile-page .auth-form-head p{font-size:12px}.profile-page .auth-field-label{gap:5px;font-size:11.5px}.profile-page .auth-field-label input{min-height:42px;height:42px;padding:0 12px;border-radius:11px;background:color-mix(in srgb,var(--surface) 88%,transparent);font-size:13px}.profile-page .auth-form-options{min-height:22px;font-size:11px}.profile-page .remember-checkbox,.profile-page .terms-checkbox{font-size:11px}.profile-page .auth-submit-btn{min-height:42px;height:42px!important;margin-top:1px;border-radius:11px!important;transition:transform .18s ease,box-shadow .2s ease,filter .2s ease}.profile-page .social-auth-divider{margin:3px 0 1px}.profile-page .social-auth-divider span{padding:0 10px;font-size:10.5px}.profile-page .social-auth-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.profile-page .social-btn{min-width:0;min-height:42px;height:auto;gap:7px;padding:0 8px;border-radius:11px;font-size:11.5px;transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.profile-page .social-brand-mark{display:inline-grid;flex:0 0 20px;width:20px;height:20px;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--blue) 8%,var(--surface));color:var(--text);font-size:10px;font-weight:750}.profile-page .apple-mark{font-size:14px}.profile-page .google-mark{color:#4285f4;font-size:12px}.profile-page .auth-switch-foot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;margin-top:0;font-size:11px}.profile-page .auth-switch-foot .text-button{padding:3px 2px;font-size:11px}.profile-page .user-tier-pill{display:inline-flex;align-items:center;gap:5px}.profile-page .user-tier-pill .pixel-icon{width:12px;height:12px}:root[data-theme=dark] .profile-page .auth-flow-aside{background:radial-gradient(ellipse at 16% 4%,rgba(37,99,235,.2),transparent 46%),#1c2a3cc7}:root[data-theme=dark] .profile-page .auth-motif-glow{background:linear-gradient(145deg,#13c2b429,#2563eb3d)}@keyframes auth-panel-in{0%{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes auth-item-in{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:translate(0)}}@keyframes auth-form-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:820px){.profile-page .auth-flow-container{grid-template-columns:minmax(0,1fr)}.profile-page .auth-flow-card{order:1}.profile-page .auth-flow-aside{order:2;padding:20px}.profile-page .auth-aside-motif{width:56px;height:56px;margin-bottom:14px;border-radius:18px}.profile-page .auth-aside-motif .pixel-icon{width:30px;height:30px}}@media(max-width:460px){.profile-page .auth-flow-container{gap:12px}.profile-page .auth-flow-card,.profile-page .auth-flow-aside{padding:16px}.profile-page .social-auth-buttons{gap:6px}.profile-page .social-btn{gap:5px;padding:0 5px;font-size:10.5px}.profile-page #typeflow-register-form{grid-template-columns:minmax(0,1fr);row-gap:9px}.profile-page #typeflow-register-form>*{grid-column:auto}}.fluid-tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:auto;opacity:0;transition:opacity .28s ease}.fluid-tour-overlay.is-active{opacity:1}.fluid-tour-overlay.is-leaving{opacity:0;pointer-events:none}.fluid-magnetic-spotlight{position:absolute;top:0;left:0;border-radius:18px;pointer-events:none;box-shadow:0 0 0 9999px #0c121eb8,0 0 30px #0a84ff73,inset 0 0 0 2px #0a84ffd9;transition:transform .32s cubic-bezier(.16,1,.3,1),width .32s cubic-bezier(.16,1,.3,1),height .32s cubic-bezier(.16,1,.3,1);will-change:transform,width,height}.fluid-magnetic-spotlight:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:20px;border:2px dashed rgba(255,255,255,.8);animation:magnetic-pulse 2.2s infinite ease-in-out;pointer-events:none}@keyframes magnetic-pulse{0%,to{opacity:.4;transform:scale(.995)}50%{opacity:.95;transform:scale(1.01)}}.fluid-magnetic-tooltip{position:absolute;top:0;left:0;width:350px;max-width:calc(100vw - 32px);z-index:10000;border-radius:22px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));box-shadow:inset 0 1px #fffffff2,0 20px 50px #0f172a4d;transition:transform .34s cubic-bezier(.16,1,.3,1);will-change:transform;pointer-events:auto}.tour-tooltip-inner{padding:22px 24px;display:flex;flex-direction:column;gap:12px}.tour-card-header{display:flex;align-items:center;justify-content:space-between}.tour-step-badge{font:700 10.5px Consolas,monospace;letter-spacing:1px;color:var(--blue);background:#eff6ffd9;border:1px solid rgba(191,219,254,.8);padding:3px 10px;border-radius:9999px}.tour-close-btn{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:var(--muted);background:#0000000d;border:none;cursor:pointer;transition:all .2s}.tour-close-btn:hover{background:#ef444426;color:#ef4444}.tour-title{font-size:17px;font-weight:750;color:var(--text);margin:0 0 6px;letter-spacing:-.02em}.tour-desc{font-size:13px;color:var(--muted);line-height:1.6;margin:0}.tour-dots-row{display:flex;gap:6px;margin:4px 0}.tour-dot{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--line) 90%,transparent);transition:all .2s ease}.tour-dot.active{width:20px;border-radius:6px;background:var(--blue)}.tour-footer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.tour-skip-btn{font-size:12px!important;color:var(--muted)!important;padding:0!important}.tour-skip-btn:hover{color:var(--text)!important}.tour-nav-btns{display:flex;gap:8px}.tour-btn-sm{min-height:34px!important;padding:0 14px!important;font-size:12.5px!important;font-weight:600!important;border-radius:10px!important}.about-modal-dialog{max-width:680px!important;width:95vw!important;padding:34px 38px!important}.about-modal-inner{display:flex;flex-direction:column;gap:18px}.about-love-hero{display:flex;align-items:center;gap:18px;padding-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent)}.about-heart-icon{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#f43f5e,#fb7185);color:#fff;font-size:28px;display:grid;place-items:center;box-shadow:0 8px 24px #f43f5e59;border:2px solid rgba(255,255,255,.8);flex-shrink:0}.about-title-wrap h2{font-size:23px;font-weight:800;color:var(--text);margin:0 0 4px;letter-spacing:-.02em}.about-subtitle{font-size:12.5px;color:var(--muted);margin:0;display:flex;align-items:center;gap:8px}.about-pill{background:#f43f5e1a;color:#f43f5e;border:1px solid rgba(244,63,94,.25);padding:2px 8px;border-radius:9999px;font-size:10.5px;font-weight:600}.about-story-timeline{display:flex;flex-direction:column;gap:14px;max-height:380px;overflow-y:auto;padding-right:6px}.about-story-timeline::-webkit-scrollbar{width:5px}.about-story-timeline::-webkit-scrollbar-thumb{background:#b4cdeb80;border-radius:9999px}.story-card{padding:16px 18px;border-radius:16px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid color-mix(in srgb,var(--blue) 15%,var(--line));display:flex;flex-direction:column;gap:6px}.story-card-head{display:flex;align-items:center;gap:8px}.story-chapter-tag{font:700 9.5px Consolas,monospace;padding:2px 7px;border-radius:6px;background:#0ea5e926;color:#0284c7}.story-card-head h4{font-size:14px;font-weight:700;color:var(--text);margin:0}.story-card p{font-size:12.5px;color:var(--text);opacity:.88;line-height:1.65;margin:0}.story-highlight-quote{padding:14px 18px;border-radius:16px;background:linear-gradient(135deg,#fef2f2cc,#fff1f299);border:1px dashed rgba(244,63,94,.4);font-size:13px;line-height:1.6;color:#9f1239;text-align:center}.easter-egg-falling-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 50% 20%,rgba(254,205,211,.15),transparent 70%);animation:egg-fade-in .4s ease both}@keyframes egg-fade-in{0%{opacity:0}to{opacity:1}}.easter-egg-falling-container.is-closing{animation:egg-fade-out .4s ease both}@keyframes egg-fade-out{0%{opacity:1}to{opacity:0}}.egg-floating-toolbar{position:fixed;top:18px;right:24px;z-index:12100;display:flex;align-items:center;gap:12px;pointer-events:auto}.egg-love-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:9999px;font-size:13px;font-weight:650;color:#e11d48;background:#ffffffe0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(253,164,175,.9);box-shadow:0 8px 24px #e11d482e}.egg-close-pill{padding:8px 18px!important;font-size:12.5px!important;border-radius:9999px!important;background:#e11d48!important;color:#fff!important;box-shadow:0 4px 14px #e11d484d!important}.falling-leaf-text{position:absolute;top:0;left:0;padding:5px 14px;border-radius:9999px;font-size:14px;font-weight:750;letter-spacing:.5px;pointer-events:none;-webkit-user-select:none;user-select:none;box-shadow:0 6px 18px #00000014;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);will-change:transform}.leaf-hue-0{background:#fff1f2eb;border:1px solid rgba(251,113,133,.85);color:#e11d48}.leaf-hue-1{background:#fef2f2e6;border:1px solid rgba(244,63,94,.8);color:#be123c}.leaf-hue-2{background:#fef3c7eb;border:1px solid rgba(245,158,11,.8);color:#d97706}.leaf-hue-3{background:#f0fdfaeb;border:1px solid rgba(45,212,191,.8);color:#0f766e}.egg-ground-pile{position:fixed;bottom:0;left:0;right:0;height:90px;pointer-events:none}.settled-leaf-item{position:absolute;padding:4px 12px;border-radius:9999px;font-size:13px;font-weight:700;background:#fff1f2e0;border:1px solid rgba(251,113,133,.7);color:#e11d48;box-shadow:0 3px 10px #e11d481f;transition:opacity .5s ease;pointer-events:none;animation:settle-bounce .35s ease both}@keyframes settle-bounce{0%{transform:translateY(-8px) scale(1.05)}60%{transform:translateY(2px) scale(.98)}to{transform:translateY(0) scale(1)}}.easter-egg-prompt-modal{max-width:560px!important;padding:34px 36px!important}.egg-prompt-inner{display:flex;flex-direction:column;gap:16px;text-align:center}.egg-crown-hero{display:flex;flex-direction:column;align-items:center;gap:6px}.egg-trophy-symbol{font-size:48px;line-height:1}.egg-tag{font:700 11px Consolas,monospace;color:#d97706;background:#fef3c7;border:1px solid #fde68a;padding:3px 12px;border-radius:9999px}.egg-crown-hero h2{font-size:24px;font-weight:750;color:var(--text);margin:4px 0 0}.egg-prompt-desc{font-size:13.5px;color:var(--muted);line-height:1.7;margin:0}.egg-prompt-desc strong{color:var(--text);display:block;margin-top:6px}.egg-modal-actions{display:flex;justify-content:center;gap:12px;margin-top:10px}.egg-launch-btn{background:linear-gradient(135deg,#f43f5e,#fb7185)!important;border:0!important;color:#fff!important;font-size:14px!important;font-weight:650!important;box-shadow:0 8px 24px #f43f5e59!important}:root[data-theme=dark] .fluid-magnetic-tooltip{background:#162030e0;border-color:#3b82f666;box-shadow:0 20px 50px #00000080}:root[data-theme=dark] .story-card{background:#1e2c3eb3;border-color:#38506e99}:root[data-theme=dark] .story-highlight-quote{background:#88133740;border-color:#f43f5e66;color:#fecdd3}.badges-hero-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 30px;margin-bottom:30px;border-radius:24px;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid color-mix(in srgb,var(--blue) 20%,var(--line));box-shadow:inset 0 1px #fffffff2,0 12px 32px #234b870f}.badges-hero-panel.all-achieved{border-color:#f43f5e66;background:linear-gradient(135deg,#fff1f2cc,color-mix(in srgb,var(--surface) 80%,transparent))}.badges-hero-info{display:flex;flex-direction:column;gap:6px;max-width:680px}.badges-hero-tag span{font:700 11px Consolas,monospace;color:#d97706;background:#fef3c7;border:1px solid #fde68a;padding:3px 12px;border-radius:9999px;display:inline-block}.badges-hero-info h1{font-size:26px;font-weight:750;color:var(--text);margin:2px 0 0;letter-spacing:-.02em}.badges-hero-info p{font-size:13px;color:var(--muted);line-height:1.6;margin:0}.badges-stats-row{display:flex;align-items:center;gap:14px;margin-top:4px;font-size:13px;color:var(--text)}.badges-progress-pill{font-size:11px;font-weight:600;color:var(--blue);background:#eff6ffd9;border:1px solid rgba(191,219,254,.8);padding:2px 10px;border-radius:9999px}.badges-hero-action{flex-shrink:0}.egg-banner-btn{background:linear-gradient(135deg,#f43f5e,#fb7185)!important;color:#fff!important;font-weight:650!important;border:0!important;box-shadow:0 8px 22px #f43f5e59!important}.badge-card{padding:16px 12px!important;border-radius:18px!important;background:color-mix(in srgb,var(--surface) 75%,transparent)!important;border:1px solid color-mix(in srgb,var(--line) 80%,transparent)!important;box-shadow:inset 0 1px #fffc,0 4px 14px #00000008!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important}.badge-card:hover{transform:translateY(-3px)!important;border-color:var(--blue)!important;box-shadow:0 8px 24px #2563eb1f!important}.badge-card.earned{border-color:#f59e0b66!important;background:linear-gradient(135deg,#fef3c780,color-mix(in srgb,var(--surface) 80%,transparent))!important;box-shadow:inset 0 1px #fff,0 8px 24px #f59e0b29!important}:root[data-theme=dark] .badges-hero-panel{background:#1c2a3cbf;border-color:#3c5573b3;box-shadow:0 12px 32px #00000059}:root[data-theme=dark] .badge-card{background:#1e2c3eb3!important;border-color:#3c557399!important}:root[data-theme=dark] .badge-card.earned{background:linear-gradient(135deg,#78350f4d,#1e2c3ecc)!important;border-color:#f59e0b80!important;box-shadow:0 8px 24px #f59e0b33!important}
