:root{
  --bg:var(--tg-theme-bg-color,#080c12);--surface:var(--tg-theme-secondary-bg-color,#131a24);--surface-2:var(--tg-theme-section-bg-color,#1a2431);--text:var(--tg-theme-text-color,#f4f7fb);--muted:var(--tg-theme-hint-color,#98a3b5);--accent:var(--tg-theme-button-color,#55d68a);--accent-text:var(--tg-theme-button-text-color,#08130c);--danger:#ff6474;--line:rgba(255,255,255,.10);--line-strong:rgba(255,255,255,.18);
  --safe-top:max(7px,var(--tg-content-safe-area-inset-top,0px),env(safe-area-inset-top));--safe-right:max(7px,var(--tg-content-safe-area-inset-right,0px),env(safe-area-inset-right));--safe-bottom:max(6px,var(--tg-content-safe-area-inset-bottom,0px),env(safe-area-inset-bottom));--safe-left:max(7px,var(--tg-content-safe-area-inset-left,0px),env(safe-area-inset-left));--nav-h:58px
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overscroll-behavior:none}body{height:var(--tg-viewport-stable-height,100svh);overflow:hidden;touch-action:manipulation}button,input{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{height:var(--tg-viewport-stable-height,100svh);min-height:500px;width:100%;max-width:480px;margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr) var(--nav-h);gap:6px;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:radial-gradient(circle at 50% -8%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 34%),var(--bg)}
.topbar{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:8px}.brand{min-width:0;display:flex;align-items:center;gap:8px}.brand-mark{width:36px;height:36px;flex:0 0 36px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:1px;border:1px solid var(--line);background:linear-gradient(145deg,var(--surface-2),var(--surface));font-size:12px;overflow:hidden}.brand-mark span:first-child{color:#ffb34d}.brand-mark span:last-child{color:#ff6577;transform:rotate(-13deg)}.brand-copy{min-width:0}.brand-title{font-size:12px;font-weight:850;letter-spacing:.085em;white-space:nowrap}.brand-subtitle{margin-top:2px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.header-actions{display:flex;gap:5px}.icon-btn,.mini-btn,.primary-btn,.secondary-btn,.control-strip button,.segmented button,.chapter-chip,.level-btn,.store-action{border:1px solid var(--line);background:var(--surface);cursor:pointer}.icon-btn{width:44px;height:44px;border-radius:11px;padding:0}.icon-btn.active{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.stage-shell{position:relative;min-height:0;overflow:hidden;border-radius:16px}.app-screen{position:absolute;inset:0;min-height:0}.app-screen[hidden]{display:none!important}.game-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px}.hud{display:flex;gap:5px;min-height:44px}.hud-item{min-width:0;flex:1;padding:6px 7px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 65%,var(--surface)),var(--surface))}.hud-label{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.065em}.hud-item strong{display:block;margin-top:2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-item strong.hud-inline{display:flex;align-items:baseline;gap:2px}.hud-inline span,.hud-inline b{display:inline!important;color:inherit!important;font-size:inherit!important;letter-spacing:0!important;text-transform:none!important}.hud-inline b{font-weight:600;color:var(--muted)!important}
.game-wrap{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;background:transparent}.game-wrap::before{content:"";position:absolute;width:min(94%,520px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%);filter:blur(8px);pointer-events:none}#gameCanvas{display:block;max-width:100%;max-height:100%;border-radius:14px;border:1px solid var(--line-strong);background:#070b11;box-shadow:0 10px 30px rgba(0,0,0,.22)}.corner-status,.offline-chip{position:static;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:850;letter-spacing:.05em;pointer-events:none;white-space:nowrap}.corner-status{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}.corner-status.hidden,.offline-chip.hidden{display:none}.offline-chip{color:#ffd76a;background:color-mix(in srgb,#ffd76a 8%,var(--surface));border:1px solid color-mix(in srgb,#ffd76a 32%,var(--line))}.overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:16px;background:rgba(3,6,10,.69);backdrop-filter:blur(5px)}.overlay.hidden{display:none}.overlay-card{width:min(340px,100%);padding:18px;border-radius:17px;text-align:center;border:1px solid var(--line-strong);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 70%,var(--surface)),var(--surface))}.overlay-kicker,.eyebrow{color:var(--accent);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.11em}.overlay-card h1,.screen-heading h2{margin:6px 0 5px;font-size:19px;line-height:1.12}.overlay-card p,.screen-note{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.overlay-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.primary-btn,.secondary-btn{min-height:42px;border-radius:11px;font-weight:750}.primary-btn{color:var(--accent-text);border-color:transparent;background:var(--accent)}
.control-panel{display:grid;gap:10px;margin-top:12px;text-align:left}.control-panel[hidden]{display:none!important}.control-mode-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.control-mode-picker button,.control-panel-btn{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer}.control-mode-picker button.active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.control-panel-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.control-panel-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;font-size:13px}.control-panel-btn span{font-size:10px;font-weight:750}.control-panel-btn[aria-pressed="true"]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.danger-lite{color:#ff9aa4}.overlay-actions .primary-btn,.overlay-actions .secondary-btn{min-height:44px}
.controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"move mission action";align-items:end;gap:6px;min-height:132px}
.thumb-zone{min-width:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px}
.movement-zone{grid-area:move;align-items:flex-start}
.action-zone{grid-area:action;align-items:flex-end}
.control-strip{--control-cell:clamp(44px,12vw,54px);display:grid;grid-template-columns:repeat(3,var(--control-cell));grid-template-rows:repeat(3,var(--control-cell));grid-template-areas:". up ." "left center right" ". down .";place-content:end start;gap:2px;min-width:0;position:relative}
.control-strip::before{content:"";grid-area:center;width:var(--control-cell);height:var(--control-cell);border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--line) 70%,transparent);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--bg) 22%,transparent);pointer-events:none}
.control-strip button{width:var(--control-cell);height:var(--control-cell);min-width:44px;min-height:44px;border-radius:11px;font-weight:850;font-size:15px;user-select:none;touch-action:manipulation;background:linear-gradient(180deg,var(--surface-2),var(--surface));position:relative;z-index:1}
.control-strip button[data-dir="left"]{grid-area:left}.control-strip button[data-dir="up"]{grid-area:up}.control-strip button[data-dir="down"]{grid-area:down}.control-strip button[data-dir="right"]{grid-area:right}
.control-strip button:active,.action-btn:active,.icon-btn:active,.nav-btn:active,.mini-btn:active,.store-action:active{transform:translateY(1px);filter:brightness(1.13)}
.action-btn{position:relative;width:clamp(64px,18vw,78px);height:clamp(64px,18vw,78px);min-width:64px;min-height:64px;padding:0;border:1px solid color-mix(in srgb,#ff6273 65%,var(--line));border-radius:50%;cursor:pointer;user-select:none;touch-action:manipulation;color:#fff;background:radial-gradient(circle at 34% 28%,#ff9aa4 0 10%,#f24d60 25%,#bd263a 54%,#641322 100%);box-shadow:0 6px 18px rgba(0,0,0,.24),inset 0 0 0 3px rgba(255,255,255,.08)}
.action-symbol{font-size:25px;display:block;transform:translateY(-7px);text-shadow:0 1px 3px rgba(0,0,0,.5)}
.cooldown-label{position:absolute;bottom:8px;left:3px;right:3px;font-size:7px;color:rgba(255,255,255,.84);font-weight:850;text-transform:uppercase;white-space:nowrap}
.action-btn.cooldown{opacity:.72}.action-btn:disabled{cursor:default;filter:saturate(.38) brightness(.72);opacity:.48}.action-zone.no-disk .thumb-caption{opacity:.48}
.thumb-caption{min-height:10px;color:var(--muted);font-size:7px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.movement-zone .thumb-caption{align-self:flex-start;padding-left:3px}.action-zone .thumb-caption{align-self:flex-end;padding-right:3px}
.controls-left-handed .movement-zone{grid-area:action;align-items:flex-end}.controls-left-handed .action-zone{grid-area:move;align-items:flex-start}.controls-left-handed .movement-zone .thumb-caption{align-self:flex-end;padding-left:0;padding-right:3px}.controls-left-handed .action-zone .thumb-caption{align-self:flex-start;padding-right:0;padding-left:3px}
.mission-card{grid-area:mission;min-width:0;align-self:stretch;padding:8px 9px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),var(--surface));display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.mission-row{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}.mission-title{color:var(--accent);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.075em;white-space:nowrap}.mission-tools{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}.difficulty-badge,.progress-chip,.stars-chip,.status-chip{flex:0 0 auto;padding:4px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:750}.stars-chip{color:#ffd76a}.status-chip{color:var(--accent)}.status-chip.live{background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.mission-text{margin-top:3px;font-size:11px;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.mission-mechanics{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.mechanic-chip{padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid var(--line);font-size:8.5px;color:var(--muted);white-space:nowrap}.legend{margin-top:5px;display:flex;flex-wrap:wrap;gap:4px 8px;color:var(--muted);font-size:9px}.legend span{display:flex;align-items:center;gap:4px}.legend-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.legend-key{width:12px;height:12px;display:grid;place-items:center;border-radius:4px;background:var(--surface);font-size:8px;color:var(--accent);font-style:normal}.hero-dot{background:#ffb34d}.gem-dot{background:#5af1da}.enemy-dot{background:#ff6474} .controls-menu-btn{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);cursor:pointer;flex:0 0 auto;font-size:22px;line-height:1}.controls-menu-btn:active{transform:translateY(1px);filter:brightness(1.13)}
.bottom-nav{min-height:var(--nav-h);display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(12px);z-index:20}.nav-btn{min-width:0;border:0;border-radius:11px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer}.nav-btn span{height:22px;display:grid;place-items:center;font-size:15px}.nav-btn small{font-size:9px;white-space:nowrap}.nav-btn.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--surface-2))}
.content-screen{overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:13px 13px 22px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,transparent),color-mix(in srgb,var(--bg) 94%,var(--surface)));scrollbar-width:thin}.screen-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.screen-heading h2,.screen-heading h3{margin:4px 0 0}.compact-heading{margin-top:14px}.compact-heading h3{font-size:15px}.screen-note{margin-top:7px}.chapter-chips{display:flex;flex-wrap:wrap;gap:6px;overflow:visible;margin:11px 0 10px;padding-bottom:2px}.chapter-chips::-webkit-scrollbar{display:none}.chapter-chip{flex:0 0 auto;padding:7px 9px;border-radius:999px;color:var(--muted);font-size:10px}.chapter-chip.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))}.levels-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.level-btn{min-width:0;aspect-ratio:1;border-radius:9px;font-size:11px;font-weight:850;background:var(--surface-2)}.level-btn.current{outline:2px solid var(--accent);outline-offset:1px}.level-btn.completed{background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));color:var(--text)}.level-btn.local-only{border-style:dashed;border-color:#ffd76a;color:#ffd76a;background:color-mix(in srgb,#ffd76a 8%,var(--surface-2))}.level-btn.locked{opacity:.32;cursor:not-allowed}
.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin:11px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.segmented button{min-height:36px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px}.segmented button.active{color:var(--text);background:var(--surface);box-shadow:0 1px 0 rgba(255,255,255,.05) inset}.audio-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.audio-settings[hidden]{display:none!important}.audio-toggle{display:flex;align-items:center;gap:7px;font-size:11px}.audio-toggle input{width:18px;height:18px}.volume-control{display:grid;gap:4px;color:var(--muted);font-size:9px}.volume-control input{width:100%;accent-color:var(--accent)}.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.store-card{min-width:0;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);display:grid;gap:8px}.preview-box{position:relative;height:104px;overflow:hidden;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:var(--preview-bg,#0c1119);display:grid;place-items:center}.preview-canvas{width:100%;height:100%;display:block}.music-preview{display:flex;align-items:flex-end;gap:5px;height:44px}.music-preview i{width:6px;border-radius:99px;background:var(--preview-accent);animation:eq 1s ease-in-out infinite alternate}.music-preview i:nth-child(1){height:16px}.music-preview i:nth-child(2){height:34px;animation-delay:-.4s}.music-preview i:nth-child(3){height:24px;animation-delay:-.7s}.music-preview i:nth-child(4){height:39px;animation-delay:-.2s}.music-preview i:nth-child(5){height:21px;animation-delay:-.55s}@keyframes eq{to{transform:scaleY(.45);opacity:.65}}.store-copy h3{margin:0;font-size:13px}.store-copy p{margin:4px 0 0;color:var(--muted);font-size:10.5px;line-height:1.35}.store-foot{display:flex;align-items:center;justify-content:space-between;gap:6px}.store-actions{display:flex;gap:5px;align-items:center}.music-card .store-foot{display:grid;grid-template-columns:1fr;align-items:stretch}.music-card .store-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.music-card .store-action,.music-card .preview-btn{min-width:0;padding:0 6px;width:100%}.price{font-size:11px;font-weight:850;color:#ffd76a}.owned{color:var(--accent)}.store-action,.mini-btn{min-height:34px;padding:0 10px;border-radius:9px;font-size:10px;font-weight:750}.store-action.primary{color:var(--accent-text);background:var(--accent);border-color:transparent}.store-action:disabled{opacity:.55;cursor:default}.preview-btn{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:10px;cursor:pointer}
.leaderboard-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px}.leaderboard-list li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;background:var(--surface-2)}.compact-list{margin-top:7px}.rank{color:var(--muted);font-weight:850}.score-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.score-points{font-weight:850;font-size:11px}.score-sub{display:block;color:var(--muted);font-size:9px;margin-top:1px}
@media(max-width:420px){.chapter-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.info-tags{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.info-tags span{flex:0 0 auto}.brand-title{font-size:11px}.brand-subtitle{max-width:82px}.icon-btn{width:44px;height:44px}.levels-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.store-grid{grid-template-columns:1fr 1fr}.nav-btn small{font-size:8.5px}.controls{grid-template-columns:minmax(140px,.86fr) minmax(0,1.14fr);align-items:stretch;gap:5px}.mission-card{display:flex;min-height:0;padding:7px 8px;position:relative;justify-content:flex-start;overflow:auto}.mission-title{display:inline}.mission-text{margin-top:5px;padding:0;font-size:10px;line-height:1.2;white-space:normal;overflow:visible;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.mission-tools{position:static}.mission-mechanics{margin-top:4px;padding-right:4px;gap:3px}.mechanic-chip{font-size:7.5px;padding:2px 5px}.legend{display:none}.audio-settings{grid-template-columns:1fr 1fr}}
@media(max-height:690px){:root{--nav-h:54px}.app-shell{gap:4px;min-height:0}.topbar{min-height:44px}.brand-mark{width:32px;height:32px;flex-basis:32px}.icon-btn{height:44px;width:44px}.hud{min-height:39px}.hud-item{padding:4px 6px}.hud-label{font-size:8px}.hud-item strong{font-size:12px}.controls{min-height:48px}.control-strip button{min-height:46px}.nav-btn span{height:18px;font-size:14px}.preview-box{height:90px}}
@media(max-width:340px){.brand-mark{width:28px;height:28px;flex-basis:28px}.brand-subtitle{display:none}.brand-title{font-size:10px}.game-screen{grid-template-rows:minmax(0,1fr) auto}.hud{display:none}.header-actions{gap:3px}.icon-btn{width:44px;height:44px}.corner-status{top:5px;right:5px;font-size:8px;padding:3px 6px}.nav-btn small{font-size:7.5px}.content-screen{padding:10px 10px 18px}.store-grid{grid-template-columns:1fr}.audio-settings{grid-template-columns:1fr}.control-strip{gap:4px}.control-strip button{min-height:46px}}

/* Large-field mechanics + camera layout pass (v0.13) */
.hud{grid-template-columns:repeat(5,minmax(0,1fr))}
.content-screen{border:0;background:transparent;border-radius:0;padding:10px 8px 18px;align-content:start}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}
.summary-card{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.summary-card strong{display:block;font-size:14px;color:var(--text)}
.summary-card span{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.bottom-nav.five{grid-template-columns:repeat(5,1fr)}
.game-wrap.camera-mode canvas{image-rendering:auto}
@media(max-width:420px){.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card{padding:7px}.summary-card strong{font-size:12px}.bottom-nav.five .nav-btn small{font-size:8.5px}}
@media(max-width:340px){.hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:28px;gap:2px}.hud-item{padding:3px 2px;text-align:center}.hud-label{display:none}.hud-item strong{font-size:10px}.corner-status{display:none!important}.game-screen{grid-template-rows:auto minmax(0,1fr) auto}.summary-grid{grid-template-columns:1fr 1fr}.bottom-nav.five .nav-btn small{font-size:8.5px}.bottom-nav.five{gap:1px;padding:3px}.bottom-nav.five .nav-btn{border-radius:9px}}

.info-panel{margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 76%,transparent);color:var(--muted);font-size:11px;line-height:1.45}.info-panel strong{display:block;color:var(--text);font-size:12px;margin-bottom:4px}.info-panel p{margin:0}.info-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.info-tags span{padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10px}.leaderboard-explain{margin-top:12px}

/* v0.13 systemic-puzzle UI pass */
.hud-short{display:none}
.action-btn.held{outline:2px solid var(--accent);outline-offset:-3px;background:color-mix(in srgb,var(--accent) 18%,var(--surface-2))}
.action-btn.has-disk .action-symbol{color:#ff4e5e}
@media(max-width:340px){
  .hud-label{display:block!important;font-size:6.5px!important;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip}
  .hud-wide{display:none}.hud-short{display:inline}
  .hud-item strong{font-size:9.5px!important;margin-top:2px}
  .hud{min-height:34px!important}
}

/* v0.13 gameplay readability */
.mission-mechanics{display:none!important}
.action-btn:disabled{opacity:.34;filter:saturate(.45);pointer-events:none}
@media(max-width:340px){
  .hud{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .hud-item:nth-child(3),.hud-item:nth-child(5){display:none}
  .hud-label{display:block!important;font-size:7px!important}
  .hud-short{display:inline!important}.hud-wide{display:none!important}
  .mission-text{padding-right:76px!important;-webkit-line-clamp:2!important;font-size:10.2px!important;line-height:1.18!important}
  .mission-tools .difficulty-badge{display:none}
}

/* Gameplay HUD keeps the board primary; object legend lives in the help overlay. */
.legend{display:none!important}

/* v0.15 fidelity/mobile */
.control-strip.no-disk{grid-template-columns:repeat(3,var(--control-cell));grid-template-rows:repeat(3,var(--control-cell))}.control-strip .action-btn[hidden]{display:none!important}

.level-focus{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,300px);gap:12px;align-items:stretch;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.level-focus-copy{display:flex!important;flex-direction:column;justify-content:center;gap:5px}.level-focus b{color:var(--text);font-size:12px}.level-focus span{color:var(--muted);font-size:10px;line-height:1.4}.level-focus .level-focus-note{padding:5px 7px;border-radius:8px;background:color-mix(in srgb,var(--surface-2) 78%,var(--surface));border:1px solid var(--line);color:var(--muted)}.level-preview-canvas{display:block;width:100%;max-width:300px;align-self:center;border:1px solid var(--line);border-radius:8px;background:#070b11;image-rendering:auto}@media(max-width:360px){.level-focus{grid-template-columns:1fr;gap:8px}.level-preview-canvas{max-width:100%}.level-focus b{font-size:11.5px}.level-focus span{font-size:10px}}

/* v0.23 compact-phone readability: keep the same panel heights, enlarge only critical labels. */
@media(max-width:340px){
  .hud-label{font-size:8px!important;letter-spacing:.035em!important}
  .hud-item strong{font-size:10.5px!important}
  .mission-text{font-size:10.8px!important;line-height:1.2!important}
  .bottom-nav.five .nav-btn small{font-size:9px!important}
}

/* Portrait remains the default single-column play surface at every width. */
@media(orientation:portrait){
  .app-shell{max-width:520px;min-height:0}
  .game-screen{grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr) auto!important}
  .hud,.game-wrap,.controls{grid-column:1!important}
  .game-wrap{grid-row:2!important}
  .controls{grid-row:3!important}
}

/* v0.32 HD element skins, honest connectivity and About surface */
.status-chip.offline{color:#ffd76a;background:color-mix(in srgb,#ffd76a 8%,var(--surface-2));border-color:color-mix(in srgb,#ffd76a 34%,var(--line))}
.version-chip{flex:0 0 auto;padding:5px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));color:var(--accent);font-size:9px;font-weight:850}
.about-hero{display:grid;grid-template-columns:92px minmax(0,1fr);gap:13px;align-items:center;margin-top:13px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:16px;background:radial-gradient(circle at 15% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 45%),var(--surface-2)}
.about-orb{width:92px;height:92px;display:grid;place-items:center}.classic-orb{position:relative;width:76%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 27%,#ffe4a5 0 8%,#ffbd5f 30%,#db7e2d 66%,#7b351c 100%);border:2px solid rgba(255,226,167,.52);box-shadow:0 0 18px rgba(255,179,77,.38),inset -8px -10px 16px rgba(92,35,14,.34)}.classic-orb::before{content:"";position:absolute;left:24%;right:24%;top:30%;height:14%;background:radial-gradient(circle at 12% 50%,#15202c 0 28%,transparent 31%),radial-gradient(circle at 88% 50%,#15202c 0 28%,transparent 31%)}.classic-orb::after{content:"";position:absolute;left:34%;right:34%;bottom:24%;height:13%;border-bottom:3px solid #663519;border-radius:0 0 999px 999px}
.about-hero strong{display:block;font-size:15px}.about-hero p,.about-card p,.about-controls p{margin:5px 0 0;color:var(--muted);font-size:10.5px;line-height:1.45}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.about-card{position:relative;min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.about-card>span{display:block;margin-bottom:7px;color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.12em}.about-card strong{font-size:12px}
.about-controls{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,var(--surface-2),var(--surface))}.about-controls strong{font-size:12px}.about-back{width:100%;margin-top:10px}.fidelity-note{border-color:color-mix(in srgb,#ffd76a 30%,var(--line))}
@media(max-width:360px){.about-grid{grid-template-columns:1fr}.about-hero{grid-template-columns:70px minmax(0,1fr)}.about-orb{width:70px;height:70px}.header-actions .icon-btn{width:39px}}
.action-zone .action-btn:disabled{opacity:.48;filter:saturate(.38) brightness(.72);pointer-events:none}

@media(min-width:760px) and (orientation:landscape){
  .app-shell{max-width:1180px;padding-left:14px;padding-right:14px}
  .game-screen{grid-template-columns:clamp(152px,18vw,188px) minmax(0,1fr) clamp(152px,18vw,188px);grid-template-rows:auto minmax(0,1fr);gap:10px}
  .game-screen .hud{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .game-screen .hud-item{padding:6px 4px;text-align:center}.game-screen .hud-wide{display:none}.game-screen .hud-short{display:inline}
  .game-screen .game-wrap{grid-column:2;grid-row:2}
  .game-screen .controls{display:contents}
  .game-screen .mission-card{grid-column:1;grid-row:1;min-height:0;align-self:stretch;justify-content:flex-start;padding:10px}
  .game-screen .movement-zone{grid-area:auto;grid-column:1;grid-row:2;align-self:end;justify-self:start;align-items:flex-start}
  .game-screen .action-zone{grid-area:auto;grid-column:3;grid-row:2;align-self:end;justify-self:end;align-items:flex-end}
  .game-screen .control-strip{--control-cell:clamp(48px,7.5vh,58px)}
  .game-screen .action-btn{width:clamp(72px,10vh,84px);height:clamp(72px,10vh,84px)}
  .controls-left-handed .game-screen .movement-zone{grid-column:3;justify-self:end;align-items:flex-end}
  .controls-left-handed .game-screen .action-zone{grid-column:1;justify-self:start;align-items:flex-start}
  .store-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(orientation:portrait) and (max-width:420px){
  .app-shell{gap:5px}
  .game-screen{gap:1px}
  .topbar{min-height:40px}.brand-mark{width:32px;height:32px;flex-basis:32px}.header-actions{gap:3px}.icon-btn{width:40px;height:40px}
  .game-screen{gap:1px}.game-screen .hud{min-height:36px;gap:3px}.game-screen .hud-item{padding:4px 3px;text-align:center}.game-screen .hud-wide{display:none}.game-screen .hud-short{display:inline}.game-screen .hud-item strong{font-size:11px}
  .game-screen .controls{grid-template-columns:auto minmax(78px,1fr) auto;gap:5px;min-height:132px}
  .control-strip{--control-cell:clamp(44px,12vw,48px);gap:2px}.control-strip button{border-radius:10px}
  .action-btn{width:68px;height:68px;min-width:64px;min-height:64px}
  .mission-card{min-height:132px;padding:6px 7px;justify-content:flex-start}.mission-row{align-items:flex-start}.mission-tools{gap:2px;flex-wrap:wrap}.mission-text{font-size:9.5px;-webkit-line-clamp:4}.mission-mechanics,.legend{display:none}
  
  .bottom-nav,.bottom-nav.five{padding:3px;gap:2px;border-radius:12px}
}

@media(orientation:portrait) and (max-width:340px){
  .game-screen .controls{grid-template-columns:auto minmax(72px,1fr) auto;gap:4px}
  .control-strip{--control-cell:44px;gap:1px}
  .action-btn{width:64px;height:64px}
  .mission-card{padding:5px}.difficulty-badge{display:none}.mission-title{font-size:8px}.mission-text{padding:0!important;font-size:9px;-webkit-line-clamp:3}
}

@media(orientation:portrait) and (max-height:640px){
  :root{--nav-h:50px}.app-shell{gap:3px;padding-top:max(4px,var(--tg-content-safe-area-inset-top,0px),env(safe-area-inset-top))}
  .topbar{min-height:40px}.brand-mark{display:none}.brand-subtitle{display:none}.icon-btn{width:40px;height:40px}
  .game-screen .hud{min-height:32px}.game-screen .hud-item{padding:3px 2px}.game-screen .hud-label{font-size:7px}.game-screen .hud-item strong{font-size:10px}
  .game-screen .controls{min-height:132px}
  .control-strip{--control-cell:44px;gap:1px}.control-strip button{min-width:44px;min-height:44px}
  .action-btn{width:64px;height:64px}.mission-card{min-height:132px;padding:5px 6px}.mission-text{font-size:9px;-webkit-line-clamp:3}.mission-mechanics,.legend{display:none}.difficulty-badge{display:none}
  .corner-status,.offline-chip{font-size:7px;padding:2px 4px}
  .bottom-nav.five .nav-btn span{height:17px;font-size:13px}.bottom-nav.five .nav-btn small{font-size:7.5px}
}

/* v0.36 adaptive two-thumb pass: movement and action live under opposite hands. */
@media(orientation:landscape) and (max-height:700px){
  :root{--nav-h:64px}
  body{overflow:hidden}
  .app-shell{
    visibility:visible;pointer-events:auto;max-width:none;min-height:0;
    grid-template-columns:minmax(0,1fr) 64px;grid-template-rows:40px minmax(0,1fr);
    gap:5px;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)
  }
  .topbar{grid-column:1;grid-row:1;min-height:40px;padding:0 2px}
  .brand-mark{width:32px;height:32px;flex-basis:32px}.brand-subtitle{max-width:210px}
  .header-actions{gap:4px}.icon-btn{width:38px;height:38px;border-radius:10px}
  .stage-shell{grid-column:1;grid-row:2;border-radius:12px}
  .bottom-nav,.bottom-nav.five{
    grid-column:2;grid-row:1/3;min-height:0;height:auto;
    grid-template-columns:1fr;grid-template-rows:repeat(5,minmax(0,1fr));
    gap:3px;padding:3px;border-radius:13px
  }
  .bottom-nav.five .nav-btn{min-height:0;padding:2px;border-radius:9px}
  .bottom-nav.five .nav-btn span{height:18px;font-size:14px}.bottom-nav.five .nav-btn small{font-size:7.5px!important}
  .game-screen{grid-template-columns:clamp(134px,23vw,164px) minmax(0,1fr) clamp(64px,17vh,78px);grid-template-rows:minmax(0,1fr) auto;gap:5px;position:relative;height:100%;overflow:hidden}
  .game-screen .hud{grid-column:3;grid-row:1;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(5,minmax(0,1fr));gap:3px;min-height:0}
  .game-screen .hud-item{padding:3px 2px;text-align:center;border-radius:9px;display:grid;align-content:center}.game-screen .hud-label{font-size:6.5px;letter-spacing:.025em}.game-screen .hud-wide{display:none}.game-screen .hud-short{display:inline}.game-screen .hud-item strong{font-size:10px;margin-top:1px}
  .game-screen .game-wrap{grid-column:2;grid-row:1/3}
  .game-screen .controls{display:contents}
  .game-screen .mission-card{grid-column:1;grid-row:1;min-height:0;align-self:stretch;padding:6px 7px;justify-content:flex-start;overflow:hidden}
  .game-screen .mission-title{display:inline}.game-screen .mission-text{margin-top:3px;padding:0;font-size:9px;line-height:1.2;-webkit-line-clamp:3}.game-screen .mission-tools{position:static;gap:2px;flex-wrap:wrap}.game-screen .mission-mechanics,.game-screen .legend{display:none}
  .game-screen .movement-zone{grid-area:auto;grid-column:1;grid-row:2;align-self:end;justify-self:start;align-items:flex-start}
  .game-screen .action-zone{grid-area:auto;grid-column:3;grid-row:2;align-self:end;justify-self:end;align-items:flex-end}
  .game-screen .control-strip{--control-cell:clamp(44px,12vh,56px);gap:3px;place-content:end start}
  .game-screen .control-strip button{min-width:44px;min-height:44px;font-size:16px;border-radius:11px}
  .game-screen .action-btn{width:clamp(64px,17vh,78px);height:clamp(64px,17vh,78px)}
  .controls-left-handed .game-screen{grid-template-columns:clamp(64px,17vh,78px) minmax(0,1fr) clamp(134px,23vw,164px)}
  .controls-left-handed .game-screen .hud{grid-column:1}
  .controls-left-handed .game-screen .mission-card{grid-column:3}
  .controls-left-handed .game-screen .movement-zone{grid-column:3;justify-self:end;align-items:flex-end}
  .controls-left-handed .game-screen .action-zone{grid-column:1;justify-self:start;align-items:flex-start}
  .content-screen{padding:8px 10px 12px}.screen-heading h2{font-size:17px}.screen-note{font-size:10.5px}.chapter-chips{margin:7px 0}.summary-grid{margin:7px 0}
  .levels-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.level-btn{aspect-ratio:auto;min-height:32px}
  .store-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.preview-box{height:86px}
  #aboutScreen .about-hero{grid-template-columns:74px minmax(0,1fr);margin-top:8px;padding:9px}.about-orb{width:74px;height:74px}
  #aboutScreen .about-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:7px}#aboutScreen .about-card{padding:8px}#aboutScreen .about-card p{font-size:9px;line-height:1.3}
  #aboutScreen .info-panel,#aboutScreen .about-controls,#aboutScreen .about-back{margin-top:7px}
}

@media(orientation:landscape) and (max-height:420px){
  .app-shell{grid-template-columns:minmax(0,1fr) 58px;grid-template-rows:44px minmax(0,1fr)}
  .topbar{min-height:44px}.brand-mark{display:none}.brand-subtitle{display:none}.icon-btn{width:44px;height:44px}
  .bottom-nav,.bottom-nav.five{grid-column:2}
  .game-screen{grid-template-columns:134px minmax(0,1fr) 64px;gap:5px}
  .controls-left-handed .game-screen{grid-template-columns:64px minmax(0,1fr) 134px}
  .game-screen .control-strip{--control-cell:44px;gap:3px}.game-screen .control-strip button{min-width:44px;min-height:44px}
  .game-screen .action-btn{width:64px;height:64px}
  .game-screen .mission-card{padding:5px 6px}.game-screen .mission-text{font-size:8.5px;-webkit-line-clamp:2}.game-screen .difficulty-badge{display:none}.game-screen .controls-menu-btn{width:44px;height:44px}
  .game-screen .thumb-caption{font-size:6.5px}
}


/* v0.37 optional one-hand presets. They reuse the broad rail and do not resize the board. */
@media(orientation:landscape) and (max-height:700px){
  .controls-one-hand-right .game-screen{grid-template-columns:clamp(64px,17vh,78px) minmax(0,1fr) clamp(134px,23vw,164px)}
  .controls-one-hand-right .game-screen .hud{grid-column:1;grid-row:1}
  .controls-one-hand-right .game-screen .mission-card{display:flex;position:absolute;top:0;right:0;width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;overflow:visible;z-index:8}
  .controls-one-hand-right .game-screen .movement-zone{grid-column:3;grid-row:2;justify-self:end;align-items:flex-end}
  .controls-one-hand-right .game-screen .action-zone{grid-column:3;grid-row:1;align-self:end;justify-self:start;align-items:flex-start;padding-left:2px;padding-bottom:2px}
  .controls-one-hand-left .game-screen{grid-template-columns:clamp(134px,23vw,164px) minmax(0,1fr) clamp(64px,17vh,78px)}
  .controls-one-hand-left .game-screen .hud{grid-column:3;grid-row:1}
  .controls-one-hand-left .game-screen .mission-card{display:flex;position:absolute;top:0;left:0;width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;overflow:visible;z-index:8}
  .controls-one-hand-left .game-screen .movement-zone{grid-column:1;grid-row:2;justify-self:start;align-items:flex-start}
  .controls-one-hand-left .game-screen .action-zone{grid-column:1;grid-row:1;align-self:end;justify-self:end;align-items:flex-end;padding-right:2px;padding-bottom:2px}
  .controls-one-hand-right .game-screen .mission-row,.controls-one-hand-left .game-screen .mission-row{display:block;width:44px;height:44px}
  .controls-one-hand-right .game-screen .mission-tools,.controls-one-hand-left .game-screen .mission-tools{display:block;position:static;width:44px;height:44px}
  .controls-one-hand-right .game-screen .mission-title,.controls-one-hand-left .game-screen .mission-title,
  .controls-one-hand-right .game-screen .difficulty-badge,.controls-one-hand-left .game-screen .difficulty-badge,
  .controls-one-hand-right .game-screen .corner-status,.controls-one-hand-left .game-screen .corner-status,
  .controls-one-hand-right .game-screen .offline-chip,.controls-one-hand-left .game-screen .offline-chip,
  .controls-one-hand-right .game-screen .mission-text,.controls-one-hand-left .game-screen .mission-text,
  .controls-one-hand-right .game-screen .mission-mechanics,.controls-one-hand-left .game-screen .mission-mechanics,
  .controls-one-hand-right .game-screen .legend,.controls-one-hand-left .game-screen .legend{display:none!important}
}
@media(orientation:portrait) and (max-width:560px){
  .controls-one-hand-right .game-screen .controls{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mission move";gap:4px}
  .controls-one-hand-right .game-screen .movement-zone{grid-area:move;align-items:flex-end}
  .controls-one-hand-right .game-screen .action-zone{grid-area:move;align-self:start;justify-self:start;align-items:flex-start;transform:translate(-70px,2px);z-index:2}
  .controls-one-hand-left .game-screen .controls{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"move mission";gap:4px}
  .controls-one-hand-left .game-screen .movement-zone{grid-area:move;align-items:flex-start}
  .controls-one-hand-left .game-screen .action-zone{grid-area:move;align-self:start;justify-self:end;align-items:flex-end;transform:translate(70px,2px);z-index:2}
  .controls-one-hand-right .game-screen .mission-card,.controls-one-hand-left .game-screen .mission-card{min-width:0}
}
@media(orientation:landscape) and (max-height:420px){
  .controls-one-hand-right .game-screen{grid-template-columns:64px minmax(0,1fr) 134px}
  .controls-one-hand-left .game-screen{grid-template-columns:134px minmax(0,1fr) 64px}
}

/* v0.38 split-axis two-thumb controls + stable compact red-disk inventory slot. */
.split-axis-controls{
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"vertical mission horizontal";
  align-items:end;
  gap:6px;
  min-height:132px;
}
.vertical-zone{grid-area:vertical;align-items:flex-start;justify-self:start}
.horizontal-zone{grid-area:horizontal;align-items:flex-end;justify-self:end}
.axis-strip{--axis-cell:clamp(44px,12vw,54px);display:grid;gap:2px;min-width:0}
.axis-strip button{
  width:var(--axis-cell);height:var(--axis-cell);min-width:44px;min-height:44px;
  border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,var(--surface-2),var(--surface));
  cursor:pointer;font-weight:850;font-size:15px;user-select:none;touch-action:manipulation
}
.vertical-axis{grid-template-columns:var(--axis-cell);grid-template-rows:repeat(2,var(--axis-cell))}
.horizontal-axis{grid-template-columns:repeat(2,var(--axis-cell));grid-template-rows:var(--axis-cell)}
.axis-strip button:active{transform:translateY(1px);filter:brightness(1.13)}
.vertical-zone .thumb-caption{align-self:flex-start;padding-left:3px}
.horizontal-zone .thumb-caption{align-self:flex-end;padding-right:3px}
.horizontal-zone{gap:3px}
.disk-dock{
  width:64px;height:64px;min-width:64px;min-height:64px;display:grid;place-items:center;
  align-self:center;flex:0 0 64px
}
.disk-dock .action-btn{width:64px;height:64px;min-width:64px;min-height:64px;transition:width .14s ease,height .14s ease,border-radius .14s ease,opacity .14s ease,filter .14s ease}
.disk-dock.no-disk .action-btn{
  width:44px;height:44px;min-width:44px;min-height:44px;border-radius:14px;
  opacity:.48;filter:saturate(.38) brightness(.72);box-shadow:0 3px 10px rgba(0,0,0,.18),inset 0 0 0 2px rgba(255,255,255,.05)
}
.disk-dock.no-disk .action-symbol{font-size:14px;opacity:.55}
.disk-dock.no-disk .cooldown-label{font-size:8px}
.controls-axes-swapped .split-axis-controls{grid-template-areas:"horizontal mission vertical"}
.controls-axes-swapped .vertical-zone{align-items:flex-end;justify-self:end}
.controls-axes-swapped .horizontal-zone{align-items:flex-start;justify-self:start}
.controls-axes-swapped .vertical-zone .thumb-caption{align-self:flex-end;padding-left:0;padding-right:3px}
.controls-axes-swapped .horizontal-zone .thumb-caption{align-self:flex-start;padding-right:0;padding-left:3px}

/* One-hand presets keep a D-pad-like 134px cluster: vertical pair + horizontal pair/disk side by side. */
@media(orientation:portrait) and (max-width:560px){
  .controls-one-hand-right .split-axis-controls{grid-template-columns:minmax(0,1fr) 134px;grid-template-areas:"mission cluster";gap:4px}
  .controls-one-hand-left .split-axis-controls{grid-template-columns:134px minmax(0,1fr);grid-template-areas:"cluster mission";gap:4px}
  .controls-one-hand-right .vertical-zone,.controls-one-hand-right .horizontal-zone,
  .controls-one-hand-left .vertical-zone,.controls-one-hand-left .horizontal-zone{grid-area:cluster;align-self:end}
  .controls-one-hand-right .vertical-zone,.controls-one-hand-left .vertical-zone{justify-self:start;align-items:flex-start}
  .controls-one-hand-right .horizontal-zone,.controls-one-hand-left .horizontal-zone{justify-self:end;align-items:flex-end}
  .controls-one-hand-right .vertical-zone .thumb-caption,.controls-one-hand-left .vertical-zone .thumb-caption{display:none}
  .controls-one-hand-right .horizontal-zone .thumb-caption,.controls-one-hand-left .horizontal-zone .thumb-caption{font-size:6.5px}
  .controls-one-hand-right .mission-card,.controls-one-hand-left .mission-card{grid-area:mission;min-width:0}
}

/* Landscape keeps exactly the old 198px combined side-rail budget, so the board does not shrink. */
@media(orientation:landscape) and (max-height:700px){
  .game-screen{grid-template-columns:106px minmax(0,1fr) 92px;grid-template-rows:minmax(0,1fr) auto}
  .game-screen .hud{grid-column:3;grid-row:1}
  .game-screen .game-wrap{grid-column:2;grid-row:1/3}
  .game-screen .mission-card{grid-column:1;grid-row:1}
  .game-screen .vertical-zone{grid-area:auto;grid-column:1;grid-row:2;align-self:end;justify-self:start;align-items:flex-start}
  .game-screen .horizontal-zone{grid-area:auto;grid-column:3;grid-row:2;align-self:end;justify-self:end;align-items:flex-end}
  .game-screen .axis-strip{--axis-cell:44px;gap:2px}
  .game-screen .axis-strip button{min-width:44px;min-height:44px}
  .game-screen .disk-dock{width:64px;height:64px;min-width:64px;min-height:64px}
  .controls-axes-swapped .game-screen{grid-template-columns:92px minmax(0,1fr) 106px}
  .controls-axes-swapped .game-screen .hud{grid-column:1}
  .controls-axes-swapped .game-screen .mission-card{grid-column:3}
  .controls-axes-swapped .game-screen .vertical-zone{grid-column:3;justify-self:end;align-items:flex-end}
  .controls-axes-swapped .game-screen .horizontal-zone{grid-column:1;justify-self:start;align-items:flex-start}

  .controls-one-hand-right .game-screen{grid-template-columns:64px minmax(0,1fr) 134px}
  .controls-one-hand-right .game-screen .hud{grid-column:1;grid-row:1}
  .controls-one-hand-right .game-screen .vertical-zone,
  .controls-one-hand-right .game-screen .horizontal-zone{grid-column:3;grid-row:2;align-self:end}
  .controls-one-hand-right .game-screen .vertical-zone{justify-self:start;align-items:flex-start}
  .controls-one-hand-right .game-screen .horizontal-zone{justify-self:end;align-items:flex-end}

  .controls-one-hand-left .game-screen{grid-template-columns:134px minmax(0,1fr) 64px}
  .controls-one-hand-left .game-screen .hud{grid-column:3;grid-row:1}
  .controls-one-hand-left .game-screen .vertical-zone,
  .controls-one-hand-left .game-screen .horizontal-zone{grid-column:1;grid-row:2;align-self:end}
  .controls-one-hand-left .game-screen .vertical-zone{justify-self:start;align-items:flex-start}
  .controls-one-hand-left .game-screen .horizontal-zone{justify-self:end;align-items:flex-end}
  .controls-one-hand-right .game-screen .vertical-zone .thumb-caption,
  .controls-one-hand-left .game-screen .vertical-zone .thumb-caption{display:none}
}

@media(orientation:portrait) and (max-width:340px){
  .split-axis-controls{grid-template-columns:auto minmax(72px,1fr) auto;gap:4px}
  .axis-strip{--axis-cell:44px;gap:1px}
  .horizontal-zone{gap:2px}
}

/* v0.38 one-hand specificity repair: override legacy v0.37 .game-screen .controls rules. */
@media(orientation:portrait) and (max-width:560px){
  .controls-one-hand-right .game-screen .split-axis-controls{grid-template-columns:minmax(0,1fr) 134px;grid-template-areas:"mission cluster";gap:4px}
  .controls-one-hand-left .game-screen .split-axis-controls{grid-template-columns:134px minmax(0,1fr);grid-template-areas:"cluster mission";gap:4px}
  .controls-one-hand-right .game-screen .vertical-zone,.controls-one-hand-right .game-screen .horizontal-zone,
  .controls-one-hand-left .game-screen .vertical-zone,.controls-one-hand-left .game-screen .horizontal-zone{grid-area:cluster;align-self:end}
  .controls-one-hand-right .game-screen .vertical-zone,.controls-one-hand-left .game-screen .vertical-zone{justify-self:start;align-items:flex-start}
  .controls-one-hand-right .game-screen .horizontal-zone,.controls-one-hand-left .game-screen .horizontal-zone{justify-self:end;align-items:flex-end;transform:none}
  .controls-one-hand-right .game-screen .mission-card,.controls-one-hand-left .game-screen .mission-card{grid-area:mission;min-width:0}
}
@media(orientation:portrait) and (max-width:560px){
  .controls-one-hand-right .game-screen .axis-strip,.controls-one-hand-left .game-screen .axis-strip{--axis-cell:44px}
}

/* v0.39: compact two-thumb bar inspired by the original mobile HUD.
   Each hand gets one axis; controls occupy a single 50px row on portrait. */
.compact-controls{
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"vertical disk horizontal" "mission mission mission";
  align-items:center;
  min-height:0;
  gap:6px 10px;
}
.compact-controls .vertical-zone{grid-area:vertical;justify-self:start;align-items:flex-start}
.compact-controls .horizontal-zone{grid-area:horizontal;justify-self:end;align-items:flex-end}
.compact-controls .mission-card{grid-area:mission;min-width:0}
.compact-controls .axis-strip{--axis-cell:48px;display:grid;grid-template-rows:48px;gap:4px}
.compact-controls .vertical-axis,.compact-controls .horizontal-axis{grid-template-columns:repeat(2,48px);grid-template-rows:48px}
.compact-controls .axis-strip button{width:48px;height:48px;min-width:44px;min-height:44px;border-radius:12px;font-size:16px}
.compact-controls .thumb-caption{display:none}
.compact-controls .disk-dock{grid-area:disk;justify-self:center;width:48px;height:48px;min-width:48px;min-height:48px;align-self:center}
.compact-controls .disk-dock[hidden]{display:none!important}
.compact-controls .disk-dock .action-btn,.compact-controls .disk-dock.no-disk .action-btn{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:14px}
.compact-controls .disk-dock.no-disk .action-symbol{font-size:14px}
.compact-controls .controls-menu-btn{width:44px;height:44px;min-width:44px;min-height:44px}
.controls-axes-swapped .compact-controls{grid-template-areas:"horizontal disk vertical" "mission mission mission"}
.controls-axes-swapped .compact-controls .vertical-zone{justify-self:end;align-items:flex-end}
.controls-axes-swapped .compact-controls .horizontal-zone{justify-self:start;align-items:flex-start}

@media(orientation:portrait) and (max-width:560px){
  .compact-controls{gap:5px 8px}
  .compact-controls .axis-strip{--axis-cell:clamp(44px,12vw,48px)}
  .compact-controls .vertical-axis,.compact-controls .horizontal-axis{grid-template-columns:repeat(2,var(--axis-cell));grid-template-rows:var(--axis-cell)}
  .compact-controls .axis-strip button{width:var(--axis-cell);height:var(--axis-cell)}
  .controls-one-hand-right .game-screen .compact-controls,
  .controls-one-hand-left .game-screen .compact-controls{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"vertical disk horizontal" "mission mission mission";gap:5px 8px}
  .controls-one-hand-right .game-screen .compact-controls .vertical-zone,
  .controls-one-hand-left .game-screen .compact-controls .vertical-zone{grid-area:vertical;justify-self:start;align-items:flex-start}
  .controls-one-hand-right .game-screen .compact-controls .horizontal-zone,
  .controls-one-hand-left .game-screen .compact-controls .horizontal-zone{grid-area:horizontal;justify-self:end;align-items:flex-end}
  .controls-one-hand-right .game-screen .compact-controls .mission-card,
  .controls-one-hand-left .game-screen .compact-controls .mission-card{grid-area:mission}
}

/* Compact landscape: keep the board central; each axis becomes one 48px side rocker.
   The mission card remains in the side rail as before. */
@media(orientation:landscape) and (max-height:700px){
  .game-screen .compact-controls{display:contents}
  .game-screen .compact-controls .vertical-zone{grid-column:1;grid-row:2;align-self:end;justify-self:start}
  .game-screen .compact-controls .horizontal-zone{grid-column:3;grid-row:2;align-self:end;justify-self:end}
  .game-screen .compact-controls .axis-strip{--axis-cell:44px;grid-template-columns:repeat(2,44px);grid-template-rows:44px;gap:2px}
  .game-screen .compact-controls .axis-strip button{width:44px;height:44px;min-width:44px;min-height:44px}
  .game-screen .compact-controls .disk-dock{grid-column:3;grid-row:1;align-self:end;justify-self:end;width:48px;height:48px;min-width:48px;min-height:48px;margin-bottom:2px}
  .controls-axes-swapped .game-screen .compact-controls .vertical-zone{grid-column:3;justify-self:end}
  .controls-axes-swapped .game-screen .compact-controls .horizontal-zone{grid-column:1;justify-self:start}
  .controls-axes-swapped .game-screen .compact-controls .disk-dock{grid-column:1;justify-self:start}
}

/* v0.39 compact mission strip: matches the older game-first portrait proportions. */
@media(orientation:portrait) and (max-width:560px){
  .game-screen .compact-controls{min-height:0!important;grid-template-rows:auto 44px;align-items:center}
  .game-screen .compact-controls .mission-card{
    grid-area:mission!important;min-height:44px!important;height:44px;padding:0 6px!important;
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;overflow:hidden!important
  }
  .game-screen .compact-controls .mission-text{grid-column:1;grid-row:1;margin:0!important;padding:0!important;font-size:9.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block!important}
  .game-screen .compact-controls .mission-row{grid-column:2;grid-row:1;display:block;width:auto;height:44px;align-self:center}
  .game-screen .compact-controls .mission-title{display:none!important}
  .game-screen .compact-controls .mission-tools{height:44px;display:flex;align-items:center;gap:3px;flex-wrap:nowrap!important}
  .game-screen .compact-controls .mission-mechanics,.game-screen .compact-controls .legend{display:none!important}
  .game-screen .compact-controls .difficulty-badge{font-size:8px;padding:3px 5px}
}

/* v0.39 landscape placement: prevent named compact-grid areas from creating implicit columns. */
@media(orientation:landscape) and (max-height:700px){
  .game-screen .compact-controls .mission-card{grid-area:auto!important;grid-column:1;grid-row:1}
  .controls-axes-swapped .game-screen .compact-controls .mission-card{grid-column:3}
  .game-screen .compact-controls .disk-dock{grid-area:auto!important;grid-column:1;grid-row:1;align-self:end;justify-self:end;z-index:3;margin:0 4px 4px 0}
  .controls-axes-swapped .game-screen .compact-controls .disk-dock{grid-column:3;justify-self:start;margin:0 0 4px 4px}
}
@media(orientation:landscape) and (max-height:700px){
  .game-screen .compact-controls .mission-card{grid-column:1!important;grid-row:1!important}
  .controls-axes-swapped .game-screen .compact-controls .mission-card{grid-column:3!important}
  .game-screen .compact-controls .disk-dock{grid-column:1!important;grid-row:1!important}
  .controls-axes-swapped .game-screen .compact-controls .disk-dock{grid-column:3!important}
}


/* v0.41 board-fill pass: the board owns the vertical space between HUD and thumb controls. */
@media(orientation:portrait) and (max-width:560px){
  .game-screen{gap:0}
  .game-screen .game-wrap{place-items:center;min-height:0}
  .game-screen .hud{margin-bottom:0}
  .game-screen .compact-controls{margin-top:0}
}
@media(orientation:landscape) and (max-height:700px){
  .game-screen{gap:2px}
  .game-screen .game-wrap{place-items:center;min-width:0;min-height:0}
}

/* v0.43 Stone Arena / League — Circuit Clash local playable MVP. */
.status-chip.prototype{color:#7fffd4;background:color-mix(in srgb,#62e6b2 10%,var(--surface-2));border-color:color-mix(in srgb,#62e6b2 42%,var(--line))}
.party-screen,.league-screen{overflow:auto}.party-view[hidden]{display:none!important}.party-view{min-height:0}.party-hero{display:grid;grid-template-columns:64px minmax(0,1fr);gap:11px;align-items:center;margin-top:10px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:15px;background:radial-gradient(circle at 8% 15%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 42%),var(--surface-2)}
.party-orb{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;font-size:26px;color:#d9fff8;border:1px solid color-mix(in srgb,#79ffe0 45%,var(--line));background:radial-gradient(circle,#1d7158 0 18%,#0d2d24 58%,#07140f 100%);box-shadow:0 0 20px rgba(80,255,200,.16)}
.party-hero strong{font-size:16px}.party-hero p,.party-feature p{margin:4px 0 0;color:var(--muted);font-size:10.5px;line-height:1.42}.party-rules-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px}.party-rules-strip span{min-width:0;padding:7px 5px;text-align:center;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:8.5px}.party-rules-strip b{display:block;color:var(--text);font-size:12px}
.party-actions{display:grid;gap:7px;margin-top:9px}.party-actions.two-col{grid-template-columns:1fr 1fr}.party-cta{min-height:64px;text-align:left;padding:10px 11px}.party-cta strong,.party-cta small{display:block}.party-cta small{margin-top:3px;font-size:9px;font-weight:550;opacity:.72}.party-feature{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:start;margin-top:7px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 78%,var(--surface))}.party-feature>span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}.party-feature strong{font-size:11px}.party-honesty{padding-bottom:4px}
.party-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-top:7px}.party-room-head h3{margin:4px 0 0;font-size:17px}.party-room-head code{color:var(--accent)}.party-roster{display:grid;gap:5px;margin-top:10px}.party-player-row{min-height:44px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.party-avatar{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-weight:850}.party-player-row b{font-size:11px}.party-player-row small{color:var(--muted);font-size:8px;font-weight:800}.party-lobby-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0}.party-lobby-meta span{padding:7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:8px}.party-lobby-meta b{display:block;margin-top:2px;color:var(--text);font-size:9px}.party-wide{width:100%;min-height:44px;margin-top:6px}.text-btn{min-height:44px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.party-screen.match-active{overflow:hidden}.party-screen.match-active>.party-heading{display:none}.party-match{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:5px}.party-match-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:5px}.party-match-hud>div{min-width:0;padding:6px 7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.party-match-hud span{display:block;color:var(--muted);font-size:7px}.party-match-hud strong{display:block;margin-top:1px;font-size:12px}.party-match-hud .mini-btn{min-width:52px;min-height:40px}.party-canvas-wrap{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-strong);border-radius:12px;background:#06110d}.party-canvas-wrap canvas{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;aspect-ratio:13/9}.party-toast{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);max-width:86%;padding:5px 9px;border-radius:999px;background:rgba(4,13,10,.9);border:1px solid rgba(121,255,224,.32);color:#d9fff8;font-size:9px;font-weight:750;white-space:nowrap}.party-toast.hidden{display:none}.party-player-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}.party-player-strip span{min-width:0;padding:4px 3px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:8px;text-align:center;white-space:nowrap}.party-player-strip span.is-you{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.party-controls{display:grid;grid-template-columns:44px 44px minmax(8px,1fr) 58px 44px 44px;align-items:center;gap:3px;min-height:48px}.party-dpad{display:contents}.party-dpad button,.party-pulse{min-width:44px;min-height:44px;height:44px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,var(--surface-2),var(--surface));font-weight:850;cursor:pointer}.party-dpad button[data-party-dir="up"]{grid-column:1}.party-dpad button[data-party-dir="down"]{grid-column:2}.party-dpad button[data-party-dir="left"]{grid-column:5}.party-dpad button[data-party-dir="right"]{grid-column:6}.party-pulse{grid-column:4;width:58px;color:#eafff8;border-color:color-mix(in srgb,#79ffe0 44%,var(--line));background:radial-gradient(circle at 35% 28%,#2b8f70,#135140 55%,#0a2c23);display:grid;place-items:center;line-height:1}.party-pulse span{font-size:18px}.party-pulse small{font-size:6.5px}.party-pulse:disabled{opacity:.5}
.party-podium-title{text-align:center;margin-top:10px}.party-podium-title h3{margin:4px 0 2px;font-size:22px}.party-podium-title p{margin:0;color:var(--muted);font-size:10px}.party-podium{height:150px;display:flex;align-items:end;justify-content:center;gap:6px;margin-top:10px}.podium-slot{width:29%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:10px 5px;border:1px solid var(--line);border-radius:12px 12px 5px 5px;background:linear-gradient(180deg,var(--surface-2),var(--surface));font-size:9px}.podium-slot.p1{height:145px;border-color:color-mix(in srgb,#ffd76a 48%,var(--line))}.podium-slot.p2{height:116px}.podium-slot.p3{height:96px}.podium-slot>span{font-size:22px}.podium-slot b{font-size:10px}.podium-slot strong{color:var(--accent);font-size:13px}.party-result-stats{margin-top:8px}
.league-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center;margin-top:10px;padding:11px;border:1px solid color-mix(in srgb,#d48b52 38%,var(--line));border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,#8b512d 18%,var(--surface-2)),var(--surface-2))}.league-emblem{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#8e5a39,#3f2a21);border:1px solid #bd7c50;color:#ffd0a8;font-size:19px;font-weight:900}.league-card span,.league-card small{display:block;color:var(--muted);font-size:8px}.league-card strong{display:block;margin:3px 0;font-size:15px}.league-tabs{margin-top:9px}.league-list li.is-you{border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}.league-list li>div span{display:block;color:var(--muted);font-size:8px;margin-top:2px}

@media(orientation:portrait) and (max-width:420px){
  .party-screen,.league-screen{padding-left:7px;padding-right:7px}.party-hero{grid-template-columns:54px minmax(0,1fr);padding:10px}.party-orb{width:52px;height:52px}.party-actions.two-col{grid-template-columns:1fr 1fr}.party-cta{min-height:60px;padding:8px}.party-cta strong{font-size:11px}.party-feature{padding:8px}.party-lobby-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.party-controls{grid-template-columns:44px 44px minmax(4px,1fr) 56px 44px 44px;gap:2px}.party-pulse{width:56px}.party-player-strip span{font-size:7px}.party-podium{height:132px}.podium-slot.p1{height:128px}.podium-slot.p2{height:105px}.podium-slot.p3{height:88px}
}

@media(orientation:landscape) and (max-height:700px){
  .party-screen,.league-screen{padding:4px 7px 6px}.party-heading h2,.league-screen .screen-heading h2{font-size:15px;margin-top:1px}.party-heading .eyebrow,.league-screen .eyebrow{font-size:8px}.party-heading{align-items:center}.party-hub{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:auto auto auto;gap:5px 7px}.party-hub .party-hero{grid-column:1;grid-row:1/3;margin:0;padding:8px;grid-template-columns:48px minmax(0,1fr)}.party-hub .party-orb{width:46px;height:46px}.party-hub .party-rules-strip{grid-column:1;grid-row:3;margin:0;gap:3px}.party-hub .party-actions{grid-column:2;grid-row:1;margin:0}.party-hub .party-feature{grid-column:2;margin:0;padding:6px}.party-hub .party-feature:nth-of-type(2){grid-row:2}.party-hub .party-feature:nth-of-type(3){grid-row:3}.party-hub .party-honesty{display:none}.party-hero p,.party-feature p{font-size:8.5px;line-height:1.25}.party-feature>span{width:28px;height:28px}.party-cta{min-height:52px;padding:6px 8px}.party-cta strong{font-size:10px}.party-cta small{font-size:7.5px}
  .party-view[data-party-view="lobby"]{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto 1fr auto;gap:5px 8px}.party-room-head{grid-column:1/3;margin:0}.party-roster{grid-column:1;grid-row:2/4;grid-template-columns:1fr 1fr;margin:0;gap:3px}.party-player-row{min-height:37px;padding:3px 6px}.party-avatar{width:28px;height:28px}.party-lobby-meta{grid-column:2;grid-row:2;grid-template-columns:1fr;margin:0;gap:3px}.party-lobby-meta span{padding:4px 6px}.party-view[data-party-view="lobby"] .party-wide{grid-column:2;margin:0;min-height:38px}.party-view[data-party-view="lobby"] #partyInviteBtn{grid-row:3}.party-view[data-party-view="lobby"] #partyStartBtn{grid-row:4}.party-view[data-party-view="lobby"] #partyLobbyBackBtn,.party-view[data-party-view="lobby"] .screen-note{display:none}
  .party-match{grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:38px minmax(0,1fr);gap:4px}.party-match-hud{grid-column:1/3;grid-row:1}.party-canvas-wrap{grid-column:1;grid-row:2}.party-player-strip{display:none}.party-controls{grid-column:2;grid-row:2;display:grid;grid-template-columns:44px 44px;grid-template-rows:44px 44px 1fr 56px;justify-content:center;align-content:center;gap:4px}.party-dpad{display:contents}.party-dpad button[data-party-dir="up"]{grid-column:1;grid-row:1}.party-dpad button[data-party-dir="down"]{grid-column:2;grid-row:1}.party-dpad button[data-party-dir="left"]{grid-column:1;grid-row:2}.party-dpad button[data-party-dir="right"]{grid-column:2;grid-row:2}.party-pulse{grid-column:1/3;grid-row:4;width:92px;height:56px;justify-self:center}.party-pulse small{font-size:7px}.party-match-hud>div{padding:3px 6px}.party-match-hud .mini-btn{min-height:36px}.party-match-hud strong{font-size:10px}
  .party-view[data-party-view="results"]{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;gap:5px 10px}.party-podium-title{grid-column:1;margin:0;text-align:left}.party-podium-title h3{font-size:18px}.party-podium{grid-column:1;grid-row:2;height:146px;margin:0}.party-result-stats{grid-column:2;grid-row:1;margin:0}.party-view[data-party-view="results"] .party-actions{grid-column:2;grid-row:2;align-self:end;margin:0}.party-view[data-party-view="results"]>.screen-note{grid-column:2;grid-row:3;margin:0;font-size:8px}.league-card{float:left;width:42%;margin:5px 8px 5px 0;padding:7px;grid-template-columns:48px minmax(0,1fr)}.league-emblem{width:44px;height:44px;border-radius:13px}.league-tabs{margin-top:5px}.league-screen .summary-grid{margin:5px 0}.league-list{margin-top:5px;gap:3px}.league-list li{padding:5px 8px}.league-screen .leaderboard-explain{display:none}.league-screen .screen-note{font-size:8.5px;margin-top:4px}
}

/* v0.43 RC touch/board polish. */
.party-screen button,.league-screen button{min-height:44px}
.league-tabs button{min-height:44px}
.party-match-hud .mini-btn{min-height:44px}
@media(orientation:portrait){
  .party-match{grid-template-rows:auto auto auto auto;align-content:start}
  .party-canvas-wrap{width:100%;height:auto;aspect-ratio:13/9;align-self:start}
  .party-canvas-wrap canvas{width:100%;height:auto;max-height:none;object-fit:fill;aspect-ratio:13/9}
}
@media(orientation:landscape) and (max-height:700px){
  .party-view[data-party-view="lobby"] .party-wide{min-height:44px}
  .party-match-hud .mini-btn{min-height:44px}
}
@media(orientation:portrait){
  .party-canvas-wrap{aspect-ratio:9/13}
  .party-canvas-wrap canvas{aspect-ratio:9/13}
}

/* v0.43 Circuit Clash action: red disk appears only after pickup. */
.party-disk-action{color:#fff1f2!important;border-color:rgba(255,90,96,.62)!important;background:radial-gradient(circle at 35% 28%,#ff6a6f,#a62f3b 55%,#3b151c)!important;box-shadow:0 0 18px rgba(255,78,94,.12)}
.party-disk-action[hidden]{display:none!important}
.party-disk-action span{color:#ffbdc2;text-shadow:0 0 9px rgba(255,78,94,.7)}

/* v0.43 immersive landscape Arena: use the full vertical budget and never crop the 13x9 canvas. */
@media(orientation:landscape) and (max-height:700px){
  .party-match-mode .app-shell{grid-template-rows:minmax(0,1fr)}
  .party-match-mode .topbar{display:none}
  .party-match-mode .stage-shell{grid-row:1}
  .party-match-mode .bottom-nav,.party-match-mode .bottom-nav.five{grid-row:1}
  .party-match-mode .party-canvas-wrap canvas{width:auto;height:100%;max-width:100%;max-height:100%;object-fit:contain;aspect-ratio:13/9}
}
@media(orientation:landscape) and (max-height:700px){
  .party-match-mode .party-canvas-wrap canvas{position:absolute;inset:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto}
}

/* v0.44 Arena architecture/UX: unrotated physics, shared renderer, immersive two-hand controls. */
.party-join{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px}.party-join input{min-width:0;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);padding:0 11px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.party-join button{min-width:84px;min-height:44px}.party-player-strip em{font-style:normal;color:var(--accent)}
.party-match-mode .topbar,.party-match-mode .bottom-nav,.party-match-mode .bottom-nav.five{display:none!important}
.party-match-mode .app-shell{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;gap:0!important;padding-top:max(4px,var(--tg-content-safe-area-inset-top,0px));padding-bottom:max(4px,var(--tg-content-safe-area-inset-bottom,0px))}
.party-match-mode .stage-shell{grid-column:1!important;grid-row:1!important;min-height:0!important;height:100%!important}
.party-screen.match-active{padding:4px 6px!important;overflow:hidden!important}
.party-match{height:100%!important;min-height:0;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:44px minmax(0,1fr) auto 48px!important;gap:4px!important}
.party-match-hud{grid-column:1!important;grid-row:1!important;min-height:44px}.party-match-hud>div{padding:4px 7px!important}.party-match-hud .mini-btn{min-width:56px!important;min-height:44px!important}
.party-canvas-wrap{grid-column:1!important;grid-row:2!important;width:100%!important;height:100%!important;min-height:0!important;aspect-ratio:auto!important;background:#06110d;display:grid!important;place-items:center!important}
.party-canvas-wrap canvas,.party-match-mode .party-canvas-wrap canvas{position:static!important;display:block!important;width:auto!important;height:100%!important;max-width:100%!important;max-height:100%!important;aspect-ratio:13/9!important;object-fit:contain!important;margin:auto!important}
.party-player-strip{grid-column:1!important;grid-row:3!important;min-height:25px}.party-player-strip span{padding:3px 3px!important}
.party-controls{grid-column:1!important;grid-row:4!important;display:grid!important;grid-template-columns:auto minmax(12px,1fr) auto!important;grid-template-rows:48px!important;align-items:center!important;gap:8px!important;min-height:48px!important;padding:0 2px}
.party-axis{display:flex;align-items:center;gap:4px}.party-axis-v{grid-column:1;justify-self:start}.party-axis-h{grid-column:3;justify-self:end}.party-axis button{width:48px;height:48px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--surface-2),var(--surface));font-size:16px;font-weight:900;touch-action:manipulation}.party-action-slot{grid-column:2;grid-row:1;display:grid;place-items:center;min-width:0}.party-pulse{position:static!important;grid-column:auto!important;width:56px!important;height:48px!important;min-width:48px!important;min-height:48px!important;border-radius:12px!important}.party-pulse small{font-size:6.5px!important}
@media(orientation:portrait){.party-match{grid-template-rows:44px minmax(0,1fr) auto 48px!important}.party-canvas-wrap,.party-canvas-wrap canvas{aspect-ratio:13/9!important}.party-player-strip{display:grid!important}.party-controls{gap:5px!important}.party-axis button{width:44px;height:48px}.party-pulse{width:52px!important}}
@media(orientation:landscape) and (max-height:700px){.party-screen.match-active{padding:3px 5px!important}.party-match{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:42px minmax(0,1fr) 48px!important;gap:3px!important}.party-match-hud{grid-row:1!important}.party-canvas-wrap{grid-row:2!important}.party-player-strip{display:none!important}.party-controls{grid-row:3!important;grid-template-columns:auto minmax(20px,1fr) auto!important;grid-template-rows:48px!important;align-content:center!important}.party-axis{gap:5px}.party-axis button{width:52px;height:46px}.party-pulse{height:46px!important;width:60px!important}.party-match-hud>div{padding:3px 7px!important}}

/* v0.44 final Arena fit: keep logical 13x9 in both orientations; never crop or rotate it. */
.party-canvas-wrap{overflow:hidden!important}
@media(orientation:portrait){
  .party-match{grid-template-rows:44px auto auto 48px!important;align-content:start!important}
  .party-canvas-wrap{height:auto!important;aspect-ratio:13/9!important;align-self:start!important}
}

/* v0.44 portrait Arena camera: same 13x9 world/physics, horizontally cropped viewport instead of rotated gravity. */
.party-canvas-wrap{position:relative!important}
.party-camera-hint{position:absolute;top:8px;z-index:5;padding:5px 8px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:999px;background:rgba(5,15,12,.88);color:#d8fff1;font-size:9px;font-weight:900;letter-spacing:.06em;pointer-events:none}
.party-camera-hint:not([hidden]){display:block}.party-camera-hint[hidden]{display:none!important}
@media(orientation:portrait){
  .party-match{grid-template-rows:44px minmax(0,1fr) auto 60px!important;align-content:stretch!important}
  .party-canvas-wrap{height:100%!important;aspect-ratio:auto!important;align-self:stretch!important;overflow:hidden!important}
  .party-canvas-wrap canvas{justify-self:start!important;margin:0!important}
  .party-camera-hint{right:8px}
  .party-controls{height:60px!important;grid-template-rows:60px!important;align-self:end!important}
  .party-axis button{width:52px!important;height:54px!important}.party-pulse{height:54px!important;width:58px!important}
}
@media(orientation:portrait){
  .party-canvas-wrap canvas,.party-match-mode .party-canvas-wrap canvas{max-width:none!important;max-height:none!important;aspect-ratio:auto!important}
}
/* v0.44 landscape thumb rails: use the side space instead of stealing a bottom row from the arena. */
@media(orientation:landscape) and (max-height:700px){
  .party-match{grid-template-columns:112px minmax(0,1fr) 112px!important;grid-template-rows:42px minmax(0,1fr)!important;gap:4px 6px!important}
  .party-match-hud{grid-column:1/4!important;grid-row:1!important}
  .party-canvas-wrap{grid-column:2!important;grid-row:2!important}
  .party-controls{display:contents!important}
  .party-axis-v{grid-column:1!important;grid-row:2!important;justify-self:center!important;align-self:end!important;flex-direction:column!important;margin-bottom:8px}
  .party-axis-h{grid-column:3!important;grid-row:2!important;justify-self:center!important;align-self:end!important;flex-direction:row!important;margin-bottom:8px}
  .party-action-slot{grid-column:3!important;grid-row:2!important;justify-self:center!important;align-self:start!important;margin-top:10px;z-index:4}
  .party-axis button{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important}
  .party-pulse{width:64px!important;height:54px!important;min-width:64px!important;min-height:54px!important}
}

.league-list li.leaderboard-empty{display:block!important;min-height:74px;padding:12px!important}.league-list li.leaderboard-empty div{display:block!important}.league-list li.leaderboard-empty b,.league-list li.leaderboard-empty span{display:block!important;width:auto!important}.league-list li.leaderboard-empty span{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}

/* v0.45 Arena: conventional D-pad, persistent overview map, and thumb-safe action rail. */
.party-minimap{position:absolute!important;left:8px;top:8px!important;width:112px!important;height:78px!important;z-index:6;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:#04100c;box-shadow:0 4px 18px rgba(0,0,0,.28);pointer-events:none;image-rendering:auto}
.party-camera-hint{left:auto!important;right:8px!important;top:8px!important}
.party-controls{min-height:132px!important;height:132px!important;display:grid!important;grid-template-columns:140px minmax(12px,1fr) 92px!important;grid-template-rows:132px!important;gap:8px!important;align-items:center!important;padding:0 4px!important}
.party-dpad{grid-column:1;grid-row:1;justify-self:start;display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px;gap:0;touch-action:none;user-select:none}
.party-dpad button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;margin:0!important;padding:0!important;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--surface-2),var(--surface));font-size:17px;font-weight:950;touch-action:manipulation}
.party-dpad button[data-party-dir="up"]{grid-column:2;grid-row:1}.party-dpad button[data-party-dir="left"]{grid-column:1;grid-row:2}.party-dpad button[data-party-dir="right"]{grid-column:3;grid-row:2}.party-dpad button[data-party-dir="down"]{grid-column:2;grid-row:3}
.party-dpad-core{grid-column:2;grid-row:2;display:grid;place-items:center;width:44px;height:44px;color:var(--accent);font-size:13px;opacity:.62;pointer-events:none}
.party-action-slot{grid-column:3!important;grid-row:1!important;justify-self:end!important;align-self:center!important;margin:0!important;display:grid!important;place-items:center!important}
.party-pulse{width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;border-radius:50%!important}.party-pulse small{font-size:7px!important}
.party-player-strip{overflow:hidden}.party-player-strip span{white-space:nowrap}

@media(orientation:portrait){
  .party-match{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:44px minmax(0,1fr) auto 132px!important;gap:4px!important;align-content:stretch!important}
  .party-match-hud{grid-column:1!important;grid-row:1!important}.party-canvas-wrap{grid-column:1!important;grid-row:2!important;height:100%!important;min-height:0!important;overflow:hidden!important;display:grid!important;place-items:center!important}
  .party-canvas-wrap canvas#partyCanvas{max-width:none!important;max-height:none!important;justify-self:start!important;margin:0!important;aspect-ratio:auto!important}
  .party-player-strip{grid-column:1!important;grid-row:3!important;display:grid!important}
  .party-controls{grid-column:1!important;grid-row:4!important}
}

@media(orientation:landscape) and (max-height:700px){
  .party-match{grid-template-columns:148px minmax(0,1fr) 104px!important;grid-template-rows:42px minmax(0,1fr)!important;gap:4px 6px!important}
  .party-match-hud{grid-column:1/4!important;grid-row:1!important}.party-canvas-wrap{grid-column:2!important;grid-row:2!important;height:100%!important;min-height:0!important}
  .party-player-strip{display:none!important}.party-controls{display:contents!important}
  .party-dpad{grid-column:1!important;grid-row:2!important;justify-self:center!important;align-self:center!important;grid-template-columns:46px 46px 46px;grid-template-rows:46px 46px 46px}
  .party-dpad button,.party-dpad-core{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important}
  .party-action-slot{grid-column:3!important;grid-row:2!important;justify-self:center!important;align-self:center!important}
  .party-pulse{width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important}
  .party-minimap{width:96px!important;height:66px!important;left:6px!important;top:6px!important}
}
.party-screen.match-active{padding-left:max(6px,var(--tg-content-safe-area-inset-left,0px))!important;padding-right:max(6px,var(--tg-content-safe-area-inset-right,0px))!important}
@media(orientation:portrait){.party-canvas-wrap canvas.party-minimap{position:absolute!important;left:8px!important;right:auto!important;top:8px!important;bottom:auto!important;width:112px!important;height:78px!important;max-width:112px!important;max-height:78px!important;transform:none!important;margin:0!important;justify-self:auto!important;z-index:7!important}}
@media(orientation:landscape){.party-canvas-wrap canvas.party-minimap{display:none!important}}

/* v0.46 Arena integrity/transport UX: overview never covers playfield, compact landscape rails. */
.party-matchmake{grid-column:1 / -1!important}
.party-overview-row{min-width:0;display:grid;grid-template-columns:108px minmax(0,1fr);gap:6px;align-items:center;overflow:hidden}
.party-overview-row .party-player-strip{min-width:0;margin:0!important;grid-column:auto!important;grid-row:auto!important;display:grid!important}
.party-overview-row .party-minimap{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:104px!important;height:72px!important;max-width:104px!important;max-height:72px!important;transform:none!important;margin:0!important;justify-self:start!important;z-index:auto!important;border-radius:8px!important;box-shadow:none!important}
.party-ready-state{font-weight:900}

@media(orientation:portrait){
  .party-match{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:44px minmax(0,1fr) 72px 132px!important;gap:4px!important;align-content:stretch!important}
  .party-match-hud{grid-column:1!important;grid-row:1!important}
  .party-canvas-wrap{grid-column:1!important;grid-row:2!important;height:100%!important;min-height:0!important;overflow:hidden!important;display:grid!important;place-items:center!important}
  .party-overview-row{grid-column:1!important;grid-row:3!important;height:72px!important;padding:2px 4px!important}
  .party-controls{grid-column:1!important;grid-row:4!important}
  .party-canvas-wrap canvas#partyCanvas{max-width:none!important;max-height:none!important;justify-self:start!important;margin:0!important;aspect-ratio:auto!important}
}

@media(orientation:portrait) and (max-width:340px){
  .party-overview-row{grid-template-columns:94px minmax(0,1fr)!important;gap:4px!important}
  .party-overview-row .party-minimap{width:90px!important;height:62px!important;max-width:90px!important;max-height:62px!important}
  .party-controls{grid-template-columns:132px minmax(4px,1fr) 76px!important;padding:0!important}
  .party-pulse{width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important}
}

@media(orientation:landscape) and (max-height:700px){
  .party-overview-row{display:none!important}
  .party-match{grid-template-columns:136px minmax(0,1fr) 78px!important;grid-template-rows:42px minmax(0,1fr)!important;gap:3px 4px!important}
  .party-match-hud{grid-column:1/4!important;grid-row:1!important}
  .party-canvas-wrap{grid-column:2!important;grid-row:2!important;height:100%!important;min-height:0!important}
  .party-controls{display:contents!important}
  .party-dpad{grid-column:1!important;grid-row:2!important;justify-self:center!important;align-self:center!important;grid-template-columns:44px 44px 44px!important;grid-template-rows:44px 44px 44px!important}
  .party-dpad button,.party-dpad-core{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .party-action-slot{grid-column:3!important;grid-row:2!important;justify-self:center!important;align-self:center!important}
  .party-pulse{width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important}
}
@media(orientation:landscape) and (max-height:360px) and (max-width:640px){
  .party-screen.match-active{padding:2px max(4px,var(--tg-content-safe-area-inset-right,0px)) 2px max(4px,var(--tg-content-safe-area-inset-left,0px))!important}
  .party-match{grid-template-columns:136px minmax(0,1fr) 66px!important;gap:2px!important}
  .party-pulse{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}
  .party-match-hud>div{padding:2px 5px!important}
}
/* v0.46 small-landscape board priority: keep a 44px D-pad but return width to the playfield. */
@media(orientation:landscape) and (max-height:360px) and (max-width:640px){
  .party-match{grid-template-columns:132px minmax(0,1fr) 60px!important;column-gap:2px!important}
  .party-action-slot{min-width:60px!important}
  .party-pulse{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}
}
@media(orientation:landscape) and (max-height:360px) and (max-width:640px){
  .party-match-mode .app-shell{padding-left:0!important;padding-right:0!important}
  .party-screen.match-active{padding-left:max(2px,var(--tg-content-safe-area-inset-left,0px))!important;padding-right:max(2px,var(--tg-content-safe-area-inset-right,0px))!important}
}

/* v0.47 short-viewport Arena: primary lobby/results CTAs stay inside the viewport. */
@media (orientation:portrait) and (max-height:620px){
  .party-screen{overflow:hidden!important;padding-top:6px!important;padding-bottom:6px!important}
  .party-heading{min-height:32px!important;height:32px!important;align-items:center!important}.party-heading h2{font-size:15px!important;margin:0!important}.party-heading .eyebrow{display:none!important}
  .party-view[data-party-view="lobby"]{height:calc(100% - 34px)!important;min-height:0!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr) 44px 44px!important;gap:4px!important;overflow:hidden!important}
  .party-view[data-party-view="lobby"] .party-room-head{grid-column:1!important;grid-row:1!important;margin:0!important;min-height:38px!important;align-items:center!important}.party-room-head h3{font-size:14px!important;margin:0!important}.party-room-head .eyebrow{display:none!important}.party-room-head .mini-btn{min-height:44px!important;height:44px!important}
  .party-view[data-party-view="lobby"] .party-roster{grid-column:1!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr 1fr!important;align-content:start!important;gap:3px!important;margin:0!important;min-height:0!important;overflow:auto!important}
  .party-view[data-party-view="lobby"] .party-player-row{min-height:37px!important;padding:3px 6px!important}.party-view[data-party-view="lobby"] .party-avatar{width:28px!important;height:28px!important}
  .party-view[data-party-view="lobby"] .party-lobby-meta,.party-view[data-party-view="lobby"] #partyInviteBtn,.party-view[data-party-view="lobby"] #partyLobbyBackBtn,.party-view[data-party-view="lobby"] .screen-note{display:none!important}
  .party-view[data-party-view="lobby"] #partyReadyBtn{grid-column:1!important;grid-row:3!important;margin:0!important;min-height:44px!important}.party-view[data-party-view="lobby"] #partyStartBtn{grid-column:1!important;grid-row:4!important;margin:0!important;min-height:44px!important}
  .party-view[data-party-view="results"]{height:calc(100% - 34px)!important;min-height:0!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(96px,1fr) auto 44px!important;gap:4px!important;overflow:hidden!important}
  .party-view[data-party-view="results"] .party-podium-title{grid-column:1!important;grid-row:1!important;margin:0!important}.party-podium-title h3{font-size:17px!important;margin:1px 0!important}.party-podium-title .eyebrow{display:none!important}.party-podium-title p{font-size:8px!important}
  .party-view[data-party-view="results"] .party-podium{grid-column:1!important;grid-row:2!important;height:100%!important;max-height:112px!important;min-height:96px!important;margin:0!important}.party-view[data-party-view="results"] .podium-slot{padding:5px 3px!important;gap:2px!important}.party-view[data-party-view="results"] .podium-slot.p1{height:108px!important}.party-view[data-party-view="results"] .podium-slot.p2{height:92px!important}.party-view[data-party-view="results"] .podium-slot.p3{height:78px!important}.party-view[data-party-view="results"] .podium-slot>span{font-size:15px!important}
  .party-view[data-party-view="results"] .party-result-stats{grid-column:1!important;grid-row:3!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;margin:0!important}.party-view[data-party-view="results"] .summary-card{padding:4px 2px!important;min-height:38px!important}.party-view[data-party-view="results"] .summary-card strong{font-size:10px!important}.party-view[data-party-view="results"] .summary-card span{font-size:6.5px!important}
  .party-view[data-party-view="results"] .party-actions{grid-column:1!important;grid-row:4!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px!important;margin:0!important}.party-view[data-party-view="results"] .party-actions button{min-height:44px!important;height:44px!important}.party-view[data-party-view="results"]>.screen-note{display:none!important}
}
@media (orientation:landscape) and (max-height:420px){
  .party-screen:not(.match-active){overflow:hidden!important;padding-top:3px!important;padding-bottom:3px!important}.party-screen:not(.match-active)>.party-heading{height:28px!important;min-height:28px!important;align-items:center!important}.party-screen:not(.match-active)>.party-heading h2{font-size:14px!important;margin:0!important}.party-screen:not(.match-active)>.party-heading .eyebrow{display:none!important}
  .party-view[data-party-view="lobby"]{height:calc(100% - 30px)!important;display:grid!important;grid-template-columns:1.25fr .75fr .75fr!important;grid-template-rows:44px minmax(0,1fr) 44px!important;gap:3px 5px!important;overflow:hidden!important}
  .party-view[data-party-view="lobby"] .party-room-head{grid-column:1/4!important;grid-row:1!important;margin:0!important;align-items:center!important}.party-room-head h3{font-size:14px!important;margin:0!important}.party-room-head .eyebrow{display:none!important}.party-room-head .mini-btn{min-height:44px!important;height:44px!important}
  .party-view[data-party-view="lobby"] .party-roster{grid-column:1/3!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr 1fr!important;align-content:start!important;gap:2px!important;margin:0!important;min-height:0!important;overflow:auto!important}.party-view[data-party-view="lobby"] .party-player-row{min-height:34px!important;padding:2px 5px!important}.party-view[data-party-view="lobby"] .party-avatar{width:26px!important;height:26px!important}
  .party-view[data-party-view="lobby"] .party-lobby-meta{grid-column:3!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr!important;align-content:start!important;gap:2px!important;margin:0!important}.party-view[data-party-view="lobby"] .party-lobby-meta span{padding:3px 4px!important}
  .party-view[data-party-view="lobby"] #partyInviteBtn,.party-view[data-party-view="lobby"] #partyLobbyBackBtn,.party-view[data-party-view="lobby"] .screen-note{display:none!important}.party-view[data-party-view="lobby"] #partyReadyBtn{grid-column:2!important;grid-row:3!important;margin:0!important;min-height:44px!important}.party-view[data-party-view="lobby"] #partyStartBtn{grid-column:3!important;grid-row:3!important;margin:0!important;min-height:44px!important}
  .party-view[data-party-view="results"]{height:calc(100% - 30px)!important;display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:minmax(0,1fr) 44px!important;gap:4px 8px!important;overflow:hidden!important}.party-view[data-party-view="results"] .party-podium-title{grid-column:1!important;grid-row:1!important;margin:0!important;text-align:left!important}.party-podium-title h3{font-size:16px!important;margin:1px 0!important}.party-podium-title .eyebrow{display:none!important}.party-view[data-party-view="results"] .party-podium{grid-column:1!important;grid-row:1!important;align-self:end!important;height:105px!important;margin:0!important;padding-top:28px!important}.party-view[data-party-view="results"] .podium-slot.p1{height:76px!important}.party-view[data-party-view="results"] .podium-slot.p2{height:64px!important}.party-view[data-party-view="results"] .podium-slot.p3{height:54px!important}.party-view[data-party-view="results"] .podium-slot{padding:3px 2px!important;gap:1px!important}.party-view[data-party-view="results"] .podium-slot>span{font-size:13px!important}
  .party-view[data-party-view="results"] .party-result-stats{grid-column:2!important;grid-row:1!important;align-self:center!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:3px!important;margin:0!important}.party-view[data-party-view="results"] .summary-card{padding:4px!important;min-height:40px!important}
  .party-view[data-party-view="results"] .party-actions{grid-column:1/3!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;margin:0!important}.party-view[data-party-view="results"] .party-actions button{min-height:44px!important;height:44px!important}.party-view[data-party-view="results"]>.screen-note{display:none!important}
}
/* v0.47 invariant: responsive layouts may never resurrect inactive Party views. */
.party-view[hidden]{display:none!important}

/* v0.49 Stone Arena game selector: CORE RUSH is game 1, CORE HEIST is game 2. */
.party-game-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.party-game-card{min-width:0;min-height:72px;padding:9px 10px;text-align:left;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,var(--surface-2),var(--surface));color:var(--text);cursor:pointer}
.party-game-card.active{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent);background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 55%),linear-gradient(180deg,var(--surface-2),var(--surface))}
.party-game-card .party-game-index{display:block;color:var(--muted);font-size:7px;font-weight:850;letter-spacing:.12em}
.party-game-card strong{display:block;margin-top:3px;font-size:13px;letter-spacing:.03em}.party-game-card small{display:block;margin-top:3px;color:var(--muted);font-size:8px;line-height:1.28}
.party-match-hud{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.party-phase-hud strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.party-actions .party-matchmake{grid-column:1/-1}.party-features{display:grid;gap:0}
.party-lobby-meta{grid-template-columns:repeat(4,1fr)}

@media(orientation:portrait) and (max-width:420px){
  .party-game-picker{gap:5px;margin-top:6px}.party-game-card{min-height:66px;padding:7px}.party-game-card strong{font-size:11px}.party-game-card small{font-size:7.2px}
  .party-lobby-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .party-match-hud{grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:3px}.party-match-hud>div{padding:5px!important}.party-match-hud strong{font-size:10px}.party-phase-hud span{font-size:6px}
}

@media(orientation:landscape) and (max-height:700px){
  .party-hub{height:calc(100% - 34px);display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:auto auto minmax(0,1fr) auto;gap:4px 7px;overflow:hidden}
  .party-hub .party-game-picker{grid-column:1;grid-row:1;margin:0;gap:4px}.party-hub .party-game-card{min-height:48px;padding:5px 7px}.party-hub .party-game-card small{font-size:6.7px;margin-top:1px}.party-hub .party-game-card strong{font-size:10px;margin-top:1px}.party-hub .party-game-index{font-size:6px}
  .party-hub .party-hero{grid-column:1;grid-row:2;margin:0;padding:6px;grid-template-columns:42px minmax(0,1fr)}.party-hub .party-orb{width:40px;height:40px}.party-hub .party-hero strong{font-size:11px}.party-hub .party-hero p{font-size:7.5px;line-height:1.18}
  .party-hub .party-rules-strip{grid-column:1;grid-row:3;margin:0;align-self:start}.party-hub .party-rules-strip span{padding:4px 3px;font-size:6.5px}.party-hub .party-rules-strip b{font-size:9px}
  .party-hub .party-join{grid-column:1;grid-row:4;margin:0}.party-hub .party-honesty{display:none}
  .party-hub .party-actions{grid-column:2;grid-row:1/3;margin:0;gap:4px;grid-template-columns:1fr}.party-hub .party-actions .party-matchmake{grid-column:1}.party-hub .party-cta{min-height:46px;padding:5px 7px}.party-hub .party-cta strong{font-size:9px}.party-hub .party-cta small{font-size:6.8px;margin-top:1px}
  .party-hub .party-features{grid-column:2;grid-row:3/5;min-height:0;overflow:hidden;align-content:start}.party-hub .party-feature{margin:0 0 4px;padding:5px}.party-hub .party-feature>span{width:25px;height:25px}.party-hub .party-feature strong{font-size:8.5px}.party-hub .party-feature p{font-size:7px;line-height:1.16}
  .party-lobby-meta{grid-template-columns:1fr!important}
}

@media(orientation:landscape) and (max-height:420px){
  .party-hub{height:calc(100% - 30px)}
  .party-hub .party-join{display:none}.party-hub .party-rules-strip{grid-row:3/5}
  .party-match-hud{grid-template-columns:repeat(4,minmax(0,1fr)) auto!important}
}

/* Responsive rules must never resurrect inactive views. */
.party-view[hidden]{display:none!important}

/* v0.50 Arena objective coach */
.party-objective{margin:0 0 8px;padding:8px 10px;border:1px solid rgba(120,255,220,.22);border-radius:10px;background:rgba(5,18,17,.86);font-size:12px;font-weight:800;letter-spacing:.02em;text-align:center;color:#dffcf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-objective.is-danger{border-color:rgba(255,98,113,.48);color:#ffe4e7;background:rgba(35,8,12,.86)}
@media(max-height:420px){.party-objective{margin-bottom:4px;padding:5px 8px;font-size:10px}}

/* v0.50 short-landscape objective coach overlays the board instead of shrinking it. */
@media (orientation:landscape) and (max-height:420px){
  .party-match{position:relative!important}
  .party-objective{
    position:absolute!important;
    z-index:12!important;
    top:46px!important;
    left:50%!important;
    width:48vw!important;
    max-width:calc(100% - 220px)!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    padding:4px 7px!important;
    font-size:9px!important;
    line-height:1.2!important;
    pointer-events:none!important;
    background:rgba(5,18,17,.78)!important;
    backdrop-filter:blur(2px)!important;
  }
}
/* v0.51 unified controls + product systems */
.control-mode-picker{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.campaign-dpad{grid-area:cluster;display:grid;grid-template-columns:48px 48px 48px;grid-template-rows:48px 48px 48px;gap:3px;align-self:end;justify-self:center;place-items:center}
.campaign-dpad[hidden]{display:none!important}
.campaign-dpad button{width:48px;height:48px;min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:18px;font-weight:900;touch-action:none}
.campaign-dpad button[data-dir="up"]{grid-column:2;grid-row:1}.campaign-dpad button[data-dir="left"]{grid-column:1;grid-row:2}.campaign-dpad button[data-dir="right"]{grid-column:3;grid-row:2}.campaign-dpad button[data-dir="down"]{grid-column:2;grid-row:3}.campaign-dpad-core{grid-column:2;grid-row:2;color:var(--muted);opacity:.55}
.controls-dpad .game-screen .compact-controls{grid-template-areas:"mission mission" "cluster disk"!important;grid-template-columns:minmax(150px,1fr) auto!important;grid-template-rows:auto 1fr!important;align-items:end}
.controls-dpad .game-screen .mission-card{grid-area:mission!important;min-height:0!important}
.controls-dpad .game-screen .campaign-dpad{grid-area:cluster!important;justify-self:start}
.controls-dpad .game-screen .disk-dock{grid-area:disk!important;align-self:end}
.mission-mechanics{display:flex!important;gap:4px;flex-wrap:wrap;margin-top:4px}.mechanic-chip{font-size:8px;padding:2px 5px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface-2)}
.purchase-history{display:grid;gap:8px;margin-top:10px}.purchase-history[hidden]{display:none!important}.purchase-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.purchase-row>span,.purchase-row>small{font-size:10px;color:var(--muted)}.purchase-row small{grid-column:1/-1}.purchase-status{padding:3px 7px;border-radius:999px;border:1px solid var(--line)}.purchase-status.refunded{color:#75e8c2}.purchase-status.pending,.purchase-status.manual_review{color:#ffd36a}.store-loading{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted)}
.leaderboard-mode-tabs{margin:8px 0}.server-offline{outline:1px solid #ff7a7a}
@media(max-width:420px){.control-mode-picker{grid-template-columns:1fr 1fr!important}.purchase-row{grid-template-columns:1fr auto}.purchase-row .purchase-status{grid-column:2}.campaign-dpad{grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px}.campaign-dpad button{width:44px;height:44px;min-width:44px;min-height:44px}}
@media(orientation:landscape) and (max-height:420px){.controls-dpad .game-screen .compact-controls{grid-template-areas:"cluster mission disk"!important;grid-template-columns:auto minmax(120px,1fr) auto!important;grid-template-rows:1fr!important}.controls-dpad .game-screen .mission-card{grid-area:mission!important}.campaign-dpad{grid-template-columns:42px 42px 42px;grid-template-rows:42px 42px 42px}.campaign-dpad button{width:42px;height:42px;min-width:42px;min-height:42px}}

/* v0.51 canonical 60x24 campaign: short landscape keeps the board primary. */
@media (orientation:landscape) and (max-height:420px) and (max-width:640px){
  .controls-dpad .game-screen{
    grid-template-columns:132px minmax(0,1fr)!important;
    grid-template-rows:34px minmax(0,1fr)!important;
    gap:4px!important;
    position:relative!important;
  }
  .controls-dpad .game-screen .hud{
    grid-column:2!important;grid-row:1!important;
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-template-rows:1fr!important;gap:3px!important;min-height:34px!important;
    z-index:3;
  }
  .controls-dpad .game-screen .hud-item{padding:3px 2px!important;min-height:0!important}
  .controls-dpad .game-screen .hud-item:nth-child(3),
  .controls-dpad .game-screen .hud-item:nth-child(5){display:none!important}
  .controls-dpad .game-screen .game-wrap{
    grid-column:2!important;grid-row:2!important;min-width:0!important;min-height:0!important;
  }
  .controls-dpad .game-screen .controls{display:contents!important}
  .controls-dpad .game-screen .campaign-dpad{
    grid-column:1!important;grid-row:1/3!important;grid-area:auto!important;
    align-self:end!important;justify-self:start!important;margin:0 0 2px 0!important;
  }
  .controls-dpad .game-screen .mission-card{
    display:flex!important;position:absolute!important;left:0!important;top:0!important;
    width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;
    border:0!important;background:transparent!important;overflow:visible!important;z-index:8!important;
  }
  .controls-dpad .game-screen .mission-row{display:block!important;width:44px!important;height:44px!important}
  .controls-dpad .game-screen .mission-tools{display:block!important;position:static!important;width:44px!important;height:44px!important}
  .controls-dpad .game-screen .mission-title,
  .controls-dpad .game-screen .difficulty-badge,
  .controls-dpad .game-screen .corner-status,
  .controls-dpad .game-screen .offline-chip,
  .controls-dpad .game-screen .mission-text,
  .controls-dpad .game-screen .mission-mechanics,
  .controls-dpad .game-screen .legend{display:none!important}
  .controls-dpad .game-screen .controls-menu-btn{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;margin:0!important}
  .controls-dpad .game-screen .disk-dock{
    grid-area:auto!important;position:absolute!important;right:4px!important;bottom:4px!important;
    z-index:7!important;align-self:auto!important;
  }
  .controls-dpad .game-screen .action-btn{width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important}
}
.arena-season-picker{display:flex;align-items:center;gap:8px;margin:7px 0;color:var(--muted);font-size:10px;font-weight:800}.arena-season-picker[hidden]{display:none!important}.arena-season-picker select{min-height:40px;min-width:0;max-width:220px;padding:0 28px 0 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text)}
.store-grid[hidden]{display:none!important}

/* v0.51 RC2 layout containment hotfix.
   A hidden legacy control must never participate in responsive layout. */
[hidden]{display:none!important}
.controls-dpad .game-screen .vertical-zone,
.controls-dpad .game-screen .horizontal-zone{display:none!important}

/* Keep content pages as independent full-stage layouts. */
.content-screen{width:100%;min-width:0;max-width:none;overflow-x:hidden}
.content-screen>*{min-width:0}

/* D-pad Campaign: one coherent control cluster, never mixed with split-axis controls. */
@media(orientation:portrait){
  .controls-dpad .game-screen .compact-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
    grid-template-rows:44px auto!important;
    grid-template-areas:"mission mission mission" ". cluster disk"!important;
    gap:5px 8px!important;
    align-items:end!important;
    min-height:0!important;
  }
  .controls-dpad .game-screen .mission-card{grid-area:mission!important;width:100%!important;min-width:0!important}
  .controls-dpad .game-screen .campaign-dpad{grid-area:cluster!important;justify-self:center!important;align-self:end!important}
  .controls-dpad .game-screen .disk-dock{grid-area:disk!important;justify-self:end!important;align-self:end!important}
}

/* Wide/medium landscape: board in the middle, one D-pad rail at left,
   HUD/action rail at right. No implicit named-grid placement. */
@media(orientation:landscape) and (max-height:700px) and (min-width:641px){
  .controls-dpad .game-screen{
    grid-template-columns:142px minmax(0,1fr) 78px!important;
    grid-template-rows:minmax(0,1fr)!important;
    gap:7px!important;
    position:relative!important;
    height:100%!important;
  }
  .controls-dpad .game-screen .game-wrap{
    grid-column:2!important;grid-row:1!important;
    min-width:0!important;min-height:0!important;place-items:center!important;
  }
  .controls-dpad .game-screen .hud{
    grid-column:3!important;grid-row:1!important;
    display:grid!important;grid-template-columns:1fr!important;
    grid-template-rows:repeat(5,minmax(0,1fr))!important;
    gap:3px!important;min-height:0!important;
  }
  .controls-dpad .game-screen .controls{display:contents!important}
  .controls-dpad .game-screen .mission-card{
    grid-area:auto!important;grid-column:1!important;grid-row:1!important;
    align-self:start!important;justify-self:stretch!important;
    min-height:88px!important;max-height:112px!important;
    padding:7px 8px!important;overflow:hidden!important;
  }
  .controls-dpad .game-screen .campaign-dpad{
    grid-area:auto!important;grid-column:1!important;grid-row:1!important;
    align-self:end!important;justify-self:start!important;margin:0!important;
  }
  .controls-dpad .game-screen .disk-dock{
    grid-area:auto!important;grid-column:3!important;grid-row:1!important;
    align-self:end!important;justify-self:center!important;margin:0!important;
  }
  .controls-dpad .game-screen .mission-text{display:block!important;font-size:9px!important;line-height:1.2!important;-webkit-line-clamp:2!important}
  .controls-dpad .game-screen .mission-mechanics,.controls-dpad .game-screen .legend{display:none!important}
}

/* Short landscape keeps the existing two-column board-first composition,
   but explicitly suppresses all legacy split-axis pieces. */
@media(orientation:landscape) and (max-height:420px) and (max-width:640px){
  .controls-dpad .game-screen .vertical-zone,
  .controls-dpad .game-screen .horizontal-zone{display:none!important}
  .controls-dpad .game-screen .campaign-dpad{display:grid!important}
}

/* Rating layout should never rely on floats; they caused reflow when tabs changed. */
@media(orientation:landscape) and (max-height:700px){
  #leaderboardScreen .league-card{float:none!important;width:100%!important;margin:5px 0!important}
}

/* RC2 short-landscape D-pad must live inside the left rail, not an implicit grid row. */
@media(orientation:landscape) and (max-height:420px) and (max-width:640px){
  .controls-dpad .game-screen .campaign-dpad{
    position:absolute!important;
    left:0!important;right:auto!important;top:auto!important;bottom:2px!important;
    width:132px!important;height:132px!important;
    grid-column:auto!important;grid-row:auto!important;grid-area:auto!important;
    align-self:auto!important;justify-self:auto!important;margin:0!important;z-index:9!important;
  }
}

/* v0.51 RC3: restore pre-v0.51 Campaign thumb controls.
   Campaign uses the original split-axis bar: ↑/↓ left, ←/→ right, disk in the center. */
.control-mode-picker{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.game-screen .vertical-zone,.game-screen .horizontal-zone{display:flex!important}
.campaign-dpad{display:none!important}
@media(max-width:420px){.control-mode-picker{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* v0.51 RC5: campaign thumb-stick overhaul.
   Keep four directional buttons for precision/snap + QA, but make the primary control
   a large right-side thumb-stick and add a floating invisible stick over the canvas. */
#gameCanvas{touch-action:none}
.game-wrap{touch-action:none}
.field-joystick-layer{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.field-joystick-base,.joystick-base{position:absolute;left:50%;top:50%;width:88px;height:88px;margin:0;transform:translate(-50%,-50%);border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 48%,rgba(255,255,255,.18));background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.16),rgba(255,255,255,.03) 55%,rgba(0,0,0,.08));box-shadow:0 10px 26px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.04);opacity:0;transition:opacity .12s ease}
.field-joystick-base::before,.joystick-base::before{content:"";position:absolute;inset:13px;border-radius:50%;border:1px dashed rgba(255,255,255,.14)}
.field-joystick-knob,.joystick-knob{position:absolute;left:50%;top:50%;width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 78%,#fff),color-mix(in srgb,var(--accent) 48%,#1c2a25));box-shadow:0 6px 18px rgba(0,0,0,.25);transform:translate(-50%,-50%)}
.field-joystick-base.active,.joystick-base.active{opacity:1}
.visible-joystick{position:absolute;inset:0;pointer-events:none;display:block}
.visible-joystick .joystick-hint{position:absolute;left:50%;top:50%;width:110px;height:110px;transform:translate(-50%,-56%);border-radius:50%;border:1px solid rgba(255,255,255,.12);background:radial-gradient(circle at center,rgba(255,255,255,.05),rgba(255,255,255,.02) 58%,transparent 62%)}
.visible-joystick .joystick-copy{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(4,12,18,.54);color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.03em;white-space:nowrap}
.game-screen .controls.compact-controls{position:relative}
.game-screen .controls.compact-controls .vertical-zone .thumb-caption,.game-screen .controls.compact-controls .horizontal-zone .thumb-caption{display:none!important}
.game-screen .controls.compact-controls .vertical-zone .axis-strip,.game-screen .controls.compact-controls .horizontal-zone .axis-strip{z-index:3}
.game-screen .controls.compact-controls .vertical-zone button,.game-screen .controls.compact-controls .horizontal-zone button{opacity:.88;backdrop-filter:blur(4px)}
.game-screen .controls.compact-controls .vertical-zone button:hover,.game-screen .controls.compact-controls .horizontal-zone button:hover{opacity:1}
.game-screen .controls.compact-controls .horizontal-zone{position:relative;display:block!important;width:100%!important;justify-self:stretch!important;align-self:stretch!important;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 68%,var(--surface)),color-mix(in srgb,var(--surface) 90%,#081016));touch-action:none}
.game-screen .controls.compact-controls .horizontal-zone::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 60% 46%,rgba(95,255,201,.08),transparent 42%)}
.game-screen .controls.compact-controls .horizontal-zone .horizontal-axis{position:absolute;left:10px;bottom:10px;display:grid!important;grid-template-columns:repeat(2,44px)!important;grid-template-rows:44px!important;gap:4px!important}
.game-screen .controls.compact-controls .vertical-zone .vertical-axis{display:grid!important;grid-template-columns:44px!important;grid-template-rows:repeat(2,44px)!important;gap:4px!important}
.game-screen .controls.compact-controls .vertical-zone{z-index:4}
.game-screen .controls.compact-controls .disk-dock{z-index:4}

@media(orientation:portrait), (max-width:700px){
  .game-screen .controls.compact-controls{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"mission stick"!important;grid-template-rows:minmax(132px,auto)!important;gap:8px!important;align-items:stretch!important;min-height:132px!important}
  .game-screen .controls.compact-controls .mission-card{grid-area:mission!important;min-height:132px!important;align-self:stretch!important;padding:7px 8px!important;justify-content:flex-start!important;overflow:hidden!important}
  .game-screen .controls.compact-controls .horizontal-zone{grid-area:stick!important;min-height:132px!important}
  .game-screen .controls.compact-controls .vertical-zone{position:absolute!important;left:10px!important;bottom:10px!important;align-items:flex-start!important}
  .game-screen .controls.compact-controls .disk-dock{position:absolute!important;right:10px!important;bottom:10px!important;justify-self:auto!important;align-self:auto!important;margin:0!important}
  .game-screen .controls.compact-controls .mission-text{font-size:9.5px!important;line-height:1.2!important}
  .game-screen .controls.compact-controls .mission-mechanics,.game-screen .controls.compact-controls .legend{display:none!important}
}

@media(orientation:landscape) and (max-height:700px){
  .game-screen{position:relative!important}
  .game-screen .controls.compact-controls{display:contents!important}
  .game-screen .controls.compact-controls .mission-card{position:absolute!important;left:0!important;bottom:0!important;width:clamp(138px,23vw,176px)!important;min-height:118px!important;max-height:132px!important;padding:6px 7px!important;z-index:4!important;overflow:hidden!important}
  .game-screen .controls.compact-controls .horizontal-zone{position:absolute!important;right:0!important;bottom:0!important;width:min(52%,320px)!important;height:118px!important;z-index:4!important}
  .game-screen .controls.compact-controls .vertical-zone{position:absolute!important;left:10px!important;bottom:10px!important;z-index:5!important}
  .game-screen .controls.compact-controls .disk-dock{position:absolute!important;right:10px!important;bottom:10px!important;z-index:5!important;margin:0!important}
  .game-screen .controls.compact-controls .mission-mechanics,.game-screen .controls.compact-controls .legend{display:none!important}
  .game-screen .controls.compact-controls .mission-text{font-size:9px!important;line-height:1.15!important;display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
  .game-screen .controls.compact-controls .horizontal-zone .horizontal-axis{left:10px!important;bottom:10px!important}
}

@media(max-width:420px){
  .visible-joystick .joystick-copy{font-size:9px;bottom:10px}
  .visible-joystick .joystick-hint{width:96px;height:96px}
  .field-joystick-base,.joystick-base{width:82px;height:82px}
}


/* v0.51 RC6 UX polish: reduce clutter, improve thumb ergonomics, and avoid heavy overlap. */
.visible-joystick .joystick-copy{display:none!important}
.visible-joystick .joystick-hint{left:56%;top:44%;width:104px;height:104px;transform:translate(-50%,-50%);background:radial-gradient(circle at center,rgba(95,255,201,.06),rgba(255,255,255,.018) 58%,transparent 62%)}
.game-screen .controls.compact-controls .horizontal-zone{box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 8px 24px rgba(0,0,0,.16)}
.game-screen .controls.compact-controls .horizontal-zone::after{content:"движение";position:absolute;right:12px;top:10px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--muted) 82%,#dffff5);opacity:.72}
.game-screen .controls.compact-controls .horizontal-zone .horizontal-axis{left:12px!important;bottom:12px!important}
.game-screen .controls.compact-controls .horizontal-zone button{background:linear-gradient(180deg,rgba(15,26,37,.95),rgba(8,17,25,.92))!important;border-color:rgba(255,255,255,.08)!important}
.game-screen .controls.compact-controls .vertical-zone button{background:linear-gradient(180deg,rgba(15,26,37,.95),rgba(8,17,25,.92))!important;border-color:rgba(255,255,255,.08)!important}
.game-screen .controls.compact-controls .mission-card{box-shadow:0 8px 24px rgba(0,0,0,.14)}
.game-screen .controls.compact-controls .mission-row{gap:6px!important;align-items:flex-start!important}
.game-screen .controls.compact-controls .mission-tools{gap:4px!important}
.game-screen .controls.compact-controls .mission-title{font-size:10px!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--muted)!important}
.game-screen .controls.compact-controls .mission-text{margin-top:4px!important}
.game-screen .controls.compact-controls .controls-menu-btn{border-color:rgba(255,255,255,.08)!important;background:rgba(10,18,28,.86)!important}
.game-screen .controls.compact-controls .difficulty-badge{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.08)!important}
.game-screen .controls.compact-controls .corner-status,.game-screen .controls.compact-controls .offline-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}

@media(orientation:portrait), (max-width:700px){
  .game-screen .controls.compact-controls{gap:7px!important;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr)!important}
  .game-screen .controls.compact-controls .mission-card{padding:8px 8px 7px!important}
  .game-screen .controls.compact-controls .horizontal-zone{min-height:132px!important}
  .game-screen .controls.compact-controls .horizontal-zone::after{right:10px;top:10px}
  .game-screen .controls.compact-controls .vertical-zone{left:8px!important;bottom:8px!important}
  .game-screen .controls.compact-controls .disk-dock{right:8px!important;bottom:8px!important}
}

@media(orientation:landscape) and (max-height:700px){
  .game-screen .controls.compact-controls .mission-card{width:clamp(132px,21vw,162px)!important;min-height:104px!important;max-height:118px!important;padding:6px 7px!important;border-radius:12px!important}
  .game-screen .controls.compact-controls .mission-title{font-size:9px!important}
  .game-screen .controls.compact-controls .mission-text{font-size:8.5px!important;line-height:1.12!important;-webkit-line-clamp:2!important}
  .game-screen .controls.compact-controls .difficulty-badge{font-size:7.5px!important;padding:2px 4px!important}
  .game-screen .controls.compact-controls .controls-menu-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  .game-screen .controls.compact-controls .vertical-zone{left:8px!important;bottom:8px!important}
  .game-screen .controls.compact-controls .vertical-zone .vertical-axis{grid-template-columns:42px!important;grid-template-rows:repeat(2,42px)!important;gap:4px!important}
  .game-screen .controls.compact-controls .vertical-zone button{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
  .game-screen .controls.compact-controls .horizontal-zone{right:0!important;bottom:0!important;width:min(44%,252px)!important;height:106px!important;border-radius:14px 14px 0 0!important;background:linear-gradient(180deg,rgba(13,24,36,.92),rgba(7,14,22,.88))!important}
  .game-screen .controls.compact-controls .horizontal-zone::after{font-size:8px!important;right:10px!important;top:8px!important;opacity:.62!important}
  .game-screen .controls.compact-controls .horizontal-zone .horizontal-axis{left:10px!important;bottom:10px!important;grid-template-columns:repeat(2,42px)!important;grid-template-rows:42px!important;gap:4px!important}
  .game-screen .controls.compact-controls .horizontal-zone button{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
  .visible-joystick .joystick-hint{left:60%;top:46%;width:88px;height:88px}
  .joystick-base,.field-joystick-base{width:78px;height:78px}
  .joystick-knob,.field-joystick-knob{width:30px;height:30px}
  .game-screen .controls.compact-controls .disk-dock{right:8px!important;bottom:8px!important}
  .game-screen .controls.compact-controls .disk-dock .action-btn,.game-screen .controls.compact-controls .disk-dock.no-disk .action-btn{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
}

@media(max-width:340px){
  .game-screen .controls.compact-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:6px!important}
  .visible-joystick .joystick-hint{width:88px;height:88px}
  .joystick-base,.field-joystick-base{width:76px;height:76px}
  .joystick-knob,.field-joystick-knob{width:28px;height:28px}
}

/* v0.51 RC7: rebuild campaign controls to match requested architecture.
   Goal: keep HUD/game/nav readable, move mission block left, make the right half a true joystick zone,
   and keep the floating joystick on the game field invisible until active. */
.game-screen > .controls.compact-controls{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  grid-auto-columns:0 !important;
  grid-auto-flow:row !important;
  gap:8px !important;
  min-height:132px !important;
  align-items:stretch !important;
  position:relative !important;
  margin-top:0 !important;
}
.game-screen > .controls.compact-controls > .mission-card{grid-column:1 !important;grid-row:1 !important}
.game-screen > .controls.compact-controls > .joystick-zone{grid-column:2 !important;grid-row:1 !important}
.game-screen > .controls.compact-controls > .disk-dock{grid-column:2 !important;grid-row:1 !important;justify-self:end !important;align-self:end !important}
.game-screen > .controls.compact-controls .mission-card{
  position:relative !important;
  min-height:132px !important;
  max-height:none !important;
  padding:8px 9px !important;
  border-radius:14px !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
  box-shadow:0 8px 20px rgba(0,0,0,.12) !important;
}
.game-screen > .controls.compact-controls .mission-title{
  display:inline !important;
  font-size:10px !important;
  color:var(--muted) !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
}
.game-screen > .controls.compact-controls .mission-row{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:6px !important}
.game-screen > .controls.compact-controls .mission-tools{display:flex !important;align-items:center !important;gap:4px !important;flex-wrap:wrap !important}
.game-screen > .controls.compact-controls .mission-text{margin-top:6px !important;padding:0 !important;font-size:10px !important;line-height:1.24 !important;display:-webkit-box !important;-webkit-line-clamp:4 !important;-webkit-box-orient:vertical !important;overflow:hidden !important;white-space:normal !important}
.game-screen > .controls.compact-controls .mission-mechanics{margin-top:6px !important;padding-right:0 !important;gap:4px !important}
.game-screen > .controls.compact-controls .legend{margin-top:auto !important}
.game-screen > .controls.compact-controls .joystick-zone{
  position:relative !important;
  display:block !important;
  min-height:132px !important;
  width:100% !important;
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 70%,var(--surface)),color-mix(in srgb,var(--surface) 92%,#071019)) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.14) !important;
  touch-action:none !important;
}
.game-screen > .controls.compact-controls .joystick-zone::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(circle at 65% 48%,rgba(95,255,201,.11),transparent 42%), linear-gradient(180deg,rgba(255,255,255,.02),transparent);
  pointer-events:none;
}
.game-screen > .controls.compact-controls .joystick-zone-surface{position:absolute;inset:0;pointer-events:none}
.game-screen > .controls.compact-controls .joystick-zone-copy{position:absolute;left:12px;top:11px;display:flex;flex-direction:column;gap:2px;color:var(--muted);opacity:.9}
.game-screen > .controls.compact-controls .joystick-zone-copy strong{font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase}
.game-screen > .controls.compact-controls .joystick-zone-copy small{font-size:9px;line-height:1.1;opacity:.82}
.game-screen > .controls.compact-controls .visible-joystick{position:absolute;inset:0;pointer-events:none}
.game-screen > .controls.compact-controls .visible-joystick .joystick-hint{position:absolute;left:68%;top:56%;width:108px;height:108px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at center,rgba(255,255,255,.03),rgba(255,255,255,.015) 58%,transparent 62%)}
.game-screen > .controls.compact-controls .joystick-base{left:68% !important;top:56% !important}
.game-screen > .controls.compact-controls .disk-dock{
  position:absolute !important;
  right:10px !important;
  bottom:10px !important;
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  min-height:48px !important;
  z-index:4 !important;
}
.game-screen > .controls.compact-controls .disk-dock .action-btn,.game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:48px !important;height:48px !important;min-width:48px !important;min-height:48px !important}
.game-screen > .controls.compact-controls .thumb-zone.vertical-zone,
.game-screen > .controls.compact-controls .axis-strip,
.game-screen > .controls.compact-controls .thumb-caption{display:none !important}

/* Portrait + tall viewports */
@media(orientation:portrait), (min-height:700px){
  .game-screen{grid-template-rows:auto minmax(0,1fr) auto !important;grid-template-columns:1fr !important;gap:6px !important}
  .game-screen .hud,.game-screen .game-wrap,.game-screen > .controls.compact-controls{grid-column:1 !important}
  .game-screen .game-wrap{grid-row:2 !important}
  .game-screen > .controls.compact-controls{grid-row:3 !important}
}

/* Landscape compact view: put controls below the game, never on top of it. */
@media(orientation:landscape) and (max-height:700px){
  .game-screen{
    grid-template-columns:minmax(0,1fr) clamp(64px,17vh,78px) !important;
    grid-template-rows:auto minmax(0,1fr) 110px !important;
    gap:6px !important;
    position:relative !important;
    height:100% !important;
    overflow:hidden !important;
  }
  .game-screen .hud{grid-column:2 !important;grid-row:1 / 3 !important;display:grid !important;grid-template-columns:1fr !important;grid-template-rows:repeat(5,minmax(0,1fr)) !important;gap:3px !important;min-height:0 !important}
  .game-screen .game-wrap{grid-column:1 !important;grid-row:2 !important;min-height:0 !important;place-items:center !important}
  .game-screen > .controls.compact-controls{grid-column:1 !important;grid-row:3 !important;grid-template-columns:minmax(142px,.72fr) minmax(0,1.28fr) !important;min-height:110px !important;gap:8px !important}
  .game-screen > .controls.compact-controls .mission-card{min-height:110px !important;padding:7px 8px !important}
  .game-screen > .controls.compact-controls .mission-text{font-size:8.7px !important;line-height:1.16 !important;-webkit-line-clamp:3 !important}
  .game-screen > .controls.compact-controls .joystick-zone{min-height:110px !important}
  .game-screen > .controls.compact-controls .joystick-zone-copy strong{font-size:9px}
  .game-screen > .controls.compact-controls .joystick-zone-copy small{font-size:8px}
  .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{left:74%;top:55%;width:96px;height:96px}
  .game-screen > .controls.compact-controls .joystick-base{left:74% !important;top:55% !important;width:80px !important;height:80px !important}
  .game-screen > .controls.compact-controls .joystick-knob{width:30px !important;height:30px !important}
  .game-screen > .controls.compact-controls .disk-dock{right:8px !important;bottom:8px !important;width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important}
  .game-screen > .controls.compact-controls .disk-dock .action-btn,.game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important}
}

@media(max-width:420px){
  .game-screen > .controls.compact-controls{gap:7px !important}
  .game-screen > .controls.compact-controls .mission-card{padding:7px 8px !important}
  .game-screen > .controls.compact-controls .mission-text{font-size:9.6px !important;-webkit-line-clamp:4 !important}
  .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{left:68%;top:56%;width:98px;height:98px}
  .game-screen > .controls.compact-controls .joystick-base{width:82px !important;height:82px !important}
  .game-screen > .controls.compact-controls .joystick-knob{width:30px !important;height:30px !important}
}
@media(max-width:340px){
  .game-screen > .controls.compact-controls .mission-text{font-size:9px !important;-webkit-line-clamp:3 !important}
  .game-screen > .controls.compact-controls .joystick-zone-copy strong{font-size:9px}
  .game-screen > .controls.compact-controls .joystick-zone-copy small{font-size:8px}
}

.game-screen > .controls.compact-controls .joystick-zone::after{content:none !important}
.game-screen > .controls.compact-controls .mission-mechanics,.game-screen > .controls.compact-controls .legend{display:none !important}
.game-screen > .controls.compact-controls .mission-text{display:block !important;overflow:visible !important;-webkit-line-clamp:unset !important;max-height:none !important;color:var(--text) !important}
.game-screen > .controls.compact-controls .mission-card{display:flex !important;flex-direction:column !important}

/* v0.51 RC8 product polish: mission hierarchy, game-focus chrome and natural thumb feedback. */
.field-joystick-layer,.field-joystick-base{opacity:0!important;visibility:hidden!important}
.game-screen > .controls.compact-controls .joystick-zone-copy{display:none!important}
.game-screen > .controls.compact-controls .joystick-zone::after{content:none!important}
.game-screen > .controls.compact-controls .visible-joystick .joystick-hint{
  border-color:rgba(255,255,255,.075)!important;
  background:radial-gradient(circle at center,rgba(95,255,201,.06),rgba(255,255,255,.018) 52%,transparent 66%)!important;
}
.game-screen > .controls.compact-controls .joystick-zone:active .joystick-hint{border-color:color-mix(in srgb,var(--accent) 34%,rgba(255,255,255,.08))!important}
.game-screen > .controls.compact-controls .joystick-base{
  border-color:color-mix(in srgb,var(--accent) 44%,rgba(255,255,255,.12))!important;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.13),rgba(255,255,255,.025) 56%,rgba(0,0,0,.06))!important;
  box-shadow:0 8px 22px rgba(0,0,0,.2),inset 0 0 0 1px rgba(255,255,255,.035)!important;
}
.game-screen > .controls.compact-controls .joystick-knob{box-shadow:0 5px 14px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.18)!important}

