:root{--green:#27764e;--ink:#294539;--cream:#fffdf3;--orange:#ffbe55;--shadow:0 8px 0 #d9dfc6;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:#f7faed}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 10%,#e4f3d7,transparent 50%),#f7faed;min-height:100dvh}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;font-weight:700;border:1px solid #dce5d2;border-radius:16px;background:#fffef8;color:var(--ink);min-height:46px;padding:10px 18px;cursor:pointer;touch-action:manipulation}button:hover{background:#edf5df}button:focus-visible,a:focus-visible{outline:3px solid #df9227;outline-offset:4px}button:disabled{cursor:default;opacity:.6}.primary{background:var(--green);color:white;border:0;box-shadow:0 6px 0 #195636}.primary:hover{background:#33895d}header{max-width:1240px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:22px 32px;gap:16px}.brand{font-size:23px;font-weight:900;text-decoration:none;color:var(--green);white-space:nowrap}nav{display:flex;gap:8px}nav button{background:#ffffff99;font-size:14px;padding:8px 13px}main{max-width:1100px;margin:auto;padding:0 28px 24px}.screen[hidden]{display:none!important}.home{text-align:center;position:relative}.eyebrow{font-size:14px;letter-spacing:3px;color:#74906d;font-weight:700}h1{font-size:clamp(40px,5vw,66px);margin:14px 0;letter-spacing:3px}h1 span{color:var(--green)}.intro{font-size:18px;color:#73836d;margin:12px 0}.hero-art{height:260px;position:relative;max-width:650px;margin:12px auto 0;overflow:hidden}.hill{position:absolute;bottom:-65px;width:100%;height:150px;background:#d4e9b2;border-radius:50%;z-index:0}.hero-mole{position:absolute;width:180px;height:195px;border-radius:90px 90px 35px 35px;background:#bb8862;bottom:28px;left:calc(50% - 90px);z-index:1;border:7px solid #a77552;box-shadow:inset 10px 0 #ce9e73;animation:bob 3s ease-in-out infinite}.hero-mole:before,.hero-mole:after{content:"";position:absolute;width:45px;height:45px;border:9px solid #a77552;background:#e6b6a0;border-radius:50%;top:-11px;z-index:-1}.hero-mole:before{left:-15px}.hero-mole:after{right:-15px}.face{font-size:52px;color:#392c29;margin-top:32px;white-space:nowrap}.cheek{position:absolute;width:25px;height:13px;background:#e99a8b;border-radius:50%;top:95px}.left{left:14px}.right{right:14px}.hero-card{position:absolute;bottom:-12px;left:-25px;width:220px;padding:15px;background:#fffdf1;border:4px solid #e8cf8e;border-radius:17px;font-weight:900;font-size:27px;transform:rotate(-5deg);color:var(--green)}.sun{position:absolute;right:65px;top:15px;color:#eeb744;font-size:65px}.cloud{position:absolute;background:#fff;width:95px;height:25px;border-radius:40px;top:45px;left:55px}.cloud:before{content:"";position:absolute;width:48px;height:40px;border-radius:50%;background:#fff;left:20px;top:-20px}.c2{left:auto;right:0;top:115px;transform:scale(.7)}.flower{position:absolute;bottom:15px;z-index:1;font-size:46px;color:#e7a44d}.f1{left:70px}.f2{right:80px;color:#fff6d4}.start{min-width:250px;font-size:23px;padding:17px 35px;margin:16px 0 4px}.start span{margin-left:35px}.muted{font-size:13px;color:#829078}.game-top,.stats,.game-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}.stats span{padding:10px 18px;background:#fffef6;border-radius:18px}.stats b{font-size:26px;color:var(--green);margin-left:8px;font-variant-numeric:tabular-nums}.timer b{color:#bc7430}.question{text-align:center;position:relative;background:#fffef7;border:2px solid #e2e9ce;border-radius:24px;padding:14px 20px 0;margin:16px auto 0;max-width:780px;overflow:hidden}.question h2{font-size:clamp(24px,3.5vw,40px);margin:10px 0;overflow-wrap:anywhere}.question button{font-size:13px;min-height:36px;padding:5px 12px;margin-bottom:12px}.question-progress{height:5px;background:#e6ebda;margin:0 -20px}.question-progress i{display:block;height:100%;background:#9cbe72;width:100%}.feedback{text-align:center;min-height:38px;padding:9px 0;font-weight:700;color:#697f56}.feedback.bad{color:#b45438}.feedback.good{color:#27764e}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 28px;max-width:850px;margin:auto}.hole{position:relative;height:clamp(120px,21vh,175px);border:0;background:transparent;padding:0;overflow:hidden;border-radius:24px}.hole:hover{background:#e7efda}.hole:after{content:"";position:absolute;bottom:5px;left:5%;width:90%;height:37px;border-radius:50%;background:#8a6949;border:8px solid #b5ce8e;box-shadow:0 5px 0 #d6e3bd}.mole{position:absolute;bottom:23px;left:17%;width:66%;height:76%;background:#bc916e;border:4px solid #a97f5f;border-radius:70px 70px 18px 18px;z-index:1;animation:pop .3s ease-out;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:6px 0 10px;box-shadow:inset 7px 0 #cca17b}.mole:before{content:"• ᴥ •";font-size:28px;color:#382f29;line-height:1.2}.answer{display:flex;align-items:center;justify-content:center;background:#fffdf2;border:2px solid #ead6a7;border-radius:11px;min-height:43px;width:140%;padding:6px 9px;font-size:clamp(16px,2vw,23px);font-weight:800;overflow-wrap:anywhere;line-height:1.15}.hole.bomb .mole{background:#516066;border-color:#35454b;box-shadow:inset 7px 0 #6d7a80}.hole.bomb .mole:before{content:"💣";font-size:35px}.hole.bomb .answer{color:#a14d36;background:#fff0d9}.hole.empty .mole{display:none}.hole.correct .answer{background:#d6f0c9;border-color:#63a76a}.hole.wrong .answer{background:#ffe1d4;border-color:#d0886b}.game-bottom{font-size:12px;color:#819071;margin-top:12px}.game-bottom #combo{font-size:15px;font-weight:700;color:#6e8a51}.result{text-align:center;padding-top:30px}.result-icon{font-size:60px}.result-stats{display:flex;justify-content:center;gap:18px;margin:28px 0}.result-stats div{background:#fffef7;border:1px solid #dfe7d1;border-radius:20px;padding:20px;min-width:130px}.result-stats b{display:block;font-size:36px;color:var(--green)}.result-stats span{color:#829078;font-size:14px}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0}.mistakes{max-height:180px;overflow:auto;max-width:600px;margin:auto}.mistake{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #dce5d0;gap:12px}.mistake span{overflow-wrap:anywhere}dialog{border:0;border-radius:24px;padding:24px;width:min(650px,94vw);max-height:88dvh;color:var(--ink);box-shadow:0 25px 100px #203d4150;background:#fffdf5}dialog::backdrop{background:#203b365e;backdrop-filter:blur(4px)}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-top h2{margin:0}.modal-top button{border:0}.field{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0}.field select,.field input{font:inherit;padding:10px;border:1px solid #ccd8bb;border-radius:10px;max-width:55%}textarea{width:100%;height:200px;border:1px solid #ccd8bb;border-radius:12px;padding:14px;font:16px/1.7 "Microsoft YaHei",sans-serif;resize:vertical}#importStatus{white-space:pre-wrap;line-height:1.6;font-size:14px}.modal-tip{font-size:14px;color:#718267;line-height:1.8}.file-label{display:inline-block;border:1px solid #dce5d2;background:white;border-radius:16px;padding:12px;cursor:pointer;min-height:46px}.file-label input{display:none}.danger{color:#b15738}#modalBody p{line-height:1.8}@keyframes pop{from{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes bob{50%{transform:translateY(7px)}}@media(max-width:650px){header{padding:14px;flex-wrap:wrap;justify-content:center}nav{gap:5px;flex-wrap:wrap;justify-content:center}nav button{font-size:12px;padding:6px 10px;min-height:44px}main{padding:0 12px 16px}.hero-art{height:230px}.stats{gap:5px}.stats span{padding:8px;font-size:12px}.stats b{font-size:21px;margin-left:3px}.game-top{gap:5px}.game-top button{padding:8px;font-size:12px}.board{gap:7px}.hole{height:145px}.mole{left:15%;width:70%;height:74%}.answer{font-size:16px;width:130%;min-height:47px}.game-bottom{flex-direction:column;gap:8px;text-align:center}.result-stats{gap:7px}.result-stats div{min-width:0;flex:1;padding:15px 7px}.eyebrow{letter-spacing:1px}.question{margin-top:10px}}@media(max-height:760px) and (min-width:651px){header{padding:12px 28px}.hero-art{height:210px}h1{font-size:48px}.hole{height:130px}.question{padding-top:10px}.question h2{margin:6px}.feedback{min-height:32px;padding:6px}.start{padding:12px 35px}.result{padding-top:5px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}


/* 儿童邀请式首页：所有辅助入口收进右上角设置。 */
.tools-menu{position:relative;z-index:10;margin-left:auto}.tools-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;min-width:94px;min-height:48px;padding:10px 17px;border-radius:20px;background:#ffffffb8;border:1px solid #dfe9d1;font-size:18px;font-weight:700;color:#69836c}.tools-menu summary::-webkit-details-marker{display:none}.tools-menu summary:focus-visible{outline:3px solid #df9227;outline-offset:3px}.tools-menu nav{position:absolute;right:0;top:58px;width:210px;display:flex;flex-direction:column;padding:12px;background:#fffef6;box-shadow:0 12px 36px #345a3825;border:1px solid #e2e9d5;border-radius:22px}.tools-menu:not([open]) nav{display:none}.tools-menu nav button{text-align:left;font-size:16px;min-height:48px}body[data-screen="home"] .brand{visibility:hidden}body[data-screen="home"]{background:radial-gradient(ellipse at 50% 0%,#fffef4 0%,#eff9e5 55%,#e3f1d6 100%)}body[data-screen="home"] header{height:82px}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100dvh - 115px)}.home h1{font-size:clamp(48px,6vw,78px);line-height:1.16;margin:0 0 10px;font-weight:1000;color:#886142;letter-spacing:5px;text-shadow:0 4px 0 #fff}.home h1 span{color:#347c50}.home .intro{margin:0;font-size:21px;color:#6e8a64;font-weight:700}.home #homeMeta,.home #storageNote{display:none}.home .hero-art{width:min(760px,95%);max-width:none;height:clamp(280px,42dvh,390px);margin:5px auto 0;flex-shrink:0}.home .hero-mole{width:218px;height:220px;left:calc(50% - 109px);bottom:40px;border-width:8px;border-radius:110px 110px 40px 40px;box-shadow:inset 13px 0 #d4aa80,0 8px 0 #abc786;transform-origin:bottom center}.home .face{font-size:65px;margin-top:42px}.home .cheek{top:115px;width:32px;height:17px}.home .hero-card{width:254px;left:-26px;bottom:0;padding:16px;font-size:33px;border-radius:20px;box-shadow:0 5px 0 #b58149;transform:rotate(-4deg)}.hero-card em{display:inline-flex;align-items:center;justify-content:center;background:#76b85d;border-radius:50%;width:38px;height:38px;font-size:28px;color:white;font-style:normal;margin-left:12px}.home .hill{bottom:-100px;height:210px;background:#c6e3a0;border:9px solid #e2f1c9}.home .hero-mole:before,.home .hero-mole:after{width:52px;height:52px}.home .sun{right:75px;top:12px;color:#e9ba53;font-size:75px}.home .c1{top:70px;left:70px;transform:scale(1.2)}.home .c2{right:5px;top:140px}.scene-prompt{position:absolute;top:13px;left:calc(50% - 59px);background:#fffdf5;border:2px solid #e2eacb;border-radius:19px;padding:10px 21px;font-size:25px;font-weight:900;transform:rotate(3deg);z-index:3;box-shadow:0 5px 0 #dce9c4}.scene-prompt span{color:#83aa6e;margin-left:5px}.little-mole{position:absolute;bottom:15px;left:12%;width:112px;height:115px;border-radius:70px 70px 20px 20px;background:#c4a180;border:5px solid #b28e6d;z-index:1;transform:rotate(-8deg)}.little-mole:before{content:"• ᴥ •";display:block;text-align:center;font-size:29px;color:#544131;margin-top:20px}.little-mole span{display:block;background:#fff9e8;border:2px solid #e3d1a6;border-radius:11px;padding:8px;font-size:19px;text-align:center;font-weight:800;color:#9b8965;position:absolute;bottom:0;left:-15px;width:132px}.toy-hammer{position:absolute;left:calc(50% + 91px);top:80px;width:115px;height:145px;transform:rotate(32deg);transform-origin:bottom center;z-index:3;animation:tap 3s ease-in-out infinite}.toy-hammer:before{content:"";position:absolute;top:30px;left:48px;width:25px;height:110px;background:#d2a878;border:4px solid #ba8c59;border-radius:15px}.toy-hammer span{position:absolute;top:0;left:0;width:115px;height:66px;background:#f6cb69;border:5px solid #e9ad45;border-radius:24px;box-shadow:inset 0 9px #ffe9a0}.toy-hammer span:before{content:"";position:absolute;left:20px;top:-5px;width:15px;height:66px;background:#f4b44b;border-radius:5px}.hit-star{position:absolute;left:calc(50% + 85px);top:130px;color:#edae3b;font-size:43px;z-index:4;animation:spark 3s ease-in-out infinite}.home .f1{left:45px;bottom:16px;font-size:56px}.home .f2{right:85px;bottom:20px;font-size:62px}.home .start{font-size:28px;min-height:76px;min-width:325px;border-radius:28px;background:#f9c658;color:#61452d;box-shadow:0 7px 0 #dba043,0 12px 25px #ba8f4030;margin:10px 0 17px;transition:transform .15s}.home .start:hover{background:#ffd478;transform:translateY(-2px)}.home .start span{margin-left:40px;font-size:22px}.home .start:active{transform:translateY(4px);box-shadow:0 3px 0 #dba043}@keyframes tap{0%,35%,65%,100%{transform:rotate(32deg)}48%{transform:rotate(13deg) translate(-8px,8px)}}@keyframes spark{0%,35%,65%,100%{opacity:.2;transform:scale(.6)}48%{opacity:1;transform:scale(1.2)}}@media(min-width:651px) and (max-height:700px){body[data-screen="home"] header{height:65px}.home{min-height:calc(100dvh - 95px)}.home h1{font-size:48px}.home .hero-art{height:260px}.home .hero-mole{width:185px;height:180px;left:calc(50% - 92px);bottom:26px}.home .face{font-size:49px;margin-top:30px}.home .cheek{top:90px}.home .hero-card{width:220px;font-size:26px;left:-24px;padding:10px}.home .scene-prompt{top:0;font-size:20px}.home .start{min-height:64px;font-size:25px;margin-top:0}.home .toy-hammer{top:55px;transform:scale(.85) rotate(32deg)}.home .sun{font-size:56px}}@media(max-width:650px){body[data-screen="home"] header{height:74px;justify-content:space-between}.home{min-height:calc(100dvh - 105px)}.home h1{font-size:44px;letter-spacing:2px}.home .intro{font-size:17px}.home .hero-art{height:300px;width:100%}.home .hero-mole{width:174px;height:195px;left:calc(50% - 87px);bottom:30px}.home .face{font-size:49px}.home .cheek{top:100px;width:24px}.home .hero-card{width:205px;left:-23px;font-size:25px;padding:12px}.hero-card em{width:28px;height:28px;font-size:22px;margin-left:8px}.little-mole{left:1%;width:80px;height:90px;bottom:8px}.little-mole:before{font-size:23px}.little-mole span{width:96px;left:-12px;font-size:14px}.home .sun{right:6px;top:35px;font-size:48px}.home .c1{left:10px;top:65px;transform:scale(.6)}.home .c2{display:none}.home .scene-prompt{font-size:19px;top:0;left:calc(50% - 50px);padding:9px 15px}.toy-hammer{left:calc(50% + 50px);top:70px;scale:.75}.hit-star{left:calc(50% + 60px);top:140px}.home .f1{display:none}.home .f2{right:10px;font-size:42px}.home .start{min-width:285px;min-height:72px;font-size:26px}.tools-menu nav{width:200px}}


.access-panel{width:min(325px,90%);margin:9px auto 0;text-align:left}.access-panel[hidden]{display:none}.access-panel label{display:block;font-size:14px;font-weight:700;color:#728368;margin-bottom:7px}.access-panel input{width:100%;min-height:48px;border:2px solid #d7e4c5;background:#fffef7;border-radius:17px;padding:11px 16px;font:18px "Microsoft YaHei",sans-serif;color:#425a3b;outline:none}.access-panel input:focus{border-color:#96b873;box-shadow:0 0 0 4px #dbeac799}.access-panel input[aria-invalid="true"]{border-color:#d39273}.access-panel p{font-size:13px;color:#b46645;min-height:18px;margin:4px 3px 0}.access-locked .home .hero-art{height:clamp(245px,32dvh,320px)}.access-locked .home .start{margin-top:5px}@media(min-width:651px) and (max-height:800px){.access-locked .home h1{font-size:48px}.access-locked .home .hero-art{height:245px}.access-locked .home .hero-mole{height:180px;width:185px;left:calc(50% - 92px);bottom:26px}.access-locked .home .face{font-size:49px;margin-top:28px}.access-locked .home .cheek{top:90px}.access-locked .home .hero-card{width:220px;left:-24px;font-size:26px;padding:10px}.access-locked .scene-prompt{top:0;font-size:20px;padding:8px 17px}.access-locked .toy-hammer{top:40px;scale:.85}.access-locked .home .start{min-height:64px;font-size:25px}.access-locked .home .intro{font-size:18px}}@media(min-width:651px) and (max-height:650px){.access-locked .home .hero-art{height:200px}.access-locked .home .hero-mole{height:150px;width:155px;left:calc(50% - 77px);bottom:15px}.access-locked .home .hero-card{width:190px;font-size:22px}.access-locked .home .face{font-size:40px;margin-top:18px}.access-locked .home .cheek{top:70px}.access-locked .scene-prompt{font-size:16px;top:0}.access-locked .home h1{font-size:40px}}


/* 以实际可用视口分配区域，不通过裁切页面隐藏内容。 */
html,body{height:100%;margin:0}body{height:100dvh;min-height:0;display:flex;flex-direction:column}header,body[data-screen="home"] header{height:72px;min-height:72px;width:100%;padding:10px 28px;flex-shrink:0}main{width:100%;height:calc(100dvh - 72px);min-height:0;margin:0 auto;padding:0 24px 14px;flex:1}.home{height:100%;min-height:0;gap:0}.home h1{flex-shrink:0}.home .intro{flex-shrink:0}.home .hero-art,.access-locked .home .hero-art{height:auto;flex:0 1 390px;min-height:210px;margin:4px auto 0}.access-panel{flex-shrink:0}.home .start{flex-shrink:0;min-height:64px;margin:8px 0 10px}.home .hero-mole{height:min(220px,73%)}#game{height:100%;min-height:0;display:flex;flex-direction:column}.game-top{flex-shrink:0;min-height:46px}.question{width:min(780px,100%);flex-shrink:0;margin-top:10px}.question h2{font-size:clamp(22px,3.5vw,36px);line-height:1.15;max-height:83px;overflow:auto}.feedback{flex-shrink:0;font-size:15px;min-height:36px}.board{width:100%;flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px 28px}.hole{height:100%;min-height:0;max-height:200px;align-self:end}.mole{max-height:160px}.game-bottom{flex-shrink:0;min-height:30px;margin-top:6px}.result{height:100%;min-height:0;padding-top:10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.result .result-icon{font-size:44px}.result h1{font-size:42px}.result-stats{margin:14px 0}.result #resultMessage{margin:8px 0;font-size:14px}.result .mistakes{width:100%;min-height:0;flex:0 1 160px}.result .actions{flex-shrink:0;margin:16px 0}.bank-example{background:#eef5df;border:1px solid #d8e6c6;border-radius:14px;padding:12px;margin:12px 0}.bank-example strong{font-size:15px}.bank-example pre{font:15px/1.6 "Microsoft YaHei",sans-serif;margin:7px 0;white-space:pre-wrap}.bank-example button{font-size:14px}.bank-example small{display:block;color:#6b805b;margin-top:8px}dialog{max-height:90dvh}#modalBody{min-height:0}#wordInput{height:clamp(100px,22dvh,200px)}@media(max-height:750px){header,body[data-screen="home"] header{height:60px;min-height:60px}main{height:calc(100dvh - 60px);padding-bottom:8px}.home h1,.access-locked .home h1{font-size:42px}.home .intro,.access-locked .home .intro{font-size:17px}.home .hero-art,.access-locked .home .hero-art{min-height:175px;flex-basis:270px}.home .hero-mole,.access-locked .home .hero-mole{height:150px;width:160px;left:calc(50% - 80px);bottom:20px}.home .face,.access-locked .home .face{font-size:40px;margin-top:20px}.home .cheek,.access-locked .home .cheek{top:73px}.home .hero-card,.access-locked .home .hero-card{width:192px;font-size:23px;padding:9px;left:-24px}.home .scene-prompt{top:0;font-size:17px;padding:6px 14px}.home .toy-hammer{top:20px;scale:.7}.home .hit-star{top:85px}.home .sun{font-size:48px;top:15px}.home .little-mole{height:85px;width:95px}.home .little-mole span{font-size:16px;width:110px}.home .start,.access-locked .home .start{min-height:56px;padding:10px 28px;font-size:24px;margin:5px 0 8px}.access-panel{margin-top:3px}.access-panel label{font-size:13px;margin-bottom:4px}.access-panel input{min-height:44px;padding:8px 14px;font-size:16px}.access-panel p{min-height:16px;margin-top:2px}.question{padding-top:8px;margin-top:6px}.question h2{margin:6px 0;font-size:28px}.question .eyebrow{font-size:12px}.question button{margin-bottom:5px}.feedback{font-size:14px;min-height:30px;padding:6px 0}.game-bottom{font-size:11px;min-height:24px}.result-stats div{padding:10px 18px}.result h1{margin:6px}.result .result-icon{font-size:35px}.result .actions{margin:10px 0}.result-stats b{font-size:28px}}
@media(max-width:800px){header,body[data-screen="home"] header{padding:10px 18px;flex-wrap:nowrap;justify-content:space-between}.board{gap:7px 15px}.game-bottom{gap:6px}.answer{font-size:18px}.brand{font-size:19px}}@media(max-height:600px){.home .hero-art,.access-locked .home .hero-art{min-height:145px;flex-basis:175px}.home h1,.access-locked .home h1{font-size:34px}.home .hero-mole,.access-locked .home .hero-mole{height:120px;width:135px;left:calc(50% - 67px);bottom:10px}.home .face,.access-locked .home .face{font-size:33px;margin-top:10px}.home .hero-card,.access-locked .home .hero-card{width:165px;font-size:19px;padding:6px;left:-22px}.home .cheek{top:52px}.hero-card em{width:24px;height:24px;font-size:18px}.home .toy-hammer{top:-5px;scale:.55}.home .scene-prompt{left:30%;font-size:14px}.home .start{min-height:48px}.question h2{font-size:24px}.game-bottom{min-height:20px}.mole:before{font-size:22px}.answer{font-size:16px;min-height:34px}.stats b{font-size:22px}.stats span{padding:6px 12px}}


:root{--scene-bg:#f2f8e8;--scene-glow:#fffef4;--scene-deep:#d5eac0;--scene-ground:#c6e3a0;--scene-accent:#f9c658;--scene-ring:#e2f1c9;--scene-button:#fffef7}
body[data-theme="ocean"]{--green:#2585a5;--ink:#285366;--scene-bg:#e6f7ff;--scene-glow:#f8fdff;--scene-deep:#c4e9f8;--scene-ground:#92d8e8;--scene-accent:#77d7f2;--scene-ring:#c9f0f6;--scene-button:#f4fcff}
body[data-theme="peach"]{--green:#b75b7b;--ink:#74465c;--scene-bg:#fff0f4;--scene-glow:#fff9f2;--scene-deep:#ffd6e3;--scene-ground:#f5b5cc;--scene-accent:#ffacc1;--scene-ring:#ffe1ec;--scene-button:#fff8fa}
body[data-theme="sunny"]{--green:#a77c27;--ink:#6b562c;--scene-bg:#fff9de;--scene-glow:#fffdf1;--scene-deep:#ffedaf;--scene-ground:#f2d982;--scene-accent:#ffd45b;--scene-ring:#fff0bd;--scene-button:#fffdf0}
body[data-theme="lavender"]{--green:#8863b2;--ink:#584875;--scene-bg:#f3edff;--scene-glow:#fffaff;--scene-deep:#e1d2f6;--scene-ground:#c7b0ec;--scene-accent:#cbb4f4;--scene-ring:#e8def9;--scene-button:#fcf8ff}
body,body[data-screen="home"]{background:radial-gradient(ellipse at 50% 0%,var(--scene-glow),var(--scene-bg) 55%,var(--scene-deep));color:var(--ink)}.home .hill{background:var(--scene-ground);border-color:var(--scene-ring)}.home h1 span,.stats b{color:var(--green)}.home .start,.home .start:hover{background:var(--scene-accent)}.question,.stats span,button{background-color:var(--scene-button)}.hole:after{border-color:var(--scene-ground)}.hole:hover{background:var(--scene-ring)}.question-progress i{background:var(--green)}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0}.theme-tile{min-height:85px;border:3px solid transparent;font-size:18px}.theme-tile[aria-pressed="true"]{border-color:var(--green);box-shadow:0 0 0 3px var(--scene-ring)}.tools-menu summary{display:none}.tools-menu nav,.tools-menu:not([open]) nav{position:static;display:flex;flex-direction:row;width:auto;gap:7px;background:transparent;border:0;box-shadow:none;padding:0}.tools-menu nav button{text-align:center;white-space:nowrap;min-height:44px;font-size:14px;padding:9px 12px}.tools-menu{margin-left:auto}header{max-width:1240px}.brand{font-size:20px}body[data-screen="home"] .brand{display:none}@media(max-width:950px){header .brand{display:none}.tools-menu{margin-left:auto}.tools-menu nav{gap:5px}.tools-menu nav button{font-size:13px;padding:9px 11px}}@media(max-width:650px){.tools-menu{width:100%}.tools-menu nav,.tools-menu:not([open]) nav{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.tools-menu nav button{font-size:11px;padding:5px 3px;border-radius:12px}.theme-grid{grid-template-columns:1fr}}


body[data-screen="home"]{background:#dcf2ad url('assets/garden-home-fast-v1.webp') center 52%/cover no-repeat}body[data-screen="home"] header{z-index:4;background:linear-gradient(#ffffff50,transparent);height:64px;min-height:64px;max-width:none;padding:10px 26px}body[data-screen="home"] .brand{display:block;visibility:visible;color:#86562b;font-size:20px;text-shadow:0 2px #fff}body[data-screen="home"] main{height:calc(100dvh - 64px);padding:0 22px 14px;max-width:1200px;z-index:1}.home{justify-content:flex-start;position:relative}.home h1,.access-locked .home h1{font-family:"Microsoft YaHei",sans-serif;font-size:clamp(46px,6.5vw,82px);color:#ef862c;letter-spacing:4px;line-height:1.12;font-weight:1000;margin:2px 0 4px;-webkit-text-stroke:5px #fff8dd;paint-order:stroke fill;text-shadow:0 5px 0 #b76029,0 8px 14px #a86a2940}.home h1 span{color:#e97824}.home .intro,.access-locked .home .intro{color:#885a36;font-size:clamp(15px,1.7vw,21px);font-weight:900;text-shadow:0 2px #fff8dd;margin:4px 0}.home .hero-art,.access-locked .home .hero-art{flex:1;width:100%;min-height:80px;height:auto;max-width:800px;overflow:visible;margin:0 auto}.word-bubble{position:absolute;border-radius:15px 15px 15px 3px;padding:9px 17px;background:#fff9dc;color:#da792d;font-size:clamp(21px,2.8vw,34px);font-weight:1000;border:3px solid #fffdf4;box-shadow:0 4px 0 #deb96d75;animation:float-word 4s ease-in-out infinite}.word-apple{left:18%;top:18%;transform:rotate(-14deg)}.word-cat{right:26%;top:5%;color:#679e3b;transform:rotate(9deg);animation-delay:-1s}.word-dog{right:9%;top:34%;transform:rotate(14deg);animation-delay:-2s}.word-sun{left:11%;top:64%;font-size:23px;color:#80a546;transform:rotate(-9deg);animation-delay:-3s}.home .start,.access-locked .home .start{background:linear-gradient(#bce958,#82c32e);color:#fffdf2;text-shadow:0 2px #649b28;font-size:clamp(24px,2.5vw,32px);border:3px solid #fff4bb;border-radius:40px;box-shadow:0 4px 0 #74a72c,0 7px 0 #cfb35b75,inset 0 0 0 4px #a7dc4c;min-width:310px;min-height:65px;padding:11px 30px;margin:8px 0 16px}.home .start:hover{background:linear-gradient(#c8f475,#94d347)}.home .start span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:#ffffff55;border-radius:50%;margin-left:28px}.home-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;width:min(740px,92%);flex-shrink:0}.home-shortcuts button{display:flex;gap:13px;align-items:center;justify-content:center;background:#fffbed;border:2px solid #e7cd8d;border-radius:20px;padding:12px 18px;min-height:76px;box-shadow:0 5px 0 #a1b75f60;text-align:left;color:#8a5a35}.home-shortcuts button:hover{background:#fff3cb;transform:translateY(-2px)}.shortcut-icon{font-size:34px}.home-shortcuts strong{display:block;font-size:19px}.home-shortcuts small{display:block;font-size:12px;color:#a18b69;margin-top:4px}.access-panel{background:#fff9e8ed;border:2px solid #e4d192;border-radius:16px;padding:7px 12px;width:315px;margin:0;z-index:2}.access-panel label{font-size:12px;color:#8a704b;margin-bottom:3px}.access-panel input{min-height:42px;border:1px solid #dfc998;background:#fffef8;padding:7px 12px;font-size:16px}.access-panel p{min-height:0;margin:2px 0;font-size:12px}.access-panel p:empty{display:none}.tools-menu nav button{background:#fffaf0ed;border-color:#edddb6;color:#8e6845;border-radius:18px;font-size:13px}.access-locked .home .hero-art{min-height:50px}body[data-screen="home"][data-theme="ocean"]{background-color:#daf2ff}body[data-screen="home"][data-theme="peach"] .home h1{color:#e76f8b}body[data-screen="home"][data-theme="lavender"] .home h1{color:#9f78d1}@keyframes float-word{50%{translate:0 -7px}}@media(max-width:1050px){body[data-screen="home"] .brand{display:none}.home-shortcuts{width:min(700px,96%)}.home h1,.access-locked .home h1{font-size:58px}.home .hero-art{max-width:700px}}@media(orientation:portrait){body[data-screen="home"]{background-size:auto 100%;background-position:center}.home h1,.access-locked .home h1{font-size:clamp(42px,7.8vw,66px);margin-top:20px}.home .intro{max-width:95%}.home-shortcuts{gap:10px}.home-shortcuts button{padding:12px 7px;gap:6px;flex-direction:column;text-align:center;min-height:100px}.home-shortcuts strong{font-size:17px}.home-shortcuts small{font-size:11px}.word-apple{left:3%;top:25%}.word-cat{right:6%;top:12%}.word-dog{right:0;top:60%}.word-sun{left:0;top:65%}.home .start{margin-bottom:20px}}@media(max-height:650px){body[data-screen="home"] header{height:56px;min-height:56px;padding:6px 20px}body[data-screen="home"] main{height:calc(100dvh - 56px);padding-bottom:10px}.home h1,.access-locked .home h1{font-size:47px}.home .intro,.access-locked .home .intro{font-size:15px;margin:4px 0}.home .start,.access-locked .home .start{min-height:52px;font-size:24px;padding:7px 26px;margin:6px 0 10px}.home-shortcuts button{min-height:61px;padding:8px 14px;border-radius:15px}.home-shortcuts strong{font-size:16px}.home-shortcuts small{font-size:11px}.shortcut-icon{font-size:26px}.word-bubble{font-size:23px;padding:6px 12px}.word-sun{font-size:18px}.access-panel input{min-height:38px}.access-panel{padding:5px 10px}.access-locked .word-sun{display:none}}@media(prefers-reduced-motion:reduce){.word-bubble{animation:none}}


.hole .mole{background:none!important;border:0!important;box-shadow:none!important;left:10%;width:80%;height:calc(100% - 17px);max-height:190px;bottom:19px;padding:0;display:block;border-radius:0}.hole .mole:before{display:none}.mole-character{position:absolute;bottom:22px;left:0;width:100%;height:calc(100% - 22px);overflow:visible;filter:drop-shadow(0 3px 1px #76522e25)}.hole .answer{position:absolute;bottom:0;left:0;width:100%;min-height:40px;max-height:78px;overflow:auto;background:#fff9e6;border:2px solid #e6c788;box-shadow:0 3px 0 #b8976466;border-radius:13px;z-index:2;font-size:clamp(17px,2vw,25px);padding:6px 8px;line-height:1.15}.happy-eyes,.surprise-mouth,.cheer-stars{display:none}.correct .open-eyes{display:none}.correct .happy-eyes,.correct .cheer-stars{display:block}.correct .mole-character{animation:mole-cheer .5s ease-in-out}.wrong .smile-mouth,.wrong .tongue{display:none}.wrong .surprise-mouth{display:block}.wrong .mole-character{animation:mole-oops .35s ease-in-out}.hole.bomb .mole-character{display:none}.hole.bomb .mole:before{display:block;content:"💣";position:absolute;width:100%;text-align:center;font-size:clamp(42px,6vw,70px);bottom:36px;line-height:1.3}.hole.bomb .answer{background:#fff0d9}.hole.correct .answer{background:#dcf4ce;border-color:#7eb766}.hole.wrong .answer{background:#ffe3d5;border-color:#d99c80}.hole:after{height:34px;border-width:7px;box-shadow:0 4px 0 #d3dfb6}.board{column-gap:20px}@keyframes mole-cheer{50%{translate:0 -7px;rotate:-3deg}}@keyframes mole-oops{25%{translate:-4px}75%{translate:4px}}@media(max-height:650px){.hole .answer{min-height:34px;font-size:17px;padding:5px}.mole-character{bottom:19px;height:calc(100% - 19px)}}@media(prefers-reduced-motion:reduce){.mole-character{animation:none!important}}
/* 不渲染空洞，末行按实际答案数居中。 */
.board{grid-template-columns:repeat(6,minmax(0,1fr))}.board>.hole{grid-column:span 2}.board:has(>.hole:nth-child(5):last-child)>.hole:nth-child(4){grid-column:2 / span 2}.board:has(>.hole:nth-child(4):last-child)>.hole{grid-column:span 3}.board:has(>.hole:nth-child(3):last-child){grid-template-rows:minmax(0,1fr)}.board:has(>.hole:nth-child(2):last-child){grid-template-rows:minmax(0,1fr)}.board:has(>.hole:nth-child(2):last-child)>.hole{grid-column:span 3}.board>.hole:only-child{grid-column:2 / span 4}
/* 游戏页右上角操作区：返回首页与暂停相邻。 */
.game-top .stats{order:0;margin-right:auto}.game-top #backBtn{order:1}.game-top #pauseBtn{order:2}


.tour-ring{position:fixed;pointer-events:none;border:4px solid #ffd25c;border-radius:20px;box-shadow:0 0 0 9999px #183b375e,0 0 0 7px #fff5c680;z-index:10000;transition:left .15s,top .15s}.tour-card{position:fixed;z-index:10001;background:#fffdf0;border:3px solid #ebcc82;border-radius:22px;padding:18px;box-shadow:0 12px 38px #25463635;color:#425b39;max-height:calc(100dvh - 24px);overflow:auto}.tour-count{font-size:12px;color:#8c9c65;font-weight:700}.tour-card h3{font-size:23px;margin:8px 0}.tour-card p{font-size:15px;line-height:1.65;margin:8px 0 15px}.tour-actions{display:flex;justify-content:space-between;gap:8px}.tour-actions button{min-height:44px;font-size:14px;padding:9px 12px}.tour-actions .primary{background:#42834e;color:white}.tour-card:focus-visible{outline:3px solid #efa73c}


.hit-hammer{position:fixed;z-index:9000;width:112px;height:120px;pointer-events:none;transform-origin:65% 88%;animation:toy-bonk .6s ease-in-out both;filter:drop-shadow(0 4px 2px #88613c33)}.hit-hammer svg{width:100%;height:100%}.hit-spark{position:fixed;z-index:9001;pointer-events:none;color:#ffc53d;font-size:42px;text-shadow:0 0 2px #fff4a9;animation:bonk-star .55s ease-out both}.hole.bonked .mole-character{animation:bonk-squish .55s ease-in-out;transform-origin:50% 100%}.bomb-burst{position:fixed;z-index:9000;width:0;height:0;pointer-events:none}.burst-flash{position:absolute;left:-48px;top:-48px;width:96px;height:96px;background:radial-gradient(circle,#fff9be 15%,#ffd350 40%,#ff9b42 70%);clip-path:polygon(50% 0,60% 23%,80% 7%,78% 32%,100% 35%,83% 52%,100% 73%,73% 73%,72% 98%,53% 81%,34% 100%,31% 76%,5% 82%,20% 56%,0 40%,26% 34%,23% 8%,44% 25%);animation:bomb-flash .65s ease-out both}.burst-particle,.burst-smoke{position:absolute;left:-6px;top:-6px;width:12px;height:12px;background:#ffc740;border:2px solid #fff2aa;border-radius:3px;animation:bomb-particle .75s ease-out both}.burst-smoke{width:26px;height:26px;left:-13px;top:-13px;background:#e1d8c7;border:0;border-radius:50%;box-shadow:10px -4px 0 #efe9db,-5px 7px 0 #c9c2b5}.hole.exploded .mole:before{animation:bomb-disappear .6s ease-out both}@keyframes toy-bonk{0%{transform:translate(-24%,-97%) rotate(48deg);opacity:0}15%{opacity:1;transform:translate(-24%,-97%) rotate(48deg)}38%{transform:translate(-38%,-68%) rotate(-28deg)}58%{transform:translate(-27%,-88%) rotate(10deg);opacity:1}100%{transform:translate(-24%,-104%) rotate(30deg);opacity:0}}@keyframes bonk-star{0%,25%{opacity:0;transform:translate(-50%,-50%) scale(.3)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-90%) scale(.5)}}@keyframes bonk-squish{0%,25%,100%{scale:1}40%{scale:1.08 .86}65%{scale:.98 1.03}}@keyframes bomb-flash{0%{scale:.15;opacity:0}18%{scale:1.15;opacity:1}65%{scale:1.3;opacity:.7}100%{scale:1.5;opacity:0}}@keyframes bomb-particle{0%{transform:translate(0,0) rotate(0);opacity:1;scale:.4}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--spin));opacity:0;scale:1.2}}@keyframes bomb-disappear{30%{scale:1.2}100%{scale:.2;opacity:0}}@media(prefers-reduced-motion:reduce){.hit-hammer{animation:none;transform:translate(-38%,-78%) rotate(-20deg)}.hit-spark{animation:none;transform:translate(-50%,-50%)}.burst-flash{animation:none;scale:.7;opacity:.8}.burst-particle,.burst-smoke{display:none}.hole.bonked .mole-character,.hole.exploded .mole:before{animation:none}}


/* 森林游乐场：仅作用于游戏界面。 */
body[data-screen="game"]{background:#d7f0a5 url('assets/forest-playground-fast-v1.webp') center center/cover no-repeat;color:#536a37}body[data-screen="game"] header{max-width:none;background:linear-gradient(#ffffff5c,transparent);z-index:5}body[data-screen="game"] .brand{color:#68823a;text-shadow:0 2px #fff7d4}body[data-screen="game"] main{max-width:1160px;position:relative}body[data-screen="game"] .tools-menu nav button{border-radius:22px;background:linear-gradient(#fffdf0,#fff1ce);border:2px solid #f3d99d;box-shadow:0 3px 0 #baaa7550;color:#947348}#game{position:relative;isolation:isolate}#game:before,#game:after{position:absolute;z-index:-1;pointer-events:none;font-size:38px;color:#ffe477;-webkit-text-stroke:2px #fff9df;text-shadow:0 3px #a8c77a60;content:"✦";top:21%;left:1%;transform:rotate(-12deg)}#game:after{content:"✿";left:auto;right:0;top:64%;color:#f5b2cf;font-size:40px;transform:rotate(15deg)}.game-top{min-height:43px;gap:10px}.game-top .stats{gap:9px}.stats span{background:linear-gradient(#fffce7,#ffe8a0);border:2px solid #fff2bc;box-shadow:0 3px 0 #a4b36650;border-radius:30px;padding:6px 15px;font-size:14px;color:#7b774a}.stats span:nth-child(2){background:linear-gradient(#fff9ed,#ffdfb4)}.stats .timer{background:linear-gradient(#e5fcff,#a5e1e4);border-color:#cef6ef}.stats b{font-size:24px;color:#4b775c}.stats .timer b{color:#397579}.game-top button{min-height:44px;border-radius:25px;background:linear-gradient(#d6ef8b,#95c656);border:2px solid #fff1bd;box-shadow:0 3px 0 #7a9f4a50;color:#56793b}.game-top #pauseBtn{background:linear-gradient(#ffe091,#ffb557);color:#95652e}.question{position:relative;isolation:isolate;background:linear-gradient(#fffefa,#fffef5);border:2px solid #fffdf7;border-radius:65px;box-shadow:0 5px 0 #cfdec66b,0 7px 12px #7a9e8140;overflow:visible;padding:12px 30px 9px;max-width:640px;margin-top:12px}.question:before,.question:after{content:"";position:absolute;background:#fffef9;border-radius:50%;z-index:-1;pointer-events:none}.question:before{width:30%;height:90%;left:13%;top:-10px}.question:after{width:30%;height:90%;right:14%;top:-8px}.question .eyebrow{color:#8a805a;letter-spacing:2px;font-size:13px}.question h2{color:#386449;font-size:clamp(27px,3.4vw,41px);margin:4px 0;font-weight:1000;text-shadow:0 2px #f2f6dc}.question button{min-height:30px;background:#f3f7e6;border:0;padding:4px 12px;margin-bottom:2px;color:#7b8e5c}.question-progress{margin:5px 14px 0;height:4px;border-radius:5px;background:#eaf1db;overflow:hidden}.question-progress i{background:#b0cc7d;border-radius:5px}.feedback{font-size:15px;color:#7d8150;text-shadow:0 1px #fffde6;min-height:33px;padding:7px 0}.feedback.good{color:#4c863e}.feedback.bad{color:#bc7043}.board{max-width:850px;gap:9px 22px;padding:0 10px 4px}.hole{overflow:visible;max-height:215px;border-radius:42px;background:none!important}.hole:hover{filter:brightness(1.04)}.hole:focus-visible{outline:4px solid #ffe070;background:#ffffff25!important}.hole:disabled{opacity:1}.hole:after{height:26px;background:radial-gradient(ellipse,#886543,#9c8149);border:5px solid #d6e7a1;box-shadow:0 3px 0 #a9c66a50,0 0 0 2px #f5ffd1b0;bottom:5px;left:9%;width:82%}.hole .mole{width:84%;left:8%;height:calc(100% - 12px);bottom:15px;max-height:210px}.mole-character{left:2%;width:96%;bottom:0;height:calc(100% - 35px);filter:drop-shadow(0 3px 1px #72532925)}.hole .answer{top:0;bottom:auto;left:14%;width:72%;min-height:35px;max-height:70px;border:2px solid #d69c5e;border-radius:12px;background:repeating-linear-gradient(0deg,#f4d295 0px,#f4d295 10px,#efd096 11px,#f4d295 12px);box-shadow:0 3px 0 #b88e5670,inset 0 2px 0 #ffe6ab;color:#82572f;font-size:clamp(17px,2vw,25px);font-weight:900;padding:4px 9px;text-shadow:0 1px #fff0cb;line-height:1.15}.answer:before,.answer:after{content:"";width:4px;height:4px;border-radius:50%;background:#be8d55;position:absolute;top:5px;left:5px;box-shadow:0 20px #be8d55}.answer:after{left:auto;right:5px}.hole.correct .answer{background:linear-gradient(#d7b4ef,#bb91d7);border-color:#b084c9;color:#fffdf4;text-shadow:0 2px #9771ae}.hole.wrong .answer{background:linear-gradient(#ffd5b4,#f4b18a);border-color:#dca079;color:#9f5d39}.hole.bomb:after{display:none}.hole.bomb .mole{width:100%;left:0}.hole.bomb .mole:before{content:"";width:55px;height:55px;border-radius:50%;background:radial-gradient(circle at 32% 27%,#c4b4dc,#9c7eb8 48%,#7d629a);border:3px solid #fff2c9;box-shadow:0 0 0 5px #e4eed0;left:calc(50% - 28px);bottom:35%;font-size:0}.hole.bomb .mole:after{content:"✦";position:absolute;color:#ffc951;text-shadow:0 0 4px #fff49a;left:calc(50% + 18px);bottom:calc(35% + 45px);font-size:24px}.hole.bomb .answer{top:auto;bottom:10%;background:none;border:0;box-shadow:none;text-align:center;width:100%;left:0;color:#936b50;font-size:16px}.hole.bomb .answer:before,.hole.bomb .answer:after{display:none}.game-bottom{background:#fff9e8ed;border:2px solid #f0dca9;border-radius:24px;box-shadow:0 3px 0 #9daf6450;padding:7px 16px;max-width:850px;width:100%;align-self:center;color:#9a8a60;font-size:11px;min-height:37px;margin-top:3px}.game-bottom #combo{font-size:14px;color:#7e8b48}body[data-screen="game"][data-theme="peach"] .question{background:#fff7f9}body[data-screen="game"][data-theme="lavender"] .question{background:#faf6ff}body[data-screen="game"][data-theme="ocean"] .stats .timer{background:#bceef9}@media(max-height:650px){.question{padding:6px 26px 4px;margin-top:8px;max-width:550px}.question h2{font-size:27px}.question .eyebrow{font-size:11px}.question button{min-height:27px;font-size:12px}.feedback{min-height:27px;font-size:13px;padding:5px 0}.game-top{min-height:40px}.stats span{padding:5px 12px}.stats b{font-size:21px}.game-bottom{min-height:29px;padding:4px 13px}.hole .answer{min-height:30px;font-size:17px;padding:3px 7px}.mole-character{height:calc(100% - 29px)}.hole.bomb .mole:before{width:43px;height:43px;left:calc(50% - 22px);bottom:33%}.hole.bomb .mole:after{bottom:calc(33% + 34px);font-size:20px}.hole.bomb .answer{font-size:14px}.board{gap:5px 20px}.hole:after{height:22px}.answer:before,.answer:after{box-shadow:0 15px #be8d55}}@media(orientation:portrait){.board{gap:16px 12px;padding:4px 0}.hole{max-height:260px}.hole .mole{max-height:245px}.hole .answer{width:86%;left:7%;font-size:21px}.question{margin-top:24px;max-width:600px}.game-bottom{font-size:10px}.game-bottom #combo{font-size:13px}.hole.bomb .answer{width:100%;left:0;font-size:15px}}
/* 用原位弹出避免角色入场时把单屏临时撑高。 */
.hole .mole{animation:forest-pop .3s ease-out;transform-origin:50% 100%}@keyframes forest-pop{from{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.hole .mole{animation:none}}
/* 竖屏也让名牌贴近头顶，角色稳稳坐在洞口。 */
.hole .mole{max-height:185px}.mole-character{bottom:-8px;height:calc(100% - 28px)}@media(orientation:portrait){.hole .mole{max-height:185px}.hole .answer{font-size:20px}}


/* 固定六洞，每次一只；空洞是等待状态，不是空答案。 */
.board{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.board>.hole{grid-column:span 2!important}.hole.empty{opacity:1;pointer-events:none}.hole.empty .mole{display:none}.hole.bomb:after{display:block}.hole.bomb .mole:before{bottom:22px}.hole.bomb .mole:after{bottom:66px}.hole.bomb .answer{top:0;bottom:auto;width:80%;left:10%;background:#fff1d6;border:2px solid #e2bd80;border-radius:14px;box-shadow:0 3px #c5ab6b55}.hole .mole{animation:pop-from-hole .26s ease-out;transform-origin:50% 100%}@keyframes pop-from-hole{from{opacity:0;scale:.82 .45}to{opacity:1;scale:1}}@media(max-height:650px){.hole.bomb .mole:before{bottom:20px}.hole.bomb .mole:after{bottom:54px}}@media(prefers-reduced-motion:reduce){.hole .mole{animation:none}}
/* 五洞：上三下二；名牌统一置于角色下方，完整单行显示。 */
.board:has(>.hole:nth-child(5):last-child)>.hole:nth-child(4){grid-column:2 / span 2!important}.hole .mole{bottom:29px;height:calc(100% - 25px)}.hole:after{bottom:27px}.hole .answer,.hole.bomb .answer{top:auto;bottom:-22px;left:-3%;width:106%;white-space:nowrap;overflow-wrap:normal;word-break:normal;overflow:visible;max-height:none;min-height:32px;padding:4px 12px;font-size:23px;background:linear-gradient(#f9dfaa,#f2cd8f);border:2px solid #d69c5e;box-shadow:0 3px #ba955566;text-align:center;border-radius:12px}.mole-character{bottom:0;height:100%}.hole.bomb .mole-character{display:block}.hole.bomb .mole:before,.hole.bomb .mole:after{display:none}.head-bomb{position:absolute;top:-10px;left:50%;translate:-50% 0;font-size:42px;line-height:1.15;z-index:3;filter:drop-shadow(0 2px 2px #64402a45);pointer-events:none}.hole.bomb.exploded .head-bomb{animation:bomb-disappear .6s ease-out both}@media(max-height:650px){.head-bomb{font-size:32px;top:-7px}.hole .answer,.hole.bomb .answer{min-height:29px;padding:3px 11px;bottom:-21px}.hole:after{bottom:24px}}@media(orientation:portrait){.hole .answer,.hole.bomb .answer{width:110%;left:-5%}}
/* 黑色球体与燃烧引线，不依赖系统彩色emoji外观。 */
.head-bomb{width:35px;height:35px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#696064 0%,#292128 30%,#140f16 67%,#08080d 100%);font-size:0!important;border:1px solid #3e2f39;box-shadow:inset -3px -3px 5px #0006;top:-8px}.head-bomb:before{content:"";position:absolute;width:16px;height:13px;border-top:4px solid #9e6832;border-radius:50%;top:-7px;right:-6px;rotate:-35deg}.head-bomb:after{content:"✹";position:absolute;right:-13px;top:-17px;font-size:22px;line-height:1;color:#ffb82e;text-shadow:0 0 3px #ff6d2e,0 0 1px #fffbb3}@media(max-height:650px){.head-bomb{width:28px;height:28px;top:-6px}}


/* 反馈浮于场景中，不改变洞口布局，不需要关闭。 */
#game .feedback.feedback-large{position:absolute;top:clamp(150px,25%,230px);left:50%;translate:-50% 0;z-index:30;width:max-content;max-width:min(760px,94%);min-height:76px;border-radius:27px;padding:14px 26px;background:#f7ffe9f5;border:3px solid #9ec966;box-shadow:0 6px 0 #7caa4b55,0 12px 25px #526b4033;text-shadow:none;pointer-events:none;animation:feedback-pop .2s ease-out}.feedback-title{display:block;font-size:clamp(27px,3.3vw,46px);line-height:1.25;font-weight:1000;color:#468a3b}.feedback-pair{display:block;font-size:clamp(22px,2.4vw,34px);font-weight:800;line-height:1.4;margin-top:6px;overflow-wrap:anywhere;color:#825535}#game .feedback.feedback-large.bad{background:#fff8eaf7;border-color:#efbb75;box-shadow:0 6px 0 #c9914c55,0 12px 25px #76523830}.bad .feedback-title{color:#bc7338}.bomb-feedback .feedback-title{color:#bc583b}#game .feedback.feedback-large.bomb-feedback{border-color:#efa46b;background:#fff1def7}.bomb-burst .burst-flash{width:190px;height:190px;left:-95px;top:-95px}.bomb-burst .burst-particle{width:19px;height:19px}.bomb-burst .burst-smoke{width:42px;height:42px}.bomb-burst{scale:1.45}.bomb-burst .burst-flash{animation-duration:.8s}.bomb-burst .burst-particle,.bomb-burst .burst-smoke{animation-duration:.82s}@keyframes feedback-pop{from{opacity:0;scale:.86}to{opacity:1;scale:1}}@media(max-height:650px){#game .feedback.feedback-large{top:155px;min-height:60px;padding:10px 21px}.feedback-title{font-size:28px}.feedback-pair{font-size:22px}}@media(orientation:portrait){#game .feedback.feedback-large{top:27%;max-width:94%}.feedback-title{font-size:32px}.feedback-pair{font-size:26px}}@media(prefers-reduced-motion:reduce){#game .feedback.feedback-large{animation:none}.bomb-burst{scale:1}}
#game:has(.feedback-large) .board{margin-top:33px}@media(max-height:650px){#game:has(.feedback-large) .board{margin-top:27px}}


body[data-screen="result"]{background:radial-gradient(ellipse at 50% 40%,#fffef0 15%,#fff5d1 65%,#ffe0a1 100%);color:#796136}body[data-screen="result"] header{z-index:3;background:transparent}body[data-screen="result"] .brand{color:#8b7a39}body[data-screen="result"] main{max-width:1100px;position:relative}body[data-screen="result"]:before,body[data-screen="result"]:after{content:"";position:fixed;pointer-events:none;bottom:0;width:25vw;height:40vh;z-index:0;background:radial-gradient(ellipse at 12% 100%,#659c37 0 22%,transparent 23%),radial-gradient(ellipse at 60% 110%,#8fbe4e 0 28%,transparent 29%),radial-gradient(ellipse at 0 80%,#b1cd64 0 22%,transparent 23%)}body[data-screen="result"]:before{left:0}body[data-screen="result"]:after{right:0;transform:scaleX(-1)}#result{position:relative;z-index:1;padding:0 10px 5px;gap:0}#result>.eyebrow{display:none}#result .result-icon{font-size:clamp(38px,6vh,68px);line-height:1.1;filter:drop-shadow(0 4px 0 #d49e3820)}#result h1{font-size:clamp(32px,4.2vw,55px);color:#2e793b;letter-spacing:2px;margin:7px 0 13px;text-shadow:0 3px #eff2cb;line-height:1.15}#result h1:before,#result h1:after{content:"✦";font-size:.55em;color:#ffd149;vertical-align:middle;margin:0 14px}#resultStats{width:min(720px,92%);gap:20px;margin:0 0 13px;flex-shrink:0}#resultStats div{position:relative;flex:1;min-width:0;border:3px solid #b5ce8d;border-radius:23px;background:linear-gradient(#fffef9 0 77%,#9ac96e 78%);box-shadow:0 6px 0 #77a95160,inset 0 0 0 4px #fff8df;padding:17px 12px 29px;min-height:145px}#resultStats div:nth-child(2){background:linear-gradient(#fff9e2 0 77%,#f5d573 78%);border-color:#f2d482;box-shadow:0 6px 0 #d8b05250,inset 0 0 0 4px #fff8df}#resultStats div:nth-child(3){background:linear-gradient(#fff3d4 0 77%,#ffba58 78%);border-color:#f1b657;box-shadow:0 6px 0 #e09a3b55,inset 0 0 0 4px #fff8df}#resultStats b{font-size:clamp(36px,5vw,57px);line-height:1.1;color:#367740;font-weight:1000}#resultStats div:nth-child(2) b{color:#a17c29}#resultStats div:nth-child(3) b{color:#a36b22}#resultStats span{display:block;font-size:16px;font-weight:700;color:#94824c;margin-top:7px}#resultStats div:after{content:"✓";position:absolute;bottom:5px;right:12px;width:18px;height:18px;background:#ffffff55;border:1px solid #ffffff99;border-radius:50%;color:#fff9d7;line-height:18px;font-size:12px}#resultMessage{max-width:750px;font-size:14px!important;line-height:1.6;margin:6px 0 12px!important;text-align:center;color:#99804e}.result-review{min-height:0;flex:0 1 175px;width:min(720px,94%);margin-top:2px;display:flex;flex-direction:column}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 7px}.review-heading strong{font-size:15px;color:#8e784a}.review-heading span{font-size:12px;color:#a08c60}#result .mistakes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:visible;max-height:none;min-height:0;flex:none;width:100%;margin:0;max-width:none}#result .mistake{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff9e8;border:1px solid #ead8ac;border-radius:16px;box-shadow:0 3px 0 #debd7140;padding:10px 12px;min-height:70px;gap:4px;text-align:center}#result .mistake span:first-child{font-size:19px;font-weight:900;color:#7d653d}#result .mistake span:last-child{font-size:14px;color:#9e8557}.review-pager{display:flex;justify-content:center;gap:15px;align-items:center;margin:8px 0 0}.review-pager button{min-height:36px;padding:5px 12px;border-radius:14px;font-size:13px;background:#fff9e9}.review-pager span{font-size:12px;color:#9c875d}#result .actions{flex-shrink:0;margin:16px 0 0;gap:13px}#result .actions button{min-height:48px;min-width:130px;border:2px solid #ead09a;border-radius:25px;background:linear-gradient(#fffdf0,#ffedbd);box-shadow:0 4px 0 #d6b77355;color:#93713d;font-size:17px;padding:10px 23px}#result .actions .primary{background:linear-gradient(#ffd653,#ffb536);border-color:#fff1a8;color:white;text-shadow:0 2px #d39934;box-shadow:0 4px 0 #d69b3355,inset 0 0 0 2px #ffdf70}.party-decor{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.party-decor i{position:absolute;left:var(--x);top:var(--y);width:9px;height:15px;background:var(--c);border-radius:2px;transform:rotate(var(--r));opacity:.75}.party-flower{position:absolute;bottom:var(--b);font-size:var(--s);left:var(--x);color:var(--c);text-shadow:0 3px #9bb15e55;line-height:1}body:not([data-screen="result"]) .party-decor{display:none}@media(max-height:750px){#result .result-icon{font-size:38px}#result h1{font-size:36px;margin:4px 0 10px}#resultStats div{min-height:115px;padding:12px 9px 24px}#resultStats b{font-size:40px}#resultStats span{font-size:14px;margin-top:5px}.result-review{flex-basis:140px}#result .mistake{min-height:58px;padding:6px 10px}#result .actions{margin-top:12px}#resultMessage{font-size:12px!important;margin:4px 0 8px!important}}@media(max-height:620px){#result h1{font-size:30px;margin:2px 0 8px}#result .result-icon{font-size:30px}#resultStats div{min-height:96px;padding:8px 8px 20px}#resultStats b{font-size:34px}#resultStats{margin-bottom:7px}.result-review{flex-basis:120px}#result .mistake{min-height:52px}#result .actions button{min-height:44px;font-size:15px;padding:7px 17px}.review-pager{margin-top:4px}.review-pager button{min-height:32px}#result .actions{margin-top:8px}}@media(orientation:portrait){#resultStats{width:96%;gap:12px}#resultStats div{padding-left:8px;padding-right:8px}#result .mistakes{grid-template-columns:repeat(2,minmax(0,1fr))}.result-review{flex-basis:210px}#result .actions button{min-width:0;padding:10px 18px}}
#result .result-review{flex:0 0 auto;min-height:0}#result .mistakes{grid-template-columns:repeat(2,minmax(0,1fr))}.review-pager{flex-shrink:0}.review-pager button{min-height:44px}#result .actions{position:relative}


.bank-manager{background:#fff8e8;border:1px solid #e6d8b0;border-radius:18px;padding:14px;margin:14px 0}.bank-manager-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.bank-manager-top strong{font-size:17px}.bank-manager-top button{font-size:15px;padding:9px 14px}.bank-manager .modal-tip{margin:8px 0;font-size:13px}.bank-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e5ddc6;padding:6px 0;gap:12px}.bank-row label{display:flex;align-items:center;gap:10px;flex:1;min-height:44px;cursor:pointer;min-width:0}.bank-row input{width:23px;height:23px;flex-shrink:0;accent-color:#6a9b43}.bank-row span{font-size:15px;overflow-wrap:anywhere}.bank-row button{min-height:44px;padding:7px 12px;font-size:13px;flex-shrink:0}.bank-pagination{display:flex;align-items:center;justify-content:center;gap:15px;margin:8px 0}.bank-pagination[hidden]{display:none}.bank-pagination button{min-height:44px;font-size:13px}.bank-name{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:700;margin-top:12px}.bank-name input{min-width:0;flex:1;padding:10px 12px;min-height:44px;border:1px solid #dccda8;border-radius:12px;font:15px "Microsoft YaHei",sans-serif;background:#fffdf5}#selectedBankSummary{font-size:14px;color:#658545;margin:7px 0!important}.bank-example button{margin:4px 4px 0 0}
.bank-row{flex-wrap:wrap}.bank-delete{color:#b3654d!important;border-color:#e7c2b5!important;background:#fff4ed!important}.bank-delete.confirm-delete{background:#fbe0d4!important}.bank-delete-hint{flex-basis:100%;font-size:13px;color:#a36e50;line-height:1.6}.bank-delete-cancel{margin-left:auto}


.bank-manager[hidden],#bankEditorView[hidden]{display:none!important}.bank-use-badge{font-size:12px;border-radius:12px;background:#edf3df;color:#78954b;padding:5px 8px;white-space:nowrap}.bank-row:has(input:checked) .bank-use-badge{background:#d8edc4;color:#477433}.bank-row label{flex-wrap:wrap}.bank-row label>span{flex:1}#bankBackToSelection{margin:8px 0 15px}#bankSelectionNotice:empty{display:none}.bank-pagination button{min-height:44px}
body[data-screen="game"][data-theme="ocean"]{background:#d9f7ff url('assets/theme-ocean.svg') center/cover no-repeat;--sign-top:#e5fbff;--sign-bottom:#a9deed;--sign-border:#75bdd0;--sign-ink:#397b94}
body[data-screen="game"][data-theme="peach"]{background:#fff0ed url('assets/theme-peach.svg') center/cover no-repeat;--sign-top:#fff1f3;--sign-bottom:#ffcbd7;--sign-border:#e99ab4;--sign-ink:#a65a7d}
body[data-screen="game"][data-theme="sunny"]{background:#fff4ca url('assets/theme-sunny.svg') center/cover no-repeat;--sign-top:#fff8d5;--sign-bottom:#ffdf80;--sign-border:#e3b44c;--sign-ink:#a27928}
body[data-screen="game"][data-theme="lavender"]{background:#f3eaff url('assets/theme-lavender.svg') center/cover no-repeat;--sign-top:#f7f0ff;--sign-bottom:#d5bced;--sign-border:#b294d4;--sign-ink:#7c5aa0}
body[data-screen="game"]:not([data-theme="garden"]) .hole .answer{background:linear-gradient(var(--sign-top),var(--sign-bottom));border-color:var(--sign-border);color:var(--sign-ink);box-shadow:0 3px 0 var(--sign-border)}body[data-screen="game"]:not([data-theme="garden"]) .hole:after{border-color:var(--scene-ground);box-shadow:0 3px 0 var(--scene-ring)}body[data-screen="game"]:not([data-theme="garden"]) .question{border-color:var(--scene-ring);box-shadow:0 5px 0 var(--scene-ground)}body[data-screen="game"]:not([data-theme="garden"]) #game:before{content:var(--theme-sticker,"✦");-webkit-text-stroke:0;font-size:34px}body[data-theme="ocean"]{--theme-sticker:"🐚"}body[data-theme="peach"]{--theme-sticker:"🌸"}body[data-theme="sunny"]{--theme-sticker:"🌻"}body[data-theme="lavender"]{--theme-sticker:"🌈"}
body[data-screen="home"][data-theme="ocean"]{background-image:linear-gradient(#b8f0ff88,#81e0e844),url('assets/garden-home-fast-v1.webp');background-blend-mode:color,normal}body[data-screen="home"][data-theme="peach"]{background-image:linear-gradient(#ffd0e788,#ffa7c344),url('assets/garden-home-fast-v1.webp');background-blend-mode:color,normal}body[data-screen="home"][data-theme="sunny"]{background-image:linear-gradient(#fff1a555,#ffd34744),url('assets/garden-home-fast-v1.webp');background-blend-mode:soft-light,normal}body[data-screen="home"][data-theme="lavender"]{background-image:linear-gradient(#dbc5ff88,#c1afff55),url('assets/garden-home-fast-v1.webp');background-blend-mode:color,normal}body[data-screen="home"]:not([data-theme="garden"]) .home-shortcuts button{background:var(--scene-button);border-color:var(--scene-ground)}body[data-screen="result"]:not([data-theme="garden"]){background:radial-gradient(ellipse,var(--scene-glow),var(--scene-bg) 60%,var(--scene-deep))}
.backup-all-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}.backup-all-row small{color:#8b805f;font-size:12px}.wide-word-label{z-index:4!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;max-width:calc(100vw - 32px);justify-content:flex-start!important;touch-action:pan-x;scrollbar-width:thin}

