:root{color-scheme:dark;--bg:#0d182b;--panel:#172840;--panel2:#1d344d;--white:#f0f6ff;--muted:#aebfd4;--line:#344b62;--mint:#7ee9bb;--gold:#ffe0a1;--rose:#ffb3a8;--shadow:0 18px 40px rgba(0,0,0,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg);color:var(--white);font:16px/1.6 system-ui,-apple-system,"Microsoft JhengHei",sans-serif;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;top:-100px;left:10px;padding:10px;background:white;color:black;z-index:5}.skip-link:focus{top:5px}.ambient{position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(5px)}.ambient-a{width:450px;height:450px;top:-200px;right:-130px;background:radial-gradient(circle,rgba(27,131,127,.20),transparent 72%)}.ambient-b{width:530px;height:530px;bottom:10px;left:-240px;background:radial-gradient(circle,rgba(108,73,138,.18),transparent 70%)}.shell{width:min(1150px,calc(100% - 36px));margin:auto}.topbar{display:flex;align-items:center;gap:12px;min-height:74px}.back-link,.home-link{color:#bdd1e4;font-size:.83rem}.back-link:hover,.home-link:hover{color:var(--mint)}.home-link{margin-left:auto}.logo-icon{display:grid;place-items:center;background:#203f53;width:34px;height:34px;border-radius:10px}.wordmark{font-size:.9rem;font-weight:800;letter-spacing:.02em}.wordmark span{font-weight:500;color:var(--muted)}.hero{position:relative;display:grid;grid-template-columns:1.7fr 1fr;min-height:258px;align-items:center;overflow:hidden;border:1px solid #345e69;border-radius:23px;background:linear-gradient(115deg,#13364a 0%,#183a49 49%,#2c4158 100%);box-shadow:var(--shadow)}.hero-copy{position:relative;z-index:2;padding:30px 34px}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--mint)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(1.65rem,3.3vw,2.5rem);line-height:1.25;letter-spacing:-.035em;margin:12px 0 14px}.hero h1 span{color:var(--mint)}.hero p{max-width:560px;color:#cadddf}.hero-mini{display:flex;flex-wrap:wrap;gap:10px}.hero-mini span{display:inline-block;border-radius:99px;background:#ffffff13;padding:5px 11px;font-size:.76rem;color:#e3f6f0}.hero-art{height:100%;position:relative;isolation:isolate;background:radial-gradient(circle at 62% 44%,#d0f6a75e,transparent 36%)}.hero-art .sun{position:absolute;right:33%;top:23%;width:115px;height:115px;border-radius:50%;background:#bdebbb;filter:blur(1px);opacity:.6}.landscape{position:absolute;right:10%;bottom:18%;font-size:clamp(2.3rem,5vw,4rem);white-space:nowrap;letter-spacing:-.15em;filter:drop-shadow(0 15px 7px #0b253b)}.hero-spark{position:absolute;color:var(--mint);font-size:1.5rem}.hero-spark.a{left:15%;top:23%}.hero-spark.b{right:16%;top:17%}.hero-spark.c{left:43%;bottom:22%}.status-strip{margin:16px 0 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.status-strip>div{display:flex;gap:10px;align-items:center;padding:16px 18px;background:var(--panel);border:1px solid #284057;border-radius:15px}.status-ico{font-size:1.4rem}.status-strip small,.status-strip strong{display:block}.status-strip small{font-size:.71rem;color:var(--muted)}.status-strip strong{font-size:1.05rem;font-weight:800}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:24px;overflow:auto}.tab{flex:1;min-width:max-content;border:0;border-radius:11px;padding:12px 14px;color:var(--muted);background:transparent;font-weight:700}.tab:hover{background:#ffffff0a;color:white}.tab.is-active{color:#0c2830;background:var(--mint)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.section-head h2{font-size:1.55rem;margin:5px 0}.section-head p{color:var(--muted);font-size:.89rem;margin:0}.button{min-height:44px;border:1px solid transparent;border-radius:11px;padding:10px 16px;font-size:.88rem;font-weight:750;transition:transform .15s ease,background .15s}.button:active{transform:scale(.98)}.button:focus-visible,.tab:focus-visible,.level-btn:focus-visible,.back-link:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffd181;outline-offset:3px}.button:disabled{opacity:.48;cursor:not-allowed}.button-primary,.button-accent{background:var(--mint);color:#10302e}.button-primary:hover,.button-accent:hover{background:#a0fbd2}.button-outline{background:#1b3447;border-color:#477383;color:#e9f8ff}.button-outline:hover{background:#22465b}.button-quiet{background:#243b52;color:#d1ddeb}.button-danger{background:#512c3d;border-color:#a96272;color:#fff}.zone-list{display:grid;gap:16px}.zone-card{display:grid;grid-template-columns:165px 1fr;border:1px solid #34516b;border-radius:18px;background:linear-gradient(110deg,#203851,#15263c);overflow:hidden;box-shadow:0 5px 18px #0000001a}.zone-card.locked{opacity:.66}.zone-art{min-height:178px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(140deg,#2b705f,#1b3a55)}.zone-orchard .zone-art{background:linear-gradient(140deg,#92624f,#573d50)}.zone-academy .zone-art{background:linear-gradient(140deg,#5c6498,#33355c)}.zone-town .zone-art{background:linear-gradient(140deg,#6f5e8d,#3f3b60)}.zone-sky .zone-art{background:linear-gradient(140deg,#4c7b93,#2b536a)}.zone-art .illustration{font-size:4.2rem;filter:drop-shadow(0 10px 12px #17284099)}.zone-art .zone-index{font-size:.7rem;letter-spacing:.2em;color:#ecf7fc}.zone-body{padding:18px 20px}.zone-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.zone-top h3{font-size:1.14rem;margin:0}.zone-top p{font-size:.82rem;color:var(--muted);margin:2px 0 10px}.zone-stars{font-size:.82rem;color:var(--gold);white-space:nowrap}.level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.level-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid #466278;border-radius:10px;background:#2b455d;padding:9px 10px;color:var(--white);text-align:left;min-height:74px}.level-btn:hover:not(:disabled){background:#345875;border-color:var(--mint)}.level-btn:disabled{opacity:.48;cursor:not-allowed}.level-btn .level-name{font-weight:750;font-size:.77rem}.level-btn .level-description{font-size:.69rem;color:#cbdaeb}.level-btn .level-badge{font-size:.69rem;color:var(--gold)}.game-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.85fr);gap:18px;align-items:start}.battle-main,.side-panel,.empty-state,.settings-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow)}.battle-main{padding:24px}.battle-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.battle-header h2{font-size:1.45rem;margin:4px 0}.battle-header p{color:var(--muted);font-size:.83rem}.progress-row{display:flex;justify-content:space-between;font-size:.78rem;color:#d1ddeb;font-weight:650}.meter{height:10px;border-radius:99px;background:#253f55;margin:8px 0 23px;overflow:hidden}.meter span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7ee9bb,#bff6b5);transition:width .22s}.word-stage{position:relative;text-align:center;background:linear-gradient(145deg,#25526a,#214253);border:1px solid #42748c;border-radius:19px;padding:28px 12px 25px;margin-bottom:22px;overflow:hidden}.word-stage:before,.word-stage:after{content:'✧';position:absolute;color:#ffffff35;font-size:2rem}.word-stage:before{left:9%;top:10%}.word-stage:after{right:8%;bottom:12%}.stage-label{color:#b1e2dc;font-weight:800;font-size:.7rem;letter-spacing:.16em}.current-word{font-size:clamp(2rem,6vw,3.4rem);font-weight:900;line-height:1.3;letter-spacing:.06em;overflow-wrap:anywhere;text-transform:uppercase}.current-zh{font-size:.98rem;color:#ebf8fc;margin-top:3px}.chain-rule{display:inline-flex;align-items:center;gap:8px;margin-top:16px;background:#142a3a;padding:8px 12px;border-radius:99px;color:#e5f6fe;font-size:.85rem}.chain-rule strong{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#b2ffdc;color:#102d31;font-size:1.3rem}.field-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-weight:750;margin-bottom:9px}.field-label span{font-weight:400;font-size:.79rem;color:var(--muted)}.word-entry{display:flex;gap:8px}.word-entry input,.dex-toolbar input,.dex-toolbar select{min-width:0;width:100%;border:1px solid #4f7486;border-radius:11px;padding:12px;background:#0e2135;color:white;outline:none}.word-entry input::placeholder,.dex-toolbar input::placeholder{color:#9babba}.word-entry button{flex:0 0 108px}.play-message{min-height:46px;margin:14px 0;padding:10px 14px;background:#243d50;color:#d4eeff;border-left:3px solid var(--mint);border-radius:8px;font-size:.86rem}.play-message.warn{border-color:#f8cc84;color:#ffe9c2}.play-message.success{border-color:var(--mint);color:#bdffe8}.tool-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.tool-row .button{font-size:.79rem}.score-text{margin-left:auto;color:var(--muted);font-size:.78rem}.score-text strong{color:var(--gold);font-size:1.15rem}.side-panel{padding:18px;margin-bottom:14px}.side-panel h3{font-size:1rem;margin-bottom:7px}.side-panel p{font-size:.78rem;color:var(--muted);line-height:1.6}.history-list{max-height:380px;overflow:auto;padding-left:0;margin:12px 0 0;list-style:none;display:flex;flex-direction:column;gap:6px}.history-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #2e4b61;border-radius:10px;background:#10273a;font-size:.8rem}.history-item .history-en{font-weight:750}.history-item .history-zh{color:var(--muted);margin-left:auto}.history-item .history-by{font-size:.7rem;color:var(--mint)}.finish-box{margin-top:20px;padding:22px;text-align:center;background:linear-gradient(130deg,#2c5346,#233c55);border:1px solid #66cda4;border-radius:17px}.finish-medal{font-size:2.7rem}.finish-box h3{margin:6px 0}.finish-box p{color:#e0f6ec}.reward-strip{font-size:1.1rem;font-weight:750;color:var(--gold);margin:16px 0}.finish-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.empty-state{text-align:center;padding:65px 25px}.empty-icon{font-size:3.3rem}.empty-state p{color:var(--muted)}.book-count{font-weight:800;color:var(--mint)}.dex-toolbar{display:flex;gap:10px;margin-bottom:20px}.dex-toolbar select{max-width:185px}.dex-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dex-card{padding:15px;background:var(--panel);border:1px solid var(--line);border-radius:13px;min-height:160px}.dex-card .dex-word{font-size:1.18rem;font-weight:800;overflow-wrap:anywhere}.dex-card .dex-zh{color:#d9e3ed}.dex-card .dex-cat{font-size:.7rem;color:var(--mint)}.dex-card .dex-example{font-size:.77rem;color:var(--muted);margin:7px 0}.dex-card .speak-word{background:#28465b;color:#e9f9ff;border:1px solid #4a7184;border-radius:8px;min-width:42px;min-height:39px}.dex-card .card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card,.achievement{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px}.stat-card strong{display:block;font-size:1.7rem;color:var(--mint)}.stat-card small{color:var(--muted)}.sub-title{margin:28px 0 14px}.achievements{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.achievement{display:flex;gap:12px;align-items:center}.achievement .achievement-icon{font-size:2rem}.achievement h4{font-size:.86rem;margin:0}.achievement p{font-size:.76rem;color:var(--muted);margin:0}.achievement.locked{opacity:.47}.settings-panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:26px 0;padding:18px}.settings-panel h3{font-size:.97rem;margin:0}.settings-panel p{color:var(--muted);font-size:.76rem;margin:4px 0}.sound-toggle{font-size:.82rem}.notice{padding:12px 14px;border-radius:10px;margin-bottom:15px;font-size:.85rem}.notice-warning{background:#513f32;color:#fff3d5;border:1px solid #997c55}.footer{display:flex;justify-content:space-between;gap:15px;padding:30px 0;color:#96afc3;font-size:.75rem}@media(max-width:840px){.status-strip{grid-template-columns:repeat(2,1fr)}.game-grid{grid-template-columns:1fr}.zone-card{grid-template-columns:122px 1fr}.level-grid{grid-template-columns:repeat(2,1fr)}.dex-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr 160px}.hero-art .landscape{font-size:2.5rem;right:-15px;bottom:25%}.hero-copy{padding:26px}.hero-mini span:last-child{display:none}}@media(max-width:540px){.shell{width:min(100% - 22px,540px)}.topbar{min-height:58px;gap:6px}.topbar .wordmark{font-size:.8rem}.wordmark span{display:none}.logo-icon{width:29px;height:29px}.back-link,.home-link{font-size:.72rem}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:24px 18px}.hero h1{font-size:1.73rem}.hero p{font-size:.83rem;margin-bottom:14px}.hero-art{display:none}.status-strip{gap:7px;margin:10px 0 15px}.status-strip>div{padding:9px 10px;gap:5px}.status-ico{font-size:1.17rem}.status-strip small{font-size:.67rem}.status-strip strong{font-size:.87rem}.tabs{gap:2px;padding-bottom:8px;margin-bottom:19px}.tab{padding:9px 10px;font-size:.76rem}.section-head{align-items:flex-start;flex-wrap:wrap}.section-head h2{font-size:1.3rem}.zone-card{display:block}.zone-art{min-height:72px;flex-direction:row;justify-content:flex-start;padding-left:18px}.zone-art .illustration{font-size:2.4rem}.zone-body{padding:14px}.zone-top h3{font-size:1.02rem}.level-btn{min-height:68px}.battle-main{padding:15px}.battle-header h2{font-size:1.2rem}.battle-header .button{font-size:.71rem;padding:8px}.word-stage{padding:24px 9px}.current-word{font-size:2rem}.field-label span{font-size:.74rem}.word-entry button{flex-basis:80px;padding:8px}.score-text{width:100%;text-align:right}.dex-grid{grid-template-columns:1fr}.dex-toolbar{flex-wrap:wrap}.dex-toolbar select{max-width:none}.stats-grid{grid-template-columns:repeat(2,1fr)}.achievements{grid-template-columns:1fr}.footer{display:block;text-align:center}.footer span{display:block}.settings-panel{align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* V2.1 Reviewer corrections */
.mission-goal{border:1px solid #578a7d;padding:9px 12px;border-radius:9px;background:#183f42;color:#e7fff6!important;font-weight:700}.strategy-tip{font-size:.82rem;color:#ffdca4!important}.shop-section{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.shop-section>p{color:var(--muted);font-size:.86rem}.shop-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shop-item{display:flex;gap:10px;flex-direction:column;align-items:center;justify-content:space-between;padding:16px 10px;background:#213950;border:1px solid #47657c;border-radius:11px;text-align:center}.shop-icon{font-size:2rem}.shop-item strong{font-size:.85rem}.equipped-title{margin-top:12px;font-size:.85rem;color:#c5eedf}.unlock-toast{position:fixed;z-index:40;top:75px;right:18px;max-width:min(360px,calc(100% - 36px));padding:16px 20px;border-radius:15px;background:#27584f;border:2px solid var(--mint);color:#fff;box-shadow:0 12px 32px #0009;font-weight:750;animation:unlockIn .24s ease-out}@keyframes unlockIn{from{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.dex-example.muted{opacity:.67;font-style:italic}@media(max-width:540px){.shop-list{grid-template-columns:1fr}.shop-item{flex-direction:row}.shop-icon{font-size:1.5rem}.unlock-toast{top:60px;left:10px;right:10px}}