.game-screen > .controls.compact-controls .mission-card{justify-content:flex-start!important}
.game-screen > .controls.compact-controls .mission-row{min-height:32px!important}
.game-screen > .controls.compact-controls .mission-title{font-size:9px!important;opacity:.78!important}
.game-screen > .controls.compact-controls .mission-text{margin-top:7px!important;display:flex!important;flex-direction:column!important;gap:2px!important;color:var(--text)!important;overflow:hidden!important}
.game-screen > .controls.compact-controls .mission-primary{display:block!important;font-size:18px!important;line-height:1.05!important;font-weight:850!important;letter-spacing:-.02em!important;color:var(--text)!important}
.game-screen > .controls.compact-controls .mission-secondary{display:block!important;font-size:9px!important;line-height:1.2!important;color:var(--muted)!important}
.game-screen > .controls.compact-controls .mission-complete .mission-primary{color:var(--accent)!important}
.game-screen > .controls.compact-controls .controls-menu-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:10px!important;font-size:15px!important}
.game-screen > .controls.compact-controls .difficulty-badge{font-size:7px!important;padding:2px 4px!important;opacity:.68!important}
.game-screen > .controls.compact-controls .offline-chip{font-size:6.5px!important;padding:2px 4px!important;opacity:.72!important;letter-spacing:.04em!important}

