:root{font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;color:#253d36;background:#f6f4ec;--green:#2c7255;--line:#dfe4d6;--ink:#253d36;--muted:#748171;--paper:#fffef9}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,summary:focus-visible{outline:3px solid #d89c44;outline-offset:4px}[hidden]{display:none!important}svg{display:block}button{user-select:none}.app{max-width:1120px;padding:0 32px;margin:auto}header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.brand{border:0;background:none;display:flex;gap:10px;align-items:center;text-align:left;padding:0}.brand svg{width:42px;height:54px}.brand b{font-size:24px;letter-spacing:-1px}.brand small{font-size:9px;display:block;letter-spacing:2px;color:var(--muted);margin-top:4px}.head-right{display:flex;align-items:center;gap:8px}.pill{padding:11px 14px;background:#f5e7c5;border:1px solid #e9d9af;border-radius:14px;font-size:13px;font-weight:800;white-space:nowrap}.quiet{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:13px;background:var(--paper);font-size:12px;font-weight:700}.quiet:hover{background:#edf1e4}.primary{border:0;border-radius:14px;background:var(--green);color:#fffdf3;min-height:48px;padding:14px 22px;font-size:14px;font-weight:800;box-shadow:0 4px 0 #205b43}.primary:hover{background:#245f46}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #205b43}.primary:disabled{opacity:.5}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--green);text-transform:uppercase}.hero{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:38px;padding:38px 0 30px}.hero h1{font-size:clamp(34px,4.6vw,52px);line-height:1.1;letter-spacing:-2px;margin:14px 0 18px;font-weight:800}.hero h1 em{font-style:normal;color:var(--green)}.hero p{font-size:14px;color:var(--muted);line-height:1.75;max-width:370px}.hero .hello{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#8a734d;margin-top:20px}.hello:before{content:'';width:7px;height:7px;border-radius:50%;background:#dca85c}.landscape{height:265px;border:1px solid #dce4cb;border-radius:30px;background:#eaf0dc;position:relative;overflow:hidden;transform:rotate(-1deg)}.landscape:before{content:'';position:absolute;width:500px;height:220px;border-radius:50%;background:#cfdfbc;bottom:-130px;left:-40px}.landscape:after{content:'';position:absolute;width:270px;height:160px;border-radius:50%;background:#b3cfa1;bottom:-110px;right:-30px}.landscape .mascot{position:absolute;width:140px;height:175px;bottom:22px;left:50%;transform:translateX(-50%);z-index:2}.bubble{position:absolute;z-index:3;background:#fffdf2;box-shadow:0 4px 12px #44583408;border:1px solid #e3e7d4;border-radius:16px;padding:11px 16px;font-size:17px;font-weight:800;transform:rotate(5deg)}.bubble small{display:block;font-size:9px;font-weight:600;margin-top:4px;color:var(--muted)}.bubble.one{top:27px;left:27px}.bubble.two{top:29px;right:22px;transform:rotate(-6deg)}.bubble.three{bottom:34px;right:19px;transform:rotate(4deg)}.spark{position:absolute;left:29px;bottom:36px;font-size:29px;color:#9caf6a}.section-top{display:flex;align-items:center;justify-content:space-between;margin:6px 0 16px;gap:10px}.section-top h2{margin:0;font-size:19px;letter-spacing:-.5px}.section-top span{font-size:11px;color:var(--muted)}.unit-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}.unit-card{border:1px solid var(--line);background:var(--paper);border-radius:19px;text-align:left;padding:16px 13px 14px;min-height:158px;position:relative;transition:transform .15s}.unit-card:hover{transform:translateY(-3px)}.unit-card[aria-pressed=true]{outline:2px solid #4c8560;outline-offset:1px;background:#f5f8eb}.unit-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;font-size:24px;background:var(--tint)}.unit-card strong{font-size:13px;display:block;margin-top:14px}.unit-card small{color:var(--muted);font-size:10px;display:block;margin-top:5px}.unit-card .bar{height:4px;background:#e5eadd;margin-top:13px;border-radius:5px;overflow:hidden;display:block}.bar i{height:100%;display:block;background:#83a372}.unit-card .tick{position:absolute;right:12px;top:12px;font-size:12px;color:#51825d}.launch{margin:25px 0 18px;border-radius:20px;padding:22px;background:#e6edd7;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #d9e3c6}.launch strong{display:block;font-size:18px;letter-spacing:-.5px}.launch p{font-size:12px;color:#72816a;margin:7px 0 0}.modes{display:flex;gap:8px;flex-wrap:wrap}.modes button{min-height:46px}.extras{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:0 2px 22px}.extras>p{font-size:11px;color:var(--muted);line-height:1.6}.extra-actions{display:flex;gap:8px}.extra-actions button{font-size:11px}.parent{border-top:1px solid var(--line);padding:19px 0 28px;font-size:12px;color:var(--muted)}.parent summary{cursor:pointer;font-weight:700;min-height:30px}.parent p{line-height:1.8;max-width:650px}.parent table{width:100%;border-collapse:collapse;font-size:11px}.parent th,.parent td{text-align:left;border-bottom:1px solid var(--line);padding:9px 6px}.danger{border:0;background:none;color:#9e654e;text-decoration:underline;font-size:11px;min-height:44px}.session{padding:22px 0 30px;max-width:820px;margin:auto}.session-head{display:flex;align-items:center;gap:12px}.back{width:40px;min-height:40px;font-size:19px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.session-head h2{font-size:15px;margin:0}.session-head small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.session-head .counter{margin-left:auto;font-size:12px;font-weight:800;white-space:nowrap;color:var(--muted)}.progress{margin:18px 0;height:6px;background:#e0e7d4;border-radius:8px;overflow:hidden}.progress i{height:100%;background:#82a46d;display:block;transition:width .2s}.panel{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:26px 28px 24px;box-shadow:0 12px 28px #33462d06;text-align:center;overflow-anchor:none}.panel .eyebrow{font-size:9px;letter-spacing:1.5px}.panel h1{font-size:clamp(23px,3.1vw,31px);line-height:1.25;letter-spacing:-.8px;margin:12px 0 6px}.instruction{font-size:12px;color:var(--muted);line-height:1.65;margin:0 0 14px}.visual{height:113px;max-width:210px;margin:14px auto 12px;display:grid;place-items:center;font-size:73px}.visual svg{height:100%;width:100%}.color-swatch{width:95px;height:95px;border-radius:28px;transform:rotate(-7deg);border:2px solid #263c3518;box-shadow:0 7px 0 #263c350b}.visual .number-visual{font-weight:900;font-size:72px;color:#638a58;letter-spacing:-4px}.visual .eraser{width:100px;height:57px;border-radius:10px;transform:rotate(-20deg);background:linear-gradient(90deg,#eba6a9 0 57%,#b3d8d8 57%);box-shadow:0 6px 0 #b6c1bc}.desk-svg{width:110px;height:95px}.word{display:block;font-size:40px;letter-spacing:-1.3px;font-weight:800;line-height:1.2;color:var(--green)}.translation{font-size:18px;font-weight:700;color:#8c7856;min-height:30px;margin:8px 0 10px}.translation button{font-size:12px;color:#72836b;min-height:40px;border:1px dashed #cbd7be;border-radius:12px;padding:8px 14px;background:#f7f9ef}.example{background:#f0f3e7;padding:12px 14px;border-radius:15px;max-width:440px;margin:16px auto;text-align:left}.example strong{font-size:13px;display:block}.example small{font-size:11px;color:var(--muted);display:block;margin-top:6px}.card-actions{display:flex;align-items:center;justify-content:center;gap:9px;margin:12px 0 0}.card-actions button{min-width:105px}.sound-note{font-size:10px;color:var(--muted);min-height:15px;margin:8px 0 0}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-width:550px;margin:19px auto 0}.answer{border:2px solid #e0e5d6;border-radius:15px;background:#f7f8ef;min-height:67px;font-size:20px;font-weight:800;padding:12px 8px;position:relative}.answer:hover:not(:disabled){border-color:#a2b996}.answer.correct{background:#e1edcf;border-color:#83ac6d;color:#3d713d}.answer.wrong{background:#fff0e2;border-color:#dda88b;color:#916951}.answer.hinted{border-color:#c3b25a;background:#faf2d5}.answer .key{font-size:9px;color:#93a08c;position:absolute;top:6px;left:8px}.feedback{font-size:12px;line-height:1.65;min-height:40px;display:grid;place-items:center;margin:15px 0 9px;color:#6c8162}.feedback.wrong{color:#97724d}.feedback.good{color:#3d784a;font-weight:700}.play-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:50px;margin-top:5px}.play-actions .hint{font-size:11px;color:#738367;background:none;border:0;min-height:44px}.play-actions .primary{min-width:160px}.hint-box{background:#f8f2dd;border:1px solid #e7dcad;border-radius:14px;padding:12px;font-size:12px;line-height:1.7;margin:11px 0;text-align:left}.question-word{font-size:31px;font-weight:800;color:var(--green);margin:13px 0}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px auto;max-width:560px}.match-column{display:flex;flex-direction:column;gap:10px}.match-card{min-height:59px;font-size:16px;font-weight:800;background:#f7f8ef;border:2px solid #e1e6d7;border-radius:14px;padding:12px 6px}.match-card.selected{border-color:#749e66;background:#e8eedb}.match-card.matched{border-color:#bad0a5;background:#ebf2df;color:#62865a}.match-card.wrong{border-color:#dfa888;background:#fff2e5}.column-label{font-size:10px;color:var(--muted);letter-spacing:1px;text-transform:uppercase}.session-note{font-size:10px;color:var(--muted);text-align:center;margin:18px 0 0}.result{padding:42px 0;text-align:center;max-width:700px;margin:auto}.result .mascot{width:100px;height:126px;margin:auto}.result h1{font-size:34px;letter-spacing:-1px;line-height:1.15}.result p{font-size:13px;line-height:1.8;color:var(--muted);max-width:460px;margin:12px auto}.result-stars{font-size:30px;letter-spacing:10px;color:#dba350;margin:17px 0}.result-stats{display:flex;justify-content:center;gap:34px;margin:25px 0 28px}.result-stats strong{display:block;font-size:26px}.result-stats small{font-size:10px;color:var(--muted)}.result-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.storage-note{background:#fff0d8;border:1px solid #e3cba1;border-radius:12px;font-size:11px;line-height:1.6;padding:12px;margin:14px 0}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#263e35;color:#fff9ec;padding:13px 19px;border-radius:14px;box-shadow:0 10px 28px #203b3525;font-size:12px;max-width:calc(100% - 28px);width:max-content;z-index:20;line-height:1.6}.modal{position:fixed;inset:0;background:#213d3566;display:grid;place-items:center;padding:20px;z-index:30}.dialog{max-width:390px;background:var(--paper);border-radius:24px;padding:26px}.dialog h2{font-size:21px;margin:0 0 12px}.dialog p{font-size:13px;line-height:1.7;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.small{font-size:10px;color:var(--muted)}html.integrated{overflow:hidden}body.integrated{overflow:hidden}body.integrated .app{padding:0 22px}body.integrated header{height:76px}body.integrated .hero{gap:22px;padding-top:26px}body.integrated .hero h1{font-size:38px}body.integrated .landscape{height:230px}body.integrated .unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.integrated .unit-card{min-height:125px}body.integrated .unit-card .unit-icon{float:left;margin-right:10px}body.integrated .unit-card strong{margin-top:4px}body.integrated .unit-card .bar{clear:both;margin-top:20px}body.integrated .launch{align-items:flex-start;flex-direction:column}.panel button,.unit-card,.primary,.quiet{scroll-margin:16px}
@media(max-width:760px){.app{padding:0 20px}.hero{gap:20px}.hero h1{font-size:36px}.landscape{height:230px}.bubble{font-size:14px;padding:9px 11px}.bubble.one{left:12px}.bubble.two{right:12px}.bubble.three{right:11px;bottom:18px}.landscape .mascot{width:120px}.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-card{min-height:140px}.launch{flex-direction:column;align-items:flex-start}.extras{align-items:flex-start;flex-direction:column}.session{padding-top:20px}.panel{padding:24px 22px}.parent table{font-size:10px}}
@media(max-width:480px){.app,body.integrated .app{padding:0 14px}header,body.integrated header{height:74px}.brand svg{width:33px;height:45px}.brand b{font-size:21px}.brand small{font-size:8px;letter-spacing:1.4px}.head-right .quiet{padding:8px 10px;font-size:10px}.pill{padding:10px;font-size:12px}.hero,body.integrated .hero{display:block;padding:25px 0 24px}.hero h1,body.integrated .hero h1{font-size:35px;max-width:320px;letter-spacing:-1.4px;margin:12px 0}.hero p{font-size:12px;line-height:1.7;max-width:310px;margin-bottom:0}.hero .hello{display:none}.landscape,body.integrated .landscape{height:160px;margin-top:24px;border-radius:23px}.landscape .mascot{height:126px;width:105px;bottom:9px}.bubble{font-size:14px;border-radius:12px;padding:8px 11px}.bubble small{font-size:8px}.bubble.one{top:19px;left:17px}.bubble.two{top:20px;right:17px}.bubble.three{bottom:17px;right:12px}.spark{font-size:20px;bottom:22px;left:30px}.section-top h2{font-size:17px}.section-top span{font-size:10px}.unit-grid,body.integrated .unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.unit-card,body.integrated .unit-card{min-height:121px;padding:14px}.unit-card .unit-icon,body.integrated .unit-card .unit-icon{float:left;margin-right:10px;width:36px;height:36px;font-size:22px}.unit-card strong,body.integrated .unit-card strong{font-size:12px;margin-top:3px}.unit-card small{font-size:9px}.unit-card .bar,body.integrated .unit-card .bar{clear:both;margin-top:22px}.unit-card .tick{right:9px;top:7px}.launch{padding:18px;margin:21px 0 13px}.launch strong{font-size:16px}.launch p{font-size:11px;line-height:1.7}.modes{width:100%;display:grid;grid-template-columns:1fr 1fr}.modes .primary{grid-column:1/-1}.modes button{font-size:12px;min-height:46px}.extras{gap:7px;padding-bottom:17px}.extra-actions{width:100%}.extra-actions button{flex:1}.parent{padding-top:16px}.panel{border-radius:21px;padding:21px 16px 18px}.session{padding:18px 0 24px}.session-head h2{font-size:13px}.progress{margin:15px 0}.panel h1{font-size:23px}.visual{height:94px;margin:12px auto 9px;font-size:65px}.color-swatch{width:82px;height:82px;border-radius:23px}.word{font-size:34px}.question-word{font-size:28px}.answer{font-size:17px;min-height:62px;overflow-wrap:anywhere}.choices{gap:9px;margin-top:15px}.feedback{font-size:11px;min-height:39px;margin:12px 0 6px}.play-actions .primary{min-width:135px;font-size:12px;min-height:46px;padding:12px 15px}.example{margin:13px auto}.match-card{font-size:14px;min-height:60px;overflow-wrap:anywhere}.match-grid{gap:10px;margin:16px auto}.session-note{font-size:9px;line-height:1.7}.result{padding-top:28px}.result h1{font-size:28px}.result-buttons{flex-direction:column}.result-buttons button{width:100%}.result p{font-size:12px}.result-stats{gap:25px}.head-right{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.theme-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:17px 0 22px}.theme-button{display:flex;align-items:center;gap:7px;min-height:54px;border:1px solid var(--line);border-radius:13px;background:#fffdf7;padding:10px;font-size:11px;font-weight:700;text-align:left}.theme-button>span:first-child{font-size:19px}.theme-button[aria-pressed=true]{background:#e2ebd3;border-color:#a4bc90}.topic-heading{margin-top:4px}.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.source-links a{color:#467453}.source-links span{font-size:10px}.word,.question-word{overflow-wrap:anywhere}.word{font-size:clamp(25px,4vw,40px)}.match-card{font-size:clamp(12px,2.5vw,16px)}
@media(max-width:760px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-button{min-height:56px;font-size:10px}.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.theme-grid{gap:7px;margin-bottom:21px}.theme-button{flex-direction:column;align-items:flex-start;gap:6px;font-size:10px;padding:10px;min-height:73px}.theme-button>span:first-child{font-size:21px}.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word{font-size:28px}.question-word{font-size:25px}.match-card{font-size:13px}.answer{font-size:15px}.visual{height:82px}.example{font-size:12px}.hero h1{font-size:34px}}
