@font-face{font-family:Nunito;src:url('/assets/nunito.ttf') format('truetype');font-weight:200 1000;font-display:swap}
@font-face{font-family:Lilita;src:url('/assets/lilita-one.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--forest:#003c22;--green:#00602c;--cream:#fffbed;--gold:#e1a92f;--muted:#736c55;--line:#e7d6ae;--error:#a33221;--shadow:0 5px 10px #70471226}
*{box-sizing:border-box}body{margin:0;background:#f8ebcf;color:var(--forest);font:18px/1.4 Nunito,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:default}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Lilita,Nunito,sans-serif;font-weight:400;line-height:1.08}h1{font-size:52px}h2{font-size:30px}h3{font-size:25px}p{margin-top:12px}img{max-width:100%}small,.small{font-size:15px}.muted{color:var(--muted)}.icon{width:25px;height:25px;flex-shrink:0;vertical-align:middle}.gold{filter:brightness(0) saturate(100%) invert(63%) sepia(81%) saturate(807%) hue-rotate(3deg) brightness(94%)}.white-icon{filter:brightness(0) invert(1)}.unearned{opacity:.38;filter:grayscale(1)}:focus-visible{outline:4px solid #e2a020;outline-offset:4px}.skip-link{position:fixed;left:12px;top:-80px;z-index:50;background:var(--cream);padding:12px}.skip-link:focus{top:12px}.loading{padding:90px;text-align:center}[hidden]{display:none!important}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:58px;padding:12px 24px;border-radius:99px;font-weight:900;font-size:21px;text-decoration:none;border:2px solid var(--gold);box-shadow:var(--shadow);transition:transform .15s}.button:hover:not(:disabled){transform:translateY(-2px)}.button:disabled{opacity:.5}.primary{color:var(--cream);background:var(--green);border:3px solid #fff9d9;box-shadow:inset 0 4px 3px #72c96b,0 0 0 2px #adbb82,0 7px 10px #3b421e40;font-family:Lilita,Nunito,sans-serif;font-weight:400}.secondary{background:var(--cream)}.soft{background:#e9f3d8}.button-arrow{display:grid;place-items:center;flex:none}.primary .button-arrow{background:var(--cream);border-radius:50%;width:38px;height:38px}.button .icon{width:27px;height:27px}.text-button{display:inline-flex;gap:9px;align-items:center;min-height:44px;font-weight:850;padding:6px 10px;text-decoration:underline;text-underline-offset:5px}.row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:16px}.eyebrow{font-weight:900;font-size:14px;letter-spacing:1.3px;text-transform:uppercase;color:#987014}.badge{display:inline-flex;gap:7px;align-items:center;font-size:14px;font-weight:900;padding:6px 12px;border-radius:99px;background:#edf4df;border:1px solid #d9e4c2}
.brand{display:inline-flex;position:relative;flex-direction:column;text-align:center;text-decoration:none;line-height:1}.brand strong{font:400 48px/.98 Lilita,Nunito,sans-serif;letter-spacing:-.8px}.brand span{font-family:Lilita,Nunito,sans-serif;font-size:20px;color:#a66900;margin-top:5px}.brand-star{position:absolute;width:130px;height:49px;object-fit:contain;top:-36px;right:19px}.voice,.back-pill{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:2px solid #b0c485;background:var(--cream);border-radius:99px;font-weight:900;padding:12px 22px;min-height:58px;box-shadow:0 4px 7px #41592530;text-decoration:none;white-space:nowrap}.voice .icon,.back-pill .icon{width:30px;height:30px}.header{max-width:1280px;margin:auto;padding:40px 35px 20px;display:flex;justify-content:space-between;align-items:center}.shell{min-height:100svh;background:#f8ebcf url('/assets/games-oasis.png') center top/cover fixed}.container{max-width:1180px;padding:24px 38px 55px;margin:auto}.narrow{max-width:850px}.panel{background:#fffbedf5;border:2px solid #ffda83;border-radius:30px;padding:30px;box-shadow:inset 0 0 0 3px #fffdf0a8,var(--shadow)}.page-intro{margin:18px 0 30px;background:#fffbedeb;padding:24px;border-radius:24px}.page-intro p{max-width:720px}.nav{display:flex;gap:10px;flex-wrap:wrap;padding:10px 0 24px}.nav .button{font-size:17px;min-height:48px}.nav .text-button{background:var(--cream);border-radius:99px}
.scene{position:relative;isolation:isolate;container-type:inline-size;width:100%;max-width:1920px;min-height:71.15vw;margin:auto;background:#f6e5bb url('/assets/oasis.png') center top/100% auto no-repeat;overflow:hidden}.scene-header{position:absolute;inset:3% 3% auto;height:10%;display:flex;justify-content:space-between;align-items:flex-start;z-index:5}.scene-header>.brand{position:absolute;left:50%;top:16%;transform:translateX(-50%)}.scene .brand strong{font-size:4.2cqw}.scene .brand span{font-size:1.7cqw}.scene .brand-star{width:10cqw;height:4cqw;top:-2.7cqw;right:1cqw}.scene .voice,.scene .back-pill{font-size:1.75cqw;min-height:5.1cqw;padding:.85cqw 1.7cqw;gap:.8cqw}.scene .voice .icon,.scene .back-pill .icon{width:2.8cqw;height:2.8cqw}.header-controls{display:flex;align-items:flex-start;gap:1.5cqw;margin-left:auto}.scene h1{font-size:5.3cqw}.scene .panel{border-radius:3cqw}.scene .button{font-size:2cqw;min-height:4.8cqw;padding:.7cqw 1.6cqw;gap:1cqw}.scene .primary{font-size:2.7cqw}.scene .primary .button-arrow{width:3.8cqw;height:3.8cqw}.scene .button .icon{width:2.5cqw;height:2.5cqw}
.scene-welcome .brand{left:28%;top:23%}.welcome-content{position:absolute;left:55.5%;right:4%;top:16%;bottom:7%;display:flex;flex-direction:column;text-align:center}.scene-welcome h1{font-size:9.4cqw;line-height:.98;letter-spacing:-.15cqw}.tagline{font-size:2.3cqw;font-weight:850;margin-top:2.2cqw;white-space:nowrap;letter-spacing:-.055cqw}.welcome-actions{display:flex;flex-direction:column;gap:1.6cqw;margin-top:auto}.scene-welcome .welcome-actions>.primary{font-size:4.3cqw;min-height:8.4cqw;padding:.8cqw 2.7cqw;justify-content:space-between}.welcome-actions>.primary>span:first-child{flex:1}.scene-welcome .primary .button-arrow{width:5.1cqw;height:5.1cqw}.scene-welcome .primary .icon{width:3.6cqw;height:3.6cqw}.welcome-actions>.secondary{font-size:2.25cqw;min-height:5.8cqw;margin:0 1.5cqw;justify-content:space-between}.teacher-links{display:flex;justify-content:center;gap:1.5cqw}.teacher-links .text-button{font-size:1.55cqw;padding:.4cqw;gap:.7cqw}.teacher-links .icon{width:2.4cqw;height:2.4cqw}
.access-panel{position:absolute;left:54%;right:3%;top:16%;min-height:76%;padding:3cqw}.access-panel h1{font-size:5.4cqw;text-align:center;margin-top:.5cqw}.access-subtitle{font-size:2cqw;font-weight:850;text-align:center;margin-top:1cqw}.form{display:flex;flex-direction:column;gap:18px;margin-top:28px}.field{display:flex;flex-direction:column;gap:8px;font-weight:850;font-size:18px}input,select{width:100%;background:#fffefa;border:2px solid #ead09b;border-radius:20px;color:var(--forest);min-height:58px;padding:12px 17px}input::placeholder{color:#a69b87}.scene .form{margin-top:2.3cqw;gap:1.4cqw}.scene .field{font-size:2cqw;gap:.6cqw}.scene input{min-height:5.6cqw;padding:1cqw 1.6cqw}.scene .code-input{font-size:2.5cqw;font-weight:900;letter-spacing:.16cqw}.scene .small{font-size:1.3cqw}.journey-note{display:flex;gap:1.3cqw;background:#eaf2da;border:1px solid #d2dfb2;border-radius:1.5cqw;padding:1.5cqw;margin-top:.5cqw}.journey-note>.icon{width:3.1cqw;height:3.1cqw}.journey-note strong{font-size:1.8cqw}.journey-note p{font-size:1.5cqw;margin-top:.5cqw;line-height:1.6}.error{color:var(--error);font-size:16px;font-weight:800;min-height:0}.error:empty{display:none}.privacy-note{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--muted);margin-top:22px}.scene .privacy-note{font-size:1.25cqw;margin-top:1.5cqw;gap:.7cqw}.scene .privacy-note .icon{width:1.6cqw;height:1.6cqw}.access-panel .form>.primary{margin-top:.8cqw;min-height:7cqw;font-size:2.85cqw;justify-content:space-between}.teacher-access h1{font-size:4.5cqw}.teacher-access>p{font-size:1.6cqw}.teacher-access{min-height:auto;padding-bottom:2.5cqw}
.scene-journey,.scene-rewards{background-image:url('/assets/journey-map.png')}.scene-journey .brand{left:16%;top:22%}.learner-menu{position:relative;background:var(--cream);border:2px solid #b0c485;border-radius:99px;box-shadow:var(--shadow);font-weight:900;font-size:1.65cqw}.learner-menu summary{display:flex;gap:1.5cqw;align-items:center;cursor:pointer;padding:.55cqw 1.4cqw;min-height:5cqw;list-style:none}.learner-menu summary::-webkit-details-marker{display:none}.learner-menu small{display:block;font-size:1.35cqw;font-weight:750}.learner-menu>.text-button{position:absolute;right:0;top:calc(100% + 8px);width:100%;background:var(--cream);border:2px solid #b0c485;border-radius:20px;font-size:16px;white-space:nowrap;justify-content:center}.journey-heading{position:absolute;top:13.2%;left:25%;right:3%;text-align:center}.journey-heading h1{font-size:6.3cqw}.journey-heading p{font-size:1.8cqw;font-weight:800;margin-top:.9cqw}.map-stop{position:absolute;text-align:center;background:#fff4dbee;border:2px solid #ddbd83;border-radius:3.5cqw;padding:1.7cqw 1cqw .8cqw;box-shadow:0 4px 6px #7f4c2b33}.map-stop h2{font-size:1.9cqw;line-height:1.1}.map-stop p{font-size:1.35cqw;font-weight:800;display:flex;justify-content:center;gap:.5cqw;align-items:center;margin-top:1cqw}.map-stop p .icon{width:1.6cqw;height:1.6cqw}.stop-marker{position:absolute;top:-2.7cqw;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:4cqw;height:4cqw;border-radius:50%;background:#8e775e;border:3px solid var(--cream);box-shadow:var(--shadow)}.stop-marker .icon{filter:brightness(0) invert(1);width:2.4cqw;height:2.4cqw}.map-stop.ready{border:3px solid #ffd55c;background:#fffbed;box-shadow:0 0 0 3px #fffcee,var(--shadow);padding-top:1.5cqw}.ready .stop-marker{background:var(--green)}.map-stop.ready h2{font-size:2.5cqw}.map-stop.ready p{background:#eee9d2;border-radius:99px;font-size:1.4cqw}.map-stop.ready .button{width:calc(100% + 2.2cqw);margin:1cqw -1.1cqw -.7cqw;font-size:2cqw;min-height:4.9cqw;padding:.4cqw 1cqw}.map-stop.ready .button-arrow{width:3.5cqw;height:3.5cqw}.map-stop.coming{color:#76583b}.stop-0{left:12.5%;top:67%;width:21%}.stop-1{left:41.5%;top:62%;width:18%}.stop-2{left:62%;top:51%;width:18%}.stop-3{left:81.5%;top:37%;width:17%}.stop-4{left:81.5%;top:61%;width:17%}.adventure-nav{position:absolute;bottom:2.1%;left:1.8%;right:1.8%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;min-height:7.1cqw;background:#fffbedf5;border:2px solid #fff8d6;border-radius:2.5cqw;box-shadow:0 5px 12px #7546232b;overflow:hidden}.adventure-nav>a,.adventure-nav>button{position:relative;display:flex;align-items:center;justify-content:center;text-decoration:none;gap:1.1cqw;font-size:1.75cqw;font-weight:900;margin:1.1cqw 0;padding:.3cqw .8cqw;color:#745636}.adventure-nav>:not(:last-child){border-right:1px solid #cfb67d}.adventure-nav .icon{width:3.5cqw;height:3.5cqw}.adventure-nav [aria-current]{color:var(--forest)}.adventure-nav [aria-current]:after{content:'';position:absolute;bottom:-.8cqw;height:.5cqw;background:var(--green);border-radius:99px;width:72%}.adventure-nav button:disabled{color:#7d7668}.adventure-nav small{display:block;font-size:.95cqw;line-height:1.2}
.scene-topic{background-image:url('/assets/games-oasis.png')}.scene-topic .learner-menu{font-size:1.25cqw}.scene-topic .learner-menu small{font-size:1.15cqw}.scene-topic .learner-menu summary{gap:.7cqw;padding:.55cqw 1cqw}.scene-topic .header-controls{gap:1cqw}.topic-heading{position:absolute;top:14%;left:32.5%;width:44.8%;padding:1.1cqw!important;text-align:center}.topic-heading h1{font-size:5cqw}.topic-heading p{font-size:1.85cqw;font-weight:850;margin-top:.45cqw}.topic-progress{position:absolute;top:17%;right:2.5%;width:18.5%;text-align:center;padding:1cqw!important}.topic-progress strong{font-size:1.3cqw}.completion-stars{display:flex;justify-content:center;gap:.4cqw;margin-top:.7cqw}.completion-stars .icon{width:2.2cqw;height:2.2cqw}.illustrated-games{position:absolute;top:29.5%;left:31%;right:2.7%;height:58%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);gap:1.1cqw}.illustrated-card{position:relative;grid-column:span 2;min-width:0;background:#fff8e3;border:2px solid #ffdf9c;border-radius:2.3cqw;padding:.55cqw;text-align:center;box-shadow:0 4px 8px #a2653133;display:flex;flex-direction:column;align-items:center}.illustrated-card:nth-child(n+4){grid-column:span 3}.illustrated-card.available{border:4px solid #00a73a;background:#edffdc;box-shadow:0 0 0 5px #fffada,0 5px 15px #65914a66}.game-art{width:100%;height:10cqw;object-fit:cover;border-radius:1.7cqw}.illustrated-card:nth-child(n+4) .game-art{height:8cqw}.game-number{position:absolute;top:.35cqw;left:.35cqw;display:grid;place-items:center;width:4.3cqw;height:4.3cqw;border-radius:50%;border:4px solid #fffbed;background:#c68b17;color:#fffbed;font:3cqw Lilita;box-shadow:var(--shadow)}.available .game-number{background:var(--green)}.illustrated-card h2{font-size:1.9cqw;margin:.45cqw 0 .15cqw;white-space:nowrap}.illustrated-card p{font-size:1.3cqw;margin:0}.stars{display:flex;gap:.4cqw;align-items:center}.stars .icon{width:30px;height:30px}.illustrated-card .stars{margin:.2cqw 0}.illustrated-card .stars .icon{width:2.2cqw;height:2.2cqw}.scene .illustrated-card .button{width:100%;margin-top:auto;padding:.2cqw 1cqw;min-height:3.4cqw;font-size:1.85cqw;border-width:2px;box-shadow:none}.scene .illustrated-card .button-arrow{background:none;width:2.5cqw;height:2.5cqw}.illustrated-card .button-arrow .icon{filter:brightness(0) invert(1)}.coming-label{font-size:1cqw;display:flex;align-items:center;gap:.3cqw;margin-top:auto;color:#795c38}.coming-label .icon{width:1cqw;height:1cqw}
.scene-tutorial,.scene-play,.scene-result{background-image:url('/assets/learning-oasis.png')}.lesson-content{position:relative;margin:9.8% 3.4% .8% 42.2%;text-align:center}.lesson-title>h1{font-size:6.3cqw;margin-bottom:2.5cqw;white-space:nowrap}.tutorial-panel{position:relative;padding:2.4cqw 3.2cqw .9cqw!important;text-align:center}.board-tab{position:absolute;top:-1.8cqw;left:50%;transform:translateX(-50%);font-size:2.8cqw;border-radius:99px;background:#ffe297;border:1px solid #ffc843;padding:.25cqw 2.3cqw;white-space:nowrap}.lesson-instruction{font-size:2.25cqw;font-weight:900;margin:0}.example-banner{font-size:3.3cqw;background:#104f30;color:#fffdf1;border-radius:1.8cqw;border:3px solid #fffef0;box-shadow:var(--shadow);padding:.6cqw;margin-top:1.1cqw}.place-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2cqw;margin:1cqw auto}.place{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.65cqw;border:2px solid #c1dcb0;border-radius:1.6cqw;background:#eaf4d9;padding:.6cqw .7cqw;box-shadow:inset 0 1px 6px #89b4761c}.place-label{font-weight:900;font-size:1.9cqw}.place-digit{display:grid;place-items:center;line-height:1;font-family:Lilita,Nunito,sans-serif;font-size:6.2cqw;font-weight:400;border:2px solid #ffe1a1;border-radius:1cqw;background:#fff5d9;min-height:7.2cqw;width:68%;color:var(--forest);box-shadow:inset 0 2px 2px #fffef4,0 2px 5px #c0903655}.place-value{width:100%;font-family:Lilita,Nunito,sans-serif;font-size:2.7cqw;background:#dfeecd;border-radius:1cqw;line-height:1.2}.equation{background:#fff2cb;border:2px solid #ffdea0;border-radius:1.7cqw;font-family:Lilita,Nunito,sans-serif;font-size:3cqw;padding:.55cqw;margin-top:.8cqw}.tutorial-steps{display:flex;justify-content:space-around;gap:1cqw;font-weight:900;font-size:1.85cqw;margin-top:1cqw}.tutorial-steps span{display:flex;align-items:center;gap:.65cqw}.tutorial-steps b{display:grid;place-items:center;border-radius:50%;background:#eaa516;color:#fffbed;font-family:Lilita;font-size:2.5cqw;width:3.5cqw;height:3.5cqw}.lesson-note{font-size:1.1cqw;line-height:1.25;color:var(--muted);margin-top:.7cqw}.lesson-footer{display:flex;align-items:center;justify-content:space-between;gap:1cqw;margin:1.2cqw .5cqw 0}.lesson-footer>div{display:flex;flex-direction:column;align-items:flex-start}.lesson-footer p{font-size:1.3cqw;font-weight:800;margin-top:.6cqw}.scene .lesson-footer>.primary{font-size:3.9cqw;min-height:7.2cqw;width:58%;justify-content:space-between;padding:.7cqw 2.3cqw}.scene .lesson-footer>.primary .button-arrow{width:4.7cqw;height:4.7cqw}.lesson-footer .secondary{font-size:1.8cqw}
.play-content{position:relative;margin:11% 3.5% 4% 42.2%}.game-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 1cqw;background:#fffbedec;padding:.5cqw 1cqw;border-radius:99px}.game-meta{font-size:1.2cqw;font-weight:900}.game-header .text-button{font-size:1.35cqw}.question-progress{accent-color:var(--green);height:10px;width:160px;display:block;margin-top:5px}.game-panel{padding:2cqw;text-align:center}.question-prompt{font-size:2.8cqw!important;line-height:1.17;margin:1cqw auto;min-height:6.7cqw}.game-panel>.text-button{font-size:1.4cqw}.game-panel .place-values{margin:1cqw auto}.game-panel .place-digit{font-size:5cqw;min-height:6.5cqw;width:76%}button.place-digit[aria-pressed=true]{outline:3px solid var(--green);outline-offset:3px}.game-panel .place-digit:disabled{opacity:1}.digits{display:grid;grid-template-columns:repeat(10,1fr);gap:.5cqw;margin:1cqw 0}.digit{min-height:3.7cqw;border:2px solid #dfcda0;border-radius:1cqw;background:#fff7dc;font:2.3cqw Lilita;box-shadow:0 3px 0 #d2b979}.digit:hover{background:#e5f2cf;border-color:var(--green)}.game-actions{display:flex;align-items:center;justify-content:center;gap:1cqw;margin-top:1.3cqw}.scene .game-actions .button{font-size:1.7cqw}.scene .game-actions .primary{font-size:2.05cqw}.game-actions .primary .button-arrow{width:2.5cqw;height:2.5cqw}.game-actions .primary .icon{width:1.7cqw;height:1.7cqw}.hint{padding:1cqw;text-align:left;border:1px solid #e6c373;background:#fff0bf;border-radius:1.3cqw;margin:1cqw 0;font-size:1.4cqw;font-weight:750}.feedback{margin-top:1.2cqw;border:2px solid #bfdbb8;background:#edf7df;border-radius:1.4cqw;padding:1cqw;display:flex;flex-direction:column;align-items:center;gap:.6cqw}.feedback.retry{border-color:#e3c5aa;background:#fff0d9}.feedback h3{font-size:2.2cqw}.feedback p{font-size:1.35cqw;margin:0}.saved{font-size:14px;color:var(--muted);display:flex;gap:7px;align-items:center;justify-content:center;margin-top:18px}.saved .icon{width:17px;height:17px}
.result-content{position:relative;margin:13% 4% 4% 43%}.result{text-align:center}.result .hero-icon{display:block;width:60px;height:60px;margin:0 auto 15px}.result h1{font-size:3.7cqw}.result h2{margin-top:1.8cqw}.result .stars{justify-content:center;margin:24px 0}.result .stars .icon{width:60px;height:60px}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:25px 0}.score-item{background:#eaf2d6;border:1px solid #cddaaf;border-radius:20px;padding:18px}.score-item strong{display:block;font:38px Lilita}.result .row{justify-content:center}.scene .result .row .button{font-size:1.5cqw}.scene .result .row .primary{font-size:1.8cqw}.review{text-align:left;margin-top:24px}.review summary{font-weight:900;cursor:pointer;min-height:44px}.review-item{border-top:1px solid var(--line);padding:16px 0;font-size:16px}.review-item p{margin-top:6px}.rewards-panel{position:relative;margin:16% 8% 14% 38%;padding:3cqw}.rewards-panel h1{font-size:5cqw}
.demo-note{padding:12px 18px;background:#fff3d9;border:1px solid #ead099;border-radius:15px;font-size:15px;margin:10px 0 24px}.table-wrap{overflow-x:auto;margin-top:25px}table{border-collapse:collapse;width:100%;font-size:16px;text-align:left}th{font-size:13px;text-transform:uppercase;letter-spacing:.7px;background:#edf2dc;color:#50674c}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted)}.table-wrap .text-button{font-size:14px;white-space:nowrap}.office-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:22px;align-items:start;margin-top:24px}.audit{font-size:14px;padding:12px 0;border-bottom:1px solid var(--line)}.audit time{display:block;color:var(--muted)}.code-card{background:#eff6e7;border:2px solid #9aba82;border-radius:20px;padding:22px;margin-top:20px}.code-card strong{display:block;font-size:28px;letter-spacing:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.teacher-setup{max-width:720px}.form .row>.button{flex:1}.empty{padding:35px;text-align:center;background:#f3f6ec;border-radius:20px}
#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:min(90vw,650px);padding:16px 22px;background:#fff4e5;border:2px solid #b66a32;border-radius:18px;box-shadow:var(--shadow);color:var(--error);z-index:30;font-weight:800}
@media(min-width:1920px){.scene{min-height:1366px}}
@media(max-width:960px){
 body{font-size:17px}.scene{min-height:100svh;background-size:auto 100vh;background-position:right top;overflow:hidden;padding-bottom:24px}.scene-header{position:relative;inset:auto;height:auto;min-height:116px;margin:0;padding:37px 18px 16px;align-items:center;gap:12px;flex-wrap:wrap}.scene-header>.brand,.scene-welcome .brand,.scene-journey .brand{position:relative;left:auto;top:auto;transform:none;margin-right:auto;order:-1}.scene .brand strong{font-size:34px}.scene .brand span{font-size:14px;margin-top:3px}.scene .brand-star{width:94px;height:38px;top:-25px;right:10px}.scene .voice,.scene .back-pill{font-size:15px;min-height:45px;padding:9px 13px;gap:7px}.scene .voice .icon,.scene .back-pill .icon{width:23px;height:23px}.header-controls{margin-left:auto;gap:8px;align-items:center}.scene-header>.back-pill{order:2}.scene-header:has(.back-pill) .header-controls{order:1}.scene h1{font-size:44px}.scene .panel{border-radius:28px}.scene .button{font-size:18px;min-height:54px;padding:10px 17px;gap:10px}.scene .primary{font-size:26px}.scene .primary .button-arrow{width:37px;height:37px}.scene .button .icon{width:25px;height:25px}.scene-welcome{background-position:right top}.welcome-content{position:relative;inset:auto;max-width:560px;margin:12px auto 0;padding:0 20px;text-align:center;display:flex}.scene-welcome h1{font-size:clamp(65px,12vw,95px);line-height:.96;letter-spacing:-1px;text-shadow:0 2px 8px #fff9df}.tagline{font-size:20px;white-space:normal;letter-spacing:0;margin:15px 0 0;text-shadow:0 1px 4px #fff9df}.welcome-actions{gap:15px;margin-top:0}.scene-welcome .welcome-actions>.primary{font-size:35px;min-height:75px;padding:10px 23px}.scene-welcome .primary .button-arrow{width:44px;height:44px}.scene-welcome .primary .icon{width:30px;height:30px}.welcome-actions>.secondary{font-size:18px;min-height:58px;margin:0}.teacher-links{gap:10px;flex-wrap:wrap;background:#fffbeddf;border-radius:20px;padding:5px}.teacher-links .text-button{font-size:16px;gap:7px;padding:5px}.teacher-links .icon{width:24px;height:24px}.access-panel{position:relative;inset:auto;max-width:550px;margin:-15px auto 0;width:calc(100% - 32px);min-height:0;padding:25px}.access-panel h1{font-size:43px;margin-top:0}.access-subtitle{font-size:19px;margin-top:12px}.scene .form{margin-top:24px;gap:14px}.scene .field{font-size:18px;gap:8px}.scene input{min-height:58px;padding:12px 14px;border-radius:16px}.scene .code-input{font-size:24px;letter-spacing:1px}.scene .small{font-size:14px}.journey-note{gap:14px;border-radius:18px;padding:17px;margin-top:6px}.journey-note>.icon{width:32px;height:32px}.journey-note strong{font-size:19px}.journey-note p{font-size:15px;margin-top:6px}.scene .privacy-note{font-size:14px;margin-top:20px;gap:8px}.scene .privacy-note .icon{width:21px;height:21px}.access-panel .form>.primary{font-size:25px;min-height:68px;margin-top:6px}.teacher-access>p{font-size:17px}.teacher-access h1{font-size:39px}
 .scene-journey,.scene-rewards{background-size:auto 1100px;background-position:right top}.scene-journey .scene-header,.scene-rewards .scene-header{padding-bottom:10px}.learner-menu,.scene-topic .learner-menu{font-size:15px}.learner-menu summary,.scene-topic .learner-menu summary{padding:7px 12px;min-height:45px;gap:12px}.learner-menu small,.scene-topic .learner-menu small{font-size:13px}.learner-menu .icon{width:18px;height:18px}.scene-header:has(.learner-menu){align-items:flex-start}.scene-header:has(.learner-menu)>.brand{margin-bottom:7px}.scene-header:has(.learner-menu) .header-controls{flex-wrap:wrap;justify-content:flex-end}.scene-journey .header-controls,.scene-rewards .header-controls{flex-basis:100%;justify-content:space-between}.journey-heading{position:relative;inset:auto;text-align:center;margin:12px auto;padding:0 20px;max-width:600px}.journey-heading h1{font-size:46px}.journey-heading p{font-size:18px;margin-top:14px;background:#fffbedbf;border-radius:16px;padding:8px}.map-stops{position:relative;display:flex;flex-direction:column;max-width:620px;margin:0 auto;padding:0 22px 25px;gap:39px}.map-stop{position:relative;inset:auto;width:77%;border-radius:30px;padding:24px 16px 17px;align-self:flex-start}.map-stop:nth-child(even){align-self:flex-end}.map-stop h2{font-size:26px}.map-stop.ready h2{font-size:32px}.map-stop p,.map-stop.ready p{font-size:16px;margin-top:12px;gap:7px}.map-stop p .icon{width:20px;height:20px}.stop-marker{top:-25px;width:43px;height:43px;border-width:2px}.stop-marker .icon{width:26px;height:26px}.map-stop.ready{padding:22px 15px 10px}.map-stop.ready .button{width:calc(100% + 26px);margin:15px -13px -10px;font-size:24px;min-height:60px;padding:8px 15px}.map-stop.ready .button-arrow{width:35px;height:35px}.adventure-nav{position:relative;inset:auto;margin:8px 12px 0;min-height:85px;border-radius:24px}.adventure-nav>a,.adventure-nav>button{flex-direction:column;gap:5px;font-size:12px;text-align:center;margin:12px 0;padding:0 5px;line-height:1.2}.adventure-nav .icon{width:29px;height:29px}.adventure-nav small{font-size:10px;margin-top:3px}.adventure-nav [aria-current]:after{bottom:-8px;height:4px;width:75%}
 .scene-topic{background-size:auto 1000px;background-position:right top}.scene-topic .scene-header{padding-bottom:10px}.scene-topic .header-controls{gap:8px}.scene-topic .learner-menu{display:none}.topic-heading{position:relative;inset:auto;width:calc(100% - 32px);max-width:600px;margin:5px auto 0;padding:20px!important}.topic-heading h1{font-size:44px}.topic-heading p{font-size:18px;margin-top:8px}.topic-progress{position:relative;inset:auto;width:fit-content;margin:14px auto;padding:12px 22px!important}.topic-progress strong{font-size:16px}.completion-stars{gap:6px;margin-top:7px}.completion-stars .icon{width:25px;height:25px}.illustrated-games{position:relative;inset:auto;height:auto;max-width:750px;margin:auto;padding:8px 18px 18px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:16px}.illustrated-card,.illustrated-card:nth-child(n+4){grid-column:span 1;border-radius:25px;padding:7px}.illustrated-card.available{grid-column:1/-1;width:min(100%,430px);justify-self:center}.game-art,.illustrated-card:nth-child(n+4) .game-art{height:145px;border-radius:18px}.available .game-art{height:200px}.game-number{top:6px;left:6px;width:43px;height:43px;border:3px solid var(--cream);font-size:30px}.illustrated-card h2{font-size:22px;white-space:normal;margin:8px 3px 3px}.illustrated-card p{font-size:15px}.illustrated-card .stars{margin:7px 0;gap:6px}.illustrated-card .stars .icon{width:27px;height:27px}.scene .illustrated-card .button{min-height:50px;font-size:25px;padding:6px 17px}.scene .illustrated-card .button-arrow{width:25px;height:25px}.coming-label{font-size:13px;margin:7px 0;gap:4px}.coming-label .icon{width:14px;height:14px}
 .scene-tutorial,.scene-play,.scene-result{background-size:auto 1000px;background-position:right top}.lesson-content,.play-content,.result-content{position:relative;inset:auto;margin:8px auto 0;padding:0 16px;max-width:720px}.lesson-title>h1{font-size:clamp(34px,7vw,50px);margin:0 0 30px;white-space:normal}.tutorial-panel{padding:29px 16px 18px!important}.board-tab{top:-20px;font-size:25px;padding:6px 24px}.lesson-instruction{font-size:20px}.example-banner{font-size:30px;border-radius:18px;margin-top:14px;padding:8px}.place-values{gap:8px;margin:12px auto}.place{border-radius:16px;padding:8px 6px;gap:8px}.place-label{font-size:16px}.place-digit{font-size:54px;min-height:77px;width:88%;border-radius:12px}.place-value{font-size:28px;border-radius:10px}.equation{font-size:27px;border-radius:18px;padding:10px 2px;margin-top:12px}.tutorial-steps{font-size:15px;gap:8px;margin-top:15px}.tutorial-steps span{gap:5px}.tutorial-steps b{font-size:22px;width:30px;height:30px;flex:none}.lesson-note{font-size:13px;margin-top:13px}.lesson-footer{flex-direction:column-reverse;gap:16px;margin:18px 0 0}.scene .lesson-footer>.primary{font-size:34px;min-height:74px;width:100%;padding:10px 26px}.scene .lesson-footer>.primary .button-arrow{width:43px;height:43px}.lesson-footer>div{align-items:center}.lesson-footer p{font-size:15px;margin-top:10px}.lesson-footer .secondary{font-size:18px}
 .scene-play .scene-header{padding-bottom:0}.play-content{margin-top:10px}.game-header{padding:7px 12px;margin-bottom:14px;border-radius:20px}.game-header .text-button{font-size:14px;padding:2px}.game-meta{font-size:13px}.question-progress{width:112px;height:9px}.game-panel{padding:20px 15px}.question-prompt{font-size:29px!important;margin:13px 0;min-height:90px}.game-panel>.text-button{font-size:16px}.game-panel .place-values{margin:18px 0 12px}.game-panel .place-digit{font-size:52px;min-height:76px;width:86%}.digits{grid-template-columns:repeat(5,1fr);gap:9px;margin:17px 0}.digit{font-size:27px;min-height:50px;border-radius:13px}.game-actions{gap:12px;flex-wrap:wrap;margin-top:20px}.scene .game-actions .button{font-size:18px;min-height:54px}.scene .game-actions .primary{width:100%;font-size:26px}.game-actions .primary .button-arrow{width:32px;height:32px}.game-actions .primary .icon{width:22px;height:22px}.hint{padding:15px;border-radius:16px;margin:17px 0;font-size:16px}.feedback{border-radius:18px;padding:17px 13px;gap:12px;margin-top:18px}.feedback h3{font-size:27px}.feedback p{font-size:17px}.saved{font-size:12px;margin-top:17px}.result h1,.rewards-panel h1{font-size:38px}.result h2{margin-top:20px}.result .hero-icon{width:50px;height:50px}.result .stars .icon{width:48px;height:48px}.result .row{flex-direction:column}.scene .result .row .button,.scene .result .row .primary{font-size:22px;width:100%}.rewards-panel{position:relative;inset:auto;margin:18px 16px 25px;padding:24px;max-width:700px}.score-grid{gap:10px}.score-item{padding:15px 10px;font-size:14px}.score-item strong{font-size:32px}
 .header{padding:40px 18px 15px;gap:12px}.header .brand strong{font-size:32px}.header .brand span{font-size:13px}.header .brand-star{width:90px;right:10px;top:-30px}.voice{font-size:14px;min-height:44px;padding:9px 12px;gap:6px}.voice .icon{width:22px;height:22px}.container{padding:15px 18px 35px}.panel{padding:23px}.page-intro h1{font-size:38px}.office-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.nav{gap:8px}.nav .button{padding:8px 13px;font-size:14px}.nav .icon{width:19px;height:19px}
}
@media(max-width:360px){.scene .voice span{display:none}.scene .voice{min-width:44px}.scene .brand strong{font-size:31px}.scene .brand span{font-size:12px}.place-label{font-size:14px}.tutorial-steps{font-size:13px}.access-panel{padding:20px}.scene .code-input{font-size:21px}.illustrated-games{grid-template-columns:1fr}.illustrated-card.available{grid-column:auto}.game-art,.illustrated-card:nth-child(n+4) .game-art{height:180px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


.report-panel{margin-bottom:24px}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.report-panel h2{font-size:32px}.report-panel .form{margin-top:22px}.report-panel .button{font-size:22px}
.reward-guide{text-align:left;margin:18px 0;background:#fff9e8;border:1px solid #e7d3a5;border-radius:18px;padding:14px 16px}.reward-guide summary{font-weight:900;font-size:17px;cursor:pointer;min-height:30px}.reward-guide table{table-layout:fixed;margin-top:12px;font-size:15px}.reward-guide th{width:25%;font-size:15px;text-transform:none;letter-spacing:0;color:var(--forest);background:#edf3dc}.reward-guide th,.reward-guide td{padding:10px 9px;vertical-align:top;overflow-wrap:anywhere}.reward-guide p{font-size:14px}
.mastery-badge{display:flex;text-align:left;align-items:center;gap:15px;background:#f2f1e3;border:2px solid #d8d4b8;border-radius:20px;padding:15px 18px;margin-top:18px}.mastery-badge.earned{background:#edf7d8;border-color:#d2a526}.mastery-badge>.icon{width:42px;height:42px}.mastery-badge strong{font-size:22px;font-weight:950}.mastery-badge p{font-size:15px;margin-top:4px}.topic-mastery{font-size:15px;color:var(--muted);margin-top:13px}.earned-message{font-size:18px;font-weight:900;background:#edf7d8;padding:12px;border-radius:16px}
.rewards-panel{margin-bottom:3%}.rewards-panel .stars{margin:16px 0}.rewards-panel .score-grid{margin:18px 0}.rewards-panel>.button{margin-top:4px}.scene-rewards .adventure-nav{position:relative;inset:auto;margin:0 1.8% 1.5%}
@media(max-width:960px){.report-filters{grid-template-columns:1fr 1fr}.report-panel h2{font-size:29px}.rewards-panel{margin-bottom:24px}.scene-rewards .adventure-nav{margin:10px 12px 0}.mastery-badge{padding:14px;gap:11px}.mastery-badge strong{font-size:20px}.reward-guide{padding:13px}.reward-guide summary{font-size:16px}.reward-guide table{font-size:14px}.reward-guide th{font-size:14px;width:26%}.reward-guide th,.reward-guide td{padding:9px 6px}}
@media(max-width:600px){.report-filters{grid-template-columns:1fr}.report-panel .button{width:100%;font-size:21px}.report-panel .row{justify-content:center}}

/* Pack the Dhow reuses the approved lesson board and shared feedback. */
.cargo-deck{display:flex;align-items:center;gap:20px;margin:18px 0;background:#e5f4ee;border:2px solid #bdd7bb;border-radius:22px;overflow:hidden;text-align:center}.cargo-deck>img{width:48%;height:145px;object-fit:cover}.cargo-total{flex:1;padding:12px;font-weight:800}.cargo-total strong{display:block;font-family:Lilita;font-size:34px}.cargo-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.cargo-kind{display:flex;flex-direction:column;align-items:center;gap:5px;padding:15px 10px;border:2px solid #c5d7b0;border-radius:20px;background:#edf4dd;text-align:center}.cargo-kind>.icon{width:34px;height:34px}.cargo-kind>strong{font-size:20px;font-weight:900}.cargo-kind>span{font-size:15px}.cargo-counter{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:8px}.cargo-counter button{height:44px;width:44px;border:2px solid #dab55d;border-radius:13px;background:var(--cream);color:var(--forest);font-size:28px;font-weight:900;cursor:pointer}.cargo-counter button:disabled{opacity:.4;cursor:default}.cargo-count{font-family:Lilita;font-size:32px;min-width:26px}.office-game{max-width:420px;margin:20px 0 12px}.rewards-game{max-width:420px;margin:20px auto;text-align:left}.rewards-game select{font-size:18px}.report-filters{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:960px){.report-filters{grid-template-columns:1fr 1fr}.cargo-kind>strong{font-size:18px}.cargo-deck>img{height:120px}.cargo-total strong{font-size:29px}}
@media(max-width:600px){.report-filters{grid-template-columns:1fr}.cargo-tiles{grid-template-columns:1fr;gap:9px}.cargo-kind{display:grid;grid-template-columns:30px 1fr auto;gap:2px 8px;padding:10px;text-align:left}.cargo-kind>.icon{grid-column:1;grid-row:1/3;width:28px;height:28px}.cargo-kind>strong{grid-column:2;grid-row:1;font-size:17px}.cargo-kind>span{grid-column:2;grid-row:2;font-size:13px}.cargo-counter{grid-column:3;grid-row:1/3;margin:0;gap:4px}.cargo-deck{gap:6px;margin:14px 0}.cargo-deck>img{height:105px;width:44%}.cargo-total{padding:8px;font-size:15px}.cargo-total strong{font-size:27px}.cargo-game .question-prompt{min-height:65px;font-size:27px!important}}

/* Match both introductions to the approved place-value board. */
.cargo-unit{font-size:1.1cqw;font-weight:800;line-height:1.25}.cargo-lesson .place{gap:.15cqw}
.next-adventure{margin:22px 0;padding:24px 20px;background:#fff3d3;border:2px solid #edc66e;border-radius:24px}.result .next-adventure h2{font-size:clamp(24px,2.4cqw,38px);margin:8px 0}.next-adventure>p{margin-top:8px}.journey-steps{display:flex;justify-content:center;gap:12px;list-style:none;padding:0;margin:16px 0}.journey-steps li{display:grid;place-items:center;width:42px;height:42px;border:2px solid #ccb981;border-radius:50%;background:var(--cream);font:24px Lilita}.journey-steps .done{background:var(--green);border-color:var(--green);color:var(--cream)}.journey-steps .done .icon{filter:brightness(0) invert(1)}.journey-steps [aria-current]{outline:2px solid var(--gold);outline-offset:3px}.next-game-message{font-size:clamp(18px,1.7cqw,27px)}.scene .next-adventure>.primary{font-size:clamp(24px,2.4cqw,38px);width:100%;margin-top:18px;justify-content:space-between}.next-adventure>.small{color:var(--muted)}
@media(max-width:960px){.cargo-unit{font-size:13px}.cargo-lesson .place{gap:6px}.cargo-lesson .place-label{font-size:16px;line-height:1.2;min-height:2.4em;display:flex;align-items:center;justify-content:center}.cargo-lesson .cargo-unit{min-height:2.5em}.next-adventure{padding:20px 14px}.scene .next-adventure>.primary{min-height:64px;font-size:26px}.scene .next-adventure>.primary .button-arrow{width:36px;height:36px}.scene .next-adventure>.primary .icon{width:26px;height:26px}.scene .next-adventure>.small{font-size:14px}}

.detective-intro .lesson-title>h1{font-size:5.4cqw}.number-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2cqw;margin:1.5cqw 0}.number-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:11cqw;padding:1cqw .4cqw;border:2px solid #e8c877;border-radius:1.6cqw;background:#fff5d9;box-shadow:inset 0 2px 2px #fffef4,0 3px 5px #c0903655}.number-card>span{font:5cqw/1 Lilita}.number-card[aria-pressed=true]{outline:3px solid var(--green);outline-offset:3px;background:#eaf4d9}.number-card.correct-card{background:#eaf4d9;border-color:#86ac68}.number-card small{font-size:1.1cqw;font-weight:900}.number-card:disabled{opacity:1}.number-card .icon{width:1.3cqw;height:1.3cqw}
@media(max-width:960px){.detective-intro .lesson-title>h1{font-size:clamp(32px,7vw,50px)}.number-cards{gap:10px;margin:20px 0}.number-card{min-height:125px;border-radius:18px;padding:12px 4px}.number-card>span{font-size:42px}.number-card small{font-size:12px}.number-card .icon{width:16px;height:16px}}

.towers-intro .lesson-title>h1{font-size:5cqw}.compare-values{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1cqw;margin:1.3cqw 0}.compare-values .place-digit{width:94%;font-size:4.5cqw}.compare-values .place-value{font-size:2cqw}.compare-sign{font:4.5cqw Lilita}.comparison-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.relation-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;border:2px solid #e8c877;border-radius:20px;background:#fff5d9;box-shadow:var(--shadow)}.relation-card strong{font:3.7cqw Lilita}.relation-card span{font-size:1.2cqw;font-weight:900}.relation-card[aria-pressed=true]{outline:3px solid var(--green);outline-offset:3px;background:#eaf4d9}.relation-card:disabled{opacity:1}.souq-scene{display:block;width:100%;height:100px;object-fit:cover;border-radius:20px;margin:12px 0}.mission-entry{align-items:center;margin:16px 0 0}.mission-entry input{max-width:230px;text-align:center;font:3cqw Lilita;min-height:70px}.mission-game .question-prompt{font-size:2.2cqw!important;min-height:0}.mission-game .mission-entry{font-size:1.5cqw}
@media(max-width:960px){.towers-intro .lesson-title>h1{font-size:clamp(30px,6.5vw,48px)}.compare-values{gap:8px;margin:18px 0}.compare-values .place-digit{font-size:36px;min-height:78px}.compare-values .place-value{font-size:19px}.compare-sign{font-size:36px}.comparison-choices{gap:9px}.relation-card strong{font-size:38px}.relation-card span{font-size:13px}.souq-scene{height:90px}.mission-entry input{font-size:38px;min-height:64px}.mission-game .question-prompt{font-size:24px!important}.mission-game .mission-entry{font-size:18px}}

.next-adventure.topic-complete{background:linear-gradient(145deg,#fffbed,#ffedb6);border:3px solid var(--gold);box-shadow:0 0 0 5px #fff9de,inset 0 0 35px #ffdc7540,var(--shadow)}
.milestone-icons{display:flex;justify-content:center;align-items:center;gap:18px;margin:2px auto 16px}.milestone-icons .icon{width:35px;height:35px}.milestone-icons .icon:nth-child(2){width:64px;height:64px}
.hear-next{margin-top:10px}.map-stop.next-map-stop{border:3px solid var(--gold);background:#fff3ce;box-shadow:0 0 0 4px #fffbed,0 0 25px #ffd761b0}
.next-map-stop .stop-marker{background:#b88411}.next-stop-label{display:block;font-weight:900;color:#90610c;font-size:clamp(12px,1cqw,16px);margin-bottom:5px}
@media(max-width:960px){.milestone-icons .icon:nth-child(2){width:56px;height:56px}.next-stop-label{font-size:14px}.hear-next{font-size:17px}.scene .next-adventure>.primary{gap:10px}}


/* Compact guides for lesson screens; original mobile welcome and journey retained. */
.mobile-characters,.mobile-guide{display:none}
@media(max-width:960px){
 .mobile-characters{display:block;width:100%;height:260px;object-fit:contain;margin:0 auto}
 .scene-journey>.mobile-characters{height:220px;margin-top:6px}
 .scene.scene-access,.scene.scene-topic,
 .scene.scene-tutorial,.scene.scene-play,.scene.scene-result,.scene.scene-rewards{background:#f8ebcf}
 .scene:not(.scene-welcome):not(.scene-journey) .scene-header{display:grid;grid-template-columns:minmax(0,1fr) auto;background:#c7e9f5 url('/assets/learning-oasis.png') right top/auto 900px no-repeat;border-bottom:1px solid #dfd5ad;padding:35px 18px 15px;min-height:108px;gap:14px}
 .scene:not(.scene-welcome):not(.scene-journey) .scene-header>span:empty{display:none}
 .scene-header>.brand{grid-column:1;grid-row:1;justify-self:start}
 .scene-header>.header-controls{grid-column:2;grid-row:1}
 .scene-header>.back-pill{grid-column:1/-1;grid-row:2;justify-self:start;min-height:44px}
 .scene-rewards .scene-header>.header-controls{grid-column:1/-1;grid-row:2;width:100%}
 .scene .header-controls{gap:8px}
 .scene-journey .header-controls,.scene-rewards .header-controls{justify-content:space-between}
 .mobile-guide{display:block;width:88px;height:88px;object-fit:cover;border-radius:50%;border:3px solid #fffbed;outline:1px solid #e1b961;box-shadow:var(--shadow);flex:none}
 .access-panel{margin:24px auto 0}
 .access-panel>.mobile-guide{width:76px;height:76px;margin:0 auto 18px}
 .topic-heading{display:grid;grid-template-columns:80px minmax(0,1fr);column-gap:16px;align-items:center;text-align:left;margin-top:22px;padding:18px!important}
 .topic-heading>.mobile-guide{grid-column:1;grid-row:1/3;width:80px;height:80px}
 .topic-heading h1{font-size:clamp(30px,6.5vw,42px)}
 .topic-heading p{font-size:16px;line-height:1.4;margin-top:6px}
 .topic-progress{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 18px;width:calc(100% - 36px);max-width:600px;margin:14px auto 18px;padding:12px 16px!important;border-radius:20px!important}
 .completion-stars{margin:0;gap:5px}
 .illustrated-games{align-items:stretch;gap:20px;padding:4px 20px 20px}
 .illustrated-card.available{grid-column:auto;width:100%;border-width:2px;box-shadow:0 0 0 3px #fffada,var(--shadow)}
 .game-art,.available .game-art,.illustrated-card:nth-child(n+4) .game-art{height:160px}
 .illustrated-card h2{font-size:24px}
 .illustrated-card .button{margin-top:10px!important}
 .lesson-content{margin:20px auto 0}
 .lesson-title{display:flex;align-items:center;gap:18px;text-align:left;margin:0 4px 34px}
 .lesson-title>h1,.detective-intro .lesson-title>h1,.towers-intro .lesson-title>h1{font-size:clamp(30px,6vw,44px);margin:0;line-height:1.05;white-space:normal}
 .tutorial-panel{padding-top:31px!important}
 .lesson-instruction{font-size:19px}
 .scene .lesson-footer>.primary{font-size:31px;min-height:66px}
 .scene .lesson-footer{margin-top:16px}
 .play-content,.result-content{margin-top:20px}
 .game-panel .question-prompt{min-height:0}
 .header{flex-wrap:wrap}
}
@media(max-width:600px){
 .illustrated-games{grid-template-columns:minmax(0,1fr);max-width:470px}
 .illustrated-card,.illustrated-card:nth-child(n+4){display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:0 14px;align-items:center;padding:12px;text-align:left}
 .game-art,.available .game-art,.illustrated-card:nth-child(n+4) .game-art{grid-column:1;grid-row:1/4;height:110px;border-radius:17px}
 .game-number{width:35px;height:35px;font-size:24px;top:8px;left:8px}
 .illustrated-card h2{grid-column:2;font-size:24px;margin:2px 0 4px}
 .illustrated-card p{grid-column:2;font-size:14px}
 .illustrated-card .stars{grid-column:2;margin:6px 0;gap:5px}
 .illustrated-card .stars .icon{width:24px;height:24px}
 .scene .illustrated-card .button{grid-column:1/-1;min-height:50px;font-size:24px}
 .illustrated-card .coming-label{grid-column:1/-1}
 .lesson-title{gap:14px}
 .lesson-title>.mobile-guide{width:76px;height:76px}
 .place-label{font-size:15px}
 .tutorial-steps{flex-direction:column;align-items:flex-start;gap:10px;font-size:16px;padding:0 3px}
 .equation{font-size:clamp(22px,6vw,27px)}
}
@media(max-width:360px){
 .topic-heading{grid-template-columns:62px minmax(0,1fr);column-gap:12px;padding:15px!important}
 .topic-heading>.mobile-guide{width:62px;height:62px}
 .topic-heading h1{font-size:29px}
 .topic-heading p{font-size:15px}
 .lesson-title{gap:12px}
 .lesson-title>.mobile-guide{width:64px;height:64px}
 .illustrated-card,.illustrated-card:nth-child(n+4){grid-template-columns:90px minmax(0,1fr);gap:0 11px}
 .game-art,.available .game-art,.illustrated-card:nth-child(n+4) .game-art{height:100px}
 .illustrated-card h2{font-size:22px}
}

/* Desktop cards grow with their controls instead of overlapping the bottom navigation. */
@media(min-width:961px){
 .lesson-content,.play-content,.result-content{margin-left:46%}
 .scene-topic .topic-heading{top:10cqw}
 .scene-topic .topic-progress{top:12cqw}
 .scene-topic .illustrated-games{position:relative;inset:auto;height:auto;margin:21cqw 2.7% 2% 31%;grid-template-rows:auto auto;align-items:stretch}
 .scene-topic .illustrated-card .button{min-height:max(44px,3.4cqw)}
 .scene-topic .adventure-nav{position:relative;inset:auto;margin:24px 1.8% 1.5%}
 .scene .digit{min-height:max(44px,3.7cqw)}
}

@media(max-width:600px){
 .journey-steps{gap:6px}
 .journey-steps li{width:clamp(28px,8vw,36px);height:clamp(28px,8vw,36px);font-size:21px}
 .scene .next-adventure>.primary{font-size:clamp(20px,5.7vw,24px);line-height:1.2;padding:14px 12px}
 .scene .next-adventure>.primary>span:first-child{min-width:0;flex:1}
}
/* Gate 2: reuse the oasis boards for every curriculum game and the Practice Lab. */
.worked-task{padding:20px;background:#edf5df;border:1px solid #cddaaf;border-radius:22px;margin:18px 0}.worked-task strong{display:block;font-family:Lilita;font-size:clamp(30px,3.5vw,50px);margin:16px 0;overflow-wrap:anywhere}.worked-task p{font-size:18px;line-height:1.5}.expanded-places{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:8px}.expanded-places .place-label{font-size:clamp(12px,1.1vw,17px);min-height:36px;display:flex;align-items:center;justify-content:center}.expanded-places .place-digit{width:90%;font-size:38px;min-height:62px}.expanded-choices .number-card{font-size:clamp(19px,2vw,32px);overflow-wrap:anywhere;min-height:90px}.order-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:16px 0}.order-cards .number-card{font-size:25px;padding:15px;flex:1;min-width:100px}.order-answer{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;list-style-position:inside;padding:0;min-height:50px;margin:18px 0}.order-answer li{padding:12px;background:#e9f2d9;border-radius:14px;font-weight:900}.hop-board{padding:20px;margin:18px 0;background:#edf5df;border:2px solid #cddaaf;border-radius:24px}.hop-board>strong{display:block;font:58px Lilita;margin:16px}.hop-board .row{justify-content:center}.array-model{padding:16px;border:1px solid #d5c8a3;background:#fff8e5;border-radius:20px;margin:18px 0}.array-dots{max-width:100%;overflow:auto;margin:12px auto;color:var(--green)}.array-dots>div{display:flex;justify-content:center;gap:8px}.array-dots span{font-size:16px}.team-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.team-board>div{padding:15px;border:2px solid #dcc795;background:#fffbed;border-radius:20px;text-align:center}.team-board strong,.team-board span{display:block}.team-board .team-turn{border:3px solid var(--green);background:#eaf4d6}.team-board strong{font-size:24px}.team-board span{font-weight:800;margin-top:5px}.lab-content{position:relative;margin:21cqw 2.7% 2% 31%;padding:24px}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.lab-activity{padding:20px;background:#edf5df;border:1px solid #cddaaf;border-radius:24px}.lab-activity h2{font-size:28px}.lab-activity .button{width:100%;margin-top:15px}.class-history{margin-top:24px}.class-round{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line)}.class-round p{font-size:14px}.office-selection{margin-top:24px}.bonus-total{font-weight:900;color:var(--green)}
@media(min-width:961px){.scene-journey .map-stops{position:relative;margin-top:35cqw;min-height:49cqw}.scene-journey .map-stop{padding:2cqw 1cqw 1cqw;width:20%}.scene-journey .map-stop h2{font-size:2cqw}.scene-journey .map-stop p{font-size:1.2cqw}.scene-journey .map-stop .button{font-size:1.4cqw;min-height:4cqw;width:100%;margin:1cqw 0 0}.scene-journey .stop-0{left:10%;top:13cqw}.scene-journey .stop-1{left:34%;top:21cqw}.scene-journey .stop-2{left:57%;top:12cqw}.scene-journey .stop-3{left:79%;top:0}.scene-journey .stop-4{left:79%;top:25cqw}.scene-journey .adventure-nav{position:relative;inset:auto;margin:20px 1.8% 1.5%}.scene .expanded-game .question-prompt{font-size:2.3cqw!important}.scene .expanded-game .game-actions .button{font-size:1.6cqw}}
@media(max-width:960px){.lab-content{margin:20px auto;width:calc(100% - 36px);padding:20px}.scene .lab-content .button{font-size:23px}.scene .expanded-game .question-prompt{font-size:25px!important}.expanded-places .place-label{font-size:14px}.expanded-choices .number-card{font-size:22px}.expanded-game .mission-entry input{font-size:38px}.hop-board .row .button{font-size:19px}.scene-journey .map-stop h2{font-size:26px}.scene-journey .map-stop .button{font-size:22px}.lab-grid{gap:14px}.lab-activity{padding:16px}.lab-activity h2{font-size:25px}}
@media(max-width:600px){.lab-grid{grid-template-columns:1fr}.expanded-places{grid-template-columns:repeat(3,minmax(0,1fr))}.expanded-choices{flex-direction:column}.expanded-choices .number-card{width:100%;min-height:60px}.class-round{align-items:flex-start;flex-direction:column;gap:8px}.hop-board{padding:15px}.hop-board .row{flex-direction:column}.hop-board .row .button{width:100%}.array-dots>div{gap:5px}.array-dots span{font-size:14px}.team-board{gap:8px}.team-board>div{padding:12px}.team-board strong{font-size:21px}}
@media(min-width:961px){.team-board{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.team-board strong{font-size:21px}}
@media(min-width:961px){.scene .class-game-board{padding:1.4cqw}.scene .class-game-board .question-prompt{font-size:2cqw!important}.team-board>div{padding:12px}}

/* Practice Lab uses content flow so long grade lists cannot move or cover menus. */
.scene-lab{background-image:url('/assets/games-oasis.png')}
.scene-lab .scene-header{top:2.5cqw;height:auto}
.lab-intro{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:13cqw 2.7% 0 31%}
.scene-lab .topic-heading,.scene-lab .topic-progress{position:static;inset:auto;width:auto;margin:0;text-align:center;padding:20px!important}
.scene-lab .topic-heading h1{font-size:clamp(34px,4cqw,58px)}
.scene-lab .topic-heading p{font-size:18px;line-height:1.45}
.scene-lab .topic-progress strong{font-size:20px}
.scene-lab .lab-content{margin:24px 2.7% 24px 31%;padding:24px}
.lab-rules{text-align:center;font-size:18px;line-height:1.55;margin:0}
.lab-grid{align-items:stretch}
.scene-lab .lab-activity{display:flex;flex-direction:column;align-items:stretch;text-align:center;min-width:0}
.scene-lab .lab-activity h2{font-size:28px;line-height:1.2;min-height:2.4em;display:grid;place-items:center;overflow-wrap:break-word}
.scene-lab .lab-activity p{font-size:18px;line-height:1.4;margin:10px 0 16px}
.scene-lab .lab-activity .button{font-size:24px;margin-top:auto;min-height:58px}
.scene-lab .adventure-nav{position:relative;inset:auto;margin:24px 1.8% 1.5%}
.guide-art{object-fit:contain;background:#edf5df}
.lesson-topic{text-align:center;font-size:17px;font-weight:800;margin:0 0 30px;line-height:1.4}
.game-topic{font-size:16px;line-height:1.4;font-weight:800;margin:0 0 10px}
.scene .worked-task{display:flex;flex-direction:column;gap:14px;text-align:center}
.scene .worked-task p{font-size:18px;line-height:1.5;margin:0}
.scene .worked-task strong{font-size:clamp(28px,3cqw,42px);line-height:1.2;margin:0;overflow-wrap:break-word}
.scene .expanded-game .small{font-size:16px;line-height:1.5;text-align:center}
@media(max-width:960px){
 .scene.scene-lab{background:#f8ebcf}
 .scene-lab .scene-header{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;padding:35px 18px 15px;background:#c7e9f5 url('/assets/learning-oasis.png') right top/auto 900px no-repeat;gap:14px}
 .scene-lab .header-controls{grid-column:1/-1;grid-row:2;justify-content:flex-end;flex-wrap:wrap}
 .scene-lab .back-pill{grid-column:1;grid-row:1;margin-top:80px;min-height:44px}
 .scene-lab .scene-header>.brand{grid-column:1;grid-row:1;position:relative;inset:auto;transform:none;align-self:start}
 .lab-intro{margin:22px 18px 0;display:flex;flex-direction:column;align-items:stretch;gap:14px}
 .scene-lab .topic-heading{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px 14px;text-align:left}
 .scene-lab .topic-heading .mobile-guide{width:70px;height:70px;grid-row:1/3}
 .scene-lab .topic-heading h1{font-size:32px}
 .scene-lab .topic-heading p{font-size:17px;margin:0}
 .scene-lab .topic-progress{padding:14px!important}
 .scene-lab .lab-content{margin:20px 18px;width:auto;padding:20px}
 .scene-lab .lab-activity h2{font-size:27px}
 .scene-lab .lab-activity p,.lab-rules{font-size:17px}
 .scene-lab .adventure-nav{margin:24px 12px 18px}
 .lesson-topic{font-size:16px}
}
@media(max-width:600px){
 .scene .expanded-choices{grid-template-columns:1fr}
 .scene-lab .lab-activity h2{min-height:0}
 .scene .game-header{flex-wrap:wrap;justify-content:center}
 .scene .game-header>a{flex:1}
 .scene .game-meta{flex:none}
 .scene .worked-task strong{font-size:28px}
}
