@font-face{font-family:Nunito;src:url('../assets/fonts/font_main.woff2') format('woff2');font-display:swap;font-weight:700}
@font-face{font-family:JetMath;src:url('../assets/fonts/font_number.woff2') format('woff2');font-display:swap;font-weight:700}
:root{--navy:#10233f;--dark:#081729;--teal:#16b8a6;--sky:#4da3ff;--yellow:#ffc857;--coral:#ff6b6b;--cream:#fff7e8;--white:#fff;--green:#59c36a;--purple:#7c6bef;--ink:#17324d;--shadow:0 18px 54px #08172955}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--dark);font-family:Nunito,system-ui,sans-serif;color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}
#app{position:relative;width:100%;height:100%;overflow:hidden;background:var(--navy)}#game-canvas{position:absolute;display:block;width:100%;height:100%;object-fit:cover;image-rendering:auto;background:#8ddf80}
.orientation-guard{position:fixed;z-index:120;inset:0;display:none;place-items:center;padding:24px;background:linear-gradient(150deg,#081729f5,#10233ff2);text-align:center}.mobile-portrait .orientation-guard{display:grid}.orientation-card{width:min(440px,92vw);padding:28px 24px;background:var(--cream);border:4px solid #fff;border-radius:28px;box-shadow:var(--shadow)}.orientation-card h2{margin:5px 0 10px;color:var(--navy);font-size:clamp(25px,7vw,36px)}.orientation-card p{line-height:1.45}.orientation-card small{display:block;margin-top:16px;color:#526578;line-height:1.4}.rotate-phone{position:relative;width:120px;height:92px;margin:0 auto 12px}.rotate-phone i{position:absolute;left:27px;top:11px;width:66px;height:42px;border:6px solid var(--navy);border-radius:10px;background:linear-gradient(135deg,var(--teal),var(--sky));transform:rotate(-8deg);box-shadow:0 6px 0 #10233f33}.rotate-phone i:after{content:"";position:absolute;right:3px;top:13px;width:5px;height:10px;border-radius:3px;background:var(--cream)}.rotate-phone span{position:absolute;right:0;bottom:0;color:var(--coral);font-size:42px;font-weight:900}.orientation-card .btn{width:100%;margin-top:8px}.orientation-card .btn:disabled{opacity:.65;cursor:wait}
.hidden{display:none!important}.screen,.modal{position:absolute;inset:0;display:grid;place-items:center}.screen{z-index:20;background:linear-gradient(#08172966,#081729cc),url('../assets/backgrounds/splash_screen.webp') center/cover}.screen:not(.active){display:none}.glass{background:#fff7e8ee;border:4px solid #ffffffaa;box-shadow:var(--shadow);backdrop-filter:blur(12px)}
.title-card{width:min(680px,90vw);border-radius:36px;padding:30px 48px;text-align:center}.title-logo{width:min(520px,90%);height:auto;display:block;margin:-12px auto -28px}.title-card>p{margin:8px}.title-card #game-title{font-size:clamp(25px,4vw,42px);color:var(--navy)}.subtitle{font-size:19px}.title-actions{display:grid;gap:12px;margin:25px auto 16px;max-width:370px}.btn{border:3px solid var(--navy);background:var(--cream);color:var(--navy);padding:13px 22px;border-radius:16px;font-weight:900;box-shadow:0 5px 0 var(--navy);transition:.15s transform}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--navy)}.btn.primary{background:var(--teal)}.btn.ghost{background:#fff9}.btn.danger{background:var(--coral)}.btn.success{background:var(--green)}.tiny{font-size:13px;opacity:.72}
#hud{position:absolute;z-index:9;left:18px;right:18px;top:16px;display:flex;align-items:center;gap:10px;pointer-events:none}.hud-brand,.hud-stat,.hud-icon{pointer-events:auto;border:3px solid var(--navy);background:#fff7e8ec;box-shadow:0 5px 0 #10233f;border-radius:15px;min-height:48px}.hud-brand{padding:10px 16px;font-size:20px;font-weight:900}.hud-brand span{color:var(--teal)}.hud-stat{display:flex;align-items:center;gap:8px;padding:8px 13px;color:var(--navy)}button.hud-stat{border-style:solid}.hud-stat strong{font-family:JetMath}.hud-icon{width:48px;margin-left:auto;font-weight:900;color:var(--navy)}.hud-icon+.hud-icon{margin-left:0}.rep-track{width:105px;height:13px;border:2px solid var(--navy);border-radius:8px;overflow:hidden}.rep-track i{display:block;width:50%;height:100%;background:linear-gradient(90deg,var(--coral),var(--yellow),var(--green));transition:width .4s}
#mission-pill{position:absolute;z-index:8;left:18px;bottom:20px;display:flex;align-items:center;gap:10px;background:#10233fee;color:#fff;border:3px solid #fff5;border-radius:17px;padding:10px 16px;box-shadow:var(--shadow);max-width:360px}#mission-pill>span{color:var(--yellow);font-size:24px}#mission-pill small{display:block;color:var(--teal);letter-spacing:1px}#interaction-hint{position:absolute;z-index:8;left:50%;bottom:26px;transform:translateX(-50%);display:flex;gap:10px;align-items:center;background:#10233fee;color:#fff;border:3px solid #fff7e888;border-radius:16px;padding:9px 16px}kbd{background:var(--yellow);color:var(--navy);border-radius:8px;padding:6px 10px;box-shadow:0 3px 0 #9b643c;font-family:JetMath}
#toast-stack{position:absolute;z-index:60;right:20px;bottom:20px;display:grid;gap:10px;width:min(360px,calc(100vw - 40px));pointer-events:none}.toast{background:var(--cream);border:3px solid var(--navy);border-left:10px solid var(--teal);border-radius:16px;padding:13px 16px;box-shadow:var(--shadow);animation:toast-in .3s ease}.toast.warn{border-left-color:var(--yellow)}.toast.good{border-left-color:var(--green)}.toast.bad{border-left-color:var(--coral)}@keyframes toast-in{from{transform:translateX(35px);opacity:0}}
.modal{z-index:30;background:#081729b8;padding:22px;backdrop-filter:blur(5px)}.dialog-card{width:min(900px,94vw);display:grid;grid-template-columns:210px 1fr;background:var(--cream);border:5px solid var(--navy);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.dialog-card>img{width:100%;height:100%;min-height:270px;object-fit:cover;background:var(--teal)}.dialog-copy{padding:27px 30px}.dialog-copy small,.minigame-head small{color:var(--teal);letter-spacing:1.5px;font-weight:900}.dialog-copy h2{font-size:32px;margin:3px 0 12px;color:var(--navy)}.dialog-copy p{font-size:19px;line-height:1.55}.row-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.panel-card{width:min(1000px,95vw);max-height:90vh;overflow:auto;background:var(--cream);border:5px solid var(--navy);border-radius:28px;padding:26px;box-shadow:var(--shadow)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-title h2{margin:0;font-size:32px;color:var(--navy)}.icon-btn{width:46px;height:46px;border:3px solid var(--navy);border-radius:14px;background:var(--coral);font-size:28px;font-weight:900;color:var(--navy)}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px}.badge-card{background:#fff;border:3px solid var(--navy);border-radius:20px;padding:13px;text-align:center;min-height:190px}.badge-card.locked{filter:grayscale(1);opacity:.45}.badge-card img{width:94px;height:94px}.badge-card strong{display:block;color:var(--navy)}.badge-card small{display:block;margin-top:5px;color:#587086}.map-wrap{position:relative;background:linear-gradient(#ffffff22,#ffffff22),#a9d98d;border:5px solid var(--navy);border-radius:24px;aspect-ratio:16/9;overflow:hidden}.map-wrap:before{content:"";position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;border:8px solid #fff7e8aa;background:#ead6ae;outline:3px solid #b58b5b66;border-radius:50%;transform:translate(-50%,-50%)}.map-road{position:absolute;background:#d9bd91}.map-road.h{left:0;right:0;top:47%;height:8%}.map-road.v{top:0;bottom:0;left:48%;width:5%}.map-pin{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--navy);background:var(--cream);border-radius:10px;padding:4px 7px;font-size:11px;font-weight:900;box-shadow:0 3px 0 #10233f22}.map-pin.locked{background:#e4e7e9;color:#46596d}.map-player{position:absolute;width:20px;height:20px;border:4px solid #fff;background:var(--coral);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--navy)}
.minigame-shell{width:min(1120px,96vw);height:min(660px,94vh);display:flex;flex-direction:column;background:var(--cream);border:5px solid var(--navy);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.minigame-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 12px}.minigame-head h2{margin:3px 0 0;color:var(--navy);font-size:30px}.minigame-progress{height:9px;background:#cdd7df}.minigame-progress i{display:block;height:100%;width:15%;background:linear-gradient(90deg,var(--teal),var(--sky));transition:.3s}.minigame-body{flex:1;padding:20px 28px 26px;overflow:auto}.feedback{padding:14px 25px;border-top:4px solid var(--navy);font-size:17px}.feedback.good{background:#dff6df;color:#175c26}.feedback.bad{background:#ffe1de;color:#76231d}.feedback.hint{background:#fff0bd;color:#61470b}
.game-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:24px;height:100%}.task-card,.work-card{background:#fff;border:3px solid var(--navy);border-radius:22px;padding:20px}.task-card h3,.work-card h3{color:var(--navy);margin-top:0}.context{line-height:1.5;background:#eaf6ff;border-left:7px solid var(--sky);padding:12px 14px;border-radius:9px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field label{font-size:14px;color:#567}.field input,.field select{width:100%;border:3px solid var(--navy);border-radius:12px;padding:11px;background:var(--cream);font-family:JetMath}.big-number{font-family:JetMath;font-size:44px;color:var(--teal)}input[type=range]{accent-color:var(--teal);width:100%}.slider-output{display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-family:JetMath}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px}.option-card{border:3px solid var(--navy);background:var(--cream);border-radius:16px;padding:15px;text-align:left}.option-card.selected{background:var(--yellow);box-shadow:0 0 0 4px #ffc85755}.chart{height:220px;display:flex;align-items:end;gap:18px;padding:20px 18px 0;border-left:4px solid var(--navy);border-bottom:4px solid var(--navy)}.bar{flex:1;min-width:32px;background:linear-gradient(var(--teal),var(--sky));border:3px solid var(--navy);border-bottom:0;border-radius:10px 10px 0 0;position:relative}.bar span{position:absolute;top:-28px;left:50%;transform:translateX(-50%);font-family:JetMath}.formula{font-family:JetMath;background:var(--navy);color:var(--cream);padding:12px;border-radius:12px;text-align:center;font-size:20px}.step-dots{display:flex;gap:8px;margin-bottom:14px}.step-dots i{width:18px;height:18px;border-radius:50%;background:#cbd4dc}.step-dots i.done{background:var(--teal)}
.mission-level{display:inline-flex;align-items:center;gap:10px;background:var(--level);color:var(--navy);border:3px solid var(--navy);border-radius:999px;padding:7px 15px;margin-bottom:10px;box-shadow:0 4px 0 var(--navy)}.mission-level span{font-family:JetMath;background:var(--cream);border:2px solid var(--navy);border-radius:50%;padding:3px 7px}.mission-road{display:flex;align-items:center;gap:8px;margin-top:25px}.mission-road i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#cbd4dc;border:3px solid var(--navy);font-family:JetMath;font-style:normal}.mission-road i.done{background:var(--green)}.mission-road i.active{background:var(--yellow);transform:scale(1.14)}.mission-asset{text-align:center}.mission-asset img{width:132px;height:132px;filter:drop-shadow(0 8px 8px #10233f2c)}
.interior-room{min-height:620px;background:linear-gradient(#10233f33,#10233f55),var(--room-bg) center/cover;border-radius:20px;padding:18px;display:flex;flex-direction:column}.interior-top{display:flex;justify-content:space-between;align-items:center;background:#fff7e8ed;border:4px solid var(--navy);border-radius:20px;padding:12px 18px}.interior-top h2{margin:2px 0;color:var(--navy)}.interior-top small{color:var(--teal)}.learning-props{align-self:flex-start;display:flex;align-items:center;gap:7px;margin:10px 0;padding:7px 12px;background:#fff7e8e8;border:3px solid var(--navy);border-radius:16px}.learning-props img{width:42px;height:42px;object-fit:contain}.learning-props span{font-size:12px;font-weight:900;color:var(--navy)}.interior-stage{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(360px,1.1fr);gap:20px;margin-top:auto}.book-shelf{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));align-items:end;gap:9px;background:#9b643ce8;border:5px solid var(--navy);border-radius:20px;padding:14px;max-height:330px;overflow:auto}.book-pick{background:var(--cream);border:3px solid var(--navy);border-radius:14px;padding:7px;min-height:112px;color:var(--navy)}.book-pick.selected{background:var(--yellow);transform:translateY(-4px)}.book-pick img{width:48px;height:48px;display:block;margin:auto}.book-pick span{display:block;font-size:12px;line-height:1.15}.book-reader{display:grid;grid-template-columns:150px 1fr;align-items:center;background:#fff7e8f2;border:5px solid var(--navy);border-radius:22px;padding:20px;min-height:250px}.book-reader img{width:130px}.book-reader h3{font-size:25px;margin:5px 0;color:var(--navy)}.book-reader p{line-height:1.55}.interior-actions{background:#fff7e8e8;border:4px solid var(--navy);border-radius:18px;padding:12px;margin-top:18px}.interior-actions small{max-width:420px;color:#46596d;font-weight:800}.interior-actions .btn:disabled{filter:grayscale(.6);opacity:.55;cursor:not-allowed}
.interior-stage.single{grid-template-columns:1fr}.interior-stage.single .book-reader{min-height:330px}
#touch-controls{position:absolute;z-index:10;inset:auto 0 18px 0;display:none;justify-content:space-between;align-items:end;padding:0 22px;pointer-events:none}.dpad{width:160px;display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:4px}.dpad button,.touch-action{pointer-events:auto;touch-action:none;border:3px solid var(--navy);background:#fff7e8d9;color:var(--navy);border-radius:14px;font-weight:900}.dpad [data-dir=up]{grid-column:2}.dpad [data-dir=left]{grid-column:1}.dpad [data-dir=down]{grid-column:2}.dpad [data-dir=right]{grid-column:3}.touch-action{width:72px;height:72px;border-radius:50%;background:var(--yellow);font-size:28px}
.credits-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.credits-layout img{width:100%;border-radius:20px}.credits-layout p{line-height:1.6}.settings-grid{display:grid;gap:14px}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:14px;border:3px solid var(--navy);border-radius:15px;background:#fff}.switch-row input{width:26px;height:26px}
@media (max-width:760px){.title-card{padding:20px}.title-logo{margin-bottom:-14px}.hud-brand{display:none}.hud-stat{padding:6px 9px}.rep-track{width:55px}.game-layout,.credits-layout,.interior-stage{grid-template-columns:1fr}.minigame-shell{height:96vh}.dialog-card{grid-template-columns:100px 1fr}.dialog-card>img{min-height:210px}.dialog-copy{padding:18px}.dialog-copy p{font-size:16px}.field-grid{grid-template-columns:1fr}.minigame-body{padding:14px}#mission-pill{display:none!important}.book-shelf{grid-template-columns:repeat(2,minmax(90px,1fr));max-height:300px}.book-reader{grid-template-columns:90px 1fr}.book-reader img{width:80px}.interior-room{min-height:820px}.learning-props{max-width:100%;overflow:auto}.map-pin{font-size:9px;padding:3px 5px}}
@media (pointer:coarse){#touch-controls:not(.hidden){display:flex}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Runtime asset integration */
.loading-screen{z-index:80!important;background:linear-gradient(#08172977,#081729cc),url('../assets/backgrounds/loading_screen.webp') center/cover!important}.loading-card{width:min(560px,88vw);padding:28px;border-radius:30px;text-align:center}.loading-card>img{width:min(390px,84%)}.loading-track{height:20px;background:var(--navy);border:3px solid var(--cream);border-radius:999px;overflow:hidden;margin:18px 0 8px}.loading-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--yellow));transition:width .2s}
.hud-brand>img,.hud-stat>img,.hud-icon>img{width:34px;height:34px;object-fit:contain}.hud-brand>img{margin-right:7px}.hud-brand{display:flex;align-items:center}.hud-icon{display:grid;place-items:center;padding:3px}.hud-icon>img{width:40px;height:40px}.hud-stat>img{width:30px;height:30px}
.dialog-card{position:relative}.dialog-card>.dialog-ui-art{position:absolute;right:14px;top:12px;width:68px!important;height:68px!important;min-height:0!important;object-fit:contain;opacity:.32;background:transparent;z-index:0}.dialog-card>#dialog-portrait{width:100%;height:100%;min-height:270px;object-fit:cover;background:var(--teal)}.dialog-copy{position:relative;z-index:1}
.btn{background-image:url('../assets/ui/ui_choice_button.svg');background-repeat:no-repeat;background-position:right 7px center;background-size:32px 32px;padding-right:45px}.settings-grid{position:relative}.settings-grid:before{content:"";position:absolute;right:8px;top:-68px;width:56px;height:56px;background:url('../assets/ui/ui_settings_panel.svg') center/contain no-repeat}
.field input,.field select{background-image:url('../assets/ui/ui_input_box.svg');background-repeat:no-repeat;background-position:right 5px center;background-size:32px 32px;padding-right:42px}input[type=range]{height:36px;background:transparent}input[type=range]::-webkit-slider-thumb{appearance:none;width:34px;height:34px;border:0;background:url('../assets/ui/ui_slider_handle.svg') center/contain no-repeat}
.feedback{display:flex;align-items:center;gap:12px}.feedback img{width:44px;height:44px;flex:0 0 auto}.mission-road i{font-size:0;background:#cbd4dc url('../assets/ui/ui_progress_star_empty.svg') center/cover no-repeat;border:0}.mission-road i.done,.mission-road i.active{background-image:url('../assets/ui/ui_progress_star_filled.svg');background-color:transparent}.mission-road i:after{content:attr(title);font-size:0}
.dpad{position:relative}.joystick-base{position:absolute;width:158px;height:158px;inset:-2px;z-index:-2;opacity:.85}.joystick-knob{position:absolute;width:68px;height:68px;left:46px;top:46px;z-index:-1;opacity:.9}.touch-action{padding:0;overflow:hidden}.touch-action img{width:100%;height:100%}
.asset-ribbon{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.asset-ribbon img{width:54px;height:54px;border:2px solid var(--navy);border-radius:12px;background:var(--cream)}.result-celebration{display:grid;place-items:center;height:100%;text-align:center;position:relative}.result-panel-art{position:absolute;width:min(520px,90%);height:90%;opacity:.08;z-index:0}.result-celebration>*:not(.result-panel-art){position:relative;z-index:1}.atlas-preview{display:block;width:min(512px,80vw);image-rendering:pixelated;background:#fff;border:3px solid var(--navy);border-radius:14px;margin:10px auto}.source-link,.map-data a{display:inline-block;color:var(--navy);margin:6px 10px;font-weight:900}.achievement-heading{margin-top:30px}.achievement-grid{grid-template-columns:repeat(5,minmax(120px,1fr))}.credits-brand{display:grid;grid-template-columns:1fr 1.8fr;gap:14px;align-items:center;margin-bottom:18px}.credits-brand img{width:100%;max-height:150px;object-fit:contain}.map-data{margin-top:14px;padding:10px 14px;border:3px solid var(--navy);border-radius:14px;background:#fff}
.learning-props img.material-swatch{border:2px solid var(--navy);border-radius:9px}
.interior-tool-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.learning-apps{display:flex;gap:8px;flex-wrap:wrap}.learning-app-btn{display:flex;align-items:center;gap:7px;background:#fff7e8;border:3px solid var(--navy);border-radius:14px;padding:7px 11px;color:var(--navy);font-weight:900;box-shadow:0 3px 0 #10233f33}.learning-app-btn:hover,.learning-app-btn.selected{background:var(--yellow);transform:translateY(-2px)}.learning-app-btn img{width:32px;height:32px}.book-reader.app-mode{display:block;overflow:auto}.learning-app-workbench{width:100%;color:var(--navy)}.learning-app-workbench h3{margin:4px 0}.learning-app-workbench p{margin:5px 0 12px}.app-input-grid{display:grid;grid-template-columns:1fr 82px 1fr;gap:8px;align-items:end}.app-input-grid.simulator{grid-template-columns:1fr 1fr}.app-input-grid label{display:grid;gap:4px;font-size:12px;font-weight:900}.app-input-grid input,.app-input-grid select{width:100%;min-width:0;border:3px solid var(--navy);border-radius:12px;padding:9px;background:#fff;font:800 15px Nunito;color:var(--navy)}.app-run{margin-top:10px}.app-output{display:block;margin-top:10px;padding:10px 12px;border:3px dashed var(--teal);border-radius:12px;background:#e9fffa;font-weight:900}.app-generator-meta{display:inline-block;padding:4px 9px;border-radius:999px;background:#e6efff;color:#315d91;font-size:12px;font-weight:900}.learning-app-workbench .row-actions{margin-top:10px}
.app-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.app-field-grid label{display:grid;gap:4px;font-size:12px;font-weight:900}.app-field-grid input{width:100%;min-width:0;border:3px solid var(--navy);border-radius:11px;padding:8px;background:#fff;font:800 14px Nunito;color:var(--navy)}.generated-graph{display:block;width:100%;height:125px;background:#fff;border:2px solid #bed1df;border-radius:10px;margin-bottom:7px}.graph-axis{stroke:#10233f;stroke-width:2;opacity:.55}.generated-table{width:100%;border-collapse:collapse;background:#fff}.generated-table th,.generated-table td{border:2px solid var(--navy);padding:5px;text-align:center}.generated-bars{height:130px;display:flex;align-items:flex-end;gap:8px;padding:8px 8px 0;background:#fff;border:2px solid #bed1df;border-radius:10px}.generated-bar-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:30px}.generated-bar{width:min(42px,80%);background:linear-gradient(#4da3ff,#16b8a6);border:2px solid var(--navy);border-bottom:0;border-radius:7px 7px 0 0}.generated-bar-item span{display:flex;flex-direction:column;font-size:10px;text-align:center}.generated-bar-item b{font-size:11px}
@media(max-width:760px){.achievement-grid{grid-template-columns:repeat(2,1fr)}.credits-brand{grid-template-columns:1fr}.dialog-card>#dialog-portrait{min-height:210px}.asset-ribbon img{width:44px;height:44px}.learning-apps{width:100%}.learning-app-btn{flex:1;justify-content:center;padding:6px;font-size:11px}.learning-app-btn img{width:26px;height:26px}.app-input-grid,.app-input-grid.simulator,.app-field-grid{grid-template-columns:1fr}.book-reader.app-mode{min-height:300px}}
.generated-pie-wrap{display:grid;grid-template-columns:145px 1fr;gap:14px;align-items:center;background:#fff;border:2px solid #bed1df;border-radius:12px;padding:10px}.generated-pie{width:132px;aspect-ratio:1;border-radius:50%;border:4px solid var(--navy);display:grid;place-items:center;box-shadow:inset 0 0 0 2px #fff}.generated-pie em{display:grid;place-items:center;width:54px;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--navy);font-style:normal;font-size:12px;border:2px solid var(--navy)}.generated-legend{display:grid;gap:5px}.generated-legend span{display:grid;grid-template-columns:14px 1fr auto;gap:6px;align-items:center;font-size:11px}.generated-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--navy)}.generated-comparison{display:grid;gap:7px;background:#fff;border:2px solid #bed1df;border-radius:12px;padding:10px}.comparison-row{display:grid;grid-template-columns:92px 1fr 65px;gap:8px;align-items:center;font-size:11px}.comparison-row>i{height:18px;background:#e7edf3;border:2px solid var(--navy);border-radius:6px;overflow:hidden}.comparison-row>i b{display:block;height:100%}.comparison-row strong{text-align:right}.generated-gauge{display:block;width:100%;height:130px}.generated-gauge path{fill:none;stroke:#dfe8ee;stroke-width:18;stroke-linecap:round}.generated-gauge .gauge-value{stroke:var(--teal)}.generated-gauge text{text-anchor:middle;fill:var(--navy);font-weight:900;font-size:21px}.generated-gauge text:last-child{font-size:11px}.generated-plan text{fill:var(--navy);font-size:11px;text-anchor:middle;font-weight:900}.generated-tile-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:3px;height:125px;background:#fff;border:2px solid #bed1df;border-radius:12px;padding:8px;margin-bottom:7px}.generated-tile-grid i{min-width:7px;border:1px solid var(--navy);border-radius:3px;opacity:.8}.generated-boxplot line{stroke:var(--navy);stroke-width:4}.generated-boxplot rect{fill:#4da3ff88;stroke:var(--navy);stroke-width:3}.generated-boxplot .median{stroke:#ff6b6b;stroke-width:5}.generated-heatmap{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.generated-heatmap div{display:flex;justify-content:space-between;align-items:center;min-height:58px;padding:10px;border:3px solid var(--navy);border-radius:12px;background:linear-gradient(135deg,#e9fffa,#9ce8d9)}.generated-heatmap span{font-size:11px}.school-gate-interior{min-height:560px;background:linear-gradient(135deg,#e9fffaee,#fff7e8f5);border:5px solid var(--navy);border-radius:22px;padding:18px}.gate-welcome{display:grid;grid-template-columns:minmax(240px,.8fr) 1.2fr;gap:20px;align-items:center;margin:18px 0;padding:15px;background:#fff;border:3px solid var(--navy);border-radius:18px}.gate-welcome img{width:100%;max-height:210px;object-fit:contain}.gate-welcome h3{font-size:26px;margin:0;color:var(--navy)}.gate-zone-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:16px}.gate-zone-grid article{display:flex;gap:8px;align-items:center;background:#fff;border:3px solid var(--navy);border-radius:14px;padding:9px}.gate-zone-grid article>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--yellow);font-weight:900}.gate-zone-grid strong,.gate-zone-grid small{display:block}.gate-zone-grid small{font-size:9px;line-height:1.2;color:#526578}
@media(max-width:760px){.generated-pie-wrap,.gate-welcome{grid-template-columns:1fr}.generated-pie{margin:auto}.gate-zone-grid{grid-template-columns:repeat(2,1fr)}}

/* Polished title screen */
#title-screen{background:linear-gradient(180deg,#08172952,#081729d4),url('../assets/backgrounds/splash_screen.webp') center/cover}
#title-screen .title-card{position:relative;width:min(660px,92vw);border-radius:34px;padding:24px 46px 28px;text-align:center;overflow:hidden;background:#fff7e8f5;border:3px solid #ffffffd9;box-shadow:0 24px 80px #08172977;backdrop-filter:blur(16px)}
#title-screen .title-card:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,var(--teal),var(--sky),var(--yellow),var(--coral))}
#title-screen .title-kicker{margin:3px 0 12px;color:#4b6478;font-size:12px;font-weight:900;letter-spacing:1.8px}
#title-screen .title-logo{width:min(480px,100%);height:auto;display:block;margin:0 auto 10px}
#title-screen #game-title{margin:0;color:var(--navy);font-size:clamp(29px,3.2vw,40px);line-height:1.08;letter-spacing:-.5px}
#title-screen .subtitle{margin:9px 0 0;font-size:17px;color:#3c566c}
#title-screen .title-prompt{max-width:540px;margin:10px auto 0!important;padding:9px 14px;border-radius:13px;background:#e9f7f5;color:#17324d;font-size:14px;font-weight:800;line-height:1.35}
#title-screen .title-actions{display:grid;gap:11px;margin:21px auto 15px;max-width:390px}
#title-screen .tiny{margin:8px 0 0;font-size:12px;color:#526578;opacity:1}
@media(max-width:760px){#title-screen .title-card{padding:20px 20px 24px}#title-screen .title-logo{width:min(420px,100%);margin-bottom:8px}#title-screen .title-kicker{font-size:10px;letter-spacing:1px}#title-screen .title-actions{margin-top:18px}}
@media(max-height:650px) and (min-width:761px){#title-screen .title-card{padding:16px 40px 19px}#title-screen .title-kicker{margin-bottom:7px}#title-screen .title-logo{width:390px;margin-bottom:6px}#title-screen #game-title{font-size:31px}#title-screen .subtitle{font-size:15px}#title-screen .title-actions{gap:8px;margin:14px auto 10px}#title-screen .btn{padding:9px 18px}#title-screen .tiny{font-size:10px}}
.guide-intro{padding:18px;border:3px solid var(--navy);border-radius:18px;background:#e9f7f5}.guide-intro h3{margin-top:0}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.guide-card{padding:16px;border:3px solid var(--navy);border-radius:16px;background:#fff}.guide-card h3{margin:0 0 9px;color:var(--navy)}.guide-card ul,.guide-card ol{margin:0;padding-left:21px;line-height:1.55}.guide-path{display:flex;flex-wrap:wrap;gap:8px}.guide-path span{padding:7px 10px;border-radius:99px;background:var(--navy);color:#fff;font-size:12px;font-weight:900}@media(max-width:760px){.guide-grid{grid-template-columns:1fr}}
.response-instruction{text-align:center;font-weight:800}.mission-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.mission-options .option-card{min-height:62px;font-size:18px}.mission-options .option-card.selected{background:var(--teal);box-shadow:0 3px 0 var(--navy);transform:translateY(2px)}

/* Clear close controls and interactive HUD panels */
.settings-grid:before{display:none!important}
#panel-card .icon-btn[data-close-panel]{position:relative;z-index:5;display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0!important;background:var(--coral)!important;background-image:none!important;color:var(--navy);font:900 30px/1 Nunito;border:3px solid var(--navy);box-shadow:0 4px 0 var(--navy)}
#panel-card .icon-btn[data-close-panel]:hover{transform:translateY(-2px);background:#ff8585!important}
button.hud-brand,button.hud-stat{appearance:none;text-align:left;cursor:pointer;transition:transform .15s,background .15s}
button.hud-brand:hover,button.hud-stat:hover{transform:translateY(-2px);background:#fff}
button.hud-brand:active,button.hud-stat:active{transform:translateY(2px);box-shadow:0 2px 0 #10233f}
.status-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0 20px}.status-card{display:grid;gap:5px;min-height:120px;padding:16px;background:#fff;border:3px solid var(--navy);border-radius:18px}.status-card small{color:#587086;font-weight:900}.status-card strong{font:900 30px JetMath;color:var(--teal)}.status-card p{margin:0;line-height:1.4}.status-focus{padding:16px 18px;background:#eaf6ff;border-left:8px solid var(--sky);border-radius:14px;line-height:1.55}.status-focus h3{margin:0 0 6px;color:var(--navy)}
@media(max-width:760px){.status-summary{grid-template-columns:1fr}.status-card{min-height:90px}button.hud-brand{padding:7px 9px;font-size:0}button.hud-brand span{font-size:0}button.hud-brand>img{margin:0}}

/* Character equipment */
.equipment-hero{display:grid;grid-template-columns:170px 1fr;gap:20px;align-items:center;margin-bottom:15px;padding:14px;background:linear-gradient(135deg,#e9fffa,#fff5d8);border:3px solid var(--navy);border-radius:20px}.character-preview,.equipment-item-preview{position:relative;margin:auto;background:radial-gradient(circle,#fff 0 42%,#b8eee7 43% 67%,transparent 68%);border-radius:50%}.character-preview{width:150px;height:150px}.equipment-item-preview{width:112px;height:112px;margin:2px auto 5px}.character-preview img,.equipment-item-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.equipment-hero h3{margin:0 0 10px}.equipment-stats{display:flex;gap:8px;flex-wrap:wrap}.equipment-stats span{padding:7px 10px;background:#fff;border:2px solid var(--navy);border-radius:999px;font:800 12px Nunito}.equipment-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}.equipment-tabs button{padding:11px;border:3px solid var(--navy);border-radius:13px;background:#fff;color:var(--navy);font-weight:900}.equipment-tabs button.active{background:var(--yellow);box-shadow:0 4px 0 var(--navy)}.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.equipment-card{display:flex;flex-direction:column;align-items:center;min-height:255px;padding:13px;text-align:center;background:#fff;border:3px solid var(--navy);border-radius:17px}.equipment-card.owned{background:#e9fffa}.equipment-card h3{margin:5px 0;font-size:17px}.equipment-card p{min-height:36px;margin:4px 0 10px;font-size:11px;color:#526578}.equipment-card .btn{width:100%;margin-top:auto}.equipment-card select{width:100%;margin-top:auto;padding:9px;border:2px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);font-weight:800}.equipment-empty{display:grid;place-items:center;width:86px;height:86px;margin:8px;border:2px dashed #9badbc;border-radius:14px;color:#718495;font-size:11px}.equipment-condition{min-height:30px!important}.equipment-card button:disabled{opacity:.6;filter:grayscale(.5)}
@media(max-width:760px){.equipment-hero{grid-template-columns:110px 1fr}.character-preview{width:105px;height:105px}.equipment-item-preview{width:96px;height:96px}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-card{min-height:245px}.equipment-tabs button{font-size:11px;padding:9px 4px}}

/* Compact touch-first layout for phones held in landscape. Phone viewports are
   often wider than 760px, so width-only media queries are not sufficient. */
@media (pointer:coarse) and (orientation:landscape), (max-height:650px) and (orientation:landscape){
  #hud{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:max(6px,env(safe-area-inset-top));gap:5px}
  .hud-brand{display:none!important}
  .hud-stat,.hud-icon{min-height:36px;height:36px;border-width:2px;border-radius:10px;box-shadow:0 3px 0 var(--navy)}
  .hud-stat{gap:4px;padding:3px 7px;font-size:13px}
  .hud-stat>img{width:23px;height:23px}
  .hud-icon{width:36px;padding:2px}
  .hud-icon>img{width:29px;height:29px}
  .rep-track{width:48px;height:9px;border-width:1px}
  #mission-pill{display:none!important}
  #interaction-hint{bottom:max(8px,env(safe-area-inset-bottom));gap:5px;padding:5px 9px;border-width:2px;border-radius:10px;font-size:11px}
  #interaction-hint kbd{display:none}
  #touch-controls{inset:auto 0 max(8px,env(safe-area-inset-bottom)) 0;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left))}
  .dpad{width:110px;height:110px;grid-template-columns:repeat(3,34px);grid-template-rows:repeat(3,34px);gap:3px}
  .dpad [data-dir=up]{grid-column:2;grid-row:1}
  .dpad [data-dir=left]{grid-column:1;grid-row:2}
  .dpad [data-dir=down]{grid-column:2;grid-row:3}
  .dpad [data-dir=right]{grid-column:3;grid-row:2}
  .dpad button{border-width:2px;border-radius:10px;padding:0;font-size:12px}
  .joystick-base{width:110px;height:110px;inset:0}
  .joystick-knob{width:48px;height:48px;left:31px;top:31px}
  .touch-action{width:58px;height:58px;border-width:2px}
  #toast-stack{right:max(8px,env(safe-area-inset-right));bottom:76px;width:min(300px,55vw)}
  .toast{padding:8px 10px;font-size:12px;border-width:2px;border-left-width:7px;border-radius:11px}
  .modal{padding:5px}
  .panel-card{width:98vw;max-height:97dvh;padding:14px;border-width:3px;border-radius:18px}
  .panel-title{margin-bottom:10px}
  .panel-title h2{font-size:22px}
  .dialog-card{width:98vw;max-height:97dvh;grid-template-columns:100px 1fr;border-width:3px;border-radius:18px}
  .dialog-card>#dialog-portrait{min-height:190px}
  .dialog-copy{padding:13px 16px;overflow:auto}
  .dialog-copy h2{font-size:23px;margin-bottom:6px}
  .dialog-copy p{font-size:14px;line-height:1.4;margin:7px 0}
  .row-actions{gap:8px;margin-top:10px}
  .btn{padding:8px 38px 8px 13px;border-width:2px;border-radius:11px;box-shadow:0 3px 0 var(--navy);background-size:25px 25px;font-size:13px}
  .minigame-shell{width:99vw;height:98dvh;border-width:3px;border-radius:17px}
  .minigame-head{padding:7px 12px 5px}
  .minigame-head h2{font-size:20px}
  .minigame-body{padding:8px 12px 12px}
  .game-layout{gap:10px}
  .task-card,.work-card{padding:11px;border-width:2px;border-radius:14px}
  .feedback{padding:7px 12px;font-size:13px;border-top-width:2px}
  #title-screen .title-card{width:min(660px,96vw);max-height:96dvh;padding:12px 24px 14px;overflow:auto;border-radius:20px}
  #title-screen .title-kicker{margin-bottom:4px;font-size:9px}
  #title-screen .title-logo{width:260px;margin-bottom:2px}
  #title-screen #game-title{font-size:23px}
  #title-screen .subtitle{margin-top:4px;font-size:13px}
  #title-screen .title-prompt,#title-screen .tiny{display:none}
  #title-screen .title-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-width:520px;margin:10px auto 5px}
  .loading-card{padding:14px;border-radius:20px}
  .loading-card>img{width:260px}
  .loading-track{height:14px;margin:9px 0 4px}
}

/* Phone-only presentation: the world itself is the controller. */
html.mobile-landscape,html.mobile-landscape body,html.mobile-landscape #app{width:100%;height:100%;min-height:100dvh}
html.mobile-landscape #game-canvas{max-width:none;max-height:none;touch-action:none}
html.mobile-landscape #touch-controls{display:none!important}
html.mobile-landscape #mission-pill{display:none!important}
html.mobile-landscape #hud{left:max(7px,env(safe-area-inset-left));right:max(7px,env(safe-area-inset-right));top:max(5px,env(safe-area-inset-top));gap:4px}
html.mobile-landscape .hud-brand{display:none!important}
html.mobile-landscape .hud-stat,html.mobile-landscape .hud-icon{min-height:32px;height:32px;border-width:2px;border-radius:9px;box-shadow:0 2px 0 var(--navy)}
html.mobile-landscape .hud-stat{gap:3px;padding:2px 6px;font-size:12px}
html.mobile-landscape .hud-stat>img{width:20px;height:20px}
html.mobile-landscape .hud-icon{width:32px;padding:1px}
html.mobile-landscape .hud-icon>img{width:26px;height:26px}
html.mobile-landscape .rep-track{width:42px;height:8px;border-width:1px}
html.mobile-landscape #interaction-hint{bottom:max(6px,env(safe-area-inset-bottom));padding:4px 8px;font-size:10px}
html.mobile-landscape #interaction-hint kbd{display:none}
html.mobile-landscape #title-screen .title-card{width:min(540px,96vw);max-height:calc(100dvh - 8px);padding:8px 14px 10px;border-width:2px;border-radius:16px;overflow:auto}
html.mobile-landscape #title-screen .title-card:before{height:5px}
html.mobile-landscape #title-screen .title-kicker{display:none}
html.mobile-landscape #title-screen .title-logo{width:min(190px,45vw);margin:0 auto 2px}
html.mobile-landscape #title-screen #game-title{font-size:18px;line-height:1.05}
html.mobile-landscape #title-screen .subtitle{margin-top:3px;font-size:11px}
html.mobile-landscape #title-screen .title-prompt,html.mobile-landscape #title-screen .tiny{display:none}
html.mobile-landscape #title-screen .title-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-width:450px;margin:7px auto 3px}
html.mobile-landscape #title-screen .btn{min-height:30px;padding:5px 28px 5px 9px;border-width:2px;border-radius:9px;box-shadow:0 2px 0 var(--navy);background-size:19px 19px;font-size:11px}

/* Deluxe visual system */
:root{--deluxe-gold:#ffd36a;--deluxe-cyan:#56e3d2;--deluxe-glass:#0a1a2ce8;--deluxe-line:#ffffff24;--deluxe-shadow:0 30px 90px #02091499,0 10px 30px #07162566}
body{background:radial-gradient(circle at 50% 20%,#173b5e,var(--dark) 56%)}
#app{isolation:isolate}
#game-canvas{filter:saturate(1.06) contrast(1.025);transition:filter .35s ease}
.btn{position:relative;isolation:isolate;overflow:hidden;min-height:48px;background-image:none;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease,filter .18s ease}
.btn:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(115deg,transparent 15%,#ffffff5c 45%,transparent 70%);transform:translateX(-140%);transition:transform .55s ease}
.btn:hover:before{transform:translateX(140%)}
.btn:hover{filter:saturate(1.08);transform:translateY(-3px)}
.btn.primary{background:linear-gradient(135deg,var(--deluxe-cyan),var(--teal) 58%,#0f9186);box-shadow:0 6px 0 #092f37,0 12px 28px #16b8a638}
.btn.ghost{background:#ffffffc9}

#title-screen{isolation:isolate;background:linear-gradient(90deg,#04101dbd 0%,#0718297a 42%,#06152545),url('../assets/backgrounds/splash_screen.webp') center/cover}
#title-screen:before,#title-screen:after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(4px)}
#title-screen:before{width:54vw;height:54vw;left:-26vw;top:-28vw;background:radial-gradient(circle,#16b8a64a,transparent 67%);animation:deluxe-drift 12s ease-in-out infinite alternate}
#title-screen:after{width:44vw;height:44vw;right:-17vw;bottom:-28vw;background:radial-gradient(circle,#ffc85747,transparent 68%);animation:deluxe-drift 15s ease-in-out infinite alternate-reverse}
#title-screen .title-card{width:min(680px,92vw);padding:25px 42px 27px;border:1px solid #ffffff4f;border-radius:32px;background:linear-gradient(145deg,#071727f2,#102b47e8 58%,#0a2138e8);box-shadow:var(--deluxe-shadow);backdrop-filter:blur(22px) saturate(1.25);color:#e8f5fa}
#title-screen .title-card:before{height:3px;background:linear-gradient(90deg,transparent,var(--deluxe-cyan),var(--deluxe-gold),transparent);box-shadow:0 0 22px var(--deluxe-cyan)}
#title-screen .title-card:after{content:"";position:absolute;inset:1px;border-radius:31px;pointer-events:none;box-shadow:inset 0 1px 0 #ffffff2b}
#title-screen .title-kicker{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:13px;color:#b7d3e4;font-size:11px;letter-spacing:2px}
#title-screen .title-kicker i{width:8px;height:8px;border-radius:50%;background:var(--deluxe-cyan);box-shadow:0 0 0 5px #56e3d21f,0 0 15px var(--deluxe-cyan);animation:deluxe-pulse 2s ease-in-out infinite}
#title-screen .title-logo{width:min(360px,78%);margin:0 auto 12px;border:1px solid #ffffff1d;border-radius:20px;box-shadow:0 14px 34px #0209145c}
#title-screen #game-title{color:#fff7e8;font-size:clamp(30px,3.35vw,43px);letter-spacing:-1px;text-shadow:0 3px 22px #0008}
#title-screen .subtitle{color:#a8cadc;font-size:16px;letter-spacing:.2px}
#title-screen .title-prompt{border:1px solid #56e3d236;background:#56e3d210;color:#e1f8f5;font-size:13px}
.title-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px auto 0}
.title-metrics span{display:flex;align-items:baseline;justify-content:center;gap:5px;padding:8px 5px;border:1px solid var(--deluxe-line);border-radius:12px;background:#ffffff08;color:#afc8d7;font-size:10px;letter-spacing:.6px;text-transform:uppercase}
.title-metrics strong{font:900 17px JetMath;color:var(--deluxe-gold)}
#title-screen .title-actions{grid-template-columns:1fr 1fr;gap:9px;max-width:500px;margin:16px auto 13px}
#title-screen .title-actions .btn{min-height:45px;padding:10px 14px;border:1px solid #ffffff35;border-radius:13px;background:#ffffff10;color:#eaf7fb;box-shadow:0 7px 18px #02091436;font-size:13px}
#title-screen .title-actions .btn.primary{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:12px 17px;background:linear-gradient(110deg,var(--deluxe-gold),#ffb845);border-color:#ffe8a4;color:#10233f;box-shadow:0 7px 0 #8b5c19,0 16px 35px #ffc85731;font-size:15px}
#title-screen .title-actions .btn b{font-size:21px;line-height:1}
#title-screen .title-actions .btn.ghost{background:transparent;color:#9fb8c8}
#title-screen .tiny{color:#7798ac;font-size:10px;letter-spacing:.25px}
#title-screen .tiny span{color:#c6e0eb}

.loading-screen{background:linear-gradient(120deg,#04101dd9,#071b2fe6),url('../assets/backgrounds/loading_screen.webp') center/cover!important}
.loading-card{position:relative;overflow:hidden;border:1px solid #ffffff38!important;border-radius:28px!important;background:var(--deluxe-glass)!important;color:#dcecf4;box-shadow:var(--deluxe-shadow)!important;backdrop-filter:blur(22px)!important}
.loading-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,#ffffff10,transparent 70%);animation:loading-sheen 2.3s linear infinite}
.loading-card>*{position:relative}
.loading-kicker{display:block;margin-bottom:12px;color:var(--deluxe-cyan);font-size:10px;font-weight:900;letter-spacing:2.5px}
.loading-card>img{max-width:300px;border-radius:16px}
.loading-card p{color:#b8d0dd}
.loading-track{height:12px;border:1px solid #ffffff2d;background:#020b13b8;box-shadow:inset 0 2px 5px #0008}
.loading-track i{background:linear-gradient(90deg,var(--teal),var(--deluxe-cyan),var(--deluxe-gold));box-shadow:0 0 18px var(--deluxe-cyan)}
.loading-features{display:flex;justify-content:center;gap:8px;margin-top:17px}
.loading-features span{padding:5px 9px;border:1px solid var(--deluxe-line);border-radius:999px;color:#8eabba;font-size:9px;letter-spacing:.5px;text-transform:uppercase}

#hud{top:18px;gap:8px}
.hud-brand,.hud-stat,.hud-icon{min-height:48px;border:1px solid #ffffff31;background:linear-gradient(145deg,#071829eb,#102b46e8);color:#edf9fc;box-shadow:0 10px 24px #0209145c,inset 0 1px 0 #ffffff17;backdrop-filter:blur(14px);transition:transform .18s ease,background .18s ease}
.hud-brand:hover,.hud-stat:hover,.hud-icon:hover{transform:translateY(-2px);background:#123654f2}
.hud-brand{font-size:17px;letter-spacing:.2px}.hud-brand span{color:var(--deluxe-gold)}
.hud-stat strong,.hud-icon{color:#edf9fc}
.hud-stat img,.hud-icon img,.hud-brand img{filter:drop-shadow(0 4px 5px #0007)}
.rep-track{border-color:#ffffff59;background:#020b1380}
#mission-pill,#interaction-hint{border:1px solid #ffffff2c;background:linear-gradient(145deg,#061727ec,#102b46e8);box-shadow:0 14px 35px #02091465;backdrop-filter:blur(14px)}
#mission-pill>span{filter:drop-shadow(0 0 8px var(--deluxe-gold))}
#interaction-hint{animation:interaction-float 2s ease-in-out infinite}
#interaction-hint kbd{box-shadow:0 3px 0 #8b5c19,0 0 18px #ffc85755}

.modal{background:#020a13b8;backdrop-filter:blur(10px) saturate(.82);animation:modal-fade .2s ease both}
.dialog-card,.panel-card,.minigame-shell{border:1px solid #ffffffa8;box-shadow:var(--deluxe-shadow);animation:panel-rise .28s cubic-bezier(.2,.85,.25,1) both}
.panel-card,.minigame-shell{background:linear-gradient(145deg,#fffaf0,#f0f8f7)}
.panel-title{padding-bottom:12px;border-bottom:1px solid #10233f1c}
.panel-title small,.interior-top small{letter-spacing:1.7px}
.icon-btn,#panel-card .icon-btn[data-close-panel]{border:1px solid #ffffff8c!important;border-radius:50%;background:#10233f!important;color:#fff!important;box-shadow:0 7px 18px #08172940!important;transition:transform .18s ease,background .18s ease}
.icon-btn:hover,#panel-card .icon-btn[data-close-panel]:hover{background:var(--coral)!important;transform:rotate(6deg) scale(1.05)}
.task-card,.work-card,.status-card,.badge-card,.equipment-card,.guide-card{border-width:1px;box-shadow:0 12px 28px #10233f12,inset 0 1px 0 #fff}
.context{border-left-width:4px;background:linear-gradient(110deg,#e5f5ff,#f6fbff)}
.formula{background:linear-gradient(135deg,#08192a,#153b5e);box-shadow:0 10px 25px #10233f26}
.minigame-progress{height:7px}.minigame-progress i{background:linear-gradient(90deg,var(--teal),var(--sky),var(--deluxe-gold));box-shadow:0 0 13px var(--sky)}
.feedback{animation:feedback-pop .25s ease both}
.feedback-avatar{position:relative;width:62px;height:56px;flex:0 0 62px;overflow:visible}
.feedback-avatar-stack{position:absolute;inset:-10px -5px;transform-origin:50% 78%}
.feedback .feedback-avatar-stack img{position:absolute;inset:0;width:72px;height:72px;object-fit:contain}
.feedback .feedback-state-icon{position:absolute;z-index:2;top:-4px;right:-3px;width:27px;height:27px;padding:3px;border:2px solid currentColor;border-radius:50%;background:#fff;filter:drop-shadow(0 4px 5px #10233f35)}
.feedback-avatar.celebrate .feedback-avatar-stack{animation:feedback-avatar-celebrate .62s cubic-bezier(.2,.85,.25,1) both}
.feedback-avatar.confused .feedback-avatar-stack{animation:feedback-avatar-confused .48s ease both}
.feedback-avatar.success .feedback-avatar-stack{animation:feedback-avatar-success .9s cubic-bezier(.2,.85,.25,1) both}
.action-cameo{position:absolute;z-index:48;right:24px;bottom:24px;width:108px;height:108px;overflow:visible;border:2px solid #ffffff80;border-radius:31px;background:linear-gradient(145deg,#071829e8,#123b5de6);box-shadow:0 16px 42px #0209147d,inset 0 1px 0 #fff3;pointer-events:none;backdrop-filter:blur(8px)}
.action-cameo>span{position:absolute;inset:-9px;transform-origin:50% 78%}
.action-cameo>span img{position:absolute;inset:0;width:126px;height:126px;object-fit:contain;filter:drop-shadow(0 8px 7px #0007)}
.action-cameo:after{position:absolute;right:-8px;top:-11px;display:grid;place-items:center;width:38px;height:38px;border:3px solid var(--navy);border-radius:50%;background:var(--yellow);color:var(--navy);font:900 22px/1 Nunito;box-shadow:0 6px 13px #0209145c}
.action-cameo.interact:after{content:'↗'}.action-cameo.celebrate:after{content:'★'}.action-cameo.confused:after{content:'?'}.action-cameo.success:after{content:'✦'}
.action-cameo.interact>span{animation:action-cameo-interact .65s cubic-bezier(.2,.85,.25,1) both}
.action-cameo.celebrate>span{animation:feedback-avatar-celebrate .62s cubic-bezier(.2,.85,.25,1) both}
.action-cameo.confused>span{animation:feedback-avatar-confused .48s ease both}
.action-cameo.success>span{animation:feedback-avatar-success .9s cubic-bezier(.2,.85,.25,1) both}
.toast{border-width:1px;border-left-width:7px;box-shadow:0 18px 45px #02091457;backdrop-filter:blur(12px)}

@keyframes deluxe-drift{to{transform:translate3d(5vw,3vw,0) scale(1.08)}}
@keyframes deluxe-pulse{50%{opacity:.58;transform:scale(.78)}}
@keyframes loading-sheen{to{transform:translateX(100%)}}
@keyframes interaction-float{50%{transform:translate(-50%,-5px)}}
@keyframes modal-fade{from{opacity:0}}
@keyframes panel-rise{from{opacity:0;transform:translateY(18px) scale(.985)}}
@keyframes feedback-pop{from{opacity:0;transform:translateY(6px)}}
@keyframes feedback-avatar-celebrate{35%{transform:translateY(-9px) rotate(-5deg) scale(1.08)}70%{transform:translateY(-3px) rotate(5deg) scale(1.04)}}
@keyframes feedback-avatar-confused{20%,60%{transform:translateX(-5px) rotate(-5deg)}40%,80%{transform:translateX(5px) rotate(5deg)}}
@keyframes feedback-avatar-success{32%{transform:translateY(-13px) rotate(-6deg) scale(1.12)}58%{transform:translateY(-6px) rotate(6deg) scale(1.08)}82%{transform:translateY(-2px) scale(1.04)}}
@keyframes action-cameo-interact{35%{transform:translate(7px,-3px) rotate(5deg) scale(1.06)}70%{transform:translate(3px,-1px) rotate(2deg) scale(1.03)}}

@media(max-width:760px){
  #title-screen .title-card{padding:18px 18px 21px}
  #title-screen .title-logo{width:min(300px,72%)}
  .title-metrics span{font-size:8px}.title-metrics strong{font-size:14px}
  #title-screen .title-actions{grid-template-columns:1fr 1fr}
  .loading-features{flex-wrap:wrap}
  .hud-stat{padding:6px 8px}.hud-stat img{width:28px;height:28px}
}
@media(max-height:690px) and (min-width:761px){
  #title-screen .title-card{padding:16px 34px 18px}
  #title-screen .title-logo{width:270px;margin-bottom:7px}
  #title-screen .title-prompt{padding:6px 10px}
  .title-metrics{margin-top:9px}.title-metrics span{padding:5px}
  #title-screen .title-actions{margin:10px auto 8px}
}
html.mobile-landscape #title-screen .title-card{background:linear-gradient(145deg,#071727f5,#102b47ee)}
html.mobile-landscape #title-screen .title-metrics{display:none}
html.mobile-landscape #title-screen .title-actions .btn.primary{grid-column:auto}
html.mobile-landscape #title-screen .title-logo{border-radius:10px}
@media(prefers-reduced-motion:reduce){#title-screen:before,#title-screen:after,.loading-card:before,#interaction-hint,#title-screen .title-kicker i{animation:none!important}}

/* Adaptive performance controls */
.switch-row>span{display:grid;gap:2px}.switch-row>span small{color:#60778a;font-size:11px;font-weight:700}.quality-row select{min-width:180px;padding:9px 11px;border:2px solid var(--navy);border-radius:11px;background:#fff;color:var(--navy);font-weight:900}
html[data-quality=balanced] #title-screen .title-card,html[data-quality=balanced] .loading-card{backdrop-filter:blur(12px) saturate(1.1)}
html[data-quality=balanced] #game-canvas{filter:none}
html[data-quality=balanced] .hud-brand,html[data-quality=balanced] .hud-stat,html[data-quality=balanced] .hud-icon,html[data-quality=balanced] #mission-pill,html[data-quality=balanced] #interaction-hint{backdrop-filter:none;background-color:#0b2339f4}
html[data-quality=balanced] .modal{backdrop-filter:blur(5px) saturate(.9)}
html[data-quality=low] #game-canvas{filter:none}
html[data-quality=low] #title-screen:before,html[data-quality=low] #title-screen:after,html[data-quality=low] .loading-card:before{display:none}
html[data-quality=low] .glass,html[data-quality=low] #title-screen .title-card,html[data-quality=low] .loading-card,html[data-quality=low] .hud-brand,html[data-quality=low] .hud-stat,html[data-quality=low] .hud-icon,html[data-quality=low] #mission-pill,html[data-quality=low] #interaction-hint,html[data-quality=low] .modal,html[data-quality=low] .toast{backdrop-filter:none!important}
html[data-quality=low] .modal{background:#020a13df}
html[data-quality=low] .dialog-card,html[data-quality=low] .panel-card,html[data-quality=low] .minigame-shell{box-shadow:0 12px 30px #02091480}
html[data-quality=low] .action-cameo{backdrop-filter:none;box-shadow:0 10px 24px #02091470}
html.reduce-game-motion *,html.reduce-game-motion *:before,html.reduce-game-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
@media(max-width:760px){.quality-row{align-items:flex-start;gap:10px}.quality-row select{min-width:145px;max-width:48%;font-size:11px}.action-cameo{right:12px;bottom:12px;width:82px;height:82px;border-radius:23px}.action-cameo>span{inset:-8px}.action-cameo>span img{width:98px;height:98px}.action-cameo:after{right:-6px;top:-8px;width:30px;height:30px;font-size:17px}}

/* Experience v2: tactile mission mechanics and readable answer review. */
.mission-mechanic{display:grid;gap:12px;margin:10px 0}.mission-mechanic>small{color:#526b7f;font-weight:900;letter-spacing:.4px;text-transform:uppercase}
.mission-token-bank,.mission-match-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mission-step-track{display:flex;align-items:center;justify-content:center;gap:9px;padding:9px;border:2px solid #bdd8ed;border-radius:13px;background:#f5fbff;color:#526b7f;font-weight:900}.mission-step-track i{color:var(--teal);font-style:normal}.mission-step-track strong{color:var(--navy)}
.mission-token,.mission-match-card,.mission-axis-tick,.mission-decision-card{min-height:54px;border:2px solid var(--navy);border-radius:14px;background:#fff;color:var(--navy);font:900 16px Nunito;box-shadow:0 4px 0 #10233f24;cursor:pointer;touch-action:manipulation;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}
.mission-token:hover,.mission-match-card:hover,.mission-axis-tick:hover,.mission-decision-card:hover{transform:translateY(-2px);background:#eefcf9}
.mission-token.dragging{opacity:.48;transform:scale(.96)}
.mission-dropzone,.mission-match-target{display:grid;place-items:center;min-height:76px;padding:12px;border:3px dashed var(--teal);border-radius:17px;background:#e8fbf7;color:#315568;text-align:center;font-weight:900}
.mission-dropzone.ready,.mission-match-target.ready{border-style:solid;background:#fff2bf;box-shadow:0 0 0 5px #ffc85735}
.mission-dropzone.filled,.mission-match-target.filled{border-style:solid;background:#dcf5dd;color:#175c26}
.mission-match-pairs{display:grid;gap:9px}.mission-match-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(135px,.42fr);align-items:center;gap:10px;padding:10px 12px;border:2px solid #bdd8ed;border-radius:14px;background:#f7fbff;color:var(--navy);font-weight:800}.mission-match-pair select{width:100%;padding:10px;border:2px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);font:800 13px Nunito}.mission-match-pair.matched{border-color:var(--green);background:#effbef;box-shadow:inset 5px 0 0 var(--green)}
.mission-axis{position:relative;padding:26px 8px 4px}.mission-axis:before{content:"";position:absolute;left:8px;right:8px;top:20px;height:4px;border-radius:5px;background:var(--navy)}
.mission-axis-ticks{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.mission-axis-tick{position:relative;padding:14px 5px 8px}.mission-axis-tick:before{content:"";position:absolute;left:50%;top:-12px;width:4px;height:15px;background:var(--navy);transform:translateX(-50%)}
.mission-plot-board{position:relative;min-height:150px;padding:54px 14px 12px 42px;overflow:hidden;border:2px solid var(--navy);border-radius:16px;background-color:#f7fbff;background-image:linear-gradient(#4da3ff20 1px,transparent 1px),linear-gradient(90deg,#4da3ff20 1px,transparent 1px);background-size:24px 24px}.mission-plot-x,.mission-plot-y{position:absolute;display:block;background:var(--navy)}.mission-plot-x{left:28px;right:12px;bottom:35px;height:3px}.mission-plot-y{left:29px;top:12px;bottom:34px;width:3px}.mission-plot-board .mission-axis{padding-top:24px}.mission-axis-tick span{position:absolute;left:50%;top:-27px;width:14px;height:14px;border:3px solid var(--navy);border-radius:50%;background:#fff;transform:translateX(-50%);transition:transform .16s ease,background .16s ease}.mission-axis-tick.selected span{background:var(--coral);transform:translateX(-50%) scale(1.35)}
.mission-axis-tick.selected,.mission-match-card.selected,.mission-decision-card.selected{background:var(--yellow);box-shadow:0 3px 0 var(--navy);transform:translateY(2px)}
.mission-sort-list{display:grid;gap:8px}.mission-sort-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:52px;padding:8px 10px 8px 15px;border:2px solid var(--navy);border-radius:14px;background:#fff;font:900 16px JetMath;color:var(--navy)}
.mission-sort-list.sorted{padding:5px;border:2px solid var(--teal);border-radius:16px;background:#e8fbf7}
.mission-sort-item.answer-selected{background:#fff0bd;box-shadow:inset 5px 0 0 var(--yellow)}.mission-sort-controls{display:flex;gap:5px}.mission-sort-controls button{width:35px;height:35px;border:2px solid var(--navy);border-radius:10px;background:#edf6ff;color:var(--navy);font-weight:900}
.mission-sort-pick{border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.mission-slider-value{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:2px solid var(--navy);border-radius:14px;background:#eef8ff}.mission-slider-value output{font:900 24px JetMath;color:var(--teal)}
.mission-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mission-decision-card{display:grid;gap:3px;padding:10px;text-align:left}.mission-decision-card small{color:#60778a}.mission-decision-card strong{font:900 18px JetMath}
.mission-decision-progress{margin:0;padding:8px 10px;border-radius:10px;background:#edf6ff;color:#526b7f;font-weight:900}.mission-decision-progress.ready{background:#effbef;color:#175c26}
.mission-review{display:grid;gap:10px;margin-top:12px;padding:14px;border:2px solid #59c36a;border-radius:16px;background:#effbef}.mission-review h4{margin:0;color:#175c26}.mission-review p{margin:0;line-height:1.5}.mission-review .btn{justify-self:start}
.mission-mechanic textarea{width:100%;resize:vertical;border:2px solid var(--navy);border-radius:12px;padding:9px;background:#fff;font:700 14px Nunito;color:var(--navy)}.mission-mechanic [disabled]{cursor:default;opacity:.68}
.mission-lock{pointer-events:none;opacity:.62}
@media(max-width:760px){.mission-token-bank,.mission-match-values,.mission-decision-grid{grid-template-columns:1fr}.mission-match-pair{grid-template-columns:1fr}.mission-axis-ticks{gap:4px}.mission-axis-tick{font-size:12px}.mission-review{padding:10px}}
