@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--cream:#f5f0dc;--muted:#9da99d;--lime:#d4f28b}*{box-sizing:border-box}body{margin:0;background:#101c19;color:var(--cream);font-family:Manrope,system-ui,sans-serif;background-image:radial-gradient(ellipse at 50% 30%,#22372a55,transparent 70%)}button,input{font:inherit}button,a,label.photo-label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,label.photo-label:focus-within{outline:3px solid var(--lime);outline-offset:4px}header{max-width:1440px;margin:auto;padding:26px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff0d}.brand{text-decoration:none;color:var(--cream);font-size:20px;font-weight:800;letter-spacing:3px;display:flex;align-items:center;gap:12px}.brand-icon{font-size:32px;color:var(--lime)}.brand-note{font-size:10px;color:var(--muted);font-weight:500;letter-spacing:.3px;border-left:1px solid #ffffff25;padding-left:18px;margin-left:12px}.coop{font-size:10px;letter-spacing:1.5px;background:#c6e6ab09;padding:9px 12px;border:1px solid #bdd69624;border-radius:30px}.coop i{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:7px}main{max-width:1330px;padding:38px 5% 20px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;color:#c7db9e;font-weight:700}h1{font-size:clamp(23px,3vw,38px);line-height:1.25;margin:12px 0 0;letter-spacing:-1.3px}h1 span{display:block;font-size:13px;letter-spacing:0;color:var(--muted);font-weight:400;margin-top:10px}.quiet{background:transparent;border:1px solid #ffffff28;color:var(--cream);border-radius:9px;padding:12px 17px;font-size:12px}.quiet:hover{background:#ffffff0b}.game-shell{border:1px solid #a9bd8a32;border-radius:16px;overflow:hidden;box-shadow:0 20px 70px #0003}.game-top,.game-bottom{display:flex;align-items:center;justify-content:space-between;background:#1c2c25;padding:13px 22px;font-size:10px;letter-spacing:1.8px;color:#c7d0b9}.tiny-star{color:var(--lime);margin-right:8px}.game-top>div{display:flex;align-items:center;gap:17px}.game-top button{background:none;border:none;color:#c7d0b9;font-size:20px;line-height:20px;width:24px;padding:0}.game-top #score{letter-spacing:1px;color:var(--lime);font-weight:700;margin-right:10px}.viewport{position:relative;background:#172c29;aspect-ratio:2/1}canvas{display:block;width:100%;height:100%}.game-bottom{font-size:10px;letter-spacing:.1px;padding:13px 20px;color:#b1bca8}.game-bottom>span:last-child{color:#718574}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(90deg,#10262166,#102621ba 30%,#102621ba 70%,#10262166);backdrop-filter:blur(3px);padding:20px}.chapter{font-size:9px;letter-spacing:2px;color:var(--lime);font-weight:700}.overlay h2{font-size:clamp(25px,4vw,49px);margin:15px 0 5px;letter-spacing:-1.6px}.overlay p{font-size:13px;color:#becbb8;line-height:1.8;margin:10px 0 23px}.primary{border:0;border-radius:9px;color:#1e311a;background:var(--lime);padding:15px 23px;font-size:12px;font-weight:800;box-shadow:0 5px 28px #a7ce5b17}.primary:hover{background:#e3ffac;transform:translateY(-1px)}.primary span{margin-left:20px}.overlay small{font-size:9px;color:#a4b59c;margin-top:17px}.hidden{display:none!important}.below{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:20px;margin-top:25px}.controls{display:flex;gap:12px;align-items:center;border-right:1px solid #ffffff14}.player-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;font-weight:800}.orange{background:#e4a56418;color:#efb176;border:1px solid #e4a56433}.blue{background:#83bbc418;color:#8bc7d8;border:1px solid #83bbc433}.controls strong,.tip strong{display:block;font-size:12px;margin-bottom:7px}.controls span{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}kbd{font:10px Manrope,system-ui;border:1px solid #ffffff25;border-bottom-width:2px;border-radius:4px;min-width:21px;height:22px;display:inline-grid;place-items:center;color:#d2dbca}.tip{display:flex;gap:12px;align-items:center}.tip>span{font-size:28px;color:var(--lime)}.tip p{font-size:10px;line-height:1.7;color:var(--muted);margin:0}.tip strong{color:#d7dfcc;margin:0}.footer-note{text-align:center;color:#6b8071;font-size:10px;margin-top:36px}#toast{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:10px 18px;border-radius:25px;background:#172c25ec;font-size:12px;color:var(--lime);text-align:center;pointer-events:none;opacity:0;transition:opacity .3s;width:max-content;max-width:90%}#toast.show{opacity:1}dialog{background:#1c3027;border:1px solid #647d4c;color:var(--cream);border-radius:17px;padding:35px;max-width:620px;width:94%}dialog::backdrop{background:#071610cc;backdrop-filter:blur(6px)}dialog h2{font-size:25px;margin-bottom:12px}dialog p{font-size:12px;color:var(--muted);line-height:1.8}.close{position:absolute;right:15px;top:10px;font-size:25px;color:var(--muted);background:none;border:none}.hero-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:25px 0}.hero-fields label{font-size:12px;display:block;margin-bottom:9px}.hero-fields input[type=text],.hero-fields input:not([type]){width:100%;border:1px solid #ffffff30;background:#0f241b;color:var(--cream);padding:12px;border-radius:7px;font-size:12px}.photo-label{border:1px dashed #a9c48066;padding:15px 9px;border-radius:7px;text-align:center;margin-top:12px;cursor:pointer;color:#c7db9e}.hero-fields input[type=file]{font-size:10px;max-width:100%;color:var(--muted)}.photo-preview{width:60px;height:60px;border-radius:50%;object-fit:cover;margin-top:10px}@media(max-width:700px){header{padding:17px 5%}.brand-note{display:none}main{padding-top:25px}.heading{gap:10px}.quiet{font-size:10px;padding:10px}.game-top{padding:10px 12px}.game-bottom{padding:10px 12px}.game-bottom>span:last-child{display:none}.below{grid-template-columns:1fr 1fr;gap:15px}.tip{grid-column:span 2}.controls:nth-child(2){border:0}.overlay p{font-size:10px;margin:5px 0 10px}.overlay h2{margin:7px 0}.overlay .primary{padding:10px 18px}.overlay small{margin-top:8px;font-size:8px}.chapter{font-size:8px}.viewport{aspect-ratio:1.7}.footer-note{margin-top:25px}.hero-fields{gap:12px}dialog{padding:25px 18px}dialog h2{font-size:20px}}
@media(max-width:450px){.below{grid-template-columns:1fr}.controls{border:0}.tip{grid-column:span 1}.game-top{letter-spacing:.8px}.game-top>div{gap:8px}.game-top #score{white-space:nowrap}.heading{align-items:flex-start}.viewport{aspect-ratio:1.25}.overlay p{font-size:11px}.overlay h2{font-size:28px}}
@media(max-width:450px){.below{grid-template-columns:1fr}.controls{border:0}.tip{grid-column:span 1}.game-top{letter-spacing:.8px}.game-top>div{gap:8px}.game-top #score{white-space:nowrap}.heading{align-items:flex-start}.viewport{aspect-ratio:1.25}.overlay p{font-size:11px}.overlay h2{font-size:28px}}
.player-icon{width:52px;height:52px;flex:0 0 52px;overflow:hidden}.player-icon canvas{width:100%;height:100%;object-fit:cover}.photo-preview.atlas-preview{border:2px solid #d4f28b55;background:#12261b}
.blue{background:#c9afa018;color:#d8c9bd;border-color:#c9afa033}
.sound-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;color:#aab9a4;font-size:11px}.sound-controls button{background:#20342a;color:#cbdab9;border:1px solid #b9d49a30;border-radius:7px;padding:9px 12px;font-size:11px}.sound-controls button[aria-pressed=false]{color:#899c88;background:transparent}.sound-controls label{display:flex;align-items:center;gap:10px}.sound-controls input{width:90px;accent-color:#d4f28b}.sound-controls #audioStatus{font-size:10px}.sound-controls button:disabled{cursor:default;opacity:.5}
/* Accounts, administrator cabinet and math adventure */
.account{display:flex;gap:18px;align-items:center;font-size:13px}.auth-card{max-width:480px;margin:35px auto 60px;padding:36px;background:linear-gradient(140deg,#243c2d,#172b24);border:1px solid #d4f28b30;border-radius:20px;box-shadow:0 24px 70px #0003}.auth-card h1{font-size:30px}.auth-card p{color:#b8c7ad;font-size:13px;line-height:1.8}.auth-card small,dialog small{display:block;color:#91a88f;font-size:11px;line-height:1.7;margin-top:12px}form>label{display:block;font-size:12px;color:#cddac1;margin:18px 0}form>label>input:not([type=checkbox]){display:block;width:100%;margin-top:8px;padding:12px 14px;border:1px solid #c7db9e38;border-radius:8px;background:#10231c;color:#f5f0dc}form .primary{margin-top:8px}button:disabled{opacity:.55;cursor:wait;transform:none}#authError,#userError{color:#ffb6a2}.loading{text-align:center;padding:60px 20px;color:#c7db9e}.admin-note{padding:17px 22px;background:#d4f28b09;border:1px solid #d4f28b22;border-radius:10px;color:#b7c9a7;font-size:13px;line-height:1.8}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:20px;margin:26px 0}.user-card{background:#1b3026;border:1px solid #ffffff16;border-radius:16px;padding:24px}.student-portrait{width:65px;height:65px;border-radius:50%;background:#2c422e;border:1px solid #d4f28b33}.user-card h3{margin:16px 0 6px}.user-card p{color:#9fb498;font-size:12px;margin-bottom:22px}.user-card strong{font-size:13px;color:#d4f28b}.user-card progress{display:block;width:100%;height:7px;accent-color:#d4f28b;margin:12px 0 24px}.user-card .quiet{width:100%}.hero-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-choices label{display:flex;align-items:center;flex-direction:column;gap:10px;cursor:pointer;padding:15px 8px;border:1px solid #ffffff22;border-radius:12px;font-size:11px;text-align:center}.hero-choices label:has(input:checked){border-color:#d4f28b;background:#d4f28b0c}.hero-choices canvas{width:70px;height:70px;border-radius:50%;background:#10231c}.hero-choices input{accent-color:#d4f28b}fieldset{border:0;padding:0;margin:22px 0}legend{font-size:12px;margin-bottom:12px}.checkbox{display:flex;gap:8px}.progress{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;text-align:right}.progress strong{font-size:27px;color:#d4f28b}.progress span{font-size:10px;color:#aab99a}.task-status{color:#b9c9aa;font-size:12px;margin-top:24px;line-height:1.8}.below{grid-template-columns:1fr 2fr}.touch-controls{display:flex;gap:12px;margin-top:15px;touch-action:none}.touch-controls button{border:1px solid #d4f28b44;background:#223c2c;color:#d4f28b;border-radius:10px;padding:12px 23px;user-select:none;touch-action:none}.touch-controls button:last-child{margin-left:auto}.overlay p{max-width:620px}.viewport{aspect-ratio:2/1}#adminStatus{font-size:12px;color:#d4f28b}
@media(max-width:700px){.auth-card{padding:24px;margin:12px auto}.account{gap:8px;font-size:11px}.brand{font-size:14px;letter-spacing:1px}.brand-icon{font-size:24px}.heading{flex-wrap:wrap}.progress strong{font-size:20px}.below{grid-template-columns:1fr}.tip{grid-column:auto}.game-top{font-size:9px}.overlay p{font-size:10px;line-height:1.5}.overlay h2{font-size:24px}.overlay .chapter,.overlay small{display:none}.hero-choices{gap:8px}.viewport{aspect-ratio:2/1}.game-bottom{font-size:9px}}
.leaderboard-scroll{overflow:auto;max-height:55vh;margin:18px 0}.leaderboard-table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.leaderboard-table th{position:sticky;top:0;background:#1c3027;color:#a9bd9c;font-size:11px;padding:12px}.leaderboard-table td{padding:12px;border-bottom:1px solid #ffffff12}.leaderboard-table td:first-child{color:#d4f28b;font-weight:800}.leaderboard-table td:last-child{white-space:nowrap;font-weight:700}.leaderboard-table .is-me{background:#d4f28b12}.leaderboard-hero{display:flex;align-items:center;gap:12px;overflow-wrap:anywhere}.leaderboard-hero canvas{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#10231c}#leaderboardStatus{color:#d4f28b}#leaderboardDialog{max-width:680px}@media(max-width:700px){header{flex-wrap:wrap;gap:14px}.account{flex-wrap:wrap}.leaderboard-table td,.leaderboard-table th{padding:10px 6px}.leaderboard-hero{gap:7px}.leaderboard-table{font-size:12px}}
.coop-panel{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:14px 18px;margin-bottom:24px;border:1px solid #d4f28b33;background:#d4f28b09;border-radius:10px;font-size:12px;color:#cdddba}
.death-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse,#571a2060,#3a1119d9);backdrop-filter:blur(1.5px);color:#fff1de;z-index:5;pointer-events:auto;animation:death-flash .5s ease-out}.death-overlay h2{margin:4px;font-size:clamp(25px,4vw,50px)}.death-overlay p{font-size:12px;line-height:1.7;color:#ffd0bc;margin:8px}.death-overlay strong{display:grid;place-items:center;font-size:clamp(32px,5vw,62px);width:90px;height:90px;border:3px solid #ff9271;border-radius:50%;background:#8a2f3355;margin:12px}.death-symbol{font-size:30px;color:#ff9c79}@keyframes death-flash{from{background-color:#ffead4dd}to{background-color:transparent}}@media(max-width:700px){.death-overlay p{font-size:10px;margin:4px}.death-overlay strong{width:50px;height:50px;margin:6px}.death-symbol{display:none}}

@media(max-width:700px){.touch-controls{gap:8px}.touch-controls button{padding:12px 13px;font-size:12px}}

.online-hud{position:absolute;top:12px;right:12px;width:216px;max-width:42%;padding:10px 12px;border:1px solid #d4f28b19;border-radius:10px;background:#10251dc4;color:#c4d3b8;font-size:11px;z-index:1;opacity:.82;transition:opacity .2s}.online-hud:hover,.online-hud:focus-within{opacity:1}.online-heading{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#a3b69a;margin-bottom:6px}.online-heading>span:first-child{color:#d4f28b}.online-hud ol{list-style:none;margin:0;padding:0;max-height:114px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#788c60 transparent}.online-player{display:grid;grid-template-columns:28px minmax(0,1fr) 30px;gap:5px;padding:4px 0;align-items:center}.online-rank{color:#9bb490;font-variant-numeric:tabular-nums}.online-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-score{text-align:right;font-variant-numeric:tabular-nums;color:#d8e5ca}.online-player.is-me .online-name{color:#e5edb4}.viewport:has(.overlay:not(.hidden)) .online-hud,.viewport:has(.death-overlay:not(.hidden)) .online-hud{visibility:hidden}
@media(max-width:700px){.online-hud{top:6px;right:6px;width:170px;padding:6px 8px;font-size:9px}.online-heading{font-size:8px;margin-bottom:3px}.online-player{grid-template-columns:21px minmax(0,1fr) 20px;padding:2px 0;gap:3px}.online-hud ol{max-height:60px}}

.teacher-hint{margin-top:18px;padding:15px 18px;border:1px solid #e5c88340;border-radius:12px;background:#d7c77a0d;color:#e4dfbb;font-size:13px;line-height:1.7}.badge-panel{margin-top:18px;padding:16px 18px;border:1px solid #d4f28b20;border-radius:12px;background:#1b30269c;font-size:12px;color:#c6d3b6}.badge-panel>div:first-child{display:flex;justify-content:space-between;margin-bottom:12px}#badgeShelf{display:flex;flex-wrap:wrap;gap:8px}.reward-badge{padding:7px 10px;border-radius:20px;border:1px solid #b6c99520;color:#84917c;background:#183025}.reward-badge.earned{color:#e1edb8;border-color:#e1cd7955;background:#56683540}.celebration-banner{position:absolute;top:16px;left:15%;max-width:58%;padding:12px 18px;border:1px solid #e8d78a66;border-radius:12px;background:#274b36ed;color:#f3edbf;text-align:center;font-size:13px;line-height:1.6;z-index:3;pointer-events:none}.viewport:has(.death-overlay:not(.hidden)) .celebration-banner{visibility:hidden}@media(max-width:700px){.teacher-hint{font-size:11px}.celebration-banner{top:8px;left:8px;max-width:52%;font-size:9px;padding:7px}.reward-badge{font-size:10px;padding:6px 8px}}

.route-guide{margin:12px 2px 0;color:#c4d8ad;font-size:13px;line-height:1.6}

.emotion-controls{display:flex;align-items:center;gap:12px;margin:14px 0;color:#acbea1;font-size:12px}.emotion-controls>span:first-child{white-space:nowrap}#emotionBar{display:flex;flex-wrap:wrap;gap:6px}.emotion-button{padding:7px 10px;border:1px solid #a7c79230;border-radius:9px;background:#233a2c;color:#e4edcf;font-size:17px;cursor:pointer}.emotion-button:hover,.emotion-button:focus-visible{background:#40563a;border-color:#d6e999}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:650px){.emotion-controls{align-items:flex-start;flex-direction:column;gap:7px}.emotion-button{padding:6px 8px}}

@media(max-width:480px){.touch-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.touch-controls button{padding:11px 3px;font-size:10px}.touch-controls button:last-child{margin-left:0}}

.camp-panel{margin:14px 0;padding:16px 20px;border:1px solid #b6cf7d35;border-radius:16px;background:#203b32;color:#e9edcc}.camp-panel>strong{font-size:16px}.camp-panel>p{margin:6px 0 12px;font-size:13px;color:#c8d5b8}.camp-projects{display:flex;flex-wrap:wrap;gap:8px}.camp-project{padding:7px 11px;border:1px solid #b6cf7d30;border-radius:12px;font-size:12px;color:#c8d5b8}.camp-project.is-built{background:#60783c45;border-color:#b5cf7b70;color:#e2efb6}

.game-bottom{gap:12px;flex-wrap:wrap}#interactButton{border:1px solid #c8e39a55;border-radius:8px;background:#365641;color:#edf6cd;padding:10px 14px;font-size:12px;letter-spacing:0;min-height:42px;max-width:100%}#interactButton:disabled{cursor:default;opacity:.5;background:#24392e}#interactButton:not(:disabled):hover{background:#4a7051}@media(max-width:700px){#interactButton{flex:1 1 100%;font-size:11px}.game-bottom>span:first-child{line-height:1.5}}
