.typing-catalog-page,.typing-lesson-page,.typing-choice-page,.typing-session-page{--typing-brand:var(--himi-red,#ff4c3b);--typing-brand-strong:color-mix(in srgb, var(--typing-brand) 86%, #222);--typing-brand-soft:var(--himi-red-soft,#fff0ee);--typing-brand-wash:color-mix(in srgb, var(--typing-brand) 5%, #fff);--typing-ink:var(--himi-black,#222);--typing-muted:var(--himi-muted,#625b58);--typing-line:var(--himi-line,#e8e1de);--typing-surface:var(--himi-white,#fff)}.typing-catalog-page,.typing-lesson-page,.typing-choice-page{width:min(1180px,100% - 40px);margin:0 auto;padding:26px 0 68px}.typing-catalog-page,.typing-lesson-page{width:min(1480px,100% - 40px)}.typing-catalog-banner{margin-bottom:0}.typing-catalog-section{margin-top:clamp(34px,5vw,62px)}.typing-lesson-list-section{padding:0}.typing-section-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px;display:flex}.typing-section-heading>div>span{color:var(--typing-brand);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:7px;font-size:.78rem;font-weight:800;display:inline-flex}.typing-section-heading h2,.typing-lesson-hero h1,.typing-choice-hero h1{color:var(--typing-ink);letter-spacing:-.045em;margin:8px 0 0;font-size:clamp(1.75rem,3vw,2.65rem)}.typing-section-heading>p{max-width:480px;color:var(--typing-muted);margin:0;font-size:.875rem;line-height:1.65}.typing-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.typing-level-card,.typing-lesson-card,.typing-choice-card{border:1px solid var(--typing-line);background:var(--typing-surface);border-radius:22px;position:relative;overflow:hidden}.typing-level-card{--typing-card-ease:cubic-bezier(.16, 1, .3, 1);transform-origin:50%;min-width:0;min-height:350px;transition:border-color .32s ease-out, background-color .32s ease-out, box-shadow .44s var(--typing-card-ease), transform .44s var(--typing-card-ease);background:#fffffff2;border-radius:26px;flex-direction:column;padding:24px;display:flex;box-shadow:0 15px 40px #3f2b240e}.typing-level-card.is-level-1,.typing-level-card.is-level-2,.typing-level-card.is-level-3,.typing-level-card.is-level-4,.typing-level-card.is-level-5,.typing-level-card.is-level-6{border-color:var(--typing-line)}@media (hover:hover){.typing-level-card{will-change:transform, box-shadow}.typing-level-card:hover{border-color:color-mix(in srgb, var(--typing-brand) 38%, transparent);background-color:#fff;transform:translateY(-4px)scale(1.006);box-shadow:0 12px 24px #392e2b12,0 26px 58px #392e2b1a}.typing-level-card:hover .typing-hanzi-preview span{box-shadow:0 7px 16px color-mix(in srgb, var(--typing-brand) 9%, transparent);transform:translateY(-1px)scale(1.015)}}.typing-level-card-topline,.typing-level-card-footer,.typing-lesson-card-topline,.typing-lesson-card-footer,.typing-lesson-counts{justify-content:space-between;align-items:center;gap:12px;display:flex}.typing-level-card-topline>strong{background:var(--typing-brand);color:#fff;border-radius:999px;padding:7px 11px;font-size:.72rem;font-weight:830}.typing-lesson-card-topline>strong{background:var(--typing-brand);color:#fff;text-transform:uppercase;border-radius:999px;padding:7px 11px;font-size:.72rem;font-weight:830}.typing-level-card-topline>span,.typing-level-card-footer>span,.typing-lesson-card-topline>span,.typing-lesson-card-footer>span,.typing-lesson-counts>span{color:var(--typing-muted);align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.typing-hanzi-preview{gap:8px;margin:22px 0 0;display:flex}.typing-hanzi-preview span,.typing-lesson-character-strip span,.typing-lesson-preview span{border:1px solid var(--typing-line);background:var(--typing-brand-wash);color:var(--typing-ink);place-items:center;display:grid;box-shadow:0 5px 12px #3f2b240d}.typing-hanzi-preview span{white-space:nowrap;width:auto;min-width:49px;height:49px;transition:background-color .3s ease-out, box-shadow .4s var(--typing-card-ease), transform .4s var(--typing-card-ease);border:0;border-radius:15px;padding:0 8px;font-size:1.625rem;font-weight:650}.typing-level-card h3{color:var(--typing-ink);letter-spacing:-.025em;margin:20px 0 0;font-size:1.3125rem}.typing-level-card>p{color:var(--typing-muted);flex:1;margin:10px 0 0;font-size:.8125rem;line-height:1.62}.typing-level-card-footer{border-top:1px solid var(--typing-line);margin-top:22px;padding-top:17px}.typing-level-card-footer a,.typing-lesson-card-footer a,.typing-choice-card>a,.typing-complete-actions a{background:var(--typing-brand);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:7px;font-size:.84rem;font-weight:800;text-decoration:none;transition:transform .18s,background .18s;display:inline-flex}.typing-level-card-footer a,.typing-lesson-card-footer a{min-height:42px;padding:0 15px}.typing-level-card-footer a:hover,.typing-lesson-card-footer a:hover,.typing-choice-card>a:hover,.typing-complete-actions a:hover{background:var(--typing-brand-strong);transform:translateY(-1px)}.typing-breadcrumbs{min-height:36px;color:var(--typing-muted);align-items:center;gap:9px;margin-bottom:16px;font-size:.86rem;display:flex}.typing-breadcrumbs a{color:var(--typing-ink);align-items:center;gap:6px;font-weight:700;text-decoration:none;display:inline-flex}.typing-breadcrumbs strong{color:var(--typing-brand)}.typing-lesson-hero,.typing-choice-hero{border:1px solid color-mix(in srgb, var(--typing-brand) 22%, var(--typing-line));background:var(--typing-brand-wash);border-radius:26px;justify-content:space-between;align-items:center;gap:28px;margin-bottom:22px;padding:30px;display:flex}.typing-lesson-hero>div:first-child>span,.typing-choice-hero>div:first-child>span{color:var(--typing-brand);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;font-weight:850}.typing-lesson-hero p,.typing-choice-hero p{max-width:650px;color:var(--typing-muted);margin:11px 0 0;line-height:1.6}.typing-lesson-character-strip{flex:none;grid-template-columns:repeat(3,48px);gap:8px;display:grid}.typing-lesson-character-strip span{border-radius:12px;width:48px;height:48px;font-size:1.38rem}.typing-lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.typing-lesson-card{--typing-card-ease:cubic-bezier(.16, 1, .3, 1);transform-origin:50%;min-width:0;min-height:350px;transition:border-color .32s ease-out, background-color .32s ease-out, box-shadow .44s var(--typing-card-ease), transform .44s var(--typing-card-ease);background:#fffffff2;border-radius:26px;flex-direction:column;padding:24px;display:flex;box-shadow:0 15px 40px #3f2b240e}@media (hover:hover){.typing-lesson-card{will-change:transform, box-shadow}.typing-lesson-card:hover{border-color:color-mix(in srgb, var(--typing-brand) 38%, transparent);background-color:#fff;transform:translateY(-4px)scale(1.006);box-shadow:0 12px 24px #392e2b12,0 26px 58px #392e2b1a}.typing-lesson-card:hover .typing-lesson-preview span{box-shadow:0 7px 16px color-mix(in srgb, var(--typing-brand) 9%, transparent);transform:translateY(-1px)scale(1.015)}}.typing-lesson-card h2{color:var(--typing-ink);letter-spacing:-.025em;margin:20px 0 0;font-size:1.3125rem;line-height:1.35}.typing-lesson-preview{gap:8px;min-height:49px;margin:22px 0 0;display:flex;overflow:hidden}.typing-lesson-preview span{white-space:nowrap;width:auto;min-width:49px;height:49px;transition:background-color .3s ease-out, box-shadow .4s var(--typing-card-ease), transform .4s var(--typing-card-ease);border:0;border-radius:15px;flex:none;padding:0 8px;font-size:1.625rem;font-weight:650}.typing-lesson-card-description{color:var(--typing-muted);flex:1;gap:5px;margin:10px 0 0;font-size:.8125rem;line-height:1.62;display:grid}.typing-lesson-card-description strong{color:var(--typing-ink);font-size:.9rem;font-weight:650}.typing-lesson-card-footer{border-top:1px solid var(--typing-line);margin-top:22px;padding-top:17px}.typing-choice-page{max-width:1040px}.typing-choice-audio-note{border:1px solid color-mix(in srgb, var(--typing-brand) 25%, var(--typing-line));background:var(--typing-surface);color:var(--typing-brand);border-radius:17px;flex:none;align-items:center;gap:12px;padding:13px 16px;display:flex}.typing-choice-audio-note span{gap:2px;display:grid}.typing-choice-audio-note small{color:var(--typing-muted)}.typing-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.typing-choice-card{grid-template-columns:auto 1fr;gap:16px;min-height:300px;padding:26px;display:grid}.typing-choice-card.is-word{background:var(--typing-surface);border-color:color-mix(in srgb, var(--typing-brand) 18%, var(--typing-line))}.typing-choice-card.is-sentence{background:var(--typing-brand-wash);border-color:color-mix(in srgb, var(--typing-brand) 18%, var(--typing-line))}.typing-choice-icon{background:var(--typing-brand-soft);width:48px;height:48px;color:var(--typing-brand);border-radius:15px;place-items:center;display:grid;box-shadow:0 8px 22px #ff4c3b17}.typing-choice-card small{color:var(--typing-brand);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:850}.typing-choice-card h2{color:var(--typing-ink);margin:7px 0;font-size:1.35rem}.typing-choice-card p{color:var(--typing-muted);margin:0;line-height:1.6}.typing-choice-card>strong{color:var(--typing-ink);grid-column:1/-1;align-self:end;font-size:1.05rem}.typing-choice-card>a,.typing-choice-empty{grid-column:1/-1;min-height:44px}.typing-choice-empty{background:color-mix(in srgb, var(--typing-line) 55%, #fff);color:var(--typing-muted);border-radius:12px;place-items:center;font-weight:750;display:grid}.typing-choice-tip{border:1px solid var(--typing-line);background:var(--typing-surface);color:var(--typing-brand);border-radius:16px;align-items:center;gap:12px;margin-top:18px;padding:14px 17px;display:flex}.typing-choice-tip p{color:var(--typing-muted);margin:0;line-height:1.55}.typing-session-page{background:#fff9f7;min-height:100dvh;padding:24px 100px}:is(.learner-app-shell:has(.typing-session-page) .learn-rail,.learner-app-shell:has(.typing-session-page) .learn-topbar,.learner-app-shell:has(.typing-session-page) .learner-mobile-nav,.learner-app-shell:has(.typing-session-page) .route-transition-progress){display:none}.learner-app-shell:has(.typing-session-page) .learner-shell-content{min-height:100dvh;margin-left:0;padding:0;transition:none}.learner-app-shell:has(.typing-session-page) .learner-shell-content>main{min-height:100dvh}body:has(.typing-session-page) .himi-chatbot-widget{display:none}.typing-studio{width:100%;margin:0 auto;position:relative}.typing-session-header{grid-template-columns:40px minmax(120px,1fr) auto;align-items:center;gap:15px;display:grid}.typing-session-header>a{border:1px solid var(--typing-line);background:var(--typing-surface);width:34px;height:34px;color:var(--typing-muted);border-radius:10px;place-items:center;display:grid}.typing-session-progress{background:color-mix(in srgb, var(--typing-brand) 12%, var(--typing-line));border-radius:999px;height:8px;overflow:hidden}.typing-session-progress span{border-radius:inherit;background:var(--typing-brand);height:100%;transition:width .24s;display:block}.typing-mode-tabs{border:1px solid var(--typing-line);background:var(--typing-surface);border-radius:999px;padding:3px;display:flex}.typing-mode-tabs button{min-height:32px;color:var(--typing-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 15px;font-size:.78rem;font-weight:800}.typing-mode-tabs button.is-active{background:var(--typing-brand-soft);color:var(--typing-brand-strong)}.typing-session-titlebar{justify-content:space-between;align-items:flex-end;gap:20px;margin:17px 0 12px;display:flex}.typing-session-titlebar small{color:var(--typing-muted);font-size:.75rem;font-weight:750}.typing-session-titlebar h1{color:var(--typing-ink);margin:3px 0 0;font-size:clamp(1rem,2vw,1.25rem)}.typing-session-titlebar>strong{color:var(--typing-brand);font-size:.9rem}.typing-practice-grid{grid-template-columns:minmax(0,1fr) 250px;gap:12px;display:grid}.typing-question-card,.typing-memory-card{border:1px solid var(--typing-line);background:var(--typing-surface);border-radius:18px;min-height:440px;box-shadow:0 12px 38px #3f2b240f}.typing-question-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:44px 34px;display:flex;position:relative;overflow:hidden}.typing-question-kind{background:var(--typing-brand);color:#fff;border-radius:999px;align-items:center;min-height:27px;padding:0 11px;font-size:.72rem;font-weight:850;display:inline-flex}.typing-question-instruction{color:var(--typing-muted);margin:9px 0 5px;font-size:.78rem}.typing-question-card h2{max-width:760px;color:var(--typing-ink);letter-spacing:-.035em;margin:4px 0 18px;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.2}.typing-word-input input,.typing-segment-field input{border:2px solid color-mix(in srgb, var(--typing-brand) 54%, var(--typing-line));background:var(--typing-surface);color:var(--typing-ink);font:inherit;text-align:center;outline:none;font-weight:750;transition:border-color .16s,box-shadow .16s,color .16s}.typing-word-input{justify-items:center;gap:7px;width:min(360px,76vw);display:grid}.typing-word-input-control{width:100%;display:block;position:relative}.typing-word-input input{--typing-word-border:linear-gradient(135deg, #ff723b 0%, #ff8b31 100%);background:linear-gradient(var(--typing-surface), var(--typing-surface)) padding-box, var(--typing-word-border) border-box;border-color:#0000;border-radius:13px 13px 0 0;width:100%;height:64px;font-size:1.12rem}.typing-character-progress{background:var(--typing-brand-soft);border-radius:0;height:8px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.typing-character-progress>span{background:linear-gradient(90deg,#ff4f45 0%,#ff723b 58%,#ff8b31 100%);border-radius:0;height:100%;transition:width .18s;display:block}.typing-character-progress-count{display:none}.typing-word-input.is-wrong .typing-character-progress>span{background:#dc5b5b}.typing-word-input input:focus,.typing-segment-field input:focus{border-color:var(--typing-brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--typing-brand) 14%, transparent)}.typing-word-input.is-wrong input,.typing-segment-field.is-wrong input{color:#c73333;border-color:#dc5b5b;box-shadow:0 0 0 4px #dc5b5b1a}.typing-word-input input:focus{border-color:#0000}.typing-word-input.is-wrong input{--typing-word-border:linear-gradient(#dc5b5b, #dc5b5b);border-color:#0000}.typing-answer-stage{z-index:0;isolation:isolate;place-items:center;width:fit-content;max-width:100%;display:grid;position:relative}.typing-answer-stage>:not(.typing-answer-confetti){z-index:1;position:relative}.typing-answer-confetti{aspect-ratio:4/3;z-index:2;pointer-events:none;width:min(560px,100% + 210px);max-width:calc(100vw - 28px);animation:1.4s ease-out both typing-answer-confetti-pop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.typing-answer-confetti img{object-fit:contain}.typing-answer-confetti-particles{position:absolute;inset:0}.typing-answer-confetti-particles i{--confetti-x:0px;--confetti-y:0px;--confetti-rotation:180deg;--confetti-delay:0s;opacity:0;width:8px;height:13px;animation:typing-answer-particle-burst .82s cubic-bezier(.16, .84, .32, 1) var(--confetti-delay) both;background:#ff4f45;border-radius:2px;position:absolute;top:50%;left:50%}.typing-answer-confetti-particles i:nth-child(2n){border-radius:999px;width:5px;height:22px}.typing-answer-confetti-particles i:nth-child(3n){width:11px;height:8px}.typing-answer-confetti-particles i:first-child{--confetti-x:-128px;--confetti-y:-76px;--confetti-rotation:-145deg;background:#4b8df8}.typing-answer-confetti-particles i:nth-child(2){--confetti-x:-112px;--confetti-y:-24px;--confetti-rotation:210deg;--confetti-delay:35ms;background:#ffb51b}.typing-answer-confetti-particles i:nth-child(3){--confetti-x:-92px;--confetti-y:66px;--confetti-rotation:-230deg;--confetti-delay:80ms;background:#25c98b}.typing-answer-confetti-particles i:nth-child(4){--confetti-x:-55px;--confetti-y:-96px;--confetti-rotation:265deg;--confetti-delay:55ms;background:#e95ed0}.typing-answer-confetti-particles i:nth-child(5){--confetti-x:-28px;--confetti-y:82px;--confetti-rotation:-195deg;--confetti-delay:.12s;background:#ff7b37}.typing-answer-confetti-particles i:nth-child(6){--confetti-x:26px;--confetti-y:-102px;--confetti-rotation:225deg;--confetti-delay:25ms;background:#ffcf33}.typing-answer-confetti-particles i:nth-child(7){--confetti-x:54px;--confetti-y:84px;--confetti-rotation:-280deg;--confetti-delay:95ms;background:#4b8df8}.typing-answer-confetti-particles i:nth-child(8){--confetti-x:92px;--confetti-y:-72px;--confetti-rotation:250deg;--confetti-delay:65ms;background:#25c98b}.typing-answer-confetti-particles i:nth-child(9){--confetti-x:130px;--confetti-y:-16px;--confetti-rotation:-215deg;--confetti-delay:.105s;background:#ff4f45}.typing-answer-confetti-particles i:nth-child(10){--confetti-x:108px;--confetti-y:64px;--confetti-rotation:300deg;--confetti-delay:.145s;background:#ffb51b}.typing-answer-confetti-particles i:nth-child(11){--confetti-x:-136px;--confetti-y:20px;--confetti-rotation:-260deg;--confetti-delay:.135s;background:#e95ed0}.typing-answer-confetti-particles i:nth-child(12){--confetti-x:136px;--confetti-y:34px;--confetti-rotation:195deg;--confetti-delay:45ms;background:#4b8df8}.typing-answer-confetti-particles i:nth-child(13){--confetti-x:-76px;--confetti-y:-54px;--confetti-rotation:235deg;--confetti-delay:.175s;background:#ff7b37}.typing-answer-confetti-particles i:nth-child(14){--confetti-x:76px;--confetti-y:-42px;--confetti-rotation:-240deg;--confetti-delay:.155s;background:#e95ed0}.typing-answer-confetti-particles i:nth-child(15){--confetti-x:-46px;--confetti-y:48px;--confetti-rotation:205deg;--confetti-delay:.205s;background:#25c98b}.typing-answer-confetti-particles i:nth-child(16){--confetti-x:42px;--confetti-y:54px;--confetti-rotation:-185deg;--confetti-delay:.19s;background:#ff4f45}.typing-answer-confetti-particles i:nth-child(17){--confetti-x:-116px;--confetti-y:-52px;--confetti-rotation:290deg;--confetti-delay:.22s;background:#ffcf33}.typing-answer-confetti-particles i:nth-child(18){--confetti-x:116px;--confetti-y:-48px;--confetti-rotation:-275deg;--confetti-delay:.23s;background:#25c98b}@keyframes typing-answer-confetti-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.76)}10%,76%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.04)}}@keyframes typing-answer-particle-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.25)rotate(0)}14%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--confetti-x)), calc(-50% + var(--confetti-y))) scale(1) rotate(var(--confetti-rotation))}}.typing-word-answer,.typing-segment-answer{border:2px solid var(--typing-brand);background:var(--typing-brand-wash);box-shadow:0 8px 24px color-mix(in srgb, var(--typing-brand) 12%, transparent);place-items:center;display:grid}.typing-word-answer{width:fit-content;min-width:0;max-width:min(360px,76vw);height:64px;min-height:64px;box-shadow:none;background:#f7f7f7;border-color:#ff4f45;border-radius:13px 13px 0 0;gap:1px;padding:5px 20px 12px;position:relative;overflow:hidden}.typing-word-answer:after{content:"";background:#ff4f45;height:8px;position:absolute;bottom:-2px;left:-2px;right:-2px}.typing-word-answer strong{color:var(--typing-ink);font-size:1.65rem;line-height:1}.typing-word-answer span,.typing-segment-answer span{color:var(--typing-brand-strong);font-size:.78rem;line-height:1.2}.typing-word-answer span{color:var(--typing-ink);font-size:.8rem;line-height:1}.typing-correct-burst{color:#ff7b37;align-items:center;gap:8px;animation:.42s both typing-success-pop;display:flex;position:absolute;bottom:18px;right:22px}.typing-correct-burst strong{color:#0000;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#ff723b 0%,#ff8b31 100%);-webkit-background-clip:text;background-clip:text}@keyframes typing-success-pop{0%{opacity:0;transform:translateY(8px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.typing-listening-prompt{border:1px solid color-mix(in srgb, var(--typing-brand) 28%, var(--typing-line));background:var(--typing-brand-soft);min-width:150px;min-height:112px;color:var(--typing-brand-strong);cursor:pointer;border-radius:18px;place-items:center;gap:5px;margin:10px 0 22px;font-weight:850;display:grid}.typing-listening-prompt.is-playing svg{animation:.8s ease-in-out infinite alternate typing-audio-pulse}@keyframes typing-audio-pulse{to{transform:scale(1.12)}}.typing-segment-inputs{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:9px;max-width:820px;display:flex}.typing-segment-field{width:142px;min-width:116px;min-height:64px;display:block;position:relative}.typing-segment-field input,.typing-segment-answer{border-radius:13px 13px 0 0;min-width:116px;min-height:64px}.typing-segment-field input{width:100%;height:64px;padding:0 10px 8px}.typing-segment-field input:disabled{border-color:var(--typing-line);background:color-mix(in srgb, var(--typing-line) 28%, #fff);cursor:not-allowed}.typing-segment-progress{background:var(--typing-brand-soft);pointer-events:none;height:8px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.typing-segment-progress>span{background:linear-gradient(90deg,#ff4f45 0%,#ff723b 58%,#ff8b31 100%);height:100%;transition:width .18s;display:block}.typing-segment-field.is-wrong .typing-segment-progress>span{background:#dc5b5b}.typing-memory-card{border-left:3px solid var(--typing-brand);flex-direction:column;padding:18px;display:flex}.typing-memory-card>span{background:var(--typing-brand-soft);color:var(--typing-brand-strong);letter-spacing:.04em;text-transform:uppercase;border-radius:7px;padding:6px 9px;font-size:.72rem;font-weight:850;display:block}.typing-memory-hanzi{color:var(--typing-ink);margin-top:14px;font-size:clamp(2.15rem,4vw,3.45rem);line-height:1.08}.typing-memory-card>b{color:var(--typing-brand);margin-top:5px;font-size:.88rem}.typing-memory-card>p{color:var(--typing-muted);margin:9px 0;line-height:1.5}.typing-memory-card>small{background:color-mix(in srgb, var(--typing-line) 35%, #fff);color:var(--typing-muted);border-radius:999px;align-self:flex-start;padding:4px 8px}.typing-memory-hidden{color:var(--typing-muted);text-align:center;flex:1;align-content:center;place-items:center;display:grid}.typing-memory-hidden strong{color:var(--typing-ink);margin-top:11px}.typing-memory-hidden p{max-width:210px;margin:6px 0 0;font-size:.8rem;line-height:1.5}.typing-action-bar{border:1px solid var(--typing-line);background:var(--typing-surface);border-radius:15px;grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:10px;padding:8px;display:grid;box-shadow:0 12px 30px #3f2b240f}.typing-action-bar button,.typing-complete-actions button,.typing-load-state button{border:1px solid var(--typing-line);background:var(--typing-surface);min-height:43px;color:var(--typing-ink);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:7px;font-weight:800;display:inline-flex}.typing-action-bar button:nth-child(2),.typing-action-bar button:nth-child(3),.typing-action-bar button:nth-child(4),.typing-action-bar button:nth-child(5){border-color:color-mix(in srgb, var(--typing-brand) 18%, var(--typing-line));background:var(--typing-brand-wash)}.typing-action-bar button:not(.is-next):hover,.typing-complete-actions button:hover,.typing-load-state button:hover{border-color:color-mix(in srgb, var(--typing-brand) 45%, var(--typing-line));background:var(--typing-brand-soft);color:var(--typing-brand-strong)}.typing-action-bar button.is-next{border-color:var(--typing-brand);background:var(--typing-brand);color:#fff}.typing-action-bar button.is-next:hover{border-color:var(--typing-brand-strong);background:var(--typing-brand-strong)}.typing-load-state button{border-color:var(--typing-brand);background:var(--typing-brand);color:#fff}.typing-load-state button:hover{border-color:var(--typing-brand-strong);background:var(--typing-brand-strong);color:#fff}.typing-action-bar button.is-saved{color:#9b6b00}.typing-action-bar button.is-playing{color:var(--typing-brand)}.typing-action-bar button:disabled{opacity:.45;cursor:not-allowed}.typing-session-header>a:focus-visible,.typing-mode-tabs button:focus-visible,.typing-listening-prompt:focus-visible,.typing-action-bar button:focus-visible,.typing-complete-actions a:focus-visible,.typing-complete-actions button:focus-visible,.typing-load-state button:focus-visible,.typing-level-card-footer a:focus-visible,.typing-lesson-card-footer a:focus-visible,.typing-choice-card>a:focus-visible{outline:3px solid color-mix(in srgb, var(--typing-brand) 28%, transparent);outline-offset:2px}.typing-audio-error,.typing-keyboard-hint{margin:9px 0 0;font-size:.76rem}.typing-audio-error{color:#c13f3f;text-align:center}.typing-keyboard-hint{color:var(--typing-muted);justify-content:center;align-items:center;gap:5px;display:flex}.typing-toast{z-index:80;color:#087a4c;background:#fff;border:1px solid #cce6d9;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:.82rem;font-weight:800;display:flex;position:fixed;top:82px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #184c3329}.typing-load-state,.typing-complete-card{border:1px solid var(--typing-line);background:var(--typing-surface);text-align:center;border-radius:24px;width:min(700px,100% - 32px);margin:8vh auto 0;padding:44px;box-shadow:0 22px 60px #3f2b241a}.typing-loading-icon,.typing-complete-icon{color:#078553;background:#dff6ea;border-radius:50%;place-items:center;width:64px;height:64px;display:inline-grid}.typing-load-state h1,.typing-complete-card h1{color:var(--typing-ink);letter-spacing:-.035em;margin:17px 0 8px}.typing-load-state p,.typing-complete-card>p{color:var(--typing-muted);margin:0;line-height:1.6}.typing-load-state button{margin-top:20px;padding:0 18px}.typing-complete-card>small{color:#0b8b58;margin-top:15px;font-weight:850;display:block}.typing-complete-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:26px 0;display:grid}.typing-complete-stats>div{border:1px solid var(--typing-line);background:var(--typing-brand-wash);min-height:84px;color:var(--typing-brand);border-radius:14px;justify-content:center;align-items:center;gap:9px;display:flex}.typing-complete-stats span{text-align:left;display:grid}.typing-complete-stats strong{color:var(--typing-ink);font-size:1.18rem}.typing-complete-stats small{color:#78857e;font-size:.67rem}.typing-complete-actions{justify-content:center;gap:10px;display:flex}.typing-complete-actions button,.typing-complete-actions a{min-height:44px;padding:0 18px}.typing-completion-stage{place-items:center;width:100%;min-height:calc(100dvh - 48px);padding:22px;display:grid}.typing-completion-stage .game-result-celebration{aspect-ratio:auto;width:min(700px,100%);min-height:760px}.typing-completion-stage .game-result-celebration__panel{min-height:53%;padding:32px 30px 25px;bottom:4%;left:5%;right:5%}.typing-complete-summary{color:var(--typing-muted);margin:0;font-size:.82rem;line-height:1.5}.typing-completion-stage .typing-complete-stats{margin:12px 0 0}.typing-completion-stage .typing-complete-stats>div{min-height:66px}.typing-completion-stage .typing-complete-stats strong{font-size:1rem}@media (width<=1220px){.typing-level-grid,.typing-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=721px){.typing-studio{flex-direction:column;min-height:calc(100dvh - 48px);display:flex}.typing-practice-grid{flex:1;grid-template-rows:minmax(440px,1fr) auto}}@media (width<=980px){.typing-practice-grid{grid-template-columns:minmax(0,1fr) 260px}.typing-memory-card{padding:15px}.typing-action-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.typing-complete-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=721px) and (height<=760px){.typing-session-page{padding:12px 100px}.typing-studio{min-height:calc(100dvh - 24px)}.typing-session-titlebar{margin:8px 0}.typing-practice-grid{grid-template-rows:minmax(320px,1fr) auto}.typing-question-card,.typing-memory-card{min-height:320px}.typing-question-card{padding:28px 30px}}@media (width<=720px){.typing-catalog-page,.typing-lesson-page,.typing-choice-page{width:min(100% - 24px,620px);padding:14px 0 92px}.typing-catalog-section{margin-top:28px}.typing-lesson-list-section{padding:0}.typing-section-heading{display:block}.typing-section-heading>p{margin-top:10px}.typing-level-grid,.typing-lesson-grid,.typing-choice-grid{grid-template-columns:1fr}.typing-lesson-card{min-height:330px;padding:20px}.typing-lesson-hero,.typing-choice-hero{align-items:flex-start;padding:22px}.typing-lesson-character-strip{grid-template-columns:repeat(3,40px)}.typing-lesson-character-strip span{width:40px;height:40px}.typing-choice-audio-note{display:none}.typing-session-page{min-height:100dvh;padding:12px 10px calc(126px + env(safe-area-inset-bottom,0px))}.typing-session-header{grid-template-columns:36px 1fr;gap:9px}.typing-mode-tabs{grid-column:1/-1;justify-self:center}.typing-session-titlebar{align-items:center;margin-top:11px}.typing-session-titlebar h1{max-width:74vw}.typing-practice-grid{grid-template-columns:1fr}.typing-question-card{order:1}.typing-memory-card{order:2}.typing-action-bar{order:3}.typing-question-card{min-height:390px;padding:32px 16px}.typing-memory-card{min-height:260px}.typing-question-card h2{font-size:1.55rem}.typing-segment-inputs{gap:6px}.typing-word-input input{touch-action:manipulation;font-size:max(16px,1.12rem)}.typing-segment-field input,.typing-segment-answer{min-width:94px;min-height:58px}.typing-segment-field{width:116px;min-width:94px;min-height:58px}.typing-segment-field input{touch-action:manipulation;width:100%;height:58px;font-size:16px}.typing-action-bar{right:10px;bottom:calc(max(8px, env(safe-area-inset-bottom,0px)) + var(--typing-keyboard-offset,0px));z-index:100;grid-template-columns:repeat(3,minmax(0,1fr));width:auto;margin:0;position:fixed;left:10px;box-shadow:0 12px 34px #3f2b2429}.typing-action-bar button{min-height:45px;font-size:.75rem}.typing-word-input input,.typing-segment-field input{scroll-margin-bottom:calc(132px + env(safe-area-inset-bottom,0px))}.typing-keyboard-hint{display:none}.typing-toast{text-align:center;max-width:calc(100% - 24px);top:68px}.typing-load-state,.typing-complete-card{margin-top:4vh;padding:28px 18px}.typing-completion-stage{align-items:start;min-height:100dvh;padding:12px 0 84px}.typing-completion-stage .game-result-celebration{min-height:720px}.typing-completion-stage .game-result-celebration__panel{min-height:55%;padding:28px 14px 18px;bottom:3%;left:3%;right:3%}.typing-completion-stage .typing-complete-stats{gap:7px;margin-top:9px}.typing-completion-stage .typing-complete-stats>div{gap:6px;min-height:59px;padding-inline:6px}}@media (width<=720px) and (height<=760px){.typing-session-page{padding-top:8px}.typing-question-card{min-height:335px;padding-block:24px}}@media (width<=460px){.typing-level-grid{grid-template-columns:1fr}.typing-hanzi-preview span:nth-child(n+6){display:none}.typing-lesson-hero{display:block}.typing-lesson-character-strip{margin-top:18px}.typing-session-titlebar>strong{display:none}.typing-action-bar{gap:5px;padding:6px}.typing-action-bar button{gap:4px;padding:0 4px}.typing-complete-stats{grid-template-columns:1fr 1fr}.typing-complete-actions{flex-direction:column}}@media (prefers-reduced-motion:reduce){.typing-answer-confetti{animation-duration:1.4s!important;animation-delay:0s!important}.typing-answer-confetti-particles i{animation-duration:.82s!important;animation-delay:var(--confetti-delay)!important}.typing-correct-burst,.typing-listening-prompt.is-playing svg{animation:none}.typing-session-progress span,.typing-level-card-footer a,.typing-lesson-card-footer a,.typing-choice-card>a{transition:none}.typing-level-card,.typing-lesson-card{transition:border-color .22s ease-out,background-color .22s ease-out,box-shadow .22s ease-out}.typing-hanzi-preview span,.typing-lesson-preview span{transition:background-color .2s ease-out,box-shadow .22s ease-out}.typing-level-card:hover,.typing-level-card:hover .typing-hanzi-preview span,.typing-lesson-card:hover,.typing-lesson-card:hover .typing-lesson-preview span{transform:none}}
