.typing-3d-intro,.typing-3d{--t3-red:var(--himi-red,#ff4c3b);--t3-red-deep:#d93425;--t3-red-soft:#fff0ee;--t3-red-line:#f6cfc8;--t3-orange:#ff8e2d;--t3-ink:var(--himi-black,#222);--t3-muted:var(--himi-muted,#5d5552);--t3-line:#ece3e0;--t3-ok:#1fa463;--t3-ok-soft:#e7f7ee;--t3-bad:#e5484d;--t3-bad-soft:#ffeced;--t3-extrude:#f0d3cc;--t3-extrude-2:#e3bdb4;--t3-spring:cubic-bezier(.34, 1.56, .64, 1);--t3-ease:cubic-bezier(.22, 1, .36, 1);--t3-han:"Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif}@keyframes t3-rise{0%{opacity:0;transform:translateY(18px)}}@keyframes t3-float{50%{transform:translateY(-9px) rotate(var(--t3-tilt,0deg))}}@keyframes t3-float-shadow{50%{opacity:.45;transform:scaleX(.75)}}@keyframes t3-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.04)}to{transform:scale(1)}}@keyframes t3-press{0%,to{box-shadow:0 5px 0 var(--t3-extrude-2), 0 8px 14px -8px #78321e59;transform:translateY(0)}45%{box-shadow:0 1px 0 var(--t3-extrude-2);background:var(--t3-red-soft);color:var(--t3-red);transform:translateY(4px)}}@keyframes t3-shimmer{to{background-position:-220% 0}}@keyframes t3-bob{50%{transform:translateY(-3px)rotate(-4deg)}}@keyframes t3-pulse{50%{opacity:.45}}@keyframes t3-key-in{0%{opacity:0;transform:translateY(4px)scale(.94)}}@keyframes t3-key-ok{0%{opacity:.6;transform:translateY(2px)}}@keyframes t3-shake{30%{transform:translate(-4px)}65%{transform:translate(3px)}}@keyframes t3-caret{0%,to{opacity:1}50%{opacity:.15}}@keyframes t3-card-in{0%{opacity:0;transform:translate(22px)}}@keyframes t3-ring{0%{opacity:.6;transform:scale(.9)}to{opacity:0;transform:scale(1.7)}}@keyframes t3-eq{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes t3-flame{50%{transform:scale(1.12)rotate(-6deg)}}.typing-3d-intro>*{animation:t3-rise .6s var(--t3-ease) backwards}.typing-3d-intro>:nth-child(2){animation-delay:40ms}.typing-3d-intro>:nth-child(3){animation-delay:.1s}.typing-3d-intro>:nth-child(4){animation-delay:.16s}.typing-3d-intro>:nth-child(5){animation-delay:.22s}.typing-3d-intro .t3-hero{background:linear-gradient(135deg,#fff 0%,#fff4f0 55%,#ffe6de 100%);border:1.5px solid #fbd9d1;border-radius:30px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;margin-top:8px;padding:25px 30px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px #f6d8d0,0 30px 50px -30px #d934258c}.typing-3d-intro .t3-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#ff8e2d2e,#0000 65%);border-radius:50%;width:360px;height:360px;position:absolute;bottom:-120px;right:-60px}.typing-3d-intro .t3-hero-copy{min-width:0;position:relative}.typing-3d-intro .t3-eyebrow{color:var(--t3-red);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:.8rem;font-weight:900;display:inline-flex}.typing-3d-intro .t3-eyebrow:before{content:"";background:var(--t3-red);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #ff4c3b2e}.typing-3d-intro .t3-hero h1{color:var(--t3-ink);letter-spacing:-.02em;margin:10px 0 4px;font-size:clamp(1.6rem,3.1vw,2.4rem);line-height:1.1}.typing-3d-intro .t3-hero-copy>p{color:var(--t3-muted);font-family:var(--t3-han);margin:0;font-size:1.05rem;font-weight:600}.typing-3d-intro .t3-chips{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.typing-3d-intro .t3-chips span{border:1.5px solid var(--t3-line);color:var(--t3-ink);background:#fff;border-radius:12px;align-items:center;gap:7px;padding:7px 12px;font-size:.85rem;font-weight:750;display:inline-flex;box-shadow:0 3px #f1e5e1}.typing-3d-intro .t3-chips svg{color:var(--t3-red)}.typing-3d-intro .t3-hero-stage{min-height:190px;position:relative}.typing-3d-intro .t3-cube{width:80px;height:80px;box-shadow:0 8px 0 var(--t3-extrude), 0 9px 0 var(--t3-extrude-2), 0 26px 30px -15px #d9342580, inset 0 3px 0 #fff;color:var(--t3-red);font:900 43px/1 var(--t3-han);background:linear-gradient(160deg,#fff,#fff1ed);border:2px solid #ffd6cd;border-radius:21px;place-items:center;animation:4.2s ease-in-out infinite t3-float;display:grid;position:absolute}.typing-3d-intro .t3-cube.is-1{--t3-tilt:-6deg;top:8px;left:5%;transform:rotate(-6deg)}.typing-3d-intro .t3-cube.is-2{--t3-tilt:5deg;color:var(--t3-ink);animation-delay:-1.4s;top:28px;left:36%;transform:rotate(5deg)}.typing-3d-intro .t3-cube.is-badge{--t3-tilt:8deg;background:linear-gradient(160deg, #ff7b62, var(--t3-red));width:55px;height:55px;box-shadow:0 8px 0 var(--t3-red-deep), 0 22px 26px -12px #d9342599, inset 0 3px 0 #ffffff59;color:#fff;font:900 19px/1 var(--himi-font-display,inherit);border-color:#0000;border-radius:16px;animation-delay:-2.2s;top:0;right:4%}.typing-3d-intro .t3-himi{filter:drop-shadow(0 18px 18px #78321e40);width:138px;height:auto;position:absolute;bottom:-6px;right:0}.typing-3d-intro .t3-himi-shadow{filter:blur(5px);background:#78321e2e;border-radius:50%;width:100px;height:13px;animation:4.2s ease-in-out infinite t3-float-shadow;position:absolute;bottom:-2px;right:6%}.typing-3d-intro .t3-bubble{z-index:2;max-width:215px;color:var(--t3-ink);animation:t3-pop .55s .45s var(--t3-spring) backwards;background:#fff;border-radius:18px 18px 4px;padding:9px 13px;font-size:.87rem;font-weight:800;position:absolute;bottom:8px;left:0;box-shadow:0 6px #f1e2dd,0 18px 24px -14px #78321e73}.typing-3d-intro .t3-bubble small{color:var(--t3-muted);margin-top:2px;font-size:.76rem;font-weight:600;display:block}.typing-3d-intro .t3-block-title{justify-content:space-between;align-items:center;gap:12px;margin:28px 4px 14px;display:flex}.typing-3d-intro .t3-block-title h2{color:var(--t3-ink);margin:0;font-size:1.35rem}.typing-3d-intro .t3-block-title p{color:var(--t3-muted);margin:0;font-size:.88rem}.typing-3d-intro .t3-mode{background:#f4ece9;border-radius:22px;grid-template-columns:1fr 1fr;padding:6px;display:grid;position:relative;box-shadow:inset 0 3px 6px #783c281f}.typing-3d-intro .t3-mode-thumb,.typing-3d .t3-tab-thumb{width:calc(50% - 6px);transition:transform .4s var(--t3-spring);background:#fff;border-radius:17px;position:absolute;top:6px;bottom:6px;left:6px;box-shadow:0 5px #f0dcd6,0 14px 20px -12px #d9342573}.typing-3d-intro .t3-mode[data-mode=listening] .t3-mode-thumb,.typing-3d .typing-mode-tabs[data-mode=listening] .t3-tab-thumb{transform:translate(100%)}.typing-3d-intro .t3-mode button{z-index:1;min-height:72px;color:var(--t3-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:17px;align-items:center;gap:14px;padding:12px 18px;display:flex;position:relative}.typing-3d-intro .t3-mode button:focus-visible{outline-offset:2px;outline:3px solid #ffb4a9}.typing-3d-intro .t3-mode-icon{width:46px;height:46px;color:var(--t3-muted);transition:color .25s, background .25s, transform .35s var(--t3-spring), box-shadow .25s;background:#fff;border-radius:14px;flex:none;place-items:center;display:grid;box-shadow:0 4px #ecdcd7}.typing-3d-intro .t3-mode button.is-on .t3-mode-icon{background:linear-gradient(160deg, #ff7b62, var(--t3-red));box-shadow:0 4px 0 var(--t3-red-deep);color:#fff;transform:rotate(-6deg)scale(1.05)}.typing-3d-intro .t3-mode strong{font-size:1rem;display:block}.typing-3d-intro .t3-mode small{color:var(--t3-muted);margin-top:2px;font-size:.82rem;display:block}.typing-3d-intro .t3-cards{grid-template-columns:1fr 1fr;gap:22px;display:grid}.typing-3d-intro .t3-card{border:1.5px solid var(--t3-line);min-height:360px;transition:transform .3s var(--t3-ease), box-shadow .3s var(--t3-ease), border-color .3s;background:#fff;border-radius:28px;flex-direction:column;gap:18px;padding:26px;display:flex;box-shadow:0 8px #f1e5e1,0 28px 40px -30px #78321e8c}.typing-3d-intro .t3-card:not(.is-empty):hover{border-color:var(--t3-red-line);transform:translateY(-4px);box-shadow:0 12px #f3dcd5,0 36px 50px -30px #d934258c}.typing-3d-intro .t3-card-head{align-items:flex-start;gap:16px;display:flex}.typing-3d-intro .t3-card-icon{background:linear-gradient(160deg, #ff7b62, var(--t3-red));width:58px;height:58px;box-shadow:0 6px 0 var(--t3-red-deep), 0 16px 22px -10px #d9342599, inset 0 2px 0 #ffffff59;color:#fff;border-radius:18px;flex:none;place-items:center;display:grid;transform:rotate(-6deg)}.typing-3d-intro .t3-card small{color:var(--t3-red);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:900}.typing-3d-intro .t3-card h2{color:var(--t3-ink);margin:4px 0 6px;font-size:1.45rem}.typing-3d-intro .t3-card-head p{color:var(--t3-muted);margin:0;line-height:1.55}.typing-3d-intro .t3-demo{background:linear-gradient(#fff7f5,#fff0ec);border:1.5px dashed #f6cfc6;border-radius:20px;gap:10px;padding:18px;display:grid}.typing-3d-intro .t3-demo-keys{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.typing-3d-intro .t3-demo-key,.typing-3d-intro .t3-demo-chunk{border:1.5px solid var(--t3-line);min-width:44px;height:46px;box-shadow:0 5px 0 var(--t3-extrude-2), 0 8px 14px -8px #78321e59;color:var(--t3-ink);background:#fff;border-radius:12px;place-items:center;padding:0 12px;font-size:1.15rem;font-weight:800;animation:3s ease-in-out infinite t3-press;display:grid}.typing-3d-intro .t3-demo p{text-align:center;color:var(--t3-ink);font:800 1.5rem var(--t3-han);margin:0}.typing-3d-intro .t3-demo p span{color:var(--t3-muted);font:700 .9rem var(--himi-font-body,inherit);margin-left:6px}.typing-3d-intro .t3-ghost{opacity:.75;justify-content:center;gap:10px;padding:24px 0;display:flex}.typing-3d-intro .t3-ghost i{background:#ffffffb3;border:2px dashed #e3d6d2;border-radius:14px;width:70px;height:52px}.typing-3d-intro .t3-ghost i:nth-child(2){width:50px}.typing-3d-intro .t3-ghost i:nth-child(3){width:96px}.typing-3d-intro .t3-card.is-empty{background:repeating-linear-gradient(135deg,#fffaf9 0 14px,#fff6f4 14px 28px);box-shadow:0 6px #f3ebe8}.typing-3d-intro .t3-card.is-empty .t3-card-icon{color:#9d918d;background:#f2ecea;box-shadow:0 6px #e4dbd8}.typing-3d-intro .t3-card-foot{gap:12px;margin-top:auto;display:grid}.typing-3d-intro .t3-card-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.typing-3d-intro .t3-card-meta b{color:var(--t3-ink);font-size:1.5rem;font-weight:900}.typing-3d-intro .t3-card-meta span{color:var(--t3-muted);font-size:.84rem;font-weight:700}.typing-3d-intro .t3-meter{background:#f4ebe8;border-radius:999px;height:12px;padding:3px;box-shadow:inset 0 2px 4px #783c2829,inset 0 -1px #fff}.typing-3d-intro .t3-meter span{border-radius:inherit;background:linear-gradient(180deg, #ff7a5c, var(--t3-red) 55%, var(--t3-red-deep));height:100%;transition:width .7s var(--t3-ease);display:block;position:relative;overflow:hidden}.typing-3d-intro .t3-meter span:after{content:"";background:linear-gradient(100deg,#0000 30%,#fff9 50%,#0000 70%) 0 0/220% 100%;animation:2.6s linear infinite t3-shimmer;position:absolute;inset:0}.typing-3d-intro .t3-cta{background:linear-gradient(180deg, #ff6c52, var(--t3-red) 60%, #f23e2d);min-height:58px;box-shadow:0 6px 0 var(--t3-red-deep), 0 16px 26px -12px #ff4c3bbf, inset 0 2px 0 #ffffff59;color:#fff;transition:transform .18s var(--t3-ease), box-shadow .18s var(--t3-ease);border-radius:16px;justify-content:center;align-items:center;gap:10px;font-size:1.05rem;font-weight:850;text-decoration:none;display:inline-flex}.typing-3d-intro .t3-cta:hover{box-shadow:0 8px 0 var(--t3-red-deep), 0 20px 30px -12px #ff4c3bcc, inset 0 2px 0 #ffffff59;transform:translateY(-2px)}.typing-3d-intro .t3-cta:active{box-shadow:0 1px 0 var(--t3-red-deep), 0 6px 10px -6px #ff4c3bb3;transform:translateY(5px)}.typing-3d-intro .t3-cta:focus-visible{outline-offset:3px;outline:3px solid #ffb4a9}.typing-3d-intro .t3-cta-arrow{transition:transform .25s var(--t3-spring)}.typing-3d-intro .t3-cta:hover .t3-cta-arrow{transform:translate(5px)}.typing-3d-intro .t3-soon{min-height:58px;color:var(--t3-muted);background:#fff;border:2px dashed #e3d6d2;border-radius:16px;place-items:center;font-weight:800;display:grid}.typing-3d-intro .t3-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 0;padding:0;list-style:none;display:grid}.typing-3d-intro .t3-steps li{border:1.5px solid var(--t3-line);background:#fffc;border-radius:20px;align-items:center;gap:14px;padding:16px 18px;display:flex}.typing-3d-intro .t3-steps b{background:var(--t3-red-soft);width:40px;height:40px;color:var(--t3-red);border-radius:13px;flex:none;place-items:center;font-size:1.1rem;font-weight:900;display:grid;box-shadow:0 4px #f6d4cc}.typing-3d-intro .t3-steps strong{color:var(--t3-ink);font-size:.95rem;display:block}.typing-3d-intro .t3-steps small{color:var(--t3-muted);margin-top:2px;font-size:.82rem;display:block}.typing-3d .typing-session-header>a{border:1.5px solid var(--t3-line);width:44px;height:44px;color:var(--t3-ink);transition:transform .2s var(--t3-ease), box-shadow .2s;background:#fff;border-radius:14px;box-shadow:0 4px #eee2de}.typing-3d .typing-session-header>a:hover{transform:translateY(-2px)rotate(-4deg)}.typing-3d .typing-session-header>a:active{transform:translateY(3px);box-shadow:0 1px #eee2de}.typing-3d .t3-tube{background:#f4ebe8;border-radius:999px;gap:3px;height:18px;padding:3px;display:flex;position:relative;overflow:visible;box-shadow:inset 0 2px 4px #783c2829,inset 0 -1px #fff}.typing-3d .t3-tube>i{background:#e8dedabf;border-radius:999px;flex:1;min-width:2px;transition:background .35s}.typing-3d .t3-tube.is-continuous>i{flex:none}.typing-3d .t3-tube>i.is-done{background:linear-gradient(180deg, #ff7a5c, var(--t3-red) 55%, var(--t3-red-deep));box-shadow:inset 0 2px #ffffff73}.typing-3d .t3-tube>i.is-assisted{background:linear-gradient(180deg, #ffc58f, var(--t3-orange))}.typing-3d .t3-tube>i.is-skipped{background:#dcd2ce}.typing-3d .t3-tube>i.is-now{background:#ffd3c9;animation:1.4s ease-in-out infinite t3-pulse}.typing-3d .typing-session-progress .t3-runner{pointer-events:none;width:40px;height:40px;transition:left .6s var(--t3-ease);background:0 0;border-radius:0;margin:-27px 0 0 -20px;position:absolute;top:50%}.typing-3d .t3-runner img{object-fit:contain;filter:drop-shadow(0 4px 4px #783c284d);width:100%;height:100%;animation:1.6s ease-in-out infinite t3-bob}.typing-3d .typing-mode-tabs{background:#f4ece9;border:0;border-radius:16px;grid-template-columns:1fr 1fr;padding:4px;display:grid;position:relative;box-shadow:inset 0 2px 4px #783c281f}.typing-3d .t3-tab-thumb{border-radius:12px;width:calc(50% - 4px);top:4px;bottom:4px;left:4px;box-shadow:0 3px #f0dcd6,0 8px 14px -10px #d9342573}.typing-3d .typing-mode-tabs button{z-index:1;white-space:nowrap;border-radius:12px;min-height:38px;font-size:.85rem;transition:color .25s;position:relative}.typing-3d .typing-mode-tabs button.is-active{color:var(--t3-red);background:0 0}.typing-3d .typing-session-titlebar{align-items:center}.typing-3d .t3-title-stats{flex:none;align-items:center;gap:8px;display:flex}.typing-3d .t3-streak,.typing-3d .t3-title-stats>strong{border:1.5px solid var(--t3-line);background:#fff;border-radius:14px;align-items:center;gap:6px;padding:7px 12px;font-size:.95rem;font-weight:900;display:inline-flex;box-shadow:0 4px #f0e4e0}.typing-3d .t3-title-stats>strong{color:var(--t3-red)}.typing-3d .t3-streak{color:#e8590c;animation:t3-pop .35s var(--t3-spring)}.typing-3d .t3-streak svg{fill:#ffd8a8;animation:1.1s ease-in-out infinite t3-flame}.typing-3d .t3-streak.is-cold{color:#a99c98;animation:none}.typing-3d .t3-streak.is-cold svg{fill:none;animation:none}.typing-3d .typing-question-card{border:1.5px solid var(--t3-line);animation:t3-card-in .32s var(--t3-ease);background:linear-gradient(#fff,#fffaf8);border-radius:28px;box-shadow:0 9px #f1e5e1,0 10px #e9d8d3,0 36px 56px -40px #78321e99}.typing-3d .typing-question-card:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 1px 1px,#ff4c3b17 1px,#0000 0);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}.typing-3d .typing-question-kind{background:linear-gradient(180deg, #ff6c52, var(--t3-red));min-height:30px;box-shadow:0 4px 0 var(--t3-red-deep);padding:0 14px;font-size:.78rem;position:relative}.typing-3d .typing-question-instruction{font-size:.9rem;font-weight:600;position:relative}.typing-3d .typing-question-card h2{text-shadow:0 3px #f6e3de;position:relative}.typing-3d .t3-key-slot{cursor:text;background:#fbf4f2;border-radius:22px;justify-content:center;width:auto;max-width:min(720px,100%);padding:14px 18px 18px;transition:box-shadow .2s;display:flex;position:relative;box-shadow:inset 0 4px 10px #783c281f,inset 0 -2px #fff}.typing-3d .t3-key-slot:focus-within{box-shadow:inset 0 4px 10px #783c281f,0 0 0 4px #ff4c3b2e}.typing-3d .t3-key-slot.is-wrong{animation:.26s ease-out t3-shake}.typing-3d .t3-key-slot .typing-word-input-control{width:auto;position:static}.typing-3d .t3-key-slot input{border-radius:inherit;width:100%;height:100%;box-shadow:none;color:#0000;caret-color:#0000;opacity:0;cursor:text;background:0 0;border:0;padding:0;position:absolute;inset:0}.typing-3d .t3-keys{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.typing-3d .t3-key{width:54px;height:60px;box-shadow:0 4px 0 var(--t3-extrude), 0 8px 14px -10px #d9342559;color:var(--t3-ink);text-transform:lowercase;background:linear-gradient(#fff,#fff5f2);border:2px solid #f3d9d2;border-radius:15px;place-items:center;font-size:1.85rem;font-weight:800;line-height:1;transition:color .2s,background .2s,border-color .2s,box-shadow .2s;display:grid}.typing-3d .t3-key.is-typed,.typing-3d .t3-key.is-wrong{animation:.16s ease-out t3-key-in}.typing-3d .t3-key.is-empty{box-shadow:none;background:0 0;border-style:dashed;border-color:#ead6d0}.typing-3d .t3-key.is-empty.is-next{border-color:var(--t3-red);background:#ffffffbf}.typing-3d .t3-key-slot:focus-within .t3-key.is-next:after{content:"";background:var(--t3-red);border-radius:2px;width:3px;height:28px;animation:1.1s ease-in-out infinite t3-caret}.typing-3d .t3-key.is-wrong{background:linear-gradient(180deg, #fff, var(--t3-bad-soft));color:var(--t3-bad);border-color:#f5b5b7;box-shadow:0 4px #f3c3c5,0 8px 14px -10px #e5484d66}.typing-3d .t3-key.is-ok{background:linear-gradient(180deg, #3cc47f, var(--t3-ok));color:#fff;border-color:#0000;animation:.3s ease-out backwards t3-key-ok;box-shadow:0 4px #158552,0 8px 14px -10px #1fa46380,inset 0 2px #ffffff4d}.typing-3d .t3-key.is-gap{width:12px;box-shadow:none;background:0 0;border:0}.typing-3d .t3-keys.is-compact{gap:6px}.typing-3d .t3-keys.is-compact .t3-key{border-radius:11px;width:38px;height:44px;font-size:1.3rem}.typing-3d .t3-keys.is-compact .t3-key.is-gap{width:6px}.typing-3d .t3-key-slot.is-solved{cursor:default}.typing-3d .t3-slot-hint,.typing-3d .t3-enter-hint{min-height:22px;color:var(--t3-muted);justify-content:center;align-items:center;gap:7px;margin:14px 0 0;font-size:.85rem;font-weight:700;display:flex;position:relative}.typing-3d .t3-slot-hint.is-wrong{color:var(--t3-bad)}.typing-3d .t3-enter-hint{margin-top:8px;font-weight:600}.typing-3d kbd,.typing-3d .t3-kbd{min-width:22px;height:22px;color:var(--t3-muted);font:700 .7rem var(--himi-font-body,inherit);background:#f6f1ef;border-radius:6px;place-items:center;padding:0 6px;display:inline-grid;box-shadow:inset 0 -2px #e6dcd8}.typing-3d .typing-action-bar .is-next .t3-kbd{color:#fff;background:#ffffff38;margin-left:4px;box-shadow:inset 0 -2px #00000026}.typing-3d .typing-correct-burst.t3-ribbon{background:var(--t3-ok-soft);color:var(--t3-ok);animation:t3-pop .45s 80ms var(--t3-spring) backwards;border-radius:999px;margin-top:16px;padding:9px 16px;position:relative;bottom:auto;right:auto;box-shadow:0 4px #c9ecd8}.typing-3d .t3-ribbon strong{color:var(--t3-ok);-webkit-text-fill-color:currentColor;background:0 0;font-size:1.05rem;font-weight:900}.typing-3d .t3-ribbon span{color:#e8590c;background:#fff;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:900}.typing-3d .typing-word-answer{height:auto;min-height:0;animation:t3-pop .4s var(--t3-spring);background:#fff7e9;border:0;border-radius:22px;padding:14px 26px;box-shadow:inset 0 0 0 2px #ffd9a8,0 5px #f6dcb6}.typing-3d .typing-word-answer:after{display:none}.typing-3d .typing-word-answer strong{font-family:var(--t3-han);font-size:2.6rem}.typing-3d .typing-word-answer span{color:#c2620c;margin-top:4px;font-size:1rem;font-weight:800}.typing-3d .t3-vkb{gap:6px;margin-top:18px;display:grid;position:relative}.typing-3d .t3-vkb>div{justify-content:center;gap:6px;display:flex}.typing-3d .t3-vkb>div:nth-child(2){padding-left:18px}.typing-3d .t3-vkb>div:nth-child(3){padding-left:46px}.typing-3d .t3-vkb span{color:#a59895;background:#fff;border:1px solid #f0e6e3;border-radius:9px;place-items:center;width:34px;height:34px;font-size:.8rem;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s,color .12s;display:grid;box-shadow:0 3px #ede1dd}.typing-3d .t3-vkb span.is-hit{background:var(--t3-red);color:#fff;border-color:#0000;transform:translateY(3px);box-shadow:0 0 0 5px #ff4c3b26}.typing-3d .t3-vkb span.is-hit.is-wrong{background:var(--t3-bad)}.typing-3d .t3-listen{justify-items:center;gap:12px;margin:6px 0 18px;display:grid;position:relative}.typing-3d .typing-listening-prompt.t3-orb{background:radial-gradient(circle at 35% 30%, #ff8a70, var(--t3-red) 55%, var(--t3-red-deep));color:#fff;width:132px;min-width:0;height:132px;min-height:0;transition:transform .18s var(--t3-ease), box-shadow .18s var(--t3-ease);border:0;border-radius:50%;margin:0;position:relative;box-shadow:0 10px #b92a1d,0 26px 36px -16px #d93425b3,inset 0 4px #ffffff4d}.typing-3d .t3-orb:hover{transform:translateY(-3px)}.typing-3d .t3-orb:active{transform:translateY(7px);box-shadow:0 3px #b92a1d,0 10px 18px -10px #d93425b3}.typing-3d .t3-orb:focus-visible{outline-offset:5px;outline:3px solid #ffb4a9}.typing-3d .t3-orb:before,.typing-3d .t3-orb:after{content:"";opacity:0;pointer-events:none;border:3px solid #ff4c3b73;border-radius:50%;position:absolute;inset:0}.typing-3d .t3-orb.is-playing:before,.typing-3d .t3-orb.is-playing:after{animation:1.6s ease-out infinite t3-ring}.typing-3d .t3-orb.is-playing:after{animation-delay:.8s}.typing-3d .typing-listening-prompt.t3-orb.is-playing svg{animation:none}.typing-3d .t3-eq{align-items:center;gap:5px;height:26px;display:flex}.typing-3d .t3-eq i{background:#f3c5bc;border-radius:3px;width:6px;height:100%;transform:scaleY(.35)}.typing-3d .t3-eq.is-playing i{background:var(--t3-red);animation:.9s ease-in-out infinite t3-eq}.typing-3d .t3-eq.is-playing i:nth-child(2){animation-delay:.15s}.typing-3d .t3-eq.is-playing i:nth-child(3){animation-delay:.3s}.typing-3d .t3-eq.is-playing i:nth-child(4){animation-delay:.45s}.typing-3d .t3-eq.is-playing i:nth-child(5){animation-delay:.6s}.typing-3d .typing-segment-inputs{gap:12px}.typing-3d .typing-segment-field.t3-key-slot{width:auto;min-width:0;min-height:0;transition:transform .3s var(--t3-ease), box-shadow .3s, opacity .3s;justify-items:center;gap:8px;padding:10px 14px 18px;display:grid;overflow:hidden}.typing-3d .typing-segment-field.is-active{background:#fff;transform:translateY(-5px);box-shadow:0 6px #f1dcd6,0 0 0 3px #ff4c3b40,0 20px 26px -16px #d9342573}.typing-3d .typing-segment-field.is-later{opacity:.55;cursor:not-allowed}.typing-3d .t3-seg-label{color:var(--t3-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:850}.typing-3d .typing-segment-field.is-active .t3-seg-label{color:var(--t3-red)}.typing-3d .typing-segment-progress{border-radius:999px;height:5px;bottom:7px;left:12px;right:12px}.typing-3d .typing-segment-answer{background:var(--t3-ok-soft);border:0;border-radius:20px;min-width:96px;height:auto;min-height:0;padding:12px 16px 14px;box-shadow:0 5px #c9ecd8}.typing-3d .typing-segment-answer strong{font-family:var(--t3-han);font-size:1.7rem}.typing-3d .typing-segment-answer span{color:var(--t3-ok);font-size:.95rem;font-weight:800}.typing-3d .typing-memory-card.t3-flip{box-shadow:none;perspective:1400px;background:0 0;border:0;padding:0;position:relative}.typing-3d .t3-flip-inner{transform-style:preserve-3d;transition:transform .8s var(--t3-spring);position:absolute;inset:0}.typing-3d .t3-flip.is-revealed .t3-flip-inner{transform:rotateY(180deg)}.typing-3d .t3-face{border:1.5px solid var(--t3-line);backface-visibility:hidden;background:#fff;border-radius:28px;flex-direction:column;padding:18px;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 9px #f1e5e1,0 36px 50px -40px #78321e99}.typing-3d .t3-face.is-back{background:linear-gradient(#fff,#f5fcf8);border-color:#cfeedd;transform:rotateY(180deg);box-shadow:0 9px #d6f0e2,0 36px 50px -40px #1fa46399}.typing-3d .t3-face-label{background:var(--t3-red-soft);color:var(--t3-red);letter-spacing:.08em;text-transform:uppercase;border-radius:11px;align-self:flex-start;padding:7px 11px;font-size:.72rem;font-weight:900}.typing-3d .t3-face.is-back .t3-face-label{background:var(--t3-ok-soft);color:var(--t3-ok)}.typing-3d .t3-face .typing-memory-hidden{gap:2px}.typing-3d .t3-question-cube{width:84px;height:84px;box-shadow:0 8px 0 var(--t3-extrude), 0 22px 26px -14px #d9342580;color:var(--t3-red);--t3-tilt:-8deg;background:linear-gradient(160deg,#fff,#ffeee9);border:2px solid #ffd6cd;border-radius:26px;place-items:center;animation:3.6s ease-in-out infinite t3-float;display:grid;transform:rotate(-8deg)}.typing-3d .t3-face-himi{width:96px;height:auto;margin-top:10px}.typing-3d .t3-face.is-back .t3-face-himi{width:86px;margin:0;position:absolute;bottom:-4px;right:-6px}.typing-3d .t3-memory-body{text-align:center;flex:1;align-content:center;justify-items:center;gap:4px;display:grid}.typing-3d .t3-memory-body .typing-memory-hanzi{font-family:var(--t3-han);text-shadow:0 4px #dcefe4,0 8px #c6e5d3,0 18px 20px #1f643c2e;margin:0;font-size:clamp(2.6rem,5vw,4.6rem);font-weight:900}.typing-3d .t3-memory-body b{color:var(--t3-ok);font-size:1.35rem;font-weight:850}.typing-3d .t3-memory-body p{color:var(--t3-ink);margin:2px 0 0;font-weight:600;line-height:1.45}.typing-3d .t3-memory-body small{color:var(--t3-muted);background:#f3eeec;border-radius:10px;margin-top:4px;padding:4px 10px;font-size:.75rem;font-weight:800}.typing-3d .t3-memory-audio{gap:8px;margin-top:12px;display:flex}.typing-3d .t3-memory-audio button{border:1.5px solid var(--t3-line);width:44px;height:44px;color:var(--t3-ink);cursor:pointer;transition:transform .18s var(--t3-ease), box-shadow .18s;background:#fff;border-radius:14px;place-items:center;display:grid;box-shadow:0 4px #eee2de}.typing-3d .t3-memory-audio button:hover{transform:translateY(-2px)}.typing-3d .t3-memory-audio button:active{transform:translateY(3px);box-shadow:0 1px #eee2de}.typing-3d .typing-action-bar{border:1.5px solid var(--t3-line);background:#ffffffeb;border-radius:22px;box-shadow:0 6px #f1e5e1}.typing-3d .typing-action-bar button{border:1.5px solid var(--t3-line);min-height:48px;transition:transform .16s var(--t3-ease), box-shadow .16s var(--t3-ease), border-color .2s, background .2s;background:#fff;border-radius:14px;box-shadow:0 4px #eadcd8}.typing-3d .typing-action-bar button:nth-child(n){border-color:var(--t3-line);background:#fff}.typing-3d .typing-action-bar button:not(:disabled):hover{border-color:var(--t3-red-line);transform:translateY(-2px);box-shadow:0 6px #eadcd8}.typing-3d .typing-action-bar button:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px #eadcd8}.typing-3d .typing-action-bar button:disabled{opacity:.45;box-shadow:0 2px #f1e8e5}.typing-3d .typing-action-bar button.is-saved{border-color:var(--t3-red-line);background:var(--t3-red-soft);color:var(--t3-red)}.typing-3d .typing-action-bar button.is-playing{border-color:var(--t3-red-line);color:var(--t3-red)}.typing-3d .typing-action-bar button.is-next{background:linear-gradient(180deg, #ff6c52, var(--t3-red) 60%, #f23e2d);box-shadow:0 5px 0 var(--t3-red-deep), 0 14px 22px -12px #ff4c3bbf, inset 0 2px 0 #ffffff59;color:#fff;border-color:#0000}.typing-3d .typing-action-bar button.is-next:not(:disabled):hover{box-shadow:0 7px 0 var(--t3-red-deep), 0 18px 26px -12px #ff4c3bcc, inset 0 2px 0 #ffffff59;border-color:#0000}.typing-3d .typing-action-bar button.is-next:not(:disabled):active{box-shadow:0 1px 0 var(--t3-red-deep), inset 0 2px 0 #ffffff59}@media (width>=981px){.typing-3d .typing-practice-grid{grid-template-columns:minmax(0,1fr) 320px;gap:18px}}@media (width<=980px){.typing-3d-intro .t3-cards{grid-template-columns:1fr}}@media (width<=860px){.typing-3d-intro .t3-hero{grid-template-columns:1fr;padding:19px 19px 16px}.typing-3d-intro .t3-hero-stage{min-height:155px}.typing-3d-intro .t3-cube{border-radius:17px;width:65px;height:65px;font-size:34px}.typing-3d-intro .t3-cube.is-badge{width:48px;height:48px;font-size:16px}.typing-3d-intro .t3-himi{width:112px}.typing-3d-intro .t3-steps{grid-template-columns:1fr}}@media (width<=900px),(hover:none){.typing-3d .t3-vkb{display:none}}@media (width<=720px){.typing-3d-intro .t3-hero h1{font-size:1.48rem}.typing-3d-intro .t3-block-title{flex-direction:column;align-items:flex-start;gap:4px;margin-top:22px}.typing-3d-intro .t3-mode button{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.typing-3d-intro .t3-mode small{display:none}.typing-3d-intro .t3-card{min-height:0;padding:20px}.typing-3d-intro .t3-demo-key{min-width:38px;height:40px}.typing-3d .typing-mode-tabs{grid-column:1/-1}.typing-3d .typing-question-card{border-radius:24px}.typing-3d .t3-key{border-radius:12px;width:42px;height:50px;font-size:1.45rem}.typing-3d .t3-keys{gap:7px}.typing-3d .t3-key-slot{padding:12px 12px 16px}.typing-3d .typing-listening-prompt.t3-orb{width:108px;height:108px}.typing-3d .typing-memory-card.t3-flip:not(.is-revealed){min-height:96px}.typing-3d .t3-flip:not(.is-revealed) .t3-face.is-front{flex-direction:row;align-items:center;padding:14px 16px}.typing-3d .t3-flip:not(.is-revealed) .t3-face-label{padding:4px 8px;font-size:.65rem;position:absolute;top:10px;left:16px}.typing-3d .t3-face .typing-memory-hidden{text-align:left;flex:1;align-items:center;gap:12px;margin-top:14px;display:flex}.typing-3d .t3-face .typing-memory-hidden strong{margin:0}.typing-3d .t3-face .typing-memory-hidden p{display:none}.typing-3d .t3-question-cube{width:48px;height:48px;box-shadow:0 5px 0 var(--t3-extrude);border-radius:15px}.typing-3d .t3-question-cube svg{width:24px;height:24px}.typing-3d .t3-face-himi{display:none}.typing-3d .typing-action-bar{border-radius:18px}.typing-3d .typing-action-bar button{min-height:46px;box-shadow:0 3px #eadcd8}.typing-3d .typing-action-bar .t3-kbd{display:none}}@media (prefers-reduced-motion:reduce){.typing-3d-intro *,.typing-3d-intro :before,.typing-3d-intro :after,.typing-3d .t3-tube *,.typing-3d .t3-key,.typing-3d .t3-key-slot,.typing-3d .t3-key:after,.typing-3d .t3-streak,.typing-3d .t3-streak svg,.typing-3d .t3-question-cube,.typing-3d .t3-eq i,.typing-3d .t3-orb:before,.typing-3d .t3-orb:after,.typing-3d .typing-question-card,.typing-3d .t3-ribbon{transition:none!important;animation:none!important}.typing-3d .t3-flip-inner{transition:none}.typing-3d-intro>*{animation:none}}
