:root{color-scheme:dark;--bg:#081028;--panel:#121e3d;--ink:#eff6ff;--muted:#98acd0;--cyan:#64e8fb;--lavender:#a69aff;--line:#344565}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(ellipse at 50% 0%,#182c58 0%,#0a1430 36%,#080e20 78%);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}
button,input,select{font:inherit}
button{cursor:pointer;touch-action:manipulation}
a{color:inherit;text-decoration:none}
button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #8ef7ff;outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app{max-width:530px;padding:0 14px 25px;margin:0 auto}
.topbar{height:68px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand{font-size:13px;font-weight:950;letter-spacing:.15em;display:flex;align-items:center;gap:4px}
.brand b{color:var(--cyan)}
.brand-icon{color:#61e6ff;font-size:24px;margin-right:6px;filter:drop-shadow(0 0 10px #6defff)}
.back{font-size:12px;color:#b0c1df;border:1px solid #3e506d;border-radius:25px;padding:8px 12px}
.hero{padding:18px 0 16px}
.eyebrow{font-size:10px;color:#6ae2fb;font-weight:850;letter-spacing:.12em;display:flex;align-items:center;gap:8px}
.online-dot{height:7px;width:7px;border-radius:50%;background:#71f1c5;box-shadow:0 0 8px #4bf3bb}
.hero h1{font-size:clamp(30px,7vw,43px);font-weight:950;letter-spacing:-.055em;margin:10px 0 9px;line-height:1.1}
.hero h1>span{background:linear-gradient(100deg,#5be7ff,#b4a2ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 small{display:block;font-size:10px;letter-spacing:.25em;font-weight:800;color:#8198bd;margin-top:8px}
.hero p{color:#a4b8d8;font-size:12px;line-height:1.8;margin:0}
.setup{display:grid;grid-template-columns:minmax(0,1.5fr) 1fr .88fr;gap:7px;margin:8px 0 11px}
.selector{display:flex;flex-direction:column;justify-content:center;gap:4px;background:#101c37;border:1px solid var(--line);border-radius:10px;padding:6px 10px;min-width:0}
.selector span{font-size:9px;font-weight:750;color:#8ca4c6}
.selector select{display:block;width:100%;border:0;background:transparent;color:#e7f5ff;font-size:12px;font-weight:850;outline:0;min-width:0}
.selector select option{background:#132241;color:white}
.tool-btn{font-size:11px;font-weight:850;border:1px solid #344865;border-radius:10px;background:#172440;color:#dcf0ff;padding:9px 5px}
.tool-btn:active,.feedback-next:active,.start-btn:active{transform:scale(.97)}
.preview{border:1px solid #47617e;border-radius:13px;background:#13223f;padding:14px;margin:8px 0 13px;box-shadow:0 9px 30px #01071438}
.preview-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.preview-title strong{display:block;font-size:15px}
.preview-title span{display:block;font-size:10px;color:#91a9c9;margin-top:4px}
.preview-title button{border:0;background:#233657;color:#d2e7fa;border-radius:8px;width:30px;height:30px}
.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:255px;overflow-y:auto}
.preview-word{border:1px solid #344b6c;background:#0f1a34;border-radius:9px;padding:9px;min-width:0;display:flex;gap:7px;align-items:center;justify-content:space-between}
.preview-word .item-icon{font-size:21px}
.preview-word .item-info{flex:1;min-width:0}
.preview-word b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preview-word small{display:block;color:#a3b5d3;font-size:10px;margin-top:3px}
.preview-word button{border:0;border-radius:7px;background:#233b61;color:#8ee7fc;padding:6px;font-size:12px}
.hud{display:grid;grid-template-columns:1.08fr .8fr 1.28fr .9fr;gap:6px;margin:8px 0}
.metric{background:#101d38;border:1px solid #304260;border-radius:10px;padding:9px 8px;min-width:0}
.metric>span{display:block;font-size:8px;letter-spacing:.07em;font-weight:850;color:#91a7ca;white-space:nowrap}
.metric>strong{display:block;font-size:17px;font-weight:900;margin-top:4px;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.metric .energy{font-size:12px;color:#ff819f;letter-spacing:0}
.stage{position:relative;width:100%;aspect-ratio:400/580;background:#081028;border:2px solid #355b80;border-radius:17px;overflow:hidden;box-shadow:0 12px 46px #030a1b9c,0 0 24px #5083fb1a;isolation:isolate}
.stage:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 55px #080e30a6;z-index:1}
.stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:0;pointer-events:none}
.question{position:absolute;top:11%;left:4%;width:92%;z-index:2;min-height:107px;background:linear-gradient(145deg,#101f43f0,#152c4af0);border:1px solid #3e658f;border-radius:14px;box-shadow:0 13px 30px #0004;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 8px;gap:4px}
.question-top{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;color:#71dafa;font-size:9px;font-weight:850;letter-spacing:.11em}
.question-top span:last-child{color:#849ec4}
.question-title{font-size:clamp(17px,5vw,24px);line-height:1.25;font-weight:950;max-width:100%;overflow-wrap:anywhere;text-shadow:0 1px 10px #213f77}
.question-sub{font-size:11px;color:#95abc8;line-height:1.4}
.listen-btn{border:1px solid #51c4de;background:#1c4769;color:#cffbff;font-size:12px;font-weight:850;border-radius:25px;padding:7px 13px;margin-top:3px}
.targets{position:absolute;top:39%;left:3%;right:3%;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
.monster{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;min-height:150px;background:linear-gradient(180deg,#15234bd9,#15264bfa);border:1px solid #476da1;border-radius:15px;padding:11px 4px 13px;position:relative;color:#eafaff;box-shadow:0 13px 17px #02091866, inset 0 1px #badfff19;transition:transform .16s ease,border .14s ease,background .14s ease}
.monster:hover{transform:translateY(-5px);border-color:#71d9fa}
.monster:active{transform:scale(.96)}
.monster[disabled]{cursor:default}
.monster-number{position:absolute;top:9px;left:10px;font-size:10px;color:#8ca9cf;font-weight:900}
.monster-art{font-size:clamp(30px,9vw,46px);line-height:1.3;margin-bottom:13px;filter:drop-shadow(0 6px 13px #09071875);transform-origin:50% 80%;animation:floaty 2.1s ease-in-out infinite}
.monster:nth-child(2) .monster-art{animation-delay:.28s}
.monster:nth-child(3) .monster-art{animation-delay:.56s}
.monster-word{font-size:clamp(11px,3.7vw,16px);font-weight:900;letter-spacing:-.02em;overflow-wrap:anywhere;line-height:1.2;width:100%;text-align:center}
.monster-sub{margin-top:5px;font-size:9px;color:#91a9c9;letter-spacing:.06em}
.monster.correct{border-color:#75f6bd;background:linear-gradient(180deg,#0f5349d9,#174f51ee);box-shadow:0 0 27px #41f4a35e}
.monster.wrong{border-color:#ff6f98;background:linear-gradient(180deg,#64264ee0,#3c254c);opacity:.82}
.monster.unpicked{opacity:.48}
.monster.correct .monster-word{color:#bafcdd}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.boss-area{position:absolute;top:31%;left:5%;width:90%;z-index:2;text-align:center;background:linear-gradient(160deg,#311c52e8,#211a45f2);border:1px solid #b569c1;border-radius:18px;padding:16px 11px 18px;box-shadow:0 0 40px #8f55eb50}
.boss-sign{font-size:10px;color:#ffb4dd;letter-spacing:.05em;font-weight:950}
.boss-avatar{font-size:69px;filter:drop-shadow(0 6px 18px #e358cd8a);animation:floaty 2s infinite}
.boss-prompt{font-size:19px;font-weight:900;margin:8px 0 14px}
.spell-form{display:flex;gap:6px}
.spell-form input{width:65%;min-width:0;color:#15213b;background:#f8faff;border:2px solid #f4eaff;border-radius:10px;padding:11px 10px;font-size:16px;font-weight:800;outline:0}
.spell-form button{flex:1;border:0;border-radius:10px;background:linear-gradient(135deg,#faacd0,#b9aaff);color:#19143d;font-weight:900;font-size:14px}
.hint-btn{margin:13px auto 0;background:transparent;border:0;color:#bfabd9;font-size:10px;text-decoration:underline}
.hint-text{min-height:19px;color:#ffe8b3;font-size:12px;margin-top:5px;font-weight:800}
.feedback{position:absolute;z-index:4;bottom:8%;left:4%;width:92%;background:linear-gradient(145deg,#172e50f7,#131b3bf7);border:1px solid #5c8ead;border-radius:16px;padding:17px 15px;box-shadow:0 16px 37px #000b;animation:feedbackin .23s ease-out}
@keyframes feedbackin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.feedback-tone{font-size:11px;letter-spacing:.07em;font-weight:900;color:#7ff3ca}
.feedback-tone.retry{color:#ffd08f}
.feedback-answer{margin-top:6px;font-size:24px;font-weight:900;color:#fff;overflow-wrap:anywhere}
.feedback-answer span{font-size:14px;color:#9fd7f3;font-weight:700;margin-left:9px}
.feedback-example{margin-top:6px;color:#aebed9;font-size:12px;line-height:1.5}
.feedback-actions{display:flex;gap:8px;margin-top:14px}
.feedback-audio{border:1px solid #496e92;background:#1a3a60;color:#ddf3ff;border-radius:10px;padding:10px 15px;font-weight:850;font-size:12px}
.feedback-next{border:0;border-radius:10px;background:linear-gradient(110deg,#73e7ff,#a69aff);color:#10163a;font-size:13px;font-weight:900;padding:11px;flex:1}
.overlay{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;text-align:center;padding:26px;background:linear-gradient(180deg,#071329ed,#0c1430f3);backdrop-filter:blur(8px)}
.overlay-panel{width:100%;max-width:326px}
.overlay-icon{font-size:51px;filter:drop-shadow(0 0 19px #73d8ff6f);line-height:1.5}
.overlay-kicker{color:#72e0fa;font-size:9px;letter-spacing:.18em;font-weight:900;margin:6px 0}
.overlay h2{font-size:clamp(23px,6vw,30px);letter-spacing:-.04em;margin:10px 0}
.overlay p{font-size:13px;color:#acbedb;line-height:1.95;margin:0 auto 20px}
.start-btn{width:100%;border:0;border-radius:12px;background:linear-gradient(115deg,#60e8fc,#ada0ff);color:#10203b;font-size:15px;font-weight:950;padding:15px 18px;box-shadow:0 8px 26px #52b6ef40}
.overlay-detail{margin-top:13px;font-size:11px;color:#8fa2c2;line-height:1.8}
.arena-foot{position:absolute;z-index:2;bottom:13px;left:13px;right:13px;display:flex;align-items:center;justify-content:space-between;color:#93b7e178;font-size:9px;letter-spacing:.13em;font-weight:850;pointer-events:none}
#comboTag{color:#ffdf9d}
.under-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:13px 2px;color:#93a9cb;font-size:11px;line-height:1.5}
.under-actions button{border:1px solid #35496b;background:#182641;color:#d0e1f8;font-size:11px;border-radius:9px;padding:9px 10px;white-space:nowrap}
.progress-panel{border:1px solid #334665;border-radius:17px;background:linear-gradient(135deg,#101b36,#141f3b);margin-top:19px;padding:21px 17px}
.progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.progress-head span{display:block;color:#6ce1fb;font-size:9px;letter-spacing:.12em;font-weight:850}
.progress-head h2{font-size:16px;letter-spacing:-.02em;line-height:1.4;margin:7px 0 14px}
.progress-head .local-tag{font-size:10px;color:#aab9d0;background:#223653;border:1px solid #37516f;border-radius:20px;padding:6px 8px;white-space:nowrap;letter-spacing:0}
.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.progress-stats>div{background:#0b162e;border:1px solid #2e3d5e;border-radius:10px;text-align:center;padding:14px 5px}
.progress-stats strong{display:block;font-size:25px;font-weight:950;color:#e8faff;font-variant-numeric:tabular-nums}
.progress-stats span{display:block;color:#94aaca;margin-top:5px;font-size:10px}
.progress-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 0;font-size:10px;color:#8fa4c4;line-height:1.5}
.progress-foot button{color:#77e5fa;font-size:10px;font-weight:800;border:0;background:transparent;text-align:right;flex-shrink:0;max-width:136px}
.wordbook{margin-top:17px;border-top:1px solid #32445f;padding-top:14px}
.wordbook summary{cursor:pointer;color:#bad1e9;font-size:12px;font-weight:800}
.wordbook summary span{color:#8199c1;font-size:11px;font-weight:500}
.known-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;font-size:11px;color:#9bb0ce}
.known-word{border:1px solid #304766;background:#0b172d;padding:9px;border-radius:9px;display:flex;align-items:center;gap:7px;min-width:0}
.known-word>span:first-child{font-size:22px}
.known-word b{display:block;font-size:12px;color:#f1f8ff;overflow:hidden;text-overflow:ellipsis}
.known-word small{display:block;color:#9db0ce;font-size:10px;margin-top:3px}
.known-word .mastery{color:#8bf7bd;font-size:9px;margin-top:3px}
footer{display:flex;justify-content:space-between;gap:10px;padding:23px 3px 8px;font-size:10px;letter-spacing:.05em;color:#8097b7}
footer a{color:#7ddbf2}
@media(max-width:359px){.app{padding:0 8px 22px}.setup{grid-template-columns:1.3fr 1fr .8fr}.tool-btn{font-size:10px}.metric{padding:8px 5px}.metric>strong{font-size:15px}.metric .energy{font-size:10px}.monster{min-height:128px}.targets{gap:5px}.monster-word{font-size:11px}.feedback{padding:12px}.progress-panel{padding:15px 11px}}
@media(min-width:640px){.hero{padding-top:24px}.app{padding-bottom:36px}}
@media(prefers-reduced-motion:reduce){.monster-art{animation:none}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
