:root{color-scheme:dark;--bg:#061017;--panel:#0b1b24;--panel2:#0e2530;--line:#244653;--text:#edf9fb;--muted:#9fb8c0;--accent:#58e6da;--accent2:#70b7ff;--warn:#ffb45f;--danger:#ff6f6a;--violet:#c493ff}
*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at 50% -20%,#16404a 0,#091820 33%,#04090d 72%);color:var(--text);font-family:Inter,system-ui,Segoe UI,Arial,sans-serif}body{min-height:100vh}.shell{max-width:1160px;margin:auto;padding:12px 18px 34px}.titlebar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:10px}.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:900}.titlebar h1{font-size:clamp(1.55rem,3vw,2.45rem);margin:.12rem 0}.subtitle{margin:0;color:var(--muted);max-width:760px;line-height:1.42}.runtime-badge{border:1px solid var(--line);background:#09151d;padding:8px 10px;border-radius:999px;color:var(--muted);font-size:.82rem;white-space:nowrap}.game-card{border:1px solid var(--line);background:rgba(7,17,24,.96);border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}.toolbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:9px 10px;background:#0a1820;border-bottom:1px solid var(--line)}.metric{padding:7px 10px;background:#0d222c;border:1px solid #1f3f4c;border-radius:10px}.metric span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.09em}.metric strong{font-size:1.05rem}.threat-metric strong{font-size:.86rem;line-height:1.15;display:block;min-height:1.1em}.stage-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;background:linear-gradient(90deg,#0c222b,#0a171e);border-bottom:1px solid #183744}.stage-strip strong{display:block;font-size:1.02rem}.stage-kicker{display:block;color:var(--accent);font-size:.68rem;font-weight:900;letter-spacing:.13em}.lesson{color:var(--muted);font-size:.82rem;text-align:right}.campaign-text{display:block;color:#7fa1aa;font-size:.72rem;margin-top:2px}.canvas-wrap{padding:8px;background:#050d13}.canvas-wrap canvas{display:block;width:100%;height:min(60vh,570px);min-height:440px;border-radius:12px;outline:1px solid #17333f;touch-action:none}.controlbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;border-top:1px solid var(--line)}button,select{border:1px solid #315866;background:#102a35;color:var(--text);padding:9px 12px;border-radius:9px;font:inherit;font-weight:800}button:not(:disabled):hover,select:hover{border-color:var(--accent);background:#143743}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid rgba(88,230,218,.38);outline-offset:2px}.status{flex:1;min-width:310px;color:var(--muted);font-size:.92rem}.stage-description{flex-basis:100%;font-size:.84rem;color:#89a6b0;border-top:1px solid #173540;padding-top:8px}.move-pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,36px);align-items:center;justify-items:center;margin-left:auto}.move-pad button{width:40px;height:32px;padding:0}.move-pad .nw{grid-column:1;grid-row:1}.move-pad .ne{grid-column:3;grid-row:1}.move-pad .sw{grid-column:1;grid-row:3}.move-pad .se{grid-column:3;grid-row:3}.move-pad .center{grid-column:2;grid-row:2;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.08em}.guide{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:#09171e;overflow:hidden}.guide summary{cursor:pointer;padding:12px 15px;font-weight:900}.guide-body{padding:0 15px 15px;display:grid;grid-template-columns:1.08fr .88fr 1.12fr;gap:18px;color:var(--muted)}.guide h3{color:var(--text);margin:.2rem 0 .45rem}.guide p,.guide li{font-size:.88rem;line-height:1.46}.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 10px}.key{display:inline-block;min-width:34px;text-align:center;border:1px solid #3d6471;background:#122f3a;border-radius:6px;color:#fff;padding:3px 7px;font-weight:900}.note{font-size:.79rem;color:#8ca5ad}.legend-list{display:grid;gap:7px}.legend-item{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;font-size:.8rem;line-height:1.32}.legend-icon{display:inline-grid;place-items:center;min-width:42px;height:25px;border:1px solid #365c69;border-radius:6px;background:#102a34;color:#fff;font-size:.68rem;font-weight:900}.legend-item strong{display:block;color:#dff4f6;font-size:.8rem}.legend-item span:last-child{color:#8fa8b0}@media(max-width:920px){.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-body{grid-template-columns:1fr 1fr}.lesson{max-width:42%}}@media(max-width:760px){.titlebar{align-items:start;flex-direction:column}.toolbar{grid-template-columns:1fr 1fr}.canvas-wrap canvas{height:52vh;min-height:390px}.guide-body{grid-template-columns:1fr}.move-pad{margin-left:0}.status{order:10;flex-basis:100%}.stage-strip{align-items:start;flex-direction:column}.lesson{max-width:none;text-align:left}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
canvas:focus-visible{outline:3px solid rgba(88,230,218,.55)!important;outline-offset:3px!important}
button{touch-action:manipulation;min-height:40px}
@media(max-width:1040px){.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.shell{padding:8px 8px 24px}.toolbar{grid-template-columns:1fr 1fr;gap:6px}.metric{padding:6px 8px}.canvas-wrap{padding:5px}.canvas-wrap canvas{height:48vh;min-height:310px}.controlbar{gap:7px}.controlbar>button,.controlbar>select{min-height:44px;flex:1 1 44%}.move-pad{order:8;width:100%;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,46px);justify-content:center;margin:2px 0}.move-pad button{width:50px;height:42px;min-height:42px}.status{order:10;min-width:0;flex-basis:100%}.stage-description{order:11}.runtime-badge{font-size:.75rem}.guide{margin-top:8px}}

