:root{--ink:#231841;--muted:#7b7193;--line:#e8e1f4;--purple:#6f39df;--purple-dark:#5123bd;--lavender:#f3efff;--white:#fff;--green:#13a875;--red:#e45c75;--orange:#f79a3f;--shadow:0 24px 70px rgba(48,25,104,.18);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:#d7c9ff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#5422bc 0%,#7d48e7 43%,#cbb7ff 100%);overflow-x:hidden}button,select,input{font:inherit}.ambient{position:fixed;border-radius:50%;filter:blur(4px);pointer-events:none}.ambient-one{width:42vw;height:42vw;right:-12vw;top:-18vw;background:rgba(255,255,255,.19)}.ambient-two{width:30vw;height:30vw;left:-12vw;bottom:-13vw;background:rgba(255,190,244,.14)}.app-shell{position:relative;display:grid;grid-template-columns:245px 1fr;max-width:1440px;min-height:calc(100vh - 48px);margin:24px auto;background:#fbfaff;border:1px solid rgba(255,255,255,.45);border-radius:30px;box-shadow:0 30px 100px rgba(35,16,80,.32);overflow:hidden}.sidebar{display:flex;flex-direction:column;padding:30px 20px 24px;background:linear-gradient(180deg,#f4f0ff 0%,#faf8ff 70%,#f0e9ff 100%);border-right:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);padding:0 10px 30px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:linear-gradient(145deg,#8d5bed,#5c27c7);color:white;font:bold 23px Georgia,serif;box-shadow:0 9px 20px rgba(100,48,210,.3)}.brand strong{display:block;font-size:1.25rem;letter-spacing:.08em}.brand small{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}.side-nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;text-align:left;padding:13px 15px;border-radius:14px;color:#655b7b;cursor:pointer;font-weight:700;transition:.2s}.nav-item span{display:inline-block;width:28px;font-size:1.1rem}.nav-item b{float:right;min-width:22px;padding:2px 6px;border-radius:10px;background:#ebe4f9;color:#6548a8;text-align:center;font-size:.75rem}.nav-item:hover{background:#ebe4fb;color:var(--purple)}.nav-item.active{background:linear-gradient(135deg,#7d47e4,#6431cf);color:#fff;box-shadow:0 10px 24px rgba(103,49,209,.25)}.nav-item.active b{background:rgba(255,255,255,.2);color:#fff}.side-progress{margin-top:auto;padding:18px;border:1px solid #e2daf2;border-radius:18px;background:rgba(255,255,255,.7)}.progress-label{display:flex;justify-content:space-between;font-size:.78rem}.progress-label strong{color:var(--purple)}.progress-track,.mini-progress,.mastery-track{height:7px;border-radius:99px;background:#eae4f3;overflow:hidden}.progress-track{margin:12px 0 10px}.progress-track i,.mini-progress i,.mastery-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#8a55e9,#5b2bc7);transition:width .35s}.side-progress p,.source-note{margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}.source-note{margin:16px 8px 0;opacity:.8}.main{min-width:0;padding:34px 46px 48px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{margin:0 0 5px;color:#9373ce;font-size:.68rem;font-weight:900;letter-spacing:.2em}.topbar h1,.section-heading h2{margin:0;font-size:1.8rem;letter-spacing:-.04em}.streak-pill{display:flex;align-items:center;gap:9px;padding:9px 14px 9px 10px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(47,28,91,.08)}.streak-pill>span{font-size:1.4rem}.streak-pill small,.streak-pill strong{display:block}.streak-pill small{font-size:.65rem;color:var(--muted)}.streak-pill strong{font-size:.86rem}.streak-pill i{font-style:normal;color:var(--purple)}.view{display:none}.view.active{display:block;animation:fadeUp .28s ease}@keyframes fadeUp{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.selector-row{display:flex;align-items:end;gap:12px;margin-bottom:18px}.select-wrap{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:800}.select-wrap.grow{flex:1}.select-wrap select{min-width:170px;padding:11px 38px 11px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-weight:700;outline:none}.select-wrap select:focus{border-color:#9d77ec;box-shadow:0 0 0 3px #efe7ff}.soft-button{height:43px;border:1px solid #ddd2ef;border-radius:13px;background:#f6f2ff;color:#6440b2;font-weight:800;cursor:pointer;padding:0 15px;transition:.2s}.soft-button:hover{transform:translateY(-2px);background:#ece4ff}.study-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px}.word-stage{border-radius:24px;background:#f2edfb;padding:22px}.stage-meta{display:flex;justify-content:space-between;margin-bottom:10px;color:#82749e;font-size:.75rem;font-weight:700}.mini-progress{height:5px;margin-bottom:18px;background:#ddd4ed}.word-card{position:relative;display:flex;min-height:370px;flex-direction:column;align-items:center;justify-content:center;padding:35px 26px;border:1px solid rgba(110,61,206,.08);border-radius:24px;background:radial-gradient(circle at 75% 15%,#f1eaff 0,transparent 34%),linear-gradient(145deg,#fff,#fdfbff);box-shadow:var(--shadow);text-align:center;overflow:hidden}.word-card:before{content:"";position:absolute;width:140px;height:140px;left:-70px;bottom:-70px;border:32px solid #f3edff;border-radius:50%}.card-kicker{color:#a28abf;font-size:.63rem;font-weight:900;letter-spacing:.22em}.word-line{display:flex;align-items:center;gap:14px;margin-top:17px}.word-line h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,5.5vw,4.9rem);line-height:1;color:#2a1d44;letter-spacing:-.04em}.speak-button{display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;background:#efe8ff;color:var(--purple);cursor:pointer;transition:.2s}.speak-button:hover{transform:scale(1.08);background:#e2d5ff}.speak-button svg{width:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.phonetic{margin:12px 0 24px;color:#8a7aa4;font-size:1rem}.reveal-button{position:relative;z-index:1;border:0;background:transparent;color:#7349c2;font-weight:800;cursor:pointer}.reveal-button span{display:inline-block;margin-left:5px;transition:.2s}.reveal-button.open span{transform:rotate(180deg)}.meaning{position:relative;z-index:1;max-height:0;opacity:0;transform:translateY(8px);overflow:hidden;transition:.28s}.meaning.show{max-height:130px;margin-top:22px;opacity:1;transform:none}.meaning small{color:#a191b6}.meaning p{margin:6px 0 0;font-size:1.18rem;font-weight:800}.judgement-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.judge-button{display:flex;align-items:center;justify-content:center;gap:13px;min-height:64px;border-radius:17px;cursor:pointer;transition:.2s}.judge-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(50,24,100,.1)}.judge-button span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;font-size:1.25rem}.judge-button strong,.judge-button small{display:block}.judge-button small{margin-top:2px;font-size:.68rem;font-weight:600;opacity:.7}.judge-button.unknown{border:1px solid #e7dff0;background:#fff;color:#735e88}.judge-button.unknown span{background:#fff0f2;color:var(--red)}.judge-button.known{border:1px solid #7a45de;background:linear-gradient(135deg,#7d49df,#6030c7);color:#fff}.judge-button.known span{background:rgba(255,255,255,.17)}.key-hint{text-align:center;margin:14px 0 0;color:#a096b2;font-size:.67rem}.key-hint kbd{padding:2px 6px;border:1px solid #dcd3e8;border-radius:5px;background:white;box-shadow:0 1px 0 #cec3dc}.today-panel{padding:24px 20px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 15px 40px rgba(52,31,96,.08)}.today-head{display:flex;justify-content:space-between;align-items:start}.today-head h3{margin:0;font-size:1.05rem}.today-head>span{font-size:.72rem;color:var(--muted)}.ring-wrap{display:grid;place-items:center;margin:26px 0 20px}.progress-ring{display:grid;place-items:center;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--purple) 0deg,#ede7f5 0deg);transition:.4s}.progress-ring:after{content:"";grid-area:1/1;width:118px;height:118px;border-radius:50%;background:#fff}.progress-ring>div{z-index:1;grid-area:1/1;text-align:center}.progress-ring strong,.progress-ring small{display:block}.progress-ring strong{font-size:2.25rem}.progress-ring small{color:var(--muted);font-size:.7rem}.today-metrics{display:grid;grid-template-columns:1fr 1fr;margin:0 0 20px}.today-metrics div{text-align:center}.today-metrics div+div{border-left:1px solid var(--line)}.today-metrics strong,.today-metrics span{display:block}.today-metrics strong{font-size:1.2rem}.today-metrics span{color:var(--muted);font-size:.68rem}.checkin-button,.primary-button{width:100%;border:0;border-radius:13px;background:linear-gradient(135deg,#7d49df,#6030c7);color:#fff;font-weight:800;padding:13px 16px;cursor:pointer;transition:.2s;box-shadow:0 10px 20px rgba(102,49,207,.2)}.checkin-button:hover,.primary-button:hover{transform:translateY(-2px);filter:brightness(1.05)}.checkin-button:disabled{background:#d8cfe7;box-shadow:none;cursor:not-allowed;transform:none}.checkin-tip{text-align:center;margin:10px 0 0;color:var(--muted);font-size:.66rem;line-height:1.45}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.search-box{display:flex;gap:8px;align-items:center;padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--muted)}.search-box input{border:0;outline:0;background:transparent;width:200px;color:var(--ink)}.wrong-list{display:grid;gap:10px}.wrong-item{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:17px 20px;border:1px solid var(--line);border-radius:17px;background:#fff;transition:.2s}.wrong-item:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(46,23,90,.08)}.wrong-word strong{display:block;font-family:Georgia,serif;font-size:1.2rem}.wrong-word span{color:var(--muted);font-size:.76rem}.wrong-meaning{color:#5e5372;font-size:.85rem}.wrong-count{padding:6px 10px;border-radius:99px;background:#fff0f2;color:#c74861;font-size:.72rem;font-weight:800}.icon-button{border:0;background:#f1ebfb;color:var(--purple);width:36px;height:36px;border-radius:50%;cursor:pointer}.empty-state{padding:60px 20px;text-align:center;border:1px dashed #d8cdeb;border-radius:22px;background:rgba(255,255,255,.55)}.empty-state span{font-size:2rem}.empty-state h3{margin:10px 0 5px}.empty-state p{margin:0;color:var(--muted)}.month-nav{display:flex;align-items:center;gap:12px}.month-nav button{border:1px solid var(--line);background:#fff;width:35px;height:35px;border-radius:10px;cursor:pointer}.calendar-card{padding:24px;border:1px solid var(--line);border-radius:22px;background:#fff}.week-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-row{margin-bottom:12px;color:#968aa9;text-align:center;font-size:.72rem;font-weight:800}.day{position:relative;display:grid;place-items:center;aspect-ratio:1;max-height:75px;border-radius:15px;color:#5d526f;font-weight:700}.day.muted{opacity:.3}.day.today{border:2px solid #a077e9}.day.checked{background:linear-gradient(145deg,#8652e5,#6633cb);color:#fff;box-shadow:0 8px 20px rgba(101,50,204,.22)}.day.checked:after{content:"✓";position:absolute;right:7px;top:5px;font-size:.62rem}.calendar-legend{display:flex;gap:18px;margin-top:14px;color:var(--muted);font-size:.72rem}.dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%}.dot.checked{background:var(--purple)}.dot.today{border:2px solid #a077e9}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-cards article,.settings-grid article,.mastery-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff}.stat-icon,.setting-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:20px;border-radius:13px;font-weight:900}.stat-icon.purple,.setting-icon{background:#eee6ff;color:var(--purple)}.stat-icon.green{background:#e4f8f1;color:var(--green)}.stat-icon.orange{background:#fff0df;color:#d47720}.stat-cards small,.stat-cards strong,.stat-cards p{display:block}.stat-cards small{color:var(--muted);font-weight:800}.stat-cards strong{margin:7px 0;font-size:2.3rem}.stat-cards p{margin:0;color:#9990a7;font-size:.72rem}.mastery-card{display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:16px}.mastery-card h3{margin:0}.mastery-card p{margin:4px 0;color:var(--muted);font-size:.78rem}.mastery-number{text-align:right}.mastery-number strong,.mastery-number span{display:block}.mastery-number strong{font-size:2rem;color:var(--purple)}.mastery-number span{font-size:.68rem;color:var(--muted)}.mastery-track{grid-column:1/-1;margin-top:20px;height:9px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-grid h3{margin:0 0 8px}.settings-grid p{min-height:48px;margin:0 0 22px;color:var(--muted);font-size:.82rem;line-height:1.7}.file-button{display:block;text-align:center}.file-button input{display:none}.data-note{margin-top:16px;padding:20px 24px;border:1px solid #ded4f0;border-radius:18px;background:#f4f0fc}.data-note p{margin:5px 0 0;color:var(--muted);font-size:.8rem;line-height:1.65}.mobile-nav{display:none}.toast{position:fixed;left:50%;bottom:35px;z-index:20;padding:11px 18px;border-radius:99px;background:#281d3d;color:#fff;box-shadow:0 12px 35px rgba(0,0,0,.25);font-size:.82rem;opacity:0;pointer-events:none;transform:translate(-50%,15px);transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:980px){.app-shell{margin:0;min-height:100vh;border-radius:0;grid-template-columns:1fr}.sidebar{display:none}.main{padding:25px 24px 100px}.study-grid{grid-template-columns:minmax(0,1fr) 230px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:14px;right:14px;bottom:12px;z-index:10;padding:7px;border:1px solid rgba(255,255,255,.6);border-radius:19px;background:rgba(255,255,255,.92);box-shadow:0 12px 40px rgba(44,21,88,.24);backdrop-filter:blur(15px)}.mobile-nav button{display:grid;gap:2px;place-items:center;border:0;border-radius:13px;background:transparent;color:#857994;font-size:.65rem;padding:7px 2px}.mobile-nav button span{font-size:1rem}.mobile-nav button.active{background:#ede5ff;color:var(--purple);font-weight:800}}
@media(max-width:720px){.main{padding:21px 16px 96px}.topbar{margin-bottom:20px}.topbar h1{font-size:1.45rem}.streak-pill{padding:7px 10px}.streak-pill>span{font-size:1.15rem}.selector-row{display:grid;grid-template-columns:1fr 1fr;align-items:end}.select-wrap select{min-width:0;width:100%}.soft-button{grid-column:1/-1}.study-grid{display:block}.word-stage{padding:15px;border-radius:20px}.word-card{min-height:330px;padding:28px 17px}.word-line h2{font-size:clamp(2.35rem,14vw,4rem);overflow-wrap:anywhere}.today-panel{margin-top:15px}.ring-wrap{margin:15px 0}.progress-ring{width:130px;height:130px}.progress-ring:after{width:102px;height:102px}.section-heading{display:block}.search-box{margin-top:14px}.search-box input{width:100%}.wrong-item{grid-template-columns:1fr auto;gap:8px 12px}.wrong-meaning{grid-column:1/2}.stat-cards,.settings-grid{grid-template-columns:1fr}.mastery-card{grid-template-columns:1fr auto}.calendar-card{padding:12px}.calendar-grid,.week-row{gap:3px}.day{border-radius:10px;font-size:.8rem}.key-hint{display:none}.today-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px}.today-head{grid-column:1/-1}.ring-wrap{grid-row:2/4;margin:0}.today-metrics{margin:0}.checkin-button{align-self:start}.checkin-tip{grid-column:1/-1}.judgement-row{gap:8px}.judge-button{gap:7px}.judge-button small{display:none}}
@media(max-width:420px){.judgement-row{grid-template-columns:1fr 1.15fr}.word-card{min-height:300px}.today-panel{display:block}.ring-wrap{margin:18px 0}.today-metrics{margin-bottom:18px}.streak-pill small{display:none}}
body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.word-card,.today-panel,.calendar-card,.stat-cards article,.settings-grid article,.mastery-card{border-radius:16px}.wrong-item{grid-template-columns:minmax(150px,.8fr) minmax(180px,1fr) auto auto;border-radius:16px;box-shadow:0 8px 24px rgba(48,25,104,.08)}.wrong-actions{display:flex;gap:7px}.delete-button{background:#fff0f2;color:#c74861}
@media(max-width:480px){body{display:flex;justify-content:center}.app-shell{width:100%;max-width:480px;margin:0 auto}.main{text-align:center}.selector-row,.wrong-item,.settings-grid article,.stat-cards article{text-align:left}.wrong-item{grid-template-columns:1fr auto}.wrong-meaning{grid-column:1/-1}.wrong-count{justify-self:start}.wrong-actions{justify-self:end}.section-heading h2{font-size:1.45rem}}
@media(hover:hover){button:not(:disabled):hover,.file-button:hover{transform:scale(1.03)}}
.mode-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:0 0 16px}.mode-tab{position:relative;display:grid;place-items:center;gap:3px;min-width:0;padding:10px 5px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#766b8a;cursor:pointer;transition:.22s}.mode-tab b{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#f0eaff;color:var(--purple);font-size:.9rem}.mode-tab span{font-size:.66rem;font-weight:800;white-space:nowrap}.mode-tab i{position:absolute;right:5px;top:5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ec5b79;color:#fff;font:700 .62rem/17px sans-serif}.mode-tab.active{border-color:#7542db;background:linear-gradient(145deg,#7d4be0,#6432c9);color:#fff;box-shadow:0 9px 22px rgba(101,49,201,.23)}.mode-tab.active b{background:rgba(255,255,255,.18);color:#fff}.mode-stage{min-height:620px}.learning-card,.picture-question{display:grid;grid-template-columns:minmax(210px,.8fr) 1.2fr;gap:25px;align-items:center;padding:22px;border-radius:16px;background:#fff;box-shadow:var(--shadow)}.visual-pane{min-height:245px;display:grid;place-items:center;overflow:hidden;border-radius:16px;background:linear-gradient(145deg,#eee7ff,#faf8ff)}.word-photo{width:100%;height:260px;object-fit:cover;border-radius:16px}.memory-visual{position:relative;display:grid;place-items:center;width:100%;min-height:245px;overflow:hidden}.memory-visual span{font-size:5.2rem;filter:drop-shadow(0 10px 16px rgba(75,42,134,.18))}.memory-visual b{position:absolute;right:15px;bottom:-22px;color:rgba(105,57,204,.09);font:900 8rem/1 Georgia,serif}.memory-visual small{margin-top:10px;color:#8f7eaa;font-weight:800;letter-spacing:.12em}.memory-visual.small{min-height:120px}.memory-visual.small span{font-size:4rem}.prompt-pane h2,.picture-question h2,.solo-card h2{margin:8px 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.5rem);overflow-wrap:anywhere}.prompt-title{display:flex;align-items:center;gap:12px}.prompt-title h2{margin:0}.round-action{display:grid;place-items:center;flex:0 0 auto;width:43px;height:43px;border:0;border-radius:50%;background:#eee7ff;cursor:pointer}.example{padding:13px 15px;border-left:3px solid #8553e3;background:#f7f4fc;color:#5f5374;font:italic .88rem/1.6 Georgia,serif}.task-line{margin:22px 0 10px;text-align:center;color:#756889;font-size:.78rem;font-weight:800}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer-option{min-height:54px;padding:11px 14px;border:1px solid #ded5ed;border-radius:13px;background:#fff;color:#433555;font-weight:700;cursor:pointer;transition:.2s}.answer-option:hover{border-color:#906be1;background:#f7f3ff}.answer-option.correct,.falling-choice.correct{border-color:#20ad7c!important;background:#e5f8f1!important;color:#087550}.answer-option.incorrect,.falling-choice.incorrect{border-color:#e45c75!important;background:#fff0f2!important;color:#bd3854}.answer-option:disabled{cursor:default}.feedback{min-height:23px;margin:13px 0 0;text-align:center;font-weight:800}.feedback.success{color:#0b9768}.feedback.error{color:#cc4661}.picture-question{margin-bottom:16px}.picture-question p{color:var(--muted);line-height:1.6}.english-options .answer-option{font-family:Georgia,serif;font-size:1.05rem}.solo-card{display:grid;place-items:center;min-height:410px;padding:32px;border-radius:16px;background:#fff;box-shadow:var(--shadow);text-align:center}.mic-button{display:flex;align-items:center;gap:9px;margin:18px 0 12px;padding:14px 22px;border:0;border-radius:99px;background:linear-gradient(135deg,#7c49df,#6030c6);color:#fff;font-weight:900;cursor:pointer}.mic-button span{font-size:1.4rem}.mic-button.listening{animation:micPulse 1s infinite}@keyframes micPulse{50%{box-shadow:0 0 0 14px rgba(111,57,223,.12);transform:scale(1.04)}}.recognition-text{color:var(--muted);font-size:.82rem}.text-button{border:0;background:transparent;color:#7043c3;font-weight:800;cursor:pointer}.spell-card{min-height:520px}.spell-tools{display:flex;gap:16px}.hidden{display:none!important}.spell-input{width:min(440px,100%);margin:15px 0 12px;padding:14px 18px;border:2px solid #ded4ee;border-radius:13px;outline:0;text-align:center;font:700 1.2rem Georgia,serif;letter-spacing:.04em}.spell-input:focus{border-color:#8254dc;box-shadow:0 0 0 4px #eee7ff}.primary-button.compact{width:auto;padding:11px 22px}.keyboard{display:grid;gap:6px;width:min(560px,100%);margin-top:22px}.keyboard>div{display:flex;justify-content:center;gap:5px}.keyboard button{min-width:36px;height:39px;padding:0 7px;border:1px solid #d9d0e7;border-radius:8px;background:#f7f4fb;color:#4b3d60;font-weight:800;cursor:pointer;box-shadow:0 2px 0 #cfc4df}.keyboard button:active{transform:translateY(2px);box-shadow:none}.keyboard .wide{min-width:100px}.game-board{overflow:hidden;border-radius:16px;background:linear-gradient(180deg,#301d63,#7550c3);box-shadow:var(--shadow);color:#fff}.game-title{display:flex;align-items:center;justify-content:center;gap:14px;padding:18px}.game-title span{font-size:.72rem;opacity:.75}.game-title strong{font:700 1.8rem Georgia,serif}.fall-zone{position:relative;height:470px;overflow:hidden;background:radial-gradient(circle at 50% 120%,rgba(255,255,255,.2),transparent 45%)}.falling-choice{position:absolute;top:-100px;width:22%;min-height:62px;padding:8px;border:2px solid rgba(255,255,255,.4);border-radius:13px;background:rgba(255,255,255,.94);color:#392a55;font-size:.72rem;font-weight:800;cursor:pointer;animation:fall 6.6s linear var(--delay) forwards}.falling-choice.lane-0{left:2%}.falling-choice.lane-1{left:27%}.falling-choice.lane-2{left:52%}.falling-choice.lane-3{left:77%}@keyframes fall{to{top:390px}}.monster{position:absolute;left:30%;bottom:4px;display:grid;width:20%;place-items:center;transition:left .25s}.monster.lane-0{left:3%}.monster.lane-1{left:28%}.monster.lane-2{left:53%}.monster.lane-3{left:78%}.monster span{font-size:3.2rem}.monster small{font-size:.58rem;white-space:nowrap}.review-streak{display:flex;gap:8px;margin:16px}.review-streak i{width:34px;height:8px;border-radius:9px;background:#e5ddec}.review-streak i.done{background:linear-gradient(90deg,#25bd85,#58d9a9)}.mode-empty .compact{margin-top:18px}.wrong-meaning small{display:block;margin-top:4px;color:#9a8daa;font-size:.66rem}
@media(max-width:980px){.mode-tabs{display:flex;overflow-x:auto;padding-bottom:4px}.mode-tab{min-width:86px}.mode-stage{min-height:560px}}
@media(max-width:720px){.learning-card,.picture-question{grid-template-columns:1fr;padding:14px}.visual-pane,.memory-visual{min-height:180px}.memory-visual span{font-size:4rem}.word-photo{height:200px}.option-grid{grid-template-columns:1fr}.solo-card{min-height:390px;padding:22px 14px}.spell-card{min-height:510px}.keyboard button{min-width:28px;height:36px;padding:0 4px;font-size:.72rem}.fall-zone{height:420px}.falling-choice{font-size:.64rem;min-height:56px}.mode-stage{min-height:520px}}
@media(max-width:480px){.mode-tabs{margin-left:-4px;margin-right:-4px}.mode-tab{min-width:78px}.mode-tab span{font-size:.6rem}.learning-card,.picture-question,.solo-card{text-align:center}.prompt-title{justify-content:center}.example{text-align:left}.falling-choice{width:23%;padding:5px}.falling-choice.lane-0{left:1%}.falling-choice.lane-1{left:26%}.falling-choice.lane-2{left:51%}.falling-choice.lane-3{left:76%}}
.goal-select select{min-width:92px}.mode-tab b{width:auto;min-width:29px;padding:0 7px}
@media(max-width:720px){.goal-select{grid-column:1/2}.selector-row .soft-button{grid-column:2/3}}
.selector-row{flex-wrap:wrap}.select-wrap.grow{min-width:250px}.settings-grid{grid-template-columns:repeat(3,1fr)}.remote-visual{background:#eee8ff}.remote-visual .word-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}.image-placeholder{display:grid;place-items:center;width:100%;min-height:245px;padding:18px}.image-placeholder span{font-size:4.8rem}.image-placeholder small{max-width:85%;color:#83739c;font-size:.72rem;font-weight:800;text-align:center}.image-tools{position:absolute;right:9px;bottom:9px;z-index:2;display:flex;gap:6px}.image-tools button,.image-tools a{padding:5px 8px;border:0;border-radius:9px;background:rgba(33,21,58,.76);color:#fff;font-size:.63rem;font-weight:800;text-decoration:none;cursor:pointer;backdrop-filter:blur(6px)}.image-tools button:disabled{opacity:.65}.compact-visual{width:min(220px,100%);margin:14px auto}.compact-visual .memory-visual,.compact-visual .image-placeholder{min-height:145px}.compact-visual .word-photo{height:145px}.compact-visual.tiny{width:170px;margin:10px auto}.compact-visual.tiny .memory-visual,.compact-visual.tiny .image-placeholder{min-height:105px}.compact-visual.tiny .word-photo{height:105px}.compact-visual.tiny .image-placeholder span{font-size:2.4rem}.compact-visual.tiny .image-tools{right:5px;bottom:5px}.compact-visual.tiny .image-tools a{display:none}.compact-visual.tiny .image-tools button{padding:4px 6px}.print-sheet{display:none}
@media(max-width:980px) and (min-width:721px){.selector-row .print-button{margin-left:auto}}
@media(max-width:720px){.selector-row .print-button{grid-column:1/-1}.compact-visual{width:min(260px,100%)}.settings-grid{grid-template-columns:1fr}}
@media print{@page{size:A4;margin:10mm}html,body{background:#fff!important}.printing>.app-shell,.printing>.ambient,.printing>.mobile-nav,.printing>.toast{display:none!important}.printing .print-sheet{display:block!important;color:#24183e;font-family:"PingFang SC","Microsoft YaHei",sans-serif}.print-sheet header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7mm;padding-bottom:4mm;border-bottom:2px solid #7440d7}.print-sheet header strong{font-size:18pt}.print-sheet header p{margin:2mm 0 0;color:#655879;font-size:9pt}.print-sheet header span{padding:2mm 4mm;border-radius:99px;background:#eee7ff;color:#6632ca;font-weight:800}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:5mm}.print-card{display:grid;grid-template-columns:42mm 1fr;gap:4mm;align-items:center;min-height:42mm;padding:4mm;border:1px solid #dcd3ec;border-radius:4mm;background:#fff;break-inside:avoid;page-break-inside:avoid}.print-card img,.print-image-fallback{width:42mm;height:34mm;border-radius:3mm;object-fit:cover;background:#f1ecff}.print-image-fallback{display:grid;place-items:center;font-size:26pt}.print-card strong,.print-card small,.print-card p{display:block}.print-card strong{font:700 18pt Georgia,serif}.print-card small{margin-top:1mm;color:#7b6d92;font-size:9pt}.print-card p{margin:3mm 0 0;font-size:11pt;font-weight:700;line-height:1.4}.print-sheet footer{margin-top:6mm;color:#7b708c;font-size:8pt;text-align:center}}
.example{display:grid;gap:10px}.example span{display:block}.example-audio{justify-self:start;padding:7px 11px;border:1px solid #d8cbef;border-radius:10px;background:#fff;color:#6841b6;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:.72rem;font-style:normal;font-weight:800;cursor:pointer;transition:.2s}.example-audio:hover{background:#ece4ff;transform:scale(1.03)}
@media(max-width:720px){.example-audio{justify-self:center}}
.local-visual{position:relative;background:#f3efff}.local-visual .word-photo{width:100%;height:100%;object-fit:cover}.local-image-label{position:absolute;right:9px;bottom:9px;padding:5px 8px;border-radius:9px;background:rgba(33,21,58,.76);color:#fff!important;font-size:.63rem!important;letter-spacing:0!important;backdrop-filter:blur(6px)}.setting-actions{display:grid;gap:9px}.primary-button.secondary{border:1px solid #d8cbef;background:#f5f1ff;color:#6540b2;box-shadow:none}.print-card em{display:block;margin-top:2mm;color:#887b99;font-size:8pt;font-style:normal}.word-button{white-space:nowrap}
.mic-button{min-width:190px;justify-content:center}.mic-button b{font:inherit}.mic-button.listening{background:linear-gradient(135deg,#ee5f78,#c73e60)}
@media(max-width:720px){.selector-row .print-button{grid-column:1/2}.selector-row .word-button{grid-column:2/3}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.account-chip small.access-warning{color:#c24660;font-weight:800}.account-chip small.access-trial{color:#a3680c;font-weight:800}
.auth-gate{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(135deg,#5422bc,#7d48e7);color:#fff}.auth-gate p{max-width:420px;margin:0 20px;text-align:center;line-height:1.6}.auth-spinner{width:34px;height:34px;border:4px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:authSpin .8s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.top-actions{display:flex;align-items:center;gap:10px}.account-chip{display:flex;align-items:center;gap:9px;padding:7px 8px 7px 9px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(47,28,91,.08)}.account-avatar{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#eee6ff;color:var(--purple);font-size:.7rem;font-weight:900}.account-chip small,.account-chip strong{display:block}.account-chip small{font-size:.6rem;color:var(--muted)}.account-chip strong{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.account-chip button{border:0;border-radius:9px;background:#f3effa;color:#7356a9;padding:6px 9px;font-size:.68rem;font-weight:800;cursor:pointer;transition:.2s}.account-chip button:hover{background:#e8defb;transform:translateY(-1px)}
@media(max-width:720px){.topbar{align-items:flex-start}.top-actions{align-items:flex-end;flex-direction:column}.account-chip small,.account-avatar{display:none}.account-chip{padding:5px 6px 5px 9px}.account-chip strong{max-width:100px;font-size:.7rem}}