/* HUD: objective first, telemetry second. */
.game-focus .game-screen .hud-item{opacity:.72;transition:opacity .14s ease,border-color .14s ease,background .14s ease}
.game-focus .game-screen .hud-item:nth-child(2){opacity:1;border-color:color-mix(in srgb,var(--accent) 42%,var(--line))!important;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--surface-2)),var(--surface))!important}
.game-focus .game-screen .hud-item:nth-child(2) strong{color:var(--accent)!important;font-size:14px!important}
.game-focus .game-screen .hud-item:nth-child(1){opacity:.9}
.game-focus .game-screen .hud-item:nth-child(4){opacity:.86}

/* During a level, navigation remains available but stops competing with the playfield. */
.game-focus .bottom-nav .nav-btn:not(.active){opacity:.48;filter:saturate(.72)}
.game-focus .bottom-nav .nav-btn.active{opacity:1}
.game-focus .bottom-nav:hover .nav-btn,.game-focus .bottom-nav:focus-within .nav-btn{opacity:1;filter:none}
.game-focus .header-actions .icon-btn:not(#pauseBtn){opacity:.66}
.game-focus .header-actions .icon-btn:hover,.game-focus .header-actions .icon-btn:focus-visible{opacity:1}

/* Optional left-stick preset keeps the same geometry but swaps the two control surfaces. */
.controls-stick-left .game-screen > .controls.compact-controls > .mission-card{grid-column:2!important}
.controls-stick-left .game-screen > .controls.compact-controls > .joystick-zone{grid-column:1!important}
.controls-stick-left .game-screen > .controls.compact-controls > .disk-dock{grid-column:1!important;justify-self:start!important;right:auto!important;left:10px!important}

@media(orientation:landscape) and (max-height:700px){
  .game-screen > .controls.compact-controls .mission-primary{font-size:14px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:8px!important;line-height:1.1!important}
  .game-screen > .controls.compact-controls .mission-row{min-height:28px!important}
  .game-screen > .controls.compact-controls .controls-menu-btn{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important}
  .game-focus .game-screen .hud-item:nth-child(2) strong{font-size:11px!important}
}

@media(max-width:340px){
  .game-screen > .controls.compact-controls .mission-primary{font-size:15px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:8px!important}
}


/* RC11: reclaim playfield space by shrinking mission block and control row on tight viewports. */
.game-screen > .controls.compact-controls{min-height:104px!important;gap:7px!important}
.game-screen > .controls.compact-controls .mission-card{min-height:104px!important;padding:7px 8px!important;border-radius:12px!important}
.game-screen > .controls.compact-controls .mission-title{font-size:8px!important;letter-spacing:.07em!important}
.game-screen > .controls.compact-controls .mission-text{margin-top:6px!important;font-size:9.2px!important;line-height:1.16!important}
.game-screen > .controls.compact-controls .mission-primary{font-size:11px!important;line-height:1.05!important}
.game-screen > .controls.compact-controls .mission-secondary{font-size:7.8px!important;line-height:1.08!important}
.game-screen > .controls.compact-controls .joystick-zone{min-height:104px!important}
.game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:92px!important;height:92px!important}
.game-screen > .controls.compact-controls .joystick-base{width:76px!important;height:76px!important}
.game-screen > .controls.compact-controls .joystick-knob{width:29px!important;height:29px!important}
.game-screen > .controls.compact-controls .disk-dock{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;right:8px!important;bottom:8px!important}
.game-screen > .controls.compact-controls .disk-dock .action-btn,.game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}

