
@font-face{font-family:Wen;font-weight:500;src:url(/assets/wen-subset.woff2) format("woff2");font-display:swap;}@font-face{font-family:Andika;font-weight:400;src:url(/assets/font-2.woff2) format("woff2");font-display:swap;unicode-range:U+0100-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F;}@font-face{font-family:Andika;font-weight:400;src:url(/assets/font-3.woff2) format("woff2");font-display:swap;unicode-range:U+0000-00FF;}
:root{--red:#f32e30;--ink:#28221d;--muted:#7e756b;--line:#e4dfd7;--bug-width:300px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fffefa;font:18px Wen,'KaiTi',sans-serif}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:1.5px solid var(--line);border-radius:13px;padding:10px 17px;background:#fff;font-weight:700}button:hover:not(:disabled){border-color:var(--red)}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:4px solid #b91b27;outline-offset:4px}.primary{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 4px 0 #d61d25}.primary:disabled{opacity:.5;box-shadow:none}[hidden]{display:none!important}.app{height:100svh;min-height:620px;max-width:1720px;padding:18px 30px 10px;margin:auto;display:flex;flex-direction:column;gap:8px}header{display:flex;align-items:center;gap:20px;flex-wrap:wrap}h1{margin:0;font-size:clamp(34px,3.2vw,49px);font-weight:900;line-height:1.2;letter-spacing:-2px;white-space:nowrap}.brush{width:65%;height:6px;background:var(--red);border-radius:50%;transform:rotate(-3deg);margin:5px 0}.tabs{display:flex;gap:8px;flex:1}.tabs button{font-size:20px;white-space:nowrap;padding:12px 19px}.tabs button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}.tools{display:flex;gap:7px}.tools button{font-size:16px;padding:10px 13px}.question{text-align:center;padding:6px 0;flex:none}.question h2{margin:0;font-size:clamp(27px,3vw,43px);line-height:1.35}.question p{margin:5px 0 0;color:var(--muted);font-size:20px}.arena{position:relative;overflow:hidden;flex:1;min-height:200px;display:flex;align-items:center;justify-content:space-evenly;gap:8px;isolation:isolate}.arena:before{content:'';position:absolute;bottom:0;left:0;right:0;height:25%;background:#fff0ab;border-radius:50% 45% 15% 10%;z-index:-1}.bug{position:relative;width:var(--bug-width);aspect-ratio:4/5;flex:none;background:none;border:0;padding:0;isolation:isolate;transition:transform .2s}.bug:hover:not(:disabled){transform:translateY(-5px)}.bug:focus-visible{outline-offset:-6px;border-radius:40%}.bug-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.bug-number{position:absolute;left:1%;top:20%;min-width:37px;line-height:37px;border-radius:50%;background:#ffddd8;color:#b82127;font:700 24px Andika,sans-serif;z-index:3}.bug-word{position:absolute;left:13%;width:74%;top:58%;height:24%;display:flex;align-items:center;justify-content:center;font-family:Andika,Wen,sans-serif;font-weight:700;font-size:72px;line-height:1.5;white-space:nowrap;pointer-events:none}.net{position:absolute;left:0;top:1%;width:110%;height:105%;object-fit:contain;opacity:0;pointer-events:none;z-index:4;transform:translate(30%,-65%) rotate(20deg)}.bug.caught .net{animation:catchNet .75s ease-out both}.bug.solved .net{animation:none;opacity:.17;transform:none}.bug.caught .bug-art{filter:saturate(.9)}.bug.caught:after{content:'抓到啦！';position:absolute;top:14%;right:-1%;padding:6px 12px;border-radius:99px;background:var(--red);color:#fff;font-size:20px;z-index:5;transform:rotate(8deg)}.bug.wrong{animation:wiggle .42s ease-in-out}.bug.wrong .bug-word{color:#b74e29}.bug:disabled{opacity:1}.bug.passed{opacity:.66}.instruction{min-height:62px;display:flex;align-items:center;justify-content:center;gap:20px;text-align:center;padding:8px 18px;flex:none;border-radius:19px}.instruction.success{background:#fff1df}.idle-note{font-size:21px;color:var(--muted)}.fix{font-family:Andika,Wen,sans-serif;font-size:clamp(27px,3vw,42px);font-weight:700;white-space:nowrap}.old{text-decoration:line-through;color:#9d8278;margin-right:13px}.arrow{font-size:24px;color:#998779;margin-right:13px}.correct{color:#ba2227}.explain{font-size:20px;line-height:1.5;max-width:680px}.stats{display:flex;align-items:center;gap:25px;background:#fff;border:1.5px solid var(--line);border-radius:17px;padding:9px 20px;flex:none}.stats .count{font-size:23px;white-space:nowrap}.stats strong{color:var(--red);font-family:Andika,sans-serif;font-size:30px;margin:0 5px}.divider{width:1px;height:28px;background:var(--line)}.grow{flex:1}.stats button{min-width:120px;font-size:20px}.stats .plain{font-size:17px;min-width:auto;background:transparent;border:0}footer{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);gap:12px;align-items:center;flex:none}footer button{font-weight:400;background:none;border:0;padding:4px;font-size:14px}.kbd-hint{flex:1;text-align:center}dialog{border:0;border-radius:24px;background:#fffdf8;color:var(--ink);padding:26px;width:min(710px,calc(100vw - 28px));max-height:90svh;box-shadow:0 24px 90px #33220c40}dialog::backdrop{background:#30221f70;backdrop-filter:blur(3px)}dialog h2{font-size:28px;margin:0 0 15px;line-height:1.45}.dialog-head{display:flex;justify-content:space-between;gap:15px}.close{border:0;background:transparent;font:28px sans-serif;padding:0 8px;align-self:start}.field>span{display:block;font-weight:bold;margin-bottom:7px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}input,select,textarea{width:100%;background:#fff;border:1.5px solid #d9d0c1;border-radius:10px;padding:10px 12px;font-size:18px}input.pinyin{font-family:Andika,Wen,sans-serif}textarea{resize:vertical;min-height:65px}.small{font-size:15px;line-height:1.7;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.error{min-height:23px;color:#b9262f;font-size:16px}.custom-box{padding:16px;background:#fff4e9;border-radius:16px;margin-top:15px}.custom-box h3{margin:0 0 10px;font-size:21px}.options-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.saved-list{margin-top:16px;max-height:180px;overflow:auto}.saved-row{display:flex;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line);font-size:16px}.saved-row span{flex:1}.saved-row button{font-size:14px;padding:5px 10px}.empty{font-size:15px;color:var(--muted);line-height:1.6}.score-hero{font-size:40px;font-weight:bold;color:var(--red);margin:12px 0}.summary-grid{display:flex;gap:10px;margin:20px 0}.summary-grid div{flex:1;padding:14px 8px;text-align:center;background:#fff0df;border-radius:13px}.summary-grid strong{display:block;font-size:30px}.review-items{line-height:1.8;font-size:17px;max-height:160px;overflow:auto}.help-list{line-height:1.9;padding-left:24px}#feedbackDialog p{line-height:1.85}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#30221f;color:white;border-radius:99px;padding:12px 22px;z-index:20;max-width:90vw;text-align:center;font-size:17px}@keyframes catchNet{0%{opacity:0;transform:translate(35%,-70%) rotate(25deg)}45%{opacity:1;transform:translate(-4%,0) rotate(-7deg)}65%{transform:translate(1%,-2%) rotate(3deg)}100%{opacity:.78;transform:translate(0,0) rotate(0)}}@keyframes wiggle{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.topic-picker{display:flex;align-items:center;justify-content:center;gap:10px;flex:none;padding:8px 0 5px;border-top:1px solid var(--line)}.topic-label{font-size:15px;color:var(--muted);white-space:nowrap}.topic-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.topic-choices button{font-size:16px;font-weight:500;padding:7px 12px;border-radius:99px;background:transparent;white-space:nowrap}.topic-choices button[aria-pressed=true]{background:#fff0cf;border-color:#d89d38;color:#784617;font-weight:700}.topic-scope{font-size:17px;color:var(--muted)}
@media(max-width:560px){.topic-picker{align-items:flex-start;gap:7px;padding-top:10px}.topic-label{padding-top:6px}.topic-choices{justify-content:flex-start;gap:5px}.topic-choices button{font-size:14px;padding:6px 9px}.topic-scope{font-size:15px;padding-top:5px}.tabs button{padding:9px 8px!important;font-size:15px!important}}
@media(max-width:1200px){.app{padding:15px 20px 8px}header{gap:12px}h1{font-size:37px}.tabs button{font-size:17px;padding:10px 13px}.tools button{font-size:14px;padding:8px 10px}.question h2{font-size:34px}.question p{font-size:17px}.explain{font-size:18px}.instruction{gap:14px;min-height:74px}.stats .count{font-size:20px}.stats{gap:16px}}
@media(max-width:900px){header{justify-content:space-between}.tabs{order:3;flex-basis:100%;justify-content:center}.tools{margin-left:auto}.app{min-height:670px}.question h2{font-size:30px}.stats{padding:10px 12px;gap:10px}.stats .count{font-size:18px}.stats strong{font-size:25px}.stats button{font-size:18px;min-width:90px}.kbd-hint{display:none}.bug-number{min-width:29px;line-height:29px;font-size:20px}.instruction{flex-direction:column;gap:4px;padding:6px;min-height:96px}.fix{font-size:29px}.explain{font-size:17px}}
@media(max-width:560px){.app{height:auto;min-height:100svh;padding:16px 10px 8px;gap:8px}header{justify-content:center;gap:10px}h1{font-size:36px}.tools{margin:0}.tabs{order:3;gap:6px}.tabs button{font-size:16px;padding:9px 12px}.question{padding:8px 0}.question h2{font-size:25px}.question p{font-size:15px}.arena{flex:none;height:220px;min-height:0;gap:0;align-items:center}.bug-number{font-size:15px;min-width:22px;line-height:22px;left:0}.bug.caught:after{font-size:13px;padding:4px 7px;top:14%}.instruction{min-height:110px;padding:10px}.idle-note{font-size:17px}.fix{font-size:28px}.explain{font-size:17px}.stats{flex-wrap:wrap;gap:8px;justify-content:center}.stats .count{font-size:17px}.stats strong{font-size:24px}.divider{height:22px}.stats .grow{display:none}.stats .plain{font-size:14px;padding:6px}.stats .primary{font-size:18px;padding:10px 18px}.stats .count:nth-of-type(2){margin-right:auto}footer{font-size:12px}footer button{font-size:13px}.form-row{grid-template-columns:1fr}.options-row{gap:6px}.options-row input{padding:8px;font-size:16px}dialog{padding:21px}dialog h2{font-size:25px}.dialog-actions button{font-size:17px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}
.dotted-i{display:inline-block;position:relative;line-height:1}.extra-tone{position:absolute;left:50%;top:-.34em;transform:translateX(-50%);font-size:.78em;line-height:1;pointer-events:none}.old .extra-tone{text-decoration:none}

.site-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;background:#f7f4eb;border-bottom:1px solid #ded7c8;font:14px system-ui;color:#62665c}.site-strip a{color:#325b4b;text-decoration:none;font-weight:600}.site-strip button{font:inherit;padding:5px 12px}.app{height:calc(100svh - 52px)}@media(max-width:560px){.site-strip{padding:10px 12px;font-size:12px}.app{min-height:calc(100svh - 52px)}}
