@font-face{font-family:WenKaiSub;src:url(/assets/wenkai-subset-BL8j3Vjg.woff2)format("woff2");font-display:block}:root{--bg:#fff7ea;--paper:#fff;--ink:#2b2a33;--muted:#857e8c;--line:#eedfc8;--yes:#2fa36b;--yes-d:#22804f;--no:#f0773e;--no-d:#c85a26;--red:#e4542f;--c:#2b2a33;--safe-t:max(18px, env(safe-area-inset-top));--safe-r:max(22px, env(safe-area-inset-right));--safe-b:max(18px, env(safe-area-inset-bottom));--safe-l:max(22px, env(safe-area-inset-left))}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}html,body{background:var(--bg);height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;overscroll-behavior:none;-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,sans-serif;overflow:hidden}.kai{font-family:WenKaiSub,Kaiti SC,STKaiti,KaiTi,serif}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;padding:0}button:disabled{cursor:default}.screen{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.screen.center{text-align:center;justify-content:center;align-items:center;gap:3vmin}.loading{color:var(--muted);font-size:24px}.sync{z-index:100;top:calc(env(safe-area-inset-top) + 8px);right:calc(env(safe-area-inset-right) + 10px);color:var(--muted);box-shadow:0 2px 0 var(--line);pointer-events:none;background:#ffffffd9;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:14px;font-weight:700;display:flex;position:fixed}.sync.offline{color:#9a3b12;background:#ffe3d6}.sync .n{background:var(--ink);color:#fff;border-radius:999px;padding:0 7px;font-size:12px}.top{flex:none;align-items:center;gap:14px;min-height:64px;padding-right:130px;display:flex}.top .home{width:64px;height:64px;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:18px;flex:none;font-size:28px}.top .who{align-items:center;gap:10px;font-size:clamp(22px,3vmin,30px);font-weight:800;display:flex}.av-s{font-size:1.4em}.top .round,.top .r-stat{color:var(--muted);margin-left:auto;font-size:clamp(17px,2.4vmin,24px);font-weight:700}.top b{color:var(--ink)}b.y,.y>b{color:var(--yes)!important}b.n,.n>b{color:var(--no)!important}.bar{background:#f1e8da;border-radius:7px;width:100%;height:14px;display:flex;overflow:hidden}.bar i{height:100%;display:block}.select{justify-content:center;align-items:center;gap:4vmin}.select h1{letter-spacing:4px;margin:0;font-size:clamp(40px,7vmin,72px);font-weight:400}.users{flex-wrap:wrap;justify-content:center;gap:4vmin;display:flex}.ucard{background:var(--paper);width:min(40vw,420px);min-width:300px;box-shadow:0 8px 0 var(--line), 0 14px 30px #785a2814;border:4px solid #0000;border-radius:36px;flex-direction:column;align-items:center;gap:2vmin;padding:4vmin 3.2vmin;display:flex}.ucard:active{box-shadow:0 4px 0 var(--line);border-color:var(--c);transform:translateY(4px)}.ucard .av{background:var(--c-soft);border:5px solid var(--c);border-radius:50%;place-items:center;width:clamp(110px,20vmin,180px);height:clamp(110px,20vmin,180px);font-size:clamp(64px,12vmin,110px);display:grid}.ucard .nm{color:var(--c);font-size:clamp(32px,5.4vmin,52px);font-weight:800}.ucard .stat{color:var(--muted);font-size:clamp(16px,2.3vmin,22px)}.ucard .stat b{color:var(--ink)}.parent-link{color:var(--muted);text-underline-offset:4px;opacity:.7;margin-top:2vmin;padding:8px;font-size:15px;text-decoration:underline}.kidhome{gap:3vmin}.modules{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));align-content:start;gap:2.4vmin;display:grid}.module{background:var(--paper);box-shadow:0 6px 0 var(--line);border-radius:28px;flex-direction:column;gap:12px;padding:22px;display:flex}.module.on{border:4px solid var(--c);grid-column:1/-1}.module.off{min-height:150px;box-shadow:none;color:#b3aa9f;filter:grayscale();background:#f3ece1;justify-content:center;align-items:center}.m-head{align-items:center;gap:14px;display:flex}.m-ic{font-size:44px}.m-name{font-size:clamp(30px,4.6vmin,44px)}.module.off .m-name{font-size:28px}.soon{background:#e8dfd1;border-radius:999px;padding:4px 14px;font-size:16px;font-weight:700}.m-stat{color:var(--muted);font-size:clamp(16px,2.3vmin,22px)}.m-btns{flex-wrap:wrap;gap:2vmin;display:flex}.go,.go2{border-radius:24px;min-height:88px;padding:0 4vmin;font-size:clamp(24px,3.6vmin,36px);font-weight:800}.go{color:#fff;background:var(--c);flex:2;box-shadow:0 6px #00000040}.go2{border:3px solid var(--line);box-shadow:0 6px 0 var(--line);background:#fff;flex:1}.go:active,.go2:active{transform:translateY(4px);box-shadow:0 2px #0003}.test{gap:2vmin;overflow:hidden}.dots{flex-wrap:wrap;flex:none;justify-content:center;gap:6px;display:flex}.dots i{background:#eadfcb;border-radius:50%;width:clamp(10px,1.6vmin,16px);height:clamp(10px,1.6vmin,16px);display:block}.dots i.y{background:var(--yes)}.dots i.n{background:var(--no)}.dots i.cur{box-shadow:0 0 0 3px var(--ink);background:#fff}.stagewrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.card{background:var(--paper);box-shadow:0 10px 0 var(--line), 0 20px 40px #785a281a;border-radius:40px;justify-content:center;align-items:center;gap:5vmin;max-width:100%;padding:3.5vmin 5vmin;transition:transform .3s cubic-bezier(.3,.8,.3,1),opacity .3s;display:flex}.card.out-y{opacity:0;transform:translate(-60vw)rotate(-12deg)}.card.out-n{opacity:0;transform:translate(60vw)rotate(12deg)}.card.in{animation:.38s cubic-bezier(.2,1.4,.4,1) cin}@keyframes cin{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}.tzg{background:#fffdf9;border:5px solid #e7a08e;border-radius:10px;flex:none;width:min(50vmin,42vw);height:min(50vmin,42vw);position:relative}.tzg:before{content:"";background:linear-gradient(90deg,#0000 calc(50% - 1px),#f3c6ba calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(#0000 calc(50% - 1px),#f3c6ba calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(45deg,#0000 calc(50% - .7px),#f7ddd5 calc(50% - .7px) calc(50% + .7px),#0000 calc(50% + .7px)),linear-gradient(-45deg,#0000 calc(50% - .7px),#f7ddd5 calc(50% - .7px) calc(50% + .7px),#0000 calc(50% + .7px));position:absolute;top:0;bottom:0;left:0;right:0}.tzg .ch{place-items:center;padding-bottom:3%;font-size:min(42vmin,35vw);line-height:1;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.wordbox{flex-direction:column;align-items:center;gap:1.4vmin;display:flex}.wordbox .lab{color:var(--muted);letter-spacing:2px;background:#f7f0e4;border-radius:999px;padding:4px 14px;font-size:clamp(14px,2vmin,18px)}.word{gap:.6vmin;display:flex}.word .wc{flex-direction:column;align-items:center;display:flex}.word .py{color:var(--muted);height:1.4em;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(16px,2.8vmin,28px)}.word .z{color:#b9b0a6;font-size:clamp(56px,14vmin,150px);line-height:1.1}.word .z.t{color:var(--red)}.nopy .py,.noword .wordbox{display:none}.btns{flex:none;justify-content:center;gap:3vmin;display:flex}.big{color:#fff;border-radius:30px;flex:1;justify-content:center;align-items:center;gap:14px;max-width:520px;min-height:96px;font-size:clamp(30px,5vmin,52px);font-weight:900;display:flex}.big.y{background:var(--yes);box-shadow:0 8px 0 var(--yes-d)}.big.n{background:var(--no);box-shadow:0 8px 0 var(--no-d)}.big:active{transform:translateY(6px);box-shadow:0 2px #00000040}.big .ic{font-size:1.15em}.undo{color:var(--muted);min-height:48px;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:14px;flex:none;align-self:center;padding:10px 18px;font-size:clamp(15px,2.2vmin,20px);font-weight:700}.undo:disabled{opacity:.35}.burst{pointer-events:none;z-index:50;font-size:42px;animation:.9s ease-out forwards bu;position:fixed}@keyframes bu{to{transform:translate(var(--dx), var(--dy)) scale(.4);opacity:0}}.stars{letter-spacing:8px;font-size:clamp(60px,12vmin,120px)}.stars span{animation:.5s cubic-bezier(.3,1.6,.5,1) both pop;display:inline-block}.stars span.dim{filter:grayscale();opacity:.3}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}.celebrate h2{margin:0;font-size:clamp(36px,6.5vmin,64px)}.celebrate p{color:var(--muted);margin:0;font-size:clamp(20px,3vmin,30px)}.row{flex-wrap:wrap;justify-content:center;gap:3vmin;display:flex}.btn2{min-height:88px;box-shadow:0 5px 0 var(--line);background:#fff;border-radius:24px;padding:0 4.5vmin;font-size:clamp(22px,3.4vmin,32px);font-weight:800}.btn2.main{background:var(--ink);color:#fff;box-shadow:0 5px #000}.confetti{z-index:60;pointer-events:none;border-radius:4px;width:14px;height:22px;animation:linear forwards fall;position:fixed;top:-20px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.result{gap:12px;overflow:hidden}.r-bar{flex-wrap:wrap;flex:none;align-items:center;gap:16px;display:flex}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tabs button{min-height:52px;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:14px;padding:0 20px;font-size:clamp(16px,2.2vmin,20px);font-weight:700}.tabs button.on{background:var(--ink);color:#fff;box-shadow:none}.legend{color:var(--muted);font-size:clamp(13px,1.9vmin,17px)}.grid{-webkit-overflow-scrolling:touch;flex:1;grid-template-columns:repeat(auto-fill,minmax(clamp(62px,8.4vmin,86px),1fr));align-content:start;gap:10px;padding:4px 2px 20px;display:grid;overflow:auto}.cell{aspect-ratio:1;color:#bdb4aa;background:#fff;border:3px solid #eee4d6;border-radius:16px;place-items:center;font-size:clamp(32px,5.4vmin,52px);display:grid}.cell.y{border-color:var(--yes);color:var(--ink);background:#e9f7ef}.cell.n{border-color:var(--no);color:var(--ink);background:#ffede3}.report{-webkit-user-select:text;user-select:text;gap:14px}.r-title{margin:0;font-size:clamp(24px,3.6vmin,34px)}.report-body{flex-direction:column;gap:16px;padding-bottom:30px;display:flex}.warn{color:#9a3b12;background:#ffe3d6;border-radius:14px;padding:12px 16px;font-size:16px}.panel{background:var(--paper);box-shadow:0 4px 0 var(--line);border-radius:22px;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.panel.settings,.panel.export{flex-flow:wrap;align-items:center;gap:12px}.p-title{font-size:19px;font-weight:800}.p-sub{color:var(--muted);margin-top:6px;font-size:16px;font-weight:700}.hint{color:var(--muted);font-size:14px}.tg{align-items:center;gap:8px;min-height:44px;padding:8px 10px;font-size:17px;font-weight:600;display:flex}.tg input{width:24px;height:24px;accent-color:var(--ink)}.pb{min-height:44px;color:var(--ink);background:#f5ebdc;border-radius:14px;align-items:center;padding:0 16px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.pb:disabled{opacity:.4}.pb.danger{color:#b2401c;background:#fff;border:2px solid #f3c6ba;align-self:flex-start;margin-top:8px}.kids-cols{grid-template-columns:1fr 1fr;gap:16px;display:grid}.kid-col{border-top:6px solid var(--c)}.kc-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.kc-head .av-s{font-size:34px}.name-input{font:inherit;color:var(--c);border:2px solid var(--line);-webkit-user-select:text;user-select:text;background:#fffdf9;border-radius:12px;width:6.5em;min-width:0;padding:4px 10px;font-size:24px;font-weight:800}.kc-stats{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.kc-stats div{background:#faf5ec;border-radius:14px;flex-direction:column;padding:8px 4px;display:flex}.kc-stats b{font-size:28px}.kc-stats span{color:var(--muted);font-size:13px}.chars{flex-wrap:wrap;gap:6px;font-size:30px;line-height:1.2;display:flex}.chars span{text-align:center;background:#faf5ec;border-radius:10px;min-width:42px;padding:2px 6px}.chars.slow span{flex-direction:column;align-items:center;display:flex}.chars small{color:var(--muted);font-family:-apple-system,sans-serif;font-size:12px}.chars.empty{color:var(--muted);font-size:16px}.toast{background:var(--ink);color:#fff;z-index:90;opacity:0;pointer-events:none;border-radius:999px;padding:12px 24px;font-size:18px;font-weight:700;transition:opacity .3s;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}@media (orientation:portrait){.card{flex-direction:column;gap:3vmin;padding:4vmin 5vmin}.tzg{width:min(56vmin,70vw);height:min(56vmin,70vw)}.tzg .ch{font-size:min(47vmin,58vw)}}@media (max-width:700px){.kids-cols{grid-template-columns:1fr}}.test{overflow-y:auto}.test .stagewrap{flex-shrink:0;min-height:min-content}.wordlist{gap:1.1vmin;max-width:100%;display:grid}.wordlist .word{justify-content:center}.wordlist .z{font-size:clamp(28px,5.6vmin,60px)}.wordlist .py{font-size:clamp(12px,1.9vmin,21px)}.test-tools{flex-wrap:wrap;flex:none;justify-content:center;gap:12px;display:flex}.board-backdrop{z-index:110;background:#2b2a3366;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.char-board{background:var(--paper);border-radius:28px;width:min(780px,100%);max-height:100%;padding:24px;overflow:auto;box-shadow:0 12px 50px #0003}.char-board header{justify-content:space-between;align-items:center;gap:12px;display:flex}.char-board h2{margin:0;font-size:26px}.board-compare{text-align:center;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;display:grid}.board-compare span{color:var(--muted);font-weight:700}.board-glyph{border:2px solid var(--line);overflow-wrap:anywhere;background:#fff7ea;border-radius:16px;margin-top:8px;font-size:clamp(90px,22vmin,240px);line-height:1.25}.board-inputs{flex-wrap:wrap;gap:14px;display:flex}.board-inputs label{flex-direction:column;flex:1;gap:8px;min-width:160px;font-weight:700;display:flex}.board-inputs input{font:inherit;border:2px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:12px;width:100%;padding:12px;font-size:24px}.board-word{overflow-wrap:anywhere;padding:14px 0;font-size:42px}.board-word .target{color:var(--red)}.board-add{background:var(--ink);color:#fff;min-height:56px;margin-top:16px}.board-message{min-height:1.5em;font-size:17px;line-height:1.5}@media (orientation:portrait){.test .card{gap:2vmin;padding:2vmin 4vmin}.wordlist{grid-template-columns:repeat(3,max-content);justify-content:center;gap:1vmin 2vmin}.wordlist .z{font-size:clamp(25px,4.6vmin,46px)}}@media (max-width:550px){.wordlist{grid-template-columns:repeat(2,max-content)}.char-board{padding:16px}}