@media(orientation:portrait){
  .game-screen > .controls.compact-controls{
    grid-template-columns:minmax(112px,.78fr) minmax(0,1.22fr)!important;
    min-height:100px!important;
    gap:6px!important;
  }
  .game-screen > .controls.compact-controls .mission-card{min-height:100px!important;padding:7px!important}
  .game-screen > .controls.compact-controls .joystick-zone{min-height:100px!important}
  .game-screen > .controls.compact-controls .mission-tools{gap:3px!important}
  .game-screen > .controls.compact-controls .difficulty-badge,.game-screen > .controls.compact-controls .offline-chip{padding:3px 5px!important;font-size:8px!important}
}
@media(orientation:portrait) and (max-width:360px){
  .game-screen > .controls.compact-controls{
    grid-template-columns:minmax(98px,.72fr) minmax(0,1.28fr)!important;
    min-height:92px!important;
  }
  .game-screen > .controls.compact-controls .mission-card{min-height:92px!important;padding:6px 7px!important}
  .game-screen > .controls.compact-controls .joystick-zone{min-height:92px!important}
  .game-screen > .controls.compact-controls .mission-title{display:none!important}
  .game-screen > .controls.compact-controls .controls-menu-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;border-radius:10px!important;font-size:19px!important}
  .game-screen > .controls.compact-controls .mission-text{margin-top:5px!important;font-size:8.8px!important;line-height:1.1!important}
  .game-screen > .controls.compact-controls .mission-primary{font-size:10px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:7.2px!important}
  .game-screen > .controls.compact-controls .difficulty-badge,.game-screen > .controls.compact-controls .offline-chip{padding:2px 5px!important;font-size:7.5px!important}
}
@media(orientation:landscape) and (max-height:430px){
  .game-screen{grid-template-columns:minmax(0,1fr) clamp(58px,14vh,68px)!important;grid-template-rows:auto minmax(0,1fr) 84px!important;gap:5px!important}
  .game-screen > .controls.compact-controls{
    grid-template-columns:minmax(106px,.56fr) minmax(0,1.44fr)!important;
    min-height:84px!important;
    gap:6px!important;
  }
  .game-screen > .controls.compact-controls .mission-card{min-height:84px!important;padding:6px 7px!important;border-radius:11px!important}
  .game-screen > .controls.compact-controls .joystick-zone{min-height:84px!important;border-radius:11px!important}
  .game-screen > .controls.compact-controls .mission-title{display:none!important}
  .game-screen > .controls.compact-controls .mission-text{margin-top:4px!important;font-size:8.2px!important;line-height:1.06!important}
  .game-screen > .controls.compact-controls .mission-primary{font-size:10px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:7px!important;line-height:1.02!important}
  .game-screen > .controls.compact-controls .controls-menu-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:9px!important;font-size:18px!important}
  .game-screen > .controls.compact-controls .difficulty-badge,.game-screen > .controls.compact-controls .offline-chip{padding:2px 4px!important;font-size:7px!important}
  .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:78px!important;height:78px!important;left:78%!important;top:54%!important}
  .game-screen > .controls.compact-controls .joystick-base{width:66px!important;height:66px!important;left:78%!important;top:54%!important}
  .game-screen > .controls.compact-controls .joystick-knob{width:25px!important;height:25px!important}
  .game-screen > .controls.compact-controls .disk-dock{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;right:6px!important;bottom:6px!important}
  .game-screen > .controls.compact-controls .disk-dock .action-btn,.game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
  .game-screen .hud{gap:2px!important}
  .game-screen .hud .hud-item{padding:4px!important}
  .game-screen .hud .hud-label{font-size:6.8px!important}
  .game-screen .hud .hud-item strong{font-size:9px!important}
}
@media(orientation:landscape) and (min-width:800px) and (max-height:430px){
  .game-screen > .controls.compact-controls{grid-template-columns:minmax(112px,.5fr) minmax(0,1.5fr)!important}
}

