@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--ink:#183d35;--green:#12685b;--muted:#697a70;--cream:#f9f9f0;--line:#dce3d6;--yellow:#f6ca62}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,a,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #bf7419;outline-offset:5px}header{max-width:1320px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Outfit,sans-serif;font-size:16px;font-weight:700;letter-spacing:.4px}.brand b{color:var(--green)}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:1px;font-weight:400;margin-top:4px}.brand-icon{background:var(--green);color:#fff;border-radius:13px;display:block;width:43px;height:45px;font-size:35px;line-height:37px;letter-spacing:-5px;padding:0 6px}.brand-icon span{color:var(--yellow);font-size:23px}nav{display:flex;align-items:center;gap:28px;font-size:13px}nav button,.text-btn,footer button{border:0;background:none;color:var(--ink);padding:10px 0}.outline{border:1px solid #b8c9bc!important;padding:12px 19px!important;border-radius:9px;background:transparent;color:var(--ink);font-size:13px}main{max-width:1320px;margin:auto;padding:0 5%}.hero{min-height:485px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:15px;padding:48px 0 34px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--green);display:inline-flex;align-items:center;gap:8px}.dot{width:7px;height:7px;border-radius:50%;background:var(--green)}h1,h2,h3{font-family:Outfit,sans-serif}h1{font-size:clamp(38px,4.4vw,61px);line-height:1.08;letter-spacing:-2px;font-weight:600;margin:21px 0}h1 span{color:var(--green)}.hero-copy>p{max-width:405px;color:var(--muted);line-height:1.8;font-size:14px}.hero-actions{display:flex;gap:24px;align-items:center;margin:27px 0}.primary{display:inline-flex;justify-content:center;gap:32px;align-items:center;background:var(--green);color:white;border:0;border-radius:10px;padding:16px 23px;font-weight:600;font-size:14px;box-shadow:0 5px 0 #0d4c43}.text-btn{font-size:12px}.hero-notes{display:flex;gap:23px;color:var(--muted);font-size:10px;margin-top:25px}.world{height:380px;position:relative;isolation:isolate;background:radial-gradient(ellipse,#e5efd6 0%,transparent 69%);perspective:900px}.island{position:absolute;left:9%;top:66%;width:83%;height:24%;background:linear-gradient(#a5c8a2,#7fac8a);border-radius:50%;box-shadow:0 14px 0 #698c6d,0 25px 27px #314c2823}.hill{position:absolute;width:69%;height:34%;border-radius:50% 50% 10% 10%;background:#c1d7ad;left:15%;top:45%;transform:rotate(-6deg)}.arch{position:absolute;width:150px;height:210px;border:25px solid #b2cdb0;border-bottom:none;border-radius:100px 100px 0 0;left:38%;top:22%;transform:rotate(10deg);opacity:.6}.sun{width:67px;height:67px;border-radius:50%;background:#f9d976;position:absolute;right:15%;top:10%;box-shadow:0 0 0 13px #f7dd872b}.cloud{position:absolute;background:#fffdf6;width:86px;height:23px;border-radius:40px;filter:drop-shadow(0 4px 2px #98ad8b11)}.cloud:before{content:'';position:absolute;background:inherit;width:38px;height:38px;border-radius:50%;bottom:0;left:14px}.c1{top:20%;left:16%}.c2{top:35%;right:4%;transform:scale(.7)}.block{font-family:Outfit,sans-serif;font-size:95px;line-height:114px;text-align:center;font-weight:600;width:110px;height:116px;position:absolute;border-radius:22px;text-shadow:0 3px 1px #ffffff70;box-shadow:inset 3px 4px 5px #ffffff80,7px 10px 0 #c89338,9px 18px 15px #22472e25}.ba{background:linear-gradient(120deg,#ffe59a,#f5c75d);color:#9c5c29;left:17%;top:42%;transform:rotate(-13deg)}.bb{background:linear-gradient(120deg,#99c9b6,#53a386);color:#fffbe8;left:43%;top:26%;transform:rotate(8deg);box-shadow:inset 3px 4px 5px #ffffff80,7px 10px 0 #3a7f68,9px 18px 15px #22472e25}.bc{background:linear-gradient(120deg,#f4ad93,#df886e);color:#fff6dc;left:67%;top:49%;transform:rotate(14deg);box-shadow:inset 3px 4px 5px #ffffff80,7px 10px 0 #b56451,9px 18px 15px #22472e25}.book{position:absolute;display:flex;left:38%;top:68%;transform:rotate(-9deg);color:#739481;text-align:center;font:700 19px/1.1 Outfit}.book span{display:block;background:#fff5d9;width:68px;height:64px;padding:10px;border:3px solid #dbac68;border-radius:5px 20px 5px 5px;box-shadow:0 7px #b98546}.book span+span{border-radius:20px 5px 5px 5px}.orbit{position:absolute;color:#e2ad43;font-size:31px}.o1{left:9%;top:43%}.o2{right:11%;top:40%}.plant{position:absolute;color:#428467;font-size:55px;top:68%}.p1{left:9%}.p2{right:7%;transform:rotate(25deg)}.float-label{position:absolute;bottom:3%;right:7%;background:#fffdf5;box-shadow:0 6px 24px #22472e12;padding:13px 20px;border-radius:12px;transform:rotate(-5deg);font-size:11px}.world-caption{position:absolute;bottom:-15px;left:25%;font-size:8px;letter-spacing:2px;color:#81947a}.journey{display:flex;gap:18px;align-items:center;padding:20px 24px;background:#eef2e5;border:1px solid #dce5d4;border-radius:14px;margin:20px 0 60px}.journey-icon{background:#fff8df;color:#bd8f24;border-radius:11px;padding:10px 14px;font-size:23px}.journey strong{font-size:13px}.journey p{font-size:11px;color:var(--muted);margin:6px 0 0}.mini-stat{margin-left:auto;padding:0 24px;border-right:1px solid #d0d9c9;text-align:center;white-space:nowrap}.mini-stat strong{font-size:24px;color:var(--green);display:block}.mini-stat span{font-size:10px;color:var(--muted)}.circle-btn{border:1px solid #c3d2bf;background:none;border-radius:50%;width:34px;height:34px;color:var(--green)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px}h2{font-size:32px;letter-spacing:-1px;font-weight:600;margin:10px 0}.section-head p{font-size:12px;color:var(--muted);margin:10px 0}.phase-pill{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:8px 12px;white-space:nowrap;color:var(--muted)}.filters{display:flex;gap:8px;margin:26px 0 23px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:transparent;border-radius:30px;padding:10px 18px;color:var(--muted);font-size:11px}.filters .active{background:var(--green);color:white;border-color:var(--green)}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.game-card{background:#fffef7;border:1px solid #dfe3d8;border-radius:17px;overflow:hidden;transition:transform .2s}.game-card:hover{transform:translateY(-4px)}.card-art{height:160px;margin:9px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:9px;position:relative;overflow:hidden}.card-art:before,.card-art:after{content:'';position:absolute;border:1px solid #ffffff70;width:210px;height:210px;border-radius:50%}.card-art:after{width:260px;height:260px}.art-letter{position:relative;z-index:1;font-family:Outfit;font-weight:600;font-size:51px;border-radius:12px;padding:0 17px;box-shadow:inset 2px 3px 0 #ffffff75,4px 6px 0 #00000018,6px 13px 10px #00000014;transform:rotate(-9deg)}.art-letter:nth-child(2){transform:translateY(9px) rotate(8deg)}.card-index{position:absolute;top:12px;left:12px;font-size:9px;border-radius:20px;background:#fff9;padding:5px 9px;z-index:2}.card-body{padding:11px 20px 19px}.card-level{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.card-body h3{font-size:22px;margin:8px 0;font-weight:600}.card-body p{color:var(--muted);font-size:12px;line-height:1.6;min-height:38px}.card-bottom{display:flex;border-top:1px solid #e7e9df;padding-top:15px;margin-top:18px;align-items:center;justify-content:space-between}.card-bottom span{font-size:10px;color:var(--muted)}.play-btn{background:none;border:none;color:var(--green);font-weight:700;font-size:12px;padding:8px}.demo-note{text-align:center;font-size:10px;color:var(--muted);margin:22px 0 55px}.learning{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:35px;padding:32px 0 44px;border-top:1px solid var(--line)}.learning h2{font-size:27px}.learning article>span{font-size:11px;color:#9a7944;background:#f3ead3;display:inline-block;border-radius:50%;padding:9px;margin-bottom:6px}.learning h3{font-size:16px;font-weight:500;margin:8px 0}.learning p{font-size:11px;color:var(--muted);line-height:1.8}.next-phase{background:#e6eddf;border-radius:15px;padding:23px 28px;display:flex;align-items:center;gap:20px;margin:0 0 50px}.next-phase>span{font-size:32px;color:#7e975e}.next-phase h3{font-size:17px;margin:0 0 6px}.next-phase p{font-size:11px;line-height:1.6;margin:0;color:var(--muted);max-width:570px}.next-phase button{margin-left:auto;white-space:nowrap}footer{max-width:1320px;margin:auto;padding:28px 5%;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}footer p,footer button{font-size:10px;color:var(--muted)}.footer-brand{font:600 13px Outfit}.footer-brand span{display:block;font:9px 'DM Sans';margin-top:4px;color:var(--muted)}footer small{width:100%;font-size:9px;color:var(--muted);line-height:1.8}dialog{color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:25px;max-width:650px;width:calc(100% - 28px);max-height:88dvh;background:var(--cream);box-shadow:0 30px 100px #152f3a40}dialog::backdrop{background:#173c3580;backdrop-filter:blur(5px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.close{font-size:27px;border:0;background:none;color:var(--ink);padding:0 7px}dialog h2{font-size:29px}dialog p,dialog li{font-size:14px;line-height:1.8;color:#53675b}dialog li{margin-bottom:8px}.game-status{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.bar{height:6px;border-radius:10px;background:#dfe6d9;margin:12px 0 24px}.bar span{display:block;height:100%;border-radius:10px;background:var(--green)}.prompt{text-align:center}.big-symbol{display:block;font:600 90px Outfit;color:var(--green);margin:15px 0}.options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.option{min-height:75px;border:2px solid #d9e0d2;background:#fffdf4;border-radius:13px;font:500 28px Outfit;color:var(--ink)}.option:disabled{cursor:default;opacity:.65}.option.correct{background:#daeddc;border-color:#398259;opacity:1}.option.wrong{background:#fae3cf;border-color:#be8150;opacity:1}.feedback{min-height:34px;text-align:center;font-size:14px;line-height:1.7}.next-action{display:flex;justify-content:center;margin-top:18px}.speaker{border:1px solid #c4d3be;border-radius:20px;padding:8px 14px;font-size:12px;background:none;color:var(--green)}.result-stars{text-align:center;font-size:47px;color:#c39326;margin:20px 0}.summary{text-align:center}.records{width:100%;border-collapse:collapse;font-size:12px;margin:15px 0}.records th,.records td{text-align:left;padding:12px 5px;border-bottom:1px solid var(--line)}.records th{font-size:10px;color:var(--muted)}.callout{padding:13px 15px;background:#eaf0e1;border-radius:10px;font-size:12px;line-height:1.7;margin:15px 0}.danger{color:#94583c;border:1px solid #d4b7a5;background:none;border-radius:8px;padding:10px 15px;font-size:12px;margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}button:hover{filter:brightness(.95)}@media(min-width:1500px){.hero{min-height:540px}.world{transform:scale(1.08)}}@media(max-width:900px){nav{gap:15px}.hero{grid-template-columns:1fr 1fr}.world{transform:scale(.85);margin:-25px}.learning{grid-template-columns:1fr 1fr;gap:20px}.section-head{align-items:flex-start}.phase-pill{white-space:normal}.next-phase{flex-wrap:wrap}.next-phase button{margin-left:50px}.art-letter{font-size:40px;padding:0 12px}.game-grid{gap:12px}.card-body{padding:10px 14px}.brand small{font-size:8px}}@media(max-width:640px){header{padding:18px 5%;gap:12px;flex-wrap:wrap}.brand{font-size:13px}nav{width:100%;justify-content:space-between;font-size:11px}nav button{font-size:11px}.outline{padding:9px 12px!important}.hero{grid-template-columns:1fr;padding-top:32px;gap:0}.hero-copy{z-index:2}h1{font-size:43px}.hero-copy>p{font-size:13px}.hero-actions{margin:22px 0}.hero-notes{font-size:9px;gap:16px}.world{transform:none;margin:10px auto 15px;width:100%;max-width:420px;height:315px}.block{width:91px;height:98px;font-size:80px;line-height:95px}.book{transform:scale(.85) rotate(-9deg);left:34%}.arch{height:170px;width:125px}.float-label{bottom:1%;font-size:10px}.world-caption{font-size:7px;bottom:-20px;left:20%}.journey{padding:15px 12px;gap:10px;margin:15px 0 38px}.journey-icon{display:none}.journey strong{font-size:11px}.journey p{font-size:10px}.mini-stat{padding:0 10px}.mini-stat span{font-size:8px}.mini-stat strong{font-size:22px}.circle-btn{flex-shrink:0}.section-head{display:block}h2{font-size:28px}.phase-pill{display:inline-block;margin-top:10px}.filters{gap:6px}.filters button{font-size:10px;padding:9px 12px}.game-grid{grid-template-columns:1fr}.game-card{display:grid;grid-template-columns:38% 62%}.card-art{height:calc(100% - 18px);min-height:180px;gap:4px}.art-letter{font-size:34px;padding:0 9px}.card-art .art-letter:nth-last-child(1):nth-child(4){display:none}.card-body{padding:16px 13px}.card-body h3{font-size:21px}.card-body p{font-size:11px}.card-bottom{margin-top:13px;padding-top:10px}.learning{gap:22px}.learning>div{grid-column:1/-1}.learning>article:last-child{grid-column:1/-1}.learning h2 br{display:none}.next-phase{padding:20px;gap:12px}.next-phase>span{display:none}.next-phase button{margin-left:0}.demo-note{line-height:1.8;margin-bottom:35px}footer{gap:15px}footer p{width:100%;order:3}.options{gap:8px}.option{font-size:24px}dialog{padding:20px}.records{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

