@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--accent:#49e4ff;--blue:#2485f5;--ice:#d8f8ff;--gold:#f8d591;--muted:#a0adbd;--ink:#080e1b}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:#f8f8f5;font-family:Inter,Arial,sans-serif;overflow:hidden}canvas{display:block;width:100vw;height:var(--app-height,100dvh);touch-action:none}button{font:700 13px Inter,Arial,sans-serif;cursor:pointer;color:inherit;border:1px solid #ffffff28;background:#0b1420b8;letter-spacing:.07em;min-height:44px}button:hover{background:#ffffff20}button:focus-visible{outline:3px solid #78ffff;outline-offset:4px}[hidden]{display:none!important}header{position:absolute;top:0;left:0;width:100%;height:108px;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#060b17b0,transparent);pointer-events:none;z-index:3}.brand{font-size:31px;font-weight:800;letter-spacing:-2px;line-height:1}.brand small{font-size:8px;letter-spacing:2px;display:block;margin-top:8px}.cross{font-size:33px;color:var(--gold);margin-left:9px;text-shadow:0 0 18px #ffc98490}.world{text-align:center;letter-spacing:3px;font-size:10px;color:var(--gold);position:absolute;left:50%;transform:translateX(-50%)}.world span{display:block;font-size:14px;font-weight:700;letter-spacing:2px;margin-top:8px;color:white}.header-actions{display:flex;gap:8px;pointer-events:auto}.header-actions button{padding:0 14px;border-radius:5px}#pause{font-size:20px}.screen{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#040a16f0 0%,#040a168c 42%,transparent 78%);display:flex;align-items:center;padding:40px 7%}.start-content{margin-top:65px}.eyebrow{font-size:11px;letter-spacing:2.5px;color:var(--gold);font-weight:700;display:flex;align-items:center;gap:10px}.eyebrow>span{height:7px;width:7px;background:var(--accent);border-radius:50%}h1,h2{font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;font-weight:800;line-height:.89;letter-spacing:-1px;margin:24px 0;font-size:clamp(64px,7.2vw,108px)}em{font-style:normal;color:var(--accent)}p{font-size:15px;line-height:1.8;color:#c2cad2}.primary{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(115deg,var(--accent),#55baff);color:#071629;border:none;border-radius:5px;padding:0 23px;min-width:235px;min-height:58px;margin:26px 0;font-size:14px}.primary:hover{background:#95efff}.primary span{font-size:23px;margin-left:40px}.keys{display:flex;gap:20px;font-size:10px;letter-spacing:.6px;color:#a3aeb9;margin-top:30px}.keys span{display:flex;align-items:center;gap:5px}kbd{font-family:inherit;font-size:10px;border:1px solid #76829870;background:#0b1326;padding:5px 7px;border-radius:3px;color:#ddd}.build-note{display:block;font-size:10px;color:#8390a5;letter-spacing:1px;margin-top:28px}.level-stamp{position:absolute;bottom:38px;right:42px;display:flex;gap:15px;align-items:center}.level-stamp b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:64px;color:#ffffffaa}.level-stamp span{font-size:10px;line-height:1.8;letter-spacing:1.5px;color:#aebac8}.stats{position:absolute;top:105px;left:40px;display:flex;align-items:center;gap:16px;background:#070d1dc9;border:1px solid #ffffff20;border-radius:8px;padding:12px 18px;font-size:14px}.stats b{font-weight:600}#health{color:var(--accent);letter-spacing:4px}.gold{color:var(--gold)}.divider{height:18px;width:1px;background:#ffffff25}.mission{position:absolute;right:40px;top:112px;text-align:right}.mission small{display:block;color:var(--gold);letter-spacing:2px;font-size:10px;margin-bottom:7px}.mission span{font-size:14px}.progress{height:3px;background:#ffffff25;margin-top:12px;min-width:205px}.progress i{display:block;height:100%;background:var(--accent);width:0}#hint{position:absolute;bottom:25px;width:100%;text-align:center;letter-spacing:1px;font-size:10px;color:#ffffff90;pointer-events:none}#hint span{padding:0 12px;color:var(--accent)}#toast{position:absolute;top:24%;left:50%;transform:translateX(-50%) translateY(-10px);background:#071221e8;border:1px solid #f8d59160;padding:16px 25px;z-index:5;color:var(--gold);border-radius:5px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;font-size:14px;max-width:90%}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.centered{background:#040915b8;backdrop-filter:blur(8px);justify-content:center;text-align:center}.panel{max-width:450px;width:100%;padding:28px}.panel .eyebrow{justify-content:center}.panel h2{font-size:68px}.panel .primary{width:100%}.secondary{border:0;background:transparent;text-decoration:underline;min-height:30px}.setting{font-size:13px;display:flex;align-items:center;gap:10px;text-align:left;margin:15px 0;color:#c2cbd5}input{accent-color:var(--accent)}.small{font-size:12px;color:var(--muted)}#results{display:flex;justify-content:space-around;gap:20px;margin:30px 0;color:var(--gold)}#results b{display:block;font-size:27px;color:white;margin-bottom:5px}#bossHud{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);border:1px solid #49e4ff60;border-radius:5px;background:#0b1b32d9;padding:15px 25px;letter-spacing:2px;font-size:12px}#bossHealth{color:var(--accent);margin-left:18px}#loading{position:absolute;inset:0;z-index:9;background:#070c18;display:flex;justify-content:center;align-items:center;flex-direction:column;font-weight:800;letter-spacing:4px;font-size:23px}#loading span{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0;margin-top:15px}#touch{position:absolute;bottom:22px;left:20px;right:20px;justify-content:space-between;pointer-events:none;z-index:4}#touch>div{display:flex;gap:10px}#touch button{width:58px;height:58px;border-radius:50%;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;font-size:18px;background:#07111ac9}#touch button[data-key=ShiftLeft]{font-size:11px}
@media(max-width:700px){header{height:80px;padding:20px}.brand{font-size:25px}.brand small{font-size:6px}.world{display:none}.screen{padding:25px}.start-content{margin-top:30px}h1{font-size:68px}.keys{display:none}.level-stamp{display:none}.build-note{max-width:230px;line-height:1.6}.stats{top:88px;left:15px;padding:10px 12px;gap:10px}.mission{top:152px;left:18px;right:auto;text-align:left}.mission span{font-size:12px}.progress{min-width:150px}.mission small{font-size:9px}#hint{display:none}.panel{padding:10px}.panel h2{font-size:54px}.primary{min-height:52px}#bossHud{bottom:95px;width:90%;text-align:center;font-size:10px}#toast{top:35%}}
@media(max-height:550px){header{height:65px;padding:12px 25px}.start-content{margin-top:35px}h1{font-size:58px;margin:12px 0}p{font-size:13px;margin:10px 0}.primary{margin:14px 0;min-height:45px}.keys,.build-note,.level-stamp{display:none}.stats{top:72px}.mission{top:73px}.panel h2{font-size:42px;margin:10px}.panel p{font-size:12px}.setting{margin:8px 0}.panel .eyebrow{font-size:9px}}
/* Mobile-only product surface; desktop input remains a development convenience. */
body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}.keys,#hint,.level-stamp{display:none!important}header{height:72px;padding:12px max(22px,env(safe-area-inset-right)) 12px max(22px,env(safe-area-inset-left))}.brand{font-size:26px}.world{font-size:10px}.world span{font-size:12px;margin-top:5px}.stats{top:76px;left:max(22px,env(safe-area-inset-left));padding:9px 13px;font-size:13px;gap:11px}.mission{top:78px;right:max(22px,env(safe-area-inset-right));left:auto;text-align:right}.mission small{font-size:10px}.mission span{font-size:12px}.progress{min-width:175px}.screen{padding:22px max(36px,env(safe-area-inset-left));}.start-content{margin-top:45px}h1{font-size:clamp(54px,12vh,88px);margin:17px 0}.start-content p{font-size:14px;line-height:1.6}.build-note{font-size:11px}.primary{margin:18px 0;min-height:50px;min-width:225px}#touch{bottom:max(16px,env(safe-area-inset-bottom));left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));align-items:flex-end}#touch>div{align-items:flex-end;gap:12px}#touch button{width:62px;height:62px;font-size:24px;background:#081422d9;border:1px solid #ffffff60;box-shadow:0 4px 18px #0005}#touch button[data-key=Space]{height:78px;width:78px;background:#49e4ff;color:#07101d;border-color:#b4f4ff;font-size:34px}#touch button[data-key=ShiftLeft],#touch button[data-key=KeyS]{font-size:11px;width:54px;height:54px}#touch button[data-key=KeyS]{margin-bottom:53px;margin-right:-9px}#touch button.pressed{transform:scale(.94);background:#c5f7ff;color:#081422}#bossHud{bottom:100px;font-size:11px;white-space:nowrap;width:auto}#toast{top:35%;font-size:13px}.panel{max-height:calc(var(--app-height,100dvh) - 30px);overflow-y:auto;overscroll-behavior:contain;padding:14px 24px}.panel h2{font-size:48px}.panel p{font-size:13px;line-height:1.5}.panel .primary{margin:12px 0}.setting{font-size:13px;min-height:34px;margin:5px 0}.setting input{width:20px;height:20px}.small{font-size:12px}
@media(orientation:landscape) and (max-height:460px){.start-content{margin-top:26px}h1{font-size:58px;margin:12px 0}.start-content p{font-size:13px}.build-note{display:block;margin-top:10px;font-size:10px}.eyebrow{font-size:10px}.world{display:block}.primary{margin:14px 0;min-height:46px}.mission{top:76px}.stats{top:76px}#touch button{width:57px;height:57px}#touch button[data-key=Space]{width:72px;height:72px}.panel{padding-top:42px}.panel h2{font-size:40px}}
.hub{display:block;padding:80px max(36px,env(safe-area-inset-left)) 42px;background:linear-gradient(95deg,#050b18fa 8%,#0b1730dd 53%,#07101bd0)}.hub-nav{height:44px;display:flex;align-items:center;gap:26px;border-bottom:1px solid #ffffff20}.hub-nav button{border:0;background:none;height:44px;padding:0 2px;color:#a2b2c6;min-height:44px;font-size:12px}.hub-nav button.selected{color:var(--ice);border-bottom:3px solid var(--accent)}.hub-nav>span{margin-left:auto;color:#9baabe;font-size:10px;letter-spacing:1.4px}.hub-home{display:flex;justify-content:space-between;align-items:center;height:calc(var(--app-height,100dvh) - 185px);max-width:1080px;margin:auto;gap:25px}.hub-copy{z-index:1}.hub-copy h1{font-size:clamp(58px,16vh,112px);margin:13px 0;line-height:.84}.hub-tagline{font-size:13px;margin:16px 0;color:#b1c1d2}.hub-copy .eyebrow{font-size:10px}.current-level{display:flex;gap:12px;align-items:center;margin:12px 0}.level-number{font-family:'Barlow Condensed',Impact,sans-serif;font-size:40px;border-right:1px solid #ffffff30;padding-right:12px;color:var(--gold)}.current-level small{display:block;font-size:10px;letter-spacing:1.8px;color:var(--gold)}.current-level strong{display:block;font-size:16px;margin:4px 0}.current-level div>span{font-size:11px;color:#9caec2}.hub .primary{margin:14px 0 0;font-size:12px;width:245px}.master-window{position:relative;width:285px;height:min(390px,calc(var(--app-height,100dvh) - 210px));overflow:hidden;flex-shrink:0;border:1px solid #ddedff35;border-radius:12px;background:#222;box-shadow:0 20px 90px #020915}.master-window img{position:absolute;width:900px;max-width:none;right:-4px;top:-12px}.master-caption{position:absolute;bottom:0;left:0;width:100%;padding:38px 22px 18px;background:linear-gradient(transparent,#040b17 40%)}.master-caption small{display:block;color:var(--gold);font-size:9px;letter-spacing:2px}.master-caption strong{display:block;font-family:'Barlow Condensed',Impact,sans-serif;font-size:35px;margin:5px 0}.master-caption span{font-size:9px;letter-spacing:1px;color:#91a4bc}.hub-footer{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:max(36px,env(safe-area-inset-left));right:max(36px,env(safe-area-inset-right));display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ffffff20;padding-top:13px;font-size:9px;letter-spacing:1px;color:#8da3ba}.hub-footer span:first-child{color:var(--gold)}#worldView{height:calc(var(--app-height,100dvh) - 185px);overflow:auto;overscroll-behavior:contain}.world-heading{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.world-heading h2{font-size:34px;margin:10px 0}.world-heading>span{font-size:10px;color:#91a4bc}.world-list{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-bottom:18px}.world-card{min-height:145px;text-align:left;padding:18px;border:1px solid #ffffff25;border-radius:8px;background:linear-gradient(135deg,#193347,#0a1427);position:relative}.world-card.available{border-color:#49e4ff;background:linear-gradient(135deg,#103a60,#0b1b32)}.world-card:disabled{cursor:default;opacity:.65}.world-card .num{font-family:'Barlow Condensed',Impact,sans-serif;font-size:32px;color:#9ab4cb}.world-card strong{display:block;font-size:16px;letter-spacing:0;margin:8px 0}.world-card small{display:block;font-size:9px;line-height:1.5;letter-spacing:.7px;color:#c1cbd5}.world-card.available .num{color:var(--accent)}#backHub{margin-left:16px}
@media(orientation:landscape) and (max-height:500px){.hub{padding-top:64px}.hub-nav{height:36px}.hub-nav button{height:36px;min-height:36px;font-size:11px}.hub-home{height:calc(var(--app-height,100dvh) - 145px)}.hub-copy h1{font-size:60px;margin:9px 0}.hub-tagline{display:none}.hub-copy .eyebrow{font-size:9px}.current-level{margin:9px 0}.current-level strong{font-size:14px}.level-number{font-size:34px}.hub .primary{min-height:45px;margin-top:10px;width:235px}.master-window{width:230px;height:calc(var(--app-height,100dvh) - 160px)}.master-window img{width:730px;right:-4px;top:-8px}.master-caption{padding:22px 14px 10px}.master-caption strong{font-size:25px}.master-caption small{font-size:8px}.master-caption span{font-size:8px}.hub-footer{font-size:8px;padding-top:9px;bottom:10px}.world-heading{margin:14px 0 4px}.world-heading h2{font-size:26px}.world-heading .eyebrow{font-size:9px}.world-card{min-height:112px;padding:12px}.world-card strong{font-size:14px}.world-card .num{font-size:26px}#worldView{height:calc(var(--app-height,100dvh) - 150px)}}
#loading{display:block;overflow:hidden;background:#070f20 url('loading-art.png') center/cover no-repeat;z-index:30;letter-spacing:normal;font-weight:400}.load-shade{position:absolute;inset:0;background:linear-gradient(90deg,#040b19dd,#040b1960 45%,transparent 75%),linear-gradient(0deg,#030a17fa,transparent 40%)}.load-brand{position:absolute;left:max(35px,env(safe-area-inset-left));top:max(25px,env(safe-area-inset-top));font-size:30px;font-weight:800;letter-spacing:-1px}.load-brand>span{display:inline!important;font-size:32px!important;color:var(--gold)!important;margin:0 0 0 8px!important}.load-brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:4px}.load-title{position:absolute;left:7%;top:27%}.load-title h1{font-size:clamp(70px,17vh,135px);margin:20px 0}.load-title p{color:#ecf4fa;font-size:14px;letter-spacing:5px;font-weight:700}.load-title .eyebrow{font-size:10px}.load-bottom{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:7%;right:7%}.load-meta,.load-foot{display:flex;align-items:center;justify-content:space-between;gap:15px}.load-meta span{font-size:12px!important;letter-spacing:.5px!important;color:#d5e0ef!important;margin:0!important}.load-meta #loadPercent{color:var(--gold)!important;font-weight:700}#loadTrack{height:3px;background:#ffffff30;margin:13px 0}#loadBar{display:block;height:100%;width:0;background:linear-gradient(90deg,#49e4ff,#d8f8ff);transition:width .25s;box-shadow:0 0 15px #2485f570}.load-foot span{font-size:9px!important;margin:0!important;letter-spacing:1.5px!important;color:#9baec4!important}#loadRetry{margin-top:12px;padding:0 20px}.load-foot span:first-child{color:var(--gold)!important}
@media(orientation:landscape) and (max-height:500px){.load-title{top:24%}.load-title h1{font-size:68px;margin:12px 0}.load-title p{font-size:11px;letter-spacing:3px}.load-title .eyebrow{font-size:8px}.load-brand{top:18px;font-size:24px}.load-bottom{bottom:18px}.load-foot span{font-size:8px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
#artActions{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(25px,env(safe-area-inset-right));display:flex;gap:10px;z-index:2}#artActions button,#artActions a{background:#071323d9;border:1px solid #ffffff50;min-height:44px;display:flex;align-items:center;padding:0 15px;font-size:10px;color:white;text-decoration:none;letter-spacing:1px;border-radius:4px}.hub-nav{gap:22px}
.hub{background:linear-gradient(90deg,#050c1bef 0%,#050c1bb8 38%,#050c1b0f 70%),linear-gradient(0deg,#050c1be8,transparent 30%),url('loading-art.png') center/cover no-repeat}.hub-nav{position:relative;z-index:1}.hub-nav button{color:#d2dce9;text-shadow:0 1px 8px #000}.hub-nav>span{color:#e0e7ef}.hub-home{justify-content:flex-start}.master-window{display:none}.hub-tagline{display:block;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:2px}.hub-copy h1{filter:drop-shadow(0 4px 22px #03081699)}.hub-footer{color:#c0d0e0;background:linear-gradient(transparent,#070d18aa)}#worldView{position:relative;background:#060e1dea;margin-top:8px;padding:0 16px;border-radius:8px}.world-card{background-position:center;background-size:cover}.world-card.available{background-position:center;background-size:cover}.world-card strong,.world-card small,.world-card .num{text-shadow:0 2px 8px #000}.world-card:disabled{opacity:.85}.world-card small:last-child{color:#f5d59e}
@media(orientation:landscape) and (max-height:500px){.hub-tagline{display:block;font-size:10px;letter-spacing:1.4px;margin:10px 0}.hub-copy h1{font-size:54px}.hub-copy .eyebrow{font-size:9px}.current-level{margin:7px 0}.hub .primary{margin-top:9px}.hub-footer span:last-child{font-size:7px}}
#bossCue{display:block;text-align:center;font-size:11px;letter-spacing:1px;margin-top:8px;color:#d6f5fa}#bossHud{bottom:96px;padding:10px 20px}#touch button[data-key=ShiftLeft]{background:conic-gradient(#4da7b9 var(--charge,100%),#122233 0);border:2px solid #8fe8f180}#touch button.cooling{color:#c1cbd5}#touch button[data-key=ShiftLeft].pressed{background:#c5f7ff;color:#081422}
#inspection{position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(90deg,#071020b0,transparent 35%,transparent 80%)}.inspect-top{position:absolute;top:max(16px,env(safe-area-inset-top));left:max(25px,env(safe-area-inset-left));right:max(25px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1.6px}.inspect-top button{pointer-events:auto;border-radius:4px;padding:0 16px}.inspect-copy{position:absolute;left:max(28px,env(safe-area-inset-left));top:28%;width:24%;max-width:270px}.inspect-copy h2{font-size:34px;line-height:1;margin:15px 0}.inspect-copy p{font-size:12px;line-height:1.6}.inspect-copy small{font-size:10px;color:#c0cddd;line-height:1.5;display:block}.inspect-copy .eyebrow{font-size:9px;line-height:1.5}.inspect-controls{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:7px;pointer-events:auto}.inspect-controls button{padding:0 14px;font-size:11px;border-radius:5px;min-height:46px}.inspect-controls button.selected{background:var(--gold);color:#0b1729;border-color:var(--gold)}#turnLeft,#turnRight{font-size:25px}.hub-nav{gap:18px}
@media(orientation:landscape) and (max-height:500px){.inspect-copy{top:24%;width:24%}.inspect-copy h2{font-size:27px}.inspect-copy p{font-size:11px}.inspect-copy small{font-size:9px}.inspect-controls{gap:5px}.inspect-controls button{padding:0 12px;font-size:10px}.inspect-top{font-size:10px}.hub-nav>span{font-size:8px}.hub-nav{gap:16px}}
body.inspecting header{visibility:hidden}
/* Fixed game viewport: no document scroll or elastic drag after rotation. */
html{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;left:0;top:0;width:var(--app-width,100vw);height:var(--app-height,100dvh);overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#game{position:absolute;inset:0;width:100%;height:100%}.screen,#inspection,#loading{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.hub{display:grid;grid-template-rows:44px minmax(0,1fr) 25px;gap:8px;padding:65px max(30px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(30px,env(safe-area-inset-left))}.hub-nav{height:44px;min-width:0}.hub-nav button{height:44px;min-height:44px}.hub-home{height:100%;min-height:0;margin:0;width:100%;align-items:center;overflow:hidden}.hub-footer{position:static;min-width:0;align-items:center;padding:6px 0 0;font-size:8px}.hub-copy{max-height:100%}#worldView{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) 44px;gap:6px;margin:0;padding:0 10px}.world-heading{margin:6px 0;gap:10px}.world-heading h2{font-size:24px;margin:5px 0}.world-heading>span{font-size:8px;line-height:1.5}.world-heading .eyebrow{font-size:8px}.world-list{min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:8px;padding:0;overflow:hidden}.world-card{height:100%;min-height:0;padding:10px}.world-card .num{font-size:25px}.world-card strong{font-size:14px;margin:5px 0}.world-card small{font-size:8px}.world-pager{display:flex;align-items:center;justify-content:center;gap:20px}.world-pager button{display:flex;align-items:center;justify-content:center;width:44px;min-height:40px;border-radius:5px}.world-pager button:disabled{opacity:.25;cursor:default}.world-pager>span{font-size:12px;color:var(--gold)}.panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px 18px;max-width:680px;width:100%;max-height:100%;overflow:hidden;padding:16px 24px}.panel>.eyebrow{grid-column:1/-1}.panel h2{font-size:40px;margin:4px 0}.panel p{font-size:12px;line-height:1.5;margin:4px 0}.panel .primary{margin:0;min-width:0;min-height:46px}.panel .setting{margin:0;min-height:30px;font-size:12px}.panel .small{font-size:10px}.panel .secondary{margin:0;min-height:36px}.panel #results{margin:10px 0;font-size:10px}.panel #results b{font-size:23px}.centered{padding:18px max(22px,env(safe-area-inset-left))}
.icon{display:inline-block;width:24px;height:24px;flex-shrink:0;vertical-align:middle}.brand .icon,.load-brand .icon{width:30px;height:36px;color:var(--gold)}.brand .cross{margin-left:7px}.load-brand>span,.load-brand [data-icon]{margin:0!important}.primary>.icon{width:23px;height:23px;margin-left:20px}.primary span:has(.icon){display:inline-flex;margin-left:20px}.primary span span{margin-left:0}#pause{display:flex;align-items:center;justify-content:center}#health,#bossHealth{display:inline-flex;align-items:center;gap:4px;letter-spacing:0}.health-segment{display:inline-flex}.health-segment .icon{width:20px;height:24px}.health-segment.empty{opacity:.2}.stats>span{display:inline-flex;gap:7px;align-items:center}.stats [data-icon] .icon{width:21px;height:21px}.turn-icon .icon{width:70px;height:70px}#touch button{display:flex;flex-direction:column;align-items:center;justify-content:center}#touch button .icon{width:28px;height:28px}#touch button[data-key=Space] .icon{width:38px;height:38px}#touch button small{font-size:8px;margin-top:2px;letter-spacing:.5px}.inspect-controls button{display:flex;align-items:center;justify-content:center}#bossHealth .icon{width:17px;height:21px}
@media(orientation:landscape) and (max-height:480px){header{height:55px;padding-top:7px;padding-bottom:7px}.hub{padding-top:51px;grid-template-rows:40px minmax(0,1fr) 21px;gap:4px}.hub-nav,.hub-nav button{height:40px;min-height:40px}.hub-copy h1{font-size:52px;line-height:.9;margin:6px 0}.hub-copy h1 br{display:none}.hub-copy h1 em{margin-left:.14em}.hub-copy .eyebrow{font-size:8px}.hub-tagline{font-size:9px;margin:7px 0}.current-level{margin:6px 0}.current-level strong{font-size:13px}.current-level small{font-size:8px}.current-level div>span{font-size:10px}.level-number{font-size:29px}.hub .primary{min-height:44px;margin-top:6px}.world-heading h2{font-size:20px}.world-heading .eyebrow{display:none}.world-card .num{font-size:20px}.world-card strong{font-size:12px}.world-card small{font-size:7px}.world-heading{margin:3px 0}.world-card small:last-child{margin-top:4px!important}.stats{top:59px}.mission{top:62px}.panel h2{font-size:36px}.hub-nav>span{display:none}}
#sound{display:flex;align-items:center;justify-content:center;gap:7px}#sound .icon{width:19px;height:19px}#sound>span{font-size:10px}.sound-setting{gap:10px}.sound-setting>span{font-size:10px;letter-spacing:1px}.sound-setting input[type=range]{width:100%;height:26px;accent-color:var(--accent);touch-action:none}.panel .small{line-height:1.35}

/* Event feedback stays attached to the score, leaving the playfield clear. */
#toast{top:calc(100% + 5px);left:0;right:auto;bottom:auto;width:100%;max-width:100%;height:20px;padding:0 2px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;font-size:11px;font-weight:700;line-height:20px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000,0 0 6px #000;transform:none;transition:opacity .15s;pointer-events:none}#toast.show{transform:none}
#bossHud{bottom:110px;padding:5px 10px;background:#090c1499;font-size:9px;letter-spacing:1px;max-width:calc(100% - 250px)}#bossCue{font-size:10px;margin-top:3px;white-space:normal}#bossHealth .icon{width:13px;height:16px}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}

#hubMusic{min-height:28px;padding:0 10px;font-size:10px;letter-spacing:.5px;border-color:#f8d59160;color:var(--gold);border-radius:4px}.hub-footer{grid-row:3;overflow:visible}

#musicSound{font-size:10px;letter-spacing:.5px;padding:0 10px}#tourChallenge{grid-column:1/-1;color:var(--gold)}
/* Keep the master helmet unobstructed on the hub artwork. */
body:has(#start:not([hidden])) header .header-actions{position:absolute;left:max(155px,calc(env(safe-area-inset-left) + 135px));right:auto;top:8px;gap:6px}
body:has(#start:not([hidden])) header .world,body:has(#start:not([hidden])) #pause{display:none}
body:has(#start:not([hidden])) header .header-actions button{min-height:40px;padding:0 10px}

/* The hub uses its cinematic artwork; do not composite the hidden 3D canvas. */
body:has(#start:not([hidden])) #game{visibility:hidden}

/* A lightweight entry screen supplies the deliberate music-start gesture. */
#entry{position:absolute;inset:0;z-index:8;display:flex;align-items:center;padding:28px max(36px,env(safe-area-inset-left));overflow:hidden;background:linear-gradient(90deg,#050c1bee 0%,#050c1baa 40%,#050c1b05 75%),url('loading-art.png') center/cover no-repeat}.entry-copy{width:48%;max-width:460px}.entry-copy h1{font-size:clamp(48px,15vh,96px);margin:18px 0}.entry-copy p{font-size:12px;letter-spacing:2px;color:var(--gold);margin:12px 0}.entry-copy small{display:block;font-size:12px;color:#c4d0dd}.entry-copy .primary{margin:18px 0 10px;max-width:290px;min-width:220px;min-height:48px}.entry-copy .eyebrow{font-size:11px}
@media(orientation:landscape) and (max-height:380px){.entry-copy h1{font-size:48px;margin:10px 0}.entry-copy .primary{margin:12px 0 8px}.entry-copy p{margin:8px 0;font-size:10px}}

#touch button#fire{position:absolute;right:0;bottom:94px;width:58px;height:58px;border:2px solid #8efff2;background:#12393e;color:#befff5;box-shadow:0 0 14px #42eacb30}#touch button#fire[aria-disabled=true]{opacity:.4;box-shadow:none;background:#172331;border-color:#8298a5;color:#bcc8ce}#touch button#fire small{font-size:9px}#touch button#fire.pressed{background:#b4fff1;color:#123235}
/* A slow glow draws attention to Play without shifting the menu. */
#play{animation:play-glow 2.4s ease-in-out infinite;box-shadow:0 0 14px #49e4ff60,inset 0 0 0 1px #b4f4ff70}
@keyframes play-glow{0%,100%{box-shadow:0 0 12px #49e4ff55,0 0 25px #49e4ff1f,inset 0 0 0 1px #b4f4ff70}50%{box-shadow:0 0 22px #49e4ffa0,0 0 42px #49e4ff47,inset 0 0 0 1px #d8f8ff}}
@media(prefers-reduced-motion:reduce){#play{animation:none}}
body.reduced-motion #play{animation:none}

#signalStatus{display:block;font-size:11px;line-height:16px;margin-top:5px;color:#ffe49b;text-shadow:0 1px 4px #000;letter-spacing:.4px;pointer-events:none}#signalStatus:empty{display:none}
/* Gameplay HUD: keep the center open and group actions around the right thumb. */
body[data-mode=play] header .brand,body[data-mode=play] header .world,body[data-mode=play] #musicSound,body[data-mode=play] #sound{display:none}
body[data-mode=play] header{height:60px;padding:10px max(14px,env(safe-area-inset-right));justify-content:flex-end;background:none}
body[data-mode=play] #pause{width:44px;height:44px;min-height:44px;background:#101c2ab8;border-color:#d9e9ec50;border-radius:12px}
body[data-mode=play] .stats{top:max(14px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));padding:8px 11px;gap:9px;background:#101c2ab8;border:1px solid #d9e9ec35;border-radius:12px;font-size:13px}
body[data-mode=play] .mission{top:max(15px,env(safe-area-inset-top));right:max(74px,calc(env(safe-area-inset-right) + 60px));max-width:220px;text-align:right}
body[data-mode=play] .mission small{font-size:10px;letter-spacing:1.5px;margin-bottom:4px}body[data-mode=play] .mission span{font-size:12px;line-height:16px}body[data-mode=play] .progress{min-width:150px;margin-top:7px}
#touch>div:last-child{display:grid;grid-template-columns:52px 58px 76px;grid-template-rows:58px 76px;gap:8px;align-items:end}
#touch button#fire{position:static;grid-column:3;grid-row:1;justify-self:center;width:56px;height:56px;margin:0;box-shadow:0 0 12px #42eacb25}
#touch button[data-key=KeyS]{grid-column:1;grid-row:2;margin:0;width:52px;height:52px}
#touch button[data-key=ShiftLeft]{grid-column:2;grid-row:2;margin:0;width:58px;height:58px}
#touch button[data-key=Space]{grid-column:3;grid-row:2;width:76px;height:76px;margin:0;box-shadow:0 5px 16px #0005,inset 0 1px 0 #d8f8ff}
#touch>div:first-child button{width:64px;height:64px;border-radius:18px;background:#101c2ac7}
#touch button{border-color:#dcecf057}#touch button small{letter-spacing:.3px}
body[data-mode=play] #bossHud{bottom:auto;top:90px;padding:5px 10px;max-width:260px;background:#101c2a99}

#levelClock{flex-direction:column!important;gap:0!important;min-width:32px;font-variant-numeric:tabular-nums;color:#ffe49b}#levelClock small{font-size:8px;line-height:10px;letter-spacing:.8px}#levelClock b{font-size:15px;line-height:17px}#levelClock.urgent{color:#97d8ff}

#scoreStatus{position:absolute;top:calc(100% + 4px);left:0;color:#d9f7ee;font-size:10px;line-height:16px;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 4px #000;pointer-events:none}#toast{top:calc(100% + 23px)}#results{grid-column:1/-1;width:100%}#results b{font-variant-numeric:tabular-nums}

#touch button.guided{border-color:#ffe3a0;box-shadow:0 0 0 2px #ffe3a055,0 0 18px #49e4ff55;background:#123858;}

#game{touch-action:none;}


@media(orientation:portrait){
.hub{padding:104px 22px max(16px,env(safe-area-inset-bottom));grid-template-rows:44px minmax(0,1fr) 32px;background:linear-gradient(0deg,#050c1b 0%,#050c1be8 25%,#050c1b00 70%),url('loading-art.png') 68% center/cover no-repeat}
.hub-nav{gap:12px;flex-wrap:wrap;align-items:center}.hub-nav button{font-size:11px;padding:0 6px}.hub-nav>span{display:none}.hub-home{align-items:flex-end}.hub-copy{width:100%;max-width:none;padding-bottom:8px}.hub-copy h1{font-size:clamp(46px,8vh,76px);line-height:.9;margin:14px 0}.hub-copy .eyebrow{font-size:10px}.hub .primary{width:100%;min-width:0;margin:12px 0 0;min-height:56px}.current-level{margin:12px 0}.hub-tagline{font-size:11px}.hub-footer{font-size:9px;gap:8px}.hub-footer span:last-child{display:none}
header{padding:12px 20px}.brand{font-size:25px}body:has(#start:not([hidden])) .header-actions{left:20px;top:65px;right:auto}.world-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.world-heading>span{display:none}.world-heading h2{font-size:22px}.world-card strong{font-size:14px}.world-card small{font-size:10px}
.inspect-copy{top:90px;left:20px;width:65%;max-width:260px}.inspect-copy h2{font-size:26px}.inspect-controls{width:95%;gap:4px;flex-wrap:wrap;justify-content:center}.inspect-controls button{padding:0 10px}.load-title{left:7%;top:35%}.load-title h1{font-size:64px}.load-title .eyebrow{max-width:250px;line-height:1.6}
}

#skipIntro{position:absolute;z-index:6;right:max(24px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));padding:12px 20px;min-height:44px;border:1px solid #f0c67d80;border-radius:6px;background:#101e30;color:#ffe5b0;font-size:12px;letter-spacing:1px;}

.colorway-panel{position:absolute;right:max(18px,env(safe-area-inset-right));top:76px;width:190px;pointer-events:auto}.colorway-panel>strong{display:block;color:#fff0cc;font-size:11px;letter-spacing:.6px;margin-bottom:8px}#colorwayOptions{display:grid;grid-template-columns:1fr 1fr;gap:6px}#colorwayOptions button{display:flex;align-items:center;gap:6px;min-height:44px;padding:7px;border:1px solid #8cabc855;border-radius:7px;background:#0a172be8;color:#ebf1f8;font-size:11px;text-align:left}#colorwayOptions button[aria-pressed=true]{border-color:var(--visor);box-shadow:0 0 0 1px var(--visor)}.colorway-swatch{display:block;flex-shrink:0;width:16px;height:22px;border-radius:4px;background:var(--suit);border:2px solid var(--visor)}#heroChoice{color:#d9c190;font-size:10px;letter-spacing:.4px}
@media(orientation:portrait){.colorway-panel{top:auto;bottom:120px;left:18px;right:18px;width:auto}#colorwayOptions{grid-template-columns:repeat(4,1fr)}#colorwayOptions button{flex-direction:column;gap:4px;font-size:10px}.colorway-swatch{width:24px;height:14px}.inspect-copy{width:70%;top:80px}.inspect-copy p{font-size:11px}}
@media(orientation:landscape) and (max-height:370px){.colorway-panel{top:60px;width:180px}#colorwayOptions{gap:3px}#colorwayOptions button{min-height:38px;padding:4px}.colorway-panel>strong{margin-bottom:4px}}

/* Original world key art: keep landmarks visible above readable captions. */
.world-card:not([hidden]){display:flex;flex-direction:column;justify-content:flex-end;background-position:center 35%}.world-card .num{position:absolute;top:8px;left:10px;background:#050c1bb3;border-radius:4px;padding:1px 6px;font-size:20px}.world-card:disabled{opacity:1}.world-card strong{color:#fff}.world-card small:last-child{width:fit-content;padding:3px 5px;background:#050c1bbf;border-radius:3px}

#tourOverlay{position:fixed;inset:0;z-index:35;pointer-events:none;color:#fff;font-family:Arial,sans-serif}#tourOverlay button{pointer-events:auto;min-height:44px;padding:8px 14px;background:#142b40ed;color:#fff;border:1px solid #a6e9e955;border-radius:7px;font-weight:700;font-size:13px}.tour-top{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;gap:8px;align-items:flex-start}.tour-top>div{flex:1;background:#071320c9;padding:9px 12px;border-radius:6px;max-width:520px}.tour-top strong{font-size:15px;letter-spacing:1px}.tour-top small{display:block;font-size:12px;margin-top:5px;color:#e1edee}.tour-meter{position:absolute;top:88px;left:16px;display:flex;gap:15px;font-size:12px;background:#071320c9;padding:7px 10px;border-radius:5px}#tourNotice{position:absolute;top:126px;left:50%;transform:translateX(-50%);font-size:13px;max-width:70%;text-align:center;text-shadow:0 2px 5px #000}#tourAction{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);background:#c7a458!important;color:#071320!important}#tourDialog:not([hidden]){position:absolute;inset:10% 15%;background:#08192bf5;border:1px solid #b1d9ee55;border-radius:12px;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:12px;padding:20px;pointer-events:auto}#tourDialog h2,#tourDialog p{width:100%;text-align:center;margin:4px}#tourDialog h2{font-size:26px}#tourDialog p{font-size:14px;line-height:1.5}body:has(#tourOverlay:not([hidden]))>header{display:none}.hub-nav{gap:16px}@media(orientation:portrait){#tourDialog:not([hidden]){inset:22% 7%}.hub-nav{gap:10px}.hub-nav button{font-size:10px}}

/* One readable instruction, above a quieter play area. */
body[data-mode=play] .mission{top:12px;left:50%;right:auto;transform:translateX(-50%);text-align:center;max-width:44vw;background:#0b1b32ed;padding:8px 12px;border:1px solid #49e4ff66;border-radius:9px}.mission #objective{display:block;font-size:17px;line-height:1.25;font-weight:800;color:#fff}.mission #zone,.mission .progress,.mission #signalStatus{display:none}#toast{font-size:14px!important;line-height:1.3}#touch button small{font-size:12px!important}#tourObjective{font-size:18px!important;font-weight:800;line-height:1.25;color:#fff!important}.tour-top>div{background:#0b1b32f2}.tour-top strong{font-size:12px;color:#ffd390}.tour-meter{font-size:13px;top:90px;background:#0b1b32ed}#tourNotice{font-size:15px;top:126px;background:#0b1b32dc;border-radius:6px;padding:4px 9px}#tourNotice:empty{display:none}#bossCue{font-size:17px!important}body[data-mode=play] .world{display:none}

.opening-controls #touch button[data-key=KeyS],.opening-controls #touch button[data-key=ShiftLeft],.opening-controls #touch button#fire{visibility:hidden}.opening-controls #touch button[data-key=Space]{background:#49e4ff;color:#071629}.opening-controls #touch button[data-key=Space] small{font-size:13px!important;font-weight:900}
#startRetry{position:absolute;left:24px;bottom:70px;z-index:5;padding:10px 20px;background:#49e4ff;color:#071629;border-radius:6px}#start[aria-busy=true] #play{animation:none;opacity:.7;cursor:progress}#start[aria-busy=true] .hub-nav button{opacity:.55}

/* Thin route indicator stays above the action; itinerary appears only while paused. */
#tourRoute{position:absolute;top:0;left:0;right:0;height:4px;background:#0b1b32;pointer-events:none}#tourRouteFill{display:block;height:100%;background:linear-gradient(90deg,#2485f5,#49e4ff);box-shadow:0 0 8px #ffd39088;transition:width .2s linear}#tourFlow{color:#ffe2a2;font-weight:800}.tour-meter{gap:10px;max-width:calc(100% - 32px);flex-wrap:wrap}#tourItinerary:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;list-style:none;padding:0;margin:5px 0;width:100%;font-size:14px;line-height:1.3;text-align:left}#tourItinerary li{padding:5px 8px;border-left:2px solid #ffffff25;color:#b8c7d0}#tourItinerary .complete{color:#a9e7ce;border-color:#a9e7ce}#tourItinerary .current{color:#ffe2a2;background:#ffd39018;border-color:#ffd390}#tourDialog:not([hidden]){overflow-y:auto;align-content:flex-start}#tourDialog h2{font-size:22px}@media(max-height:430px) and (orientation:landscape){#tourDialog:not([hidden]){inset:3% 10%;padding:12px;gap:6px}#tourItinerary:not([hidden]){font-size:13px;gap:2px 8px}#tourItinerary li{padding:3px 6px}}

/* Tour Passport: a compact performance HUD and generous section results. */
#tourTrial{position:absolute;left:max(16px,env(safe-area-inset-left));top:126px;padding:7px 10px;border-left:3px solid #84f0d1;background:#071320e8;color:#d6fff2;border-radius:4px;font-size:13px;font-weight:700;max-width:calc(100% - 32px)}
#tourNotice{top:165px;max-width:75%;font-size:14px}
#tourDialog:not([hidden]){inset:5% max(7%,env(safe-area-inset-left));max-height:90%;box-shadow:0 20px 90px #0009;background:linear-gradient(145deg,#102638fa,#090f20fa);border-color:#f4d29266;gap:10px;padding:20px;overscroll-behavior:contain}
#tourDialog button{font-size:14px;min-height:46px}#tourContinue{background:#ffe0a1!important;color:#15202a!important;border-color:#ffe0a1!important}#tourDialog h2{color:#ffe0a1;letter-spacing:1px}#tourResult{width:100%}.result-stars{display:flex;justify-content:center;gap:20px;font-size:48px;line-height:1.2;color:#3e5262;margin:2px 0 12px}.result-stars .earned{color:#ffe0a1;text-shadow:0 0 20px #ffb54d40}.result-goals{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.result-goals>div{border:1px solid #70869855;border-radius:7px;padding:9px 12px;color:#b5c6d2;font-size:14px}.result-goals .earned{color:#b4f6d8;border-color:#84f0d166;background:#84f0d10b}#tourPassportBody{width:100%}.passport-world{margin:9px 0 16px}.passport-world>strong{display:block;font-size:15px;margin:0 0 7px;color:#ffe0a1}.passport-world>div{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.passport-stamp{padding:7px 0;text-align:center;background:#06121e;border:1px solid #435667;border-radius:6px}.passport-stamp b,.passport-stamp small{display:block;font-size:14px}.passport-stamp small{color:#708698;margin-top:5px;font-size:12px}.passport-stamp.earned{border-color:#d2b675;background:#3b322440}.passport-stamp.earned small{color:#ffe0a1}#tourPassportBody>p{font-size:13px;color:#bdd0dc;margin-top:14px}
body:has(#tourOverlay:not([hidden]) #tourDialog:not([hidden])) #touch{visibility:hidden}
@media(orientation:landscape) and (max-height:450px){#tourDialog:not([hidden]){inset:3% 8%;max-height:94%;padding:12px;gap:7px}.result-stars{font-size:36px;margin-bottom:8px}.result-goals>div{padding:6px 9px}.tour-top{gap:5px}#tourOverlay .tour-top button{padding:8px 10px;font-size:12px}#tourTrial{top:120px;font-size:12px}#tourNotice{top:155px}}
@media(orientation:portrait){.tour-top{flex-wrap:wrap}.tour-top>div{flex-basis:100%}.tour-meter{top:144px}#tourTrial{top:194px}#tourNotice{top:235px}.passport-world>div{grid-template-columns:repeat(5,minmax(0,1fr))}#tourDialog:not([hidden]){inset:6% 5%;max-height:88%}}

/* Combat actions sit between the two thumb zones; mastery choices stay in menus. */
#tourPulse{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);min-width:120px;min-height:52px!important;border:2px solid #a4ffe7!important;background:#163d42!important;color:#d4fff1!important;border-radius:26px!important;touch-action:manipulation;box-shadow:0 0 20px #78f5d324}#tourPulse:disabled{color:#98b9c3!important;border-color:#4b6a76!important;background:#0c1b2be8!important;box-shadow:none;cursor:default}#tourBoss{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);padding:8px 13px;background:#0b1b32e8;border:1px solid #ff8faa88;border-radius:7px;font-size:14px;font-weight:700;text-align:center;max-width:40%}#tourLoadouts{width:100%;margin:8px 0}#tourLoadouts h3{font-size:16px;letter-spacing:1px;margin:6px 0;color:#ffe0a1}#tourLoadouts>p{font-size:14px;color:#bdd0dc;margin:4px 0 12px}.loadout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.loadout-grid button{display:flex;flex-direction:column;text-align:left;gap:8px;padding:13px!important;letter-spacing:0!important;border-color:#6d849a66!important;background:#0b1b2ce8!important}.loadout-grid button[aria-pressed=true]{border-color:#a4ffe7!important;background:#173d3e!important}.loadout-grid button:disabled{opacity:.65;cursor:default}.loadout-grid strong{font-size:17px;color:#fff0d2}.loadout-grid span{font-size:14px;line-height:1.4;font-weight:400;color:#d3e0e9}.loadout-grid small{font-size:12px;color:#9ce7d5;margin-top:auto}#tourPulse:focus-visible{outline:3px solid #fff;outline-offset:4px}@media(max-height:400px) and (orientation:landscape){#tourPulse{min-height:44px!important;bottom:18px;min-width:108px;font-size:12px!important}#tourBoss{bottom:76px;font-size:12px;padding:6px 9px}.loadout-grid button{padding:10px!important}}
/* Phone menus size to their content and scroll without trapping the controls. */
#tourDialog:not([hidden]){top:50%;bottom:auto;transform:translateY(-50%);height:auto;max-height:90%;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}#tourDialog button{touch-action:manipulation}#tourDialog p:empty{display:none}
@media(orientation:portrait){#tourOverlay .tour-top{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}#tourOverlay .tour-top>div{grid-column:1/-1;max-width:none;padding:8px 10px}#tourOverlay .tour-top button{padding:7px 4px;font-size:12px;min-width:0;letter-spacing:.02em}#tourObjective{font-size:15px!important}.tour-meter{top:128px;left:12px;right:12px;font-size:12px;gap:6px}#tourTrial{top:181px;left:12px;right:12px;font-size:12px;max-width:none}#tourNotice{top:222px;max-width:90%}#tourBoss{bottom:190px;max-width:85%}#tourPulse{bottom:105px;left:29%;min-width:112px}#tourDialog:not([hidden]){inset:auto 5%;top:50%;max-height:86%;padding:17px;gap:10px}#tourDialog h2{font-size:22px}#tourDialog button{min-height:48px;font-size:14px;flex:1 1 42%}.loadout-grid{grid-template-columns:1fr}.result-goals{display:grid}.result-goals>div{text-align:left}}
body.tour-performing #touch,body.tour-performing .tour-meter,body.tour-performing #tourTrial,body.tour-performing #tourRoute{visibility:hidden}body.tour-performing #tourAction{bottom:max(24px,env(safe-area-inset-bottom));font-size:13px;min-height:44px;background:#111f36dc!important;color:#dce7f2!important;border-color:#8de6ee66}body.tour-performing .tour-top>div{background:#091327c9}body.tour-performing #tourNotice{top:105px;color:#d7fffa;background:#091327a8}

/* Keep both game modes reachable directly from the home screen. */
.match-launch{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;max-width:360px;min-height:62px;margin-top:10px;padding:12px 16px;border:1px solid #49e4ff;border-radius:9px;background:linear-gradient(115deg,#103657,#0b1b32);color:#d8f8ff;text-align:left;touch-action:manipulation;box-shadow:0 5px 24px #071a2655}.match-launch strong{display:block;font-size:15px;letter-spacing:.6px}.match-launch small{display:block;font-size:12px;font-weight:500;letter-spacing:0;margin-top:5px;color:#b1cfeb}.match-launch svg{width:28px;height:28px;flex-shrink:0}.match-launch:hover{background:#154975}.match-launch:disabled{opacity:.55;cursor:progress}
.hub-nav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;touch-action:pan-x}.hub-nav button{flex-shrink:0;white-space:nowrap}.hub-home{overflow-y:auto;overscroll-behavior:contain}.hub-copy{max-height:none}.hub .match-launch{max-width:none}
@media(orientation:portrait){.hub-home{align-items:flex-start}.hub-copy{margin-top:auto}.hub-copy h1{font-size:clamp(40px,7vh,66px)}.hub-copy .eyebrow{display:none}.current-level{margin:9px 0}.hub .primary{margin-top:8px;min-height:50px}.match-launch{margin-top:8px;min-height:58px}.hub-tagline{margin:10px 0}}
@media(orientation:landscape) and (max-height:500px){.hub-copy{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:0 18px;align-items:center}.hub-copy>.eyebrow,.hub-copy>h1,.hub-copy>.hub-tagline,.hub-copy>.current-level{grid-column:1;}.hub-copy>#play{grid-column:2;grid-row:2}.hub-copy>.match-launch{grid-column:2;grid-row:3 / span 2;margin:6px 0;min-height:60px}}

/* Start-screen motion: a quiet HVR festival atmosphere behind the readable hub. */
#startAtmosphere{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:paint;background:radial-gradient(circle at 78% 28%,#2485f526 0%,transparent 32%),radial-gradient(circle at 72% 78%,#f8d59114 0%,transparent 26%)}
#startAtmosphere::before{content:"";position:absolute;inset:-16%;background:radial-gradient(ellipse at 76% 38%,#49e4ff25 0%,#2485f50d 26%,transparent 58%),radial-gradient(ellipse at 72% 80%,#f8d59118 0%,transparent 42%);opacity:.8;transform:translate3d(0,0,0) scale(1.04);animation:start-atmosphere-drift 18s ease-in-out infinite alternate;will-change:transform,opacity}
#startAtmosphere::after{content:"";position:absolute;inset:-55%;background:linear-gradient(106deg,transparent 36%,#49e4ff08 44%,#49e4ff2a 50%,#f8d59112 54%,transparent 63%);mix-blend-mode:screen;opacity:.7;transform:translate3d(-14%,0,0) rotate(-8deg);animation:start-light-sweep 11s cubic-bezier(.42,0,.22,1) infinite;will-change:transform,opacity}
#startAtmosphere>*{pointer-events:none}
.start-beam{position:absolute;top:-22%;left:74%;width:22%;height:152%;opacity:.13;filter:blur(11px);background:linear-gradient(180deg,transparent 3%,#49e4ff38 42%,#49e4ff12 60%,transparent 96%);transform:skewX(-20deg) translate3d(5vw,0,0);animation:start-beam-sweep 13s ease-in-out infinite;will-change:transform,opacity}
.start-beam-b{left:88%;width:11%;opacity:.11;background:linear-gradient(180deg,transparent 6%,#f8d59144 44%,#f8d59110 62%,transparent 95%);transform:skewX(-18deg) translate3d(-3vw,0,0);animation-delay:-5.5s;animation-duration:15s}
.start-orb{position:absolute;border-radius:50%;pointer-events:none;transform:translate3d(0,0,0) scale(1);animation:start-orb-breathe 6.5s ease-in-out infinite;will-change:transform,opacity}
.start-orb-a{top:13%;right:-10vmin;width:43vmin;height:43vmin;border:1px solid #49e4ff36;background:radial-gradient(circle,#49e4ff1c 0%,#2485f50c 43%,transparent 69%);box-shadow:0 0 70px #2485f51c;opacity:.76}
.start-orb-b{right:18%;bottom:10%;width:15vmin;height:15vmin;border:1px solid #f8d59145;background:radial-gradient(circle,#f8d59122 0%,transparent 68%);box-shadow:0 0 44px #f8d59122;opacity:.6;animation-delay:-2.2s;animation-duration:5.5s}
.start-signal-line{position:absolute;right:-5%;top:67%;width:44%;height:1px;background:linear-gradient(90deg,transparent,#49e4ff8a 42%,#f8d59158 70%,transparent);box-shadow:0 0 12px #49e4ff65;opacity:.48;transform:translate3d(0,0,0);animation:start-signal-drift 5.8s ease-in-out infinite;will-change:transform,opacity}
.start-equalizer{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(52px,calc(env(safe-area-inset-bottom) + 42px));display:flex;align-items:flex-end;justify-content:flex-end;gap:clamp(3px,.65vw,8px);width:min(28vw,190px);height:74px;opacity:.5;mask-image:linear-gradient(90deg,transparent,#fff 20%,#fff 86%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#fff 20%,#fff 86%,transparent)}
.start-equalizer i{display:block;width:clamp(3px,.55vw,7px);height:var(--bar-height,38%);border-radius:99px;background:linear-gradient(180deg,#f8d591,#49e4ff);box-shadow:0 0 12px #49e4ff65;transform:scaleY(.75);transform-origin:bottom;animation:start-equalizer-pulse 1.9s ease-in-out infinite alternate;will-change:transform,opacity}
.start-equalizer i:nth-child(1){--bar-height:35%;animation-delay:-.2s}.start-equalizer i:nth-child(2){--bar-height:62%;animation-delay:-.8s}.start-equalizer i:nth-child(3){--bar-height:45%;animation-delay:-1.2s}.start-equalizer i:nth-child(4){--bar-height:82%;animation-delay:-.4s}.start-equalizer i:nth-child(5){--bar-height:58%;animation-delay:-1.5s}.start-equalizer i:nth-child(6){--bar-height:96%;animation-delay:-.7s}.start-equalizer i:nth-child(7){--bar-height:66%;animation-delay:-1.1s}.start-equalizer i:nth-child(8){--bar-height:47%;animation-delay:-1.7s}.start-equalizer i:nth-child(9){--bar-height:73%;animation-delay:-.9s}
.hub-nav,.hub-home,.hub-footer{position:relative;z-index:1}
#start #play{position:relative;isolation:isolate;overflow:hidden;animation:start-cta-breathe 2.8s ease-in-out infinite;box-shadow:0 0 16px #49e4ff68,0 0 34px #49e4ff20,inset 0 0 0 1px #d8f8ff}
#start #play::before{content:"";position:absolute;inset:-30% auto -30% -60%;z-index:0;width:34%;background:linear-gradient(90deg,transparent,#fff9,#fff0,transparent);transform:skewX(-18deg) translate3d(-180%,0,0);animation:start-cta-sheen 4.8s ease-in-out infinite;pointer-events:none;will-change:transform,opacity}
#start #play>span{position:relative;z-index:1}
#start[aria-busy=true] #play::before{animation:none;opacity:0}
@keyframes start-atmosphere-drift{0%{transform:translate3d(-1.5%,1%,0) scale(1.04);opacity:.68}100%{transform:translate3d(2%,-2%,0) scale(1.1);opacity:.9}}
@keyframes start-light-sweep{0%,20%{transform:translate3d(-28%,0,0) rotate(-8deg);opacity:.18}55%{transform:translate3d(8%,0,0) rotate(-8deg);opacity:.72}85%,100%{transform:translate3d(30%,0,0) rotate(-8deg);opacity:.24}}
@keyframes start-beam-sweep{0%,100%{transform:skewX(-20deg) translate3d(5vw,0,0);opacity:.08}50%{transform:skewX(-20deg) translate3d(-5vw,0,0);opacity:.22}}
@keyframes start-orb-breathe{0%,100%{transform:translate3d(0,0,0) scale(.96);opacity:.52}50%{transform:translate3d(-1.5vw,1vh,0) scale(1.04);opacity:.82}}
@keyframes start-signal-drift{0%,100%{transform:translate3d(2vw,0,0);opacity:.22}50%{transform:translate3d(-3vw,0,0);opacity:.64}}
@keyframes start-equalizer-pulse{0%{transform:scaleY(.58);opacity:.46}100%{transform:scaleY(1);opacity:.9}}
@keyframes start-cta-breathe{0%,100%{transform:translate3d(0,0,0);opacity:.97}50%{transform:translate3d(0,-1px,0);opacity:1}}
@keyframes start-cta-sheen{0%,48%{transform:skewX(-18deg) translate3d(-180%,0,0);opacity:0}58%{opacity:.85}72%,100%{transform:skewX(-18deg) translate3d(420%,0,0);opacity:0}}
@media(orientation:portrait){.start-beam{left:76%;width:28%}.start-beam-b{left:91%;width:13%}.start-orb-a{top:16%;right:-25vw;width:70vw;height:70vw}.start-orb-b{right:14%;bottom:17%;width:22vw;height:22vw}.start-signal-line{top:62%;right:-9%;width:58%}.start-equalizer{top:53%;right:12px;bottom:auto;width:32vw;height:72px;opacity:.54}}
@media(orientation:landscape) and (max-height:500px){.start-orb-a{top:8%;right:-7vmin;width:42vmin;height:42vmin}.start-equalizer{bottom:max(33px,calc(env(safe-area-inset-bottom) + 24px));height:54px;opacity:.56}.start-signal-line{top:65%}}
@media(prefers-reduced-motion:reduce){
  #startAtmosphere::before,#startAtmosphere::after,.start-beam,.start-orb,.start-signal-line,.start-equalizer i,#start #play,#start #play::before{animation:none!important}
  #startAtmosphere::before{transform:none;opacity:.8}
  #startAtmosphere::after{transform:rotate(-8deg);opacity:.42}
  .start-beam{transform:skewX(-20deg) translate3d(0,0,0);opacity:.13}
  .start-beam-b{transform:skewX(-18deg) translate3d(0,0,0);opacity:.11}
  .start-orb{transform:none}
  .start-signal-line{transform:none;opacity:.42}
  .start-equalizer i{transform:none;opacity:.72}
  #start #play{transform:none}
  #start #play::before{opacity:0;transform:none}
}
body.reduced-motion #startAtmosphere::before,body.reduced-motion #startAtmosphere::after,body.reduced-motion .start-beam,body.reduced-motion .start-orb,body.reduced-motion .start-signal-line,body.reduced-motion .start-equalizer i,body.reduced-motion #start #play,body.reduced-motion #start #play::before{animation:none!important}
body.reduced-motion #startAtmosphere::before{transform:none;opacity:.8}body.reduced-motion #startAtmosphere::after{transform:rotate(-8deg);opacity:.42}body.reduced-motion .start-beam{transform:skewX(-20deg) translate3d(0,0,0);opacity:.13}body.reduced-motion .start-beam-b{transform:skewX(-18deg) translate3d(0,0,0);opacity:.11}body.reduced-motion .start-orb{transform:none}body.reduced-motion .start-signal-line{transform:none;opacity:.42}body.reduced-motion .start-equalizer i{transform:none;opacity:.72}body.reduced-motion #start #play{transform:none}body.reduced-motion #start #play::before{opacity:0;transform:none}

/* World Tour Beta 1 identity. The helmet drifts slowly like a living stage presence. */
.release-mark{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;margin:0;color:var(--ice);font-size:9px;font-weight:800;line-height:1.3;letter-spacing:.15em;text-transform:uppercase}
.release-mark strong{display:inline-flex;align-items:center;padding-left:8px;border-left:2px solid var(--gold);color:var(--gold);font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;font-size:20px;line-height:1;letter-spacing:.13em}
.release-mark span{color:var(--ice);font-size:8px;font-weight:800;letter-spacing:.17em}
.release-mark span::before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 1px 0;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #49e4ff;vertical-align:middle}
.hub-release-lockup{display:flex;align-items:center;gap:10px;max-width:330px;color:#d8e8f6;text-transform:uppercase;pointer-events:none}
.hub-release-lockup img{display:block;width:58px;height:58px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 0 12px #49e4ff55) drop-shadow(0 8px 12px #02081499);animation:beta-logo-breathe 7s ease-in-out infinite;will-change:transform,opacity}
.hub-release-lockup small{display:block;color:#c5d4e4;font-size:7px;font-weight:800;line-height:1.35;letter-spacing:.13em}
.hub-release-lockup span{display:block;margin-top:4px;color:var(--ice);font-size:8px;font-weight:800;line-height:1.3;letter-spacing:.15em}
.hub-release-lockup strong{margin-right:7px;color:var(--gold);font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;font-size:18px;letter-spacing:.12em}
.entry-logo,.load-logo{position:absolute;z-index:0;top:14%;right:4vw;display:block;width:min(42vw,470px);height:min(64vh,470px);pointer-events:none}
.entry-logo::before,.load-logo::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#49e4ff18 0%,#2485f50a 46%,transparent 72%);box-shadow:0 0 90px #49e4ff18}
.entry-logo img,.load-logo img{position:relative;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 24px #49e4ff44) drop-shadow(0 16px 28px #020814aa);animation:beta-logo-breathe 7s ease-in-out infinite;will-change:transform,opacity}
.load-logo img{animation-delay:-2.2s}
#entry .entry-copy,#loading .load-title{position:relative;z-index:1}
#entry .release-mark,#loading .load-title .release-mark{margin:0 0 3px}
#loading .load-title .release-mark span,#loading .load-title .release-mark strong{margin-top:0!important}
@keyframes beta-logo-breathe{0%,100%{transform:translate3d(-3px,1px,0) scale(.985);opacity:.9}50%{transform:translate3d(5px,-7px,0) scale(1.015);opacity:1}}
@media(orientation:landscape) and (max-height:500px){.entry-logo,.load-logo{top:8%;right:2vw;width:min(36vw,310px);height:min(78vh,310px)}.hub-copy>.hub-release-lockup{grid-column:1}.hub-release-lockup img{width:44px;height:44px}.hub-release-lockup small{font-size:6px}.hub-release-lockup strong{font-size:15px}}
@media(max-width:700px){.entry-logo{top:13%;right:-9vw;width:56vw;height:56vw}.load-logo{top:11%;right:-8vw;width:54vw;height:54vw}.hub-release-lockup{gap:7px;max-width:260px}.hub-release-lockup img{width:48px;height:48px}.hub-release-lockup small{font-size:6px;letter-spacing:.1em}.hub-release-lockup span{font-size:7px}.hub-release-lockup strong{font-size:16px}#entry .release-mark,#loading .load-title .release-mark{gap:6px 8px}.release-mark strong{font-size:17px}.release-mark span{font-size:7px}}
@media(max-width:360px){.entry-logo{right:-12vw;width:58vw;height:58vw}.load-logo{right:-10vw;width:57vw;height:57vw}.hub-release-lockup img{width:43px;height:43px}.hub-release-lockup small{max-width:170px}}
@media(prefers-reduced-motion:reduce){.hub-release-lockup img,.entry-logo img,.load-logo img{animation:none!important;transform:none!important;opacity:.94}}
body.reduced-motion .hub-release-lockup img,body.reduced-motion .entry-logo img,body.reduced-motion .load-logo img{animation:none!important;transform:none!important;opacity:.94}

/* A clear, keyboard- and touch-safe route back to Holy Voltage Radio. */
.brand-link{display:block;min-height:44px;padding:5px 8px;margin:-5px -8px;color:inherit;text-decoration:none;border-radius:6px;pointer-events:auto;touch-action:manipulation}
.brand-link:hover{background:#ffffff12}
.brand-link:focus-visible{outline:3px solid #78ffff;outline-offset:4px}