/* RC12: joystick overlays the playfield; controls row only carries compact mission + disk. */
.game-screen{position:relative!important}
.game-screen .game-wrap{position:relative!important;overflow:hidden!important}
.game-screen .game-wrap > .joystick-zone{
  position:absolute!important;
  right:6px!important;
  bottom:6px!important;
  width:44%!important;
  height:46%!important;
  min-width:118px!important;
  min-height:108px!important;
  max-width:250px!important;
  max-height:210px!important;
  display:block!important;
  border:0!important;
  border-radius:22px!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  z-index:3!important;
  touch-action:none!important;
  pointer-events:auto!important;
}
.game-screen .game-wrap > .joystick-zone::before,
.game-screen .game-wrap > .joystick-zone::after{content:none!important}
.game-screen .game-wrap > .joystick-zone .joystick-zone-surface{position:absolute!important;inset:0!important;pointer-events:none!important}
.game-screen .game-wrap > .joystick-zone .visible-joystick{position:absolute!important;inset:0!important;pointer-events:none!important}
.game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint{
  position:absolute!important;
  left:70%!important;
  top:66%!important;
  width:94px!important;
  height:94px!important;
  transform:translate(-50%,-50%)!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.07)!important;
  background:radial-gradient(circle at center,rgba(95,255,201,.05),rgba(255,255,255,.012) 55%,transparent 68%)!important;
  opacity:.72!important;
}
.game-screen .game-wrap > .joystick-zone .joystick-base{
  left:70%!important;
  top:66%!important;
  width:76px!important;
  height:76px!important;
}
.game-screen .game-wrap > .joystick-zone .joystick-knob{width:29px!important;height:29px!important}
.controls-stick-left .game-screen .game-wrap > .joystick-zone{left:6px!important;right:auto!important}
.controls-stick-left .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint,
.controls-stick-left .game-screen .game-wrap > .joystick-zone .joystick-base{left:30%!important}

