.app-shell{width:min(100% - 3rem,760px);min-height:100dvh;margin:0 auto;padding:clamp(2rem,6vh,4.5rem) 0}.centered-panel{isolation:isolate;flex-direction:column;justify-content:center;align-items:center;padding-bottom:max(5rem,14dvh);display:flex;position:relative}.centered-panel:before{z-index:-1;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent) 8%, transparent);background:radial-gradient(circle, var(--surface) 0%, transparent 70%);content:"";pointer-events:none;width:min(85vw,34rem);animation:halo-enter 1.2s var(--ease-out) both;border-radius:50%;position:absolute}.brand-emblem{border:1px solid var(--border);background:var(--surface);width:4rem;height:4rem;box-shadow:0 8px 24px var(--shadow), inset 0 1px 0 var(--surface);animation:enter .7s var(--ease-out) both;border-radius:1.25rem;place-items:center;margin-bottom:2rem;display:grid}.brand-mark{width:2rem;height:2rem;stroke:var(--accent);stroke-width:1.25px;stroke-linejoin:round;flex:none}.brand-title{letter-spacing:.12em;animation:enter .8s 60ms var(--ease-out) both;margin:0;padding-left:.12em;font-family:Songti SC,Noto Serif CJK SC,STSong,SimSun,serif;font-size:clamp(2.75rem,10vw,4.5rem);font-weight:500;line-height:1.3}.primary-button,.option-button,.text-button{font:inherit;cursor:pointer}.primary-button{background:var(--accent);min-height:3.25rem;color:var(--on-accent);letter-spacing:.04em;box-shadow:0 4px 8px var(--shadow), 0 12px 24px var(--shadow);transition:background .18s ease, box-shadow .22s ease, transform .22s var(--ease-out);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:1.75rem;padding:.8rem 1.5rem;font-size:.94rem;font-weight:600;display:inline-flex}.centered-panel>.primary-button{min-width:12rem;animation:enter .8s .12s var(--ease-out) backwards;margin-top:2.75rem}.arrow-icon{stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem;transition:transform .22s var(--ease-out);flex:none}.primary-button:active:not(:disabled){transform:scale(.98)}.primary-button:disabled{cursor:wait;opacity:.7}.loading-spinner{border:1.5px solid color-mix(in srgb, currentColor 30%, transparent);border-top-color:currentColor;border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}.centered-panel>[role=alert]{max-width:28rem;color:var(--warning);text-align:center;overflow-wrap:anywhere;margin:1.5rem 0 0;font-size:.9rem;line-height:1.7}.play-shell{padding-top:clamp(2rem,8vh,6rem)}.challenge-header{color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:1.25rem 1rem;margin:0 0 1.5rem;padding:0 .25rem;font-size:.8rem;font-weight:500;display:grid}.category-badge{border:1px solid color-mix(in srgb, var(--accent) 10%, transparent);background:var(--accent-soft);width:max-content;color:var(--accent-strong);border-radius:.5rem;padding:.4rem .7rem;font-size:.78rem;font-weight:550;line-height:1.4}.question-position{font-variant-numeric:tabular-nums;white-space:nowrap}.challenge-progress{grid-column:1/-1;grid-template-columns:repeat(10,1fr);gap:6px;display:grid}.challenge-progress span{background:var(--border);border-radius:999px;height:3px;transition:background .35s}.challenge-progress .progress-complete{background:var(--accent)}.challenge-progress .progress-current{background:color-mix(in srgb, var(--accent) 45%, var(--border))}.timer{min-width:4.5rem;height:2rem;color:var(--text);font-variant-numeric:tabular-nums;justify-content:flex-end;justify-self:end;align-items:center;gap:.55rem;font-size:1.25rem;transition:color .2s;display:inline-flex}.timer:before{content:"";border:1px solid;border-radius:50%;width:.45rem;height:.45rem}.timer-warning{color:var(--warning)}.timer-warning:before{background:currentColor;animation:1s ease-in-out infinite pulse}.timer-idle{color:var(--muted)}.timer-idle:before{display:none}.card{border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:0 2px 4px var(--shadow), 0 16px 48px var(--shadow);border-radius:1.5rem}.question-card{padding:clamp(1.25rem,4.5vw,2.75rem)}.question-card h1{letter-spacing:.01em;overflow-wrap:anywhere;animation:question-enter .28s var(--ease-out);margin:0;font-size:clamp(1.3rem,3.3vw,1.8rem);font-weight:600;line-height:1.7}.options{grid-template-columns:1fr;gap:.75rem;margin-top:2rem;display:grid}.option-button{border:1px solid var(--border);background:var(--option);width:100%;min-height:4.25rem;color:var(--text);text-align:left;border-radius:.85rem;align-items:center;gap:1rem;padding:.9rem 1.15rem;font-size:.96rem;font-weight:450;line-height:1.65;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;display:flex}.option-letter{width:1.7rem;height:1.7rem;color:var(--muted);flex:none;place-items:center;font-size:.7rem;font-weight:550;line-height:1;transition:color .2s;display:grid}.option-text{overflow-wrap:anywhere;flex:1;min-width:0}.option-button:disabled{cursor:default;opacity:1}.option-button:active:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.option-correct{border-color:var(--correct-border);background:var(--correct-bg);color:var(--correct)}.option-incorrect{border-color:var(--incorrect-border);background:var(--incorrect-bg);color:var(--incorrect)}.option-correct .option-letter,.option-incorrect .option-letter{color:inherit}.option-marker{text-align:center;flex:none;width:1.25rem;font-size:1.1rem;font-weight:700}.option-marker:not(:empty){animation:marker-enter .25s var(--ease-out)}.question-footer{min-height:4rem;padding-top:1rem}.feedback-toolbar{border-top:1px solid var(--border);animation:enter .24s var(--ease-out);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.score-row{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;font-size:.8rem;display:flex}.score-row p{white-space:nowrap;margin:0}.score-row p:first-child{color:var(--text);font-weight:600}.feedback-toolbar .text-button{white-space:nowrap;flex:none}.text-button{min-height:2rem;color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:.25rem;background:0 0;border:0;padding:.3rem 0;font-size:.78rem;transition:color .18s}.report-panel{border:1px solid var(--border);background:var(--option);animation:enter .24s var(--ease-out);border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem;padding:.75rem;display:flex}.report-panel p{min-width:0;color:var(--muted);overflow-wrap:anywhere;flex:1;margin:0;font-size:.8rem;line-height:1.6}.report-panel textarea{flex-basis:100%;order:3;min-height:7rem;margin:0}.compact-button,.review-copy-button{border:1px solid var(--border);background:var(--surface);min-height:2rem;color:var(--accent-strong);font:inherit;cursor:pointer;border-radius:.5rem;flex:none;padding:.35rem .7rem;font-size:.78rem;transition:background .18s,border-color .18s}textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:.5rem;padding:.75rem;font:.8rem/1.6 ui-monospace,monospace}.results-shell{animation:enter .4s var(--ease-out);flex-direction:column;gap:2.5rem;display:flex}.result-card{justify-content:space-between;align-items:center;gap:1.5rem;padding:1.75rem 2rem;display:flex}.result-summary{align-items:center;gap:1rem;display:flex}.final-score{color:var(--muted);white-space:nowrap;align-items:center;gap:.25rem;margin:0;font-size:.85rem;line-height:1;display:flex}.final-score strong{color:var(--text);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:500;line-height:1.2}.result-card .primary-button{gap:1rem;min-height:2.75rem;padding:.6rem 1.1rem;font-size:.85rem}.review-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;padding:0 .25rem;display:flex}.review-heading h1{letter-spacing:.03em;margin:0;font-size:1.25rem;font-weight:600}.review-heading>span{color:var(--muted);letter-spacing:.08em;font-size:.75rem}.challenge-review-list{gap:1rem;display:grid}.review-item{box-shadow:0 3px 12px var(--shadow);border-radius:1rem;padding:1.5rem 1.75rem}.review-item-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.review-item-actions{align-items:center;gap:.75rem;font-size:.78rem;display:flex}.review-item-actions strong{font-weight:500}.review-copy-error{color:var(--warning)!important}.review-item h2{overflow-wrap:anywhere;margin:1rem 0;font-size:1rem;font-weight:550;line-height:1.8}.review-item p{color:var(--muted);overflow-wrap:anywhere;margin:.4rem 0 0;font-size:.85rem;line-height:1.7}.review-correct{color:var(--correct)}.review-incorrect{color:var(--warning)}@media (hover:hover) and (pointer:fine){.primary-button:hover:not(:disabled){background:var(--accent-strong);box-shadow:0 6px 12px var(--shadow), 0 16px 32px var(--shadow);transform:translateY(-2px)}.primary-button:hover:not(:disabled) .arrow-icon{transform:translate(3px)}.option-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent)}.option-button:hover:not(:disabled) .option-letter{color:var(--accent-strong)}.compact-button:hover,.review-copy-button:hover{background:var(--accent-soft);border-color:var(--accent)}.text-button:hover{color:var(--accent-strong)}}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes halo-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes question-enter{0%{transform:translateY(4px)}to{transform:translateY(0)}}@keyframes marker-enter{0%{transform:scale(.7)}to{transform:scale(1)}}@keyframes pulse{50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:560px){.app-shell{width:calc(100% - 2rem)}.play-shell{padding-top:max(1.5rem, env(safe-area-inset-top))}.challenge-header{gap:1rem .5rem;margin-bottom:1rem;font-size:.75rem}.category-badge{padding:.35rem .5rem;font-size:.7rem}.timer{gap:.4rem;min-width:3.25rem;font-size:1.1rem}.card{border-radius:1.15rem}.options{gap:.65rem;margin-top:1.5rem}.option-button{gap:.7rem;min-height:3.75rem;padding:.85rem .75rem;font-size:.9rem}.option-letter{width:1.5rem;height:1.5rem}.score-row{gap:.25rem .65rem;font-size:.72rem}.result-card{flex-wrap:wrap;padding:1.25rem}.result-summary{gap:.65rem}.result-summary .brand-mark{width:1.5rem}.final-score strong{font-size:2rem}.review-item{padding:1.25rem}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;color:var(--text);background:var(--surface-page);--text:#263b37;--muted:#6e7972;--surface-page:#f6f5f0;--surface:#fffefa;--option:#fafaf6;--border:#e0e4dc;--shadow:#23392d0d;--accent:#286454;--accent-strong:#194c3e;--accent-soft:#eaf0e8;--on-accent:#fff;--warning:#b84e3b;--correct:#286345;--correct-bg:#e8f3e9;--correct-border:#7ca48a;--incorrect:#a13f3f;--incorrect-bg:#faeae7;--incorrect-border:#ce9690;--ease-out:cubic-bezier(.22, 1, .36, 1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html{background:var(--surface-page);min-width:320px}body{background:radial-gradient(ellipse at 12% 0%, #7e9a8017, transparent 50rem), radial-gradient(ellipse at 95% 85%, #c0a87712, transparent 40rem), var(--surface-page);min-width:320px;min-height:100dvh;margin:0}button,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}::selection{background:var(--accent-soft);color:var(--accent-strong)}@media (prefers-color-scheme:dark){:root{--text:#e3e9e0;--muted:#a0ada2;--surface-page:#141c19;--surface:#1c2722;--option:#202d26;--border:#35433a;--shadow:#0000001f;--accent:#a4c9b0;--accent-strong:#c4dfcb;--accent-soft:#2c4033;--on-accent:#182b20;--warning:#e8a08b;--correct:#b5dfbc;--correct-bg:#263f2f;--correct-border:#688e70;--incorrect:#f0bab0;--incorrect-bg:#442c29;--incorrect-border:#a5756c}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