[hidden]{display:none!important}
.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.dashboard-stats>div{padding:18px 10px;background:#e6eddf;border:1px solid #d4dfcb;border-radius:12px;text-align:center}.dashboard-stats strong{display:block;font:600 30px Outfit;color:var(--green)}.dashboard-stats span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.export-panel{padding:18px;background:#fffdf5;border:1px solid #dce3d6;border-radius:12px;margin:20px 0;display:flex;align-items:center;gap:20px}.export-panel h3{font-size:17px;margin:0 0 8px}.export-panel p{font-size:12px;margin:0}.export-panel .primary{white-space:nowrap;font-size:12px;padding:13px 16px;gap:8px}.time-note{font-size:11px!important;color:var(--muted)!important}.elapsed{font-size:12px!important}.speaker,.close,.play-btn,.circle-btn{min-height:44px;min-width:44px}@media(max-width:640px){.export-panel{flex-wrap:wrap}.dashboard-stats{gap:6px}.dashboard-stats>div{padding:14px 7px}.dashboard-stats strong{font-size:25px}.dashboard-stats span{font-size:9px}.records td,.records th{overflow-wrap:anywhere}.hero-actions{flex-wrap:wrap}}
.learning-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 22px}.difficulty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.difficulty-btn{min-height:110px;border:1px solid #c1d2b7;background:#e6eedb;border-radius:15px;padding:20px 10px;color:var(--ink)}.difficulty-btn strong{font:600 23px Outfit;display:block}.difficulty-btn span{font-size:11px;display:block;margin-top:9px}.activity-heading{font-size:26px;text-align:center}.activity-instruction{font-size:14px!important;text-align:center}.activity-area{text-align:center;margin:20px 0}.picture-cue{font-size:75px;line-height:1.3;margin:15px 0}.assembly{display:flex;justify-content:center;align-items:center;gap:10px;min-height:95px;border:2px dashed #abc3a1;border-radius:15px;background:#e9efdf;padding:15px;margin:20px 0;color:var(--muted);font-size:13px}.syllable-token{display:inline-flex;align-items:center;justify-content:center;min-width:66px;min-height:62px;font:600 30px Outfit;background:#f9d67e;color:#775022;border:1px solid #dfb55c;box-shadow:0 5px #c29c52;border-radius:12px;padding:7px 14px;touch-action:manipulation}.syllable-token:disabled{opacity:.35;cursor:default}.token-bank{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;min-height:75px}.assembly-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:24px 0}.train-track{border-bottom:5px solid #7b9a8c;position:relative;padding-left:45px}.train-track:before{content:'🚂';position:absolute;left:5px;font-size:32px}.carriage{background:#8eb9a2;color:#183d35;border-color:#6c9e85;box-shadow:0 5px #547d67;border-radius:8px 8px 15px 15px}.train-depart{animation:depart 1.5s ease-in-out}.wheel-stage{position:relative;max-width:230px;margin:15px auto 24px}.syllable-wheel{width:200px;height:200px;border:10px solid #fae2a0;border-radius:50%;margin:auto;display:grid;place-items:center;background:conic-gradient(#a8cbb7 0deg 60deg,#eebf8f 60deg 120deg,#c9bedc 120deg 180deg,#e8d48a 180deg 240deg,#89b4b3 240deg 300deg,#d8b1a0 300deg 360deg);box-shadow:0 8px #b09353,0 12px 25px #183d3520}.syllable-wheel span{display:grid;place-items:center;background:#fffcf0;width:90px;height:90px;border-radius:50%;font:600 42px Outfit;box-shadow:0 4px 0 #0001}.wheel-pointer{position:absolute;top:-9px;left:calc(50% - 13px);z-index:2;color:#1c6655;font-size:28px}.spinning{animation:spin .9s ease-out}.listening-icon{font:600 75px Outfit;color:var(--green);margin:20px}.hint-text{background:#fff2cf;border-radius:10px;padding:12px}.audio-status{font-size:11px!important;min-height:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);font-size:15px}.setting-row input{width:25px;height:25px;accent-color:var(--green)}.setting-row select{background:#fffdf4;border:1px solid #b9cab1;border-radius:8px;padding:10px;color:var(--ink)}.level-list,.legacy-list{display:grid;gap:12px;margin:22px 0}.level-list>*,.legacy-list>*{text-align:left;display:block;padding:17px!important}.level-list span{display:block;font-size:11px;margin-top:7px;color:var(--muted)}.level-list>div{opacity:.7;border:1px dashed #bac9b1;border-radius:10px}@keyframes spin{from{transform:rotate(-360deg)}to{transform:rotate(0)}}@keyframes depart{0%{transform:translateX(0)}50%{transform:translateX(30px)}100%{transform:translateX(0)}}@media(max-width:640px){.difficulty-grid{gap:7px}.difficulty-btn{padding:15px 7px}.difficulty-btn strong{font-size:19px}.difficulty-btn span{font-size:10px}.activity-heading{font-size:22px}.activity-instruction{font-size:13px!important}.syllable-token{min-width:55px;font-size:27px;padding:6px 10px}.assembly{gap:6px}.learning-toolbar .outline{min-height:44px}.game-grid{grid-template-columns:1fr}.assembly-actions .primary{padding:14px}.assembly-actions .outline{min-height:44px}.game-card .card-art{min-height:180px}}@media(prefers-reduced-motion:reduce){.spinning,.train-depart{animation:none}}
.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.reading-passage{font:500 25px/1.7 Outfit!important;background:#e7eedf;padding:24px;border:1px solid #cbdabf;border-radius:16px;color:var(--ink)!important}.reading-question{font-size:20px;line-height:1.5}.reading-options .option{font-size:19px;padding:14px 8px;line-height:1.4}.sentence-cue{font-size:19px!important;font-weight:600;color:var(--green)!important}.word-token{font-size:20px;padding:9px 12px;min-width:50px;white-space:normal}.assembly:has(.word-token){flex-wrap:wrap}.balloon-field{display:flex;align-items:center;justify-content:space-around;gap:14px;min-height:240px;margin:20px 0;padding:20px 10px 40px;background:linear-gradient(#e3f0ee,#f9f9f0);border-radius:20px;overflow:hidden}.balloon{position:relative;flex:0 1 120px;min-width:65px;height:145px;border:2px solid #a57b6570;border-radius:50% 50% 46% 46%;font:600 34px Outfit;color:var(--ink);background:radial-gradient(circle at 30% 25%,#ffffffb0,transparent 30%),#f5c76a;box-shadow:inset -9px -9px 0 #0000000a,0 7px 15px #0000000a;animation:float-balloon 3s ease-in-out infinite}.balloon:after{content:'';position:absolute;height:35px;width:1px;background:#94a196;bottom:-37px;left:50%}.balloon-1{background-color:#91c5b2;animation-delay:-1s}.balloon-2{background-color:#e9aaa0;animation-delay:-2s}.balloon.correct{border:4px solid #26775f}.balloon.wrong{border:4px solid #af6439}.balloon-pop{animation:pop-balloon .5s ease-out!important}.balloon:disabled{cursor:default}.token-bank:has(.word-token){flex-wrap:wrap}.game-card h3{line-height:1.15}@keyframes float-balloon{50%{transform:translateY(-12px) rotate(3deg)}}@keyframes pop-balloon{50%{transform:scale(1.15);opacity:.35}100%{transform:scale(1);opacity:1}}@media(max-width:640px){.reading-passage{font-size:22px!important;padding:20px}.reading-options{grid-template-columns:1fr}.reading-options .option{min-height:55px}.balloon{height:110px;font-size:27px}.balloon-field{gap:10px;min-height:210px;padding-left:12px;padding-right:12px}.word-token{font-size:18px}.difficulty-grid{margin:18px 0}}@media(prefers-reduced-motion:reduce){.balloon,.balloon-pop{animation:none!important}}
.balloon-pop{background:transparent!important;box-shadow:none!important;border:0!important;font-size:65px;color:#b98b24}.balloon-pop:after{display:none}
.fishing-water{background:linear-gradient(#b9e1e2,#85bdc4);border-radius:25px;padding:45px 20px;display:flex;gap:25px;justify-content:space-around;flex-wrap:wrap;overflow:hidden;margin:25px 0}.fish-choice{position:relative;background:#f7ce78;border:2px solid #b38d48;border-radius:60% 50% 50% 60%;font:600 24px Outfit;color:#244f46;min-height:75px;min-width:120px;padding:15px 20px;box-shadow:inset 0 -8px #0001;animation:fish-swim 4s ease-in-out infinite}.fish-choice:before{content:'';position:absolute;left:-22px;top:18px;border:18px solid transparent;border-right-color:#dba951;border-left:0}.fish-eye{position:absolute;right:15px;top:8px;font-size:9px}.fish-1{background:#a1d0b9;animation-delay:-1s}.fish-2{background:#efa599;animation-delay:-2s}.fish-choice.correct{outline:4px solid #2b7961}.fish-choice.wrong{outline:4px solid #a3633a}.fish-caught{animation:fish-catch .7s ease-out!important}.robot-status{display:flex;align-items:center;gap:20px;padding:18px 20px;border-radius:18px;background:#e9e2f2;text-align:left}.robot-avatar{font-size:75px}.robot-status>div{flex:1}.robot-status strong{display:block;font-size:15px}.robot-status small{font-size:10px;display:block;line-height:1.5}.robot-status progress{width:100%;height:23px;accent-color:#638d71;margin:8px 0}.island-map{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;padding:30px 20px;background:linear-gradient(135deg,#bbdedc,#e4efd7);border-radius:25px;margin:25px 0}.island-stop{display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:160px;border:2px solid #7ca88a;border-radius:50% 50% 25% 25%;background:linear-gradient(#ebf3cd,#a4c595);box-shadow:0 8px 0 #619c94,0 14px 20px #29594a22;padding:16px;color:var(--ink)}.island-stop>span{font-size:46px}.island-stop>strong{font:600 17px Outfit}.island-stop small{font-size:10px;margin-top:7px}.island-stop:disabled{cursor:default;opacity:.65;filter:saturate(.5)}.island-stop:last-child{grid-column:1/-1;max-width:250px;width:100%;justify-self:center}.island-badge{display:inline-block;padding:10px 17px;border-radius:25px;background:#e4eed4;font-size:14px;font-weight:600}.champion-crown{font-size:65px;display:block;text-align:center;margin:12px}.memory-stats{display:flex;justify-content:space-between;gap:10px;padding:14px;background:#e6eddc;border-radius:12px;font-size:12px}.memory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0}.memory-card{min-height:90px;aspect-ratio:4/5;border:2px solid #adc5a2;border-radius:14px;box-shadow:0 5px #9cb48e;background:repeating-linear-gradient(45deg,#367963,#367963 7px,#40866f 7px,#40866f 14px);color:#fff4d3;font:600 28px Outfit;padding:7px;overflow-wrap:anywhere}.memory-card.face-up{background:#ffefc2;color:var(--ink);font-size:21px}.memory-card.matched{background:#d7e9ca;color:#31694b;border-color:#8aaf72;box-shadow:0 5px #7a9a65}.memory-card:disabled{cursor:default}.certificate-row{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.certificate-row .outline{white-space:nowrap}@keyframes fish-swim{50%{transform:translateY(-8px) rotate(3deg)}}@keyframes fish-catch{50%{transform:translateY(-30px) rotate(-10deg)}100%{transform:translateY(0)}}@media(max-width:640px){.fishing-water{padding:30px 15px;gap:23px}.fish-choice{min-width:100px;font-size:21px}.robot-avatar{font-size:55px}.robot-status{gap:12px;padding:15px}.memory-grid{grid-template-columns:repeat(2,1fr);gap:12px}.memory-card{min-height:85px;aspect-ratio:auto}.memory-card.face-up{font-size:23px}.memory-stats{font-size:10px;flex-wrap:wrap}.island-map{padding:22px 12px;gap:17px 12px}.island-stop>strong{font-size:14px}.island-stop{min-height:145px;padding:10px}.certificate-row{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.fish-choice,.fish-caught{animation:none!important}}
.certificate-preview{display:block;width:100%;height:auto;border-radius:10px;border:1px solid #d5c58b;margin:22px 0}
.teacher-options{display:grid;gap:16px;margin:25px 0}.teacher-choice{border:1px solid #bed0b4;border-radius:15px;background:#e9f0df;padding:22px;text-align:left;color:var(--ink)}.teacher-choice strong{display:block;font:600 24px Outfit}.teacher-choice span{display:block;font-size:13px;line-height:1.7;margin-top:10px;color:var(--muted)}.dashboard-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.dashboard-filters label,.field-label{display:block;font-size:12px;color:var(--muted);line-height:1.5}.dashboard-filters input,.dashboard-filters select,.field-label input{display:block;width:100%;border:1px solid #bbcdb0;border-radius:9px;background:#fffdf5;color:var(--ink);font:14px 'DM Sans',sans-serif;padding:13px 10px;min-height:45px;margin-top:7px}.dashboard-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.dashboard-table{overflow-x:auto}.dashboard-table .records{min-width:470px}.score-chart{display:grid;gap:14px;margin:22px 0}.score-bar{display:grid;grid-template-columns:1.4fr 1fr 40px;align-items:center;gap:10px;font-size:11px}.score-bar>div{height:13px;background:#dde7d4;border-radius:8px;overflow:hidden}.score-bar i{display:block;background:#3d8c6a;height:100%;border-radius:8px}.score-bar strong{text-align:right;color:var(--green);font-size:12px}.field-label{margin:20px 0}#schoolAuthStatus{font-size:13px;line-height:1.7}.report-page .records{font-size:11px}.report-page h2{font-size:27px}@media(max-width:640px){.dashboard-filters{grid-template-columns:1fr 1fr;gap:12px}.dashboard-filters label:first-child{grid-column:1/-1}.dashboard-filters input,.dashboard-filters select{font-size:13px}.score-bar{grid-template-columns:1.4fr 1fr 35px;font-size:10px}.teacher-choice strong{font-size:22px}.report-page .records{font-size:9px}}@media print{body{background:white;color:black}body>header,body>main,body>footer,#announcement{display:none!important}dialog{display:block!important;position:static!important;max-height:none!important;height:auto!important;overflow:visible!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:white!important}dialog::backdrop{display:none!important}.modal-top,.no-print{display:none!important}.report-page h2{font-size:22pt}.report-page p{font-size:10pt}.report-page .records{font-size:9pt}.report-page .records tr{break-inside:avoid}.report-page .records th,.report-page .records td{padding:8px 5px}.report-page .records thead{display:table-header-group}@page{size:A4 landscape;margin:14mm}}
.pupil-list{display:grid;gap:18px}.pupil-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:#f0f4e8}.pupil-card h3{margin:0 0 10px;overflow-wrap:anywhere}.pupil-card p{font-size:12px;color:var(--muted);line-height:1.7}.pupil-card>span{font-size:12px}.consent-check{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.7;margin:22px 0}.consent-check input{width:23px;height:23px;flex:none}.field-label select{display:block;width:100%;border:1px solid #bbcdb0;border-radius:9px;padding:13px;background:#fffdf5;color:var(--ink);font:inherit;min-height:45px;margin-top:7px}#learnerBanner{padding:20px 5%;display:flex;gap:16px;flex-wrap:wrap;align-items:center;background:#e5eed9}#learnerBanner strong{overflow-wrap:anywhere}#learnerBanner span{font-size:12px}.learner-mode>main,.learner-mode>footer,.learner-mode header nav{display:none}.learner-games{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.learner-games .teacher-choice{padding:17px}.learner-games strong{font-size:19px}.learner-prompt{font-size:36px;text-align:center;line-height:1.6;margin:20px 0;overflow-wrap:anywhere}.learner-tokens{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:18px;margin:14px 0;border:1px dashed #a7c194;border-radius:12px;min-height:70px}.learner-tokens.selected{background:#e7efda}.learner-tokens button{font-size:21px!important}.learner-feedback{font-size:14px;color:var(--green);min-height:22px}.learner-islands{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.learner-islands .island-badge{font-size:11px}.learner-islands [aria-current]{outline:2px solid #b4812c}.learner-mode .balloon-choice{position:relative!important;transform:none!important;animation:none;min-height:100px}.learner-mode .balloon-field{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.learner-mode progress{width:100%;height:20px;accent-color:#40866f}@media(max-width:640px){.learner-games{grid-template-columns:1fr}.learner-prompt{font-size:28px}#learnerBanner{gap:10px}.pupil-card .primary{font-size:12px}.learner-tokens button{font-size:18px!important}}

.connection-status{background:#fff0ca;border:1px solid #d4ad52;border-radius:12px;padding:15px;line-height:1.6;font-size:14px}

.connection-status{max-width:1188px;margin:18px auto;width:90%}