.game-screen > .controls.compact-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:54px!important;
  min-height:54px!important;
  height:54px!important;
  gap:6px!important;
  align-items:stretch!important;
}
.game-screen > .controls.compact-controls > .mission-card{
  grid-column:1!important;
  grid-row:1!important;
  min-height:54px!important;
  height:54px!important;
  max-height:54px!important;
  padding:5px 7px!important;
  border-radius:11px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"mission tools"!important;
  align-items:center!important;
  gap:6px!important;
  overflow:hidden!important;
}
.game-screen > .controls.compact-controls .mission-row{display:contents!important}
.game-screen > .controls.compact-controls .mission-title{display:none!important}
.game-screen > .controls.compact-controls .mission-tools{grid-area:tools!important;display:flex!important;align-items:center!important;gap:3px!important;flex-wrap:nowrap!important}
.game-screen > .controls.compact-controls .mission-text{
  grid-area:mission!important;
  margin:0!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:1px!important;
  overflow:hidden!important;
}
.game-screen > .controls.compact-controls .mission-primary{font-size:13px!important;line-height:1.02!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.game-screen > .controls.compact-controls .mission-secondary{font-size:7.5px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.game-screen > .controls.compact-controls .difficulty-badge{font-size:7px!important;padding:2px 4px!important}
.game-screen > .controls.compact-controls .offline-chip{font-size:6.5px!important;padding:2px 4px!important}
.game-screen > .controls.compact-controls .controls-menu-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:9px!important;font-size:17px!important}
.game-screen > .controls.compact-controls > .disk-dock{
  grid-column:2!important;
  grid-row:1!important;
  position:static!important;
  align-self:center!important;
  justify-self:end!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  margin:0!important;
}
.game-screen > .controls.compact-controls .disk-dock .action-btn,
.game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}

