:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#203c33;background:#f5f5ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1180px;margin:auto}header{padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:10px;align-items:center;font-size:27px;font-weight:850;letter-spacing:-1px;color:inherit;text-decoration:none}.brand-word{display:inline-flex;align-items:baseline;gap:0;font-size:36px;line-height:1;font-weight:850;letter-spacing:-1.5px;white-space:nowrap}.brand-g{display:inline-block;width:27px;height:48px;object-fit:contain;align-self:center;margin:0 -2px -5px -2px}.beta{font-size:9px;letter-spacing:1.6px;font-weight:700;margin-left:8px;color:#697a6a}nav{display:flex;align-items:center;gap:12px}main{padding:28px;min-height:75vh}footer{padding:30px 28px;font-size:12px;color:#657469}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;padding:45px 0 60px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:800;color:#61745a}h1{font-size:clamp(38px,5.5vw,68px);line-height:1.08;letter-spacing:-3px;margin:18px 0 24px;font-weight:750}h2{font-size:27px;letter-spacing:-.8px;margin:5px 0 18px}h3{font-size:18px;margin:5px 0 12px}p{line-height:1.65}p.lead{font-size:18px;max-width:520px;color:#637065}.muted,small{color:#637065}.hero-art{background:#e4ecd6;border-radius:90px 90px 35px 35px;min-height:380px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(2deg)}.planet{font-size:110px;filter:drop-shadow(0 15px 0 #294b3f15);transform:rotate(-12deg)}.float-card{padding:16px 22px;background:#fffdf4;border:1px solid #d4dfc5;border-radius:18px;box-shadow:0 8px 0 #244f400a;transform:rotate(-5deg);font-weight:650}.float-card:last-child{transform:rotate(3deg);margin-top:24px}.star{position:absolute;right:30px;top:35px;font-size:45px;color:#a67d28}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:#fffef8;border:1px solid #dfe3d6;border-radius:22px;padding:26px}.card p:last-child{margin-bottom:0}.card.tint{background:#eaf0df}.card.peach{background:#fae9dc}.card.lilac{background:#eae7f3}.icon{font-size:30px;margin-bottom:20px;display:block}.section{margin:34px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}button,.button{font:inherit;font-weight:650;background:#28533f;color:#fff;border:1px solid transparent;padding:12px 19px;border-radius:11px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}button.secondary,.button.secondary{background:#fffef8;color:#294a3b;border-color:#d6dece}button.danger{background:#fff0e8;color:#983c2f;border-color:#e4c8bd}button.small{font-size:12px;padding:8px 12px}.tag{font-size:11px;font-weight:650;padding:6px 10px;border-radius:20px;background:#e6edda;display:inline-block}.form{max-width:530px;margin:25px auto}label{display:block;font-size:13px;font-weight:650;margin:16px 0 6px}input,select,textarea{font:inherit;width:100%;border:1px solid #c9d3c2;border-radius:10px;padding:12px;background:#fff;color:#253e34}textarea{min-height:105px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;accent-color:#28533f}label.check{display:flex;gap:10px;align-items:flex-start;font-weight:450;line-height:1.5}a{color:#315d44}hr{border:0;border-top:1px solid #dce3d2;margin:26px 0}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;border-radius:12px;background:#233e33;color:white;padding:14px 22px;box-shadow:0 4px 24px #203c3322;z-index:10}#notice:empty{display:none}.error{background:#fff0e8;color:#922f26;padding:12px;border-radius:10px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.tabs button.active{background:#28533f;color:white}.tabs button{background:transparent;color:#294a3b;border-color:#d6dece}.empty{padding:40px 24px;text-align:center;border:1px dashed #bac8b0;border-radius:18px}.lesson-text{white-space:pre-wrap;line-height:1.8}.game{max-width:800px;margin:auto}.game-stage{background:#e8eedf;min-height:220px;border-radius:24px;padding:30px;text-align:center;margin:22px 0}.pizza{width:190px;height:190px;display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:24px auto;border-radius:50%;overflow:hidden;border:8px solid #b6864e;transform:rotate(-8deg)}.pizza button{border-radius:0;background:#f9da83;border:0;color:#80531d;font-size:25px}.pizza button.chosen{background:#e77952;color:white}.options{display:grid;gap:12px}.options button{background:#fffdf7;border:2px solid #d8e1cb;color:#2e4b3b;text-align:left}.options button.chosen{border-color:#28533f;background:#e5eed8}.progress{display:flex;gap:7px;margin:28px 0}.progress span{height:6px;flex:1;border-radius:5px;background:#dde5d4}.progress span.done{background:#648453}.result{font-size:21px;font-weight:700}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#edf0e6;padding:18px;border-radius:12px;max-height:480px;overflow:auto;font-size:13px}.welcome{font-size:36px;letter-spacing:-1.4px}.topic{padding:15px 0;border-bottom:1px solid #e0e5d8}.notice{padding:15px 18px;border-radius:12px;background:#eef0df;font-size:13px;line-height:1.6}.linkbox{overflow-wrap:anywhere}dialog{border:1px solid #d5dfcc;border-radius:22px;max-width:720px;width:92%;padding:28px;background:#fffef8;color:inherit}dialog::backdrop{background:#12291f77}@media(max-width:760px){header{padding:20px}.beta{display:none}main{padding:16px 20px}.hero{grid-template-columns:1fr;gap:25px;padding-top:20px}.hero-art{min-height:280px}.grid,.two{grid-template-columns:1fr}.hero h1{letter-spacing:-2px}.card{padding:22px}.welcome{font-size:30px}nav{font-size:12px;gap:7px}nav button{padding:8px 10px}}

