.airspace-builder-shell{max-width:1080px;padding-top:18px}.airspace-builder-hero{border-top:5px solid #246c91;background:linear-gradient(135deg,#fff,#edf7fc)}
.airspace-level-card{padding:18px 24px}.airspace-level-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.airspace-level-intro h2,.airspace-level-intro p{margin:0}.airspace-level-intro p{max-width:400px;color:var(--muted);font-size:.9rem}.airspace-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.airspace-level-button{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;align-items:center;min-height:60px;padding:9px 12px;border:1px solid #c5d6e1;border-radius:10px;background:#f8fbfd;text-align:left;color:#253d50}.airspace-level-button[aria-pressed=true]{background:#e5f4fb;border-color:#236a92;box-shadow:0 0 0 2px #236a9220}.airspace-level-button:disabled{opacity:.5;cursor:not-allowed}.airspace-level-number{grid-row:span 2;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;background:#d9eaf4;font-weight:850}.airspace-level-name{font-size:.86rem;font-weight:750}.airspace-level-state{font-size:.65rem;text-transform:uppercase;color:#38684f}
.airspace-game-card{padding:24px;overflow:hidden}.airspace-game-header{display:flex;justify-content:space-between;gap:20px;margin-bottom:15px}.airspace-game-header h2{margin:0}.airspace-game-header p{margin:6px 0 0;color:var(--muted);max-width:600px}.airspace-game-stats{display:flex;gap:8px;align-items:start}.airspace-game-stats span{min-width:65px;padding:7px 10px;border:1px solid #d8e2e9;border-radius:9px;display:flex;flex-direction:column;align-items:center;background:#f8fbfd}.airspace-game-stats small{text-transform:uppercase;letter-spacing:.07em;font-size:.6rem;color:#536b7a}.airspace-game-stats strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1rem}
.airspace-puzzle-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:12px 0}.airspace-puzzle-toolbar>div{display:flex;gap:8px;flex:0 0 auto}.airspace-puzzle-toolbar button{font-size:.8rem;padding:9px 12px}.airspace-instruction{margin:0;color:#42576b;font-size:.9rem}.airspace-stage{position:relative;width:100%;aspect-ratio:1000/960;border:1px solid #b3c6d3;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fff,#eff4f7)}.airspace-stage.is-assembled{aspect-ratio:1000/700}.airspace-stage>svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.airspace-stage>svg:focus-visible{outline:3px solid #b78022;outline-offset:-4px}
.airspace-piece-shape{stroke:#29495e;stroke-width:2;stroke-linejoin:round}.airspace-piece-text{font-family:system-ui,sans-serif;font-weight:850;fill:#173044;text-anchor:middle;pointer-events:none}.airspace-tag{stroke-width:2}.airspace-tag-text{font:800 17px system-ui,sans-serif;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.airspace-code-key rect{fill:#245987;stroke:#19466d;stroke-width:1.5}.airspace-code-key text{font-family:system-ui,sans-serif;fill:white;text-anchor:middle;pointer-events:none}.airspace-code-key{pointer-events:none}
[data-loose-layer]>g{cursor:grab;touch-action:none;filter:drop-shadow(0 5px 3px #203f552a)}[data-loose-layer]>g:focus{outline:none}[data-loose-layer]>g:focus-visible .airspace-piece-shape,[data-loose-layer]>g:focus-visible .airspace-tag,[data-loose-layer]>g[aria-pressed=true] .airspace-piece-shape,[data-loose-layer]>g[aria-pressed=true] .airspace-tag{stroke:#096ccc;stroke-width:5}[data-loose-layer]>g.is-dragging{cursor:grabbing;filter:drop-shadow(0 12px 7px #203f5540)}[data-loose-layer]>g.is-dragging .airspace-piece-shape{stroke:#096ccc;stroke-width:4}[data-placed-layer]{pointer-events:none}
[data-target-layer]{pointer-events:none;opacity:.23}.airspace-game-card[data-target-mode=picture] [data-target-layer]{opacity:.26}.airspace-game-card[data-target-mode=outlines] [data-target-layer] path,.airspace-game-card[data-target-mode=outlines] [data-target-layer] rect,.airspace-game-card[data-target-mode=border] [data-target-layer] path{fill:none;stroke:#5a798c;stroke-width:2;stroke-dasharray:8 6}.airspace-game-card[data-target-mode=outlines] [data-target-layer],.airspace-game-card[data-target-mode=border] [data-target-layer]{opacity:.65}.airspace-keyboard-note{margin:10px 0}.airspace-status{min-height:24px;font-weight:650;color:#36596d;margin:12px 0}
.airspace-tip-panel{border:1px solid #d3e1ea;border-radius:10px;background:#f7fbfe;padding:12px 16px;margin:14px 0}.airspace-tip-panel summary{font-weight:700;cursor:pointer}.airspace-tip-panel h3{margin:16px 0 6px}.airspace-tip-panel p{margin:6px 0}.airspace-tip-panel button{display:block;margin-top:12px;font-size:.8rem;padding:8px 12px}
.airspace-picture-dialog{border:1px solid #afc5d4;border-radius:15px;padding:20px;width:min(900px,94vw);max-height:94dvh;color:#243a4b;background:white}.airspace-picture-dialog::backdrop{background:#142b43aa}.airspace-picture-dialog header{display:flex;justify-content:space-between;align-items:center;gap:16px}.airspace-picture-dialog h2{font-size:1.15rem;margin:0}.airspace-picture-dialog button{flex:0 0 auto;padding:9px 12px}.airspace-picture-dialog svg{display:block;width:100%;max-height:70dvh}.airspace-picture-dialog>p{font-size:.9rem;color:#526879;margin:0}
.airspace-level-complete{display:grid;grid-template-columns:1fr auto;gap:15px;padding:20px;margin:18px -24px -24px;background:#eff9f3;border-top:1px solid #afd4be}.airspace-level-complete[hidden]{display:none}.airspace-level-complete h3,.airspace-level-complete p{margin:0}.airspace-level-complete p{margin-top:6px}.airspace-complete-score{display:flex;flex-direction:column;align-items:center}.airspace-complete-score small{font-size:.7rem;text-transform:uppercase}.airspace-complete-score strong{font-size:2rem;color:#216749}.airspace-complete-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.airspace-reference-card{display:grid;grid-template-columns:1fr minmax(220px,.6fr);gap:20px;align-items:center}.airspace-reference-card h2{margin-top:0}.airspace-reference-actions{display:flex;gap:8px;flex-wrap:wrap}.airspace-source-preview{display:block;max-height:240px;overflow:hidden;border:1px solid #bdcdd8;border-radius:10px}.airspace-source-preview img{width:100%;height:auto;display:block}
@media(max-width:720px){.airspace-game-header{flex-direction:column;gap:12px}.airspace-game-stats{align-self:start}.airspace-puzzle-toolbar{align-items:stretch;flex-direction:column}.airspace-puzzle-toolbar>div{justify-content:flex-start}.airspace-reference-card{grid-template-columns:1fr}.airspace-source-preview{max-width:500px}.airspace-level-intro>p{display:none}}
@media(max-width:480px){.airspace-builder-shell{padding-right:8px;padding-left:8px}.airspace-game-card{padding:12px}.airspace-level-card{padding:14px 12px}.airspace-levels{gap:5px}.airspace-level-button{display:flex;flex-direction:column;text-align:center;padding:8px 3px;gap:4px;min-height:77px}.airspace-level-name{font-size:.66rem}.airspace-level-state{font-size:.55rem}.airspace-level-intro h2{font-size:1.05rem}.airspace-stage{border-radius:8px}.airspace-game-header h2{font-size:1.35rem}.airspace-game-header p{font-size:.86rem}.airspace-keyboard-note{font-size:.72rem}.airspace-level-complete{margin:16px -12px -12px;padding:16px 12px}.airspace-picture-dialog{padding:12px}.airspace-picture-dialog header{gap:8px}.airspace-picture-dialog h2{font-size:1rem}.airspace-complete-actions{display:grid;grid-template-columns:1fr}}
/* Keep the whole physical board within one screen while a piece is being dragged. */
.airspace-stage{max-width:calc((100dvh - 150px)*1.04);margin-inline:auto;scroll-margin-top:82px}

/* Keep progression beside the finished picture and clear of the fixed header. */
.airspace-level-complete{margin:14px 0;border:1px solid #afd4be;border-radius:12px;scroll-margin:82px 0 16px}.airspace-game-card{scroll-margin-top:82px}.airspace-level-complete [data-next-level]{min-height:48px;font-weight:750}.airspace-level-complete [data-next-level][hidden]{display:none}.airspace-level-complete button:focus-visible{outline:3px solid #164d77;outline-offset:3px}@media(max-width:480px){.airspace-level-complete{margin:12px 0;padding:14px}.airspace-complete-actions{position:static}}
