:root{--ink:#30483d;--paper:#f7f7e8;--green:#bedfc8;--yellow:#ffe18a;--pink:#f6c8bc;--line:2px solid var(--ink);--shadow:0 4px 0 var(--ink)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--ink);background:var(--paper);background-image:radial-gradient(#9cb9a22b .8px,transparent .8px);background-size:16px 16px;font:15px/1.6 system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;min-height:100svh}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #477bd0;outline-offset:4px}button:active:not(:disabled){transform:translateY(2px)}a{color:#45654e;text-underline-offset:3px}.leaf-decor{position:fixed;pointer-events:none;z-index:-1;font:200px/1 serif;color:#d9e8d5}.leaf-one{left:-65px;top:32%;transform:rotate(-18deg)}.leaf-two{right:-38px;bottom:1%;color:#f3e8b7}.topbar{max-width:1080px;margin:0 auto;padding:24px 32px 0;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:none;display:flex;align-items:center;gap:10px;text-align:left;padding:0;font-size:20px;font-weight:900;line-height:1.15}.brand small{display:block;letter-spacing:3px;font-size:10px;margin-top:6px;color:#738073}.brand-mark{display:grid;place-items:center;width:42px;height:44px;border:var(--line);border-radius:13px;transform:rotate(-8deg);background:var(--green);font-size:26px;box-shadow:2px 2px 0 var(--ink)}nav{display:flex;gap:10px}.icon-button{display:grid;place-items:center;border:var(--line);border-radius:50%;width:40px;height:40px;padding:0;background:#fffef6;font-weight:800;font-size:23px;box-shadow:0 2px 0 var(--ink)}.icon-button[aria-pressed=true]{background:#f3ccc4}.icon-button.small{width:33px;height:33px;font-size:18px}main{max-width:980px;margin:auto;padding:40px 32px}.home{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.eyebrow{display:inline-block;background:var(--green);border:1.8px solid var(--ink);border-radius:7px;padding:3px 12px;transform:rotate(-3deg);font-size:12px;font-weight:800;box-shadow:2px 2px 0 var(--ink)}h1{font-size:46px;line-height:1.4;letter-spacing:-1.5px;font-weight:900;margin:25px 0 0}h1 span{background:linear-gradient(transparent 62%,var(--yellow) 62%)}.home-monkey{height:272px;position:relative;max-width:370px}.home-monkey img{position:absolute;left:25px;top:-3px;width:290px;height:290px;object-fit:contain;animation:bob 4s ease-in-out infinite}.floating-char{position:absolute;display:grid;place-items:center;width:47px;height:50px;background:#ffedac;border:2px solid var(--ink);border-radius:10px;font-size:31px;box-shadow:0 4px 0 var(--ink)}.char-one{left:6px;top:61px;transform:rotate(-14deg)}.char-two{right:9px;top:31px;transform:rotate(14deg);background:#dceacd}.monkey-bubble{position:absolute;bottom:2px;left:58px;border:var(--line);border-radius:20px;padding:4px 16px;background:#fffef8;font-size:13px;font-weight:750;transform:rotate(-4deg)}.record{display:flex;gap:11px;align-items:center;margin:24px 0 0}.record>span{font-size:36px;color:#b18b43}.record strong{font-size:13px;display:block}.record small{font-size:11px;display:block;color:#7e8b7b;margin-top:2px}.setup-card{border:var(--line);border-radius:23px;background:#fffef8;padding:27px;box-shadow:6px 7px 0 var(--ink);position:relative}.setup-card:before{content:'';position:absolute;width:65px;height:24px;background:#f4d58290;top:-12px;right:27px;transform:rotate(6deg)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.section-heading h2{font-size:19px;margin:0}.section-heading>span{font-size:11px;color:#849080;white-space:nowrap}.levels{display:grid;gap:12px}.level{display:flex;align-items:center;gap:12px;text-align:left;background:#fffefa;border:2px solid #dfe5d8;border-radius:14px;padding:13px 11px;transition:background .15s}.level.selected{border-color:var(--ink);background:#ecf2d5;box-shadow:0 3px 0 var(--ink)}.level strong{font-size:16px;display:block}.level small{font-size:10px;color:#7a8875;display:block;margin-top:3px;line-height:1.5}.level-icon{display:grid;place-items:center;width:37px;height:42px;border-radius:9px;background:#d8e9c8;font-weight:900;font-size:21px}.level:nth-child(2) .level-icon{background:#fbe5a7}.level:nth-child(3) .level-icon{background:#f4cbbc}.level i{margin-left:auto;flex-shrink:0;display:block;width:16px;height:16px;border:2px solid #ccd6c5;border-radius:50%}.level.selected i{border:5px solid var(--ink);background:var(--yellow)}.primary{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;padding:12px 16px;background:var(--yellow);border:var(--line);border-radius:12px;box-shadow:var(--shadow);font-weight:850;font-size:17px;min-height:48px}.primary:hover{background:#ffdc73}.setup-card>.primary{margin-top:25px}.review-button{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;background:none;border:1.5px dashed #a9b99c;border-radius:11px;padding:10px;margin-top:16px;font-size:13px;font-weight:750}.review-button span{border-radius:10px;background:var(--green);padding:0 7px;min-width:24px}.review-button:disabled{opacity:.48}.sound-note{font-size:10px;color:#8a927f;text-align:center;margin:17px 0 0}footer{max-width:980px;margin:12px auto 0;border-top:1px solid #dfe4d2;padding:18px 32px;text-align:center;color:#97a18c;font-size:10px;letter-spacing:2px}footer span{padding:0 10px;font-size:15px}.game-active footer{display:none}.game-active main{padding-top:17px;padding-bottom:28px}.game-active .topbar{padding-top:15px}.game{max-width:520px;margin:auto}.game-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:750}.text-button{background:none;border:0;padding:5px 0;color:#6a7e69;font-size:13px;min-height:33px}.hud{display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:10px}.hud b{font-size:17px}.hud>span{border:1.5px solid #c5d0bb;border-radius:20px;padding:2px 11px;background:#fffef7}.hud>span.flower-count{background:#ffeab0;border-color:var(--ink);min-width:56px;text-align:center}.progress{display:flex;gap:6px;justify-content:center;margin-top:12px}.progress i{height:8px;width:29px;border:1.5px solid #9eae94;background:#fffef8;border-radius:4px}.progress i.current{background:var(--yellow);border-color:var(--ink)}.progress i.done{background:var(--green);border-color:var(--ink)}.game-stage{height:155px;position:relative}.sunburst{position:absolute;inset:20px 80px 0;background:repeating-conic-gradient(from 10deg at 50% 110%,#ffe9a858 0deg 16deg,transparent 16deg 32deg);mask-image:linear-gradient(transparent,#000);opacity:.8}.speech{position:absolute;left:2px;top:69px;border:var(--line);border-radius:12px;background:#fffef6;padding:7px 11px;max-width:139px;transform:rotate(-5deg);font-size:11px;font-weight:800;text-align:center;line-height:1.6;box-shadow:0 2px 0 var(--ink)}.streak{position:absolute;top:59px;right:8px;width:117px;text-align:center}.streak small{display:block;font-size:10px;color:#839079}.streak b{font-size:30px;line-height:1.2;display:block}.streak>span{font-size:9px;color:#9d946e}.stage-floor{position:absolute;bottom:0;height:8px;width:100%;border-top:2px solid #5e785450;border-radius:50%}.question-card{border:var(--line);border-radius:20px;background:#fffef8;box-shadow:0 5px 0 var(--ink);padding:15px 20px 12px;text-align:center;position:relative}.question-label{display:flex;justify-content:space-between;gap:12px;font-size:10px;font-weight:750;color:#8b987e}.question-label>span:first-child{background:#e8efdb;color:#688055;padding:2px 9px;border-radius:6px}.meaning{font-size:18px;font-weight:800;line-height:1.55;min-height:48px;margin:13px auto 10px;max-width:410px;display:flex;align-items:center;justify-content:center}.slots{display:flex;gap:10px;justify-content:center}.slot{display:grid;place-items:center;width:58px;height:63px;border:2px solid #a2b28f;border-radius:10px;background:#edf1df;font-size:34px;font-weight:850;position:relative;line-height:1}.slot.fixed{background:#edf0e6;border-color:#dbe1d0;color:#7c8b73}.slot.empty{background:#fffdf4;border:2px dashed #b7b59c}.slot.empty:after{content:'?';font-size:25px;color:#c6c8ad}.slot.active{border-color:#ad8330;background:#fff4cd;box-shadow:0 0 0 3px #ffe7a240}.slot.ok{background:#dceecd;border-color:#78a569}.slot.pending{color:transparent}.slot.pending:after{content:'·';color:#a7b48f;position:absolute}.feedback{font-size:11px;line-height:1.5;min-height:18px;margin:11px 0 0;color:#87957b}.question-card.wrong{background:#fff7ef}.question-card.wrong .feedback{color:#b66c4b}.question-card.complete{background:#f1f6dc}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:19px}.tile{height:58px;border:var(--line);background:#fffdf4;border-radius:12px;box-shadow:0 4px 0 var(--ink);font-size:31px;font-weight:850;position:relative;line-height:1}.tile:nth-child(3n+1){background:#f8ecc7}.tile:nth-child(3n+2){background:#e4eecd}.tile:nth-child(3n+3){background:#f7dfd2}.tile:hover:not(:disabled){background:#ffe291}.tile kbd{position:absolute;top:4px;left:7px;font:10px/1.2 system-ui;color:#7e8970}.tile.used{background:#e7eadc;border-color:#c9d2bd;box-shadow:0 2px 0 #c9d2bd}.tile.used .char,.tile.grabbed .char{visibility:hidden}.tile.used:after{content:'✧';color:#aabb9d;font-size:19px}.tile.reserved:not(.used){opacity:.8}.tile.hinted{outline:3px solid #deb459;outline-offset:2px}.game-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:10px}.hint-button{font-size:12px;font-weight:700}.keyboard-note{font-size:9px;color:#9aa58d}.learning{margin-top:18px;border:1.5px solid #d6dec8;border-radius:15px;background:#fffef6;padding:16px 19px;line-height:1.7;font-size:13px}.learn-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.learn-top strong{font-size:22px;letter-spacing:4px}.learn-top>span{font-size:10px;color:#738760;background:#e8f0d4;border-radius:7px;padding:3px 7px;white-space:nowrap}.pinyin{font-size:11px;letter-spacing:1px;color:#8b957b;margin:3px 0 9px}.learning p{margin-top:8px;margin-bottom:8px}.example{display:flex;align-items:flex-start;gap:8px;color:#627453}.example>span:first-child{flex-shrink:0;font-size:10px;border:1px solid #d5dec8;border-radius:5px;padding:1px 5px;margin-top:1px}.learning .primary{margin-top:15px;font-size:14px;min-height:43px;padding:9px}.source-link{display:block;text-align:right;font-size:10px;color:#9aa08c;margin-top:11px}.results{text-align:center;max-width:490px;margin:auto}.result-monkey{display:block;object-fit:contain;width:170px;height:170px;margin:10px auto -5px}.results h1{font-size:32px;margin-top:0}.results>p{font-size:12px;color:#829172}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border:var(--line);border-radius:17px;background:#fffef5;box-shadow:4px 4px 0 var(--ink);padding:20px 10px;margin:23px 0}.result-stats b{font-size:32px;display:block;line-height:1.3}.result-stats span{font-size:11px;color:#7c8c70}.round-review{font-size:12px;text-align:left;line-height:1.8;margin:19px 0}.round-review strong{display:block}.review-words{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.review-word{border:1px solid #d5ddc8;background:#ecf1df;padding:3px 8px;border-radius:6px}.results>.text-button{margin-top:17px}.results .local-note{font-size:10px;color:#94a185}dialog{border:var(--line);background:#fffef6;color:var(--ink);border-radius:22px;box-shadow:6px 6px 0 var(--ink);width:calc(100% - 38px);max-width:425px;padding:25px;max-height:90svh;overflow:auto}dialog::backdrop{background:#24392e70;backdrop-filter:blur(4px)}dialog h2{font-size:21px;margin:0}dialog p{font-size:13px;line-height:1.8;color:#7c8a70}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}dialog ol{font-size:13px;padding-left:20px;line-height:2.1}.credits{font-size:10px!important;border-top:1px solid #dfe5d4;padding-top:14px}.pause-symbol{font-size:50px;color:#bd9849}#pause-dialog,#exit-dialog{text-align:center}#pause-dialog .primary,#exit-dialog .primary{margin:25px 0 13px}#buddy-overlay{position:fixed;inset:0;width:100vw;height:100vh;overflow:visible;pointer-events:none;z-index:16;display:none}#celebration{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20}.confetto{position:absolute;font-size:23px;animation:fall .95s ease-out both}.shake{animation:shake .3s ease-in-out}@keyframes fall{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),100px) rotate(150deg);opacity:0}}@keyframes bob{50%{transform:translateY(-7px) rotate(2deg)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(max-width:760px){.topbar{padding:18px 20px 0}main{padding:25px 20px}.home{gap:25px}.setup-card{padding:22px}h1{font-size:35px}.home-monkey{height:245px}.home-monkey img{width:255px;height:255px;left:0}.char-one{left:-7px}.char-two{right:-8px}.monkey-bubble{left:19px;font-size:11px}.level{gap:9px;padding:12px 9px}.level small{font-size:9px}.level-icon{width:30px;flex-shrink:0}}
@media(max-width:600px){.topbar{padding:16px 18px 0}.brand{font-size:18px}.brand-mark{height:35px;width:34px;font-size:23px;border-radius:10px}.brand small{font-size:8px;margin-top:4px}.icon-button{width:35px;height:35px;font-size:21px}nav{gap:9px}main{padding:25px 19px}.home{display:block;max-width:430px;margin:auto}.welcome{height:201px;position:relative}.eyebrow{font-size:10px;padding:3px 8px}.welcome h1{font-size:31px;line-height:1.42;margin-top:19px;letter-spacing:-.8px}.home-monkey{position:absolute;right:-11px;top:10px;width:180px;height:174px}.home-monkey img{width:193px;height:193px;left:0;top:-6px}.floating-char{width:30px;height:34px;font-size:22px;border-radius:7px;box-shadow:0 2px 0 var(--ink)}.char-one{top:30px;left:12px}.char-two{top:7px;right:-1px}.monkey-bubble{font-size:9px;left:15px;bottom:0;white-space:nowrap;padding:3px 10px}.record{position:absolute;bottom:1px;margin:0;gap:6px}.record>span{font-size:27px}.record strong{font-size:11px}.record small{font-size:9px}.setup-card{margin-top:14px;padding:22px;box-shadow:4px 5px 0 var(--ink);border-radius:20px}.section-heading h2{font-size:16px}.section-heading>span{font-size:10px}.level{padding:12px;gap:13px}.level-icon{width:35px;height:38px;font-size:20px}.level strong{font-size:15px}.level small{font-size:10px}.setup-card>.primary{margin-top:22px;font-size:16px}.review-button{margin-top:14px}.sound-note{font-size:9px;margin-top:14px}footer{margin-top:5px;font-size:8px;padding:17px}.game-active .topbar{padding:11px 16px 0}.game-active main{padding:12px 16px 20px}.game-active .brand{font-size:16px}.game-active .brand-mark{width:30px;height:32px;font-size:21px}.game-nav{font-size:11px;margin-bottom:9px}.game-nav .text-button{font-size:12px}.game-nav .small{width:28px;height:28px;font-size:15px}.hud{font-size:10px;gap:6px}.hud>span{padding:2px 8px}.hud b{font-size:15px}.progress{margin-top:9px;gap:5px}.progress i{height:7px;width:24px}.game-stage{height:126px}.speech{top:53px;font-size:9px;max-width:104px;padding:5px 7px}.streak{top:47px;width:87px;right:0}.streak small{font-size:8px}.streak b{font-size:25px}.streak>span{font-size:8px}.question-card{border-radius:17px;padding:12px 13px 10px}.question-label{font-size:9px}.meaning{font-size:16px;min-height:43px;margin:10px 0}.slots{gap:8px}.slot{width:51px;height:55px;font-size:29px}.feedback{font-size:10px;min-height:16px;margin-top:9px}.tiles{gap:9px;margin-top:17px}.tile{height:52px;font-size:28px;border-radius:10px}.tile kbd{font-size:9px;left:5px;top:3px}.game-actions{margin-top:11px}.hint-button{font-size:11px}.keyboard-note{font-size:8px}.learning{padding:14px;margin-top:16px;font-size:12px}.learn-top strong{font-size:20px}.learn-top>span{font-size:9px}.pinyin{font-size:10px}.results h1{font-size:28px}.result-monkey{height:150px;width:150px}.result-stats{padding:18px 7px}.result-stats b{font-size:29px}.result-stats span{font-size:10px}}
@media(max-height:740px) and (max-width:600px){.game-active .topbar{padding-top:9px}.game-active main{padding-top:7px}.game-nav{margin-bottom:6px}.game-stage{height:100px}.speech{top:37px}.streak{top:31px}.question-card{padding-top:10px}.meaning{font-size:15px;min-height:39px;margin:8px 0}.slot{height:48px;width:47px;font-size:27px}.feedback{margin-top:8px}.tiles{margin-top:15px;gap:8px}.tile{height:46px;font-size:27px}.game-actions{margin-top:8px}.learning{margin-top:13px}.question-label{font-size:8px}}
@media(max-width:360px){.topbar{padding-left:15px;padding-right:15px}.game-active main{padding-left:13px;padding-right:13px}.welcome h1{font-size:27px}.home-monkey{right:-7px;width:157px}.home-monkey img{width:174px;height:174px;top:7px}.char-two{right:-4px}.monkey-bubble{left:4px}.setup-card{padding:19px}.level{gap:10px}.level small{font-size:9px}.streak{width:75px}.speech{max-width:91px;font-size:8px}.meaning{font-size:14px}.slot{width:44px;height:47px}.keyboard-note{font-size:7px}.hud>span{padding:2px 7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* English orchard: flexible 3–8-letter slots, picture/audio clue and examples. */
:root{--paper:#f5f8ea;--green:#c2e5c8;--yellow:#ffe08b}.brand-mark{font-family:Georgia,serif}.game{max-width:570px}.slots{gap:6px}.slot{flex:0 1 52px;min-width:0;height:58px;font-family:Arial,sans-serif;font-size:31px}.word-clue{display:flex;align-items:center;justify-content:center;gap:15px;margin:10px 0 7px}.word-clue>span{font-size:39px;line-height:1.2}.word-clue>div{text-align:left}.word-clue .meaning{font-size:20px;min-height:0;margin:0;display:block}.word-clue #clue-topic{font-size:10px;color:#72846b}.listen-button{background:#e2eed5;border:1.5px solid #819970;border-radius:20px;padding:6px 15px;font-size:12px;font-weight:800;min-height:34px;box-shadow:0 2px 0 #c0cdae}.listen-button:hover:not(:disabled){background:#d3e5c1}.listen-button:disabled{opacity:.5}.voice-status{font-size:10px;min-height:16px;color:#718166;margin:6px 0 9px;line-height:1.5}.learn-top strong{font-family:Arial,sans-serif;font-size:29px;letter-spacing:1px}.learning .listen-button{margin-top:8px;font-size:11px}.listen-button.secondary{background:#fff4d6;border-color:#cdbb83;box-shadow:0 2px 0 #dfd2ad}.example-zh{margin-left:48px!important;font-size:11px;color:#849176}.example [lang=en]{font-size:16px;line-height:1.5}.learning .example{margin-bottom:2px}.welcome h1{font-size:43px}.tile .char{font-family:Arial,sans-serif}.slot.empty:after{font-size:21px}.sound-note{font-size:10px}
@media(max-width:600px){.game-active main{padding-left:14px;padding-right:14px}.question-card{padding-left:11px;padding-right:11px}.slots{gap:4px}.slot{flex-basis:46px;height:45px;font-size:25px;border-radius:8px}.word-clue{margin:8px 0 5px;gap:12px}.word-clue>span{font-size:32px}.word-clue .meaning{font-size:18px}.listen-button{font-size:11px;padding:5px 12px;min-height:33px}.voice-status{font-size:9px;margin:6px 0 8px}.game-stage{height:108px}.speech{top:41px}.streak{top:35px}.welcome h1{font-size:30px}.example [lang=en]{font-size:14px}.learn-top strong{font-size:27px}.slot.empty:after{font-size:18px}}
@media(max-width:360px){.slot{font-size:22px;height:39px;border-width:1.5px}.slots{gap:3px}.word-clue .meaning{font-size:16px}.welcome h1{font-size:26px}.game-stage{height:98px}.speech{top:36px}.streak{top:30px}.learn-top{align-items:flex-start}.learn-top>span{white-space:normal;max-width:110px}.example-zh{margin-left:0!important}}
@media(max-height:740px) and (max-width:600px){.game-stage{height:89px}.speech{top:30px}.streak{top:25px}.word-clue{margin:6px 0 4px}.word-clue>span{font-size:28px}.voice-status{margin:4px 0 6px}.slot{height:39px}.tile{height:44px}.game-actions{flex-wrap:wrap}.game-active .question-label{font-size:9px}}

@media(max-width:360px){.welcome h1{font-size:24px}.home-monkey{width:145px;right:-5px}.home-monkey img{width:160px;height:160px;top:13px}.monkey-bubble{left:-7px;font-size:8px}}

/* Learning garden dashboard. Game and character layout keep their own canvas. */
.voice-settings-button{border:1.5px solid #66805a;border-radius:20px;background:#fffef6;font-size:12px;font-weight:650;padding:0 13px;min-height:36px;box-shadow:0 2px 0 #66805a}
.voice-advanced{margin-top:15px;color:#738766;font-size:11px}.voice-advanced summary{cursor:pointer;padding:8px 0}.voice-advanced .voice-field{margin-top:8px}.voice-footnote a{color:#5f7c4d;text-underline-offset:2px}
#voice-dialog .voice-example{font:14px/1.6 Arial,sans-serif;color:#617b52;margin:9px 0 0}
#voice-dialog{max-width:425px;border:1px solid #a8b998;box-shadow:0 12px 40px #254e3c26;padding:27px}
#voice-dialog h2{font-size:21px;color:#31583f}#voice-dialog .voice-intro{font-size:12px;color:#869579;margin:12px 0 22px;line-height:1.8}
.voice-field{display:block;font-size:12px;color:#5c7750;margin-top:18px;font-weight:650}.voice-field select{display:block;width:100%;margin-top:9px;padding:11px;border:1px solid #b9c9a8;background:#f7f9ef;border-radius:10px;color:#4f6b42;font-size:12px;min-height:43px}.voice-field select:focus-visible{outline:3px solid #477bd0;outline-offset:3px}
#voice-dialog .voice-current{font-size:10px;color:#94a184;margin:7px 0 21px;overflow-wrap:anywhere}.voice-rates{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:10px}.voice-rates button{border:1px solid #d7e1cb;border-radius:11px;padding:11px;background:#fffef6;font-size:14px;font-weight:650;color:#758967}.voice-rates button small{display:block;font-size:10px;font-weight:400;margin-top:3px;color:#9ba68e}.voice-rates button.selected{background:#edf3df;border-color:#89a170;box-shadow:0 2px 0 #b5c69c;color:#3f6334}
.voice-samples{margin-top:24px;padding:16px;border-radius:13px;background:#f0f4e6;text-align:center}.voice-samples>span:first-child{font:700 24px Arial,sans-serif;letter-spacing:.5px;color:#466a38}.voice-samples>span:nth-child(2){font-size:10px;color:#8b9b77;margin-left:9px}.voice-samples>div{display:flex;justify-content:center;gap:11px;margin-top:13px}.voice-samples .listen-button{font-size:11px;padding:5px 11px}#voice-dialog .voice-preview-status{font-size:11px;color:#7f926a;line-height:1.8;min-height:34px;text-align:center;margin:12px 0 6px}#voice-dialog .voice-footnote{font-size:9px;line-height:1.8;color:#a0aa91;border-top:1px solid #e1e8d6;padding-top:13px;margin:12px 0 0}#voice-unmute{display:block;margin:auto;font-size:12px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.voice-settings-button{font-size:11px;padding:0 10px;min-height:33px}.topbar nav{align-items:center;gap:8px}#voice-dialog{padding:23px;max-height:86svh}#voice-dialog h2{font-size:19px}}
:root{--garden:#254e3c;--muted:#758374;--paper:#f7f8f0}
body{background-size:22px 22px;background-image:radial-gradient(#9cb9a21b .8px,transparent .8px)}
button:disabled{opacity:.48}button.primary:disabled{box-shadow:none;transform:none}
.topbar{max-width:1180px;padding:27px 32px 0}.brand{color:var(--garden);font-size:21px}.brand small{letter-spacing:2px;font-weight:500}.brand-mark{background:#d4e7b9;border-color:#355b40;box-shadow:2px 3px 0 #355b40}
main{max-width:1180px;padding:32px 32px 40px}.home{display:block;max-width:none;margin:0}.home-heading{display:flex;align-items:center;justify-content:space-between;margin:1px 0 22px;gap:15px}
.home-heading .eyebrow{font-size:9px;letter-spacing:1.8px;color:#648467;background:none;border:0;box-shadow:none;padding:0;transform:none}.home-subtitle{font-size:12px;color:var(--muted)}
.hero-grid{display:grid;grid-template-columns:1.38fr 1fr;gap:25px}.welcome{position:relative;min-height:407px;height:auto;background:#e9efdc;border:1px solid #d6dfc7;border-radius:25px;overflow:hidden;padding:35px 31px}
.welcome:before{content:'';position:absolute;width:300px;height:300px;right:-70px;top:32px;background:#dce7ca;border-radius:50%;opacity:.7}.hero-copy{position:relative;z-index:1;pointer-events:none}.hero-kicker{font-size:11px;letter-spacing:2px;color:#6d8561}.welcome h1{font-size:43px;line-height:1.45;letter-spacing:-1.3px;margin:15px 0 14px;color:var(--garden)}.welcome h1 span{background:linear-gradient(transparent 70%,#e6c86e80 70%)}.hero-copy p{font-size:12px;line-height:1.9;color:#76856c;margin:0}
.home-monkey{position:absolute;width:255px;height:290px;right:-2px;top:49px;max-width:none}.home-monkey img{left:0;top:0;width:265px;height:265px}.floating-char{border:1.5px solid #5e7852;width:36px;height:39px;font-size:25px;box-shadow:0 3px 0 #5e7852}.char-one{left:24px;top:60px}.char-two{right:12px;top:24px}.monkey-bubble{left:35px;bottom:13px;font-size:10px;padding:5px 12px;border:1px solid #abb995;box-shadow:0 2px 0 #bdcba6;transform:rotate(-3deg);white-space:nowrap}.record{position:absolute;left:31px;bottom:26px;margin:0;gap:9px;z-index:1}.record>span{font-size:31px;color:#ad984c}.record strong{font-size:11px;font-weight:650;color:#5a7152}.record small{font-size:9px;color:#839176}
.daily-card{background:#fffef9;border:1px solid #dce1cf;border-radius:25px;padding:26px 27px;box-shadow:0 5px 14px #334c3910}.daily-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.daily-tag{border:1px solid #d1ddbf;border-radius:20px;background:#edf3df;padding:3px 10px;font-size:10px;color:#5c7950;font-weight:700}.daily-top time{font-size:10px;color:#8b927e}.daily-card h2{font-size:23px;letter-spacing:-.5px;margin:17px 0 3px;color:var(--garden)}.daily-description{font-size:10px;color:#87927a;margin:0}.daily-counter{display:flex;justify-content:space-between;align-items:baseline;margin:13px 0 7px}.daily-counter b{font-size:37px;line-height:1.3;color:var(--garden);font-weight:750}.daily-counter>span:first-child>span{font-size:16px;color:#9aa58d}.daily-counter>span:last-child{font-size:10px;color:#939a86}.daily-meter{height:7px;border-radius:5px;background:#edf0e3;overflow:hidden}.daily-meter>span{display:block;height:100%;width:0;border-radius:5px;background:#7f9f65;transition:width .3s}
.daily-card .primary{margin-top:18px;background:#31583f;color:#fffdf1;border:1px solid #254b32;box-shadow:0 3px 0 #1d3926;border-radius:11px;font-size:14px;min-height:46px;padding:10px}.daily-card .primary:hover:not(:disabled){background:#40694d}.daily-note{font-size:9px;color:#8b947d;line-height:1.7;min-height:31px;margin:9px 0 12px}.week-heading{display:flex;justify-content:space-between;font-size:9px;color:#8e9781;margin:2px 0 9px}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-day{text-align:center;font-size:9px;color:#9da58f}.week-day b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f1f3e9;border:1px solid transparent;margin:0 auto 4px;font-size:15px;font-weight:500}.week-day.today b{border-color:#9db78b;color:#648353}.week-day.practiced b{background:#deebc9;color:#4c713c}.week-day.today>span{font-weight:700;color:#6b855b}.is-complete .daily-tag{background:#e2edcc}.is-complete .daily-meter>span{background:#799853}
.learning-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 36px;padding:17px 0;border:1px solid #e0e5d6;border-radius:16px;background:#fffef87d}.learning-stats>div{display:flex;gap:14px;align-items:center;justify-content:center}.learning-stats>div+div{border-left:1px solid #e0e5d6}.stat-icon{display:grid;place-items:center;background:#eef1de;width:39px;height:39px;border-radius:12px;color:#829453;font-size:23px}.learning-stats>div:nth-child(2) .stat-icon{background:#faefd5;color:#b89747}.learning-stats>div:nth-child(3) .stat-icon{background:#efe9dc;color:#a88d64}.learning-stats b{font-size:23px;line-height:1.2;color:#34573e;font-weight:750;display:block}.learning-stats div>div>span{display:block;font-size:10px;color:#8b957f;margin-top:3px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.section-title>div{display:flex;gap:10px;align-items:center}.section-title h2{margin:0;font-size:18px;font-weight:750;letter-spacing:-.4px;color:var(--garden)}.section-number{font-size:10px;letter-spacing:1px;color:#98a284;border:1px solid #dce3ce;border-radius:6px;padding:1px 5px}.section-title>span{font-size:10px;color:#8d977f}.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.pack-card{display:block;text-align:left;background:#fffef9;border:1.5px solid #dce2cf;border-radius:18px;padding:21px 22px 16px;transition:border-color .15s,background .15s,box-shadow .15s;min-width:0}.pack-card:hover{border-color:#93a87a}.pack-card.selected{border-color:#66824f;background:#f0f4e5;box-shadow:0 3px 0 #9eae82}.pack-card-top{display:flex;justify-content:space-between;align-items:center}.pack-symbol{display:grid;place-items:center;border-radius:12px;background:#e0ebcb;color:#658646;width:42px;height:42px;font-size:23px;font-weight:750}.pack-card:nth-child(2) .pack-symbol{background:#e6eccb;color:#8c964a}.pack-card:nth-child(3) .pack-symbol{background:#f6e7d9;color:#b78b65}.pack-count{font-size:10px;color:#8a977a;border-radius:20px;padding:2px 9px;border:1px solid #dfe5d1}.pack-card h3{margin:15px 0 4px;font-size:17px;color:#385936}.pack-card p{margin:0;font-size:10px;color:#8b957e}.pack-examples{font-family:Georgia,serif;font-size:14px;letter-spacing:.3px;color:#84966f;margin:12px 0 17px}.pack-progress{height:4px;background:#e9eddf;border-radius:3px;overflow:hidden}.pack-progress-fill{display:block;width:0;height:100%;background:#7d9c60;border-radius:3px}.pack-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:9px;color:#8b987a}.pack-check{display:grid;place-items:center;width:18px;height:18px;border:1px solid #d4ddc3;border-radius:50%;color:transparent}.pack-card.selected .pack-check{background:#78935c;color:white;border-color:#78935c}
.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px;align-items:start}.home .setup-card,.review-card{background:#fffef9;border:1px solid #dce2cf;border-radius:20px;padding:26px;box-shadow:none;min-width:0}.home .setup-card:before{display:none}.home .setup-card{margin:0}.topic-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0}.topic-row label{font-size:12px;color:#738166}.topic-row select{border:1px solid #d6dfc7;border-radius:8px;color:#537043;padding:7px 26px 7px 10px;background:#f6f8ed;font:12px system-ui;max-width:60%;min-height:35px}.topic-row select:focus-visible{outline:3px solid #477bd0;outline-offset:3px}.difficulty-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#718263;margin:0 0 11px;gap:12px}.difficulty-label>span{font-size:9px;color:#a0a68e}.home .levels{gap:10px}.home .level{border:1px solid #e1e6d5;padding:11px 13px;gap:13px;border-radius:11px}.home .level.selected{background:#f0f4e5;border-color:#99ac7c;box-shadow:0 2px 0 #c5d3ad}.home .level-icon{font-family:Georgia,serif;font-size:20px;width:32px;height:35px;font-weight:500;border-radius:8px;background:#e6edcf}.home .level strong{font-size:13px;font-weight:700}.home .level small{font-size:10px;margin-top:2px}.home .level i{width:14px;height:14px;border-width:1px}.home .level.selected i{border:4px solid #79935f;background:#fff9db}.home .level:nth-child(2) .level-icon{background:#f4ebcf}.home .level:nth-child(3) .level-icon{background:#f4e3d8}.pool-count{font-size:10px;color:#8b977c;min-height:16px;margin:15px 0 8px}.home .setup-card>.primary{margin-top:0;background:#f6db8a;border:1px solid #a89454;box-shadow:0 3px 0 #a89454;min-height:44px;font-size:14px}.home .setup-card>.primary:hover:not(:disabled){background:#f5d377}.home .sound-note{font-size:9px;margin:13px 0 0;color:#939d84}
.review-card .section-title{margin-bottom:17px}.section-title>.review-book-icon{font-size:23px;color:#9baa83}.review-intro{font-size:12px;line-height:1.9;color:#8a947d;margin:0 0 21px}.review-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0;border-top:1px solid #e6e9dc}.review-summary>div{display:flex;align-items:baseline;gap:8px}.review-summary>div>b{font-size:30px;line-height:1.2;color:#45633e}.review-summary>div>span{font-size:11px;color:#849174}.review-summary>span{font-size:9px;color:#9aa28b}.review-summary>span>b{font-weight:500;color:#7a8d67}.review-card .primary{background:#e6edda;border:1px solid #9bad84;box-shadow:0 3px 0 #9bad84;font-size:14px;min-height:44px;color:#4d6c3e;gap:8px}.review-card .primary:hover:not(:disabled){background:#dae5c8}.review-card #review-count{background:#d2dfbb;border-radius:20px;padding:0 8px;font-size:12px}.review-card .review-all{font-size:10px;display:block;margin:8px auto 0;color:#8c997b}.review-list{max-height:266px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bfcdb0 transparent;margin-top:13px}.review-item{display:grid;grid-template-columns:minmax(65px,.8fr) minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;text-align:left;background:#f8f9f0;border:1px solid #e5eadb;border-radius:9px;padding:10px 11px;margin:0 0 7px}.review-item:hover{border-color:#adbd96;background:#f1f5e8}.review-item strong{font-family:Arial,sans-serif;font-size:13px;font-weight:650;color:#4e6d3f;overflow-wrap:anywhere}.review-item>span{font-size:10px;color:#8c987d;overflow-wrap:anywhere}.review-item small{font-size:9px;white-space:nowrap}.due-label{color:#b49348}.waiting-label{color:#90a17b}.review-rule{font-size:9px;color:#a0a78f;border-top:1px dashed #e1e6d5;padding-top:13px;margin:14px 0 0;line-height:1.8}.review-empty{text-align:center;padding:16px 0 14px}.review-empty>span{display:block;color:#b6c39d;font-size:29px}.review-empty strong{font-size:12px;font-weight:600;color:#8b9b76;display:block}.review-empty p{font-size:10px;color:#a7ae96;margin:4px 0}.review-list:empty{display:none}footer{max-width:1116px;letter-spacing:1px}.results h1{letter-spacing:-.7px}
@media(min-width:1000px){.welcome h1{font-size:45px}.home-monkey{right:5px;top:50px;width:270px}.home-monkey img{width:280px;height:280px}.char-two{right:2px}.monkey-bubble{left:38px;bottom:1px}}
@media(max-width:1000px) and (min-width:761px){.hero-grid{grid-template-columns:1.1fr 1fr;gap:18px}.welcome{padding:27px 23px}.welcome h1{font-size:36px}.home-monkey{width:190px;height:218px;top:113px;right:3px}.home-monkey img{width:208px;height:208px}.char-one{left:9px;top:45px}.char-two{right:-1px;top:13px}.monkey-bubble{left:4px;bottom:-4px;font-size:9px}.record{left:23px}.daily-card{padding:24px 21px}.pack-card{padding:18px}.pack-card p{min-height:32px}.practice-grid{gap:18px}.home .setup-card,.review-card{padding:22px}.difficulty-label{display:block}.difficulty-label>span{display:block;margin-top:4px}}
@media(max-width:760px){.topbar{padding:22px 22px 0}main{padding:27px 22px 35px}.hero-grid{grid-template-columns:1fr}.welcome{min-height:292px;padding:28px}.welcome h1{font-size:39px;margin-top:10px}.home-monkey{width:245px;height:252px;top:17px;right:12px}.home-monkey img{width:245px;height:245px}.char-one{left:8px;top:60px}.char-two{right:3px;top:24px}.monkey-bubble{left:28px;bottom:4px}.record{left:28px;bottom:18px}.daily-card{padding:24px}.daily-counter{margin-top:10px}.daily-counter b{font-size:32px}.daily-card .primary{margin-top:15px}.daily-note{min-height:0;margin-bottom:17px}.pack-card{padding:16px}.pack-card h3{font-size:15px}.pack-card p{font-size:9px;min-height:29px}.pack-examples{font-size:12px}.pack-grid{gap:12px}.section-title>span{font-size:9px}.practice-grid{gap:17px}.home .setup-card,.review-card{padding:21px}.section-title h2{font-size:16px}.difficulty-label{display:block}.difficulty-label>span{display:block;margin-top:3px}.review-summary{flex-wrap:wrap}.home-subtitle{font-size:10px}}
@media(max-width:600px){.topbar{padding:19px 19px 0}.brand{font-size:19px}.brand small{font-size:9px}.brand-mark{width:36px;height:37px}.home-heading{margin-bottom:17px}.home-heading .eyebrow{font-size:7px;letter-spacing:1.1px}.home-subtitle{font-size:9px}main{padding:24px 18px 30px}.hero-grid{gap:16px}.welcome{height:auto;min-height:300px;padding:25px 23px;border-radius:20px}.hero-kicker{font-size:9px;letter-spacing:1.3px}.welcome h1{font-size:34px;line-height:1.5;margin-top:13px}.hero-copy p{font-size:10px;line-height:1.9}.home-monkey{right:-4px;top:48px;width:183px;height:210px}.home-monkey img{width:196px;height:196px;left:0;top:0}.floating-char{width:28px;height:30px;font-size:20px;border-radius:7px}.char-one{left:12px;top:41px}.char-two{right:0;top:4px}.monkey-bubble{font-size:8px;bottom:3px;left:1px;padding:4px 8px}.record{left:23px;bottom:19px;gap:7px}.record>span{font-size:25px}.record strong{font-size:10px}.record small{font-size:8px}.daily-card{padding:23px;border-radius:20px}.daily-card h2{font-size:22px}.daily-top time{font-size:9px}.daily-description{font-size:10px}.daily-note{font-size:9px;line-height:1.8}.week-day b{width:31px;height:31px}.learning-stats{margin:17px 0 28px;padding:16px 0;border-radius:13px}.learning-stats>div{gap:7px}.stat-icon{width:28px;height:32px;font-size:19px;border-radius:9px}.learning-stats b{font-size:20px}.learning-stats div>div>span{font-size:8px}.section-title{gap:8px;align-items:flex-start;margin-bottom:13px}.section-title>div{gap:7px}.section-title h2{font-size:16px}.section-title>span{font-size:8px;max-width:132px;text-align:right;line-height:1.8}.section-number{font-size:9px}.pack-grid{grid-template-columns:1fr;gap:11px}.pack-card{padding:16px 18px 13px;display:grid;grid-template-columns:53px 1fr;column-gap:13px;border-radius:14px}.pack-card-top{grid-row:1 / 4;display:flex;flex-direction:column;justify-content:flex-start;gap:7px;padding-top:2px}.pack-symbol{width:42px;height:42px;font-size:23px}.pack-count{padding:1px 6px;font-size:8px}.pack-card h3{margin:0 0 3px;font-size:16px}.pack-card p{font-size:9px;min-height:0}.pack-examples{margin:7px 0 12px;font-size:12px}.pack-progress{grid-column:2}.pack-bottom{grid-column:2;margin-top:6px;font-size:8px}.pack-check{width:15px;height:15px}.practice-grid{grid-template-columns:1fr;margin-top:27px;gap:18px}.home .setup-card,.review-card{padding:23px 21px;border-radius:17px}.topic-row{margin:19px 0}.difficulty-label{display:flex}.difficulty-label>span{margin:0;font-size:8px}.home .level{padding:12px}.home .level strong{font-size:14px}.home .level small{font-size:10px}.home .level-icon{width:34px;height:37px}.home .setup-card>.primary{font-size:14px;margin-top:0;min-height:45px}.home .sound-note{font-size:8px}.review-summary{flex-wrap:nowrap}.review-intro{font-size:11px}.review-summary>span{font-size:8px}.review-summary>div>span{font-size:10px}.review-rule{font-size:9px}.review-empty{padding:23px 0}.review-list{max-height:310px}.review-item>span{font-size:11px}.review-card .review-all{font-size:10px}.game-active main{max-width:1180px}}
@media(max-width:360px){.welcome{min-height:300px;padding:24px 19px}.welcome h1{font-size:30px}.home-monkey{width:157px;height:188px;top:58px;right:-4px}.home-monkey img{width:172px;height:172px}.char-one{left:9px;top:43px}.char-two{right:-1px;top:6px}.monkey-bubble{left:-8px;font-size:7px;bottom:-1px}.record{left:19px}.learning-stats>div{gap:5px}.stat-icon{display:none}.learning-stats b{font-size:22px}.home-heading{align-items:flex-start}.home-subtitle{max-width:96px;text-align:right}.daily-card{padding:21px}.daily-description{font-size:9px}.difficulty-label{display:block}.difficulty-label>span{display:block;margin-top:3px}.review-summary{flex-wrap:wrap}.section-title h2{font-size:15px}}

/* Device-local vocabulary library and import preview. */
.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px}.library-toolbar p{margin:0;font-size:13px;color:#6d7967}.library-toolbar>div{display:flex;align-items:center;gap:12px;flex-shrink:0}.library-button{border:1.5px solid #425f49;border-radius:10px;background:#e3eedc;padding:9px 16px;font:inherit;font-size:13px;font-weight:700;box-shadow:0 2px 0 #abc39c}.library-button:disabled{opacity:.5}.library-toolbar .text-button{font-size:12px;padding:8px 0;margin:0}.library-filters{display:flex;gap:14px;align-items:end;padding:17px 20px;border:1px solid #d5ddc9;background:#f0f2e4;border-radius:13px}.library-filters label{flex:1;min-width:0;font-size:11px;font-weight:700}.library-filters select,.library-dialog select{display:block;width:100%;margin-top:5px;border:1px solid #b8c8af;border-radius:8px;background:#fffef7;color:var(--ink);padding:9px 28px 9px 11px;font:inherit;font-size:13px;max-width:100%;text-overflow:ellipsis}.library-filters .text-button{flex-shrink:0;font-size:12px;padding:8px 0;margin:0}.library-note{color:#6d7967;font-size:11px;line-height:1.85}.library-toolbar+.library-filters+.library-note{margin:12px 0 18px}.custom-packs{margin-top:16px}.imported-pack .pack-symbol{background:#eee0b1}.pack-card h3,.pack-card p,.pack-examples{overflow-wrap:anywhere}.library-empty{background:#f0f2e4;border:1px dashed #b4c6a7;border-radius:13px;text-align:center;padding:22px;font-size:13px;color:#68775f}.library-dialog{width:min(700px,calc(100vw - 28px));max-width:700px;max-height:88svh;padding:27px;overflow-y:auto}.dialog-eyebrow{font-size:10px;letter-spacing:2px;color:#748564}.library-dialog h2{margin:0;font-size:22px}.library-dialog label{font-size:12px;font-weight:700;display:block;min-width:0}.library-dialog input:not([type=file]),.library-dialog textarea{display:block;width:100%;border:1px solid #b7c5ac;background:#fffef8;border-radius:8px;padding:10px;margin-top:6px;color:var(--ink);font:inherit;font-size:13px}.library-dialog textarea{resize:vertical;max-height:260px;min-height:100px}.import-source{display:flex;gap:16px;align-items:center;padding:14px;border:1px dashed #b8c8af;border-radius:12px;background:#f0f2e4;flex-wrap:wrap}.import-source a{font-size:12px}.file-label input{display:block;font-size:12px;margin-top:8px;max-width:100%}.import-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.textbook-field{grid-column:1 / -1}.import-paste{margin-top:14px}.import-table-wrap{overflow:auto;max-height:235px;border:1px solid #d4dcc9;border-radius:10px}.import-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.import-table th{background:#e7efdd;position:sticky;top:0;white-space:nowrap}.import-table td,.import-table th{padding:8px 11px;border-bottom:1px solid #e1e5d7;overflow-wrap:anywhere;max-width:250px;min-width:80px}.import-summary{font-weight:700;font-size:13px;margin-bottom:10px}.import-errors{white-space:pre-line;color:#9a4036;font-size:12px}.library-dialog #import-status,.library-dialog #manage-status{font-size:12px;overflow-wrap:anywhere}.manage-dialog{max-width:540px}.manage-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;align-items:center}.manage-actions .text-button{margin:0;padding:8px 0;font-size:12px}.danger{background:#f5ded4}.library-dialog .primary{font-size:14px}.slots.long-word{flex-wrap:wrap;max-width:630px;gap:7px;margin-left:auto;margin-right:auto}.slots.long-word .slot{flex:0 0 38px;width:38px;height:44px;font-size:25px}.pack-section .pack-grid:not(:has(>button:not([hidden]))){display:none}
@media(max-width:600px){.library-toolbar{display:block}.library-toolbar>div{margin-top:12px;gap:17px}.library-toolbar p{font-size:11px}.library-filters{padding:13px;gap:10px;flex-wrap:wrap}.library-filters label{flex-basis:40%;font-size:10px}.library-filters select{font-size:12px;padding-left:8px}.library-filters .text-button{font-size:11px;padding:0}.library-note{font-size:10px}.library-dialog{padding:20px;max-height:90svh}.library-dialog h2{font-size:19px}.library-dialog .dialog-head{gap:12px}.library-dialog .dialog-head .icon-button{flex-shrink:0}.import-fields{grid-template-columns:1fr;gap:12px}.textbook-field{grid-column:auto}.library-dialog input[type=file]{font-size:11px;width:100%}.import-source{display:block}.import-source a{display:inline-block;margin-top:12px}.slots.long-word{gap:5px}.slots.long-word .slot{flex-basis:30px;width:30px;height:37px;font-size:22px}.custom-packs{margin-top:11px}}

/* Ready-to-use grade packs share the existing practice and progress system. */
.library-tabs{display:flex;gap:6px;padding:5px;background:#edf0e1;border:1px solid #d6dfc9;border-radius:13px;margin:18px 0}.library-tabs button{flex:1;border:0;border-radius:9px;background:transparent;font-size:13px;font-weight:700;padding:11px 8px}.library-tabs button[aria-selected=true]{background:#fffef7;box-shadow:0 2px 4px #334d3a18;color:#315a3e}.resource-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:19px 0}.resource-preview{background:#f0f4e8;border:1px solid #cbd9bb;border-radius:16px;padding:22px}.resource-badge{display:inline-block;border-radius:6px;background:#deebce;padding:3px 9px;color:#4c6b3c;font-size:10px;font-weight:700}.resource-preview h3{font-size:23px;margin:13px 0 2px;line-height:1.4}.resource-preview>p{font-size:12px;margin:6px 0;color:#6d7967}.resource-preview .resource-count{font-weight:700;color:#42643c;margin:15px 0}.resource-words{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:13px 0 18px}.resource-words>span{display:flex;flex-direction:column;background:#fffef8;padding:10px 8px;border:1px solid #e0e7d4;border-radius:9px;min-width:0}.resource-words b{font-size:14px;overflow-wrap:anywhere}.resource-words small{font-size:10px;color:#728166;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-download{display:inline-block;font-size:12px;margin:4px 0 16px}.resource-provenance{margin:15px 0 5px}.resource-source{background:#eef2e4;border-radius:10px;padding:12px 15px;overflow-wrap:anywhere}.resource-source a{white-space:nowrap}.matched-resource-offer{padding:14px;background:#e8f0dc;border:1px solid #cadabb;border-radius:11px;margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.matched-resource-offer>span{font-size:12px}.matched-resource-offer button{flex-shrink:0}.library-toolbar{flex-wrap:wrap}.library-toolbar>div{flex-shrink:1}.library-toolbar>p{flex:1;min-width:220px}
@media(max-width:600px){.library-tabs button{font-size:12px;padding:10px 6px}.resource-preview{padding:17px}.resource-preview h3{font-size:19px}.resource-words{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resource-filters{gap:12px}.resource-words b{font-size:13px}.matched-resource-offer{display:block}.matched-resource-offer button{margin-top:10px;font-size:11px}.library-toolbar>div{gap:13px}.library-toolbar .library-button{padding:9px 11px;font-size:12px}.library-toolbar .text-button{font-size:11px}}

/* Sharing */
.share-button{border:1.5px solid #66805a;border-radius:20px;background:#deebd2;padding:0 13px;min-height:36px;font-size:12px;font-weight:750;box-shadow:0 2px 0 #66805a}
.share-dialog{text-align:center;max-width:440px}.share-dialog .dialog-head{text-align:left}.share-dialog .dialog-head button{flex-shrink:0}.share-mark{position:relative;display:grid;place-items:center;margin:25px auto 20px;width:66px;height:66px;border:2px solid #436148;border-radius:20px;background:#c9dfbb;font-size:39px;font-weight:900;transform:rotate(-8deg);box-shadow:3px 4px 0 #7e956c}.share-mark span{position:absolute;right:-9px;bottom:-9px;font-size:28px;color:#946f37;line-height:1}.share-dialog h2{font-size:24px;margin:0 0 10px}.share-intro{color:#6d7967;font-size:13px;line-height:1.9}.share-dialog label{display:block;text-align:left;font-size:11px;font-weight:700;margin-bottom:6px}.share-dialog input{width:100%;min-width:0;padding:11px;border:1px solid #b8c8af;border-radius:8px;background:#f3f6e9;color:#45654e;font-size:12px;text-overflow:ellipsis}.share-local{margin-top:24px;padding:17px 12px;background:#f0f2e4;border:1px dashed #b8c8af;border-radius:12px}.share-local strong{font-size:14px}.share-local p{font-size:12px;color:#6d7967;margin:7px 0 0}.share-dialog .primary{font-size:14px}.share-dialog .text-button{font-size:12px;margin:8px auto 0}.share-footnote{font-size:10px;color:#7a846e;line-height:1.85;margin:18px 0 0}#share-status{font-size:12px;overflow-wrap:anywhere}#share-status:empty{display:none}
@media(max-width:600px){.topbar{gap:8px}.topbar nav{gap:6px;align-items:center}.topbar .brand{font-size:17px;gap:7px;flex-shrink:0}.topbar .brand-mark{width:30px;height:34px;font-size:22px;border-radius:10px}.topbar .brand small{font-size:8px;letter-spacing:2px;margin-top:4px}.topbar nav .icon-button{width:32px;height:32px;font-size:19px}.topbar .voice-settings-button,.topbar .share-button{padding:0 8px;min-height:32px;font-size:11px}.share-dialog h2{font-size:21px}}

.resource-filters{grid-template-columns:1fr 1.65fr .8fr}.resource-filters label{min-width:0}
@media(max-width:600px){.resource-filters{grid-template-columns:1fr 1fr}.resource-filters label:nth-child(2){grid-column:1 / -1;grid-row:2}}

/* Site integration: keep the garden palette, improve readable text and actions. */
:root{--garden:#1f513e;--muted:#526551;--paper:#f6faf7;--ink:#29483a;--green:#d5eadc;--yellow:#ffe18a}
body{background-color:var(--paper)}
.welcome{background:#eaf3e6;border-color:#cfdfce}
.welcome:before{background:#dcebd4}
.brand-mark{background:#d5eadc;border-color:#047857;box-shadow:2px 3px 0 #047857}
.site-return{max-width:1180px;margin:0 auto;padding:16px 32px 0;font-size:12px}
.site-return a{color:#38634e;text-decoration:none}
.site-return a:hover{text-decoration:underline}
.topbar{padding-top:15px}
.daily-card .primary,.setup-card>.primary{background:#047857;color:#fff;border:1px solid #046448;box-shadow:0 3px 0 #065f46}
.daily-card .primary:hover:not(:disabled),.setup-card>.primary:hover:not(:disabled){background:#065f46}
.pack-card.selected{border-color:#047857;background:#edf7ef;box-shadow:0 3px 0 #8ab59b}
.pack-card.selected .pack-check{background:#047857;border-color:#047857;color:white}
.level.selected,.voice-rates button.selected{background:#e7f3e8;border-color:#568768}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #047857;outline-offset:4px}
.hero-kicker,.hero-copy p,.record small,.brand small,.daily-description,.daily-top time,.daily-counter>span:last-child,.daily-counter>span>span,.daily-footnote,.week-heading,.week-day small,.stats-strip small,.section-title p,.pack-card p,.pack-count,.pack-examples,.pack-progress-label,.level small,.pool-count,.sound-note,.difficulty-label span,.review-intro,.review-summary>div>span,.review-summary>span,.review-summary>span>b,.review-rule,.review-empty strong,.review-empty p,.review-card .review-all,.library-note,.library-toolbar p,.dialog-eyebrow,.question-label,.feedback,.voice-status,.keyboard-note,.source-link,.learn-top>span,.results>p,.results .local-note,.share-footnote,.share-intro,footer{color:#526551}
.review-item>span,.review-item small,.streak small,.streak>span,.tile kbd,.resource-words small,.voice-samples>span:nth-child(2),#voice-dialog .voice-preview-status,#voice-dialog .voice-footnote{color:#526551}
.daily-footnote,.pack-progress-label,.review-rule,.sound-note,.record small,.share-footnote,#voice-dialog .voice-footnote{font-size:11px}
.question-card.wrong .feedback{color:#98452f}
.question-card.complete .feedback{color:#2e6746}
@media(max-width:600px){.site-return{padding:12px 20px 0;font-size:11px}.topbar{padding-top:12px}.site-return a{display:inline-flex;align-items:center;min-height:30px}}