@media(orientation:portrait){
  .game-screen{grid-template-rows:auto minmax(0,1fr) 54px!important;gap:5px!important}
  .game-screen .game-wrap > .joystick-zone{width:46%!important;height:42%!important;min-width:112px!important;min-height:104px!important;right:5px!important;bottom:5px!important}
  .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint{left:72%!important;top:68%!important;width:88px!important;height:88px!important}
  .game-screen .game-wrap > .joystick-zone .joystick-base{left:72%!important;top:68%!important;width:72px!important;height:72px!important}
  .controls-stick-left .game-screen .game-wrap > .joystick-zone{left:5px!important;right:auto!important}
  .controls-stick-left .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint,
  .controls-stick-left .game-screen .game-wrap > .joystick-zone .joystick-base{left:28%!important}
}
@media(orientation:portrait) and (max-width:360px){
  .game-screen{grid-template-rows:auto minmax(0,1fr) 50px!important;gap:4px!important}
  .game-screen > .controls.compact-controls{grid-template-rows:50px!important;min-height:50px!important;height:50px!important;gap:4px!important}
  .game-screen > .controls.compact-controls > .mission-card{min-height:50px!important;height:50px!important;max-height:50px!important;padding:4px 6px!important;gap:4px!important}
  .game-screen > .controls.compact-controls .mission-primary{font-size:11px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:6.8px!important}
  .game-screen > .controls.compact-controls .difficulty-badge{display:none!important}
  .game-screen > .controls.compact-controls .controls-menu-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;font-size:16px!important}
  .game-screen .game-wrap > .joystick-zone{width:48%!important;height:40%!important;min-width:104px!important;min-height:96px!important}
  .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint{width:80px!important;height:80px!important}
  .game-screen .game-wrap > .joystick-zone .joystick-base{width:66px!important;height:66px!important}
}

@media(orientation:landscape) and (max-height:700px){
  .game-screen{
    grid-template-columns:minmax(0,1fr) clamp(64px,17vh,78px)!important;
    grid-template-rows:auto minmax(0,1fr) 48px!important;
    gap:5px!important;
  }
  .game-screen .hud{grid-column:2!important;grid-row:1 / 3!important}
  .game-screen .game-wrap{grid-column:1!important;grid-row:1 / 3!important;min-height:0!important}
  .game-screen > .controls.compact-controls{
    grid-column:1!important;
    grid-row:3!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:48px!important;
    min-height:48px!important;
    height:48px!important;
    gap:5px!important;
  }
  .game-screen > .controls.compact-controls > .mission-card{min-height:48px!important;height:48px!important;max-height:48px!important;padding:4px 7px!important}
  .game-screen > .controls.compact-controls .mission-primary{font-size:11px!important}
  .game-screen > .controls.compact-controls .mission-secondary{font-size:6.8px!important}
  .game-screen > .controls.compact-controls .controls-menu-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
  .game-screen .game-wrap > .joystick-zone{
    right:8px!important;
    bottom:8px!important;
    width:40%!important;
    height:64%!important;
    min-width:150px!important;
    min-height:110px!important;
    max-width:300px!important;
    max-height:220px!important;
  }
  .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint{left:76%!important;top:68%!important;width:86px!important;height:86px!important}
  .game-screen .game-wrap > .joystick-zone .joystick-base{left:76%!important;top:68%!important;width:70px!important;height:70px!important}
  .controls-stick-left .game-screen .game-wrap > .joystick-zone{left:8px!important;right:auto!important}
  .controls-stick-left .game-screen .game-wrap > .joystick-zone .visible-joystick .joystick-hint,
  .controls-stick-left .game-screen .game-wrap > .joystick-zone .joystick-base{left:24%!important}
}
@media(orientation:landscape) and (max-height:340px){
  .game-screen{grid-template-rows:auto minmax(0,1fr) 44px!important;gap:4px!important}
  .game-screen > .controls.compact-controls{grid-template-rows:44px!important;min-height:44px!important;height:44px!important}
  .game-screen > .controls.compact-controls > .mission-card{min-height:44px!important;height:44px!important;max-height:44px!important;padding:3px 6px!important}
  .game-screen > .controls.compact-controls .mission-secondary{display:none!important}
  .game-screen > .controls.compact-controls .difficulty-badge{display:none!important}
  .game-screen .game-wrap > .joystick-zone{height:70%!important;min-height:100px!important}
}
/* RC12 regression guard: app screens must continue filling the stage shell. */
.game-screen{position:absolute!important;inset:0!important}
@media(orientation:landscape) and (max-height:700px){
  .game-screen > .controls.compact-controls .difficulty-badge{display:none!important}
  .game-screen > .controls.compact-controls .offline-chip{
    width:9px!important;height:9px!important;min-width:9px!important;min-height:9px!important;
    padding:0!important;border-radius:50%!important;font-size:0!important;line-height:0!important;
  }
  .game-screen > .controls.compact-controls .mission-primary{font-size:10px!important}
}

/* RC13: gameplay-first chrome. Header/HUD/mission shrink; joystick is invisible until touch. */
.game-focus{--nav-h:46px}
.game-focus .app-shell{gap:3px!important}
.game-focus .topbar{min-height:32px!important;height:32px!important;padding:0 1px!important;gap:5px!important}
.game-focus .brand-mark{display:none!important}
.game-focus .brand-subtitle{display:none!important}
.game-focus .brand{gap:0!important}
.game-focus .brand-title{font-size:10px!important;letter-spacing:.065em!important}
.game-focus .header-actions{gap:3px!important}
.game-focus .header-actions .icon-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:9px!important;font-size:13px!important}

.game-focus .game-screen{gap:3px!important}
.game-focus .game-screen .hud{min-height:29px!important;height:29px!important;gap:2px!important}
.game-focus .game-screen .hud-item{min-height:29px!important;height:29px!important;padding:2px 4px!important;border-radius:8px!important;display:grid!important;align-content:center!important}
.game-focus .game-screen .hud-label{font-size:6.5px!important;line-height:1!important;letter-spacing:.025em!important}
.game-focus .game-screen .hud-item strong{font-size:9px!important;line-height:1!important;margin-top:1px!important}
.game-focus .game-screen .hud-item:nth-child(2) strong{font-size:10px!important}

.game-focus .game-screen > .controls.compact-controls{
  grid-template-rows:42px!important;
  min-height:42px!important;
  height:42px!important;
  gap:4px!important;
}
.game-focus .game-screen > .controls.compact-controls > .mission-card{
  min-height:42px!important;height:42px!important;max-height:42px!important;
  padding:3px 5px!important;border-radius:9px!important;gap:4px!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-primary{font-size:10px!important;line-height:1!important}
.game-focus .game-screen > .controls.compact-controls .mission-secondary{font-size:6.5px!important;line-height:1!important}
.game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;border-radius:8px!important;font-size:15px!important}
.game-focus .game-screen > .controls.compact-controls .difficulty-badge{display:none!important}
.game-focus .game-screen > .controls.compact-controls .offline-chip{font-size:0!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;padding:0!important;border-radius:50%!important}
.game-focus .game-screen > .controls.compact-controls > .disk-dock{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
.game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
.game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}

/* Keep a generous invisible touch zone, but remove the permanent visual block. */
.game-focus .game-wrap > .joystick-zone{
  width:42%!important;height:48%!important;min-width:108px!important;min-height:94px!important;
  max-width:230px!important;max-height:176px!important;
  right:4px!important;bottom:4px!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
}
.game-focus .game-wrap > .joystick-zone .joystick-hint{display:none!important}
.game-focus .game-wrap > .joystick-zone .joystick-base{
  width:58px!important;height:58px!important;
  left:50%;top:50%;
  border-color:color-mix(in srgb,var(--accent) 52%,rgba(255,255,255,.12))!important;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.12),rgba(255,255,255,.02) 58%,rgba(0,0,0,.06))!important;
}
.game-focus .game-wrap > .joystick-zone .joystick-knob{width:23px!important;height:23px!important}
.game-focus .game-wrap > .joystick-zone .joystick-base:not(.active){opacity:0!important}
.game-focus .game-wrap > .joystick-zone .joystick-base.active{opacity:.82!important}

.game-focus .bottom-nav,.game-focus .bottom-nav.five{min-height:46px!important;height:46px!important;padding:2px!important;gap:2px!important;border-radius:11px!important}
.game-focus .bottom-nav.five .nav-btn{min-height:0!important;border-radius:8px!important;padding:1px!important}
.game-focus .bottom-nav.five .nav-btn span{height:16px!important;font-size:12px!important}
.game-focus .bottom-nav.five .nav-btn small{font-size:7px!important;line-height:1!important}

