:root{--ink:#344b36;--muted:#748676;--mint:#e6f5d5;--cream:#fff8e9;--cream2:#f7edce;--panel:#fffdf4;--leaf:#5b9a58;--leafdark:#387344;--orange:#e8a05d;--gold:#ffcb68;--line:#e7ddbd;--shadow:0 7px 0 rgba(94,110,58,.08),0 12px 24px rgba(83,106,60,.09)}
*{box-sizing:border-box}html{background:#f8f0d9}body{margin:0;color:var(--ink);font-family:ui-rounded,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;min-height:100vh;background:radial-gradient(ellipse at top,#f4e1aa 0,#faf5e6 34%,#e7f3d9 100%)}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.52;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #629fdc;outline-offset:2px}.app-shell{max-width:1090px;min-height:100dvh;margin:auto;padding:0 16px calc(112px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(255,250,230,.5),transparent 480px)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:calc(19px + env(safe-area-inset-top)) 2px 8px}.brand{display:flex;gap:10px;align-items:center}.brand-icon{width:48px;height:48px;border-radius:17px;background:#e6b96c;display:grid;place-items:center;font-size:29px;box-shadow:0 4px #d79d63}.brand-title{font-size:21px;font-weight:950;letter-spacing:.3px}.brand-sub{font-size:11px;color:var(--muted);margin-top:3px}.top-right{display:flex;align-items:center;gap:9px}.purse{background:#fff8df;border:2px solid #eace8c;border-radius:24px;padding:9px 13px;font-weight:900;white-space:nowrap}.iconbtn{height:44px;min-width:44px;background:#fff8df;border:2px solid #eace8c;border-radius:15px;font-size:20px}.statusbar{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#648465;padding:9px 4px 16px}.bottom-nav{position:fixed;z-index:15;bottom:0;left:50%;transform:translateX(-50%);width:min(1090px,100%);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:10px max(8px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:rgba(255,250,231,.97);border-top:2px solid #e7d8ac;box-shadow:0 -6px 20px #657b4d1c;backdrop-filter:blur(12px)}.bottom-nav button{border:0;background:transparent;color:#7e8c6f;padding:7px 0;border-radius:13px;display:flex;flex-direction:column;align-items:center;gap:2px}.bottom-nav button.active{background:#d9ecc1;color:#326e42;font-weight:900}.bottom-nav button span{font-size:25px}.bottom-nav button small{font-size:11px}.hero{position:relative;border:5px solid #fdf4d8;background:#98cb79 url('assets/farm-scene.png') center center/cover;min-height:320px;box-shadow:var(--shadow);border-radius:27px;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,61,29,.6),transparent 72%);pointer-events:none}.hero-info{position:relative;z-index:1;color:#fffdf2;max-width:68%;padding:28px 24px;text-shadow:0 2px 4px rgba(34,55,34,.32)}.eyebrow{display:inline-block;border-radius:20px;background:#f8da83;color:#5f572e;padding:5px 11px;font-weight:950;font-size:12px;text-shadow:none}.hero h1{font-size:clamp(25px,4vw,39px);line-height:1.25;margin:16px 0 10px;font-weight:950}.hero p{font-size:14px;line-height:1.7;max-width:310px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.section-title{font-weight:950;font-size:20px;margin:25px 3px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title small{font-size:12px;font-weight:600;color:var(--muted)}.card{background:var(--panel);border:2px solid var(--line);border-radius:23px;box-shadow:var(--shadow);padding:20px}.mini-card{display:flex;align-items:center;gap:12px;padding:14px;background:#fffdf3;border:2px solid #ece2bf;border-radius:18px}.mini-icon{width:56px;height:56px;display:grid;place-items:center;background:#f3e6bb;border-radius:17px;font-size:31px;flex-shrink:0}.mini-card h3{font-size:16px;margin:0 0 5px}.mini-card p,.subtext{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:13px 18px;min-height:47px;border-radius:15px;border:2px solid #46844c;background:#6aab66;box-shadow:0 4px #417a45;color:white;font-weight:950;font-size:15px;text-decoration:none}.btn:active{transform:translateY(3px);box-shadow:0 1px #417a45}.btn.secondary{color:#537047;background:#fff1c7;border-color:#dfc380;box-shadow:0 4px #ddc17f}.btn.ghost{color:#56754e;background:#fffdf3;border-color:#ddd8b8;box-shadow:0 3px #ded8bc}.btn.warn{color:#804b31;background:#ffe8d9;border-color:#e6ad83;box-shadow:0 3px #e3b38b}.btn.small{min-height:44px;padding:7px 12px;font-size:13px}.btn.block{width:100%}.btnrow{display:flex;flex-wrap:wrap;gap:10px}.tag{padding:5px 9px;border-radius:18px;background:#eff3d9;color:#5e7c4c;font-size:12px;font-weight:900}.tag.gold{background:#ffefc3;color:#94672e}.muted{color:var(--muted)}.progress{height:14px;background:#e7edce;border-radius:20px;overflow:hidden;border:1px solid #d2dfa9}.progress-fill{height:100%;background:linear-gradient(90deg,#8fbe67,#4d9b62);border-radius:20px;transition:width .25s}.task{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px dashed #e2dfc9}.task:last-child{border:0}.task-icon{width:51px;height:51px;display:grid;place-items:center;font-size:26px;border-radius:14px;background:#fff0c8}.task-main{flex:1;min-width:0}.task-main strong{display:block;font-size:15px}.task-main span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.task-status{font-size:12px;color:#62975a;font-weight:900}.statstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat{background:#fff5d8;border-radius:16px;padding:13px 9px;text-align:center}.stat b{display:block;font-size:24px}.stat small{font-size:11px;color:#6b836a}.feature-card{display:flex;flex-direction:column;align-items:start;gap:7px;min-height:145px;background:var(--panel);border:2px solid var(--line);border-radius:21px;padding:17px;box-shadow:var(--shadow);text-align:left;color:var(--ink)}.feature-card:active{transform:translateY(2px)}.feature-card .emo{font-size:34px}.feature-card strong{font-size:17px}.feature-card small{font-size:12px;line-height:1.5;color:var(--muted)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 2px 18px}.page-heading h1{font-size:26px;margin:0 0 5px}.page-heading p{font-size:13px;color:var(--muted);margin:0}.word-hero{margin-top:12px;border-radius:25px;background:linear-gradient(145deg,#fff2c6,#fffef5);border:3px solid #e6cd91;box-shadow:var(--shadow);padding:24px;text-align:center}.word-hero .bigword{font-size:clamp(28px,6vw,46px);font-weight:950;word-break:break-word;letter-spacing:1px;margin:16px auto}.word-hero .meaning{font-size:23px;font-weight:900;margin:8px 0}.word-hero .phase{font-size:13px;color:#8b835d}.word-hero .bigword.masked{filter:blur(7px);opacity:.4;user-select:none}.letter-slots,.letter-bank{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;align-items:center;margin:20px auto}.letter-slot{width:36px;height:43px;border-radius:10px;background:#fffdf1;border-bottom:4px solid #7d9f77;display:grid;place-items:center;font-size:24px;font-weight:950;text-transform:uppercase}.letter-slot.space{width:15px;background:none;border:0}.letter-slot.punct{width:13px;background:none;border:0}.letter-slot.has{background:#d9eed1}.letter{border:2px solid #ccad69;box-shadow:0 4px #c3a46c;background:#fff2c8;width:45px;height:49px;border-radius:12px;font-size:25px;font-weight:950;color:#4b654b}.letter.used{opacity:.22;box-shadow:none;pointer-events:none}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:20px 0}.choice{min-height:65px;padding:12px 8px;border:2px solid #dbd2ae;border-radius:17px;background:#fffbf0;font-size:17px;color:#4b6047;font-weight:850;word-wrap:break-word}.choice.right{background:#d2f0cb;border-color:#61a65a}.choice.wrong{background:#fce2d7;border-color:#e2a68e}.feedback{padding:12px 15px;background:#e6f4db;border-radius:14px;color:#467c46;font-weight:800;font-size:14px;margin:12px 0}.feedback.error{background:#fff0db;color:#a2713c}.badge-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.section-note{background:#f6f0df;border-radius:13px;color:#7b795c;font-size:12px;line-height:1.7;padding:10px 13px;margin-top:14px}.answerinput{width:100%;min-height:52px;border-radius:14px;border:2px solid #d5ccaa;background:white;padding:12px 15px;font-size:23px;letter-spacing:1px;font-weight:800;color:#365339}.field{width:100%;min-height:48px;border-radius:13px;border:2px solid #dfd5b8;padding:10px 12px;background:white;color:var(--ink)}label.label{display:block;font-weight:850;margin:12px 0 7px;font-size:13px}.game-panel{text-align:center;padding:22px}.game-panel .prompt{font-size:24px;font-weight:950;margin:15px 0}.game-score{display:flex;justify-content:space-between;margin:4px 0 13px;color:#738364;font-weight:850;font-size:13px}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-choice{border:2px solid #d4d7a9;border-radius:17px;background:#f8f8e7;font-weight:950;color:#516d43;min-height:64px;padding:12px;word-break:break-word}.game-choice.selected{background:#ffe5b0;border-color:#d8ac53}.game-choice.matched{background:#d9efd0;border-color:#8abc6c;opacity:.6}.farm-world{background:linear-gradient(#d7eecc,#c5dfaa);border:4px solid #fcf2c9;padding:12px;border-radius:25px}.farm-banner{height:230px;background:#94cc70 url('assets/farm-scene.png') center/cover;border-radius:19px;border:4px solid #ebd9a4;position:relative;overflow:hidden}.farm-banner h2{position:absolute;bottom:11px;left:14px;background:rgba(255,250,222,.94);padding:9px 15px;border-radius:13px;margin:0;font-size:17px}.field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px 3px}.plot{min-height:85px;border-radius:15px;border:4px solid #bc935c;background:repeating-linear-gradient(0deg,#b77d48 0 14px,#aa7040 14px 19px);box-shadow:inset 0 0 0 3px #dab080;color:#fff;font-size:30px;font-weight:900}.plot.empty{color:#f2d5a5;font-size:22px}.shop-item{display:flex;gap:12px;align-items:center;border-bottom:1px dashed #e1dbc2;padding:15px 0}.shop-item:last-child{border:0}.shop-item .emoji{font-size:35px;background:#fff0c6;border-radius:14px;display:grid;place-items:center;width:58px;height:58px}.shop-item .itemtext{flex:1;min-width:0}.shop-item h3{margin:0 0 5px;font-size:16px}.shop-item p{margin:0;color:#a4834c;font-size:12px}.history{margin:8px 0;padding:8px 0;border-bottom:1px dashed #ddd7bd;display:flex;justify-content:space-between;gap:12px;font-size:13px}.parent-form{max-width:560px;margin:auto}.overlay{position:fixed;inset:0;z-index:50;background:rgba(31,57,37,.63);display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:#fffdf2;border:4px solid #ecd6a1;box-shadow:0 22px 50px #223e2b55;max-height:min(86dvh,900px);overflow-y:auto;width:min(100%,550px);border-radius:25px;padding:24px;overscroll-behavior:contain}.dialog h2{margin:0 0 10px;font-size:23px}.dialog .close{float:right;border:0;border-radius:10px;background:#f4e6bf;font-size:22px;width:38px;height:38px}.dialog .stack{display:flex;flex-direction:column;gap:10px}.pill-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.pill-tabs button{padding:9px 13px;border-radius:20px;border:2px solid #e2dbbc;background:#fffef1;color:#6b8065;font-weight:850;font-size:13px}.pill-tabs button.selected{background:#d5efc9;border-color:#7eb76b}.list-card{padding:12px;margin:10px 0;background:#f4f4e5;border:1px solid #d9dec6;border-radius:13px;font-size:14px}#toast{position:fixed;z-index:100;bottom:calc(101px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);min-width:160px;max-width:min(88vw,550px);padding:12px 19px;border-radius:19px;background:rgba(51,82,56,.94);color:white;text-align:center;font-weight:750;opacity:0;pointer-events:none;transition:opacity .25s}#toast.show{opacity:1}.empty{padding:23px;text-align:center;color:#71846b}.smallstat{font-size:12px;color:#7b8b74}.careful{background:#fff3dc;color:#906a39;font-size:12px;line-height:1.6;padding:11px 13px;border-radius:13px}.lock{display:inline-flex;gap:6px;align-items:center}.spacer{height:7px}.wide-on-mobile{min-width:0}
@media(min-width:800px){.app-shell{padding:0 26px calc(120px + env(safe-area-inset-bottom))}.hero{min-height:365px}.main-cols{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.hero-info{padding:44px}.field-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:550px){.app-shell{padding:0 11px calc(110px + env(safe-area-inset-bottom))}.brand-title{font-size:18px}.brand-icon{width:43px;height:43px}.purse{padding:8px 10px}.hero{min-height:287px}.hero:after{background:linear-gradient(90deg,rgba(32,70,37,.7),rgba(30,68,34,.12))}.hero-info{max-width:86%;padding:20px 15px}.hero-info h1{font-size:28px}.grid2{gap:10px}.card{padding:15px;border-radius:19px}.feature-card{padding:14px;min-height:130px}.feature-card strong{font-size:15px}.feature-card small{font-size:11px}.mini-icon{width:43px;height:43px;font-size:24px}.mini-card{padding:11px}.mini-card h3{font-size:14px}.bottom-nav button span{font-size:23px}.bottom-nav button small{font-size:10px}.statusbar{font-size:11px}.letter{width:44px;height:44px;font-size:22px}.letter-slot{width:30px;height:37px;font-size:21px}.letter-slots,.letter-bank{gap:5px}.page-heading h1{font-size:24px}.stat b{font-size:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