/* Authentication Grid mobile recovery C001R1.
   Presentation-only: gameplay JS remains byte-identical to the accepted baseline. */
.game-mode-shell{display:block}.stage-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end}.play-bigger-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #3a6d78;border-radius:9px;background:#113540;color:#eaffff;font:inherit;font-weight:800;text-decoration:none;white-space:nowrap}.play-bigger-link:hover{border-color:var(--accent);background:#143743}.play-bigger-link:focus-visible{outline:3px solid rgba(88,230,218,.38);outline-offset:2px}.exit-bigger{display:none}.rotate-prompt{display:none}.canvas-wrap canvas{touch-action:pan-y pinch-zoom}

@media(max-width:760px){
  .titlebar{gap:6px;margin-bottom:7px}.titlebar h1{font-size:clamp(1.45rem,6.6vw,2rem)}.subtitle{font-size:.86rem;line-height:1.34}
  .toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px}.metric{padding:5px 7px;min-width:0}.metric span{font-size:.68rem}.metric strong{font-size:.94rem;overflow-wrap:anywhere}.threat-metric strong{font-size:.76rem}
  .stage-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px}.stage-actions{align-items:flex-end;flex-direction:column;gap:5px}.lesson{max-width:24ch;text-align:right;font-size:.72rem}.play-bigger-link{min-height:44px;padding:8px 12px}
  .canvas-wrap{padding:5px}.canvas-wrap canvas{height:clamp(250px,42svh,390px);min-height:0}
  .controlbar{gap:7px}.move-pad{order:-10;width:100%;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,56px);justify-content:center;margin:2px 0 5px}.move-pad button{width:56px;height:52px;min-height:52px;font-size:1.35rem}.move-pad .center{font-size:.7rem}.status{order:10;min-width:0;flex-basis:100%}.stage-description{order:11}
}

@media(max-width:430px){
  .shell{padding:7px 7px 22px}.titlebar{margin-bottom:5px}.titlebar h1{margin:.05rem 0}.subtitle{font-size:.8rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .toolbar{gap:4px;padding:5px}.metric{padding:4px 6px;border-radius:8px}.metric span{letter-spacing:.055em}.metric strong{font-size:.9rem}
  .stage-strip{padding:6px 8px}.stage-strip strong{font-size:.94rem}.stage-kicker,.campaign-text{font-size:.66rem}.lesson{display:none}
  .canvas-wrap canvas{height:clamp(240px,40svh,320px)}
  .controlbar{padding:8px}.controlbar>button,.controlbar>select{min-height:46px}.move-pad{grid-template-columns:repeat(3,62px);grid-template-rows:repeat(3,56px)}.move-pad button{width:56px;height:52px}
}

@media(orientation:landscape) and (max-height:540px) and (max-width:1100px){
  .arcade-sitebar{min-height:50px}.arcade-sitebrand small{display:none}.shell{padding-top:6px}.titlebar{display:grid;grid-template-columns:1fr;margin-bottom:5px}.titlebar .eyebrow,.titlebar .subtitle{display:none}.titlebar h1{font-size:1.25rem;margin:0}
  .toolbar{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:4px}.metric{padding:3px 5px}.metric span{font-size:.65rem}.metric strong{font-size:.82rem}.threat-metric strong{font-size:.68rem}
  .stage-strip{padding:4px 7px}.stage-kicker,.campaign-text{font-size:.62rem}.stage-strip strong{font-size:.82rem}.lesson{display:none}.play-bigger-link{min-height:40px;padding:6px 10px;font-size:.8rem}
  .canvas-wrap{padding:4px}.canvas-wrap canvas{height:clamp(220px,58svh,340px);min-height:0}
  .move-pad{width:100%;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,50px);justify-content:center;margin:2px 0}.move-pad button{width:50px;height:48px;min-height:48px;font-size:1.15rem}
}

