.game-shell{display:grid;grid-template-columns:minmax(240px,22vw) minmax(420px,1fr) minmax(280px,24vw);min-height:calc(100vh - 60px)}.story-rail,.control-deck{padding:32px 28px}.story-rail{border-right:1px solid var(--line)}.story-rail h1{font-size:clamp(34px,4vw,66px);line-height:.94;letter-spacing:-.065em;margin:18px 0}.lead{color:var(--muted);line-height:1.7}.chapter-card{margin-top:42px;padding-top:18px;border-top:1px solid var(--line)}.chapter-index{font:500 11px 'IBM Plex Mono';color:var(--amber)}.chapter-card h2{font-size:22px;margin:12px 0 8px}.chapter-card p{color:var(--muted);line-height:1.6}.mission-list{display:grid;gap:10px;margin-top:28px}.mission{display:flex;gap:10px;font:500 12px 'IBM Plex Mono';color:var(--muted)}.mission.done{color:var(--cyan)}.signal-stage{position:relative;min-width:0;background:#041015}.stage-head{height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);font:500 11px 'IBM Plex Mono';letter-spacing:.08em}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan);margin-right:9px}.stage-meta{display:flex;gap:18px;color:var(--muted)}.pixi-mount{height:calc(100vh - 225px);min-height:450px}.pixi-mount canvas{width:100%!important;height:100%!important;display:block}.signal-readout{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.signal-readout div{padding:16px;border-right:1px solid var(--line)}.signal-readout div:last-child{border-right:0}.signal-readout small{display:block;color:var(--muted);font:500 10px 'IBM Plex Mono';letter-spacing:.08em}.signal-readout strong{display:block;margin-top:5px;font:600 18px 'IBM Plex Mono'}.control-deck{border-left:1px solid var(--line);background:rgba(9,22,28,.65)}.deck-label{font:600 11px 'IBM Plex Mono';letter-spacing:.14em;color:var(--amber)}.pattern-screen{margin:20px 0;padding:18px;border:1px solid var(--line);background:#071219}.pattern-screen>span{font:500 10px 'IBM Plex Mono';color:var(--muted)}.pattern-dots{display:flex;gap:8px;min-height:16px;margin:15px 0}.pattern-dots i{width:10px;height:10px;border-radius:50%;background:#1b3039}.pattern-dots i.on{background:var(--cyan);box-shadow:0 0 13px var(--cyan)}.pattern-screen p{min-height:42px;margin:0;color:var(--paper);font-size:13px;line-height:1.5}.frequency-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.freq{min-height:105px;text-align:left;padding:16px;border:1px solid var(--line);background:#0a171d;color:var(--ink);cursor:pointer;transition:.18s}.freq:hover,.freq.active{transform:translateY(-2px);border-color:currentColor;box-shadow:0 10px 35px rgba(0,0,0,.25)}.freq span{font:500 10px 'IBM Plex Mono';opacity:.6}.freq b{display:block;margin-top:28px;font:600 13px 'IBM Plex Mono';letter-spacing:.1em}.freq-a{color:var(--cyan)}.freq-b{color:var(--amber)}.freq-c{color:var(--violet)}.freq-d{color:var(--red)}.primary-action{width:100%;display:flex;justify-content:space-between;margin-top:14px;padding:16px 18px;border:0;background:var(--cyan);color:#06100f;font-weight:800;cursor:pointer}.text-action{width:100%;padding:12px;border:0;background:transparent;color:var(--muted);font:500 11px 'IBM Plex Mono';cursor:pointer}.resource-strip{display:grid;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);font:500 10px 'IBM Plex Mono';color:var(--muted)}.resource-strip>div{display:flex;align-items:center;justify-content:space-between}.meter{width:55%;height:5px;background:#1a2c34}.meter i{display:block;height:100%;width:100%;background:var(--cyan)}.lower-drawer{border-top:1px solid var(--line);padding:0 24px 24px}.drawer-tab{padding:16px 18px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:600 11px 'IBM Plex Mono';cursor:pointer}.drawer-tab.active{color:var(--cyan);border-color:var(--cyan)}.drawer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding-top:16px}.log-card{padding:16px;border:1px solid var(--line);background:rgba(11,24,32,.62)}.log-card small{font:500 10px 'IBM Plex Mono';color:var(--cyan)}.log-card h3{font-size:16px;margin:9px 0}.log-card p{font-size:13px;color:var(--muted);margin:0}.story-modal{background:#0b1820;color:var(--ink);border:1px solid var(--cyan)}
