@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#090f1c;--panel:#111c2c;--line:#28374a;--muted:#9aaec3;--ink:#f1f6fa;--lime:#c0f76e;--cyan:#5de5db;--purple:#b6a3ff;--orange:#ffca85;font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 82% 10%,#13303566,transparent 43%),var(--bg)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}button{color:inherit}button svg{flex-shrink:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3,.brand,.stat-number,.equation{font-family:'Space Grotesk',system-ui,sans-serif}h1{font-size:clamp(38px,6vw,66px);line-height:1.04;letter-spacing:-2.5px;font-weight:600}h2{font-size:34px;line-height:1.1;letter-spacing:-1px}h3{font-size:20px;font-weight:500}p{line-height:1.65}svg{display:block}button svg,[data-icon] svg{width:21px;height:21px}.app-shell{max-width:1216px;margin:0 auto;padding:0 48px}.header{height:106px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;letter-spacing:1px;font-weight:700;font-size:19px}.brand-mark{display:grid;place-items:center;font-size:38px;line-height:1;width:39px;height:39px;border:1px solid #c0f76e77;border-radius:11px;color:var(--lime);background:#c0f76e0e}.beta{font:600 9px 'DM Sans',sans-serif;letter-spacing:1px;color:var(--muted);border:1px solid var(--line);padding:3px 5px;border-radius:4px;align-self:flex-start;margin-top:4px}.header-actions{display:flex;gap:14px;align-items:center}.icon-btn{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--muted);font-size:13px;padding:12px 4px}.profile-button{border:1px solid var(--line);background:var(--panel);border-radius:100px;padding:8px 14px;display:flex;align-items:center;gap:9px;max-width:170px}.profile-button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan)}main{min-height:calc(100svh - 200px);padding:48px 0 38px}.eyebrow,.small-label{font-size:11px;letter-spacing:1.8px;font-weight:700;line-height:1.5}.eyebrow{color:var(--cyan);display:flex;align-items:center;gap:9px}.small-label{color:var(--muted)}.live-dot{display:inline-block;width:6px;height:6px;background:var(--cyan);border-radius:50%;box-shadow:0 0 12px #5de5db66}.welcome{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}.welcome-copy>h1{margin:24px 0}.welcome h1 span,.summary h1 span{color:var(--lime)}.intro{color:#b4c5d7;font-size:17px;max-width:475px}.name-form{margin-top:30px}.name-form label{display:block;font-size:13px;margin-bottom:10px}.name-controls{display:flex;gap:10px;flex-wrap:wrap}input{min-width:0;border:1px solid #384b61;border-radius:11px;background:#111d2e;color:var(--ink);padding:15px 16px;font-size:16px}input::placeholder{color:#7d92a8}.name-controls input{flex:1;min-width:190px}.primary,.secondary{border-radius:10px;min-height:49px;padding:13px 21px;border:1px solid transparent;display:inline-flex;gap:14px;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:transform .15s,background .15s}.primary{background:var(--lime);color:#14221a;box-shadow:0 4px 24px #c0f76e0a}.primary:hover{background:#d1ff91;transform:translateY(-1px)}.secondary{background:#152236;border-color:#34455d}.secondary:hover{background:#20324b}.compact{min-height:42px;padding:9px 15px}.form-error{min-height:20px;color:var(--orange);font-size:13px}.welcome-facts{display:flex;gap:12px 20px;flex-wrap:wrap;font-size:12px;color:#b7c8d8;margin:24px 0 16px}.welcome-facts>span{display:flex;align-items:center;gap:7px}.welcome-facts svg{width:15px;height:15px;color:var(--cyan)}.storage-note{font-size:12px;color:var(--muted);max-width:660px;margin-top:16px}.welcome-art{position:relative;min-width:0;height:440px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#24667444,transparent 66%)}.hero-art{min-width:0}.hero-art>svg{width:100%;height:100%;overflow:visible}.welcome-art .hero-art{width:300px;height:390px;z-index:1}.orbit{position:absolute;border:1px solid #5de5db22;border-radius:50%;width:340px;height:340px;transform:rotate(-25deg)}.orbit-two{width:410px;height:240px;transform:rotate(-42deg);border-style:dashed}.art-stars{position:absolute;inset:20px;color:var(--lime);display:flex;justify-content:space-between}.art-stars span{align-self:center}.art-label{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:2px;white-space:nowrap;display:flex;align-items:center;gap:10px}.floating-tag{position:absolute;display:flex;align-items:center;gap:8px;padding:11px 13px;border:1px solid #3a5366;border-radius:9px;background:#122234e8;font-size:11px;z-index:2;box-shadow:0 9px 30px #0003}.floating-tag svg{color:var(--lime);width:17px;height:17px}.tag-one{top:100px;right:-10px;transform:rotate(6deg)}.tag-two{bottom:65px;left:-10px;transform:rotate(-5deg)}.welcome-bottom{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;border-top:1px solid var(--line);padding-top:24px;font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:20px}.existing-players{margin:20px 0}.player-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.player-list button{border:1px solid #33475d;border-radius:100px;background:var(--panel);padding:8px 14px;font-size:13px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.section-heading h1{font-size:42px;margin:13px 0 10px;overflow-wrap:anywhere}.section-heading p{color:var(--muted)}.count-badge{background:#ffffff15;border-radius:50px;min-width:22px;padding:3px 6px;font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.mission-panel,.hero-panel{border:1px solid var(--line);border-radius:20px;overflow:hidden;position:relative;min-width:0}.mission-panel{padding:32px;background:radial-gradient(ellipse at 100% 65%,#2a5b5255,transparent 60%),#111f2d;display:flex;flex-direction:column;align-items:flex-start}.mission-panel h2{font-size:44px;margin:20px 0 14px}.mission-panel p{color:#b0c3d4;font-size:14px}.mission-panel .primary{margin-top:22px;z-index:1}.mission-panel .small{margin-top:10px}.mission-microcity{position:absolute;bottom:80px;right:15px;display:flex;align-items:flex-end;gap:6px;height:110px;opacity:.6;transform:skewY(-8deg)}.mission-microcity i{width:25px;background:repeating-linear-gradient(0deg,#51cbb144 0 3px,transparent 3px 16px),#22434e;border-top:2px solid #58c7be66;height:75px}.mission-microcity i:nth-child(2){height:110px}.mission-microcity i:nth-child(3){height:50px}.mission-microcity i:nth-child(4){height:90px}.mission-microcity i:nth-child(5){height:65px}.mission-microcity span{position:absolute;right:30px;top:-45px;color:var(--lime);font-size:38px}.hero-panel{background:radial-gradient(ellipse at 50% 55%,#24536166,transparent 65%),#101a2c;padding:22px;display:grid;grid-template-rows:auto 240px auto}.panel-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid #4a657155;border-radius:100px;background:#5de5db0d;color:var(--cyan);font-size:10px;letter-spacing:1px;line-height:1.5}.hero-caption{text-align:center}.hero-caption span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);margin:26px 0}.stats-row>div{display:flex;flex-direction:column;gap:6px;padding:9px 10px 26px;text-align:center;color:var(--muted);font-size:12px}.stats-row>div+div{border-left:1px solid var(--line)}.stat-number{font-size:34px;color:var(--ink);font-variant-numeric:tabular-nums}.next-reward{display:flex;gap:22px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(110deg,#152332,#111b29)}.reward-preview{width:70px;height:70px;flex-shrink:0;display:grid;place-items:center;background:#273c4566;border-radius:15px}.reward-preview svg{width:42px;height:42px;color:var(--lime)}.next-reward-copy{flex:1;min-width:0}.next-reward h3{margin:6px 0 13px}.progress-track{height:6px;border-radius:8px;background:#33455b77;overflow:hidden}.progress-track>span{height:100%;display:block;background:linear-gradient(90deg,var(--cyan),var(--lime));transition:width .4s ease;width:0;border-radius:8px}.small{font-size:12px}.muted{color:var(--muted)}.next-reward p{margin-top:7px}.text-btn{border:0;background:none;color:var(--muted);padding:10px 0;font-size:13px;text-align:left}.text-btn:hover{color:var(--ink)}.game-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.mission-tag{font-size:11px;letter-spacing:1px;color:var(--cyan);text-align:center}.game-progress{margin:24px 0}.game-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-bottom:10px}.game-progress #game-streak{color:var(--lime)}.game-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px;align-items:stretch}.game-scene{background:radial-gradient(ellipse at 50% 45%,#24616e55,transparent 70%),#101d2d;border-radius:20px;position:relative;overflow:hidden;min-height:480px;display:flex;flex-direction:column;align-items:center;padding:22px 18px}.scene-header{display:flex;justify-content:space-between;gap:15px;width:100%;position:relative;z-index:2}.scene-header #city-energy{font-size:12px;color:var(--cyan);font-variant-numeric:tabular-nums}.game-scene .hero-art{height:300px;width:100%;z-index:1;margin:auto}.scene-caption{text-align:center;z-index:1}.scene-caption p{font-size:12px;color:var(--muted);margin-top:10px;max-width:300px}.city{display:flex;gap:5px;align-items:flex-end;position:absolute;left:0;right:0;bottom:90px;opacity:.6;height:190px}.building{flex:1;position:relative;background:#1c3046;border-top:1px solid #3b566b;display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:10px 7px;align-content:start}.window{height:5px;background:#37506a;transition:background .5s}.window.lit{background:var(--cyan);box-shadow:0 0 9px #5de5db77}.question-panel{border:1px solid var(--line);background:#101b2b;border-radius:20px;padding:36px 24px;display:flex;align-items:center;flex-direction:column;text-align:center;min-width:0}.question-panel .eyebrow{font-size:10px;letter-spacing:1.4px}.equation{font-size:clamp(40px,6vw,68px);letter-spacing:-2px;margin:28px 0 24px;line-height:1.1;white-space:nowrap}#answer-form{display:flex;flex-direction:column;align-items:center;gap:17px;width:100%;max-width:270px}#answer{width:150px;text-align:center;font:500 38px 'Space Grotesk',sans-serif;padding:14px 10px;border:1px solid #4c647c;background:#0a1321}#answer-form .primary{width:100%}.feedback{font-size:14px;min-height:68px;display:flex;align-items:center;justify-content:center;margin-top:10px;max-width:350px;line-height:1.6}.feedback.good{color:var(--lime)}.feedback.try{color:var(--orange)}.hint-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--cyan);font-size:12px;min-height:44px;padding:10px;margin-top:7px}.hint-button svg{width:17px;height:17px}.hint-box{background:#1b2c3e;border:1px solid #39516a;padding:14px;border-radius:12px;font-size:13px;line-height:1.6;width:100%;overflow-wrap:anywhere}.hint-dots{margin-top:10px;display:grid;justify-content:center;gap:3px}.hint-row{letter-spacing:3px;color:var(--cyan);white-space:pre;font-size:12px}.question-footnote{color:var(--muted);font-size:11px;margin-top:auto;padding-top:20px}.cabinet-hero-row{display:flex;align-items:center;gap:25px;background:radial-gradient(ellipse at 20% 60%,#254d6055,transparent 60%),#111e2d;border:1px solid var(--line);border-radius:20px;padding:18px 30px;margin-bottom:30px}.cabinet-hero-row>.hero-art{width:180px;height:200px;flex-shrink:0}.cabinet-hero-row h2{margin:10px 0;overflow-wrap:anywhere}.cabinet-hero-row p{color:var(--muted);font-size:13px}.cabinet-hero-row button{margin-top:15px}.cabinet-tabs{display:flex;gap:22px;margin-bottom:15px;border-bottom:1px solid var(--line)}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:12px 0;color:var(--muted);font-size:14px}.tab.active{color:var(--lime);border-bottom-color:var(--lime)}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.reward-card{background:#111d2d;border:1px solid var(--line);border-radius:15px;padding:20px;text-align:left;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}.reward-card.earned:hover{border-color:var(--cyan)}.reward-card.equipped{border-color:var(--lime)}.reward-card.locked{background:#0e1826}.reward-card .reward-preview{margin:4px 0 10px;width:64px;height:64px}.reward-card.locked .reward-preview{filter:grayscale(1);opacity:.4}.reward-card h3{font-size:16px}.reward-card p{font-size:11px;color:var(--muted)}.reward-card .reward-status{font-size:10px;letter-spacing:.5px;margin-top:auto;padding-top:9px;color:var(--cyan)}.reward-card.locked .reward-status{color:var(--muted)}.summary{max-width:650px;margin:0 auto;text-align:center;display:grid;justify-items:center;gap:24px;padding:15px 0}.summary-emblem{width:100px;height:100px;display:grid;place-items:center;background:#c0f76e0a;border:1px solid #c0f76e44;border-radius:50%;box-shadow:0 0 80px #c0f76e11}.summary-emblem svg{width:55px;height:55px;color:var(--lime)}.summary h1{font-size:clamp(38px,6vw,64px)}.summary-stats{display:flex;gap:45px;flex-wrap:wrap;justify-content:center}.summary-stats div{display:flex;flex-direction:column;gap:10px}.summary-stats strong{font:500 42px 'Space Grotesk',sans-serif}.summary-stats span{font-size:12px;color:var(--muted)}.summary-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.modal{background:#111e2e;color:var(--ink);border:1px solid #416078;border-radius:23px;padding:0;width:min(450px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 140px #0009}.modal::backdrop{background:#040915cf;backdrop-filter:blur(7px)}.modal-inner{padding:34px;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}.modal h2{font-size:32px}.modal p{color:#b7cbdc;font-size:14px}.modal .primary{width:100%}.modal-reward-art{width:120px;height:120px;display:grid;place-items:center;background:radial-gradient(circle,#c0f76e22,transparent 70%)}.modal-reward-art svg{width:80px;height:80px;color:var(--lime)}.about-content{align-items:flex-start;text-align:left}.about-content p{font-size:13px}.about-content .eyebrow{font-size:10px}footer{border-top:1px solid var(--line);padding:22px 0 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:9px;letter-spacing:1.4px;color:var(--muted)}footer .text-btn{font-size:11px;letter-spacing:0}.footer-times{color:var(--lime);padding:0 8px}.save-warning{position:sticky;bottom:12px;background:#4c331d;color:#ffe6c2;border:1px solid #c39753;padding:16px;border-radius:12px;font-size:13px;z-index:5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.celebration{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20}.spark{position:absolute;width:7px;height:12px;background:var(--lime);border-radius:2px;animation:spark 1s ease-out forwards}.spark:nth-child(2n){background:var(--cyan)}.spark:nth-child(3n){background:var(--purple)}@keyframes spark{from{transform:translate(0,0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(300deg);opacity:0}}.pulse{animation:power .4s ease}@keyframes power{50%{transform:scale(1.025);filter:brightness(1.15)}}.character-picker{border:0;padding:0;margin:18px 0}.character-picker legend{font-size:13px;margin-bottom:12px}.character-group-label{font-size:10px;color:var(--muted);letter-spacing:1px;margin:10px 0 8px}.character-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.character-option{position:relative;border:1px solid #354a60;background:#102033;border-radius:10px;padding:4px 2px 8px;color:var(--muted);min-width:0;font-size:10px}.character-option[aria-pressed=true]{border-color:var(--lime);background:#24382d;color:var(--lime)}.character-option svg{height:65px;width:100%}.character-option .check{position:absolute;top:4px;right:5px;color:var(--lime);font-size:10px}.profile-heading{display:flex;align-items:center;gap:10px}.profile-heading svg{height:65px;width:45px}.character-picker-note{font-size:11px;color:var(--muted);margin-top:9px}
@media(min-width:1050px){.welcome h1{font-size:72px}.welcome{gap:45px}.welcome-art{height:490px}}
@media(max-width:850px){.app-shell{padding:0 25px}.welcome{grid-template-columns:1.15fr .85fr;gap:10px}.welcome-art{height:350px}.welcome-art .hero-art{width:240px;height:330px}.orbit{width:250px;height:250px}.orbit-two{width:290px;height:180px}.floating-tag{font-size:9px;padding:8px}.tag-one{right:0;top:60px}.tag-two{left:0;bottom:30px}.mission-panel{padding:25px}.mission-panel h2{font-size:38px}.hero-panel{grid-template-rows:auto 230px auto}.game-layout{grid-template-columns:.75fr 1.25fr;gap:14px}.game-scene{padding:20px 12px}.game-scene .small-label{font-size:9px}.question-panel{padding:30px 18px}.reward-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.app-shell{padding:0 20px}.header{height:80px}.brand{font-size:15px;gap:7px}.brand-mark{width:31px;height:31px;font-size:30px}.beta{font-size:8px}.icon-btn{font-size:11px;gap:5px}.icon-btn svg{width:17px;height:17px}.header-actions{gap:10px}.profile-button{padding:6px 9px;font-size:11px;max-width:110px}.profile-button .avatar-dot{display:none}main{padding:32px 0}.welcome{grid-template-columns:1fr}.welcome-copy{z-index:1}.welcome h1{font-size:clamp(47px,11vw,66px)}.intro{font-size:15px;max-width:460px}.welcome-art{grid-row:2;height:290px;margin-top:-5px}.welcome-art .hero-art{width:230px;height:290px}.orbit{width:250px;height:250px}.orbit-two{width:330px;height:175px;max-width:100%}.tag-one{right:8px;top:50px}.tag-two{left:8px;bottom:30px}.welcome-bottom{font-size:8px;letter-spacing:1px;gap:10px;margin-top:0;padding-top:18px}.name-controls{flex-direction:column}.name-controls input,.name-controls button{width:100%}.name-form{margin-top:25px}.welcome-facts{gap:10px 17px;font-size:11px}.section-heading{align-items:flex-start;flex-direction:column;gap:15px}.section-heading h1{font-size:36px;letter-spacing:-1.5px}.section-heading p{font-size:14px}.dashboard-grid{grid-template-columns:1fr;gap:15px}.mission-panel{padding:27px}.mission-panel h2{font-size:39px}.hero-panel{grid-template-rows:auto 250px auto}.stats-row{margin:24px 0}.stats-row>div{font-size:10px;padding:4px 5px 22px}.stat-number{font-size:29px}.next-reward{padding:17px;gap:15px}.reward-preview{width:52px;height:60px}.next-reward h3{font-size:17px}.next-reward .small-label{font-size:9px}.game-top{flex-wrap:wrap}.mission-tag{font-size:9px}.game-top .secondary{padding:8px 11px;font-size:12px;min-height:40px}.game-top .text-btn{font-size:12px}.game-layout{display:flex;flex-direction:column-reverse}.game-scene{min-height:160px;flex-direction:row;padding:15px 18px;gap:12px}.game-scene .scene-header{position:absolute;left:18px;right:18px;top:15px;width:auto;z-index:2}.game-scene .hero-art{width:120px;height:150px;flex-shrink:0;margin:10px 0 0}.game-scene .scene-caption{padding-top:15px;text-align:left}.game-scene .scene-caption p{font-size:11px;max-width:190px}.city{bottom:0;height:100px}.question-panel{padding:26px 20px}.equation{font-size:52px;margin:23px 0}#answer{font-size:33px;padding:12px}.question-footnote{padding-top:14px}.feedback{min-height:60px;font-size:13px}.game-progress{margin:20px 0}.cabinet-hero-row{padding:15px;gap:13px}.cabinet-hero-row>.hero-art{width:100px;height:170px}.cabinet-hero-row h2{font-size:26px}.cabinet-hero-row p{font-size:11px}.reward-grid{gap:10px}.reward-card{padding:14px}.reward-card h3{font-size:14px}.reward-card .reward-preview{width:50px;height:50px}.reward-card p{font-size:10px}.modal-inner{padding:27px 23px}.modal h2{font-size:29px}footer{flex-wrap:wrap;gap:5px;padding:18px 0;font-size:8px}.header .brand .beta{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* SuperNumo: a comic-book mission, with the maths at its centre. */
.base-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.base-actions .secondary{font-size:12px;padding:12px 15px}.mission-panel::before{content:'';position:absolute;inset:0;background-image:radial-gradient(#72cfb71c .7px,transparent .7px);background-size:11px 11px;mask-image:linear-gradient(90deg,transparent,#000);pointer-events:none}.hero-panel{background:radial-gradient(ellipse at 50% 50%,#24536177,transparent 66%),linear-gradient(135deg,#101a2c,#172038)}.hero-panel::after{content:'';position:absolute;width:210px;height:210px;border:1px solid #5de5db20;border-radius:50%;top:65px;left:50%;transform:translateX(-50%);pointer-events:none}.hero-panel .hero-art{z-index:1}.hero-panel .hero-art>svg{filter:drop-shadow(0 15px 18px #0005)}.welcome-art .hero-art>svg{filter:drop-shadow(0 24px 20px #0005)}.mission-map-panel{margin-top:24px;padding:24px 22px;background:linear-gradient(100deg,#112331,#141c30);border:1px solid var(--line);border-radius:18px}.map-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:23px}.map-heading h3{margin-top:7px;font-size:19px}.mission-map{list-style:none;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));padding:0;margin:0;gap:7px}.mission-stop{position:relative;min-width:0;text-align:center;display:flex;align-items:center;flex-direction:column;gap:9px}.mission-stop::before{content:'';position:absolute;top:18px;left:-50%;width:100%;height:1px;background:var(--line)}.mission-stop:first-child::before{display:none}.mission-stop .map-node{height:38px;width:38px;display:grid;place-items:center;border:1px solid #3e5267;border-radius:11px;background:#122033;color:#7d91a9;z-index:1;font-family:'Space Grotesk',sans-serif;font-size:14px}.mission-stop .map-label{font-size:9px;color:var(--muted);overflow-wrap:anywhere;line-height:1.4}.mission-stop.current .map-node{color:var(--lime);background:#253b31;border-color:var(--lime);box-shadow:0 0 22px #c0f76e13;transform:translateY(-3px)}.mission-stop.current .map-label{color:var(--ink)}.mission-stop.complete .map-node{background:#1c3a3a;border-color:#5de5db66;color:var(--cyan)}.mission-stop.complete::before{background:#5de5db66}.map-node svg{width:18px;height:18px}.compact-map{margin:0 0 24px;gap:8px}.compact-map .map-label{display:none}.compact-map .map-node{width:29px;height:29px;font-size:11px;border-radius:8px}.compact-map .mission-stop::before{top:14px}.sidekick{display:flex;align-items:center;gap:8px;justify-content:center;margin-bottom:12px}.sidekick>span:first-child{display:block;width:38px;height:38px;flex-shrink:0}.sidekick svg{width:100%;height:100%}.sidekick .small-label{font-size:8px;letter-spacing:1.3px;color:var(--cyan)}.game-scene.checkpoint{background:radial-gradient(ellipse at 50% 40%,#43593088,transparent 75%),#112931}.game-scene.checkpoint .scene-caption .pill{color:var(--lime);border-color:#c0f76e55;background:#c0f76e0a}.game-scene.checkpoint .hero-art{animation:heroRise .7s ease-out}@keyframes heroRise{0%{transform:translateY(9px) scale(.96)}100%{transform:translateY(0) scale(1)}}.game-scene .hero-art{transition:filter .3s}.boss-equation{color:var(--lime)}.question-panel.boss-question{border-color:#769d5366;background:radial-gradient(ellipse at 50% 0%,#324f361f,transparent 65%),#101b2b}.question-panel.boss-question .eyebrow{color:var(--lime)}.mission-panel h2{max-width:80%;position:relative;z-index:1}.mission-panel .eyebrow{position:relative;z-index:1}.feedback .feedback-equation{display:block}.reward-card.mission-reward{background:linear-gradient(145deg,#182f3f,#142134 65%);min-height:218px;overflow:hidden}.reward-card.mission-reward::after{content:'×';position:absolute;right:-7px;top:2px;font:500 125px 'Space Grotesk',sans-serif;color:#5de5db06;pointer-events:none}.reward-card.mission-reward:nth-child(3n+2){background:linear-gradient(145deg,#30283e,#172034 65%)}.reward-card.mission-reward:nth-child(3n){background:linear-gradient(145deg,#283b2f,#142134 65%)}.mission-card-number{font-size:9px;color:var(--cyan);letter-spacing:1.5px;order:-1}.earned-mission-card{width:min(100%,360px)}.earned-mission-card .reward-card{padding:24px;text-align:left;border-color:#5de5db66;box-shadow:0 0 60px #5de5db09;transform:rotate(-2deg)}.earned-mission-card .reward-card .reward-preview{width:65px;height:65px}.earned-mission-card .reward-card h3{font-size:24px}.earned-mission-card .reward-card p{font-size:12px}.growth-note{color:var(--cyan)}.report-intro{display:flex;align-items:center;gap:20px;border:1px solid var(--line);border-radius:16px;background:#122334;padding:24px;margin-bottom:25px}.report-intro>span{color:var(--cyan);flex-shrink:0}.report-intro svg{width:40px;height:40px}.report-intro p{font-size:13px;color:var(--muted);margin-top:7px}.table-skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.table-skill{padding:18px;background:#111e2e;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;gap:12px}.table-skill h3{font-size:19px}.table-skill p{font-size:11px;color:var(--muted)}.skill-markers{display:grid;grid-template-columns:repeat(11,1fr);gap:3px}.skill-markers i{height:13px;border-radius:3px;background:#263a50}.skill-markers i.practiced{background:#416c79}.skill-markers i.secure{background:var(--lime)}.skill-key{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap}.skill-key span{font-size:10px;color:var(--muted)}.table-skill .skill-key span:last-child{color:var(--lime)}.report-legend{margin:15px 0 32px;line-height:1.8}.practice-next{padding:24px;border:1px solid var(--line);border-radius:16px;background:#132436;display:grid;gap:13px;margin-bottom:34px}.practice-next h2{font-size:28px}.practice-next>p:not(.small){color:var(--lime);font:500 19px 'Space Grotesk',sans-serif;line-height:1.6}.history-heading{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-bottom:17px}.history-heading h2{font-size:25px}.history-row{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:17px 0;border-bottom:1px solid var(--line)}.history-row h3{font-size:15px}.history-row p{font-size:11px;color:var(--muted);margin-top:5px}.history-row>strong{font:500 20px 'Space Grotesk',sans-serif;color:var(--lime)}.history-row>strong span{font:400 11px 'DM Sans',sans-serif;color:var(--muted);display:block;margin-top:5px}.history-empty{padding:24px 0;color:var(--muted);font-size:14px}.reward-card:not(button){cursor:default}.modal-reward-art.mission-art{width:150px;height:130px;border:1px solid #5de5db33;border-radius:18px;background:linear-gradient(145deg,#2a4e4a,#14243d);transform:rotate(-5deg)}.modal-reward-art.mission-art svg{width:62px;height:62px}.claim-art-hero{width:160px!important;height:180px!important;background:radial-gradient(circle,#5de5db14,transparent 70%)}.claim-art-hero svg{width:100%;height:100%}.welcome-bottom span{white-space:nowrap}
@media(max-width:850px){.table-skills{grid-template-columns:repeat(3,minmax(0,1fr))}.mission-map-panel{padding:20px 16px}.mission-stop .map-label{font-size:8px}.base-actions{justify-content:flex-start}}
@media(max-width:640px){.base-actions{width:100%;gap:9px}.base-actions .secondary{flex:1;padding:10px 9px;font-size:11px;gap:8px}.base-actions .secondary svg{width:17px;height:17px}.mission-map-panel{padding:20px 16px}.map-heading{gap:10px;align-items:flex-start}.map-heading .small{font-size:10px;max-width:70px;text-align:right}.map-heading h3{font-size:17px}.mission-map{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 6px}.mission-stop:nth-child(6)::before{display:none}.mission-stop .map-label{font-size:9px}.mission-stop .map-node{width:34px;height:34px}.mission-stop::before{top:17px}.compact-map{grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin-bottom:20px}.compact-map .mission-stop:nth-child(6)::before{display:block}.compact-map .map-node{width:24px;height:24px;font-size:10px;border-radius:7px}.compact-map .mission-stop::before{top:12px}.compact-map .map-node svg{width:13px;height:13px}.game-scene{min-height:190px}.game-scene .sidekick{justify-content:flex-start;margin-bottom:6px;gap:6px}.game-scene .sidekick>span:first-child{width:30px;height:30px}.game-scene .sidekick .small-label{font-size:7px}.game-scene .scene-caption{padding-top:20px}.game-scene .scene-caption .pill{font-size:8px;letter-spacing:.6px}.game-scene .scene-caption p{font-size:11px;line-height:1.6}.table-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.table-skill{padding:15px 12px}.table-skill h3{font-size:17px}.skill-markers{gap:2px}.skill-markers i{height:11px}.report-intro{padding:20px 16px;gap:13px}.report-intro h3{font-size:18px}.report-intro p{font-size:12px}.report-intro svg{width:30px;height:30px}.practice-next{padding:20px 17px}.practice-next h2{font-size:24px}.history-heading h2{font-size:23px}.history-heading .small{font-size:10px}.cabinet-tabs{gap:20px}.cabinet-tabs .tab{font-size:12px}.reward-card.mission-reward{min-height:200px}.reward-card.mission-reward h3{font-size:15px}.earned-mission-card .reward-card h3{font-size:24px}}
@media print{body{background:#fff!important;color:#111!important}.header,footer,#save-warning,#print-report,#report-home,.celebration,dialog{display:none!important}.app-shell{padding:0;max-width:none}main{padding:0;min-height:0}main>section:not(#report){display:none!important}#report{display:block!important}.section-heading h1{font-size:28px;color:#111}.eyebrow,.small-label,.muted,#report p,.skill-key span,.table-skill p{color:#333!important}.table-skills{grid-template-columns:repeat(4,1fr)}.table-skill,.report-intro,.practice-next{background:#fff!important;border-color:#aaa!important;color:#111!important;break-inside:avoid}.table-skill{gap:7px;padding:10px}.skill-markers i{border:1px solid #999;print-color-adjust:exact;-webkit-print-color-adjust:exact}.skill-markers i.secure{background:#222!important}.skill-markers i.practiced{background:#999!important}.history-row{break-inside:avoid;border-color:#aaa}.history-row strong,.practice-next p{color:#111!important}.storage-note{font-size:10px}.report-legend{font-size:10px;margin-bottom:20px}.practice-next{margin-bottom:20px}.history-heading h2{font-size:22px}}
@media(max-width:370px){#sound-label{display:none}.header{gap:10px}.header-actions{gap:9px}.brand{font-size:14px}.brand-mark{width:28px;height:28px}.profile-button{max-width:95px}.mission-tag{max-width:125px;font-size:8px}.game-top{gap:8px}.sidekick .small-label{letter-spacing:.6px}.game-scene{padding:15px 12px;gap:8px}.game-scene .hero-art{width:100px}.game-scene .scene-caption .pill{letter-spacing:0;font-size:8px}.game-scene .scene-caption p{font-size:10px}.base-actions .secondary{font-size:10px;padding:10px 8px}}
.feedback:empty{min-height:20px;margin-top:0}
/* Touch-first checkpoints. The player chooses when to continue. */
.checkpoint-banner{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;text-align:left;position:relative;overflow:hidden;padding:20px;margin:18px 0 0;border:1px solid #5de5db77;border-radius:16px;background:radial-gradient(ellipse at 0 0,#21666c66,transparent 70%),#142b39;isolation:isolate;scroll-margin-top:12px}
.checkpoint-icon{width:48px;height:48px;color:var(--cyan);display:grid;place-items:center;background:#5de5db12;border-radius:13px}.checkpoint-icon svg{width:33px;height:33px}.checkpoint-kicker{color:var(--cyan);font-size:10px;letter-spacing:1.2px;font-weight:700;margin-bottom:8px}.checkpoint-banner h3{font-size:25px;line-height:1.12;color:var(--ink);margin-bottom:10px}.checkpoint-banner #checkpoint-message{font-size:13px;line-height:1.6;color:#c8d8e4}.checkpoint-banner.confetti{background:radial-gradient(ellipse at 100% 0,#43563077,transparent 80%),#173137;border-color:#c0f76e88}.checkpoint-banner.confetti .checkpoint-icon,.checkpoint-banner.confetti .checkpoint-kicker{color:var(--lime)}.checkpoint-banner.lightning{background:radial-gradient(ellipse at 90% 20%,#64543466,transparent 75%),#202b3d;border-color:#ffca8599}.checkpoint-banner.lightning .checkpoint-icon,.checkpoint-banner.lightning .checkpoint-kicker{color:var(--orange)}.checkpoint-bolts{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.12}.checkpoint-bolts svg{position:absolute;width:65px;height:65px;color:var(--orange);right:5px;top:15px;transform:rotate(10deg)}.checkpoint-bolts svg:nth-child(2){right:70px;top:auto;bottom:-12px;width:95px;height:95px;transform:rotate(-10deg)}.checkpoint-bolts svg:nth-child(3){right:15px;top:auto;bottom:5px;width:40px;height:40px}.checkpoint-enter{animation:checkpointArrive .55s ease-out}.checkpoint-enter .checkpoint-icon{animation:diamondArrive .7s ease-out}.checkpoint-enter .checkpoint-bolts svg{animation:boltArrive .85s ease-out}@keyframes checkpointArrive{from{transform:translateY(12px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes diamondArrive{0%{transform:scale(.7) rotate(-15deg)}60%{transform:scale(1.12) rotate(5deg)}100%{transform:scale(1) rotate(0)}}@keyframes boltArrive{0%{transform:translateY(-40px);opacity:0}50%{opacity:1}100%{transform:translateY(0);opacity:1}}
@media(pointer:coarse){button,.text-btn,.hint-button,.tab,.player-list button{min-height:46px}.character-option{min-height:88px}.header-actions .icon-btn{min-width:44px;min-height:44px}}
@media(min-width:641px) and (max-width:1024px){.app-shell{padding:0 28px}.welcome{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr)}.welcome h1{font-size:clamp(48px,7.5vw,66px)}.welcome-art .hero-art{width:100%;max-width:260px;height:340px}.name-controls{flex-direction:column}.name-controls input,.name-controls .primary{width:100%}.character-option svg{height:78px}.game-layout{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:18px}.question-panel{padding:28px 20px}.equation{font-size:clamp(44px,6.5vw,64px)}#answer{width:165px;min-height:76px;font-size:38px}#check-answer,#next-question{min-height:52px;font-size:16px}.checkpoint-banner{grid-template-columns:40px minmax(0,1fr);padding:18px;gap:12px}.checkpoint-icon{width:40px;height:40px}.checkpoint-banner h3{font-size:23px}.game-scene{padding:20px 14px}.header{height:90px}}
@media(max-width:640px){.app-shell{padding-right:max(16px,env(safe-area-inset-right));padding-left:max(16px,env(safe-area-inset-left))}.game-layout{gap:14px}.question-panel{padding:23px 18px}.question-panel .eyebrow{font-size:9px;letter-spacing:1px}.equation{font-size:clamp(42px,12vw,58px);margin:23px 0}#answer{min-height:70px;font-size:36px;width:145px}#check-answer,#next-question{width:100%;max-width:310px;min-height:52px;font-size:15px}.checkpoint-banner{grid-template-columns:38px minmax(0,1fr);padding:17px 14px;gap:12px;margin-top:17px}.checkpoint-icon{width:38px;height:38px;border-radius:10px}.checkpoint-icon svg{width:27px;height:27px}.checkpoint-kicker{font-size:9px;letter-spacing:.8px}.checkpoint-banner h3{font-size:24px}.checkpoint-banner #checkpoint-message{font-size:13px}.checkpoint-banner:not([hidden])~.equation{font-size:32px;margin:18px 0 7px}.checkpoint-banner:not([hidden])~.feedback{min-height:45px;margin:5px 0 10px}.welcome-facts{gap:12px 16px;line-height:1.5}.game-top{gap:7px}.game-top .compact{min-height:44px}.compact-map .map-node{min-height:27px}.compact-map .mission-stop::before{top:13px}.game-progress{margin:16px 0}.game-progress>div:first-child{font-size:12px}.hint-button{min-height:48px}.question-footnote{font-size:11px}.character-option{padding-bottom:10px}.character-option svg{height:73px}.profile-button{min-height:38px}.header-actions{gap:8px}.header{gap:8px}.header .brand{flex-shrink:0}.header-actions .icon-btn{min-width:34px}#sound-label{display:none}.summary-actions>.primary,.summary-actions>.secondary{min-height:50px}.cabinet-tabs .tab{min-height:48px}.modal{max-height:calc(100dvh - 24px)}.modal .primary{min-height:52px}}
@media(max-width:350px){.brand{font-size:13px;letter-spacing:.6px}.brand-mark{width:27px;height:27px}.profile-button{max-width:85px;font-size:10px}.header-actions{gap:6px}.game-top .mission-tag{font-size:8px;max-width:113px}.game-top .compact{padding:8px;font-size:11px}.game-top .compact svg{width:16px;height:16px}.checkpoint-banner h3{font-size:22px}.character-option{font-size:10px}.character-option svg{height:63px}}
@media(prefers-reduced-motion:reduce){.checkpoint-enter,.checkpoint-enter .checkpoint-icon,.checkpoint-enter .checkpoint-bolts svg{animation:none!important}}
@media(min-width:641px) and (max-width:1100px) and (max-height:850px){.header{height:72px}main{padding-top:22px}.game-progress{margin:14px 0}.compact-map{margin-bottom:16px}.game-scene{min-height:420px}.game-scene .hero-art{height:250px}.question-panel{padding:24px 20px}.checkpoint-banner{margin-top:12px;padding:16px}.equation{margin:22px 0}.feedback{min-height:50px}.question-footnote{padding-top:12px}}
@media(max-width:640px){.equation.solved{font-size:clamp(30px,8.5vw,43px)}}

/* A stable in-game keypad keeps checking and advancing in the same place. */
.number-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;max-width:330px;margin:12px auto 0}.number-pad button{min-height:52px;border:1px solid #3c526b;border-radius:12px;background:#1a2a3f;color:#f4f8ff;font:700 23px inherit;touch-action:manipulation;font-size:23px;cursor:pointer}.number-pad button:active{transform:scale(.96);background:#30485f}.number-pad button:disabled{opacity:.35}.number-pad #pad-enter{background:#c0f76e;color:#102018;font-size:16px;padding:8px;min-width:0}.touch-keypad #check-answer{display:none}.touch-keypad #answer-form{margin:0}.touch-keypad #answer{min-height:52px;height:56px;font-size:32px;margin:0}.touch-keypad .equation{margin:14px 0}.touch-keypad .feedback{min-height:42px;margin:8px 0}.touch-keypad .question-panel{padding-top:20px}.touch-keypad .question-footnote{padding-top:8px}.touch-keypad #answer:disabled{opacity:1;color:#c0f76e}.touch-keypad .checkpoint-banner{margin-top:10px}.touch-keypad .checkpoint-banner:not([hidden])~.equation{margin:10px 0}.number-pad button:focus-visible{outline:3px solid #7ee5fa;outline-offset:2px}
@media(max-width:640px){.touch-keypad .question-panel{padding:18px 14px}.touch-keypad .equation{font-size:40px}.touch-keypad .equation.solved{font-size:36px}.number-pad button{min-height:48px}.touch-keypad .question-footnote{display:none}}

.touch-keypad .equation{line-height:56px;min-height:56px}.touch-keypad .checkpoint-banner:not([hidden])~.equation{line-height:56px}

.scene-energy-track{display:none}
@media(max-width:640px){
body.playing .header{height:54px}body.playing main{padding-top:12px}body.playing .game-progress{margin:10px 0}.playing .compact-map{margin:0 0 10px}.touch-keypad .game-layout{flex-direction:column;gap:10px}.touch-keypad .game-scene{position:sticky;top:6px;z-index:4;min-height:110px;height:110px;padding:8px 12px;display:block;border:1px solid #345369;box-shadow:0 8px 24px #07101dcc}.touch-keypad .game-scene .hero-art{position:absolute;left:6px;top:0;width:105px;height:112px;margin:0}.touch-keypad .game-scene .scene-header{left:120px;right:14px;top:17px;display:flex;align-items:center;gap:5px}.touch-keypad .scene-header .small-label{font-size:8px;letter-spacing:.6px}.touch-keypad .scene-header #city-energy{font-size:24px;font-weight:800;color:var(--lime)}.touch-keypad .game-scene .city{height:80px;opacity:.25}.touch-keypad .game-scene .scene-caption{position:absolute;left:120px;right:10px;top:72px;padding:0}.touch-keypad .scene-caption .sidekick,.touch-keypad .scene-caption p{display:none}.touch-keypad .scene-caption .pill{font-size:8px;letter-spacing:.3px}.touch-keypad .scene-energy-track{display:block;position:absolute;left:120px;right:14px;top:56px;height:7px;background:#07121f;border-radius:8px;overflow:hidden;z-index:2}.scene-energy-track span{display:block;height:100%;background:linear-gradient(90deg,#5de5db,#c0f76e);border-radius:inherit;transition:width .3s}.touch-keypad .question-panel{padding:12px 14px}.touch-keypad .equation,.touch-keypad .equation.solved{font-size:34px;line-height:42px;min-height:42px;margin:6px 0}.touch-keypad #answer{height:44px;min-height:44px;font-size:28px;width:120px}.touch-keypad .number-pad{max-width:280px;margin-top:8px;gap:6px}.touch-keypad .number-pad button{min-height:44px;font-size:21px;border-radius:10px}.touch-keypad .number-pad #pad-enter{font-size:15px}.touch-keypad .feedback{font-size:12px;min-height:32px;margin:6px 0}.touch-keypad .hint-button{min-height:36px;font-size:12px}.touch-keypad .question-panel .eyebrow{font-size:8px}.touch-keypad .checkpoint-banner{padding:10px;margin-top:6px}.touch-keypad .checkpoint-banner h3{font-size:19px}.touch-keypad .checkpoint-banner #checkpoint-message{font-size:11px}.touch-keypad .checkpoint-banner:not([hidden])~.equation{line-height:42px;margin:6px 0}
}
@media(prefers-reduced-motion:reduce){.scene-energy-track span{transition:none}}

#game-hero{position:relative;isolation:isolate}#game-hero .hero-energy-base,#game-hero .hero-energy-light{position:absolute;inset:0;width:100%;height:100%}#game-hero .hero-energy-base{filter:grayscale(.8) brightness(.65)}#game-hero .hero-energy-light{clip-path:inset(var(--hero-fill-top,93%) 0 0 0);opacity:var(--hero-lit,0);filter:brightness(1.5) saturate(1.65) drop-shadow(0 0 5px #5de5db);transition:clip-path .6s ease-out,opacity .3s}#game-hero .hero-energy-base svg,#game-hero .hero-energy-light svg{width:100%;height:100%;display:block}@media(prefers-reduced-motion:reduce){#game-hero .hero-energy-light{transition:none}}

.hero-change{border:1px solid #5de5db55;border-radius:8px;background:#5de5db0c;color:var(--cyan);font:inherit;font-size:11px;font-weight:700;padding:10px 12px;cursor:pointer;min-height:40px;position:relative;z-index:3}.hero-change:hover{background:#5de5db22}.game-hero-change{position:absolute;top:52px;right:16px;font-size:10px;min-height:34px;padding:6px 10px}.hero-dialog{width:min(820px,calc(100vw - 24px));max-width:820px;padding:0;text-align:left}.hero-picker-header{padding:26px 24px 14px}.hero-picker-header h2{font-size:28px;margin:12px 0}.hero-picker-header p{font-size:13px;color:var(--muted);line-height:1.6}.hero-switch-options{padding:8px 24px 20px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.hero-switch-card{border:1px solid #35465f;border-radius:14px;background:#122034;color:#edf5ff;padding:8px 4px 12px;cursor:pointer;display:flex;align-items:center;flex-direction:column;gap:4px;min-width:0}.hero-switch-card svg{width:100%;height:140px}.hero-switch-card strong{font-size:14px}.hero-switch-card span{font-size:10px;color:var(--muted)}.hero-switch-card[aria-pressed=true]{border:2px solid var(--lime);background:#263b35;box-shadow:0 0 20px #c0f76e15}.hero-picker-actions{position:sticky;bottom:0;background:#101c2c;padding:14px 24px;border-top:1px solid #35465f;text-align:center;z-index:4}.hero-picker-actions p{color:var(--lime);font-size:13px;margin:0 0 10px}.hero-picker-actions .text-btn{margin-left:12px}.hero-change:focus-visible,.hero-switch-card:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
@media(max-width:640px){.hero-dialog{max-height:calc(100dvh - 20px)}.hero-picker-header{padding:20px 18px 8px}.hero-picker-header h2{font-size:25px}.hero-switch-options{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 18px 16px}.hero-switch-card svg{height:160px}.hero-picker-actions{padding:12px 14px}.hero-picker-actions .primary{width:100%;min-height:44px}.hero-picker-actions .text-btn{margin:6px 0 0;min-height:36px}.touch-keypad .game-hero-change{left:8px;right:auto;top:84px;padding:3px 6px;min-height:24px;font-size:8px;background:#0a1529e8}.touch-keypad .game-scene .hero-art{height:98px;top:-3px}.touch-keypad .hero-change{touch-action:manipulation}}

@media(max-width:640px){.touch-keypad .game-hero-change{left:120px;right:auto;top:71px;min-height:32px;padding:5px 10px;font-size:10px}.touch-keypad .game-scene .scene-caption{display:none}.touch-keypad .game-scene .hero-art{height:112px;top:0}}

.hint-dialog{width:min(460px,calc(100vw - 28px));padding:24px;text-align:center;max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #5de5db88;box-shadow:0 0 60px #5de5db22}.hint-modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.hint-close{width:44px;height:44px;flex-shrink:0;border:1px solid #587082;border-radius:12px;background:#172c3e;color:#fff;font-size:30px;cursor:pointer}.lyntips-icon{font-size:42px;margin:8px 0}.hint-dialog h2{font-size:32px;margin:8px 0;color:var(--lime)}.hint-equation{font-size:28px;font-weight:800;margin:12px 0}.hint-intro{color:var(--muted);font-size:14px}.hint-dialog .hint-box{display:block;text-align:left;margin:16px 0;max-width:100%;font-size:16px;line-height:1.6}.hint-dialog .hint-dots{overflow:auto;max-height:180px}.hint-dialog .hint-row{white-space:nowrap;font-size:14px;letter-spacing:1px}.hint-dialog .primary{width:100%;min-height:48px}.hint-close:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.hint-dialog::backdrop{background:#030913d9;backdrop-filter:blur(5px)}@media(max-width:350px){.hint-dialog{padding:18px}.hint-dialog .hint-row{font-size:11px}}