/* JS-free Play Bigger mode. :target keeps the same live canvas/game instance. */
.game-mode-shell:target{position:fixed;inset:0;z-index:2100;width:100vw;height:100dvh;overflow:hidden;background:#050d13}.game-mode-shell:target .game-card{width:100%;height:100%;max-width:none;border:0;border-radius:0;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr) clamp(178px,23vw,232px);grid-template-rows:auto auto minmax(0,1fr);background:#050d13}.game-mode-shell:target .toolbar{grid-column:1/3;grid-row:1;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:4px}.game-mode-shell:target .metric{padding:4px 6px;border-radius:7px}.game-mode-shell:target .metric span{font-size:.65rem}.game-mode-shell:target .metric strong{font-size:.82rem}.game-mode-shell:target .threat-metric strong{font-size:.69rem}.game-mode-shell:target .stage-strip{grid-column:1;grid-row:2;display:flex;flex-direction:row;align-items:center;min-width:0;padding:5px 8px;gap:8px}.game-mode-shell:target .stage-strip>div:first-child{min-width:0}.game-mode-shell:target .stage-kicker,.game-mode-shell:target .campaign-text{font-size:.62rem}.game-mode-shell:target .stage-strip strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-mode-shell:target .stage-actions{flex-direction:row;align-items:center;gap:6px}.game-mode-shell:target .lesson,.game-mode-shell:target .enter-bigger{display:none}.game-mode-shell:target .exit-bigger{display:inline-flex;min-height:40px;padding:6px 9px;font-size:.78rem}.game-mode-shell:target .canvas-wrap{grid-column:1;grid-row:3;min-width:0;min-height:0;padding:4px;overflow:hidden}.game-mode-shell:target .canvas-wrap canvas{width:100%;height:100%;min-height:0;border-radius:8px;touch-action:none}.game-mode-shell:target .controlbar{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:6px;min-width:0;min-height:0;padding:7px;overflow-y:auto;overscroll-behavior:contain;border-top:0;border-left:1px solid var(--line);background:#07141b}.game-mode-shell:target .controlbar>button,.game-mode-shell:target .controlbar>select{flex:0 0 auto;width:100%;min-height:44px;padding:6px 8px;font-size:.78rem}.game-mode-shell:target .move-pad{order:-20;flex:0 0 auto;width:100%;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,50px);justify-content:center;margin:0 auto 3px}.game-mode-shell:target .move-pad button{width:50px;height:48px;min-height:48px;font-size:1.15rem}.game-mode-shell:target .move-pad .center{font-size:.62rem}.game-mode-shell:target .status{order:10;flex:0 0 auto;min-width:0;font-size:.72rem;line-height:1.3}.game-mode-shell:target .stage-description{order:11;flex:0 0 auto;font-size:.68rem;line-height:1.3;padding-top:6px}

@media(orientation:portrait){
  .game-mode-shell:target{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#16404a 0,#07151d 42%,#02070b 100%)}
  .game-mode-shell:target .game-card{visibility:hidden;position:absolute;inset:0}
  .game-mode-shell:target .rotate-prompt{display:grid;place-items:center;position:relative;z-index:1;width:min(440px,100%)}
  .rotate-prompt-card{width:100%;padding:28px 24px;border:1px solid #315866;border-radius:18px;background:#091820;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.55)}.rotate-prompt-card h2{margin:.3rem 0 .5rem;font-size:1.45rem}.rotate-prompt-card p{margin:.4rem auto 1.1rem;max-width:35ch;color:var(--muted);line-height:1.45}.rotate-icon{font-size:3.2rem;line-height:1;color:var(--accent);transform:rotate(-28deg)}
}

@media(max-width:1100px){button,select{min-height:44px}.move-pad{grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,50px)}.move-pad button{width:50px;height:48px;min-height:48px;font-size:1.15rem}}
\n\n/* C003 intentional start gate: the first gameplay render is initiated by the player. */
.canvas-wrap{position:relative}
.start-overlay{position:absolute;inset:8px;z-index:5;display:grid;place-items:center;padding:18px;border-radius:12px;background:rgba(2,10,15,.95);backdrop-filter:blur(3px)}
.start-overlay[hidden]{display:none!important}
.start-card{width:min(560px,92%);padding:24px;border:1px solid #315866;border-radius:16px;background:#0a1d25;box-shadow:0 20px 70px rgba(0,0,0,.5);text-align:center}
.start-kicker{color:var(--accent);font-size:.72rem;font-weight:900;letter-spacing:.14em}
.start-card h2{margin:.35rem 0 .65rem;font-size:clamp(1.35rem,3vw,2rem)}
.start-card p{margin:.4rem auto 1rem;max-width:48ch;color:var(--muted);line-height:1.45}
.start-game-btn{min-width:180px;min-height:52px;padding:12px 22px;font-size:1.05rem;background:#12424c;border-color:#4d9eaa}
.start-tip{margin:.85rem auto 0!important;font-size:.82rem}
.game-card:not(.game-started) .controlbar{opacity:.55;pointer-events:none}
@media(max-width:600px){.start-overlay{inset:5px;padding:10px}.start-card{width:96%;padding:18px 14px}.start-card h2{font-size:1.35rem}.start-card p{font-size:.88rem;line-height:1.38}.start-game-btn{width:100%;min-height:54px}.start-tip{font-size:.76rem}}
.game-mode-shell:target .start-overlay{inset:4px}
