/* Expanded exploration and workshops; all selectors are scoped to game-specific classes. */
.signal-work-title{font-size:18px;font-weight:700;color:#e6d0ac}
.signal-chapter{border-top:1px solid #ffffff20;padding-top:18px;margin-top:20px}
.signal-chapter h3{font-size:19px;line-height:1.4;color:#ead0a8}
.signal-work-card{padding:15px;border-left:2px solid #77798d;background:#202e39;margin:12px 0}
.signal-work-card strong{display:block;color:#ebdfcd}.signal-work-card p{font-size:14px;color:#bfcaca;margin:8px 0 12px}
.signal-work-card button{margin:3px 0}.signal-wire-grid{display:grid;gap:8px;width:min(100%,440px);margin:20px auto}
.signal-wire{font:600 48px/1.3 ui-monospace,monospace;min-height:70px;padding:5px;color:#9caebb;background:#18212b;border:2px solid #526171;border-radius:9px}
.signal-wire.powered{color:#ffe2a6;border-color:#d4ad6d;background:#3d3b32}.signal-wire:disabled{opacity:.45}
.signal-order{padding-left:28px;max-width:600px}.signal-order li{padding:10px 12px;margin:8px 0;border:1px solid #526171;border-radius:6px;background:#202e39;color:#e4d8c3;min-height:46px}
.signal-support,.signal-match{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 0;border-bottom:1px solid #ffffff20}
.signal-support strong{flex:1;min-width:130px}.signal-match strong{width:100%;font-size:15px}.signal-match button{min-width:94px}
.signal-match button[aria-pressed=true]{border-color:#e1c68e;background:#45473b;color:#f7e6bd}
.signal-handoff{padding:16px;border:1px solid #879582;border-radius:8px;background:#202f30;margin-bottom:18px}
.signal-handoff p{font:13px/1.8 ui-monospace,monospace;overflow-wrap:anywhere;margin:8px 0}
@media(max-width:480px){.signal-wire{font-size:36px;min-height:60px}.signal-wire-grid{gap:5px}.signal-support button{font-size:13px;padding:10px}.signal-support strong{width:100%;flex-basis:100%}.signal-work-card{padding:12px}.signal-handoff{padding:12px}.signal-handoff p{font-size:12px}.signal-match button{flex:1;min-width:70px;font-size:13px;padding:10px}}
@media(prefers-reduced-motion:reduce){.signal-wire{transition:none}}
/* The receiver belongs to the game viewport. The surrounding page never carries story text. */
body[data-game=the-last-signal]{height:100dvh;overflow:hidden;background:#15111e}
body[data-game=the-last-signal] .play-header{height:56px;padding:6px 14px;gap:10px;background:#161421;border:0}
body[data-game=the-last-signal] .play-header .studio{font-size:12px}
body[data-game=the-last-signal] .play-header button{font-size:12px;min-height:40px;padding:7px 10px}
body[data-game=the-last-signal] .play-main{max-width:none;padding:0;margin:0}
body[data-game=the-last-signal] .title-row,body[data-game=the-last-signal] .status-row,body[data-game=the-last-signal] .play-footer,body[data-game=the-last-signal] #message{display:none}
body[data-game=the-last-signal] .game-wrap{height:calc(100dvh - 56px);border:0;border-radius:0;box-shadow:none;background:#211b2b}
body[data-game=the-last-signal] canvas{width:100%;height:100%;object-fit:contain;aspect-ratio:auto}
body[data-game=the-last-signal] #controls{position:absolute;inset:0;pointer-events:none;display:block}
.signal-interface{height:100%;position:relative;padding:16px;color:#f2e7d8;pointer-events:none}
.signal-interface button,.signal-interface input,.signal-interface summary{pointer-events:auto}
.signal-interface button{background:#292735ed;border-color:#c6a37c66;border-radius:5px;box-shadow:0 2px 8px #0003}
.signal-interface button:hover{background:#49404f}
.signal-objective{position:absolute;top:16px;left:18px;max-width:min(52%,620px);margin:0;padding:8px 12px;background:#1b1724d9;border-left:2px solid #dab98b;font-size:12px;line-height:1.4;max-height:70px;overflow:auto;pointer-events:auto}
.signal-toolbar{position:absolute;top:16px;right:18px;max-width:44%;gap:5px;justify-content:flex-end}
.signal-toolbar button{font-size:12px;padding:7px 10px;min-height:40px}
.signal-setting{font-size:11px;min-height:28px;background:#1b1724db;padding:2px 7px;border-radius:4px;pointer-events:auto}
.signal-setting input{width:16px;height:16px}
.signal-panel{position:absolute;right:18px;bottom:18px;width:min(390px,44%);max-height:calc(100% - 122px);overflow:auto;overscroll-behavior:contain;pointer-events:auto;padding:18px 20px;line-height:1.55;background:linear-gradient(145deg,#211b2bf7,#171822f7);border:1px solid #ba9b765c;border-radius:6px;box-shadow:0 12px 48px #0007;scrollbar-width:thin;scrollbar-color:#a68b72 #211b2b}
.signal-panel h2{font-size:21px;margin:0 0 12px}.signal-panel h2:empty{display:none}
.signal-panel p{font-size:14px;margin-bottom:12px}.signal-panel .signal-kicker{font-size:10px;letter-spacing:2px;color:#d9b78e}
.signal-panel .signal-dialogue{font-size:19px;line-height:1.65;color:#fff1dc}
.signal-panel .signal-caption{font-size:12px;line-height:1.5}
.signal-panel>button{min-height:44px;font-size:14px;padding:9px 12px;margin:4px 6px 4px 0}
.signal-movement{position:absolute;bottom:18px;left:18px;display:flex;flex-direction:column;gap:8px;margin:0}
.signal-movement .dpad{grid-template-columns:repeat(3,44px);gap:4px}
.signal-movement .dpad button{background:#211b2bc9;min-height:40px}
.signal-movement>.control-group button{font-size:12px;background:#211b2be6}
.signal-notice{position:absolute;left:50%;top:96px;transform:translateX(-50%);width:max-content;max-width:70%;padding:8px 14px;font-size:13px;background:#211b2bef;border:1px solid #bba17e66;border-radius:5px;pointer-events:none}
.signal-interface[data-view=dialogue] .signal-panel,.signal-interface[data-view=ending] .signal-panel{left:50%;right:auto;bottom:24px;transform:translateX(-50%);width:min(720px,calc(100% - 48px));padding:20px 28px;border-left:3px solid #d1af82;background:linear-gradient(110deg,#1b1628f7,#191a26ed);box-shadow:0 0 80px #0005}
.signal-interface[data-view=dialogue] .signal-toolbar,.signal-interface[data-view=dialogue] .signal-objective,.signal-interface[data-view=dialogue] .signal-notice{display:none}
.signal-interface[data-view=window] .signal-movement{display:none}
@media(min-width:1000px){.signal-interface[data-view=window] .signal-panel{width:470px;max-width:50%}}
@media(max-width:600px){
 body[data-game=the-last-signal] .play-header{height:48px;padding:4px 8px;gap:5px}
 body[data-game=the-last-signal] .play-header .studio{display:none}
 body[data-game=the-last-signal] .play-header .back{margin-right:auto;font-size:11px}
 body[data-game=the-last-signal] .play-header button{font-size:10px;padding:5px 7px;min-height:36px}
 body[data-game=the-last-signal] .game-wrap{height:calc(100dvh - 48px)}
 body[data-game=the-last-signal] canvas{height:auto;width:100%;position:absolute;top:92px;aspect-ratio:4/3;object-fit:fill}
 .signal-interface{padding:8px}.signal-objective{top:8px;left:8px;right:8px;max-width:none;font-size:11px;max-height:38px;padding:5px 8px}
 .signal-toolbar{top:50px;left:8px;right:8px;max-width:none;justify-content:space-between;flex-wrap:nowrap;gap:4px}
 .signal-toolbar button{font-size:11px;padding:5px 7px;flex:none;min-height:36px}
 .signal-setting{width:auto;margin:0;font-size:0;padding:4px;min-height:32px}.signal-setting input{width:18px;height:18px}
 .signal-setting span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .signal-panel{bottom:8px;right:8px;left:8px;width:auto;max-height:calc(100% - 100px - 75vw);padding:14px 16px;min-height:100px}
 .signal-panel p{font-size:14px}.signal-panel .signal-dialogue{font-size:18px;line-height:1.6}
 .signal-panel h2{font-size:19px}.signal-panel>button{display:inline-block;width:auto;font-size:14px;margin:4px 6px 4px 0}
 .signal-movement{left:8px;bottom:calc(100% - 100px - 75vw);transform:translateY(-6px);flex-direction:row;align-items:flex-end;gap:8px}
 .signal-movement .dpad{grid-template-columns:repeat(3,36px);gap:2px}.signal-movement .dpad button{min-height:32px;padding:2px}
 .signal-notice{top:92px;font-size:12px;max-width:92%;padding:6px 10px}
 .signal-interface[data-view=dialogue] .signal-panel,.signal-interface[data-view=ending] .signal-panel{left:8px;right:8px;bottom:8px;transform:none;width:auto;max-height:65%;padding:18px 20px}
 .signal-interface[data-view=dialogue]~canvas{top:0}
 .signal-interface[data-view=window] .signal-panel{max-height:calc(100% - 100px);background:#211b2bfa}
}
@media(max-height:540px) and (min-width:601px){.signal-objective{font-size:10px;max-height:42px}.signal-toolbar{top:8px}.signal-panel{bottom:8px;max-height:calc(100% - 74px)}.signal-interface[data-view=dialogue] .signal-panel{bottom:8px;max-height:85%}.signal-panel .signal-dialogue{font-size:17px}.signal-panel>button{padding:6px 10px;min-height:40px}}
@media(min-width:601px){body[data-game=the-last-signal] canvas{position:absolute;width:min(100%,calc((100dvh - 56px) * 4 / 3));height:auto;aspect-ratio:4/3;left:50%;top:50%;transform:translate(-50%,-50%)}}
@media(max-width:600px){.signal-movement{bottom:12px;transform:none;flex-direction:column}.signal-interface[data-view=exploration] .signal-panel{left:134px}.signal-interface[data-view=exploration] .signal-panel .signal-caption{font-size:11px}}
@media(min-width:601px){body[data-game=the-last-signal] .game-wrap[data-signal-view=world] canvas{width:min(calc(100% - 420px),calc((100dvh - 250px) * 4 / 3));left:calc((100% - 420px)/2);top:calc((100% - 140px)/2)}.signal-interface[data-view=exploration] .signal-panel,.signal-interface[data-view=window] .signal-panel{width:390px;max-width:44%}}
@media(min-width:601px) and (max-width:999px){body[data-game=the-last-signal] .game-wrap[data-signal-view=world] canvas{width:60%;left:30%;top:46%}.signal-interface[data-view=exploration] .signal-panel,.signal-interface[data-view=window] .signal-panel{width:36%;max-width:none;right:10px}.signal-panel{padding:14px}}
.signal-interface[data-view=dialogue] .signal-toolbar{display:flex}.signal-interface[data-view=dialogue] .signal-toolbar button:not(.signal-journal),.signal-interface[data-view=dialogue] .signal-setting{display:none}
@media(max-width:600px){.signal-interface[data-view=dialogue] .signal-toolbar{top:8px;left:auto;right:8px}}
.signal-interface[data-view=dialogue] .signal-setting{display:flex}
@media(max-width:600px){body[data-game=the-last-signal] .game-wrap[data-signal-view=dialogue] canvas,body[data-game=the-last-signal] .game-wrap[data-signal-view=ending] canvas{top:20px}}
