@charset "UTF-8";
:root{--ink:#294c42;--muted:#6c7d70;--green:#46765c;--deep:#315e47;--line:#e5e8dc;--bg:#faf9f3;--paper:#fffef9;--orange:#a35330;--blue:#3e6d86;--purple:#78608e;--round:24px;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation;color:inherit}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a96f2e;outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}svg{flex-shrink:0}button svg{pointer-events:none}button>span{pointer-events:none}.skip{position:fixed;top:-100px;left:10px;z-index:200;background:white;padding:20px}.skip:focus{top:5px}.loading{display:grid;place-items:center;min-height:80vh;font-size:24px}.shell{max-width:1600px;margin:auto;display:grid;grid-template-columns:214px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;border-right:1px solid var(--line);padding:37px 23px 25px;background:#f3f4e9;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;margin-bottom:43px;padding-left:3px}.brand img{width:44px;height:44px;border-radius:14px}.brand strong{font-size:20px;letter-spacing:.6px}.brand small{display:block;font-size:10px;letter-spacing:3.1px;color:#798566;margin-top:5px}.nav{display:grid;gap:9px}.nav a{display:flex;align-items:center;gap:13px;min-height:52px;border-radius:14px;padding:0 14px;font-size:16px;color:#6b7c6b;font-weight:600}.nav a.active{background:#e0e8cf;color:var(--deep)}.nav a:hover{background:#e8ecdc}.nav .count{margin-left:auto;border-radius:20px;background:#f3dfc6;color:#935635;font-size:12px;padding:3px 7px}.sidebar-bottom{margin-top:auto}.side-art{padding:20px 10px 15px;text-align:center}.side-art>span{font-size:37px}.side-art p{font-size:13px;line-height:1.9;color:#788069;margin-top:8px}.parent-link{display:flex;justify-content:center;align-items:center;gap:9px;padding:16px 4px;font-size:13px;color:#737c69;border-top:1px solid #e1e5d6}.version{text-align:center;color:#8a917b;font-size:10px;margin-top:14px;letter-spacing:1px}.content{min-width:0;padding:34px 48px 28px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:49px;margin-bottom:25px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:1.8px;color:#7f8975;text-transform:uppercase}.greeting{font-size:20px;font-weight:650;margin-top:5px}.top-actions{display:flex;gap:10px;align-items:center}.music-pill{display:flex;align-items:center;gap:8px;background:#fffdf7;border:1px solid var(--line);padding:9px 12px;border-radius:100px;font-size:12px;min-height:42px}.music-pill i{width:6px;height:6px;border-radius:50%;background:#9ba980}.music-pill.playing i{background:#699263;box-shadow:0 0 0 3px #e9efdf}.circle-button{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--paper);border:1px solid var(--line)}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;font-size:21px;background:#f1dfbe;border:3px solid #fff9eb}.hero{position:relative;overflow:hidden;min-height:310px;border-radius:28px;background:#e8efdc;display:flex;align-items:center}.hero-copy{position:relative;z-index:2;padding:33px 32px;width:55%}.hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#577557;letter-spacing:1px;margin-bottom:17px}.hero h1{font-size:34px;line-height:1.5;letter-spacing:1px;font-weight:700}.hero p{font-size:14px;line-height:1.9;margin:12px 0 21px;color:#61765b}.hero-image{position:absolute;right:-30px;bottom:0;width:62%;height:100%;object-fit:cover;object-position:right bottom;pointer-events:none}.primary{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:52px;border-radius:15px;background:var(--deep);color:#fffdf0;padding:12px 24px;font-weight:600;font-size:17px;box-shadow:0 4px 0 #204b3730}.primary:hover{background:#244e39}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;padding:10px 21px;border-radius:14px;background:#ecf0e3;font-size:15px;font-weight:600;border:1px solid #dce4ce}.ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:10px 12px;background:transparent;font-size:14px;color:#64765f}.section-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:29px 0 16px}.section-line h2{font-size:20px;letter-spacing:.5px}.section-line p,.section-line a{font-size:12px;color:#7b8672}.subjects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.subject{position:relative;overflow:hidden;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:22px 22px 18px;transition:transform .18s,box-shadow .18s;display:block}.subject:hover{transform:translateY(-3px);box-shadow:0 8px 20px #314b3a08}.subject .subject-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.subject-number{font-family:Georgia,serif;font-size:12px;letter-spacing:2px;color:#9b9d8b}.subject-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#f7e5d6;color:var(--orange);font-size:18px}.subject.blue .subject-icon{background:#e6eef1;color:var(--blue)}.subject.purple .subject-icon{background:#eee9f2;color:var(--purple)}.subject h3{font-size:20px;margin-bottom:8px}.subject p{font-size:12px;color:#7c8575;line-height:1.5}.subject-letters{font-family:"Kaiti SC",KaiTi,"STKaiti",serif;font-size:36px;letter-spacing:11px;margin:20px 0 19px;color:#af744c;white-space:nowrap}.subject.blue .subject-letters{color:#5d8798}.subject.purple .subject-letters{color:#89709d}.subject-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7b8373;border-top:1px solid #eeeee5;padding-top:13px}.subject-arrow{width:27px;height:27px;border-radius:50%;background:#f1f2e9;display:grid;place-items:center}.bottom-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:17px;margin-top:23px}.small-panel{background:#f1f2e7;border-radius:20px;padding:19px 22px;display:flex;gap:17px;align-items:center;min-height:110px}.small-panel.beige{background:#f5eddd}.small-panel h3{font-size:15px;margin-bottom:7px}.small-panel p{font-size:12px;color:#77816c;line-height:1.7}.ring{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#6f8e5f var(--progress),#e0e5d5 0);position:relative;flex-shrink:0}.ring:before{content:"";position:absolute;inset:5px;background:#f1f2e7;border-radius:50%}.ring span{z-index:1;font-size:17px;font-weight:650}.small-panel .push{margin-left:auto}.footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:25px;font-size:10px;color:#8c937e;line-height:1.6}.offline{display:inline-flex;align-items:center;gap:5px}.dot{width:5px;height:5px;border-radius:50%;background:#8fa575}.page-title{font-size:31px;line-height:1.5}.page-desc{color:var(--muted);font-size:15px;line-height:1.9;margin:8px 0 24px}.back{display:inline-flex;align-items:center;gap:8px;color:#72816b;background:transparent;font-size:14px;padding:9px 0;margin-bottom:16px;min-height:43px}.tabs{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}.tab{background:#eeefe5;border-radius:100px;padding:12px 19px;font-size:14px;min-height:45px}.tab.active{background:var(--deep);color:white}.concept-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.concept-card{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:23px 20px;min-height:190px;display:flex;flex-direction:column;align-items:flex-start}.tag{font-size:11px;background:#f0f1e8;padding:5px 9px;border-radius:7px;display:inline-block;color:#74816a}.tag.orange{background:#f6e8db;color:#915332}.tag.blue{background:#e7eef1;color:#3c677c}.tag.purple{background:#efe9f4;color:#745588}.concept-title{font-size:27px;font-family:"Kaiti SC",KaiTi,serif;margin:22px 0 13px;letter-spacing:2px}.concept-foot{display:flex;width:100%;justify-content:space-between;align-items:center;margin-top:auto;color:#7c8571;font-size:12px}.card-lesson{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:30px;margin:20px 0}.lesson-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:27px 0}.member-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.member-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.member{border-radius:18px;background:#f4f5ed;padding:23px 18px;text-align:center}.member ruby{font-family:"Kaiti SC",KaiTi,serif;font-size:66px;line-height:1.9}.member rt{font-family:system-ui;font-size:16px;color:#7d8b6a}.member h3{font-size:21px;margin:9px 0}.member p{font-size:14px;color:#6f7d68;line-height:1.8}.rule{display:flex;align-items:flex-start;gap:13px;border-radius:17px;background:#f5eddb;padding:20px 22px;font-size:18px;line-height:1.9;color:#7c603b}.source-note{font-size:11px;line-height:1.9;color:#89917f;margin-top:23px}.lesson-actions{display:flex;justify-content:center;gap:15px;margin-top:25px}.practice-box{border:1px solid var(--line);border-radius:24px;background:var(--paper);padding:28px;margin-bottom:20px}.field-label{font-size:14px;display:block;margin-bottom:13px;font-weight:650}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:26px}.mode{background:#f5f5ed;border:2px solid transparent;border-radius:18px;padding:21px;text-align:left}.mode.active{background:#eaf0df;border-color:#6d8b59}.mode h3{font-size:18px;margin:10px 0}.mode p{font-size:13px;color:var(--muted);line-height:1.8}.practice-start{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:23px;padding-top:24px;border-top:1px solid var(--line)}.practice-start small{font-size:13px;color:var(--muted)}.session-head{display:flex;align-items:center;gap:16px;margin:10px 0 27px}.progress-track{height:8px;flex:1;border-radius:10px;overflow:hidden;background:#e8ecde}.progress-track>span{display:block;height:100%;background:#74955e;transition:width .25s}.session-count{font-size:13px;white-space:nowrap;color:#73806c}.quiz-card{background:var(--paper);border:1px solid var(--line);border-radius:27px;padding:32px 38px;max-width:880px;margin:0 auto}.quiz-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.quiz-meta small{color:#929982;font-size:11px}.question-instruction{font-size:14px;color:#7b866f;margin:23px 0 15px}.question{font-size:30px;line-height:1.9;font-weight:600;min-height:105px;letter-spacing:1px}.gap{display:inline-flex;width:55px;height:56px;align-items:center;justify-content:center;margin:0 5px;border-radius:11px;background:#eef1e4;border:2px dashed #a1b48a;vertical-align:middle;color:var(--green);font-family:KaiTi,"Kaiti SC",serif}.options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.options.two{grid-template-columns:repeat(2,minmax(0,1fr))}.options.four{grid-template-columns:repeat(4,minmax(0,1fr))}.option{position:relative;min-height:108px;border:2px solid #e5e8dc;border-radius:18px;background:#fffefa;font-family:"Kaiti SC",KaiTi,serif;font-size:42px;transition:background .15s,border .15s}.option.pinyin{font-family:system-ui;font-size:28px}.option.selected{border-color:#6e8c54;background:#eaf0dd}.option.correct{border-color:#6e8c54;background:#eaf0dd;opacity:1}.option.wrong{border-color:#ca8e69;background:#f9eee3;opacity:1}.option:disabled{opacity:.65}.option .option-mark{font-family:system-ui;position:absolute;right:9px;top:6px;font-size:16px;color:#5c7948}.feedback{border-radius:17px;background:#eaf0df;padding:20px 23px;font-size:16px;line-height:1.9;margin-top:24px}.feedback.retry{background:#f7edda;color:#7e603c}.feedback h3{display:flex;align-items:center;gap:9px;font-size:18px;margin-bottom:6px}.feedback small{font-size:12px;color:#7d826f}.quiz-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:24px;min-height:53px}.quiz-actions .primary{min-width:160px}.foot-help{text-align:center;font-size:12px;color:#87917b;margin-top:23px}.empty{text-align:center;border-radius:25px;background:#f0f3e7;padding:55px 25px}.empty img{width:90px}.empty h2{font-size:24px;margin:21px 0 12px}.empty p{color:var(--muted);font-size:15px;line-height:1.9;margin-bottom:23px}.review-list{display:grid;gap:13px}.review-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);padding:22px;border-radius:19px;background:var(--paper)}.review-row h3{font-size:25px;margin:12px 0;font-family:KaiTi,serif}.review-row p{font-size:13px;color:var(--muted);line-height:1.9}.review-actions{display:flex;gap:8px;flex-wrap:wrap}.result{text-align:center;padding-top:15px}.result-flower{width:113px;height:113px;border-radius:30px}.result h1{font-size:32px;margin:23px 0 9px}.result>p{font-size:15px;color:var(--muted);line-height:1.9}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-width:690px;margin:30px auto}.result-stat{background:#f0f3e6;border-radius:20px;padding:25px 10px}.result-stat:nth-child(2){background:#f4eddc}.result-stat:nth-child(3){background:#efecf1}.result-stat strong{display:block;font-size:37px;margin-bottom:9px}.result-stat span{font-size:13px;color:#76806c}.result-review{max-width:780px;margin:30px auto;text-align:left}.result-review details{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:16px 19px;font-size:15px}.result-review summary{cursor:pointer;line-height:1.8;min-height:30px}.result-review details p{line-height:1.9;color:var(--muted);padding-top:14px}.result-review .label{font-size:11px;color:#a46a43;margin-left:10px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0}.stat-card{background:#eff2e6;padding:24px;border-radius:20px}.stat-card strong{font-size:31px;display:block;margin:14px 0 7px}.stat-card span{font-size:12px;color:var(--muted)}.parent-note{font-size:13px;line-height:1.9;color:#7f886f;background:#f4efdf;border-radius:15px;padding:18px 21px}.settings-panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;margin-top:22px}.settings-panel h2{font-size:20px;margin-bottom:16px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:69px;border-bottom:1px solid #eff0e7;padding:12px 0}.setting-row:last-child{border-bottom:0}.setting-row label strong{display:block;font-size:15px}.setting-row label small{display:block;font-size:12px;color:var(--muted);margin-top:6px;line-height:1.8}.switch{position:relative;width:51px;height:30px;display:block;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch span{display:block;pointer-events:none;height:30px;border-radius:30px;background:#d8ddce;transition:background .2s}.switch span:before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:4px;left:4px;box-shadow:0 1px 3px #0001;transition:transform .2s}.switch input:checked+span{background:#668354}.switch input:checked+span:before{transform:translateX(21px)}.switch input:focus-visible+span{outline:3px solid #a96f2e;outline-offset:4px}select{background:#f1f2e9;border:1px solid #dce2d0;border-radius:11px;padding:11px;min-height:47px;max-width:180px;color:var(--ink)}input[type=range]{width:150px;accent-color:#648455;min-height:44px}.data-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.danger{color:#a16546}.history{width:100%;border-collapse:collapse;font-size:13px}.history th,.history td{text-align:left;padding:15px 9px;border-bottom:1px solid var(--line);line-height:1.8}.history th{color:#79816d;font-weight:500}.no-record{color:#8c927e;font-size:14px;line-height:1.9;padding:15px 0}.flower-grid{display:flex;flex-wrap:wrap;gap:16px;background:#edf2df;border-radius:23px;padding:26px;margin-top:22px;min-height:140px;align-items:center}.flower-grid img{width:78px;height:78px;border-radius:20px}.flower-grid p{font-size:15px;color:#77866a}.small{font-size:12px;color:var(--muted);line-height:1.9}.music-state{font-size:12px;line-height:1.8;min-height:22px;color:#7a886b;margin-top:12px}.modal-overlay{position:fixed;inset:0;background:#20392965;z-index:100;display:grid;place-items:center;padding:22px;backdrop-filter:blur(5px)}dialog{border:1px solid var(--line);border-radius:27px;background:#fffdf6;padding:29px;color:var(--ink);width:min(520px,100%);margin:auto;max-height:85dvh;overflow:auto;box-shadow:0 30px 80px #183c322e}dialog::backdrop{background:#20392960;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.modal-head h2{font-size:22px}.dialog-copy{font-size:15px;line-height:2;color:var(--muted);margin:13px 0 22px}.modal-actions{display:flex;gap:11px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}#toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,20px);padding:14px 22px;max-width:90vw;border-radius:15px;background:#2e5346;color:#fffdf2;z-index:150;opacity:0;pointer-events:none;transition:.2s;font-size:14px;line-height:1.8;box-shadow:0 5px 25px #294f4526}#toast.visible{opacity:1;transform:translate(-50%,0)}.save-warning{padding:14px 18px;background:#f7e9d8;color:#8f5736;border-radius:15px;margin-bottom:20px;font-size:13px;line-height:1.8}.hidden{display:none!important}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.reduced *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
@media(min-width:1400px){.content{padding:36px 63px}.hero{min-height:333px}.hero h1{font-size:39px}.hero-copy{padding:37px}.subjects{gap:22px}.subject{padding:24px}.subject-letters{font-size:40px}}
@media(max-width:1150px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:28px 13px}.brand strong{font-size:17px}.brand img{width:38px;height:38px}.brand small{font-size:8px}.nav a{font-size:14px;padding:0 12px}.content{padding:28px}.hero-copy{padding:26px;width:58%}.hero h1{font-size:29px}.hero p{font-size:13px}.hero-image{right:-58px;width:64%}.subject{padding:19px 17px}.subject h3{font-size:19px}.subject p{font-size:11px}.subject-letters{font-size:31px;letter-spacing:8px}.bottom-grid{gap:13px}.small-panel{padding:17px}.quiz-card{padding:28px}.concept-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.shell{display:block}.sidebar{height:auto;position:static;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 22px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0;padding:0}.brand strong{font-size:18px}.brand small{font-size:8px}.nav{display:flex;gap:3px}.nav a{min-height:46px;padding:0 10px;gap:7px;font-size:12px}.nav a svg{width:18px}.nav .count{display:none}.sidebar-bottom{display:none}.content{padding:25px 25px 30px}.topbar{margin-bottom:22px}.hero{min-height:300px}.hero h1{font-size:30px}.subject-letters{font-size:34px}.concept-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.concept-card{padding:18px 15px}.concept-title{font-size:24px}.quiz-card{padding:30px}.parent-mobile{display:inline-flex!important}}
@media(max-width:620px){.sidebar{padding:13px 18px}.brand small{display:none}.brand strong{font-size:18px}.brand img{width:35px;height:35px}.nav{position:fixed;bottom:0;left:0;right:0;background:#f6f6edfa;backdrop-filter:blur(15px);justify-content:space-around;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:40}.nav a{flex-direction:column;gap:5px;font-size:10px;padding:7px 14px;min-height:50px}.nav a svg{width:20px;height:20px}.content{padding:21px 18px calc(100px + env(safe-area-inset-bottom))}.topbar{gap:10px;margin-bottom:19px}.greeting{font-size:17px}.eyebrow{font-size:9px}.top-actions{gap:6px}.avatar{display:none}.music-pill{font-size:10px;min-height:39px;padding:9px}.circle-button{width:39px;height:39px}.hero{min-height:405px;align-items:flex-start;border-radius:23px}.hero-copy{width:100%;padding:25px;pointer-events:none}.hero-copy .primary{pointer-events:auto}.hero-badge{margin-bottom:10px;font-size:10px}.hero h1{font-size:29px;line-height:1.45}.hero p{font-size:12px;max-width:200px;margin:10px 0 16px}.hero .primary{min-height:48px;font-size:15px;padding:11px 18px}.hero-image{width:88%;height:240px;right:-18px;bottom:-8px;object-fit:contain;object-position:right bottom}.section-line{margin-top:26px}.section-line h2{font-size:18px}.section-line a{font-size:11px}.subjects{gap:10px}.subject{padding:16px 12px;border-radius:18px}.subject .subject-top{margin-bottom:12px}.subject-icon{width:29px;height:29px;border-radius:9px;font-size:15px}.subject-number{font-size:10px}.subject h3{font-size:17px}.subject p{font-size:10px;line-height:1.8;min-height:36px}.subject-letters{font-size:27px;letter-spacing:1px;margin:13px 0 17px}.subject-foot{font-size:10px;gap:4px}.subject-arrow{width:22px;height:22px}.bottom-grid{grid-template-columns:1fr;gap:12px;margin-top:17px}.small-panel{min-height:103px}.footer{font-size:9px;margin-top:22px;align-items:flex-start}.footer>span{max-width:56%}.page-title{font-size:27px}.page-desc{font-size:14px}.concept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.concept-title{font-size:23px;letter-spacing:0}.concept-card{padding:17px 13px;min-height:177px}.concept-foot{font-size:11px}.card-lesson{padding:21px 17px}.lesson-head{align-items:flex-start}.member-grid,.member-grid.four{grid-template-columns:1fr;gap:12px}.member-grid.two{grid-template-columns:1fr}.member{padding:17px}.member ruby{font-size:62px}.rule{font-size:16px;padding:18px}.lesson-actions{flex-direction:column}.mode-grid{gap:10px}.mode{padding:16px 13px}.mode h3{font-size:16px}.mode p{font-size:12px}.practice-box{padding:21px 18px}.practice-start{flex-direction:column;align-items:stretch}.practice-start .primary{width:100%}.tabs{gap:7px}.tab{font-size:12px;padding:11px 15px}.quiz-card{padding:24px 20px;border-radius:22px}.question{font-size:25px;min-height:110px}.question-instruction{font-size:13px}.quiz-meta small{font-size:10px}.options{gap:10px}.option{font-size:38px;min-height:89px}.option.pinyin{font-size:23px}.options.four{grid-template-columns:repeat(2,minmax(0,1fr))}.gap{width:46px;height:49px}.quiz-actions{flex-direction:column-reverse;align-items:stretch}.quiz-actions .primary{width:100%}.feedback{padding:18px;font-size:15px}.review-row{flex-direction:column;align-items:stretch;gap:10px}.review-actions{justify-content:flex-end}.result-stats{gap:9px}.result-stat{padding:20px 5px}.result-stat span{font-size:11px}.result-stat strong{font-size:31px}.result h1{font-size:28px}.stat-grid{gap:9px}.stat-card{padding:18px 11px}.stat-card strong{font-size:26px}.stat-card span{font-size:11px}.settings-panel{padding:20px 17px}.setting-row{gap:10px}.setting-row label strong{font-size:14px}.setting-row label small{font-size:11px;max-width:190px}.history{font-size:11px}.history td,.history th{padding:13px 5px}dialog{padding:23px}.modal-head h2{font-size:21px}.modal-actions .primary{font-size:15px}input[type=range]{width:125px}.flower-grid{padding:18px}.flower-grid img{width:61px;height:61px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Finger-sized targets apply on tablets and in split view, without disabling zoom. */
a,button,select,input{touch-action:manipulation}
button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button,select{min-height:48px}
.brand{min-height:48px}
.nav a{min-height:52px}
.music-pill{min-height:48px;font-size:14px;padding:10px 14px}
.circle-button,.avatar{width:48px;height:48px;min-width:48px;min-height:48px;flex-shrink:0}
.primary{min-height:56px}
.secondary{min-height:52px}
.ghost,.back,.tab{min-height:48px;min-width:48px}
.section-line>a,.footer a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px}
.footer .offline{flex-wrap:wrap;justify-content:flex-end}
select{font-size:16px}
input[type=range]{min-height:48px}
.switch{width:56px;height:48px}
.switch span{width:51px;height:30px;position:absolute;left:2px;top:9px}
.switch span:before{top:4px}
.switch input{z-index:1;left:0;top:0;width:56px;height:48px}
.result-review summary{min-height:48px;padding:8px 0}
.member p{font-size:17px}
.shell{min-height:100vh;min-height:100dvh}
dialog{width:min(520px,calc(100% - 32px));max-height:85vh;max-height:85dvh;overscroll-behavior:contain}
button:active:not(:disabled){filter:brightness(.96)}

/* Keep the reading area generous and the next action reachable in landscape. */
.is-quiz .content{padding-top:max(18px,env(safe-area-inset-top))}
.is-quiz .topbar{min-height:48px;margin-bottom:12px}
.is-quiz .eyebrow{display:none}
.is-quiz .session-head{margin:6px 0 18px}
.is-quiz .quiz-card{padding:24px 28px}
.is-quiz .question-instruction{margin:18px 0 12px;font-size:16px}
.is-quiz .question{min-height:85px}
.is-quiz .options{margin:20px 0}
.is-quiz .feedback{margin-top:18px;padding:16px 20px}
.is-quiz .quiz-actions{position:sticky;bottom:max(12px,env(safe-area-inset-bottom));z-index:5;background:var(--paper);padding:8px 0;margin-top:16px;min-height:72px;box-shadow:0 -10px 12px 0 #fffef9e8}
.is-quiz .foot-help{margin-top:17px}
.is-quiz .footer{margin-top:16px}

@media(min-width:621px) and (max-width:850px){
  .nav a{font-size:14px;padding:0 9px;gap:6px}
  .brand small{font-size:8px;letter-spacing:2px}
  .is-quiz .quiz-card{padding:26px 30px}
  .is-quiz .question{min-height:100px}
}
@media(max-width:620px){
  .brand{min-height:48px}
  .topbar{gap:8px}
  .greeting{font-size:16px}
  .music-pill{font-size:12px;padding:9px 11px;min-width:97px}
  .nav a{min-height:56px;min-width:56px}
  .is-quiz .content{padding-top:16px}
  .is-quiz .quiz-card{padding:22px 20px}
  .is-quiz .quiz-actions{bottom:calc(88px + env(safe-area-inset-bottom));min-height:56px;gap:4px}
  .is-quiz .quiz-actions .primary{order:2}
  .is-quiz .quiz-actions .ghost{order:1}
  .is-quiz .quiz-actions .small{display:none}
  .is-quiz .question{font-size:26px;min-height:100px}
  .is-quiz .question-instruction{font-size:15px}
  .quiz-meta{flex-wrap:wrap}
  .footer{gap:8px}
  .footer>span:first-child{max-width:43%}
  #toast{bottom:calc(92px + env(safe-area-inset-bottom))}
}
@media(hover:none){
  .subject:hover{transform:none;box-shadow:none}
  .primary:hover{background:var(--deep)}
}

/* Complete learning library and story trail. */
.hero-detail{display:block;margin-top:14px;font-size:12px;line-height:1.8;color:#6d8061}
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.story-card{display:flex;align-items:center;gap:20px;text-align:left;border:1px solid var(--line);border-radius:22px;background:var(--paper);padding:20px;min-width:0}
.story-grid .story-card{align-items:stretch;flex-direction:column;gap:17px}
.story-picture{position:relative;display:flex;align-items:center;justify-content:center;width:90px;min-width:90px;height:88px;border-radius:18px;background:#e5ecd8;color:#658252}
.story-picture>span{position:absolute;right:9px;top:8px;font:11px Georgia,serif;letter-spacing:1px;color:#899877}
.story-1 .story-picture{background:#e6edf0;color:#678593}
.story-2 .story-picture{background:#f1e7d6;color:#b28a4f}
.story-grid .story-picture{width:100%;height:100px}
.story-card-body{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.story-card-body strong{font-size:19px;line-height:1.7}
.story-card-body>span{font-size:13px;line-height:1.8;color:var(--muted)}
.story-card-body small{font-size:11px;line-height:1.8;color:#8a917a}
.story-arrow{align-self:flex-end;color:#6f855e}
.story-list{display:grid;gap:18px}
.story-intro{display:flex;align-items:center;gap:30px;background:#eaf0df;padding:35px;border-radius:25px}
.story-intro-icon{color:#7b9564}
.story-intro h2{font-size:24px;margin-bottom:15px}
.story-intro p{font-size:17px;line-height:1.9;color:#6a7e5c;margin-top:12px}
.search-form{display:flex;align-items:center;gap:10px;margin:8px 0 25px}
.search-form input{border:1px solid #dfe5d5;border-radius:14px;min-height:52px;font-size:16px;color:var(--ink);background:var(--paper);padding:12px 17px;flex:1;min-width:0}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}
.pagination>span{font-size:13px;line-height:1.8;text-align:center;color:var(--muted)}
.difficulty-tabs .tab:not(.active){background:#f2eddf}
.gap.pinyin-gap{font-family:system-ui;font-size:24px;min-width:95px;width:auto;max-width:100%;padding:0 10px;letter-spacing:0}
.story-context{padding:22px;border-radius:19px;background:#f2f4e8;font-size:24px;line-height:2.15;letter-spacing:.3px;overflow-wrap:anywhere}
.story-slot{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:39px;margin:0 4px;padding:0 7px;border-radius:8px;vertical-align:middle;font-size:23px;background:#e7ebdb;color:#6f8064;line-height:1.6}
.story-slot.active{outline:2px dashed #7e9b65;outline-offset:1px;background:#fffef7;color:#315e47;min-width:48px;font-weight:700}
.story-slot.pronunciation{font-family:system-ui;font-size:18px;min-width:62px}
.story-question{font-size:20px;margin:20px 0 12px;line-height:1.8}
.completed-story{max-width:850px;margin:34px auto 25px}
.completed-story>h2{font-size:23px;margin:28px 0 18px}
.completed-story>p{font-size:21px;line-height:2.1;margin-bottom:17px}
.completed-story>p.small{font-size:13px}
.completed-story mark{background:#e4edd7;color:#315e47;border-radius:4px;padding:1px 4px}
.completed-story mark.py{font-size:17px}
.talk-card{background:var(--paper);border:1px solid var(--line);padding:23px;border-radius:18px;margin-top:15px}
.talk-card h3{font-size:18px;line-height:1.9;margin-bottom:12px}
.talk-card summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-size:15px;color:#6a805b}
.talk-card details p{font-size:16px;line-height:1.9;color:#718066;margin-bottom:18px}
.talk-card button{margin-top:12px}
.day-list{display:grid;gap:17px;margin:20px 0}
.day-row{display:grid;grid-template-columns:100px minmax(35px,1fr) 65px 42px;align-items:center;gap:11px;font-size:12px;color:#728066}
.day-row strong{font-size:13px;font-weight:600;text-align:right}
.day-bar{height:10px;background:#e8eddd;overflow:hidden;border-radius:10px}
.day-bar i{display:block;height:100%;background:#91aa73;border-radius:10px}
.weak-chips{display:flex;flex-wrap:wrap;gap:11px;margin:15px 0}
.source-corrections{margin-top:20px}
.source-corrections details{border-top:1px solid var(--line);padding:8px 0}
.source-corrections summary{display:flex;align-items:center;min-height:48px;font-size:14px;line-height:1.8;cursor:pointer;color:#577249}
.source-corrections details p{font-size:13px;line-height:1.9;color:#7b846e;margin:9px 0}
.result-flower{animation:blossom .85s ease-out both}
.game-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}
.game-heading .eyebrow{margin-bottom:12px}
.game-total{display:flex;align-items:center;gap:8px;padding:16px 20px;border-radius:20px;background:#f2e9d2;color:#916e32;font-size:13px;white-space:nowrap}
.game-total strong{font:700 30px system-ui;color:#6f542d}
.game-launch{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:30px;background:#e8efdc;border-radius:25px;margin:23px 0 26px}
.game-launch h2{font-size:29px;margin:13px 0 10px;letter-spacing:.5px}
.game-launch p{font-size:15px;line-height:1.9;color:#6c7e5e}
.game-launch>.primary{flex-shrink:0}
.level-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.level-card{display:flex;align-items:center;gap:16px;min-height:133px;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:22px 19px;position:relative}
.level-number{width:52px;height:52px;flex-shrink:0;border-radius:17px;background:#eef0e5;color:#79876a;font:700 24px system-ui;display:grid;place-items:center}
.level-copy{display:flex;flex-direction:column;gap:7px;min-width:0}
.level-copy strong{font-size:17px;line-height:1.6}
.level-copy>span{font-size:12px;color:#77866c;line-height:1.7}
.level-copy small{font-size:11px;color:#9a8b6a;line-height:1.7}
.level-state{position:absolute;top:13px;right:15px;font-size:10px;color:#8c957e}
.level-card.current{border:2px solid #9bb47b;background:#f5f8ed;box-shadow:0 5px 0 #789b4812}
.level-card.current .level-number{background:#365f47;color:#fffef1}
.level-card.current .level-state{color:#496e40}
.level-card.cleared .level-number{background:#e1ebd4;color:#5d7e46}
.level-card.locked{opacity:.7;background:#f4f4ee}
.game-rules{background:#f5f0e1;border-radius:20px;margin-top:26px;padding:23px 26px}
.game-rules h2{font-size:19px;margin-bottom:12px}
.game-rules p{font-size:13px;line-height:2;color:#7a8069;margin-top:9px}
.game-rules b{font-weight:650;color:#5f7551}
.custom-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:27px 0;font-size:13px;color:#7a856d}
.game-hud{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 16px;background:#edf2e3;border-radius:14px;margin:0 0 13px;color:#547249}
.game-hud>span,.game-hud>strong{display:flex;align-items:center;gap:8px;font-size:14px}
.game-hud>strong{color:#8e713f;white-space:nowrap}
.score-pop{font-size:19px;color:#8b7139;margin-left:auto;background:#f4ecd1;border-radius:10px;padding:5px 12px;animation:blossom .45s ease-out}
.feedback h3{display:flex;align-items:center}
.auto-advance{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;line-height:1.8;color:#557348}
.word-meaning{font-size:16px;line-height:1.9;color:#7b846d;margin:-3px 0 14px;padding:10px 15px;border-left:3px solid #d2dfbc;background:#f4f6ed;border-radius:0 12px 12px 0}
.game-clear{text-align:center;max-width:800px;margin:20px auto 35px;padding:30px;background:var(--paper);border:1px solid var(--line);border-radius:28px}
.clear-medal{width:106px;height:106px;display:grid;place-items:center;background:#f3e7be;color:#a1843e;border-radius:34px;margin:0 auto 23px;animation:blossom .65s ease-out}
.game-clear h1{font-size:34px;line-height:1.6;margin:16px 0 10px}
.game-clear>p{font-size:16px;color:#7a866d;line-height:1.9}
.clear-score{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:28px 0}
.clear-score>div{padding:24px 8px;background:#edf2e2;border-radius:18px}
.clear-score>div:nth-child(2){background:#f4ecd7}
.clear-score strong{display:block;font:700 35px system-ui;margin-bottom:9px}
.clear-score span{font-size:13px;color:#7c886d}
.level-next{display:flex;justify-content:center;align-items:center;gap:9px;padding:19px 15px;background:#e8efdc;border-radius:16px;margin:20px 0;font-size:17px;line-height:1.8;color:#527143}
.game-clear>p.small{font-size:12px;margin-top:22px}
.game-summary{display:flex;align-items:center;gap:18px;border-radius:19px;background:#f3ecd9;margin:22px 0;padding:20px 24px}
.game-medal{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:#e6d6a7;color:#8a713b;flex-shrink:0}
.game-summary>div{flex:1}
.game-summary strong{font:700 29px system-ui}
.game-summary strong small{font-size:13px;font-weight:500}
.game-summary p{font-size:12px;line-height:1.9;color:#7a816a;margin-top:5px}
@media(max-width:1150px) and (min-width:621px){.level-card{padding:25px 16px 20px;gap:13px}.level-copy strong{font-size:15px}.level-number{width:44px;height:48px}.game-launch{padding:25px}.game-launch h2{font-size:25px}.game-launch>.primary{font-size:15px;padding:12px 17px}}
@media(max-width:620px){
 .game-heading{align-items:flex-start;gap:10px;flex-direction:column}
 .game-heading .page-title{font-size:27px}
 .game-total{padding:11px 16px;border-radius:15px;align-self:flex-end;margin-top:-5px}
 .game-total strong{font-size:25px}
 .game-launch{flex-direction:column;align-items:stretch;padding:24px;gap:20px}
 .game-launch h2{font-size:26px}.game-launch p{font-size:14px}
 .level-map{grid-template-columns:1fr;gap:12px}
 .level-card{min-height:124px;padding:24px 18px 19px}
 .level-copy strong{font-size:17px}
 .game-rules{padding:22px}
 .custom-entry{flex-direction:column;align-items:stretch;gap:13px}
 .game-hud{padding:12px;gap:10px;align-items:flex-start}
 .game-hud>span,.game-hud>strong{font-size:12px;line-height:1.8;gap:5px}
 .game-clear{padding:25px 17px}
 .game-clear h1{font-size:27px}
 .clear-score{gap:8px}.clear-score>div{padding:21px 5px}
 .clear-score strong{font-size:28px}.clear-score span{font-size:11px}
 .level-next{font-size:15px;padding:15px 12px}
 .score-pop{font-size:16px;padding:5px 9px}
 .game-summary{padding:18px;flex-wrap:wrap;gap:12px}
 .game-summary .secondary{width:100%}.game-summary>div{min-width:160px}
 .auto-advance{font-size:15px}
 .is-quiz .quiz-actions .auto-advance{padding:8px 0;order:2}
}
@keyframes blossom{from{transform:scale(.7) rotate(-8deg);opacity:.5}to{transform:scale(1) rotate(0);opacity:1}}
@media(max-width:1150px){.story-card{padding:18px}.story-card-body strong{font-size:17px}.story-card-body>span{font-size:12px}}
@media(max-width:850px) and (min-width:621px){
 .sidebar{gap:15px;padding-left:18px;padding-right:18px}
 .nav{gap:0}
 .nav a{gap:5px;padding:0 7px;font-size:13px}
 .brand strong{font-size:17px}
 .brand small{font-size:7px;letter-spacing:2px}
 .brand{gap:8px}
 .story-grid{gap:13px}
 .story-picture{height:85px}
}
@media(max-width:620px){
 .nav a{min-width:56px;padding:7px 8px}
 .nav{gap:0}
 .story-grid{grid-template-columns:1fr;gap:12px}
 .story-grid .story-card{flex-direction:row;align-items:center;gap:16px}
 .story-grid .story-picture{min-width:68px;width:68px;height:78px}
 .story-picture{min-width:68px;width:68px;height:78px}
 .story-card{padding:17px;gap:15px}
 .story-card-body{gap:7px}
 .story-card-body strong{font-size:17px}
 .story-arrow{display:none}
 .hero-detail{max-width:215px;font-size:11px}
 .hero{min-height:435px}
 .hero-image{height:227px}
 .search-form{flex-wrap:wrap}
 .search-form input{padding:12px;font-size:16px}
 .search-form .secondary{padding:10px 16px}
 .pagination{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .pagination>span{grid-column:1/-1;grid-row:1}
 .pagination .secondary{font-size:14px;padding:10px 12px}
 .story-intro{flex-direction:column;align-items:flex-start;padding:24px;gap:15px}
 .story-intro p{font-size:16px}
 .story-context{font-size:21px;padding:17px;line-height:2.2}
 .story-slot{font-size:22px;min-width:34px;margin:0 3px;padding:0 5px}
 .story-slot.pronunciation{font-size:16px;min-width:50px}
 .story-question{font-size:18px}
 .completed-story>p{font-size:19px}
 .talk-card{padding:19px}
 .day-row{grid-template-columns:82px minmax(25px,1fr) 48px 32px;gap:7px;font-size:11px}
 .day-row strong{font-size:12px}
 .history th,.history td{overflow-wrap:anywhere}
}

/* Exercise focus mode: reserve the screen for the question and touch targets. */
.install-hero{display:flex;align-items:center;gap:24px;margin-bottom:26px}.install-hero img{border-radius:20px;flex-shrink:0}.install-hero .page-title{margin:8px 0}.install-hero p{font-size:15px;color:var(--muted);line-height:1.8}
.install-notice{border-radius:18px;padding:20px 24px;background:#f5eddb;margin-bottom:20px;line-height:1.8;font-size:15px}.install-notice p{margin-top:5px;color:var(--muted)}.install-notice.ready{background:#eaf0df}.install-address{overflow-wrap:anywhere}
.install-steps{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:8px 26px}.install-steps article{display:flex;align-items:flex-start;gap:20px;padding:25px 0}.install-steps article+article{border-top:1px solid var(--line)}.install-number{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;flex-shrink:0;background:#e9efd9;font-size:20px;font-weight:700}.install-steps h2,.install-offline h2,.install-records h2{font-size:19px;line-height:1.6}.install-steps p,.install-records p{font-size:15px;line-height:1.9;color:var(--muted);margin-top:7px}
.install-offline{border-radius:20px;padding:24px;background:#edf1e5;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0}.install-offline>div{display:flex;gap:15px;align-items:center}.install-offline p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:5px}.install-offline button{flex-shrink:0}.install-records{padding:24px 4px}.install-records>div{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}
@media(max-width:620px){.install-hero{gap:15px;align-items:flex-start}.install-hero img{width:60px;height:60px;border-radius:15px}.install-hero .page-title{font-size:24px}.install-notice{padding:18px}.install-steps{padding:0 18px}.install-steps article{gap:14px;padding:22px 0}.install-number{width:34px;height:36px;font-size:18px}.install-steps h2,.install-offline h2,.install-records h2{font-size:17px}.install-steps p,.install-records p{font-size:14px}.install-offline{flex-direction:column;align-items:stretch;padding:20px}.install-offline button{width:100%}.footer .offline{flex-wrap:wrap;justify-content:flex-end}}
.restart-entry{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin:20px 0;color:var(--muted);font-size:14px}
.level-songs{margin-top:20px;font-size:14px;color:var(--muted)}.level-songs summary{cursor:pointer;min-height:48px;display:flex;align-items:center}.level-songs ol{padding-left:24px;line-height:2}
.shell.focus-mode{display:block;max-width:none}
.focus-mode .content{width:100%;max-width:1148px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.focus-toolbar{display:flex;align-items:center;gap:18px;min-height:48px;margin-bottom:16px}
.focus-exit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:82px;min-height:48px;padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;font-size:14px;color:#60745b;flex-shrink:0}
.focus-progress{display:flex;align-items:center;gap:16px;flex:1;min-width:0}
.focus-stage{font-size:14px;font-weight:600;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;color:#668058}
.focus-progress .progress-track{min-width:30px;height:6px}
.focus-count{font-size:14px;color:#7b856f;white-space:nowrap}
.focus-score{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:600;color:#947b45;white-space:nowrap;flex-shrink:0}
.focus-score small{font-size:12px;font-weight:400}
.focus-sound{background:transparent}
.focus-mode .quiz-card{max-width:none;margin:0;padding:26px 30px;border-radius:24px}
.focus-mode .question-instruction{font-size:15px;margin:0 0 15px;line-height:1.8}
.focus-mode .word-meaning{margin:0 0 18px;font-size:16px;padding:10px 15px}
.focus-mode .question{min-height:0;font-size:clamp(28px,3vw,36px);line-height:1.75;margin:8px 0 0}
.focus-mode .options{margin:22px 0 0}
.focus-mode .quiz-actions{position:static;bottom:auto;box-shadow:none;background:transparent;min-height:56px;margin-top:20px;padding:0;flex-direction:row;gap:12px}
.focus-mode .quiz-actions .primary{width:auto;order:0}
.focus-mode .quiz-actions .ghost{order:0}
.focus-mode .quiz-actions .auto-advance{order:0}
.focus-mode .feedback{margin-top:18px}
.focus-mode .story-question{margin:18px 0 0}
.focus-mode .game-clear{margin-top:20px}
@media(max-width:620px){
 .focus-mode .content{padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
 .focus-toolbar{gap:10px;margin-bottom:14px}
 .focus-exit{width:48px;min-width:48px;padding:10px}
 .focus-exit span{display:none}
 .focus-progress{gap:8px}
 .focus-stage{font-size:13px;max-width:110px}
 .focus-count{font-size:13px}
 .focus-score{font-size:15px;gap:4px}
 .focus-mode .quiz-card{padding:22px 18px;border-radius:21px}
 .focus-mode .question{font-size:27px;line-height:1.8}
 .focus-mode .word-meaning{font-size:15px;padding:10px 12px;margin-bottom:14px}
 .focus-mode .options{gap:10px;margin-top:20px}
 .focus-mode .quiz-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px}
 .focus-mode .quiz-actions .primary{font-size:16px;padding:12px 16px;gap:8px;min-width:148px}
 .focus-mode .quiz-actions .ghost{font-size:14px;padding:10px 8px}
 .focus-mode .quiz-actions .auto-advance{padding:8px 0}
 .focus-mode .feedback{padding:16px}
}
@media(max-width:520px){.focus-progress .progress-track{display:none}.focus-progress{justify-content:space-between}.focus-stage{max-width:100px}}
