:root{--paper:#fffdf7;--cream:#f8f1e4;--desk:#efe7d8;--ink:#3c3450;--ink-soft:#7a7088;--ink-faint:#b3abbd;--berry:#e84868;--berry-dark:#c93556;--berry-soft:#fde4e8;--mint:#3caa82;--mint-soft:#e3f4ec;--coral:#eb5f7d;--butter:#ffd666;--butter-soft:#fff1c2;--sky-soft:#e4eef8;--rule:#dfe8f1;--margin:#f5bec8;--hand:"LXGW WenKai TC", "Noto Sans TC", sans-serif;--sans:"Noto Sans TC", system-ui, -apple-system, "PingFang TC", sans-serif;--shadow:3px 3px 0 var(--ink);--nav-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:linear-gradient(90deg, transparent 22px, var(--margin) 22px, var(--margin) 24px, transparent 24px), repeating-linear-gradient(180deg, transparent 0 31px, var(--rule) 31px 32px), var(--paper);background-attachment:fixed;min-height:100vh;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--butter);outline-offset:2px;border-radius:6px}.hand{font-family:var(--hand)}.muted{color:var(--ink-soft)}.small{font-size:13px}.tiny{font-size:12px}.center{text-align:center}.num{font-variant-numeric:tabular-nums}.up{color:var(--mint)}.down{color:var(--coral)}.hl{background:linear-gradient(transparent 55%, var(--butter) 55% 90%, transparent 90%);padding:0 2px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap;max-width:none;margin-left:0;margin-right:0;padding:0}.row.between{justify-content:space-between}.stack>*+*{margin-top:14px}.grow{flex:1;min-width:0}.app{min-height:100vh;padding-bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.wrap{max-width:1080px;margin:0 auto;padding:0 16px 0 40px}.wrap.narrow{max-width:760px}.topbar{z-index:30;background:color-mix(in srgb, var(--paper) 92%, transparent);border-bottom:2px solid var(--ink);-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2);position:sticky;top:0}.topbar .wrap{justify-content:space-between;align-items:center;height:58px;display:flex}.logo{font-family:var(--hand);letter-spacing:.5px;white-space:nowrap;font-size:21px;font-weight:700}.logo b{color:var(--berry)}.topnav{gap:4px;display:none}.topnav a{font-family:var(--hand);border-radius:12px;padding:6px 12px;font-size:16px;font-weight:700}.topnav a.active{background:var(--ink);color:#fff}.topnav a:hover:not(.active){background:var(--cream)}.avatar{border:2px solid var(--ink);background:var(--berry-soft);width:36px;height:36px;font-family:var(--hand);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.xiaoc img{object-fit:initial;width:165%;max-width:none;height:auto;margin:-4px 0 0 -22%}.login-link{font-family:var(--hand);border:2px solid var(--ink);background:#fff;border-radius:12px;padding:5px 12px;font-size:15px;font-weight:700}.tabbar{z-index:30;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:6px 4px env(safe-area-inset-bottom);background:var(--paper);border-top:2px solid var(--ink);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:11.5px;display:flex}.tab svg{width:25px;height:25px}.tab.active{color:var(--berry);font-weight:700}@media (width>=900px){.topnav{display:flex}.tabbar{display:none}.app{padding-bottom:60px}.wrap{padding:0 32px 0 56px}body{background-image:linear-gradient(90deg, transparent 34px, var(--margin) 34px, var(--margin) 36px, transparent 36px), repeating-linear-gradient(180deg, transparent 0 31px, var(--rule) 31px 32px)}}.page-head{padding:22px 0 6px}.page-title{font-family:var(--hand);font-size:28px;line-height:1.3}.page-sub{color:var(--ink-soft);margin-top:2px;font-size:14px}.section-title{font-family:var(--hand);justify-content:space-between;align-items:baseline;gap:10px;margin:30px 0 14px;font-size:21px;font-weight:700;display:flex}.section-title a{color:var(--berry);font-size:14px;font-weight:400}.back{font-family:var(--hand);color:var(--ink-soft);align-items:center;gap:4px;padding:14px 0 0;font-size:16px;display:inline-flex}.rough{position:relative}.rough:before{content:"";pointer-events:none;z-index:1;border:2.4px solid var(--ink);filter:url(#rough);border-radius:16px 12px 18px 10px;position:absolute;inset:0}.paper-card{background:#fff;padding:18px 16px 16px;position:relative}.tape{z-index:2;clip-path:polygon(3% 0,97% 4%,100% 30%,96% 55%,100% 100%,2% 96%,0 60%,4% 35%);background:#f4afbebf;width:74px;height:22px;position:absolute;top:-11px;left:50%;transform:translate(-50%)rotate(-3deg)}.tape.mint{background:#96d6bec7}.tape.butter{background:#ffd666d1}.tape.left{left:22%;transform:translate(-50%)rotate(-6deg)}.btn{font-family:var(--hand);border:2.4px solid var(--ink);background:var(--berry);color:#fff;box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px 10px 14px 12px;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:17px;font-weight:700;line-height:1.2;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn[disabled],.btn.disabled{opacity:.45;pointer-events:none}.btn.ghost{color:var(--ink);background:#fff}.btn.mint{background:var(--mint)}.btn.coral{background:var(--coral)}.btn.ink{background:var(--ink)}.btn.butter{background:var(--butter);color:var(--ink)}.btn.sm{box-shadow:2px 2px 0 var(--ink);border-width:2px;padding:6px 12px;font-size:14px}.btn.wide{width:100%}.chip{border:2px solid var(--ink);white-space:nowrap;cursor:pointer;background:#fff;border-radius:18px;flex:none;align-items:center;gap:4px;padding:6px 13px;font-size:13.5px;font-weight:700;display:inline-flex}.chip.on{background:var(--ink);color:#fff}.chip.lock{color:var(--ink-soft);border-style:dashed}.chips{scrollbar-width:none;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.tag{background:var(--berry-soft);color:var(--berry);white-space:nowrap;border-radius:8px;padding:1px 8px;font-size:11.5px;font-weight:700;display:inline-block}.tag.mint{background:var(--mint-soft);color:var(--mint)}.tag.butter{background:var(--butter-soft);color:#a77a00}.tag.ink{background:var(--ink);color:#fff}.tag.gray{background:var(--cream);color:var(--ink-soft)}.note{background:var(--butter-soft);border-radius:4px;min-height:84px;padding:16px 40px 14px 76px;transition:transform .15s;display:block;position:relative;box-shadow:2px 3px #3c345024}.note:hover{transform:rotate(0)translateY(-2px)!important}.note .ico{width:50px;height:50px;position:absolute;top:16px;left:14px}.note h3{font-family:var(--hand);font-size:19px}.note p{color:var(--ink-soft);margin-top:3px;font-size:13.5px}.note .arrow{font-family:var(--hand);font-size:22px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.note.mint{background:var(--mint-soft)}.note.pink{background:var(--berry-soft)}.sticky{background:var(--butter-soft);padding:12px 14px 12px 40px;font-size:14.5px;line-height:1.6;position:relative;box-shadow:2px 3px #3c34501f}.sticky b.n{font-family:var(--hand);color:var(--berry);font-size:19px;position:absolute;top:10px;left:13px}.ticket{background:var(--berry);color:#fff;border:2.4px solid var(--ink);box-shadow:3px 4px 0 var(--ink);border-radius:12px;grid-template-columns:1fr 92px;transition:transform .12s;display:grid;position:relative}.ticket:hover{transform:translateY(-2px)}.ticket .main{border-right:2.4px dashed #ffffffb3;padding:16px 16px 14px}.ticket .kicker{letter-spacing:2px;opacity:.9;font-size:12px}.ticket h3{font-family:var(--hand);margin:4px 0 8px;font-size:22px}.ticket .meta{flex-wrap:wrap;gap:6px;display:flex}.chip-w{border:1.5px solid #fff;border-radius:10px;padding:2px 8px;font-size:12px}.ticket .stub{justify-content:center;align-items:center;display:flex}.stamp{text-align:center;width:66px;height:66px;font-family:var(--hand);border:2.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;line-height:1.15;display:flex;transform:rotate(-14deg)}.ticket:before,.ticket:after{content:"";background:var(--paper);border:2.4px solid var(--ink);border-radius:50%;width:22px;height:22px;position:absolute;right:80px}.ticket:before{clip-path:inset(50% 0 0);top:-13px}.ticket:after{clip-path:inset(0 0 50%);bottom:-13px}.field{display:block}.field>span{margin-bottom:4px;font-size:13px;font-weight:700;display:block}.input,.select,.textarea{border:2px solid var(--ink);background:#fff;border-radius:10px;width:100%;padding:10px 12px;font-size:15px}.textarea{resize:vertical;min-height:120px;line-height:1.6}.input:focus,.select:focus,.textarea:focus{box-shadow:0 0 0 3px var(--butter);outline:none}.check{align-items:flex-start;gap:8px;font-size:13.5px;display:flex}.check input{width:18px;height:18px;accent-color:var(--berry);margin-top:4px}.alert{border:2px solid var(--ink);background:var(--butter-soft);border-radius:10px;padding:10px 14px;font-size:14px}.alert.err{background:var(--berry-soft)}.alert.ok{background:var(--mint-soft)}.empty{text-align:center;color:var(--ink-soft);font-family:var(--hand);padding:30px 10px;font-size:17px}.loading{text-align:center;color:var(--ink-soft);font-family:var(--hand);padding:50px 0}.loading:after{content:"…";text-align:left;vertical-align:bottom;width:1.2em;animation:1.2s steps(4,end) infinite dots;display:inline-block;overflow:hidden}@keyframes dots{0%{width:0}to{width:1.2em}}.bar{border:2px solid var(--ink);background:#fff;border-radius:6px;height:10px;overflow:hidden}.bar i{background:repeating-linear-gradient(-45deg, var(--berry) 0 5px, #f37b94 5px 9px);height:100%;transition:width .4s;display:block}.bar.mint i{background:repeating-linear-gradient(-45deg, var(--mint) 0 5px, #63c39f 5px 9px)}.coach{align-items:flex-end;gap:10px;display:flex}.coach .avatar{width:48px;height:48px}.coach .say{font-family:var(--hand);border:2px solid var(--ink);background:#fff;border-radius:14px 14px 14px 4px;padding:8px 13px;font-size:16px;line-height:1.5}.toast-wrap{left:0;right:0;bottom:calc(var(--nav-h) + 16px);z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed}@media (width>=900px){.toast-wrap{bottom:24px}}.toast{pointer-events:auto;font-family:var(--hand);background:var(--ink);color:#fff;border-radius:12px;max-width:520px;padding:10px 16px;font-size:16px;font-weight:700;animation:.25s ease-out toast-in;box-shadow:3px 3px #0003}.toast.ok{background:var(--mint)}.toast.err{background:var(--berry)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.sheet-bg{z-index:70;background:#28203259;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);border:2.4px solid var(--ink);width:100%;max-width:560px;max-height:88vh;padding:20px 18px calc(24px + env(safe-area-inset-bottom));border-bottom:0;border-radius:20px 20px 0 0;animation:.25s ease-out sheet-in;overflow-y:auto}@media (width>=700px){.sheet-bg{align-items:center}.sheet{border-bottom:2.4px solid var(--ink);border-radius:18px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(30px)}}.footer{border-top:2px dashed var(--rule);color:var(--ink-soft);margin-top:48px;padding:22px 0 10px;font-size:12.5px;line-height:1.8}.footer .links{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.pill{border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:20px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex}.hero{grid-template-columns:1fr 150px;align-items:start;gap:0 8px;padding:22px 0 8px;display:grid;position:relative}.hero-photo{width:150px;filter:drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(1.5px 1.5px 0 var(--ink)) drop-shadow(-1.5px -1.5px 0 var(--ink));grid-area:1/2/span 2;margin-right:-6px;transform:rotate(3deg)}.bubble{font-family:var(--hand);background:#fff;border-radius:16px 14px 16px 4px;margin-bottom:12px;padding:8px 14px;font-size:17px;font-weight:700;display:inline-block}.hero h1{font-family:var(--hand);white-space:pre-line;font-size:31px;line-height:1.3}.hero .intro{white-space:pre-line;grid-column:1/-1;margin-top:10px;font-size:15px;line-height:1.85}.hero .cta{flex-wrap:wrap;grid-column:1/-1;gap:10px;margin-top:16px;display:flex}.hero .promo{grid-column:1/-1;margin-top:22px;padding:16px 18px}.hero .promo h3{font-size:19px}@media (width<=420px){.hero{grid-template-columns:1fr 132px}.hero h1{font-size:25px}.hero-photo{width:132px}}@media (width>=900px){.hero{grid-template-columns:1fr 300px;padding-top:48px}.hero-photo{grid-row:1/span 4;width:290px}.hero h1{font-size:46px}.hero .intro{grid-column:1;font-size:17px}.hero .cta{grid-column:1}.hero .promo{grid-column:1;max-width:560px}}.feature{gap:16px;display:grid}@media (width>=900px){.feature{grid-template-columns:repeat(3,1fr);gap:22px}}.feature .note:first-child{transform:rotate(-1.2deg)}.feature .note:nth-child(2){transform:rotate(.9deg)}.feature .note:nth-child(3){transform:rotate(-.6deg)}.hscroll{scrollbar-width:none;gap:14px;padding:4px 4px 12px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.mini{background:#fff;border-radius:6px;flex:0 0 176px;padding:10px;display:block;box-shadow:2px 3px #3c345024}.mini .thumb{background:var(--cream);border-radius:4px;height:92px;overflow:hidden}.mini h4{margin-top:6px;font-size:14px;line-height:1.4}@media (width>=900px){.mini{flex:1 1 0}}.updates{list-style:none}.updates li{border-bottom:2px dotted var(--rule);gap:12px;padding:9px 0;font-size:14px;display:flex}.updates time{color:var(--ink-soft);flex:none;padding-top:1px;font-size:12.5px}.lessons{list-style:none}.lessons li>a,.lessons li>div{border-bottom:2px dotted var(--rule);grid-template-columns:30px 1fr auto;align-items:center;gap:10px;min-height:66px;padding:6px 0;display:grid}.lessons .no{font-family:var(--hand);color:var(--berry);font-size:22px}.lessons h4{font-size:15.5px;line-height:1.35}.lessons small{color:var(--ink-soft);font-size:12px}.lessons .soon{opacity:.5}.lessons .cbox{width:26px;height:26px}.lockcard{margin-top:26px}.steps{flex-wrap:wrap;gap:6px;margin:10px 0 14px;font-size:12px;display:flex}.steps span{background:var(--cream);border-radius:8px;padding:3px 8px}.learn-grid{gap:0 40px;display:grid}@media (width>=900px){.learn-grid{grid-template-columns:1fr 300px}.learn-side{padding-top:10px}}.video{border:2.4px solid var(--ink);background:#241f2a;border-radius:10px;position:relative;overflow:hidden}.video video,.video iframe{aspect-ratio:16/9;background:#000;border:0;width:100%;height:auto;display:block}.video iframe{aspect-ratio:16/9;height:auto}.video.portrait video{width:auto;max-width:100%;max-height:70vh;margin:0 auto}.lesson-cat{color:var(--berry);margin-top:16px;font-size:12.5px;font-weight:700}.lesson-title{font-family:var(--hand);margin-top:2px;font-size:28px;line-height:1.3}.notecard{background:#fff;margin-top:24px;padding:20px 18px 18px;position:relative}.notecard .step{font-family:var(--hand);color:var(--berry);font-size:15px}.notecard h3{font-family:var(--hand);margin:2px 0 8px;font-size:21px}.md p{margin:0 0 10px;font-size:15px;line-height:1.9}.md p:last-child{margin-bottom:0}.md strong{background:linear-gradient(transparent 58%, var(--butter) 58% 92%, transparent 92%);font-weight:700}.md ul,.md ol{margin:4px 0 10px 22px}.md li{margin:4px 0;line-height:1.75}.md blockquote{border-left:4px solid var(--margin);background:var(--paper);color:var(--ink-soft);margin:10px 0;padding:8px 12px;font-size:13.5px}.md h2,.md h3{font-family:var(--hand);margin:18px 0 8px}.md a{color:var(--berry);text-decoration:underline}.md code{background:var(--cream);border-radius:4px;padding:1px 5px;font-size:13px}.fig{background:var(--paper);border:1.5px dashed var(--rule);border-radius:8px;margin:14px 0 6px;padding:10px}.figcap{color:var(--ink-soft);text-align:center;margin-top:6px;font-size:12.5px}.sticky-row{gap:12px;margin-top:12px;display:grid}.sticky-row .sticky:nth-child(2){transform:rotate(.8deg)}.sticky-row .sticky:nth-child(3){transform:rotate(-.7deg)}.pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:26px;display:grid}.pager a{border:2px solid var(--ink);background:#fff;border-radius:12px;padding:12px;font-size:13.5px}.pager a small{color:var(--ink-soft);font-size:12px;display:block}.pager a.next{text-align:right;grid-column:2}.locked-box{text-align:center;margin-top:20px;padding:30px 18px}.locked-box .big{font-size:40px}.gsec{margin-top:28px}.gsec-h{align-items:center;gap:8px;margin-bottom:12px;display:flex}.gsec-h h3{font-family:var(--hand);font-size:21px}.lvl{border-radius:8px;padding:2px 8px;font-size:11.5px;font-weight:700}.lvl.easy{background:var(--mint-soft);color:var(--mint)}.lvl.medium{background:var(--butter-soft);color:#a77a00}.lvl.hard{background:var(--berry-soft);color:var(--berry)}.ggrid{grid-template-columns:1fr 1fr;gap:16px 14px;display:grid}@media (width>=700px){.ggrid{grid-template-columns:repeat(3,1fr)}}@media (width>=1000px){.ggrid{grid-template-columns:repeat(6,1fr)}}.game{background:#fff;padding:12px 12px 10px;transition:transform .12s;display:block;position:relative}.game:hover{transform:translateY(-2px)}.game .art{background:var(--cream);border-radius:6px;height:74px;margin-bottom:8px;overflow:hidden}.game h4{font-size:14.5px;line-height:1.35}.game small{color:var(--ink-soft);margin-top:2px;font-size:11.5px;line-height:1.4;display:block}.game .best{z-index:3;background:var(--butter);font-family:var(--hand);border:2px solid var(--ink);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:-9px;right:-6px;transform:rotate(8deg)}.game.soon{opacity:.5;pointer-events:none}.game.soon .best{background:var(--cream)}.game-shell{padding-bottom:20px}.game-intro{max-width:620px;margin:10px auto 0}.game-intro .rules{margin:14px 0 18px;list-style:none}.game-intro .rules li{padding:6px 0 6px 28px;font-size:14.5px;line-height:1.7;position:relative}.game-intro .rules li:before{content:"✎";color:var(--berry);position:absolute;top:6px;left:4px}.game-top{justify-content:space-between;align-items:center;gap:10px;padding:12px 0 8px;display:flex}.qcount{font-family:var(--hand);font-size:17px;font-weight:700}.score-pill{font-family:var(--hand);background:var(--butter);border:2px solid var(--ink);border-radius:12px;padding:2px 10px;font-weight:700}.prompt{font-family:var(--hand);font-size:19px;line-height:1.55}.feedback{border:2px solid var(--ink);border-radius:12px;margin-top:12px;padding:12px 14px;font-size:14.5px;line-height:1.7}.feedback.good{background:var(--mint-soft)}.feedback.bad{background:var(--berry-soft)}.feedback b.t{font-family:var(--hand);margin-bottom:2px;font-size:18px;display:block}.result-card{text-align:center;max-width:560px;margin:16px auto 0;padding:26px 18px 20px}.result-card .big{font-variant-numeric:tabular-nums;font-size:44px;font-weight:900;line-height:1.1}.result-card h2{font-family:var(--hand);margin:4px 0;font-size:26px}.result-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.chart-box{border:2px solid var(--ink);touch-action:none;background:#fff;border-radius:12px;position:relative;overflow:hidden}.chart-box svg{-webkit-user-select:none;user-select:none;width:100%;display:block}.game-layout{gap:14px;display:grid}@media (width>=900px){.game-layout{grid-template-columns:1fr 340px;align-items:start}}.hud{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.hud>div{border:2px solid var(--ink);background:#fff;border-radius:10px;min-width:0;padding:5px 9px}.hud small{color:var(--ink-soft);font-size:11px;display:block}.hud b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15.5px}.virtual-badge{background:var(--ink);color:#fff;white-space:nowrap;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:700}.tf{flex-wrap:wrap;gap:6px;display:flex}.tf button{border:1.8px solid var(--ink);background:#fff;border-radius:10px;padding:3px 10px;font-size:12.5px;font-weight:700}.tf button.on{background:var(--ink);color:#fff}.tools-col{z-index:4;flex-direction:column;gap:6px;display:flex;position:absolute;top:8px;left:8px}.tools-col button{background:var(--paper);border:1.8px solid var(--ink);border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.tools-col button.on{background:var(--butter)}.tools-col svg{width:18px;height:18px}.seg{border:2.2px solid var(--ink);border-radius:12px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.seg.two{grid-template-columns:1fr 1fr}.seg button{font-family:var(--hand);background:#fff;padding:9px 0;font-size:16px;font-weight:700}.seg button+button{border-left:2.2px solid var(--ink)}.seg button.on.long{background:var(--mint);color:#fff}.seg button.on.short{background:var(--coral);color:#fff}.seg button.on{background:var(--ink);color:#fff}.slider-row{justify-content:space-between;font-size:13.5px;display:flex}input[type=range]{width:100%;accent-color:var(--berry);height:28px}.stats4{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.stats4>div{text-align:center;border:1.8px solid var(--ink);background:#fff;border-radius:10px;min-width:0;padding:5px 2px}.stats4 small{color:var(--ink-soft);font-size:10.5px;display:block}.stats4 b{font-variant-numeric:tabular-nums;font-size:14px}.panel{border:2px solid var(--ink);background:#fff;border-radius:14px;padding:14px}.panel h3{font-family:var(--hand);margin-bottom:8px;font-size:18px}.tips{list-style:none}.tips li{border-bottom:1.5px dotted var(--rule);padding:7px 0 7px 26px;font-size:14px;line-height:1.65;position:relative}.tips li:before{font-weight:900;position:absolute;top:7px;left:2px}.tips li.good:before{content:"✓";color:var(--mint)}.tips li.warn:before{content:"!";color:var(--berry);left:7px}.tips li.info:before{content:"i";color:#6d8fb8;font-family:serif;left:7px}.trade-chips{flex-wrap:wrap;gap:6px;display:flex}.trade-chips span{text-align:center;border-radius:8px;flex:1;min-width:52px;padding:5px 0;font-size:12.5px;font-weight:700}.trade-chips .w{background:var(--mint-soft);color:var(--mint)}.trade-chips .l{background:var(--berry-soft);color:var(--berry)}.trade-chips .e{background:var(--cream);color:var(--ink-faint)}.kv{grid-template-columns:1fr 1fr;gap:6px 16px;font-size:13.5px;display:grid}.kv>div{justify-content:space-between;gap:8px;display:flex}.kv span{color:var(--ink-soft)}.medal{width:168px;height:168px;margin:0 auto}.confetti{pointer-events:none;z-index:80;position:fixed;inset:0;overflow:hidden}.confetti i{width:9px;height:5px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.pop{animation:.45s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.shake{animation:.35s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.tool-grid{gap:16px;display:grid}@media (width>=700px){.tool-grid{grid-template-columns:1fr 1fr}}.tool-card{background:#fff;padding:18px 16px 14px;display:block}.tool-card h3{font-family:var(--hand);font-size:21px}.disclosure{background:var(--butter-soft);border:1.5px dashed #c9a43a;border-radius:10px;padding:8px 12px;font-size:12.5px}.me-head{align-items:center;gap:14px;padding:20px 0 6px;display:flex}.me-head .avatar{width:58px;height:58px;font-size:22px}.tabs{border-bottom:2px solid var(--ink);scrollbar-width:none;gap:4px;margin-top:16px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{font-family:var(--hand);white-space:nowrap;border:2px solid #0000;border-bottom:0;border-radius:10px 10px 0 0;margin-bottom:-2px;padding:8px 14px;font-size:16px;font-weight:700}.tabs button.on{border-color:var(--ink);background:var(--paper)}.status{border:2px solid var(--ink);border-radius:12px;align-items:center;gap:6px;padding:4px 12px;font-weight:700;display:inline-flex}.status.pending{background:var(--butter-soft)}.status.approved{background:var(--mint-soft)}.status.rejected,.status.revoked{background:var(--berry-soft)}.status.none{background:#fff}.list{list-style:none}.list li{border-bottom:2px dotted var(--rule);padding:10px 0}.cat-progress{grid-template-columns:110px 1fr 44px;align-items:center;gap:10px;margin:8px 0;font-size:13.5px;display:grid}.admin{max-width:1240px;margin:0 auto;padding:0 16px 60px 40px}@media (width>=900px){.admin{padding-left:56px}}.admin-nav{scrollbar-width:none;gap:6px;padding:14px 0 10px;display:flex;overflow-x:auto}.admin-nav a{border:2px solid var(--ink);white-space:nowrap;background:#fff;border-radius:12px;padding:6px 12px;font-size:14px;font-weight:700}.admin-nav a.active{background:var(--ink);color:#fff}.admin-nav a .count{background:var(--berry);color:#fff;border-radius:8px;margin-left:4px;padding:0 6px;font-size:12px}.table-wrap{border:2px solid var(--ink);background:#fff;border-radius:12px;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1.5px solid var(--rule);vertical-align:top;padding:9px 12px}.table th{color:var(--ink-soft);background:var(--paper);white-space:nowrap;font-size:12.5px}.table tr:last-child td{border-bottom:0}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--paper)}.cards4{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=800px){.cards4{grid-template-columns:repeat(5,1fr)}}.stat-card{border:2px solid var(--ink);background:#fff;border-radius:12px;padding:12px}.stat-card small{color:var(--ink-soft);font-size:12.5px}.stat-card b{font-size:28px;font-weight:900;display:block}.form-grid{gap:14px;display:grid}@media (width>=800px){.form-grid.two{grid-template-columns:1fr 1fr}}.editor{gap:14px;display:grid}@media (width>=1000px){.editor{grid-template-columns:1fr 1fr}}.editor .textarea{min-height:460px;font-family:ui-monospace,Consolas,monospace;font-size:13.5px}.preview-box{border:2px dashed var(--ink-faint);background:#fff;border-radius:12px;max-height:640px;padding:14px;overflow-y:auto}.drag-row{border:2px solid var(--ink);cursor:grab;background:#fff;border-radius:10px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex}.drag-row.dragging{opacity:.5}.drag-row .handle{color:var(--ink-faint);font-size:18px}.learn-grid>*,.game-layout>*,.hero>*,.editor>*{min-width:0}html,body{overflow-x:hidden}.stamp{white-space:pre-line}.me-head h1,.me-head .small{overflow-wrap:anywhere}.chip.on.lock{color:#fff;border-style:solid}.lessons li.unit-head{font-family:var(--hand);color:var(--berry);border-bottom:2px solid var(--margin);padding:18px 0 4px;font-size:17px;font-weight:700}.lessons li.unit-head:first-child{padding-top:4px}.md figure.shot{margin:14px 0 6px}.md figure.shot img{border:1.5px solid var(--ink,#3c3450);border-radius:10px;width:100%;box-shadow:3px 3px #3c34502e}.md figure.shot figcaption{color:var(--muted,#8a8296);text-align:center;margin-top:6px;font-size:13px}.tool-cover{aspect-ratio:16/9;object-fit:cover;object-position:top left;border:1.5px solid var(--ink);border-radius:10px;width:100%;margin-bottom:12px}