@media(orientation:portrait){
  .game-focus .game-screen{grid-template-rows:29px minmax(0,1fr) 42px!important;gap:3px!important}
}
@media(orientation:portrait) and (max-width:360px){
  .game-focus{--nav-h:44px}
  .game-focus .topbar{min-height:30px!important;height:30px!important}
  .game-focus .header-actions .icon-btn{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important}
  .game-focus .game-screen{grid-template-rows:27px minmax(0,1fr) 40px!important;gap:2px!important}
  .game-focus .game-screen .hud{min-height:27px!important;height:27px!important}
  .game-focus .game-screen .hud-item{min-height:27px!important;height:27px!important;padding:2px 3px!important}
  .game-focus .game-screen .hud-label{display:none!important}
  .game-focus .game-screen .hud-item strong{font-size:9px!important;margin:0!important}
  .game-focus .game-screen > .controls.compact-controls{grid-template-rows:40px!important;min-height:40px!important;height:40px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{min-height:40px!important;height:40px!important;max-height:40px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-secondary{display:none!important}
  .game-focus .bottom-nav,.game-focus .bottom-nav.five{min-height:44px!important;height:44px!important}
}

@media(orientation:landscape) and (max-height:700px){
  .game-focus .app-shell{
    grid-template-columns:minmax(0,1fr) 52px!important;
    grid-template-rows:32px minmax(0,1fr)!important;
    gap:3px!important;
  }
  .game-focus .topbar{grid-column:1!important;grid-row:1!important;min-height:32px!important;height:32px!important}
  .game-focus .stage-shell{grid-column:1!important;grid-row:2!important}
  .game-focus .bottom-nav,.game-focus .bottom-nav.five{grid-column:2!important;grid-row:1/3!important;width:52px!important;height:auto!important;min-height:0!important;grid-template-columns:1fr!important;grid-template-rows:repeat(5,minmax(0,1fr))!important}
  .game-focus .game-screen{
    grid-template-columns:minmax(0,1fr) 54px!important;
    grid-template-rows:minmax(0,1fr) 40px!important;
    gap:3px!important;
  }
  .game-focus .game-screen .hud{grid-column:2!important;grid-row:1!important;height:auto!important;min-height:0!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;gap:2px!important}
  .game-focus .game-screen .hud-item{height:auto!important;min-height:0!important;padding:2px!important;border-radius:7px!important}
  .game-focus .game-screen .hud-label{font-size:5.8px!important}
  .game-focus .game-screen .hud-item strong{font-size:8px!important}
  .game-focus .game-screen .game-wrap{grid-column:1!important;grid-row:1!important;min-height:0!important}
  .game-focus .game-screen > .controls.compact-controls{grid-column:1!important;grid-row:2!important;grid-template-rows:40px!important;min-height:40px!important;height:40px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{min-height:40px!important;height:40px!important;max-height:40px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-secondary{display:none!important}
  .game-focus .game-wrap > .joystick-zone{width:38%!important;height:52%!important;min-width:128px!important;min-height:88px!important;max-width:220px!important;max-height:150px!important;right:4px!important;bottom:4px!important}
  .game-focus .game-wrap > .joystick-zone .joystick-base{width:54px!important;height:54px!important}
  .game-focus .game-wrap > .joystick-zone .joystick-knob{width:21px!important;height:21px!important}
  .game-focus .bottom-nav.five .nav-btn span{height:14px!important;font-size:11px!important}
  .game-focus .bottom-nav.five .nav-btn small{font-size:6.5px!important}
}

/* RC13b: landscape HUD becomes a tiny overlay instead of reserving a full side column. */
@media(orientation:landscape) and (max-height:700px){
  .game-focus .app-shell{
    grid-template-columns:minmax(0,1fr) 48px!important;
    grid-template-rows:28px minmax(0,1fr)!important;
    gap:2px!important;
  }
  .game-focus .topbar{min-height:28px!important;height:28px!important}
  .game-focus .brand-title{font-size:9.5px!important}
  .game-focus .header-actions .icon-btn{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;border-radius:8px!important;font-size:12px!important}
  .game-focus .bottom-nav,.game-focus .bottom-nav.five{width:48px!important}
  .game-focus .bottom-nav.five .nav-btn span{height:13px!important;font-size:10px!important}
  .game-focus .bottom-nav.five .nav-btn small{font-size:6px!important}

  .game-focus .game-screen{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr) 38px!important;
    gap:2px!important;
  }
  .game-focus .game-screen .game-wrap{grid-column:1!important;grid-row:1!important;min-height:0!important}
  .game-focus .game-screen > .controls.compact-controls{grid-column:1!important;grid-row:2!important;grid-template-rows:38px!important;min-height:38px!important;height:38px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{min-height:38px!important;height:38px!important;max-height:38px!important;padding:3px 5px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-primary{font-size:9.5px!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;font-size:14px!important}

  .game-focus .game-screen .hud{
    position:absolute!important;
    z-index:4!important;
    left:5px!important;top:5px!important;
    width:auto!important;height:25px!important;min-height:25px!important;
    display:flex!important;
    gap:3px!important;
    pointer-events:none!important;
  }
  .game-focus .game-screen .hud-item{display:none!important}
  .game-focus .game-screen .hud-item:nth-child(1),
  .game-focus .game-screen .hud-item:nth-child(2){
    display:grid!important;
    width:auto!important;min-width:48px!important;height:25px!important;min-height:25px!important;
    padding:2px 6px!important;border-radius:8px!important;
    background:color-mix(in srgb,var(--surface) 82%,transparent)!important;
    backdrop-filter:blur(7px)!important;
    border-color:rgba(255,255,255,.08)!important;
  }
  .game-focus .game-screen .hud-label{display:none!important}
  .game-focus .game-screen .hud-item strong{font-size:8px!important;line-height:1!important;margin:0!important;text-align:center!important}
  .game-focus .game-screen .hud-item:nth-child(2) strong{font-size:9px!important}

  .game-focus .game-wrap > .joystick-zone{width:36%!important;height:48%!important;min-width:122px!important;min-height:82px!important;max-width:205px!important;max-height:138px!important}
}
@media(orientation:landscape) and (max-height:700px){
  .game-focus .game-screen .hud{
    grid-column:auto!important;grid-row:auto!important;
    right:auto!important;bottom:auto!important;
    left:5px!important;top:5px!important;
  }
}

/* RC14: true fullscreen gameplay. Gameplay UI becomes overlay-only; canvas owns the stage. */
.game-focus .app-shell{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:0!important;
  padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)!important;
}
.game-focus .stage-shell{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  height:100%!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
.game-focus .game-screen{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
.game-focus .game-screen .game-wrap{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.game-focus #gameCanvas{
  max-width:100%!important;
  max-height:100%!important;
  border-radius:11px!important;
}

/* Header no longer reserves a row; only the action cluster floats above the game. */
.game-focus .topbar{
  position:absolute!important;
  z-index:30!important;
  top:calc(var(--safe-top) + 3px)!important;
  right:calc(var(--safe-right) + 3px)!important;
  left:auto!important;
  width:auto!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  pointer-events:none!important;
}
.game-focus .topbar .brand{display:none!important}
.game-focus .header-actions{display:flex!important;gap:3px!important;pointer-events:auto!important}
.game-focus .header-actions .icon-btn{
  width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;
  border-radius:9px!important;font-size:12px!important;
  background:color-mix(in srgb,var(--surface) 74%,transparent)!important;
  border-color:rgba(255,255,255,.08)!important;
  backdrop-filter:blur(8px)!important;
  opacity:.72!important;
}
.game-focus .header-actions #pauseBtn{opacity:1!important}
.game-focus:not(.game-menu-open) .header-actions #musicBtn,
.game-focus:not(.game-menu-open) .header-actions #fullscreenBtn{opacity:.42!important}

/* Main navigation is hidden while actually playing. It returns when pause/settings overlay is open. */
.game-focus .bottom-nav,.game-focus .bottom-nav.five{display:none!important}
.game-focus.game-menu-open .bottom-nav,.game-focus.game-menu-open .bottom-nav.five{
  display:grid!important;
  position:absolute!important;
  z-index:31!important;
  left:calc(var(--safe-left) + 5px)!important;
  right:calc(var(--safe-right) + 5px)!important;
  bottom:calc(var(--safe-bottom) + 5px)!important;
  width:auto!important;
  height:46px!important;
  min-height:46px!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:1fr!important;
  padding:3px!important;
  gap:2px!important;
  border-radius:12px!important;
  background:color-mix(in srgb,var(--surface) 91%,transparent)!important;
}
.game-focus.game-menu-open .bottom-nav .nav-btn{min-height:0!important;padding:1px!important}
.game-focus.game-menu-open .bottom-nav .nav-btn span{height:16px!important;font-size:11px!important}
.game-focus.game-menu-open .bottom-nav .nav-btn small{font-size:6.5px!important}

/* HUD becomes two compact chips over the canvas. */
.game-focus .game-screen .hud{
  position:absolute!important;
  z-index:5!important;
  left:5px!important;
  top:5px!important;
  right:auto!important;
  bottom:auto!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  gap:3px!important;
  pointer-events:none!important;
}
.game-focus .game-screen .hud-item{display:none!important}
.game-focus .game-screen .hud-item:nth-child(1),
.game-focus .game-screen .hud-item:nth-child(2){
  display:grid!important;
  width:auto!important;
  min-width:46px!important;
  height:25px!important;
  min-height:25px!important;
  padding:2px 6px!important;
  place-items:center!important;
  border-radius:8px!important;
  background:color-mix(in srgb,var(--surface) 76%,transparent)!important;
  border-color:rgba(255,255,255,.08)!important;
  backdrop-filter:blur(8px)!important;
  opacity:.9!important;
}
.game-focus .game-screen .hud-label{display:none!important}
.game-focus .game-screen .hud-item strong,
.game-focus .game-screen .hud-item:nth-child(2) strong{
  font-size:9px!important;line-height:1!important;margin:0!important;text-align:center!important;
}
.game-focus .game-screen .hud-item:nth-child(2) strong{color:var(--accent)!important}

/* Mission and disk become small floating chips, no reserved controls row. */
.game-focus .game-screen > .controls.compact-controls{
  position:absolute!important;
  z-index:5!important;
  left:5px!important;
  bottom:5px!important;
  right:auto!important;
  top:auto!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  pointer-events:none!important;
  background:transparent!important;
}
.game-focus .game-screen > .controls.compact-controls > .mission-card{
  position:relative!important;
  width:auto!important;
  min-width:118px!important;
  max-width:min(188px,52vw)!important;
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  padding:3px 4px 3px 7px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"mission tools"!important;
  align-items:center!important;
  gap:4px!important;
  border-radius:10px!important;
  background:color-mix(in srgb,var(--surface) 77%,transparent)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  backdrop-filter:blur(8px)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.16)!important;
  pointer-events:auto!important;
  overflow:hidden!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-row{display:contents!important}
.game-focus .game-screen > .controls.compact-controls .mission-title,
.game-focus .game-screen > .controls.compact-controls .mission-secondary,
.game-focus .game-screen > .controls.compact-controls .difficulty-badge{display:none!important}
.game-focus .game-screen > .controls.compact-controls .mission-text{
  grid-area:mission!important;
  margin:0!important;
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-primary{
  display:block!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-tools{
  grid-area:tools!important;display:flex!important;align-items:center!important;gap:3px!important;pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .offline-chip{
  width:7px!important;height:7px!important;min-width:7px!important;min-height:7px!important;
  padding:0!important;border-radius:50%!important;font-size:0!important;line-height:0!important;
}
.game-focus .game-screen > .controls.compact-controls .controls-menu-btn{
  width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;
  border-radius:8px!important;font-size:14px!important;background:rgba(8,15,23,.72)!important;
}
.game-focus .game-screen > .controls.compact-controls > .disk-dock{
  position:static!important;
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
  margin:0!important;pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
.game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
}

/* Right thumb surface remains large but completely invisible when idle. */
.game-focus .game-wrap > .joystick-zone{
  position:absolute!important;
  z-index:4!important;
  right:0!important;
  bottom:0!important;
  width:46%!important;
  height:64%!important;
  min-width:118px!important;
  min-height:120px!important;
  max-width:none!important;
  max-height:none!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  pointer-events:auto!important;
  touch-action:none!important;
}
.controls-stick-left.game-focus .game-wrap > .joystick-zone,
.game-focus.controls-stick-left .game-wrap > .joystick-zone{left:0!important;right:auto!important}
.game-focus .game-wrap > .joystick-zone::before,
.game-focus .game-wrap > .joystick-zone::after,
.game-focus .game-wrap > .joystick-zone .joystick-hint{display:none!important;content:none!important}
.game-focus .game-wrap > .joystick-zone .joystick-base{
  width:50px!important;height:50px!important;
  border-width:1px!important;
  background:rgba(9,18,26,.42)!important;
  backdrop-filter:blur(4px)!important;
}
.game-focus .game-wrap > .joystick-zone .joystick-knob{width:20px!important;height:20px!important}
.game-focus .game-wrap > .joystick-zone .joystick-base:not(.active){opacity:0!important}
.game-focus .game-wrap > .joystick-zone .joystick-base.active{opacity:.76!important}

/* Keep overlay card above the floating HUD/controls. */
.game-focus .overlay{z-index:20!important;padding:12px!important}
.game-focus .overlay-card{max-height:calc(100% - 58px)!important;overflow:auto!important}

@media(orientation:portrait){
  .game-focus .game-wrap > .joystick-zone{width:48%!important;height:58%!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{max-width:min(170px,50vw)!important}
}
@media(orientation:portrait) and (max-width:340px){
  .game-focus .header-actions .icon-btn{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important}
  .game-focus .game-screen .hud-item:nth-child(1),.game-focus .game-screen .hud-item:nth-child(2){height:23px!important;min-height:23px!important;min-width:42px!important;padding:2px 5px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{height:31px!important;min-height:31px!important;max-height:31px!important;min-width:108px!important;max-width:152px!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important}
}
@media(orientation:landscape){
  .game-focus .game-wrap > .joystick-zone{width:43%!important;height:72%!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{max-width:min(176px,32vw)!important}
}
@media(orientation:landscape) and (max-height:340px){
  .game-focus .header-actions .icon-btn{width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important}
  .game-focus .game-screen .hud{top:4px!important;left:4px!important}
  .game-focus .game-screen .hud-item:nth-child(1),.game-focus .game-screen .hud-item:nth-child(2){height:22px!important;min-height:22px!important;min-width:40px!important;padding:1px 5px!important}
  .game-focus .game-screen > .controls.compact-controls{left:4px!important;bottom:4px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{height:30px!important;min-height:30px!important;max-height:30px!important;min-width:104px!important;max-width:150px!important;padding-left:6px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-primary{font-size:9px!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:23px!important;height:23px!important;min-width:23px!important;min-height:23px!important}
}

/* RC15: restore an always-visible bottom thumb-stick without letting the control tray eat the playfield. */
.game-focus .game-screen{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(0,1fr) 84px!important;
  gap:5px!important;
  position:relative!important;
  height:100%!important;
  overflow:hidden!important;
}
.game-focus .game-screen > .game-wrap{
  grid-column:1!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:0!important;
  width:100%!important;
  height:100%!important;
  place-items:center!important;
}
.game-focus .game-screen > .controls.compact-controls{
  grid-column:1!important;
  grid-row:2!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:84px!important;
  min-height:84px!important;
  display:grid!important;
  grid-template-columns:minmax(112px,.74fr) minmax(128px,1.26fr)!important;
  grid-template-areas:"mission joystick"!important;
  align-items:stretch!important;
  gap:6px!important;
  padding:0!important;
  margin:0!important;
  pointer-events:auto!important;
  background:transparent!important;
}
.game-focus .game-screen > .controls.compact-controls > .mission-card{
  grid-area:mission!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  padding:7px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"mission tools"!important;
  align-items:center!important;
  gap:4px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),var(--surface))!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  overflow:hidden!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-row{display:contents!important}
.game-focus .game-screen > .controls.compact-controls .mission-title,
.game-focus .game-screen > .controls.compact-controls .mission-secondary,
.game-focus .game-screen > .controls.compact-controls .difficulty-badge,
.game-focus .game-screen > .controls.compact-controls .mission-mechanics,
.game-focus .game-screen > .controls.compact-controls .legend{display:none!important}
.game-focus .game-screen > .controls.compact-controls .mission-text{
  grid-area:mission!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  overflow:hidden!important;
  white-space:normal!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-primary{
  display:block!important;
  font-size:10px!important;
  line-height:1.15!important;
  font-weight:820!important;
  white-space:normal!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-tools{
  grid-area:tools!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  flex-wrap:nowrap!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .offline-chip{
  width:7px!important;height:7px!important;min-width:7px!important;min-height:7px!important;
  padding:0!important;border-radius:50%!important;font-size:0!important;line-height:0!important;
}
.game-focus .game-screen > .controls.compact-controls .controls-menu-btn{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  border-radius:10px!important;font-size:18px!important;
}
.game-focus .game-screen > .controls.compact-controls > .joystick-zone{
  grid-area:joystick!important;
  position:relative!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),color-mix(in srgb,var(--surface) 94%,#071019))!important;
  box-shadow:none!important;
  touch-action:none!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls > .joystick-zone::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 68% 50%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 44%)!important;
  pointer-events:none!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-zone-surface,
.game-focus .game-screen > .controls.compact-controls .visible-joystick{
  position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important;
}
.game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{
  display:block!important;
  left:68%!important;top:50%!important;
  width:72px!important;height:72px!important;
  transform:translate(-50%,-50%)!important;
  border:1px solid color-mix(in srgb,var(--accent) 26%,rgba(255,255,255,.10))!important;
  background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 7%,transparent),rgba(255,255,255,.018) 56%,transparent 68%)!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-base{
  display:block!important;
  left:68%!important;top:50%!important;
  width:58px!important;height:58px!important;
  opacity:.82!important;
  visibility:visible!important;
  border-color:color-mix(in srgb,var(--accent) 48%,rgba(255,255,255,.14))!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-base.active{opacity:1!important}
.game-focus .game-screen > .controls.compact-controls .joystick-knob{width:23px!important;height:23px!important}
.game-focus .game-screen > .controls.compact-controls > .disk-dock{
  position:absolute!important;
  right:6px!important;bottom:6px!important;left:auto!important;top:auto!important;
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  margin:0!important;z-index:4!important;pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
.game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls{
  grid-template-columns:minmax(128px,1.26fr) minmax(112px,.74fr)!important;
  grid-template-areas:"joystick mission"!important;
}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint,
.controls-stick-left.game-focus .game-screen > .controls.compact-controls .joystick-base{left:32%!important}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls > .disk-dock{left:6px!important;right:auto!important}

@media(orientation:portrait) and (max-width:360px){
  .game-focus .game-screen{grid-template-rows:minmax(0,1fr) 76px!important}
  .game-focus .game-screen > .controls.compact-controls{height:76px!important;min-height:76px!important;grid-template-columns:minmax(100px,.72fr) minmax(116px,1.28fr)!important;gap:5px!important}
  .controls-stick-left.game-focus .game-screen > .controls.compact-controls{grid-template-columns:minmax(116px,1.28fr) minmax(100px,.72fr)!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card,
  .game-focus .game-screen > .controls.compact-controls > .joystick-zone{height:76px!important;min-height:76px!important;max-height:76px!important}
  .game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:66px!important;height:66px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-base{width:54px!important;height:54px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-knob{width:21px!important;height:21px!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
}
@media(orientation:landscape){
  .game-focus .game-screen{grid-template-rows:minmax(0,1fr) 64px!important;gap:4px!important}
  .game-focus .game-screen > .controls.compact-controls{height:64px!important;min-height:64px!important;grid-template-columns:minmax(112px,.6fr) minmax(150px,1.4fr)!important;gap:5px!important}
  .controls-stick-left.game-focus .game-screen > .controls.compact-controls{grid-template-columns:minmax(150px,1.4fr) minmax(112px,.6fr)!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card,
  .game-focus .game-screen > .controls.compact-controls > .joystick-zone{height:64px!important;min-height:64px!important;max-height:64px!important;border-radius:10px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{padding:5px 6px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-primary{font-size:9px!important;line-height:1.08!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
  .game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:56px!important;height:56px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-base{width:46px!important;height:46px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-knob{width:19px!important;height:19px!important}
  .game-focus .game-screen > .controls.compact-controls > .disk-dock{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;right:5px!important;bottom:5px!important}
  .game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
  .game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
}

/* RC15: restore an always-visible bottom thumb-stick without letting the control tray eat the playfield. */
.game-focus .game-screen{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(0,1fr) 84px!important;
  gap:5px!important;
  position:relative!important;
  height:100%!important;
  overflow:hidden!important;
}
.game-focus .game-screen > .game-wrap{
  grid-column:1!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:0!important;
  width:100%!important;
  height:100%!important;
  place-items:center!important;
}
.game-focus .game-screen > .controls.compact-controls{
  grid-column:1!important;
  grid-row:2!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:84px!important;
  min-height:84px!important;
  display:grid!important;
  grid-template-columns:minmax(112px,.74fr) minmax(128px,1.26fr)!important;
  grid-template-areas:"mission joystick"!important;
  align-items:stretch!important;
  gap:6px!important;
  padding:0!important;
  margin:0!important;
  pointer-events:auto!important;
  background:transparent!important;
}
.game-focus .game-screen > .controls.compact-controls > .mission-card{
  grid-area:mission!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  padding:7px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"mission tools"!important;
  align-items:center!important;
  gap:4px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),var(--surface))!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  overflow:hidden!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-row{display:contents!important}
.game-focus .game-screen > .controls.compact-controls .mission-title,
.game-focus .game-screen > .controls.compact-controls .mission-secondary,
.game-focus .game-screen > .controls.compact-controls .difficulty-badge,
.game-focus .game-screen > .controls.compact-controls .mission-mechanics,
.game-focus .game-screen > .controls.compact-controls .legend{display:none!important}
.game-focus .game-screen > .controls.compact-controls .mission-text{
  grid-area:mission!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  overflow:hidden!important;
  white-space:normal!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-primary{
  display:block!important;
  font-size:10px!important;
  line-height:1.15!important;
  font-weight:820!important;
  white-space:normal!important;
}
.game-focus .game-screen > .controls.compact-controls .mission-tools{
  grid-area:tools!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  flex-wrap:nowrap!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .offline-chip{
  width:7px!important;height:7px!important;min-width:7px!important;min-height:7px!important;
  padding:0!important;border-radius:50%!important;font-size:0!important;line-height:0!important;
}
.game-focus .game-screen > .controls.compact-controls .controls-menu-btn{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  border-radius:10px!important;font-size:18px!important;
}
.game-focus .game-screen > .controls.compact-controls > .joystick-zone{
  grid-area:joystick!important;
  position:relative!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--surface)),color-mix(in srgb,var(--surface) 94%,#071019))!important;
  box-shadow:none!important;
  touch-action:none!important;
  pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls > .joystick-zone::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 68% 50%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 44%)!important;
  pointer-events:none!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-zone-surface,
.game-focus .game-screen > .controls.compact-controls .visible-joystick{
  position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important;
}
.game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{
  display:block!important;
  left:68%!important;top:50%!important;
  width:72px!important;height:72px!important;
  transform:translate(-50%,-50%)!important;
  border:1px solid color-mix(in srgb,var(--accent) 26%,rgba(255,255,255,.10))!important;
  background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 7%,transparent),rgba(255,255,255,.018) 56%,transparent 68%)!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-base{
  display:block!important;
  left:68%!important;top:50%!important;
  width:58px!important;height:58px!important;
  opacity:.82!important;
  visibility:visible!important;
  border-color:color-mix(in srgb,var(--accent) 48%,rgba(255,255,255,.14))!important;
}
.game-focus .game-screen > .controls.compact-controls .joystick-base.active{opacity:1!important}
.game-focus .game-screen > .controls.compact-controls .joystick-knob{width:23px!important;height:23px!important}
.game-focus .game-screen > .controls.compact-controls > .disk-dock{
  position:absolute!important;
  right:6px!important;bottom:6px!important;left:auto!important;top:auto!important;
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  margin:0!important;z-index:4!important;pointer-events:auto!important;
}
.game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
.game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls{
  grid-template-columns:minmax(128px,1.26fr) minmax(112px,.74fr)!important;
  grid-template-areas:"joystick mission"!important;
}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint,
.controls-stick-left.game-focus .game-screen > .controls.compact-controls .joystick-base{left:32%!important}
.controls-stick-left.game-focus .game-screen > .controls.compact-controls > .disk-dock{left:6px!important;right:auto!important}

@media(orientation:portrait) and (max-width:360px){
  .game-focus .game-screen{grid-template-rows:minmax(0,1fr) 76px!important}
  .game-focus .game-screen > .controls.compact-controls{height:76px!important;min-height:76px!important;grid-template-columns:minmax(100px,.72fr) minmax(116px,1.28fr)!important;gap:5px!important}
  .controls-stick-left.game-focus .game-screen > .controls.compact-controls{grid-template-columns:minmax(116px,1.28fr) minmax(100px,.72fr)!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card,
  .game-focus .game-screen > .controls.compact-controls > .joystick-zone{height:76px!important;min-height:76px!important;max-height:76px!important}
  .game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:66px!important;height:66px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-base{width:54px!important;height:54px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-knob{width:21px!important;height:21px!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
}
@media(orientation:landscape){
  .game-focus .game-screen{grid-template-rows:minmax(0,1fr) 64px!important;gap:4px!important}
  .game-focus .game-screen > .controls.compact-controls{height:64px!important;min-height:64px!important;grid-template-columns:minmax(112px,.6fr) minmax(150px,1.4fr)!important;gap:5px!important}
  .controls-stick-left.game-focus .game-screen > .controls.compact-controls{grid-template-columns:minmax(150px,1.4fr) minmax(112px,.6fr)!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card,
  .game-focus .game-screen > .controls.compact-controls > .joystick-zone{height:64px!important;min-height:64px!important;max-height:64px!important;border-radius:10px!important}
  .game-focus .game-screen > .controls.compact-controls > .mission-card{padding:5px 6px!important}
  .game-focus .game-screen > .controls.compact-controls .mission-primary{font-size:9px!important;line-height:1.08!important}
  .game-focus .game-screen > .controls.compact-controls .controls-menu-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
  .game-focus .game-screen > .controls.compact-controls .visible-joystick .joystick-hint{width:56px!important;height:56px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-base{width:46px!important;height:46px!important}
  .game-focus .game-screen > .controls.compact-controls .joystick-knob{width:19px!important;height:19px!important}
  .game-focus .game-screen > .controls.compact-controls > .disk-dock{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;right:5px!important;bottom:5px!important}
  .game-focus .game-screen > .controls.compact-controls .disk-dock .action-btn,
  .game-focus .game-screen > .controls.compact-controls .disk-dock.no-disk .action-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
}
/* RC15 layout repair: the playfield must participate in the grid, not keep RC14's absolute fullscreen positioning. */
.game-focus .game-screen > .game-wrap{position:relative!important;inset:auto!important}
