:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#211a16;--ink-soft:#5f554c;--muted:#7c7268;--paper:#fbf6eb;--paper-deep:#f1e8d7;--paper-warm:#fffaf0;--surface:#fffdf7;--surface-strong:#fffaf0;--cinnabar:#b33428;--cinnabar-dark:#7d2019;--gold:#b88622;--gold-soft:#efe0b8;--jade:#2f7b68;--teal:#0f766e;--blue:#246b96;--success:#1d7a4f;--danger:#b42318;--warning:#9a650f;--line:#dfd1bc;--line-strong:#cdb99e;--shadow-sm:0 8px 22px #4a2f1d14;--shadow-md:0 18px 44px #4a2f1d24;--shadow-lg:0 26px 72px #4a2f1d33;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--ring:0 0 0 3px #b334282e;--font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-hanzi:"Noto Serif SC", "Songti SC", SimSun, "Microsoft YaHei", serif;font-family:var(--font-ui);color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 10%,#b8862221,#0000 28%),radial-gradient(circle at 92% 4%,#2f7b681f,#0000 26%),linear-gradient(135deg,#f9f0dd 0%,#fffaf0 46%,#efe5d2 100%);margin:0}body:before{content:"";z-index:-2;opacity:.28;pointer-events:none;background-image:linear-gradient(30deg,#7d20190a 12%,#0000 12.5% 87%,#7d20190a 87.5%),linear-gradient(150deg,#7d20190a 12%,#0000 12.5% 87%,#7d20190a 87.5%),linear-gradient(30deg,#2f7b6809 12%,#0000 12.5% 87%,#2f7b6809 87.5%),linear-gradient(150deg,#2f7b6809 12%,#0000 12.5% 87%,#2f7b6809 87.5%);background-position:0 0,0 0,22px 38px,22px 38px;background-size:44px 76px;position:fixed;inset:0}body:after{content:"";z-index:-1;opacity:.32;pointer-events:none;background-image:linear-gradient(#ffffff38 1px,#0000 1px),linear-gradient(90deg,#7d201909 1px,#0000 1px);background-size:24px 24px;position:fixed;inset:0}button,input,select{font:inherit}button{border:0}svg{flex:none}.app-shell{min-height:100vh}:focus-visible{box-shadow:var(--ring);outline:none}.toast{z-index:80;border-radius:var(--radius-md);color:#fffaf0;max-width:min(92vw,560px);box-shadow:var(--shadow-lg);white-space:pre-line;background:#241914;border:1px solid #fbf6eb2e;padding:12px 18px;animation:.2s toastIn;position:fixed;top:18px;left:50%;transform:translate(-50%)}.login-screen{place-items:center;min-height:100vh;padding:34px 16px;display:grid;position:relative;overflow:hidden}.login-ornament{aspect-ratio:1;opacity:.55;background:linear-gradient(45deg,#0000 47%,#b3342814 47% 53%,#0000 53%),linear-gradient(-45deg,#0000 47%,#2f7b6814 47% 53%,#0000 53%);border:1px solid #b8862242;border-radius:50%;width:min(72vw,620px);position:absolute}.login-card{z-index:1;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, #fffdf7f7, #fffaf0f0), var(--surface);width:min(100%,410px);box-shadow:var(--shadow-lg);gap:14px;padding:54px 34px 34px;animation:.28s rise;display:grid;position:relative}.login-card:before,.setup-panel:before,.result-card:before,.quiz-card:before,.flash-face:before,.modal:before,.modal-content:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #b8862238;position:absolute;inset:10px}.login-mark{border-radius:var(--radius-lg);background:var(--cinnabar);color:#fff7e4;width:70px;height:70px;font:800 44px/1 var(--font-hanzi);box-shadow:var(--shadow-md);border:3px solid #fff6e7;place-items:center;display:grid;position:absolute;top:-34px;left:50%;transform:translate(-50%)}.login-kicker,.section-kicker{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:900}.login-card h1,.select-hero h1,.setup-panel h1,.result-card h1{color:var(--cinnabar-dark);font-family:var(--font-hanzi);letter-spacing:0;margin:0}.login-card h1{text-align:center;font-size:36px}.login-card p,.select-hero p,.setup-panel p,.result-card p{color:var(--muted);margin:0;line-height:1.55}.login-card>p{text-align:center;margin-bottom:8px}.login-card label,.modal label,.modal-content label,.form-group label{color:var(--cinnabar-dark);letter-spacing:.08em;text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}input,select{border:1px solid var(--line);border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--ink);background:#fffdf7f2;outline:none;padding:10px 12px;transition:border-color .16s,box-shadow .16s,background .16s}input:focus,select:focus{border-color:var(--cinnabar);box-shadow:var(--ring);background:#fff}input::placeholder{color:#988a7a}.login-card button,.primary,.admin-btn{border-radius:var(--radius-md);background:var(--cinnabar);color:#fffaf0;cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-weight:900;transition:transform .16s,background .16s,box-shadow .16s,opacity .16s;display:inline-flex;box-shadow:0 10px 22px #b3342838}.login-card button:hover,.primary:hover,.admin-btn:hover{background:var(--cinnabar-dark);transform:translateY(-1px);box-shadow:0 14px 28px #b3342842}.login-card button:disabled,.primary:disabled,.admin-btn:disabled,.login-card button:disabled:hover,.primary:disabled:hover,.admin-btn:disabled:hover{color:#83776a;box-shadow:none;cursor:not-allowed;opacity:1;background:#d8cec0;transform:none}.auth-tabs,.segment{border:1px solid var(--line);border-radius:var(--radius-lg);background:#f1e8d7b8;gap:4px;min-height:46px;padding:4px;display:inline-flex}.auth-tabs{grid-template-columns:1fr 1fr;display:grid}.login-card .auth-tabs button,.segment button{border-radius:var(--radius-md);min-height:38px;color:var(--ink-soft);box-shadow:none;cursor:pointer;white-space:nowrap;background:0 0;padding:0 14px;font-weight:900;transition:color .16s,background .16s}.login-card .auth-tabs button:hover,.segment button:hover:not(.active){color:var(--cinnabar-dark);background:#b3342814;transform:none}.login-card .auth-tabs button.active,.segment button.active{background:var(--cinnabar);color:#fffaf0}.primary.secondary{background:var(--jade);box-shadow:0 10px 22px #2f7b682e}.primary.secondary:hover{background:#215f51}.primary.secondary:disabled,.primary.secondary:disabled:hover{color:#4f4035;box-shadow:none;cursor:not-allowed;opacity:1;background:#efe5d4;border:1px solid #cbb89d;transform:none}.login-card button:disabled:after,.primary:disabled:after,.admin-btn:disabled:after{animation:none;display:none}.primary.full{width:100%}.muted{color:var(--muted);font-size:13px}.page{min-height:100vh;padding-bottom:42px}.page.narrow{max-width:760px;margin:0 auto;padding-inline:16px}.app-header{z-index:30;background:linear-gradient(135deg, #7d2019fa, #3a1f19f7), var(--cinnabar-dark);color:#fff8e8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #fbf6eb21;justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:10px max(18px,50vw - 590px);display:flex;position:sticky;top:0;box-shadow:0 14px 34px #4a2f1d24}.brand{min-width:0;color:inherit;font-family:var(--font-hanzi);align-items:center;gap:12px;font-size:22px;font-weight:800;display:flex}.brand span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.ghost{border-radius:var(--radius-md);min-height:40px;color:var(--cinnabar-dark);cursor:pointer;background:#fffdf7f2;border:1px solid #7d201933;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:800;transition:transform .16s,border-color .16s,background .16s,color .16s;display:inline-flex}.ghost:hover{background:#fff;border-color:#b3342861;transform:translateY(-1px)}.ghost:disabled{opacity:.55;cursor:not-allowed;transform:none}.ghost.circle,.icon-only{width:40px;min-height:40px;padding:0}.app-header .ghost{color:#fff8e8;background:#fffaf01f;border-color:#fffaf03d}.avatar{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--gold), #d8a53a);color:#2f1d12;cursor:pointer;width:40px;height:40px;font-weight:900;box-shadow:0 8px 18px #0000002e}.account{flex:none;position:relative}.account-menu{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(260px,88vw);color:var(--ink);box-shadow:var(--shadow-md);gap:8px;padding:12px;display:grid;position:absolute;top:calc(100% + 10px);right:0}.account-menu button{border-radius:var(--radius-md);background:var(--paper-deep);min-height:38px;color:var(--ink);cursor:pointer}.account-menu .danger,.ghost.danger{color:var(--danger)}.select-hero{gap:10px;max-width:1180px;margin:0 auto;padding:54px 18px 30px;display:grid}.select-hero h1{font-size:clamp(42px,7vw,82px);line-height:.98}.select-hero p{max-width:720px;font-size:17px}.admin-btn{background:var(--jade);justify-self:start;margin-top:8px;box-shadow:0 10px 22px #2f7b682e}.hsk-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1180px;margin:0 auto;padding:0 18px 36px;display:grid}.hsk-card{text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, #fffdf7f5, #fffaf0eb), var(--surface);min-height:230px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-top:5px solid;align-content:start;gap:10px;padding:24px;transition:transform .18s,box-shadow .18s,opacity .18s,border-color .18s;display:grid;position:relative;overflow:hidden}.hsk-card:after{content:"";border:1px solid #b886223d;width:150px;height:150px;position:absolute;bottom:-46px;right:-38px;transform:rotate(45deg)}.hsk-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-3px)}.hsk-card.locked{opacity:.58}.hsk-level{font:800 58px/1 var(--font-hanzi)}.hsk-card strong{font-size:18px}.hsk-card small,.hsk-card span{color:var(--muted)}.hsk-card b{color:var(--cinnabar-dark);align-items:center;gap:7px;margin-top:6px;display:inline-flex}.hsk-unlock-note{border-radius:var(--radius-md);background:#b886221f;border:1px solid #b8862261;align-self:start;width:fit-content;padding:5px 8px;font-weight:800;color:var(--cinnabar-dark)!important}.learn-page{max-width:1220px;margin:0 auto}.toolbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf6ebeb;grid-template-columns:minmax(340px,max-content) auto minmax(300px,1fr);align-items:center;gap:10px;padding:12px 18px;display:grid;position:sticky;top:62px}.toolbar.pending{cursor:progress}.toolbar .segment{width:100%;min-width:340px}.toolbar-icons,.toolbar-actions{align-items:center;gap:8px;display:flex}.toolbar-actions{justify-content:flex-end;min-width:0}.tool{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:42px;height:42px;color:var(--ink);cursor:pointer;flex:none;place-items:center;transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s;display:inline-grid}.tool:hover{box-shadow:var(--shadow-sm);border-color:#b3342852;transform:translateY(-1px)}.tool.active{background:var(--gold);border-color:var(--gold);color:#2f1d12}.tool.danger{background:var(--danger);border-color:var(--danger);color:#fff}.streak-meter{--reward-main:var(--gold);--reward-deep:var(--cinnabar-dark);--reward-soft:#b8862229;isolation:isolate;border:1px solid color-mix(in srgb, var(--reward-main) 46%, var(--line));background:linear-gradient(135deg, #fffdf7f5, #fff4e0eb), var(--surface);min-width:126px;height:46px;color:var(--reward-deep);border-radius:999px;flex:none;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;padding:5px 10px 6px 6px;line-height:1;animation:.26s cubic-bezier(.18,.88,.28,1.22) both streakMeterIn;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #4a2f1d1f,inset 0 0 0 1px #ffffff94}.streak-meter:before{content:"";border:1px solid color-mix(in srgb, var(--reward-main) 28%, transparent);border-radius:inherit;pointer-events:none;z-index:-1;position:absolute;inset:4px}.streak-meter.tier-jade{--reward-main:var(--jade);--reward-deep:#20594d;--reward-soft:#2f7b682e}.streak-meter.tier-gold,.streak-meter.tier-master,.streak-meter.tier-legend{--reward-main:#d29b24;--reward-deep:#7d3b18;--reward-soft:#d29b2433}.streak-meter.combo{transform:translateY(-1px)}.streak-orb{background:radial-gradient(circle at 34% 28%, #ffffffb8, transparent 26%), linear-gradient(135deg, var(--reward-main), var(--reward-deep));color:#fffaf0;width:32px;height:32px;box-shadow:0 8px 16px var(--reward-soft), inset 0 0 0 1px #fffaf047;border-radius:50%;place-items:center;animation:.38s cubic-bezier(.2,.9,.18,1.35) both streakOrbPop;display:grid}.streak-copy{gap:2px;min-width:0;display:grid}.streak-copy span{color:color-mix(in srgb, var(--reward-deep) 76%, var(--muted));letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:900}.streak-copy strong{color:var(--reward-deep);letter-spacing:0;font-size:19px;line-height:1}.streak-fill{background:#b886222e;border-radius:999px;height:3px;position:absolute;bottom:6px;left:48px;right:12px;overflow:hidden}.streak-fill:before{content:"";width:var(--streak-fill,12%);border-radius:inherit;background:linear-gradient(90deg, var(--reward-main), var(--reward-deep));height:100%;transition:width .22s ease-out;display:block}.search-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 18px;display:grid}.search-row span{min-width:82px;color:var(--muted);text-align:right;font-weight:900}.table-shell{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);margin:0 18px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:820px}th{z-index:1;color:#fff8e8;text-align:left;letter-spacing:.04em;text-transform:uppercase;background:#2a201b;padding:13px 12px;font-size:12px;position:sticky;top:0}td{border-top:1px solid var(--line);vertical-align:middle;padding:12px}tbody tr{content-visibility:auto;contain-intrinsic-size:64px}tbody tr:hover{background:#b8862212}tr.ok{background:#1d7a4f14}tr.bad{background:#b4231814}.hanzi-cell{font:800 28px/1.15 var(--font-hanzi);color:var(--cinnabar-dark)}.hanzi-cell small{font:800 10px/1 var(--font-ui);color:var(--gold);margin-top:4px;display:block}.example{max-width:340px}.example b,.flash-example b{font-family:var(--font-hanzi);color:var(--cinnabar-dark);display:block}.example span,.flash-example span{color:var(--muted);font-size:12px;font-style:italic;display:block}.example small,.flash-example small{color:var(--ink);font-size:12px;display:block}.speak,.star{border-radius:var(--radius-md);width:40px;height:40px;color:var(--cinnabar-dark);cursor:pointer;background:#fffaf0;border:1px solid #b334282e;place-items:center;margin-right:6px;transition:transform .16s,border-color .16s,background .16s,color .16s;display:inline-grid}.speak:hover:not(:disabled),.star:hover{background:#fff;border-color:#b3342857;transform:translateY(-1px)}.speak:disabled{cursor:not-allowed;opacity:.62}.speak.large{width:54px;height:54px;margin:0}.speak.playing{color:var(--jade);background:#2f7b6817;border-color:#2f7b686b;animation:1s ease-in-out infinite pulse}.speak.error{color:#fff;border-color:var(--danger);background:var(--danger);animation:.38s ease-in-out shake}.star{color:#b8a990;margin:0}.star.on{color:var(--gold);background:#b886221f}.answer-input{min-width:220px}.answer-done{gap:4px;display:grid}.answer-done small{color:var(--danger)}.status-icon{vertical-align:middle}.status-icon.ok{color:var(--success)}.status-icon.bad{color:var(--danger)}.combo-burst{z-index:120;--reward-main:#d29b24;--reward-deep:#7d2019;--reward-glow:#d29b2452;pointer-events:none;width:min(340px,100vw - 32px);animation:2.25s cubic-bezier(.2,.82,.2,1) forwards comboBurst;position:fixed;top:50%;left:50%}.combo-burst.tier-jade{--reward-main:var(--jade);--reward-deep:#20594d;--reward-glow:#2f7b684d}.combo-burst.tier-gold,.combo-burst.tier-master,.combo-burst.tier-legend{--reward-main:#d9a32e;--reward-deep:#7d3b18;--reward-glow:#d9a32e5c}.combo-aura{background:radial-gradient(circle, var(--reward-glow), transparent 58%), conic-gradient(from 20deg, transparent, #fffaf073, transparent, #b8862252, transparent);opacity:0;filter:blur(1px);border-radius:999px;animation:2.25s forwards comboAura;position:absolute;inset:-58px}.combo-card{isolation:isolate;color:#fffaf0;background:radial-gradient(circle at 50% 0,#fffaf02e,#0000 40%),linear-gradient(145deg,#2f1712 0%,#6f2018 58%,#2a1712 100%);border:1px solid #efe0b8ad;border-radius:18px;justify-items:center;gap:5px;min-height:178px;padding:26px 28px 24px;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 74px #211a1652,inset 0 0 0 1px #fffaf01f}.combo-card:before{content:"";z-index:-1;border:1px solid #efe0b847;border-radius:14px;position:absolute;inset:12px}.combo-card:after{content:"";z-index:-2;opacity:.5;background-image:linear-gradient(45deg,#0000 46%,#efe0b81a 47% 53%,#0000 54%),linear-gradient(-45deg,#0000 46%,#2f7b681a 47% 53%,#0000 54%);background-size:82px 82px;position:absolute;inset:0}.combo-seal{background:radial-gradient(circle at 34% 28%, #ffffff5c, transparent 24%), linear-gradient(135deg, var(--reward-main), var(--reward-deep));color:#fffaf0;border:2px solid #fffaf0a3;border-radius:16px;place-items:center;width:56px;height:56px;animation:.56s cubic-bezier(.2,.9,.18,1.35) both comboSeal;display:grid;box-shadow:0 12px 28px #0000003d,inset 0 0 0 1px #fffaf02e}.combo-label{color:#f6df9b;letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-weight:900}.combo-card strong{color:#fff7d6;letter-spacing:0;text-shadow:0 8px 22px #00000047;font-size:clamp(50px,10vw,72px);line-height:1;animation:.42s ease-out 80ms both comboCount}.combo-card small{color:#fff8dfdb;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.combo-stroke{z-index:-1;color:#fffaf014;font:900 92px/1 var(--font-hanzi);position:absolute;bottom:-38px;right:-12px}.combo-spark{width:10px;height:10px;box-shadow:38px 18px 0 var(--reward-main), -44px 24px 0 #fffaf0e6, 24px -36px 0 var(--reward-main), -26px -32px 0 #fffaf0e6;background:#fff7d6;border-radius:50%;animation:1.5s ease-out forwards comboSpark;position:absolute}.spark-a{top:20px;left:44px}.spark-b{animation-delay:60ms;bottom:28px;right:46px}.spark-c{animation-delay:.12s;top:48%;right:32px}.load-more{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-height:42px;color:var(--cinnabar-dark);cursor:pointer;justify-content:center;align-items:center;margin:18px auto 0;padding:0 18px;font-weight:900;display:flex}.state{color:var(--muted);place-items:center;gap:8px;margin:34px auto;display:grid}.state div{font:800 58px/1 var(--font-hanzi);color:var(--cinnabar)}.setup-panel,.result-card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fffdf7f2;gap:18px;margin-top:34px;padding:30px;display:grid;position:relative}.setup-panel h1,.result-card h1,.admin-section h2,.import-stats h3,.import-info h4{align-items:center;gap:10px;display:inline-flex}.result-unlock-note{font-size:14px}.control{gap:8px;display:grid}.control>span{color:var(--cinnabar-dark);font-weight:900}.switch-row{border-top:1px solid var(--line);min-height:48px;color:var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-weight:700;display:flex}.switch-row.disabled{opacity:.5}.switch-row input,.checkbox-label input[type=checkbox]{width:42px;min-height:auto;accent-color:var(--cinnabar)}.progress-line{background:#e4d7c4;border-radius:999px;height:9px;overflow:hidden}.progress-line span,.quiz-progress span{background:linear-gradient(90deg, var(--gold), #dca544);height:100%;transition:width .22s;display:block}.actions{flex-wrap:wrap;gap:10px;display:flex}.quiz-screen,.flash-screen{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.typing-screen{flex-direction:column;min-height:100vh;display:flex}.quiz-top{color:#fff8e8;background:linear-gradient(135deg,#7d2019,#2a201b);grid-template-columns:minmax(120px,240px) 1fr auto;align-items:center;gap:14px;min-height:64px;padding:12px 18px;display:grid}.quiz-top div:first-child{gap:2px;display:grid}.quiz-top b{align-items:center;gap:7px;display:inline-flex}.quiz-top>div:first-child span{color:#fffaf0c2;font-size:13px}.quiz-progress{background:#fffaf02e;border-radius:999px;height:8px;overflow:hidden}.quiz-top-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.quiz-top .streak-meter{background:linear-gradient(135deg,#fffdf7f5,#fff4e0eb),#fffaf0;min-width:132px;height:44px}.quiz-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(92vw,660px);box-shadow:var(--shadow-md);place-self:center;justify-items:center;gap:16px;padding:32px;animation:.2s rise;display:grid;position:relative}.quiz-card p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:900}.quiz-card h1{font:800 clamp(66px, 14vw, 112px)/1 var(--font-hanzi);color:var(--cinnabar-dark);margin:0}.quiz-card h2{text-align:center;margin:0;font-size:clamp(26px,6vw,42px)}.quiz-card em{color:var(--muted);font-size:22px}.choices{gap:10px;width:100%;margin-top:8px;display:grid}.choices button{border:1px solid var(--line);border-radius:var(--radius-md);min-height:56px;color:var(--ink);cursor:pointer;background:#fffdf7;font-size:17px;font-weight:800;transition:transform .16s,border-color .16s,background .16s}.choices button:hover:not(:disabled){border-color:var(--gold);background:#fffaf0;transform:translateY(-1px)}.choices button.correct{border-color:var(--success);color:var(--success);background:#1d7a4f1f}.choices button.wrong{border-color:var(--danger);color:var(--danger);background:#b423181f}.result-list{gap:8px;display:grid}.result-item{text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;background:#fffdf7;grid-template-columns:30px 78px 1fr;align-items:center;gap:10px;min-height:60px;padding:10px;display:grid}.result-item b{font:800 28px/1 var(--font-hanzi);color:var(--cinnabar-dark)}.result-item span:not(.check),.result-item small{color:var(--muted);display:block}.check{border:2px solid var(--line);border-radius:var(--radius-sm);color:#0000;place-items:center;width:26px;height:26px;display:grid}.check.on{border-color:var(--gold);background:var(--gold);color:#2f1d12}.flash-card{width:min(92vw,430px);height:470px;transform-style:preserve-3d;cursor:pointer;place-self:center;transition:transform .52s cubic-bezier(.2,.8,.2,1);position:relative}.flash-card.flipped{transform:rotateY(180deg)}.flash-face{backface-visibility:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);align-content:center;place-items:center;gap:12px;padding:30px;display:grid;position:absolute;inset:0}.flash-face.back{transform:rotateY(180deg)}.flash-face h1{font:800 98px/1 var(--font-hanzi);color:var(--cinnabar-dark);margin:0}.flash-face h2{text-align:center;margin:0;font-size:32px}.flash-face p,.flash-face em{color:var(--muted);margin:0;font-size:22px}.flash-face .float{position:absolute;top:18px;right:18px}.flash-example{border-left:3px solid var(--gold);border-radius:var(--radius-md);background:var(--paper-deep);width:100%;padding:14px}.flash-nav{justify-content:center;gap:16px;padding:18px;display:flex}.flash-nav button{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:58px;min-height:46px;color:var(--cinnabar-dark);cursor:pointer;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.flash-nav button:disabled{opacity:.35;cursor:default}.modal-backdrop,.modal-overlay{z-index:70;background:#211a1685;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal,.modal-content{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,440px);max-height:90vh;box-shadow:var(--shadow-lg);gap:12px;padding:26px;display:grid;position:relative;overflow-y:auto}.modal h2,.modal-content h2{color:var(--cinnabar-dark);margin:0 0 8px}.modal-close{border-radius:var(--radius-md);background:var(--paper-deep);width:36px;height:36px;color:var(--ink);cursor:pointer;place-items:center;display:grid;position:absolute;top:10px;right:10px}.typing-card{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:30px;padding:34px 16px;display:flex}.typing-word{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.typing-word h1{color:var(--cinnabar-dark);font:800 76px/1 var(--font-hanzi);margin:0}.typing-meaning{color:var(--muted);margin:0;font-size:18px}.typing-input-area{flex-direction:column;gap:12px;width:min(100%,540px);display:flex}.typing-input-area label{color:var(--ink);font-size:14px;font-weight:900}.typing-input{border:2px solid var(--line);background:var(--surface);text-align:center;padding:16px 20px;font-size:24px}.typing-input-warning{color:var(--danger);margin:-4px 0 0;font-size:13px;line-height:1.4}.typing-hint{color:var(--muted);text-align:center;font-size:14px}.typing-hint p,.info-box p{align-items:center;gap:7px;display:inline-flex}.typing-hint code,.info-box code{border-radius:var(--radius-sm);color:var(--cinnabar-dark);background:#fffaf0;padding:2px 6px;font-family:Courier New,monospace}.info-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-deep);margin:6px 0;padding:16px}.info-box p{margin:0 0 8px;font-size:14px}.info-box ul{color:var(--muted);margin:0;padding-left:20px;font-size:14px}.info-box li{margin:4px 0}.typing-stats{grid-template-columns:1fr 1fr;gap:16px;width:100%;margin:20px 0 4px;display:grid}.stat-item{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-deep);flex-direction:column;align-items:center;padding:20px;display:flex}.stat-value{color:var(--cinnabar);font-size:36px;font-weight:900}.stat-label{color:var(--muted);margin-top:4px;font-size:14px}.typing-breakdown{grid-template-columns:repeat(2,1fr);gap:12px;width:100%;margin:16px 0;display:grid}.breakdown-item{border-radius:var(--radius-md);text-align:center;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:12px;font-size:14px;font-weight:900;display:inline-flex}.breakdown-item.perfect{color:var(--success);background:#1d7a4f1a;border:1px solid #1d7a4f3d}.breakdown-item.good{color:var(--warning);background:#b886221c;border:1px solid #b8862247}.breakdown-item.partial{color:var(--blue);background:#246b961a;border:1px solid #246b9642}.breakdown-item.wrong{color:var(--danger);background:#b423181a;border:1px solid #b4231842}.typing-result-item{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.typing-result-item.ok{background:#1d7a4f0d;border-color:#1d7a4f4d}.typing-result-item.partial{background:#b886220f;border-color:#b886224d}.typing-result-item.warning{background:#246b960d;border-color:#246b964d}.typing-result-item.bad{background:#b423180d;border-color:#b423184d}.typing-result-word,.typing-result-user{flex-direction:column;gap:4px;display:flex}.typing-result-word b{color:var(--ink);font:800 19px/1 var(--font-hanzi)}.typing-result-correct{color:var(--success);font-size:14px;font-weight:800}.typing-result-meaning,.typing-result-input{color:var(--muted);font-size:13px}.typing-result-user{align-items:flex-end}.typing-result-feedback{max-width:230px;color:var(--ink);text-align:right;font-size:13px}.typing-result-score{color:var(--cinnabar);font-size:16px;font-weight:900}.admin-page{max-width:1400px;margin:0 auto}.admin-tabs{border-bottom:1px solid var(--line);background:#fbf6ebd1;flex-wrap:wrap;gap:8px;padding:16px 18px;display:flex}.admin-tabs button{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-height:42px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;padding:0 16px;font-weight:900;display:inline-flex}.admin-tabs button:hover{color:var(--cinnabar-dark);background:#fff}.admin-tabs button.active{background:var(--cinnabar);color:#fffaf0;border-color:#b3342857}.admin-content{padding:22px 18px 32px}.admin-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.search-box{flex:1;gap:8px;max-width:440px;display:flex}.search-box button{border-radius:var(--radius-md);background:var(--jade);color:#fff;cursor:pointer;place-items:center;width:46px;display:grid}.badge,.color-badge{border-radius:var(--radius-sm);align-items:center;min-height:24px;padding:0 10px;font-size:.85rem;font-weight:900;display:inline-flex}.badge.admin{color:var(--danger);background:#b423181f}.badge.user{color:var(--success);background:#1d7a4f1f}.color-badge{color:#fff}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.required{color:var(--danger)}button.small{min-height:40px;padding:0 10px;font-size:.9rem}.loading{color:var(--muted);text-align:center;padding:3rem;font-size:1.1rem}.admin-section{gap:18px;display:grid}.admin-section h2,.import-stats h3,.repair-panel h3,.import-info h4{color:var(--ink);margin:0}.import-stats,.repair-panel,.import-info{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.import-stats{padding:20px}.vocab-counts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:16px;display:grid}.count-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper-warm);text-align:center;flex-direction:column;padding:14px;display:flex}.count-level{color:var(--muted);margin-bottom:4px;font-size:14px;font-weight:900}.count-value{color:var(--cinnabar);font-size:24px;font-weight:900}.repair-panel{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.repair-panel p{color:var(--muted);margin:6px 0 0;font-size:14px}.import-form{gap:18px;margin-top:4px;display:grid}.form-group{gap:8px;display:grid}.file-selected{color:var(--success);align-items:center;gap:7px;margin:2px 0 0;font-size:14px;font-weight:800;display:inline-flex}.import-info{border-left:4px solid var(--jade);padding:16px}.import-info ul{margin:8px 0;padding-left:20px}.import-info li{color:var(--muted);margin:4px 0;font-size:14px}.import-info p{color:var(--muted);margin:8px 0 0;font-size:13px}.checkbox-group{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.checkbox-label{align-items:center;gap:8px;min-height:36px;color:var(--ink)!important;letter-spacing:0!important;text-transform:none!important;font-size:14px!important;font-weight:700!important;display:flex!important}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes streakMeterIn{0%{opacity:0;transform:translateY(5px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes streakOrbPop{0%{opacity:0;transform:scale(.55)rotate(-18deg)}62%{opacity:1;transform:scale(1.12)rotate(6deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes comboBurst{0%{opacity:0;transform:translate(-50%,-42%)scale(.82)rotate(-2deg)}14%,76%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-58%)scale(.94)rotate(1deg)}}@keyframes comboAura{0%{opacity:0;transform:scale(.58)rotate(0)}18%{opacity:.88;transform:scale(.92)rotate(18deg)}to{opacity:0;transform:scale(1.24)rotate(54deg)}}@keyframes comboSeal{0%{opacity:0;transform:scale(.62)rotate(-18deg)}64%{opacity:1;transform:scale(1.12)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes comboCount{0%{opacity:0;transform:translateY(10px)scale(.86)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes comboSpark{0%{opacity:0;transform:translate(0,0)scale(.45)rotate(0)}20%{opacity:1}to{opacity:0;transform:translateY(-22px)scale(1.32)rotate(28deg)}}@media (width<=960px){.hsk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center}.toolbar .segment{min-width:0}.toolbar-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.toolbar-actions .primary{width:100%;padding:0 12px}}@media (width<=680px){.app-header{min-height:58px;padding-inline:12px}.brand{font-size:18px}.select-hero{padding:38px 14px 22px}.select-hero h1{font-size:44px}.hsk-grid{grid-template-columns:1fr;padding-inline:14px}.toolbar{grid-template-columns:1fr;padding:10px 12px;top:58px}.toolbar-mode,.toolbar-icons,.toolbar-actions{width:100%}.toolbar .segment{grid-template-columns:repeat(3,minmax(0,1fr));min-height:44px;padding:4px;display:grid}.toolbar .segment button{min-width:0;min-height:38px;padding:0 8px;font-size:13px;line-height:1.1}.toolbar-icons{grid-template-columns:repeat(auto-fit,minmax(48px,1fr));display:grid}.tool,.streak-meter{width:100%;height:42px}.toolbar-actions .primary{min-height:42px;padding:0 8px;font-size:13px}.search-row{grid-template-columns:1fr;padding:12px}.search-row span{text-align:left}.table-shell{margin:0 12px}.vocab-table-shell{box-shadow:none;background:0 0;border:0;overflow:visible}.vocab-table{border-collapse:separate;border-spacing:0 12px;min-width:0}.vocab-table thead{display:none}.vocab-table,.vocab-table tbody,.vocab-table tr,.vocab-table td{width:100%;display:block}.vocab-table tbody tr{contain:layout style paint;contain-intrinsic-size:auto;border-radius:var(--radius-lg);background:linear-gradient(135deg, #fffdf7fa, #fff6e7f0), var(--surface);box-shadow:var(--shadow-sm);border:1px solid #b886224d;padding:14px;position:relative}.vocab-table td{border:0;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;min-height:34px;padding:7px 0;display:grid}.vocab-table td:before{content:attr(data-label);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:900}.vocab-table .cell-value{min-width:0}.vocab-table .hanzi-cell .cell-value{gap:3px;display:inline-grid}.vocab-table .hanzi-cell{font-size:34px}.vocab-table .example .cell-value{gap:2px;display:grid}.vocab-table .example{max-width:none}.vocab-table td[data-label=Nhớ],.vocab-table td[data-label=KQ]{border-top:1px dashed #b8862247;margin-top:8px;padding-top:12px}.admin-table-shell{box-shadow:none;background:0 0;border:0;overflow:visible}.admin-table{border-collapse:separate;border-spacing:0 12px;min-width:0}.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{width:100%;display:block}.admin-table tbody tr{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fffdf7f2;border:1px solid #b886224d;padding:14px}.admin-table td{border:0;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;min-height:34px;padding:7px 0;display:grid}.admin-table td:before{content:attr(data-label);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:900}.admin-row-actions{gap:8px;display:flex}.setup-panel,.result-card{padding:22px}.quiz-top{grid-template-columns:1fr}.quiz-progress{grid-column:1/-1}.quiz-top-actions{justify-content:space-between;width:100%}.quiz-top .streak-meter{width:min(190px,100%);min-width:0}.quiz-card{padding:24px 18px}.flash-card{height:400px}.flash-face h1{font-size:74px}.typing-word h1{font-size:58px}.typing-input{font-size:20px}.typing-stats,.typing-breakdown{grid-template-columns:1fr}.typing-result-item{flex-direction:column;align-items:flex-start}.typing-result-user{align-items:flex-start;width:100%}.typing-result-feedback{text-align:left;max-width:none}.admin-toolbar,.repair-panel{flex-direction:column;align-items:stretch}.search-box{max-width:none}.repair-panel .primary,.admin-toolbar .primary{width:100%}.modal,.modal-content{padding:22px}}@media (width<=420px){.login-card{padding-inline:22px}.segment{width:100%;overflow-x:auto}.result-item{grid-template-columns:28px 64px 1fr}.actions{display:grid}.actions>button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.combo-burst{opacity:1!important;animation:none!important;transform:translate(-50%,-50%)!important}.combo-aura,.combo-spark{display:none!important}}body{background:radial-gradient(circle at 12% 10%,#b8862233,#0000 30%),radial-gradient(circle at 88% 6%,#2f7b682b,#0000 26%),radial-gradient(circle at 50% 105%,#b334281f,#0000 34%),linear-gradient(135deg,#efe0c6 0%,#fff7e7 38%,#e9ddc8 100%)}body:before{opacity:.38;background-image:linear-gradient(30deg,#7d201913 12%,#0000 12.5% 87%,#7d201913 87.5%),linear-gradient(150deg,#7d201913 12%,#0000 12.5% 87%,#7d201913 87.5%),linear-gradient(30deg,#2f7b680f 12%,#0000 12.5% 87%,#2f7b680f 87.5%),linear-gradient(150deg,#2f7b680f 12%,#0000 12.5% 87%,#2f7b680f 87.5%)}.login-screen{grid-template-columns:minmax(360px,520px) minmax(380px,470px);justify-content:center;place-items:center stretch;gap:clamp(28px,5vw,72px);padding:48px 28px}.login-screen:before,.select-hero:before,.quiz-screen:before,.flash-screen:before,.typing-screen:before{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 48%,#b886221f 48% 52%,#0000 52%),linear-gradient(-45deg,#0000 48%,#2f7b681a 48% 52%,#0000 52%);border:1px solid #7d201924;border-radius:50%;width:460px;height:460px;position:fixed;inset:auto auto -180px -160px}.login-art{background:linear-gradient(145deg, #7d2019f2, #2b1c15f5), var(--cinnabar-dark);color:#fff8e8;border:1px solid #7d20192e;border-radius:18px;place-items:center;width:100%;min-height:640px;display:grid;position:relative;overflow:hidden;box-shadow:0 34px 90px #4a2f1d42,inset 0 0 0 1px #fffaf01f}.login-art:before{content:"";border:1px solid #efe0b847;border-radius:12px;position:absolute;inset:24px}.login-art:after{content:"";background-image:linear-gradient(60deg,#efe0b81f 1px,#0000 1px),linear-gradient(120deg,#efe0b81a 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:-30%;transform:rotate(8deg)}.art-scroll{z-index:1;background:linear-gradient(180deg, #fffaf0fa, #eedcbaed), var(--paper);width:min(74%,310px);min-height:440px;color:var(--cinnabar-dark);border:1px solid #b886226b;border-radius:160px 160px 16px 16px;align-content:center;justify-items:center;gap:22px;padding:34px 28px;display:grid;position:relative;box-shadow:0 28px 64px #0000003d,inset 0 0 42px #b8862229}.art-scroll span{writing-mode:vertical-rl;font:900 94px/.9 var(--font-hanzi);letter-spacing:.08em}.art-scroll b{border:2px solid var(--cinnabar);min-width:106px;min-height:48px;color:var(--cinnabar);letter-spacing:.18em;border-radius:999px;place-items:center;font-size:18px;display:grid}.art-scroll small{color:var(--gold);font:800 16px/1.4 var(--font-hanzi);letter-spacing:.18em}.art-stamps{z-index:2;gap:10px;display:grid;position:absolute;bottom:34px;right:34px}.art-stamps span{color:#fff8e8;width:54px;height:54px;font:900 28px/1 var(--font-hanzi);background:#b33428eb;border:2px solid #fffaf0d1;border-radius:8px;place-items:center;display:grid;box-shadow:0 12px 28px #00000038}.login-card{background:linear-gradient(180deg, #fffdf7fa, #fff6e7f5), var(--surface);border-width:2px;border-color:#b886225c;align-content:center;width:min(100%,470px);min-height:590px;padding:76px 42px 42px;box-shadow:0 34px 88px #4a2f1d2e,inset 0 0 0 10px #fffaf0b8}.login-mark{border-radius:12px;width:86px;height:86px;font-size:54px;top:-42px;box-shadow:0 18px 42px #7d201947,inset 0 0 0 1px #fffaf047}.login-kicker{background:#b8862214;border:1px solid #b8862242;border-radius:999px;justify-self:center;padding:7px 12px}.login-card h1{text-shadow:0 10px 26px #b334281f;font-size:48px}.login-card p{font-size:16px}.auth-tabs{background:#e2d3bcb8;min-height:58px;padding:6px}.login-card .auth-tabs button{min-height:46px;font-size:16px}.login-card button[type=submit]{min-height:54px;margin-top:4px;font-size:17px}.select-hero{background:linear-gradient(120deg, #7d2019f0, #2b201af0), var(--cinnabar-dark);color:#fff8e8;box-shadow:var(--shadow-lg);border:1px solid #b8862247;border-radius:18px;margin-top:24px;padding:44px 30px;position:relative;overflow:hidden}.select-hero:after{content:"学";color:#fffaf014;font:900 clamp(130px, 16vw, 230px)/1 var(--font-hanzi);position:absolute;bottom:-34px;right:clamp(20px,6vw,78px)}.select-hero h1,.select-hero p{z-index:1;color:#fff8e8;position:relative}.select-hero .section-kicker{z-index:1;color:#efd299;position:relative}.select-hero p{color:#fff8e8c7}.admin-btn{z-index:1;color:#2f1d12;background:#efd299;position:relative}.admin-btn:hover{color:#2f1d12;background:#f7dfa7}.hsk-grid{margin-top:18px}.hsk-card{background:radial-gradient(circle at 85% 18%, color-mix(in srgb, currentColor 18%, transparent), transparent 34%), linear-gradient(180deg, #fffdf7fa, #fff5e3f2);border-top-width:0;min-height:260px;padding:28px;box-shadow:0 20px 42px #4a2f1d1f,inset 0 0 0 1px #ffffff8c}.hsk-card:before{content:"";border:1px solid color-mix(in srgb, currentColor 30%, transparent);pointer-events:none;border-radius:6px;position:absolute;inset:12px}.hsk-level{background:#fffaf0b8;border:2px solid;border-radius:16px;place-items:center;width:82px;height:82px;font-size:54px;display:grid;box-shadow:inset 0 0 28px #b886221f}.toolbar{background:linear-gradient(180deg, #fffdf7f5, #f4e8d3eb), var(--surface);box-shadow:var(--shadow-md);border:1px solid #b8862247;border-radius:16px;margin:18px;top:80px}.table-shell,.setup-panel,.result-card,.quiz-card,.flash-face,.modal,.modal-content,.import-stats,.repair-panel,.import-info{border-color:#b8862257;box-shadow:0 22px 52px #4a2f1d24,inset 0 0 0 1px #ffffff94}th{background:linear-gradient(135deg,#2a201b,#6f221b)}.quiz-screen,.flash-screen,.typing-screen{background:radial-gradient(circle at 16% 12%,#b8862238,#0000 28%),radial-gradient(circle at 88% 18%,#2f7b682e,#0000 28%),linear-gradient(135deg,#f2e5cf,#fff7e8 44%,#eadcc5)}.quiz-top{border-bottom:1px solid #efe0b83d;box-shadow:0 16px 38px #2b201a38}.quiz-card{background:radial-gradient(circle at 50% 16%,#b886221a,#0000 32%),linear-gradient(#fffdf7fc,#fff6e7f7);width:min(92vw,760px);min-height:560px;padding:46px}.quiz-card h1{background:#fffaf0c2;border:1px solid #b8862247;border-radius:18px;padding:18px 34px;box-shadow:inset 0 0 42px #b886221f}.flash-card{width:min(92vw,500px);height:540px}.flash-face{background:radial-gradient(circle at 50% 14%,#b8862221,#0000 34%),linear-gradient(#fffdf7fc,#fff4e0f7)}.flash-face h1{background:#fffaf0c7;border:1px solid #b886224d;border-radius:18px;padding:18px 34px}.typing-card{background:radial-gradient(circle at 50% 36%,#fffdf7c2,#0000 38%);min-height:calc(100vh - 64px)}.typing-word{min-width:min(92vw,560px);box-shadow:var(--shadow-md);background:#fffdf7e6;border:1px solid #b8862252;border-radius:18px;padding:34px;position:relative;overflow:hidden}.typing-word h1{font-size:clamp(72px,12vw,126px)}.admin-tabs{box-shadow:var(--shadow-sm);background:linear-gradient(#fffdf7f5,#f4e8d3eb);border:1px solid #b8862242;border-radius:16px;margin:18px 18px 0}.admin-content{padding-top:18px}@media (width<=980px){.login-screen{grid-template-columns:1fr}.login-art{display:none}.login-card{min-height:auto}}@media (width<=680px){.login-screen{padding:44px 16px}.login-card{padding:66px 22px 28px;box-shadow:0 22px 58px #4a2f1d2e}.login-card h1{font-size:42px}.select-hero{margin-inline:14px;padding:34px 20px}.toolbar{margin:10px 12px;top:68px}.quiz-card{min-height:auto;padding:28px 18px}.flash-card{height:430px}.typing-word{padding:24px 18px}}.app-shell:before,.app-shell:after{content:"";z-index:-1;pointer-events:none;position:fixed}.app-shell:before{filter:blur(2px);background:radial-gradient(circle at 18% 24%,#b334281a,#0000 24%),radial-gradient(circle at 78% 18%,#2f7b681a,#0000 24%),radial-gradient(circle at 62% 78%,#b886221a,#0000 28%);animation:18s ease-in-out infinite alternate ambientDrift;inset:0}.app-shell:after{opacity:.26;background-image:linear-gradient(90deg,#0000 0 48%,#b886221f 49% 51%,#0000 52%),linear-gradient(0deg,#0000 0 48%,#7d201912 49% 51%,#0000 52%);background-size:128px 128px;animation:28s linear infinite latticePan;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 20%,#000,#0000 68%);mask-image:radial-gradient(circle at 50% 20%,#000,#0000 68%)}.login-art:after{animation:22s linear infinite latticePan}.art-scroll:before,.art-scroll:after{content:"";background:linear-gradient(90deg,#0000,#b88622bf,#0000),#7d2019;border-radius:999px;height:12px;position:absolute;left:24px;right:24px;box-shadow:0 8px 18px #4a2f1d33}.art-scroll:before{top:18px}.art-scroll:after{bottom:18px}.art-scroll span{animation:4.8s ease-in-out infinite inkFloat}.art-scroll b{position:relative;overflow:hidden}.art-scroll b:after,.login-card button[type=submit]:after,.primary:after,.admin-btn:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 0 35%,#ffffff57 48%,#0000 62% 100%);position:absolute;inset:0;transform:translate(-120%)}.art-scroll b:after{animation:3.8s ease-in-out infinite buttonSheen}.login-card button[type=submit],.primary,.admin-btn{position:relative;overflow:hidden}.login-card button[type=submit]:after,.primary:after,.admin-btn:after{animation:4.8s ease-in-out infinite buttonSheen}.login-mark{animation:4.6s ease-in-out infinite sealBreathe}.art-stamps span{animation:.7s both stampRise}.art-stamps span:nth-child(2){animation-delay:.14s}.art-stamps span:nth-child(3){animation-delay:.28s}.login-card,.select-hero,.toolbar,.setup-panel,.result-card,.quiz-card,.typing-word,.admin-tabs,.admin-content{animation:.5s cubic-bezier(.2,.8,.2,1) both pageReveal}.hsk-card{animation:.56s cubic-bezier(.2,.8,.2,1) both cardRise;animation-delay:calc(var(--card-index,0) * 70ms)}.hsk-card:hover{transform:translateY(-8px)rotate(-.4deg)}.hsk-card:hover .hsk-level{box-shadow:0 14px 30px color-mix(in srgb, currentColor 20%, transparent), inset 0 0 28px #b886222e;transform:translateY(-2px)scale(1.05)}.hsk-level{transition:transform .2s,box-shadow .2s}.hsk-card b:after{content:"";opacity:.48;transform-origin:0;background:currentColor;border-radius:999px;width:24px;height:2px;transition:transform .18s,opacity .18s;transform:scaleX(.45)}.hsk-card:hover b:after{opacity:.8;transform:scaleX(1)}tbody tr{animation:.32s both rowInkIn;animation-delay:calc(min(var(--row-index,0), 16) * 24ms)}.table-shell{position:relative}.table-shell:before,.setup-panel:after,.result-card:after,.quiz-card:after,.flash-face:after,.typing-word:after,.import-stats:after,.repair-panel:after,.import-info:after{content:"";pointer-events:none;position:absolute}.table-shell:before{opacity:0;background:linear-gradient(110deg,#0000 0 42%,#ffffff6b 50%,#0000 58% 100%);inset:0;transform:translate(-110%)}.table-shell:hover:before{opacity:1;animation:1s surfaceSweep}.tool,.ghost,.choices button,.flash-nav button,.admin-tabs button,.search-box button{transform-origin:50%}.tool:active,.ghost:active,.primary:active,.admin-btn:active,.choices button:active,.flash-nav button:active,.admin-tabs button:active,.search-box button:active{transform:translateY(1px)scale(.98)}.setup-panel:after,.result-card:after,.quiz-card:after,.flash-face:after,.typing-word:after,.import-stats:after,.repair-panel:after,.import-info:after{opacity:.58;z-index:0;background:linear-gradient(45deg,#0000 46%,#b3342814 47% 53%,#0000 54%),linear-gradient(-45deg,#0000 46%,#2f7b6814 47% 53%,#0000 54%);border:1px solid #b886222e;border-radius:50%;width:88px;height:88px;animation:18s linear infinite medallionTurn;top:14px;right:16px}.setup-panel>*,.result-card>*,.quiz-card>*,.flash-face>*,.typing-word>*,.import-stats>*,.repair-panel>*,.import-info>*{z-index:1;position:relative}.quiz-card h1,.flash-face h1,.typing-word h1{animation:.55s cubic-bezier(.2,.8,.2,1) both hanziFocus;position:relative}.quiz-card h1:after,.flash-face h1:after,.typing-word h1:after{content:"";transform-origin:0;background:linear-gradient(90deg,#0000,#b8862259,#0000);border-radius:999px;height:8px;animation:.7s .12s both brushUnderline;position:absolute;bottom:8px;left:16%;right:16%}.flash-card{perspective:1200px;filter:drop-shadow(0 30px 48px #4a2f1d1f)}.flash-card:not(.flipped) .front{animation:4.8s ease-in-out infinite cardBreath}.typing-input{transition:border-color .16s,box-shadow .16s,transform .16s,background .16s}.typing-input:focus{transform:translateY(-2px)}.typing-hint p,.info-box p{animation:3.8s ease-in-out infinite softGlow}.count-item,.stat-item,.typing-result-item,.result-item{transition:transform .18s,box-shadow .18s,border-color .18s}.count-item:hover,.stat-item:hover,.typing-result-item:hover,.result-item:hover{box-shadow:var(--shadow-sm);border-color:#b886226b;transform:translateY(-3px)}@keyframes ambientDrift{0%{transform:translate(-12px,-8px)scale(1)}to{transform:translate(18px,12px)scale(1.04)}}@keyframes latticePan{0%{background-position:0 0,0 0}to{background-position:128px 128px,-128px 128px}}@keyframes pageReveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes cardRise{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rowInkIn{0%{opacity:0;filter:blur(2px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes inkFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes sealBreathe{0%,to{transform:translate(-50%)scale(1);box-shadow:0 18px 42px #7d201947,inset 0 0 0 1px #fffaf047}50%{transform:translate(-50%)scale(1.035);box-shadow:0 24px 54px #7d201957,inset 0 0 0 1px #fffaf05c}}@keyframes stampRise{0%{opacity:0;transform:translateY(18px)rotate(5deg)scale(.88)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes buttonSheen{0%,58%{transform:translate(-120%)}82%,to{transform:translate(120%)}}@keyframes surfaceSweep{0%{transform:translate(-110%)}to{transform:translate(110%)}}@keyframes medallionTurn{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hanziFocus{0%{opacity:0;filter:blur(2px);transform:scale(.92)}to{opacity:1;filter:blur();transform:scale(1)}}@keyframes brushUnderline{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes cardBreath{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes softGlow{0%,to{filter:drop-shadow(0 0 #b8862200)}50%{filter:drop-shadow(0 0 8px #b8862247)}}@media (prefers-reduced-motion:reduce){.app-shell:before,.app-shell:after,.login-art:after,.art-scroll span,.art-scroll b:after,.login-card button[type=submit]:after,.primary:after,.admin-btn:after,.login-mark,.art-stamps span,.login-card,.select-hero,.toolbar,.setup-panel,.result-card,.quiz-card,.typing-word,.admin-tabs,.admin-content,.streak-meter,.streak-orb,.combo-burst,.combo-aura,.combo-seal,.combo-card strong,.combo-spark,.hsk-card,tbody tr,.setup-panel:after,.result-card:after,.quiz-card:after,.flash-face:after,.typing-word:after,.import-stats:after,.repair-panel:after,.import-info:after,.quiz-card h1,.flash-face h1,.typing-word h1,.quiz-card h1:after,.flash-face h1:after,.typing-word h1:after,.flash-card:not(.flipped) .front,.typing-hint p,.info-box p{animation:none!important}.combo-aura,.combo-spark{display:none!important}}
