:root{color-scheme:light;--bg: #f6f4ef;--panel: #ffffff;--panel-alt: #fbfaf7;--ink: #202124;--muted: #62665f;--line: #d9d7ce;--line-strong: #bbb8ad;--green: #1f7a4d;--green-dark: #155d39;--green-soft: #e4f4eb;--red: #ba3a2d;--red-soft: #fde9e7;--blue: #2667a8;--blue-soft: #e8f1fb;--amber: #9a650f;--amber-soft: #fff0ce;--shadow: 0 18px 44px rgba(40, 39, 34, .12);--shadow-soft: 0 8px 24px rgba(40, 39, 34, .08);font-family:Arial,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 0%,rgba(31,122,77,.08),transparent 28rem),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{outline:none}:focus-visible{box-shadow:0 0 0 3px var(--blue-soft),0 0 0 1px var(--blue)}a{color:var(--blue)}[hidden]{display:none!important}.screen-center{min-height:100vh;display:grid;place-items:center;padding:24px}.login-page{min-height:100svh;display:flex;flex-direction:column}.site-footer{min-width:0;padding:16px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center;overflow-wrap:anywhere}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline}.login-home{flex:1;width:min(1480px,100%);margin:auto;padding:48px 32px;display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,27vw,340px);align-items:center;gap:clamp(24px,3vw,48px)}.login-story{min-width:0}.login-story-heading{margin:0 0 28px}.login-story-heading h2{margin:0 0 14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(32px,3.6vw,49px);line-height:1.16;letter-spacing:-.035em;font-weight:700}.login-story-heading p{margin:0;color:var(--muted);font-size:15px;line-height:1.7}.login-home .auth-card{width:100%;max-width:340px;padding:24px;justify-self:center;border-radius:22px;box-shadow:0 14px 48px #263a2e0a}.login-home .auth-brand{gap:10px;margin-bottom:20px}.login-home .brand-mark{flex:0 0 40px;width:40px;height:40px;border-radius:10px;font-size:22px}.login-home .auth-brand h1{font-size:20px}.login-home .auth-brand p{font-size:12px;line-height:1.5}.login-home .form-stack{gap:12px}.login-home .auth-card .helper{margin:2px 0 0;font-size:12px}.login-home .auth-card .message{padding:10px 12px;font-size:12px}.login-home .auth-capability-note{margin-top:14px}.login-home .auth-card .input,.login-home .auth-card .btn{min-height:44px}.login-home .auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0 0 16px;padding-bottom:8px;overflow:visible}.login-home .auth-tab{min-width:0;padding:7px 4px;font-size:12px}.login-home .verification-row{grid-template-columns:minmax(0,1fr)}.login-home .verification-row .btn{width:100%}@media(min-width:941px){.login-home{align-content:center;align-items:start;row-gap:28px}.login-story{display:contents}.login-story-heading{grid-column:1;grid-row:1;margin-bottom:0}.login-home #loginPromo{grid-column:1;grid-row:2}.login-home .auth-card{grid-column:2;grid-row:2}.login-home .practice-promo .promo-view{min-height:430px}.login-home .practice-promo .promo-headline,.login-home .practice-promo .promo-finish-title{font-size:clamp(40px,7.6cqw,72px)}.login-home .practice-promo .promo-memory-word{font-size:clamp(64px,12cqw,106px)}}@media(max-width:940px){.login-home{grid-template-columns:minmax(0,1fr);gap:30px;padding:32px 24px;max-width:740px}.login-story-heading{margin-bottom:20px}}@media(max-width:480px){.login-home{padding:24px 16px;gap:24px}.login-story-heading h2{font-size:30px}.login-story-heading p{font-size:13px}.login-home .auth-card{padding:22px}.login-home .practice-promo .promo-view{min-height:320px}}.loading-card,.auth-card,.forced-password-card{width:min(460px,100%);min-width:0;border:1px solid var(--line);border-radius:14px;background:#fffffff5;box-shadow:var(--shadow);padding:34px}.auth-card.email-auth-card{width:min(540px,100%)}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:13px;background:var(--green);color:#fff;font-size:27px;font-weight:800;letter-spacing:-2px}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.auth-brand h1,.auth-brand p,.page-title h1,.page-title p{margin:0}.auth-brand h1{font-size:24px}.auth-brand p,.page-title p{margin-top:5px;color:var(--muted);font-size:14px}.auth-tabs{display:flex;gap:4px;margin:-8px 0 22px;padding-bottom:4px;border-bottom:1px solid var(--line);overflow-x:auto}.auth-tab{flex:1 0 auto;min-height:40px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:8px 10px;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap}.auth-tab:hover,.auth-tab.active{color:var(--green)}.auth-tab.active{border-bottom-color:var(--green)}.auth-capability-note{margin-top:18px}.app-shell{width:min(1240px,calc(100vw - 32px));margin:0 auto;padding:18px 0 38px}.app-header{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.brand-link{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:800}.brand-link .brand-mark{width:39px;height:39px;border-radius:9px;font-size:20px}.header-actions,.nav-links,.user-chip,.button-row,.inline-actions,.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nav-link{color:var(--muted);text-decoration:none;padding:9px 11px;border-radius:7px;font-size:14px;font-weight:700}.nav-link:hover,.nav-link.active{color:var(--green);background:var(--green-soft)}.user-chip{border-left:1px solid var(--line);padding-left:14px;margin-left:5px;font-size:13px}.user-chip strong{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-pill,.status-pill{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;line-height:1}.role-pill{background:var(--blue-soft);color:var(--blue)}.status-pill.published,.status-pill.active,.status-pill.ok{background:var(--green-soft);color:var(--green-dark)}.status-pill.draft,.status-pill.pending{background:var(--amber-soft);color:var(--amber)}.status-pill.archived,.status-pill.disabled,.status-pill.error{background:var(--red-soft);color:var(--red)}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.page-title h1{font-size:28px;line-height:1.15}.form-stack{display:grid;gap:16px}.verification-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:-11px}.verification-row .btn{min-width:118px}.code-input{letter-spacing:.16em;font-variant-numeric:tabular-nums}.field{display:grid;gap:7px}.field>span,.field>label,.field-label{color:var(--muted);font-size:12px;font-weight:700}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease}.input,.select{height:42px;padding:0 11px}.textarea{min-height:116px;padding:11px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--red)}.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:8px 13px;cursor:pointer;text-decoration:none;font-weight:700;font-size:14px}.btn:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel-alt)}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}.btn.danger{color:var(--red);border-color:#e7b7b0;background:var(--red-soft)}.btn.ghost{border-color:transparent;background:transparent}.btn.small{min-height:32px;padding:5px 9px;font-size:12px}.btn:disabled{cursor:not-allowed;opacity:.55}.message{border:1px solid var(--line);border-radius:8px;padding:11px 13px;font-size:14px;line-height:1.5}.message.compact{padding:8px 10px;font-size:12px}.message.error{color:var(--red);border-color:#edb7b0;background:var(--red-soft)}.message.success{color:var(--green-dark);border-color:#b9dec8;background:var(--green-soft)}.message.info{color:var(--blue);border-color:#bed4eb;background:var(--blue-soft)}.message.warning{color:var(--amber);border-color:#efd38c;background:var(--amber-soft)}.helper,.muted{color:var(--muted);font-size:13px;line-height:1.5}.panel{border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-soft)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-heading h2,.panel-heading h3{margin:0;font-size:17px}.panel-body{padding:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:9px;min-width:min(480px,100%)}.stat{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;padding:10px;min-height:64px}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.stat strong{font-size:22px;line-height:1}.practice-card{overflow:hidden}.practice-controls{display:grid;grid-template-columns:1.15fr .72fr auto auto;gap:12px;padding:14px;border-bottom:1px solid var(--line);background:var(--panel-alt)}.toggle-group{display:flex;align-items:flex-end;gap:13px;padding-bottom:9px}.toggle-line{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-size:13px;white-space:nowrap}.toggle-line input{width:18px;height:18px;accent-color:var(--green)}.practice-actions{display:flex;align-items:flex-end;gap:7px}.sync-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;color:var(--red);background:var(--red-soft);border-bottom:1px solid #edb7b0;font-size:14px}.practice-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:480px}.practice-main{padding:28px;min-width:0}.speech-settings{padding:14px;border-bottom:1px solid var(--line);background:var(--panel-alt)}.speech-settings summary{width:fit-content;cursor:pointer;font-size:14px;font-weight:700}.speech-options{display:grid;grid-template-columns:minmax(0,2fr) minmax(160px,1fr) auto;gap:14px;align-items:end;margin-top:14px}.speech-options .control{display:grid;gap:8px;min-width:0}.speech-options label,.speech-status,.speech-help{color:var(--muted);font-size:13px}.speech-options select{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:0 10px}.speech-options input[type=range]{width:100%;height:40px;margin:0;accent-color:var(--green)}.speech-status,.speech-help{margin:8px 0 0;overflow-wrap:anywhere}.speech-status.bad{color:var(--red)}@media(max-width:680px){.speech-options{grid-template-columns:minmax(0,1fr)}}.practice-side{border-left:1px solid var(--line);background:var(--panel-alt);padding:20px}.practice-side h2{margin:0;font-size:16px}.progress-wrap{display:grid;gap:8px;margin-bottom:24px}.progress-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.progress-bar{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;appearance:none}.progress-bar::-webkit-progress-bar{background:#e7e2d8;border-radius:999px}.progress-bar::-webkit-progress-value{background:var(--green);border-radius:999px}.progress-bar::-moz-progress-bar{background:var(--green);border-radius:999px}.prompt{display:grid;align-content:start;gap:10px;margin-bottom:22px;min-height:158px}.target-word{font-size:clamp(34px,6vw,56px);line-height:1.05;font-weight:800;overflow-wrap:anywhere}.target-word.sentence{font-size:clamp(27px,4vw,36px);line-height:1.28}.target-word.long{font-size:clamp(23px,3.3vw,30px);line-height:1.35}.meaning{font-size:19px;line-height:1.6}.pronunciation{width:fit-content;max-width:100%;border:1px solid #f0d48b;background:var(--amber-soft);color:var(--amber);border-radius:6px;padding:7px 10px;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.answer-input{height:60px;padding:0 16px;font-size:27px}.letters{display:flex;flex-wrap:wrap;gap:6px;min-height:44px;margin-top:12px}.letter{display:inline-grid;place-items:center;min-width:34px;height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:20px;font-weight:700;padding:0 5px}.letter.ok{color:var(--green);background:var(--green-soft);border-color:#b9dec8}.letter.bad{color:var(--red);background:var(--red-soft);border-color:#edb7b0}.letter.current{border-color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue-soft)}.feedback{min-height:36px;margin-top:12px;color:var(--muted);font-size:15px}.feedback.good{color:var(--green);font-weight:700}.feedback.bad{color:var(--red);font-weight:700}.review-list{display:grid;gap:8px;max-height:344px;overflow:auto;padding-right:3px;margin-top:12px}.review-item{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;display:grid;gap:4px}.review-item strong{font-size:17px;overflow-wrap:anywhere}.review-item span{color:var(--muted);font-size:13px;line-height:1.4}.side-summary{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.side-summary h3{margin:0 0 12px;font-size:15px}.summary-pairs{display:grid;grid-template-columns:1fr auto;gap:9px 14px;align-items:baseline;font-size:13px}.summary-pairs span{color:var(--muted)}.empty-state{color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:15px;font-size:14px;line-height:1.55}.legacy-banner{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px}.account-panel{margin-top:16px}.account-panel summary{cursor:pointer;font-weight:700;padding:15px 18px}.account-panel[open] summary{border-bottom:1px solid var(--line)}.account-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.account-security-card{display:grid;gap:14px;min-width:0;padding:18px;border:1px solid var(--line);border-radius:9px;background:var(--panel-alt)}.account-security-card.account-security-primary{border-color:#b9dec8;background:#fbfffc}.account-security-card h3,.account-security-card p{margin:0}.account-email{display:flex;align-items:center;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}.account-email>span:first-child{color:var(--muted);font-size:13px}.account-code-status{margin-top:10px}.narrow-form{max-width:560px}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}.admin-tab{border:0;border-bottom:3px solid transparent;background:transparent;padding:11px 14px;color:var(--muted);cursor:pointer;white-space:nowrap;font-weight:700}.admin-tab.active{color:var(--green);border-bottom-color:var(--green)}.admin-section{display:grid;gap:16px}.admin-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.6fr);gap:16px;align-items:start}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px}.admin-stat{padding:19px}.admin-stat span{color:var(--muted);font-size:13px}.admin-stat strong{display:block;margin-top:8px;font-size:27px}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:11px 10px;text-align:left;vertical-align:middle}.data-table th{color:var(--muted);background:var(--panel-alt);font-size:12px;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table .input,.data-table .select{min-width:100px;height:34px;font-size:13px}.truncate{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-search{width:min(300px,100%)}.preview-card{display:grid;gap:9px;padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--panel-alt)}.preview-english{font-size:24px;font-weight:800;overflow-wrap:anywhere}.json-details{max-width:360px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:Consolas,monospace;font-size:11px;color:var(--muted)}.temporary-password{display:grid;gap:8px;margin-top:12px}.temporary-password code{display:block;border:1px dashed #b6984c;border-radius:7px;background:#fff8e4;padding:12px;font:700 18px/1.4 Consolas,monospace;color:#6c480b;overflow-wrap:anywhere;user-select:all}.toast-region{position:fixed;z-index:50;right:18px;bottom:18px;width:min(380px,calc(100vw - 36px));display:grid;gap:8px;pointer-events:none}.toast{border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow);padding:13px 15px;line-height:1.45;font-size:14px;pointer-events:auto}.toast.error{border-color:#edb7b0;color:var(--red)}.toast.success{border-color:#b9dec8;color:var(--green-dark)}.spinner{width:28px;height:28px;margin:0 auto 14px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:920px){.app-shell{width:min(100vw - 20px,760px);padding-top:10px}.app-header,.page-title{align-items:stretch;flex-direction:column}.header-actions{justify-content:space-between}.user-chip{border-left:0;padding-left:0;margin-left:0}.stats,.admin-stats{grid-template-columns:repeat(2,1fr);min-width:0}.practice-controls{grid-template-columns:1fr 1fr}.practice-grid,.admin-grid,.account-security-grid{grid-template-columns:1fr}.practice-side{border-left:0;border-top:1px solid var(--line)}}@media(max-width:580px){.screen-center{padding:10px}.auth-card,.forced-password-card{padding:24px 19px}.auth-tabs{margin-inline:-4px}.verification-row{grid-template-columns:1fr}.verification-row .btn{width:100%}.app-header{gap:12px}.header-actions,.legacy-banner{align-items:stretch;flex-direction:column}.nav-links{width:100%}.nav-link{flex:1;text-align:center}.user-chip{width:100%;justify-content:space-between}.practice-controls{grid-template-columns:1fr}.toggle-group,.practice-actions{align-items:stretch}.practice-actions .btn{flex:1}.practice-main,.practice-side,.panel-body{padding:16px}.stats,.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat,.admin-stat{min-width:0}.page-title h1{font-size:24px}.answer-input{height:54px;font-size:23px}}.markdown-import,.markdown-import .panel{min-width:0}.markdown-drop-zone{display:grid;gap:8px;border:2px dashed var(--line);border-radius:12px;padding:18px;transition:border-color .15s}.markdown-drop-zone.drag-over{border-color:var(--accent, #1c7a50);background:#edf7f1}.markdown-source{min-height:220px;font-family:ui-monospace,monospace}.markdown-mappings{display:grid;gap:16px;margin-top:12px}.markdown-mapping{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(90px,1fr);gap:12px;border:1px solid var(--line);border-radius:10px;padding:14px}.markdown-mapping>strong{grid-column:1 / -1;overflow-wrap:anywhere}.markdown-mapping .field{min-width:0}.markdown-import .helper,.markdown-summary,.markdown-issues{overflow-wrap:anywhere}.markdown-issues{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px}.markdown-issues summary{cursor:pointer;font-weight:600}.markdown-preview-table{table-layout:fixed;min-width:900px}.markdown-preview-table td,.markdown-preview-table th{overflow-wrap:anywhere;white-space:normal}.markdown-preview-table th:nth-child(1){width:70px}.markdown-preview-table th:nth-child(3){width:70px}.markdown-preview-table th:nth-child(4),.markdown-preview-table th:nth-child(5){width:22%}.markdown-pagination{flex-wrap:wrap}@media(max-width:580px){.markdown-mapping{grid-template-columns:minmax(0,1fr)}.markdown-drop-zone{padding:12px}.markdown-import .panel-heading{flex-wrap:wrap;gap:10px}.markdown-import input[type=file]{width:100%;min-width:0}.markdown-import #commitMarkdownImportButton{width:100%;white-space:normal}}.membership-page{display:grid;gap:20px;max-width:1040px;margin:0 auto;min-width:0}.membership-page .page-title{margin-bottom:0}.membership-order{border:1px solid var(--border, #d9ded9);border-radius:16px;padding:20px;background:#f5faf7;overflow-wrap:anywhere}.membership-order p{margin:12px 0}.membership-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.membership-stats div{display:grid;gap:5px;padding:16px;background:#f5f7f4;border-radius:12px}.membership-stats strong{font-size:24px}.membership-stats span,.membership-history{color:#5e685f;font-size:14px}.membership-history{padding:0;list-style:none}.membership-history li,.membership-history-row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #e7ebe7}.membership-notice{margin-bottom:16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.membership-page .button-row{flex-wrap:wrap}.membership-page .account-email strong{overflow-wrap:anywhere;min-width:0}@media(max-width:600px){.membership-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.membership-page .panel-body{padding:18px}.membership-page .btn{white-space:normal}}.practice-promo-host{min-width:0;width:100%;container-type:inline-size}.practice-promo{--promo-blue: #2678d8;--promo-green: #16866c;--promo-float: 0px;position:relative;isolation:isolate;overflow:hidden;width:100%;border:1px solid rgba(255,255,255,.9);border-radius:28px;color:#1d1d1f;background:linear-gradient(145deg,#fff 3%,#f8fafc 53%,#f0f5f7);box-shadow:0 24px 80px -40px #23456040,inset 0 0 0 1px #27405409;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;cursor:pointer;touch-action:manipulation}.practice-promo *,.practice-promo *:before,.practice-promo *:after{box-sizing:border-box}.practice-promo p,.practice-promo h2{margin:0}.practice-promo:focus-visible{outline:2px solid #2678d8;outline-offset:4px}.practice-promo .promo-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.practice-promo .promo-view{position:relative;width:100%;aspect-ratio:1.65;min-height:390px}.practice-promo .promo-light{position:absolute;pointer-events:none;border-radius:50%;filter:blur(35px);opacity:.55;transform:translateY(var(--promo-float))}.practice-promo .promo-light-one{width:45%;height:75%;left:0;top:0;background:radial-gradient(ellipse,#d7eaff,#deedff00 72%)}.practice-promo .promo-light-two{width:45%;height:70%;right:-8%;bottom:-10%;background:radial-gradient(ellipse,#dbf2e9,#def6eb00 72%)}.practice-promo .promo-scene{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:28px;opacity:0;transform:translateY(13px) scale(.985);filter:blur(5px);pointer-events:none;transition:opacity .4s ease,transform .55s cubic-bezier(.22,1,.36,1),filter .45s ease}.practice-promo[data-stage=hook] .promo-hook,.practice-promo[data-stage=arrows] .promo-arrows,.practice-promo[data-stage=mnemonic] .promo-mnemonic,.practice-promo[data-stage=finish] .promo-finish{opacity:1;transform:none;filter:none}.practice-promo .promo-eyebrow{color:#6b7480;font-size:12px;font-weight:600;letter-spacing:1px}.practice-promo .promo-headline{margin-top:17px;font-size:clamp(32px,7.6cqw,56px);font-weight:750;letter-spacing:-2.2px;line-height:1.2}.practice-promo .promo-gradient{color:#147a99;background:linear-gradient(100deg,#2379d3 7%,#168769 95%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.practice-promo .promo-hook-link{display:flex;align-items:center;gap:16px;margin-top:30px;color:#5b6670;font-size:14px;font-weight:500}.practice-promo .promo-hook-link svg{width:94px;height:26px;fill:none;stroke:#4f93b3;stroke-width:1.5}.practice-promo .promo-scene-heading{display:flex;align-items:center;gap:11px;margin-bottom:20px}.practice-promo .promo-scene-index{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;margin-right:7px;border:1px solid #cddce5;border-radius:50%;color:#5f8296;font-size:10px;font-weight:500;letter-spacing:0}.practice-promo .promo-scene-heading .promo-scene-index{margin-right:0}.practice-promo .promo-scene-heading .promo-eyebrow{font-size:10px;margin-bottom:5px}.practice-promo .promo-scene-heading h2{font-size:clamp(17px,3.3cqw,25px);letter-spacing:-.8px;font-weight:650}.practice-promo .promo-demo-surface{padding:16px 10px 10px;border-radius:18px;background:#ffffffd9;border:1px solid #e8eef2;box-shadow:0 12px 26px -20px #37658d55}.practice-promo .promo-diagram{display:block;width:100%;height:auto;overflow:visible;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}.practice-promo .promo-english text{fill:#9a9fa6;transition:fill .2s ease}.practice-promo .promo-chinese text{fill:#858e96;transition:fill .2s ease}.practice-promo .promo-links path{stroke:#dbe5ec;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:var(--promo-line-progress, 0);transition:stroke .2s ease}.practice-promo .promo-links path.is-active{stroke:#277ed0;stroke-width:2.6}.practice-promo .promo-english text.is-active,.practice-promo .promo-chinese text.is-active{fill:#216fae}.practice-promo[data-group=you] .promo-links path.is-active{stroke:#16866c}.practice-promo[data-group=you] .promo-english text.is-active,.practice-promo[data-group=you] .promo-chinese text.is-active{fill:#16866c}.practice-promo .promo-demo-input{display:flex;align-items:center;height:46px;margin-top:8px;padding:0 12px;border:1px solid #c7dbeb;border-radius:10px;box-shadow:0 0 0 3px #eaf3fc88}.practice-promo .promo-input-label{margin-right:15px;color:#84909d;font-size:9px;white-space:nowrap}.practice-promo .promo-input-value{white-space:pre;font-size:clamp(17px,3.7cqw,25px);font-weight:500;letter-spacing:-.5px}.practice-promo .promo-caret{flex:0 0 1.5px;height:24px;margin-left:2px;border-radius:2px;background:#3a85d0}.practice-promo .promo-keycap{margin-left:auto;color:#8da1af;border:1px solid #e2e9ed;padding:2px 6px;border-radius:5px;font-size:12px}.practice-promo .promo-group-note{margin-top:13px;color:#688296;font-size:10px;line-height:1.5;text-align:center}.practice-promo .promo-mnemonic{text-align:center;align-items:center}.practice-promo .promo-mnemonic .promo-eyebrow{display:flex;align-items:center}.practice-promo .promo-memory-word{margin-top:12px;font-size:clamp(53px,12cqw,86px);line-height:1.1;font-weight:720;letter-spacing:-4px}.practice-promo .promo-memory-dot{color:#239684}.practice-promo .promo-memory-meaning{margin-top:3px;color:#6c757c;font-size:17px;font-weight:500;letter-spacing:7px;padding-left:7px}.practice-promo .promo-memory-clue{margin-top:23px;display:flex;align-items:center;gap:20px;padding:13px 22px;background:#fffaf0;border:1px solid #ead9b0;border-radius:14px;box-shadow:0 9px 30px -20px #a36a1266}.practice-promo .promo-memory-clue span{color:#9e803f;font-size:10px}.practice-promo .promo-memory-clue strong{color:#8c6426;font-size:25px;letter-spacing:3px;font-weight:550}.practice-promo .promo-memory-clue svg{width:26px;height:22px;stroke:#bd954f;fill:none;stroke-width:2;stroke-linecap:round}.practice-promo .promo-memory-note{margin-top:15px;color:#7b8289;font-size:10px}.practice-promo .promo-finish{align-items:center;text-align:center}.practice-promo .promo-finish-title{margin-top:17px;font-size:clamp(33px,7.7cqw,56px);line-height:1.2;font-weight:750;letter-spacing:-2px}.practice-promo .promo-feature-list{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:25px}.practice-promo .promo-feature-list span{padding:7px 12px;border:1px solid #e0e8ed;border-radius:99px;background:#ffffff90;color:#5b7380;font-size:10px;white-space:nowrap}.practice-promo .promo-finish-note{margin-top:17px;color:#7b858d;font-size:11px}@container (max-width: 420px){.practice-promo{border-radius:21px}.practice-promo .promo-view{min-height:300px}.practice-promo .promo-scene{padding:22px 18px}.practice-promo .promo-scene-heading{margin-bottom:15px;gap:8px}.practice-promo .promo-scene-index{width:24px;height:24px}.practice-promo .promo-demo-surface{padding:12px 5px 8px;border-radius:12px}.practice-promo .promo-demo-input{height:40px;padding:0 8px}.practice-promo .promo-input-label{margin-right:10px;font-size:8px}.practice-promo .promo-group-note{margin-top:11px;font-size:8px}.practice-promo .promo-memory-clue{padding:10px 16px;gap:14px;margin-top:18px}.practice-promo .promo-memory-clue strong{font-size:23px}.practice-promo .promo-headline{letter-spacing:-1.3px}.practice-promo .promo-feature-list{gap:5px;margin-top:21px}.practice-promo .promo-feature-list span{padding:6px 9px;font-size:9px}}@media(prefers-reduced-motion:reduce){.practice-promo .promo-scene{transition:none;transform:none;filter:none}.practice-promo .promo-light{transform:none}.practice-promo .promo-links path,.practice-promo .promo-english text,.practice-promo .promo-chinese text{transition:none}}.main,.prompt,.alignment-scroll{min-width:0}.alignment-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.alignment-stage{display:grid;gap:10px;position:relative}.alignment-stage.has-alignment{width:max-content;min-width:100%;padding:6px 8px;row-gap:88px}.has-alignment .word,.has-alignment .meaning{white-space:pre;overflow-wrap:normal}.alignment-token{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;padding:3px 1px;margin:0;border:0;border-bottom:2px solid transparent;border-radius:4px;background:transparent;cursor:pointer}.alignment-token:focus-visible,.alignment-scroll:focus-visible{outline:2px solid var(--blue, #2667a8);outline-offset:3px}.alignment-zh{display:inline-block;padding:2px 0;border-bottom:2px solid transparent;border-radius:3px}.alignment-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.alignment-path{fill:none;stroke:var(--link-color);stroke-width:1.6;opacity:.65}.has-highlight .alignment-path:not(.is-highlighted){opacity:.13}.has-highlight .alignment-token:not(.is-highlighted){opacity:.5}.alignment-path.is-highlighted{opacity:1;stroke-width:2.3}.alignment-token.is-highlighted,.alignment-zh.is-highlighted{color:var(--link-color);border-bottom-color:var(--link-color);background:#edf3f8}.alignment-note{margin:0;color:var(--muted, #62665f);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.alignment-arrows[hidden],.alignment-note[hidden]{display:none}@media(max-width:860px){.has-alignment .word.sentence{font-size:26px}.has-alignment .word.sentence.long{font-size:24px}.alignment-stage.has-alignment{row-gap:76px}}.cet4-writing{min-width:0;margin:0 0 20px}.cet4-writing [hidden],.cet4-writing[hidden]{display:none!important}.cet4-position{margin:0 0 10px;color:#53645c;font-size:13px;line-height:1.7}.cet4-preview{border:1px solid #dce5dc;border-radius:14px;background:#f7faf6;overflow:hidden}.cet4-preview>summary{cursor:pointer;padding:12px 16px;font-weight:650;color:#315c49}.cet4-preview>summary:focus-visible{outline:3px solid #4d826a;outline-offset:-4px;border-radius:12px}.cet4-body{padding:0 18px 18px;overflow-wrap:anywhere;line-height:1.85;font-size:15px}.cet4-body h3{font-size:20px;margin:8px 0;line-height:1.4}.cet4-body h4{font-size:14px;margin:18px 0 6px;color:#315c49}.cet4-source,.cet4-unavailable{color:#68766b;font-size:13px}.cet4-prompt{white-space:pre-line}.cet4-outline{margin:6px 0;padding-left:22px}.cet4-paragraph{margin:14px 0 0}.cet4-english{margin:8px 0;color:#242b28}.cet4-chinese{margin:6px 0 16px;color:#667169}.cet4-sentence.is-current{background:#deedcf;color:#223b2c;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}@media(max-width:600px){.cet4-body{padding:0 12px 12px;font-size:14px}.cet4-body h3{font-size:18px}}.app.practice-layout,.app-shell.practice-layout{position:relative;width:var(--practice-layout-width, calc(100% - 32px) );max-width:calc(100% - 20px);margin-inline:auto}.practice-layout .workbench,.practice-layout .practice-grid{grid-template-columns:minmax(0,1fr) 12px var(--practice-side-width, 300px)}.practice-layout :is(.main,.practice-main,.side,.practice-side,.control,.field,.toggle,.toggle-group,.actions,.practice-actions,.speech-options,.stats,select){min-width:0}.practice-layout :is(.side,.practice-side){border-left:0;overflow-wrap:anywhere}.practice-layout :is(.toggle-group,.actions,.practice-actions){flex-wrap:wrap}.practice-layout .progress-meta{flex-wrap:wrap}.layout-tools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px;color:var(--muted, #62665f);font-size:12px}.layout-tools button{padding:6px 10px;border:1px solid var(--line, #d9d7ce);border-radius:6px;color:var(--ink, #202124);background:var(--panel, white);cursor:pointer;font:inherit}.layout-edge,.layout-divider{padding:0;border:0;cursor:col-resize;touch-action:none;user-select:none;-webkit-user-select:none}.layout-edge{position:absolute;z-index:2;top:24px;bottom:36px;width:14px;border-radius:6px;background:transparent}.layout-edge-left{left:-14px}.layout-edge-right{right:-14px}.layout-edge:after{content:"";display:block;position:sticky;top:calc(50vh - 32px);margin-left:5px;width:4px;height:64px;border-radius:4px;background:var(--line-strong, #bbb8ad)}.layout-divider{position:relative;align-self:stretch;background:#f3f2ec;border-inline:1px solid var(--line, #d9d7ce)}.layout-divider:after{content:"";display:block;position:sticky;top:calc(50vh - 24px);margin-left:3px;width:4px;height:48px;border-radius:4px;background:var(--line-strong, #bbb8ad)}.layout-edge:hover,.layout-divider:hover{background:var(--green-soft, #e4f4eb)}.layout-edge:focus-visible,.layout-divider:focus-visible,.layout-tools button:focus-visible{outline:2px solid var(--blue, #2667a8);outline-offset:-2px}.practice-layout-dragging,.practice-layout-dragging *{cursor:col-resize!important;user-select:none!important;-webkit-user-select:none!important}.practice-layout.layout-compact :is(.controls,.practice-controls){grid-template-columns:repeat(2,minmax(0,1fr))}.practice-layout.layout-stacked :is(.workbench,.practice-grid){grid-template-columns:minmax(0,1fr)}.practice-layout.layout-stacked :is(.side,.practice-side){border-top:1px solid var(--line, #d9d7ce)}.practice-layout.layout-stacked :is(.topbar,.page-title,.app-header){flex-direction:column;align-items:stretch}.practice-layout.layout-stacked .header-actions{justify-content:space-between}.practice-layout.layout-stacked .user-chip{border-left:0;margin-left:0;padding-left:0}.practice-layout.layout-stacked .speech-options{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.practice-layout.layout-small :is(.controls,.practice-controls,.speech-options){grid-template-columns:minmax(0,1fr)}.practice-layout.layout-small .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-layout.layout-small :is(.main,.practice-main){padding:20px}.practice-layout.layout-small :is(.actions,.practice-actions) .btn{flex:1}.practice-layout:not(.layout-desktop) .layout-edge,.practice-layout.layout-stacked .layout-divider,.practice-layout [data-layout-handle][hidden]{display:none}@media(max-width:920px){.practice-layout [data-layout-handle]{display:none}.practice-layout :is(.workbench,.practice-grid){grid-template-columns:minmax(0,1fr)}.practice-layout :is(.side,.practice-side){border-top:1px solid var(--line, #d9d7ce)}.layout-tools{justify-content:flex-start}.layout-tools span{display:none}}
