.encounter-hud { display:contents; }
@media (max-width:1000px), (pointer:coarse) {
  html { height:100%;overflow:hidden;overscroll-behavior:none; }
  body { padding:0;overscroll-behavior:none; }
  body > header { display:none; }
  main { max-width:none;padding:0;margin:0; }
  .arena-wrap { position:relative;border:0;border-radius:0; }
  .playfield { position:absolute;inset:0;--controls-height:calc(168px * var(--touch-scale)); }
  body[data-touch-aim="true"] .playfield { --controls-height:calc(168px * var(--touch-scale)); }
  .playfield canvas { inset:0;width:100%;height:100%; }
  .encounter-hud { position:absolute;top:calc(72px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none; }
  .encounter-hud .arena-head { min-height:0;padding:4px 7px;border-radius:6px;background:#211d3299;font-size:12px;letter-spacing:.3px; }
  .arena-head > span:first-child { display:none; }
  .encounter-hud .boss-hud { width:min(100%,380px);border:0;border-radius:6px;background:#30223bbb; }
  .encounter-hud .objective-hud { max-width:100%;padding:5px 7px;border-radius:6px;background:#211d3299;font-size:12px; }
  .encounter-hud .tutorial-hud { pointer-events:auto;max-width:100%;background:#283a45ed;border-radius:6px; }
  .playfield .mobile-hud { top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:auto;width:min(44%,168px);padding:7px 8px;background:#24213fb8;z-index:5; }
  .mobile-vitals > span { display:none; }
  .mobile-vitals strong, .mobile-metrics { font-size:12px; }
  .mobile-hud .bar { margin:5px 0; }
  .playfield .timer { top:calc(8px + env(safe-area-inset-top));right:calc(68px + env(safe-area-inset-right));left:auto;width:76px;padding:5px;border-width:1px;background:#24213fb8;z-index:5; }
  .timer strong { font-size:26px;line-height:28px; }
  .timer small { display:block;font-size:8px;line-height:10px;letter-spacing:0; }
  .timer > div { margin-top:3px; }
  .arena-foot { position:absolute;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));z-index:7;width:52px;height:48px;min-height:48px;padding:0;border:0;background:transparent; }
  .arena-foot > :not(#pause) { display:none; }
  .arena-foot #pause { width:52px;min-width:48px;min-height:48px;margin:0;padding:4px;font-size:11px; }
  .playfield .touch-zone { bottom:calc(24px + env(safe-area-inset-bottom));width:min(48%,calc(180px * var(--touch-scale)));height:var(--controls-height);background:transparent;border:0;overflow:visible; }
  #moveZone { left:env(safe-area-inset-left);right:auto; }
  #actionZone { left:auto;right:env(safe-area-inset-right);padding:8px;pointer-events:none; }
  body[data-handedness="left"] #moveZone { left:auto;right:env(safe-area-inset-right); }
  body[data-handedness="left"] #actionZone { right:auto;left:env(safe-area-inset-left); }
  #moveZone #stick { background:#33294266;border-color:#edcfad99; }
  #moveZone #stick.active { background:#51415b99; }
  #actionZone .abilities button { pointer-events:auto; }
  #actionZone #galaxeggyTouchAim { position:absolute;top:auto;bottom:calc(100% + 4px);left:50%;right:auto;transform:translateX(-50%);width:78px;height:78px;pointer-events:auto;background:#233a4888; }
  .playfield .run-build { bottom:calc(5px + env(safe-area-inset-bottom));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));pointer-events:none; }
  #weaponBelt { display:none; }
  .xp-track { padding:2px 6px;background:#24213f88; }
  .xp-track span { font-size:11px; }
  .powerup-hud { position:absolute;bottom:calc(var(--controls-height) + 28px);left:0;right:0; }
  #notice { top:45%;left:8px;right:8px;font-size:12px; }
  body[data-handedness="left"] .playfield .mobile-hud { left:calc(8px + env(safe-area-inset-left));right:auto; }
  body[data-handedness="left"] .playfield .timer { left:auto;right:calc(68px + env(safe-area-inset-right)); }
  .arena-wrap:has(#overlay:not(:empty)) > :is(.encounter-hud,.arena-foot) { visibility:hidden; }

  #overlay:not(:empty) { position:fixed;inset:0;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));height:100vh;height:100dvh;backdrop-filter:none;background:#17172aeb; }
  #overlay .modal.viewport-menu, #galaxeggySettings.viewport-menu { display:flex;flex-direction:column;gap:10px;width:100%;max-width:720px;height:100%;max-height:100%;min-height:0;padding:14px;overflow:hidden;scroll-padding:0;text-align:left; }
  #galaxeggySettings.viewport-menu { position:fixed;inset:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));width:auto;height:auto;margin:auto; }
  .viewport-heading,.viewport-actions,.viewport-navigation { flex:none;min-width:0; }
  .viewport-menu .viewport-heading h1 { font-size:30px;line-height:1.05;margin:0; }
  .viewport-menu .viewport-heading .tag { font-size:12px;letter-spacing:1px;margin-bottom:5px; }
  .viewport-menu .viewport-heading .menu-intro { display:block; }
  .viewport-menu .viewport-heading .menu-intro img { display:none; }
  .viewport-menu .viewport-heading .menu-intro br { display:none; }
  .viewport-menu .viewport-heading .menu-intro em::before { content:' '; }
  .viewport-menu .shop-context,.viewport-menu .galaxeggy-settings-head { display:block;position:static;margin:0;padding:0; }
  .viewport-menu .galaxeggy-settings-head { display:flex; }
  .viewport-menu .shop-context .shop-title h1 { font-size:28px; }
  .viewport-menu .shop-loadout,.viewport-menu .workshop-start { display:none; }
  .viewport-menu .workshop-tabs { margin:10px 4px 4px;gap:8px; }
  .viewport-menu .workshop-tabs button { min-height:48px;font-size:14px; }
  .viewport-pages { flex:1 1 0;min-height:0;min-width:0;overflow:hidden;overscroll-behavior:none; }
  .viewport-flow { height:100%;width:100%;column-count:1;column-gap:16px;column-fill:auto;overflow-wrap:anywhere; }
  .viewport-flow > * { margin-top:0;margin-bottom:12px; }
  .viewport-menu .viewport-flow :is(p,.save-note) { font-size:calc(14px * var(--galaxeggy-text-scale));line-height:1.45; }
  .viewport-menu .viewport-flow :is(button,summary,label,.set-bonuses,.stat-grid) { font-size:calc(14px * var(--galaxeggy-text-scale)); }
  .viewport-menu .viewport-flow :is(small,.tag) { font-size:calc(12px * var(--galaxeggy-text-scale)); }
  .viewport-flow :is(button,select,input,label,summary,.section-heading) { break-inside:avoid; }
  .viewport-flow :is(.cards,.weapon-grid,.level-choices,.choices,.set-bonuses,.stat-grid,.galaxeggy-settings-grid,.galaxeggy-binding-list) { display:block;margin:0; }
  /* Cards may be taller than a landscape page; their controls must remain reachable. */
  .viewport-flow :is(.card,.weapon-slot,.level-choice,.choices > label,.set-bonuses > span,.stat-grid > span,.galaxeggy-settings-grid > *,.galaxeggy-binding-list > *) { display:block;margin:0 0 12px; }
  .viewport-menu .viewport-flow .card { padding:10px; }
  .viewport-flow .card p { min-height:0; }
  .viewport-flow .card > strong { font-size:18px; }
  .viewport-flow .weapon-slot > div:first-child,.viewport-flow .stat-grid > span { display:flex; }
  .viewport-flow .section-heading { margin:8px 0; }
  .viewport-flow .section-heading h2 { font-size:24px; }
  .viewport-flow .choices select { margin-top:5px;font-size:16px; }
  .viewport-flow .choices label { color:#dfd5ec; }
  .viewport-flow .set-bonuses > span { padding:10px; }
  .viewport-flow .weapon-actions { flex-direction:row; }
  .viewport-flow details { break-inside:auto; }
  .viewport-flow details > summary { padding:10px 2px;line-height:1.4;cursor:pointer;break-after:avoid; }
  .viewport-flow p:empty { display:none; }
  .viewport-actions { display:flex;gap:8px;padding-bottom:5px; }
  .viewport-menu .viewport-actions > button { flex:1;width:auto;min-width:0;min-height:48px;margin:0;padding:9px;font-size:14px;line-height:1.25;position:static; }
  .viewport-navigation { display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #756483;padding:8px 4px 5px; }
  .viewport-navigation button { flex:1;min-width:min-content;overflow-wrap:normal;min-height:48px;font-size:14px;padding:8px; }
  .viewport-navigation output { font-size:12px;color:#d8cde8;text-align:center; }
  .viewport-actions:empty,.viewport-heading:empty { display:none; }
  .viewport-menu .viewport-flow [data-controls-settings] { width:100%;margin:8px 0; }
}
@media (orientation:landscape) and (max-width:1000px), (orientation:landscape) and (pointer:coarse) {
  #overlay .modal.viewport-menu,#galaxeggySettings.viewport-menu { padding:10px;gap:6px;max-width:none; }
  .viewport-menu .viewport-heading h1 { font-size:24px; }
  .viewport-menu .viewport-heading .tag { display:none; }
  .viewport-navigation { padding-top:4px; }
  #actionZone #galaxeggyTouchAim { bottom:12px;left:auto;right:calc(100% + 4px);transform:none;width:64px;height:64px; }
  body[data-handedness="left"] #actionZone #galaxeggyTouchAim { right:auto;left:calc(100% + 4px); }
  .encounter-hud { right:calc(190px + env(safe-area-inset-right)); }
  .powerup-hud { left:calc(180px * var(--touch-scale));right:calc(180px * var(--touch-scale));bottom:24px; }
}
#galaxeggySettings.viewport-menu:not([open]) { display:none; }
