.logo-badge-bg{fill:var(--accent);rx:24px}.logo-badge-glyph{fill:var(--ink);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-size:58px;font-weight:900}.lesson-practice{width:min(100%,920px);min-width:0}.lesson-practice>.card-aid-bar{align-items:center;gap:14px;margin-top:14px;display:flex}.pinyin-toggle,.tone-guide-inline-toggle{height:29px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:10px;display:inline-flex}.pinyin-toggle:hover,.tone-guide-inline-toggle:hover{color:var(--paper)}.pinyin-toggle.on,.tone-guide-inline-toggle.on{color:var(--accent-pale)}.switch-track{background:var(--surface-up);border:1px solid var(--hair-strong);border-radius:999px;flex:none;width:34px;height:18px;transition:background .18s,border-color .18s;position:relative}.switch-thumb{background:var(--paper-faint);border-radius:50%;width:12px;height:12px;transition:transform .18s,background .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.on>.switch-track{background:rgba(var(--accent-rgb), .22);border-color:rgba(var(--accent-rgb), .55)}.on>.switch-track>.switch-thumb{background:var(--accent);box-shadow:0 0 6px rgba(var(--accent-rgb), .72);transform:translateY(-50%)translate(16px)}@media (prefers-reduced-motion:reduce){.switch-track,.switch-thumb{transition:none}}.slab{text-align:center;background:linear-gradient(180deg, rgba(var(--accent-rgb), .09), rgba(var(--accent-rgb), .015) 60%), var(--surface);border:1px solid var(--hair);border-top-color:rgba(var(--accent-rgb), .42);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;gap:14px;min-height:220px;padding:46px 34px;display:flex;position:relative}.review-card>.card-chrome{z-index:45;justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute;top:16px;left:18px;right:18px}.review-card{padding-top:64px}.card-chrome-right{min-width:0;font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:10px;font-size:11px;display:flex}.card-audio-btn{cursor:pointer;width:34px;height:34px;color:var(--paper-dim);background:var(--surface);border:1px solid var(--hair-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s,background .18s;display:flex}.card-audio-btn:hover{color:var(--accent-pale);border-color:rgba(var(--accent-rgb), .5);background:var(--surface-up)}.card-audio-btn-replay{width:auto;min-width:108px;height:44px;color:var(--paper);font-family:var(--display);border-radius:8px;gap:8px;padding:0 16px;font-size:14px;font-weight:600}.card-audio-btn-replay svg{width:19px;height:19px}.review-card-meta{min-width:0;font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:10px;font-size:11px;display:flex}.review-card-hsk{color:var(--level-color,var(--accent-pale));border:1px solid color-mix(in srgb, var(--level-color,var(--accent)) 55%, transparent);background:color-mix(in srgb, var(--level-color,var(--accent)) 14%, transparent);border-radius:999px;flex:none;padding:3px 10px}.review-card-topic{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--paper-dim);overflow:hidden}.review-card-topic:before{content:"· ";color:var(--paper-faint)}.review-card>.card-foot{border-top:1px solid var(--hair);margin:4px clamp(16px,6%,48px) 0;padding-top:22px}.reveal-act{cursor:pointer;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);background:var(--surface);border:1px solid var(--hair-strong);border-radius:999px;align-items:center;gap:9px;padding:11px 24px;font-size:11px;transition:color .18s,border-color .18s,background .18s,box-shadow .18s;display:inline-flex}.reveal-act:hover{color:var(--accent-pale);border-color:rgba(var(--accent-rgb), .55);background:var(--surface-up);box-shadow:0 0 16px rgba(var(--accent-rgb), .14)}:is(.reveal-act,.listen-disc-caption,.freetalk-mic-caption) kbd{font-family:var(--mono);color:var(--paper-dim);border:1px solid var(--hair-strong);border-bottom-width:2px;border-radius:5px;margin-inline:2px;padding:2px 7px;font-size:11px}.reveal-touch{display:none}@media (pointer:coarse){.reveal-keys{display:none}.reveal-touch{display:inline}}.slab-han{font-family:var(--han);font-size:var(--hanzi-font-size,40px);letter-spacing:.04em;color:var(--paper);text-shadow:0 0 30px rgba(var(--accent-rgb), .22);line-height:1.4;position:relative}.slab-en{color:var(--paper-dim);font-size:16px}.english-sentence{justify-content:center;align-items:flex-start;gap:6px;display:inline-flex}.english-sentence-swap{border:1px solid var(--hair-strong);width:20px;height:20px;color:var(--paper-dim);cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;margin-top:.15em;font-size:12px;line-height:1;transition:color .15s,border-color .15s;display:flex}.english-sentence-swap:hover,.english-sentence-swap:focus-visible{color:var(--accent);border-color:var(--accent)}.card-answer{border-top:1px solid var(--hair-strong);flex-direction:column;align-items:center;gap:12px;width:min(100%,620px);margin:6px auto 0;padding-top:20px;transition:opacity .15s;display:flex}.card-answer-hidden{opacity:0;pointer-events:none}.pronunciation-stack{flex-direction:column;align-items:center;gap:0;width:min(100%,720px);margin:0 auto;display:flex}.pronunciation-stack .slab-han{line-height:1.18}.hz-word{isolation:isolate;display:inline-block;position:relative}@media (hover:none){.hz-word,.hz-char,.hz-char-glyph{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.hz-word:hover{z-index:100}.hz-word:has(.hz-char-active){z-index:100}.hz-word:has(>.hz-word-tip.is-open){z-index:100}.hz-word-tip{background-color:var(--ink-2);border:1px solid var(--hair-strong);font-family:var(--sans,inherit);letter-spacing:normal;color:var(--paper);white-space:nowrap;text-shadow:none;opacity:0;visibility:hidden;pointer-events:none;z-index:40;border-radius:5px;margin-bottom:10px;padding:5px 10px;font-size:13px;transition:opacity .12s;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0006}.hz-word:hover>.hz-word-tip{opacity:1;visibility:visible}.hz-word:has(.hz-char-active)>.hz-word-tip{opacity:0;visibility:hidden}.hz-word>.hz-word-tip.is-open{opacity:1;visibility:visible}.hz-word:has(.hz-char-active)>.hz-word-tip.is-open{opacity:0;visibility:hidden}@media (hover:none),(pointer:coarse){.hz-word:hover>.hz-word-tip:not(.is-open){opacity:0;visibility:hidden}}.hz-word-tip-pos{color:var(--paper-dim);font-style:italic}.hz-word-tip-hsk{font-family:var(--mono);font-size:11px;font-weight:600}.hz-word-flagged .hz-char-glyph{text-decoration:underline;-webkit-text-decoration-color:var(--alarm-text);text-decoration-color:var(--alarm-text);text-underline-offset:6px;text-decoration-style:dotted;text-decoration-thickness:2px}.hz-word-tip-flag{border-left:1px solid var(--alarm-text);color:var(--paper)}.hz-char{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;display:inline-block;position:relative}.hz-char-pinned{vertical-align:top;flex-direction:column;align-items:center;margin-bottom:20px;display:inline-flex}.hz-word:hover .hz-char{color:var(--accent-pale)}.hz-word:hover .hz-char:hover{color:color-mix(in srgb, var(--accent-pale) 72%, var(--paper) 28%)}.hz-char-active,.hz-char-speaking{color:var(--accent)}.hz-char-speaking .hz-char-glyph{text-shadow:0 0 24px rgba(var(--accent-rgb), .8);transform:translateY(-2px)scale(1.08)}.hz-char-speaking>.hz-pinyin-tip{color:var(--accent)}.hz-char-glyph{transform-style:preserve-3d;transform-origin:50%;backface-visibility:hidden;will-change:transform;transition:transform .15s,text-shadow .15s;display:inline-block}.hz-word:hover .hz-char-glyph{text-decoration:underline;-webkit-text-decoration-color:var(--hsk-color,var(--accent-pale));text-decoration-color:var(--hsk-color,var(--accent-pale));text-underline-offset:6px;text-decoration-thickness:2px}.hz-word-selected .hz-char{color:var(--accent-pale)}.hz-word-selected .hz-char-glyph{text-decoration:underline;-webkit-text-decoration-color:var(--hsk-color,var(--accent-pale));text-decoration-color:var(--hsk-color,var(--accent-pale));text-underline-offset:6px;text-decoration-thickness:2px}.hz-char-holo{transform:perspective(360px) translateZ(20px) rotateX(calc(var(--my,0) * -22deg)) rotateY(calc(var(--mx,0) * 22deg)) scale(1.22);text-shadow:0 10px 16px #00000073}.hz-pinyin-tip{font-family:var(--mono);letter-spacing:.02em;color:var(--accent-pale);text-shadow:none;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:50;margin-top:8px;font-size:14px;transition:opacity .12s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.hz-pinyin-pinned{opacity:1;visibility:visible;margin-top:3px;position:static;transform:none}.slab-han .hz-pinyin-pinned{font-size:calc(var(--hanzi-font-size,40px) * .275)}.hz-char>.hz-pinyin-pinned.hz-pinyin-hidden{opacity:0}.hz-char-tip{background-color:var(--ink-2);border:1px solid var(--hair-strong);white-space:nowrap;text-shadow:none;z-index:60;border-radius:5px;flex-direction:column;align-items:center;gap:3px;margin-bottom:10px;padding:6px 11px;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #00000073}.hz-char-tip-word{font-family:var(--sans,inherit);letter-spacing:normal;color:var(--paper-dim);font-size:11px}.hz-char-tip-meaning{font-family:var(--sans,inherit);letter-spacing:normal;color:var(--paper);font-size:14px;font-weight:600}.freetalk-page .hz-word-marked .hz-char-glyph{color:var(--tone-2)}.slab-han.has-tone-guide .hz-char{margin-bottom:88px}.tone-guide{pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:normal;position:absolute;inset:0}.tone-guide svg{position:absolute;left:0;overflow:visible}.tone-guide-grid{stroke:var(--hair);stroke-width:1px;opacity:.28;vector-effect:non-scaling-stroke}.tone-guide-curve{fill:none;stroke:var(--accent-pale);stroke-width:2.8px;stroke-linecap:round;stroke-linejoin:round;opacity:.75;vector-effect:non-scaling-stroke;transition:opacity .12s,stroke .12s,stroke-width .12s}.tone-guide-syllable.active .tone-guide-curve{stroke:var(--accent);stroke-width:2.75px;opacity:1}.tone-guide-label,.tone-guide-number{font-family:var(--mono);text-anchor:middle;fill:var(--paper-dim)}.tone-guide-label{font-size:9px}.tone-guide-number{letter-spacing:.05em;text-transform:uppercase;fill:var(--paper-faint);font-size:8px}.tone-guide-syllable.active .tone-guide-label{fill:var(--paper)}.tone-guide-syllable.changed .tone-guide-number{fill:var(--gold)}.tone-guide-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(var(--accent-rgb), .85))}@media (prefers-reduced-motion:reduce){.tone-guide-dot{display:none}.tone-guide-curve{transition:none}}.review-practice .tone-guide-grid,.review-practice .tone-guide-syllable:not(.changed) .tone-guide-number{display:none}.review-practice .tone-guide-curve{stroke:var(--paper-faint);stroke-width:4.5px;opacity:.9}.review-practice .tone-guide-tone-1 .tone-guide-curve{stroke:var(--tone-1)}.review-practice .tone-guide-tone-2 .tone-guide-curve{stroke:var(--tone-2)}.review-practice .tone-guide-tone-3 .tone-guide-curve{stroke:var(--tone-3)}.review-practice .tone-guide-tone-4 .tone-guide-curve{stroke:var(--tone-4)}.review-practice .tone-guide-syllable.active .tone-guide-curve{stroke-width:5.5px;opacity:1}.review-practice .hz-pinyin-tip,.review-practice .slab-han .hz-pinyin-pinned{font-family:var(--mono);letter-spacing:.02em;color:var(--paper-dim);font-weight:400}.acts{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}.acts button,.btn,button.key-act{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);color:var(--paper-dim);border:1px solid var(--hair-strong);padding:11px 20px;font-size:11px;transition:color .18s,border-color .18s,background .18s,box-shadow .18s}.acts button.q1,.acts button.q2,.acts button.q3,.acts button.q4{flex-direction:column;align-items:center;gap:5px;display:flex}.grade-interval{letter-spacing:.1em;opacity:.62;text-transform:none;font-size:9px}.acts.grade-acts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.acts.grade-acts>button{padding:14px 8px}.lesson-practice.review-practice{width:min(100%,1100px);margin-inline:auto}.review-practice .review-card{background:var(--sheet);min-height:max(440px,100dvh - 330px);box-shadow:inset 0 1px 0 var(--sheet-edge), inset 0 0 0 1px var(--sheet-edge), var(--sheet-shadow);border:none;border-radius:14px;grid-template-columns:minmax(0,1fr);grid-template-areas:"editor""prompt""answer";align-content:center;justify-items:center;gap:0;padding-top:88px;padding-bottom:44px;display:grid}.review-practice .review-card>.pronunciation-stack,.review-practice .review-card>.slab-prompt{grid-area:prompt}.review-practice .review-card>.card-answer,.review-practice .review-card>.card-foot{grid-area:answer}.review-practice .review-card>.card-answer{margin-top:10px}.review-practice .pronunciation-stack,.review-practice .card-answer{width:100%}.review-practice .review-card:before{content:"";border-radius:inherit;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.review-practice .review-card>.card-chrome{top:20px;left:26px;right:22px}.review-card-badge{flex:none;width:30px;height:30px}.review-practice .review-card-meta{gap:12px}.review-practice .review-card-topic{font-family:var(--display);letter-spacing:0;color:var(--paper-dim);font-size:15px;font-weight:500}.review-practice .review-card-topic:before{content:none}.review-practice .review-card-hsk{font-family:var(--display);letter-spacing:0;color:var(--paper-faint);background:0 0;border:none;padding:0;font-size:15px}.review-practice .card-audio-btn:not(.card-audio-btn-replay){background:0 0;border-color:#0000}.review-practice .card-audio-btn:not(.card-audio-btn-replay):hover{background:var(--surface-up);border-color:#0000}.review-practice .slab-han{text-shadow:none;font-weight:600}.review-practice .review-card .slab-en{font-family:var(--display);letter-spacing:-.01em;font-weight:500;font-size:calc(var(--hanzi-font-size,40px) * .4);color:var(--paper);line-height:1.25}.review-practice .card-answer{border-top:none;gap:18px;padding-top:0}.review-practice .card-answer:before{content:"";background:var(--paper);opacity:.22;flex:none;width:min(360px,60%);height:18px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 18' preserveAspectRatio='none'%3E%3Cpath d='M2 10 C40 6 90 5 140 7 C190 9 240 8 278 9 C240 12 190 13 140 12 C90 11 40 12 2 10 Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 18' preserveAspectRatio='none'%3E%3Cpath d='M2 10 C40 6 90 5 140 7 C190 9 240 8 278 9 C240 12 190 13 140 12 C90 11 40 12 2 10 Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}.review-practice .review-card>.card-foot{border-top:none;align-self:center;margin:0;padding:0}.review-practice .reveal-act{font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--paper-faint);background:0 0;border-color:#0000;gap:8px;padding:10px 18px;font-size:14px}.review-practice .reveal-act:hover{color:var(--paper);background:var(--surface-up);box-shadow:none;border-color:#0000}.review-practice .acts.grade-acts{gap:10px;margin-top:18px}.review-practice .acts.grade-acts>button:is(.q1,.q2,.q3,.q4){text-align:left;font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--paper);background:var(--sheet);box-shadow:inset 0 0 0 1px var(--sheet-edge), var(--sheet-lift);border:none;border-radius:10px;grid-template-columns:auto 1fr auto;grid-template-areas:"dot label key""dot interval key";align-items:center;gap:1px 12px;padding:16px 18px;font-size:16px;font-weight:500;display:grid}.review-practice .acts.grade-acts>button:disabled{opacity:.45;cursor:not-allowed}.review-practice .acts.grade-acts>button:is(.q1,.q2,.q3,.q4):hover:not(:disabled){color:var(--paper);background:color-mix(in srgb, var(--sheet) 90%, var(--paper) 10%)}.review-practice .acts.grade-acts>button:is(.q1,.q2,.q3,.q4):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.review-practice .acts.grade-acts>button.q3{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--grade) 55%, transparent), var(--sheet-lift)}.review-practice .grade-acts .q1{--grade:var(--tone-4)}.review-practice .grade-acts .q2{--grade:var(--tone-1)}.review-practice .grade-acts .q3{--grade:var(--tone-2)}.review-practice .grade-acts .q4{--grade:var(--tone-3)}.review-practice .grade-dot{background:var(--grade);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--grade) 18%, transparent);border-radius:50%;grid-area:dot}.review-practice .grade-acts .grade-label{grid-area:label;line-height:1.25}.review-practice .grade-acts .grade-interval{font-family:var(--mono);letter-spacing:0;white-space:nowrap;color:var(--paper-dim);opacity:1;font-variant-numeric:tabular-nums;grid-area:interval;font-size:12px}.review-practice .grade-key{text-align:center;min-width:22px;font-family:var(--mono);color:var(--paper-faint);border:1px solid var(--hair-strong);border-bottom-width:2px;border-radius:5px;grid-area:key;padding:1px 6px;font-size:11px}@media (width<=600px){.review-practice .review-card>.card-chrome{flex-wrap:nowrap;top:14px;left:16px;right:12px}.review-practice .review-card-topic{font-size:15px}.review-practice .slab-han{font-size:var(--hanzi-font-size,40px)}.review-practice .review-card{min-height:max(360px,100dvh - 330px);padding:72px 16px 30px}.review-practice .pronunciation-stack{margin-top:0}.review-practice .review-card .slab-en{font-size:min(calc(var(--hanzi-font-size,40px) * .42), 7vw)}.review-practice .acts.grade-acts{gap:8px}.review-practice .acts.grade-acts>button:is(.q1,.q2,.q3,.q4){text-align:center;grid-template-columns:1fr;grid-template-areas:"dot""label""interval";justify-items:center;row-gap:4px;padding:10px 4px;font-size:14px}.review-practice .grade-dot{width:18px;height:3px;box-shadow:none;border-radius:2px}.review-practice .grade-key{display:none}}
