:root{color-scheme:dark;--bg:#0b1016;--panel:#151e29;--line:#354150;--ink:#edf2f6;--muted:#aebac8;--yellow:#ffd000;--pink:#ff54b6}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:16px/1.5 Arial,sans-serif;background:var(--bg);color:var(--ink)}button,a{touch-action:manipulation}button{font:700 14px Arial;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:11px 17px;color:var(--ink);background:#202d3b}button:hover{border-color:var(--yellow)}button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}button.primary{color:#111;background:var(--yellow);border-color:var(--yellow)}button[disabled]{opacity:.5;cursor:default}a{color:var(--yellow)}[hidden]{display:none!important}.top{padding:23px 5vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font:bold 23px 'Courier New',monospace;letter-spacing:2px;color:var(--yellow);text-decoration:none}.mode{font:700 12px Arial;letter-spacing:1.6px;text-transform:uppercase;border:1px solid var(--line);padding:8px 13px;border-radius:99px}.intro{max-width:1180px;margin:0 auto;padding:48px 28px 22px;display:flex;justify-content:space-between;gap:30px;align-items:center}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--yellow);font-weight:bold}h1{font-size:clamp(30px,4vw,48px);line-height:1.1;margin:12px 0 17px;letter-spacing:-1px}.intro p{color:var(--muted);max-width:620px;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.cards{max-width:1180px;padding:10px 28px 28px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.card{border:1px solid var(--line);background:linear-gradient(135deg,#192533,#101820);border-radius:14px;padding:22px;display:flex;flex-direction:column;min-height:230px;position:relative}.card:hover{border-color:#9d8734}.card .meta{display:flex;justify-content:space-between;gap:10px;align-items:center}.number{font:bold 30px 'Courier New';color:var(--yellow)}.tag{font:700 10px Arial;letter-spacing:1.2px;color:var(--muted)}.card h2{font-size:22px;line-height:1.2;margin:16px 0 9px}.card p{font-size:14px;color:var(--muted);margin:0 0 20px;flex:1}.card button{align-self:flex-start}.complete{color:#8ee5a4;font-size:12px}.note{max-width:1124px;margin:0 auto 24px;color:var(--muted);font-size:13px;padding:0 5px}.footer{border-top:1px solid var(--line);padding:18px 5vw;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer button{font-size:12px;padding:5px 10px}#session{position:fixed;inset:0;background:#000;z-index:10;display:flex;flex-direction:column}.sessionbar{height:46px;flex:0 0 46px;display:flex;align-items:center;gap:9px;padding:6px 12px;border-bottom:1px solid var(--line);background:#101822}.sessionbar strong{font:700 13px Arial;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sessionbar button{font-size:12px;padding:7px 11px}.sessionbar .mode{padding:3px 8px;font-size:10px}.frameholder{position:relative;flex:1;min-height:0}iframe{display:block;width:100%;height:100%;border:0;background:#000}.loading{position:absolute;inset:0;background:#0b1016;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;z-index:2;padding:25px}.loading h2{font-size:26px;margin:16px 0 8px}.loading p{color:var(--muted)}.pulse{width:35px;height:35px;border:3px solid #34414e;border-top-color:var(--yellow);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{max-width:520px;width:calc(100% - 36px);border:1px solid var(--yellow);border-radius:16px;background:#14202c;color:var(--ink);padding:30px;box-shadow:0 15px 80px #0008}dialog::backdrop{background:#000a}dialog h2{margin-top:0;font-size:27px}dialog p{color:var(--muted)}dialog .actions{justify-content:flex-end}.doneIcon{font-size:40px;color:var(--yellow)}@media(max-width:850px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding-top:28px}.sessionbar .mode{display:none}}@media(max-width:520px){.cards{grid-template-columns:1fr}.top{padding:16px 22px}.brand{font-size:18px}.intro{padding:26px 22px}.footer{padding:18px 22px}.sessionbar strong{font-size:11px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Original Signal Pro / Backstage Pass palette and square panel treatment.
   Scoped to launcher menus; level documents and in-game toolbar stay intact. */
body:has(#menu),body.welcome{background:#f9c400}
#menu{min-height:100vh;background:#f9c400;color:#111}
#menu .top{border-bottom:3px solid #111;background:#f9c400;padding:18px 5vw}
#menu .brand{font:900 26px Arial,Helvetica,sans-serif;color:#111;letter-spacing:1px}
#menu .mode{background:#111;color:#ffd000;border:0;border-radius:0;font-weight:900}
body[data-mode=tutorial] #menu .mode{background:#f12cac;color:#fff}
#menu .eyebrow,#menu .intro p,#menu .note,#menu .footer{color:#111}
#menu h1{font-size:clamp(28px,3.4vw,42px);font-weight:900;letter-spacing:0}
#menu .intro{padding-top:28px;padding-bottom:20px}
#menu button{border-radius:0;border:2px solid #111;background:#111;color:#ffd000;font-weight:900}
#menu button.primary{background:#111;color:#ffd000;box-shadow:4px 4px #1114}
body[data-mode=tutorial] #menu button.primary{background:#f12cac;color:#fff}
#menu .cards{gap:20px}
#menu .card{border:3px solid #ffd000;background:#111;border-radius:0;box-shadow:7px 7px #000;color:#fff;min-height:210px;padding:20px}
#menu .card h2{color:#ffd000;font-weight:900}
#menu .card p,#menu .tag{color:#ddd}
#menu .card button{background:#ffd000;color:#111;border:0}
body[data-mode=tutorial] #menu .card button{background:#f12cac;color:#fff}
#menu .footer{border-top:3px solid #111}
#menu .footer a{color:#111;font-weight:900}
#menu button:hover,.mode-button:hover{filter:brightness(1.12);outline:2px solid #111;outline-offset:3px}
#menu :is(button,a):focus-visible{outline:3px solid #f12cac;outline-offset:4px}
#menu .card button:focus-visible{outline-color:#fff}
body.welcome{min-height:100vh;display:grid;place-items:center;padding:30px;font-family:Arial,Helvetica,sans-serif}
.backstage{width:min(470px,90vw);background:#111;color:#fff;border:5px solid #ffd000;padding:28px;box-shadow:12px 12px #000}
.backstage h1{color:#ffd000;font-size:36px;font-weight:900;letter-spacing:0;margin:0 0 12px}
.backstage .pass{font-size:20px;margin:0 0 26px}
.backstage p{font-size:15px;line-height:1.5}
.backstage .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.mode-button{display:flex;justify-content:center;align-items:center;padding:14px 12px;font-size:14px;font-weight:900;text-decoration:none;text-align:center}
.mode-button.yellow{background:#ffd000;color:#111}
.mode-button.pink{background:#f12cac;color:#fff}
.backstage .welcome-note{color:#ddd;margin-top:24px}
.backstage .build-note{color:#aaa;font-size:12px;margin-bottom:0}
@media(max-width:520px){.backstage{padding:22px}.backstage h1{font-size:30px}.backstage .actions{grid-template-columns:1fr}#menu .cards{padding-left:20px;padding-right:26px}}
/* Menu labels follow the game's left-aligned inventory treatment. */
#menu button,.mode-button{text-align:left;justify-content:flex-start}