.home-intro{display:block;padding:20px 0 24px}.home-intro h1{max-width:900px;font-size:clamp(26px,3.2vw,40px);line-height:1.22;letter-spacing:-.8px}.home-steps{list-style:none;padding:0;margin:0}.home-steps h2{font-size:23px;letter-spacing:-.5px}

/* Public island expedition: authored board, no external assets or dependencies. */
.island{background:#101f36;color:#e8f4f6;border-radius:26px;overflow:hidden;box-shadow:0 24px 70px #122c3330;margin:8px auto 28px;max-width:1160px}.island button{background:#b8f475;color:#132c2b;border-radius:10px;min-height:44px}.island button:focus-visible,.island a:focus-visible,.island-board:focus-visible{outline:3px solid #ffe28a;outline-offset:3px}.island-top{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 26px;border-bottom:1px solid #ffffff18;font-size:10px;letter-spacing:1.6px}.island-top a{color:#d5efef;font-size:14px;letter-spacing:0}.island-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;padding:48px}.island-kicker{display:block;color:#a9dd86;font-size:10px;font-weight:750;letter-spacing:2px}.island h1{font-size:clamp(32px,5vw,60px);letter-spacing:-2px;line-height:1.05;color:#f2fff1;margin:18px 0}.island p{line-height:1.65;color:#c6d7e3}.island-fine{font-size:12px;color:#9fb4c6!important}.island-intro button{margin-top:15px;font-size:17px;padding:16px 30px}.island-poster{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;background:radial-gradient(ellipse at 50% 42%,#3d6b64,transparent 65%),linear-gradient(#20304c,#173849);border-radius:160px 160px 24px 24px;overflow:hidden;text-align:center}.poster-stars{font-size:35px;color:#f4dd94;letter-spacing:20px}.poster-beacon{font-size:55px;line-height:1.1;filter:drop-shadow(0 0 25px #f6e995)}.poster-land{font-size:36px;background:#537955;border-radius:50%;padding:12px 28px;box-shadow:0 17px #364c43,0 27px 0 6px #172d3f;transform:rotate(-5deg)}.poster-water{color:#77cfc6;font-size:38px;margin-top:24px}.poster-label{font-size:9px;letter-spacing:2px;margin:20px;color:#bbd9d8}.island-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 30px 15px}.island-heading h1{font-size:34px;margin:8px 0}.island-stats{display:flex;gap:12px;flex-wrap:wrap}.island-stats span{background:#223950;padding:12px 15px;border-radius:12px;font-size:13px}.island-stats b{font-size:21px;color:#c8f799}.island-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:25px;padding:0 30px 30px}.island-weather{padding:13px 16px;background:#2c3e55;border-radius:12px 12px 0 0;font-size:12px;color:#e3d7a7}.island-board{display:grid;grid-template-columns:repeat(9,1fr);background:#2b827f;border:10px solid #284855;border-radius:0 0 16px 16px;padding:8px;gap:3px;box-shadow:inset 0 0 45px #133944;touch-action:manipulation}.island .island-tile{min-width:0;min-height:0;width:100%;aspect-ratio:1;border-radius:8px;background:#608a60;border:0;border-bottom:4px solid #395d48;padding:0;font-size:clamp(16px,2.8vw,31px);display:grid;place-items:center;transition:background .18s,transform .18s}.island-tile:nth-child(3n){background:#6d9568}.island .island-tile.water{background:#287d89;border-color:#21606f}.island .island-tile.site{background:#8b9b74;border:1px dashed #c6d6a6}.island .island-tile.robot{background:#d3ed8e;box-shadow:0 0 20px #cdf38b66;transform:translateY(-3px);border-bottom:4px solid #a0b85d}.island-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}.island-controls span{font-size:11px;color:#9eb9ca}.dpad{display:flex;gap:5px}.island .dpad button{padding:6px 13px;background:#2b455b;color:#fff;font-size:20px}.island #island-message{padding:15px;background:#203b48;border-left:3px solid #b8f475;border-radius:0 12px 12px 0;min-height:82px;margin:0;font-size:14px}.island-build h2{font-size:21px;margin:0}.island-build>p{font-size:12px;margin:5px 0 15px}.build-card{background:#20334b;border:1px solid #31475a;border-radius:14px;padding:14px;margin-bottom:10px}.build-card h3{margin:0;font-size:15px}.build-card p{font-size:12px;margin:8px 0;line-height:1.5}.build-card button{width:100%;padding:8px;font-size:12px}.build-card.built{border-color:#7eb778}.island button:disabled{cursor:default;opacity:.48}.island #forecast{font-size:12px;line-height:1.6;color:#c8dba9;margin:15px 0}.island #next-day{width:100%;background:#f8d58a}.island .island-reset{background:none;color:#b7ccda;width:100%;font-size:12px}.island-ending{max-width:760px;margin:auto;padding:40px}.ending-icon{display:block;font-size:65px;margin-bottom:15px}.island-ledger{padding:15px 20px;background:#20334b;border-radius:15px;max-height:220px;overflow:auto}.island-ledger p{font-size:12px;margin:5px}.transfer{display:grid;gap:10px}.island .transfer button{text-align:left;background:#263e53;color:#e6f5f2;border:1px solid #536b7c}.island .transfer button[aria-pressed=true]{border-color:#b8f475;background:#3b5b48}.island #transfer-feedback{min-height:52px}.island #skip-crystals{font-size:12px;background:#f8d58a;margin-top:10px}.island-ending h2{margin-top:30px}@media(max-width:800px){.island-intro{padding:25px;grid-template-columns:1fr}.island-poster{min-height:260px;grid-row:1}.poster-beacon{font-size:35px}.poster-land{font-size:26px}.poster-stars{font-size:20px}.poster-water{margin-top:10px}.island-top>span:nth-child(2){display:none}.island-layout{grid-template-columns:1fr;padding:0 14px 20px;gap:20px}.island-heading{padding:20px 15px;flex-wrap:wrap}.island-board{border-width:5px;padding:4px;gap:2px}.island .island-tile{font-size:clamp(17px,5vw,32px);border-radius:4px}.island-build{display:block}.island-heading h1{font-size:30px}.island-ending{padding:24px}.island-controls{flex-wrap:wrap}.island-top{padding:16px}.island-intro h1{font-size:42px}}
@media(prefers-reduced-motion:reduce){.island *{transition:none!important;animation:none!important}}
.island-board{position:relative;background-image:radial-gradient(#78c6bc33 1px,transparent 1px);background-size:12px 12px}.island .island-tile.lit{box-shadow:0 0 17px #f8e59b66;background:#99b77c}.island-board.storm{border-color:#485268}.island-board.storm:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:12px;background:repeating-linear-gradient(110deg,transparent 0 25px,#d4e9ff18 26px 27px,transparent 28px 55px);animation:island-rain 1.7s linear infinite}.island-tile.water{background-image:linear-gradient(135deg,#33949d44,transparent)!important}@keyframes island-rain{to{background-position:-40px 80px}}
.island-score{background:#253e49;border:1px solid #537164;border-radius:20px;padding:22px;margin:24px 0;text-align:center}.island-score>span{font-size:44px;color:#ffe194;letter-spacing:9px}.island .island-score h2{margin:10px 0;font-size:24px}.island-score p{font-size:12px}.warm-houses{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;font-size:38px}.warm-houses .warm{color:#ffe298;text-shadow:0 0 12px #ffe19488}.warm-houses .cold{color:#627d87}

/* Public multiplication game: authored CSS illustration and native controls. */
.space-game{background:#11192e;color:#f1f5ff;border-radius:28px;padding:28px;overflow:hidden;background-image:radial-gradient(circle at 85% 10%,#344565 0,transparent 35%);margin:12px 0 40px}.space-game h1{color:#fff;font-size:clamp(2rem,5vw,4.5rem);line-height:1.05;letter-spacing:-.045em;margin:16px 0 24px}.space-game h2{color:inherit}.space-game p{line-height:1.6}.space-top{display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.1em}.space-top a{color:#cfddf6}.space-eyebrow{color:#b6ed99;font-size:12px;font-weight:800;letter-spacing:.13em}.space-intro{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;padding:45px 18px}.space-intro p{max-width:410px;font-size:18px}.space-game button{background:#b6ed99;color:#122321;border:0;border-radius:14px;min-height:52px;font-weight:800;cursor:pointer}.space-game button:hover{background:#d3ffc1}.space-game button:focus-visible,.space-game input:focus-visible,.space-game a:focus-visible{outline:3px solid #ffcf75;outline-offset:4px}.space-game .space-small{font-size:13px;color:#b8c7df}.space-poster{height:340px;position:relative;display:grid;place-items:center}.space-planet{position:absolute;bottom:30px;background:#b6ed99;border-radius:50%;width:270px;height:110px;display:flex;justify-content:center;align-items:flex-start;box-shadow:0 20px 0 #6c9c72,0 35px 80px #8bcd8733}.space-orbit{width:310px;height:310px;border:1px dashed #8dacc866;border-radius:50%;transform:rotate(-25deg)}.space-rocket{position:absolute;font-size:100px;top:10px;left:35px;transform:rotate(12deg)}.space-signal{position:absolute;top:135px;right:0;font-size:11px;background:#26344e;padding:12px;border-radius:12px}.space-bot{display:inline-flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:42px;height:46px;border-radius:12px;background:var(--bot);border:3px solid #25394f;box-shadow:0 5px 0 #25394f;transform:rotate(-6deg);margin:8px;color:#122321}.space-bot:before{content:'';height:10px;width:4px;background:var(--bot);position:absolute;top:-11px}.space-bot i{background:#142d3f;width:27px;height:12px;border-radius:5px;position:relative}.space-bot i:after{content:'••';color:white;position:absolute;letter-spacing:7px;left:4px;top:-9px}.space-bot b{font-size:15px;line-height:14px}.space-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}.space-heading h1{font-size:clamp(1.7rem,3vw,2.7rem);margin:8px 0 20px}.space-count{white-space:nowrap;font-weight:bold;color:#b6ed99}.space-progress{display:flex;gap:5px}.space-progress i{height:6px;background:#39445c;flex:1;border-radius:6px}.space-progress .rescued{background:#b6ed99}.space-stage{height:190px;position:relative;overflow:hidden;margin:20px 0;border-radius:18px;background:radial-gradient(circle at 12% 22%,#fff 1px,transparent 2px),radial-gradient(circle at 80% 32%,#fff 1px,transparent 2px),radial-gradient(circle at 55% 16%,#fff 1px,transparent 2px),linear-gradient(130deg,#1c2c4b,#243654)}.space-moon{position:absolute;right:18%;top:20px;width:45px;height:45px;border-radius:50%;background:#f7edc6;box-shadow:0 0 50px #f7edc633}.space-ground{height:90px;width:115%;position:absolute;bottom:-50px;left:-5%;border-radius:50%;background:var(--planet)}.space-waiter{position:absolute;right:16%;bottom:36px;display:flex;align-items:center}.space-waiter>span:last-child{font-size:11px;background:#11192e;padding:8px;border-radius:10px}.space-ship{position:absolute;left:12%;bottom:35px;font-size:65px;z-index:2}.launched .space-ship{animation:space-flight 1s ease-in-out forwards}.launched .space-waiter{animation:space-rescue 1s forwards}.space-console{background:#f4f6fc;color:#182941;border-radius:20px;padding:24px;max-width:760px;margin:auto}.space-task{text-align:center}.space-task p{margin:0 0 8px}.space-task h2{font-size:clamp(2.5rem,6vw,4rem);margin:8px 0}.space-task h2 span{color:#386936}.space-console form{max-width:430px;margin:18px auto 0}.space-console label{font-size:13px}.space-input-row{display:flex;gap:12px;align-items:center}.space-input-row input{margin:0;width:120px;flex:1;min-width:0;font-size:26px;text-align:center;background:white;color:#182941;border:2px solid #9aaac0;border-radius:12px;height:54px}.space-console #space-feedback{min-height:26px;font-weight:600;text-align:center}.space-console #space-next{display:block;margin:0 auto}.space-game .space-help{display:block;background:transparent;color:#304a76;margin:auto;text-decoration:underline}.space-batteries{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:16px auto}.space-battery{display:grid;grid-template-columns:repeat(4,9px);gap:3px;border:2px solid #597945;border-radius:7px;padding:8px;position:relative;background:#e0efcc}.space-battery.extra{background:#e5dbfa;border-color:#7b5d9d}.space-battery i{width:9px;height:17px;background:#547e42;border-radius:2px}.space-battery.extra i{background:#7b5d9d}.space-battery span{font-size:10px;grid-column:1/-1;text-align:center}.space-console .space-small{color:#4d6177;text-align:center}#space-hint{text-align:center;font-weight:600}.space-ending{max-width:760px;margin:40px auto;text-align:center}.space-crew{display:flex;flex-wrap:wrap;justify-content:center;max-width:580px;margin:30px auto}.space-tables{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#22324e;border-radius:18px;padding:20px;margin:20px 0}.space-tables p{margin:6px}.space-ending h1{font-size:clamp(2rem,5vw,3.8rem)}@keyframes space-flight{0%{left:12%;bottom:35px}50%{left:66%;bottom:35px}100%{left:100%;bottom:180px}}@keyframes space-rescue{0%,45%{opacity:1}65%,100%{opacity:0}}@media(prefers-reduced-motion:reduce){.launched .space-ship,.launched .space-waiter{animation:none}.launched .space-ship{left:65%}.launched .space-waiter{opacity:0}}@media(max-width:600px){.space-game{padding:16px;border-radius:18px}.space-intro{grid-template-columns:1fr;padding:22px 0;gap:0}.space-intro h1{font-size:3.4rem}.space-poster{height:240px}.space-orbit{width:210px;height:210px}.space-rocket{font-size:75px;top:0}.space-signal{top:85px}.space-planet{width:220px;bottom:20px}.space-heading{align-items:flex-start;gap:8px}.space-count{font-size:12px;margin-top:18px}.space-stage{height:145px}.space-console{padding:18px 12px}.space-top{font-size:10px}.space-waiter{right:5%}.space-input-row button{padding:12px}.space-progress{gap:3px}.space-game .space-eyebrow{font-size:10px}.space-heading h1{font-size:1.65rem}}

/* Visual multiplication: the same dots move between rows and columns. */
.array-lesson{max-width:1100px;margin:auto;padding:24px 0 60px}.array-eyebrow{font-size:.75rem;letter-spacing:.16em;font-weight:800;color:#14766e;margin-top:32px}.array-lesson h1{font-size:clamp(2rem,4vw,3.6rem);max-width:850px;line-height:1.08}.array-steps{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}.array-steps a{border:1px solid #c5ccc0;border-radius:30px;padding:10px 18px;text-decoration:none;color:inherit}.array-steps a[aria-current]{background:#203f36;color:white}.array-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:start}.array-visual{background:#fffefa;border:1px solid #dce0d2;border-radius:24px;padding:24px}.array-controls{display:flex;gap:18px;flex-wrap:wrap}.array-controls label{flex:1;font-size:.85rem}.array-controls select{width:100%;margin-top:6px}.array-visual>p{font-weight:650}#array-board{position:relative;width:100%;aspect-ratio:1}.array-dot{position:absolute;width:8%;height:8%;border-radius:50%;box-shadow:inset 0 -3px 0 #0002;transition:top .65s ease,left .65s ease,background .4s}.array-dot[hidden]{display:none}#array-groups span{position:absolute;border:1px dashed;border-radius:7px;opacity:.5;box-sizing:border-box}.array-total{text-align:center;font-size:1.3rem}.array-explanation{padding:12px 0}.array-equation{display:block;font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.03em;margin:20px 0;color:#184b40}.array-equation.small{font-size:1.7rem}.array-sum{overflow-wrap:anywhere;line-height:1.9}.array-tip{border-left:3px solid #92ba80;padding:10px 16px;margin:28px 0;color:#485b4a}#array-check input{max-width:140px;display:block;margin:12px 0}#array-feedback{min-height:3em}.array-lesson a:focus-visible,.array-lesson button:focus-visible{outline:3px solid #b65e25;outline-offset:4px}@media(max-width:720px){.array-layout{grid-template-columns:1fr;gap:8px}.array-visual{padding:16px}.array-steps a{padding:9px 12px}.array-explanation{padding:0 8px}.array-lesson{padding-top:12px}}@media(prefers-reduced-motion:reduce){.array-dot{transition:none}}

.array-layout.array-recall{grid-template-columns:1fr;max-width:650px}.array-controls[hidden],.array-visual[hidden]{display:none}.array-sharing label{display:block;margin-bottom:14px}.array-sharing select{display:block;width:100%;margin-top:6px}
