.sg-session,.sg-game{gap:16px;display:grid}.sg-hud{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:12px;display:grid}.sg-role strong{font-family:var(--font-note);color:var(--amber);font-size:28px}.sg-role p{margin:4px 0 0}.sg-stats{gap:8px;display:grid}.sg-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;font-size:14px;display:flex}.sg-sparks span{filter:grayscale()opacity(.35);font-size:20px}.sg-sparks span.on{filter:none}.sg-strip{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sg-chip{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:4px 10px;font-size:13px}.sg-chip.now{border-color:var(--amber);color:var(--amber);font-weight:700}.sg-chip.done{border-color:var(--mint);color:var(--mint)}.sg-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.sg-main{gap:14px;min-width:0;display:grid}.sg-book{background:var(--parchment);color:var(--ink-line);border:2px solid var(--brass);box-shadow:var(--shadow);border-radius:14px;padding:18px 18px 22px}.sg-book p{margin:0 0 10px}.sg-book-title{letter-spacing:.1em;text-transform:uppercase;opacity:.7;font-size:12px}.sg-page{font-family:var(--font-note);margin:0 0 8px;font-size:24px}.sg-book .sg-page{color:var(--ink-line)}.sg-rows,.sg-rules{gap:10px;margin:0 0 10px;padding:0;list-style:none;display:grid}.sg-rules li{border-left:4px solid var(--brass);background:#0000000f;border-radius:4px;padding:8px 10px}.sg-row{border:1px dashed var(--brass);border-radius:8px;gap:6px;padding:8px;display:grid}.sg-row-label{font-weight:700}.sg-row-glyphs{flex-wrap:wrap;gap:6px;display:flex}.sg-tile{background:#ffffff59;border:1.5px solid;border-radius:8px;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.sg-rule{font-weight:700}.sg-mark{align-items:center;gap:6px;display:inline-flex}.sg-shape{background:var(--c);color:#111;border:1.5px solid #111;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:inline-flex}.sg-table{border-collapse:collapse;width:100%;max-width:360px;margin:0 0 10px}.sg-table th,.sg-table td{border:1px solid var(--brass);text-align:left;padding:6px 10px}.sg-digit{font-family:var(--font-mono);font-size:22px;font-weight:700}.sg-tape{align-items:center;gap:6px;min-height:20px;display:inline-flex}.sg-dot{background:currentColor;border-radius:50%;width:12px;height:12px}.sg-dash{background:currentColor;border-radius:6px;width:30px;height:12px}.sg-machine{background:linear-gradient(160deg, var(--metal-1), var(--metal-3));border:2px solid var(--metal-hi);box-shadow:var(--shadow);color:var(--text);border-radius:14px;padding:18px}.sg-machine p{margin:0 0 10px}.sg-lampline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sg-lamp,.sg-bulb{background:var(--c);color:#111;border:2px solid #111;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:inline-flex}.sg-lamp.blink{animation:.9s steps(2,jump-none) infinite sg-blink}.sg-bulb{background:var(--light-off);color:#0000}.sg-bulb.small{width:22px;height:22px}.sg-bulb.on{background:var(--light-on);box-shadow:0 0 18px var(--light-on)}.sg-rhythm .sg-bulb{width:84px;height:84px;margin:4px 0 8px;transition:none}.sg-rhythm .sg-bulb.on{background:var(--c);box-shadow:0 0 36px var(--c)}.sg-groups{flex-wrap:wrap;gap:16px;margin:0 0 8px;padding:0;list-style:none;display:flex}.sg-groups li{border:1px solid var(--metal-edge);border-radius:8px;gap:4px;padding:6px 10px;display:grid}.sg-glyphs{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.sg-glyph{border:2px solid var(--metal-hi);background:var(--metal-3);width:76px;height:76px;color:var(--text);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.sg-glyph:not(:disabled):hover{box-shadow:0 0 0 4px var(--mint-glow)}.sg-glyph:focus-visible,.sg-wire:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sg-glyph.done{opacity:.45;border-color:var(--mint);color:var(--mint);cursor:default}.sg-wires{justify-content:center;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.sg-wire{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;width:52px;height:170px;padding:0;display:flex;position:relative}.sg-cap{background:var(--c);color:#111;border:2px solid #111;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:inline-flex}.sg-cable{background:var(--c);border:2px solid #111;border-top:0;border-radius:0 0 6px 6px;flex:1;width:12px}.sg-wire:not(:disabled):hover .sg-cable{box-shadow:0 0 0 4px var(--mint-glow)}.sg-no{color:var(--text-muted);margin-top:4px;font-size:13px}.sg-code{gap:8px;margin:8px 0;display:flex}.sg-code-cell{width:44px;height:56px;font-family:var(--font-mono);border:2px solid var(--metal-hi);background:var(--metal-3);border-radius:8px;justify-content:center;align-items:center;font-size:28px;display:inline-flex}.sg-keypad{grid-template-columns:repeat(5,minmax(48px,1fr));gap:8px;max-width:360px;margin-bottom:10px;display:grid}.sg-keypad .button{min-height:48px;padding:0}.sg-hints{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px 14px}.sg-hints-title{margin:0 12px 0 0;font-size:16px}.sg-hint-list{gap:6px;margin:8px 0 0;padding-left:20px;display:grid}.sg-hint-glyphs{vertical-align:middle;color:var(--amber);flex-wrap:wrap;gap:4px;display:inline-flex}.sg-hint-glyphs .sg-tile{background:0 0;width:36px;height:36px}@keyframes sg-blink{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.sg-lamp.blink{outline-offset:3px;outline:3px dashed #111;animation:none}}@media (max-width:860px){.sg-hud,.sg-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:480px){.sg-book,.sg-machine{padding:14px}.sg-wire{width:46px}.sg-glyph{width:68px;height:68px}}.sg-bend{border:1px dashed var(--brass);background:#00000014;border-radius:8px;margin:0 0 12px;padding:8px 10px;font-weight:600}.sg-torn{gap:8px;display:grid}.sg-tag input{text-align:center;width:9em;min-height:40px;font-size:18px}.sg-tornline{opacity:.6;border:1px dashed;border-radius:4px;padding:2px 8px;font-style:italic}.sg-row-glyphs.mirror{justify-content:flex-end;transform:scaleX(-1)}.sg-mazemap{color:var(--ink-line);margin:0}.sg-dialtable{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0 0 10px;padding:0;list-style:none;display:grid}.sg-dialtable li{border:1px dashed var(--brass);border-radius:8px;align-items:center;gap:8px;padding:4px 6px;display:flex}.sg-plate{border:1px dashed var(--amber);color:var(--amber);border-radius:8px;padding:8px 10px}.sg-lantern{background:#05070d;border-radius:10px;grid-template-rows:repeat(3,76px);grid-template-columns:repeat(3,76px);gap:0;width:max-content;margin:10px auto;padding:6px;display:grid}.sg-lcell{color:#ffe9a8;background:radial-gradient(circle,#3b3320 0%,#1a1608 90%);border:1px solid #3a4560;justify-content:center;align-items:center;display:flex;position:relative}.sg-lcell.void{background:#05070d;border-color:#05070d}.sg-lcell.me{background:radial-gradient(circle,#6b5a2b 0%,#2c2410 90%)}.sg-lcell.exit{box-shadow:inset 0 0 18px #8be3c9}.sg-lcell border{border-color:var(--metal-hi)}.sg-me,.sg-door{opacity:.9;font-size:11px;position:absolute;bottom:2px}.sg-door{color:var(--mint);top:2px;bottom:auto}.sg-arrows{grid-template-columns:repeat(3,56px);grid-template-areas:".u.""l d r";justify-content:center;gap:6px;margin:8px 0;display:grid}.sg-arrow{min-height:52px;padding:0;font-size:24px}.sg-arrow.u{grid-area:u}.sg-arrow.l{grid-area:l}.sg-arrow.d{grid-area:d}.sg-arrow.r{grid-area:r}.sg-flash{border:2px dashed var(--metal-edge);min-height:120px;color:var(--amber);border-radius:12px;justify-content:center;align-items:center;margin:8px 0;display:flex}.sg-dial{aspect-ratio:1;border:3px solid var(--metal-hi);background:var(--metal-3);border-radius:50%;width:min(100%,300px);margin:12px auto;padding:0;list-style:none;position:relative}.sg-dial li{position:absolute;transform:translate(-50%,-50%)}.sg-dialpos{border:2px solid var(--metal-hi);background:var(--metal-2);width:48px;height:48px;color:var(--text);cursor:pointer;border-radius:50%;font-size:18px;font-weight:700}.sg-dialpos:not(:disabled):hover{box-shadow:0 0 0 4px var(--mint-glow)}.sg-dialpos:focus-visible,.sg-bigbtn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sg-hold{justify-items:center;gap:10px;margin:10px 0;display:grid}.sg-bigbtn{color:#fff;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ff8a7a,#b5413a);border:4px solid #111;border-radius:50%;width:180px;height:180px;font-size:22px;font-weight:800;box-shadow:0 8px #6d2520}.sg-bigbtn.down{background:radial-gradient(circle at 35% 30%,#8be3c9,#1f6b57);font-size:16px;transform:translateY(6px);box-shadow:0 2px #6d2520}@media (max-width:480px){.sg-lantern{grid-template-rows:repeat(3,64px);grid-template-columns:repeat(3,64px)}}.vd{z-index:40;gap:8px;max-width:calc(100vw - 32px);display:grid;position:fixed;bottom:16px;left:16px}.vd-panel{width:min(340px,100vw - 32px);box-shadow:var(--shadow);gap:10px;display:grid}.vd-title{margin:0;font-size:18px}.vd-safety{border-left:4px solid var(--amber);background:var(--surface-2);border-radius:6px;margin:0;padding:6px 10px;font-weight:600}.vd-toggle{justify-self:start;min-height:44px}.vd-toggle.live{border-color:var(--mint)}.vd-dot{background:var(--mint);border-radius:50%;width:10px;height:10px;margin-left:8px;display:inline-block}.vd-toggle.talk .vd-dot{animation:1s ease-in-out infinite vd-pulse}.vd-ptt{border:3px solid var(--metal-hi);background:var(--metal-3);width:100%;min-height:84px;color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px;place-items:center;gap:2px;font-size:18px;font-weight:700;display:grid}.vd-ptt.on{background:var(--mint);color:var(--ink);border-color:var(--mint)}.vd-ptt.busy{border-color:var(--danger)}.vd-ptt:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.vd-key{opacity:.8;font-size:12px;font-weight:400}.vd-status{min-height:1.4em;margin:0}.vd-peers{gap:6px;margin:0;padding:0;list-style:none;display:grid}.vd-peers li{justify-content:space-between;align-items:center;gap:8px;display:flex}.vd-peers li[data-status=failed]{color:var(--danger)}@keyframes vd-pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.vd-toggle.talk .vd-dot{animation:none}}
