:root{color:#e7eee8;font-synthesis:none;--muted:#adbbb5;--line:#30423f;--green:#98e6cb;--gold:#e1c194;--label-size:.75rem;--small-size:.875rem;background:#0b1318;font-family:Segoe UI,Arial,sans-serif;font-size:clamp(18px,.8vw,21px)}*{box-sizing:border-box}body{background:radial-gradient(at 70% 30%,#18302d44,#0000 60%),#0b1318;min-width:360px;margin:0}body:before{content:"";pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:fixed;inset:0}#app{position:relative}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;transition:background .18s,border-color .18s}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,p{margin:0}p{line-height:1.6}.muted{color:var(--muted)!important}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;height:90px;margin:0 4%;display:flex}.wordmark{letter-spacing:.18em;align-items:center;gap:16px;font-size:1.15rem;font-weight:700;display:flex}.brand-mark{color:var(--green);font-size:1.8rem;font-weight:400}.wordmark small{font-size:var(--label-size);color:var(--muted);letter-spacing:.1em;font-weight:400}.brand-rule{background:var(--line);width:1px;height:24px;margin:0 8px}.header-end{align-items:center;gap:30px;display:flex}.connection,.eyebrow,.label,.tag,.pill-row,footer,.panel-title,.result-stats{font-size:var(--label-size);letter-spacing:.09em;font-weight:550;line-height:1.5}.connection{color:var(--muted)}.connection:before,.blinking-dot{content:"";background:#91a79e;border-radius:50%;width:7px;height:7px;margin-right:9px;display:inline-block}.connection.online:before,.blinking-dot{background:var(--green)}.quiet,.text-button{font-size:var(--small-size);color:#c0d1c6;background:0 0;min-height:44px;padding:10px 0}.quiet span{padding-left:7px}.quiet:hover,.text-button:hover{color:var(--green)}.eyebrow,.label{color:#b4c9bd}.label{display:block}.tiny-line{vertical-align:middle;background:var(--green);width:24px;height:1px;margin-right:12px;display:inline-block}.landing{grid-template-columns:1fr 1fr;align-items:center;gap:7%;max-width:1760px;margin:auto;padding:70px 4% 60px;display:grid}.intro h1{letter-spacing:-.055em;margin:26px 0;font-size:clamp(48px,4.6vw,88px);font-weight:500;line-height:1.06}.intro h1 em{color:#c4d8bc;font-family:Georgia,serif;font-weight:400}.lead{max-width:600px;color:var(--muted);font-size:1.05rem;line-height:1.7}.pill-row{letter-spacing:.035em;flex-wrap:wrap;gap:10px;margin:28px 0;display:flex}.pill-row span{border:1px solid var(--line);color:#c7d5cb;padding:7px 10px}.join-card{background:#101c20;border:1px solid #354944;border-radius:5px;max-width:530px;padding:24px}.join-card input{color:#e7efe8;background:#0a1519;border:1px solid #3d554c;border-radius:3px;width:100%;height:52px;margin:10px 0 16px;padding:0 14px;font-size:1rem}.primary,.secondary{border-radius:4px;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:12px 18px;font-size:.95rem;line-height:1.4;display:flex}.primary{color:#10271f;background:#a2e7cb;border:1px solid #a2e7cb;font-weight:650}.primary:hover:not(:disabled){background:#c1f3d9}.secondary{color:#e0eee4;background:#172a2c;border:1px solid #49665b}.secondary:hover:not(:disabled){background:#284139;border-color:#8bb49c}.primary:disabled,.secondary:disabled{color:#a1b6aa;background:#253b34;border-color:#3b5648}.join-card>.primary{width:100%}.or-divider{color:var(--muted);font-size:var(--label-size);letter-spacing:.04em;align-items:center;gap:12px;margin:22px 0 12px;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--line);flex:1;height:1px}.join-row{align-items:center;gap:12px;display:flex}.join-row input{letter-spacing:.08em;text-transform:uppercase;flex:1;min-width:0;margin:0}.join-row button{min-width:98px;height:52px}.form-note,.solo-note{color:var(--muted);font-size:var(--small-size);margin-top:16px;line-height:1.6}.solo-note span{color:var(--green);margin-right:8px}.expedition-preview{background:radial-gradient(#28493e35,#0000 70%);border:1px solid #365147;border-radius:5px;flex-direction:column;justify-content:center;align-self:stretch;min-height:650px;display:flex;position:relative;overflow:hidden}.preview-top{justify-content:space-between;gap:16px;display:flex;position:absolute;top:28px;left:28px;right:28px}.tag{color:#d4c8a4;border:1px solid #655c4160;padding:3px 8px}.relay-diagram{width:100%;max-height:460px;display:block}.preview-bottom{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:22px;padding:10px 30px 34px;display:flex}.preview-bottom h2{color:#d6e3ce;margin-top:12px;font:1.65rem Georgia,serif}.preview-bottom p{font-size:var(--small-size);color:var(--muted)}.preview-coordinates{display:none}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:20px;margin:0 4%;padding:24px 0;display:flex}.lobby{max-width:2050px;margin:auto;padding:40px 4% 48px}.lobby-heading{justify-content:space-between;align-items:center;gap:28px;margin-bottom:30px;display:flex}.lobby-heading h1{letter-spacing:-.035em;margin:7px 0;font-size:2.65rem;font-weight:500}.lobby-heading p{color:var(--muted);font-size:1rem}.room-badge{text-align:right;flex-shrink:0}.room-badge button{letter-spacing:.14em;color:var(--green);background:0 0;min-height:48px;padding:8px 0 8px 16px;font:1.7rem monospace}.room-badge button span{color:#a0c3ae;font-size:1.2rem}.room-badge small{color:var(--muted);font-size:var(--small-size);display:block}.lobby-grid{grid-template-columns:.95fr 1.35fr 1fr;align-items:stretch;gap:24px;display:grid}.panel{background:#101c20;border:1px solid #344943;border-radius:5px;min-width:0}.mission-card,.roles-panel,.crew-panel{padding:24px}.mission-card .relay-diagram{max-height:200px;margin:12px 0 20px}.mission-card h2{color:#dde9d2;margin-bottom:18px;font:1.65rem Georgia,serif}.mission-card p{color:#c0ccc3;margin-bottom:18px;font-size:1rem}.panel-title{color:#b1c6b9;justify-content:space-between;gap:12px;margin-bottom:20px;display:flex}.role-option{text-align:left;background:#101c20;border:1px solid #3d544b;border-radius:4px;align-items:center;gap:16px;width:100%;min-height:100px;margin-bottom:12px;padding:18px 16px;display:flex}.role-option.selected{background:color-mix(in srgb, var(--role) 12%, #101c20);border-color:var(--role)}.role-option:hover:not(:disabled){background:#243531}.role-option:disabled{color:#b7c0bb;border-style:dashed}.role-icon{color:var(--role);text-align:center;flex-shrink:0;width:36px;font-size:1.8rem}.role-option>span:nth-child(2){flex:1;min-width:0}.role-option strong{font-size:1.15rem;font-weight:600;display:block}.role-option small{color:#b6c6bb;margin-top:6px;font-size:.95rem;line-height:1.5;display:block}.role-state{font-size:var(--small-size);color:var(--role);overflow-wrap:anywhere;max-width:92px}.crew-slot{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:74px;padding:14px 0;display:flex}.crew-avatar{width:32px;color:var(--role);text-align:center;flex-shrink:0;font-size:1.6rem}.crew-slot>div{flex:1;min-width:0}.crew-slot strong{overflow-wrap:anywhere;font-size:1rem;font-weight:550;display:block}.crew-slot strong small{font-size:var(--label-size);color:#a6c6b1}.crew-slot>div>span{font-size:var(--small-size);color:#a7bfb1;margin-top:5px;display:block}.crew-slot.empty{font-size:var(--small-size);color:#9db3a7}.crew-number{text-align:center;color:#95ac9e;flex-shrink:0;width:32px}.crew-slot.empty>span:nth-child(2){flex:1}.crew-check{color:#a6c7b3;font-size:1rem}.crew-slot.downed strong,.crew-slot.downed>div>span{color:#f1a6b8}.launch-area{margin-top:24px}.launch-area>button{width:100%;margin-top:12px}.launch-area>p{color:#bfd0c1;font-size:.95rem}.play{padding:0 24px 20px}.in-game .masthead{height:64px;margin:0 24px}.in-game .wordmark{font-size:1rem}.in-game .brand-mark{font-size:1.6rem}.run-bar{justify-content:space-between;align-items:center;gap:18px;min-height:86px;padding:12px 0;display:flex}.run-bar>div:first-child{flex-direction:column;gap:5px;display:flex}.run-bar strong{font-size:1.05rem;font-weight:600}.run-center{color:#c3d5c8;align-items:center;gap:18px;font-size:.9rem;display:flex}.run-center>span:first-child{letter-spacing:.2em;color:#718d7c;font-size:1.6rem}.run-center .lit{color:var(--green)}.run-time{align-items:center;gap:20px;display:flex}.run-time>span{letter-spacing:.03em;color:#edf4e7;font:1.65rem monospace}.game-grid{grid-template-columns:minmax(0,1fr) clamp(250px,17vw,320px);gap:18px;height:calc(100dvh - 174px);min-height:540px;display:grid}.intel,.status{scrollbar-width:thin;scrollbar-color:#668b76 transparent;padding:22px;overflow:auto}.role-heading{align-items:center;gap:14px;margin:12px 0;display:flex}.role-heading>span{font-size:2rem}.role-heading h2{font-size:1.65rem;font-weight:500}.my-health{margin:18px 0 24px}.my-health>span{font-size:var(--small-size);color:#c2d4c6;line-height:1.5}.progress{background:#30453c;border-radius:3px;height:7px;margin-top:10px;overflow:hidden}.progress>div{background:var(--green);height:100%;transition:width .2s}.intel-idle{border:1px dashed #587565;margin-top:14px;padding:18px}.intel-idle>span{display:none}.intel-idle p,.private-reading p,.pulse-reading p,.warden-note p{color:#cad9cd;font-size:1rem;line-height:1.6}.private-reading{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.signal-glyph{color:#d1b6ff;text-shadow:0 0 30px #a582fc30;font-size:4.3rem;line-height:1.3}.private-reading>strong{letter-spacing:.12em;color:#d9c3ff;font-size:1.2rem}.private-reading p,.pulse-reading p{margin-top:16px}.runner-reading .signal-glyph,.runner-reading>strong{color:#a7d2ff}.intel-footer{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.intel-footer p{font-size:var(--small-size);color:#b8cabe;margin-top:10px;line-height:1.8}kbd{min-width:24px;height:27px;font:var(--small-size) monospace;color:#e3efdc;border:1px solid #6c8d76;border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;margin-right:4px;padding:1px 4px;display:inline-flex}.intel-footer .text-button{margin-top:8px}.warden-note{border-top:1px solid var(--line);padding-top:18px}.warden-note p{margin:12px 0 18px}.glyph-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0;display:grid}.glyph-buttons button{color:#f3cb8c;touch-action:none;background:#101b1f;border:1px solid #5d735e;border-radius:4px;flex:1;place-items:center;min-width:0;min-height:64px;padding:4px;display:grid}.glyph-buttons button.selected{background:#403621;border-color:#e0bc79;box-shadow:inset 0 0 0 2px #e0bc79}.glyph-buttons button:hover:not(:disabled){background:#2c3125;border-color:#e0bc79}.glyph-buttons button:disabled{opacity:.5}.glyph-icon{flex-shrink:0;width:46px;max-width:100%;height:46px;display:block}.signal-glyph .glyph-icon{width:104px;height:104px;margin:8px auto}.glyph-shortcuts{color:var(--muted);justify-content:center;align-items:center;gap:8px;display:flex}.glyph-shortcuts kbd{margin:0}.private-state{text-align:center;color:#94adab;padding:12px 0;font-size:3.3rem;line-height:1.2}.private-state.station-connected,.pulse-ready .private-state{color:var(--green)}.private-state.runner-reading{color:#a7d2ff}.private-state.station-jammed,.private-state.damage-reading{color:#f3bd72}.pulse-reading .private-state{padding:0}.private-state.locked{color:#f3bd72}.private-state.locked small{margin-top:10px;font:1.25rem monospace;display:block}.pulse-reading{border-top:1px solid var(--line);padding:18px 0}.pulse-track{background:#152824;border:1px solid #597c62;height:38px;margin:22px 0;position:relative}.pulse-window{background:#68dfc745;width:22.5%;height:100%;position:absolute;left:0}.pulse-track i{background:#dcffeb;width:3px;height:46px;position:absolute;top:-5px;box-shadow:0 0 9px #7befce}.pulse-reading>strong{color:#c4d4c6;font-size:.95rem}.pulse-reading>strong.pulse-ready{color:var(--green)}#arena-wrap{background:#0c161c;border:1px solid #405c53;border-radius:5px;min-width:0;position:relative;overflow:hidden}#arena{position:absolute;inset:0}#arena canvas{display:block}#arena-top-note{text-align:center;color:#d7ecdb;pointer-events:none;text-shadow:0 2px 4px #000;font-size:.9rem;line-height:1.5;position:absolute;top:16px;left:18px;right:18px}#arena-top-note.gate-open{color:#10271f;max-width:650px;text-shadow:none;background:#b4efcfef;border-radius:4px;margin:auto;padding:12px 18px;font-size:1.1rem;font-weight:650}.arena-caption{pointer-events:none;background:linear-gradient(#0000,#0a161ef5 30%);justify-content:space-between;gap:16px;padding:28px 18px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}#arena-feedback{color:#cbdfcf;max-width:70ch;font-size:.9rem;line-height:1.5}.signal-bars{color:#93c7af;flex-shrink:0;align-self:end;font-size:1rem}.status .crew-slot{min-height:76px}.status .crew-slot.empty{display:none}.health-line{background:#304a3c;border-radius:2px;height:5px;margin-top:8px;overflow:hidden}.health-line>i{height:100%;transition:width .2s;display:block}.stat-block{margin-top:26px}.stat-block>span:last-child{text-align:right;color:#c9dfcd;font-size:var(--small-size);margin-top:10px;display:block}#xp-label{color:#d4e5ca;margin-top:12px;font-size:.95rem}.status-bottom{display:none}.takeover{width:100%;margin-top:12px;font-size:.9rem}.upgrade-panel{z-index:8;background:#112421fb;border:1px solid #a2d6a2;border-radius:5px;width:min(1160px,100% - 24px);padding:18px;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 5px 50px #0009}.upgrade-panel>.label{color:#d6edbb;justify-content:space-between;gap:12px;display:flex}.upgrade-panel>.label small{font-size:var(--label-size);color:#bbd3c3}.upgrade-panel>div{gap:12px;margin-top:14px;display:flex}.upgrade-panel button{text-align:left;background:#1d3b30;border:1px solid #6c976f;border-radius:3px;flex:1;align-items:center;gap:12px;min-width:0;padding:15px;display:flex}.upgrade-panel button:hover{background:#315a3c}.upgrade-panel button>b{color:#c3edaa;font-size:1.6rem}.upgrade-panel button strong{font-size:.95rem;font-weight:600;display:block}.upgrade-panel button small{font-size:var(--small-size);color:#c1d9c5;margin-top:6px;line-height:1.4;display:block}.upgrade-panel button>span:last-child{color:#c5e6b9;margin-left:auto}.result-overlay{z-index:10;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#09151bf5;justify-content:center;align-items:center;padding:26px;display:flex;position:absolute;inset:0;overflow:auto}.result-overlay>div{max-width:600px;margin:auto}.result-symbol{color:#b2edd0;margin:20px 0;font-size:4.5rem}.result-overlay h2{color:#e3f0d7;font:2.4rem Georgia,serif}.result-overlay p{color:#c0d7c7;margin:20px 0;font-size:1rem}.result-stats{color:#bbd5c5;margin:24px 0}.result-stats span{padding:0 10px}.result-overlay button{margin:auto}#toast{z-index:100;color:#f0f6e9;background:#244237;border:1px solid #a2c8a5;border-radius:4px;width:max-content;max-width:min(700px,92vw);padding:16px 24px;font-size:1rem;line-height:1.6;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 35px #0008}dialog{color:#e3efdd;background:#111f24;border:1px solid #6d967c;border-radius:5px;width:calc(100% - 32px);max-width:850px;max-height:90dvh;padding:36px;box-shadow:0 10px 80px #000a}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#061014cc}dialog h2{margin:16px 0 24px;font:2rem Georgia,serif}dialog p{color:#c4d9c8;margin-bottom:18px;font-size:1rem;line-height:1.7}.close{color:#c1d7c5;background:0 0;width:44px;min-height:44px;font-size:1.8rem;position:absolute;top:10px;right:16px}.guide-roles{grid-template-columns:1fr 1fr;gap:20px;margin:24px 0;display:grid}.guide-roles>div{border-top:1px solid #486b50;padding-top:16px}.guide-roles b{font-size:1.15rem;font-weight:600}.guide-roles p{margin:10px 0 0}#touch-controls{display:none}@media (width<=1599px) and (width>=800px){.game-grid{grid-template-columns:minmax(0,1fr)}.status{display:none}}@media (width<=1200px) and (width>=800px){.lobby-grid{grid-template-columns:1.25fr 1fr}.mission-card{grid-column:1/-1;grid-template-columns:.8fr 1.2fr;column-gap:28px;display:grid}.mission-card .relay-diagram,.mission-card .muted{display:none}.mission-card .eyebrow,.mission-card h2,.mission-card .text-button{grid-column:1}.mission-card>p:not(.muted){grid-area:1/2/span 3;align-self:center;margin:0}.mission-card h2{margin:10px 0}.lobby{padding-left:24px;padding-right:24px}.landing{gap:4%;padding-top:40px}.brand-rule,.wordmark small{display:none}.game-grid{grid-template-columns:minmax(0,1fr)}.intel{padding:18px}.run-center{text-align:center;display:block}.run-center>span{display:block}.run-bar .eyebrow{display:none}}@media (width<=799px){:root{font-size:16px}.masthead{gap:12px;height:70px;margin:0 20px}.wordmark{letter-spacing:.12em;gap:10px;font-size:1rem}.brand-mark{font-size:1.5rem}.brand-rule,.wordmark small,.connection{display:none}.header-end{gap:0}.quiet,.text-button{font-size:.875rem}.landing{flex-direction:column;align-items:stretch;gap:36px;padding:32px 20px;display:flex}.intro h1{margin:24px 0;font-size:clamp(44px,11vw,64px)}.intro .eyebrow{letter-spacing:.025em;font-size:.75rem}.tiny-line{width:16px;margin-right:6px}.lead{font-size:1rem}.pill-row{gap:7px;margin:24px 0;font-size:.75rem}.pill-row span{padding:7px}.join-card{max-width:none;padding:20px}.expedition-preview{min-height:440px}.expedition-preview .relay-diagram{max-height:290px}.preview-top{top:20px;left:20px;right:20px}.preview-bottom{padding:0 20px 24px}.preview-bottom p{display:none}footer{flex-wrap:wrap;gap:12px;margin:0 20px;font-size:.75rem}.lobby{padding:28px 18px}.lobby-heading{margin-bottom:24px;display:block}.lobby-heading h1{font-size:2.5rem}.lobby-heading p{font-size:1rem}.room-badge{text-align:left;grid-template-columns:1fr auto;align-items:center;column-gap:10px;margin-top:22px;display:grid}.room-badge button{grid-area:1/2/span 2;padding-left:0;font-size:1.55rem}.room-badge small{grid-column:1;font-size:.8rem}.lobby-grid{flex-direction:column;gap:20px;display:flex}.mission-card,.roles-panel,.crew-panel{padding:20px}.mission-card .relay-diagram,.mission-card .muted{display:none}.mission-card h2{margin-top:14px;font-size:1.65rem}.mission-card p{font-size:1rem}.role-option{gap:12px;min-height:92px;padding:14px 12px}.role-icon{width:28px;font-size:1.65rem}.role-option strong{font-size:1.2rem}.role-option small{font-size:.95rem}.role-state{max-width:66px;font-size:.8rem}.crew-slot{min-height:68px}.in-game .masthead{height:52px;margin:0 12px}.in-game .wordmark{font-size:.9rem}.play{padding:0 8px 12px}.run-bar{grid-template-columns:1fr auto;gap:10px;min-height:72px;padding:8px 0;display:grid}.run-bar .eyebrow{display:none}.run-bar strong{font-size:.9rem}.run-center{grid-area:2/1/auto/-1;justify-content:center;gap:14px;font-size:.8rem}.run-center>span:first-child{font-size:1.1rem}.run-time{grid-area:1/2;gap:12px}.run-time>span{font-size:1.35rem}.run-time .quiet{min-height:32px;padding:4px 0;font-size:.8rem}.game-grid{flex-direction:column;gap:10px;height:auto;min-height:0;display:flex}#arena-wrap{flex-shrink:0;order:0;width:100%;height:clamp(420px,100dvh - 220px,600px);min-height:420px}.intel{order:1;grid-template-columns:105px minmax(0,1fr);gap:0 16px;padding:14px;display:grid;overflow:visible}.intel>.label{display:none}#my-role{grid-area:1/1/span 2}#private-intel{grid-area:1/2;min-width:0}#glyph-controls{grid-area:2/2}.role-heading{margin:0 0 12px;display:block}.role-heading>span{font-size:1.5rem;line-height:1.3;display:block}.role-heading h2{margin-top:4px;font-size:1.2rem}.my-health{margin:12px 0 0}.my-health>span{font-size:.75rem;display:block}.progress{height:6px;margin-top:8px}.intel-footer,.status{display:none}.intel-idle{margin:0;padding:10px}.intel-idle p,.private-reading p,.pulse-reading p,.warden-note p{font-size:.9rem;line-height:1.5}.private-reading{border:0;padding:0}.private-reading>.label,#glyph-controls>.label,.pulse-reading>.label,.warden-note>.label{letter-spacing:.025em;font-size:.75rem}.signal-glyph{margin:6px 0;font-size:2.75rem;line-height:1.2}.private-reading>strong{letter-spacing:.08em;font-size:1rem}.private-reading p,.pulse-reading p{margin-top:8px}.warden-note{border:0;padding:0}.warden-note p{margin:6px 0 10px}.glyph-buttons{gap:4px;margin:8px 0 0}.glyph-buttons button{min-height:62px;padding:5px 1px}.glyph-buttons b{font-size:1.5rem}.glyph-buttons small{letter-spacing:-.02em;font-size:.75rem}.pulse-reading{border:0;padding:0}.pulse-track{height:28px;margin:14px 0}.pulse-track i{height:36px;top:-5px}.pulse-reading>strong{font-size:.875rem}.takeover{padding:10px;font-size:.875rem}#arena-top-note{font-size:.8rem;line-height:1.4;top:10px;left:10px;right:10px}#arena-top-note.gate-open{padding:8px;font-size:.875rem}.arena-caption{padding:22px 12px 10px}#arena-feedback{font-size:.8rem;line-height:1.4}.signal-bars{display:none}#touch-controls{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:62px;left:18px;right:18px}#joystick{touch-action:none;pointer-events:auto;background:#172f3670;border:1px solid #a0c2af90;border-radius:50%;width:96px;height:96px;position:relative}#joystick:before,#joystick:after{content:"";background:#b8dfc644;position:absolute}#joystick:before{height:1px;top:50%;left:10%;right:10%}#joystick:after{width:1px;top:10%;bottom:10%;left:50%}#joystick-knob{background:#729e8970;border:1px solid #c9f0caaa;border-radius:50%;width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#interact{touch-action:none;pointer-events:auto;color:#edffe9;-webkit-user-select:none;user-select:none;background:#294e3fcc;border:1px solid #b8e8caaa;border-radius:50%;width:72px;height:72px;font-size:.75rem;line-height:1.4}#interact b{font-size:1.65rem}#interact:active{background:#749d7c}.upgrade-panel{padding:12px;bottom:12px}.upgrade-panel>div{gap:8px;margin-top:10px}.upgrade-panel button{text-align:center;padding:10px 6px;display:block}.upgrade-panel button>b{font-size:1.3rem}.upgrade-panel button strong{margin-top:5px;font-size:.875rem}.upgrade-panel button small{font-size:.75rem;line-height:1.4}.upgrade-panel button>span:last-child{display:none}.result-overlay{padding:18px}.result-symbol{margin:8px 0;font-size:2.5rem}.result-overlay h2{font-size:1.8rem}.result-overlay p{margin:10px 0;font-size:.9rem}.result-stats{margin:14px 0;font-size:.75rem}.result-overlay button{padding:10px;font-size:.875rem}dialog{padding:28px 22px}dialog h2{font-size:1.8rem}.guide-roles{grid-template-columns:1fr}}@media (width<=799px) and (height<=700px){.in-game .masthead{height:44px}.run-bar{min-height:60px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.relay-diagram text:not([font-size]){letter-spacing:1px;font-size:16px}.mission-card .relay-diagram text:not([font-size]){display:none}.solo-hint{font-size:var(--small-size);color:var(--muted);margin:8px 0 18px}.playtest-tools{background:#162b26;border:1px solid #779c85;border-radius:5px;grid-template-columns:minmax(0,1fr);align-items:center;gap:8px;margin-bottom:14px;padding:8px 16px;display:grid}.playtest-radio{margin-top:12px}#bot-count{color:#c3d6c7}#bot-status{color:#e0ecdf;max-width:70ch;font-size:.9rem;line-height:1.5}#playtest-options summary{cursor:pointer;color:#cce8d7;padding:6px 0;font-size:.9rem}#playtest-options summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}.playtest-actions{flex-wrap:wrap;align-items:end;gap:12px;margin-top:8px;display:flex}.playtest-actions label{color:#c3d6c7;font-size:var(--label-size);display:block}.playtest-actions select{min-height:46px;font:inherit;color:#edf4eb;background:#10211c;border:1px solid #819b85;border-radius:4px;margin-top:5px;padding:8px 30px 8px 12px;font-size:.9rem;display:block}.playtest-actions .secondary{min-height:46px;padding:10px 14px;font-size:.875rem}.solo-playtest .game-grid{height:calc(100dvh - 174px - var(--playtest-height,0px))}#seer-callout{margin-top:14px}#call-symbol{justify-content:center;width:100%;font-size:.9rem}.bot-clue{color:#f3cb8c;margin-top:14px;font-size:1.5rem;display:block}@media (width<=1350px){.playtest-tools{grid-template-columns:1fr;gap:8px}.playtest-actions{gap:10px}}@media (width<=799px){.playtest-tools{gap:5px;margin-bottom:10px;padding:10px 12px}.playtest-radio>strong{margin-bottom:4px;font-size:.75rem}#bot-status{font-size:.8rem;line-height:1.4}#playtest-options summary{min-height:32px;padding:6px 0;font-size:.85rem}.playtest-actions{grid-template-columns:1fr 1fr;align-items:end;gap:8px;display:grid}.playtest-actions label{grid-column:1/-1;font-size:.8rem}.playtest-actions select{width:100%;min-height:44px;font-size:1rem}.playtest-actions .text-button{grid-column:1/-1}.solo-playtest .game-grid{height:auto;min-height:0}#seer-callout{grid-area:2/2;margin-top:8px}#call-symbol{min-height:44px;padding:8px;font-size:.85rem}.bot-clue{margin-top:8px;font-size:1.2rem}}#call-symbol{touch-action:none;min-height:54px;padding:10px}#call-symbol svg{width:30px;height:30px}#call-symbol>span{font-size:1.5rem}#call-symbol.symbol-sent{color:var(--green);opacity:1;border-color:#7bba9a}.run-bar #encounter-stage{color:var(--green);letter-spacing:.08em;font-size:.72rem;display:block}.encounter-caption{gap:5px;min-width:0;display:grid}#encounter-task{color:#edf5e8;font-size:.95rem;font-weight:600;line-height:1.4}.encounter-caption #arena-feedback{color:#b2c6ba;font-size:.8rem}.station-jammed>strong{color:#f3bd72;margin:12px 0;font-size:1.15rem;display:block}.damage-reading .signal-glyph{color:#f3bd72}#arena-top-note.gate-open{margin:0;padding:9px 12px;font-size:.9rem}@media (width<=799px){.run-bar #encounter-stage{letter-spacing:.03em;font-size:.7rem}#encounter-task{font-size:.85rem;line-height:1.35}.encounter-caption #arena-feedback{display:none}#arena-top-note{text-align:left;top:43px;left:10px;right:150px}#arena-top-note.gate-open{padding:6px 8px;font-size:.8rem}.station-jammed>strong{margin:8px 0;font-size:1.05rem}.encounter-warning #encounter-task{display:none}.encounter-warning #arena-feedback{color:#f3bd72;font-size:.85rem;display:block}}.playtest-shortcuts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 12px;font-size:.8rem;display:flex}.playtest-shortcuts>span{white-space:nowrap}.playtest-shortcuts kbd{color:#d7ecdb}#arena:focus-visible{outline:2px solid var(--green);outline-offset:-3px}@media (width<=799px){.playtest-shortcuts{display:none}}#upgrade-options{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}#upgrade-options button{align-items:start;padding:14px 12px;position:relative}#upgrade-options button em{color:#96b89b;margin-top:8px;font-size:.7rem;font-style:normal;display:block}#upgrade-options button kbd{position:absolute;top:-8px;right:6px}@media (width>=800px) and (width<=1200px){#upgrade-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.approach-play .intel{display:none}.approach-play .game-grid{grid-template-columns:minmax(0,1fr) clamp(250px,17vw,320px)}.approach-play .arena-caption{display:none}@media (width<=1550px){.approach-play .game-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=799px){#upgrade-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#upgrade-options button{text-align:left;gap:8px;padding:10px;display:flex}#upgrade-options button kbd{display:none}#upgrade-options button strong{margin:0;font-size:.85rem}#upgrade-options button small{font-size:.76rem}#upgrade-options button em{margin-top:5px;font-size:.7rem}.approach-play #touch-controls{bottom:22px}.upgrade-panel{width:calc(100% - 16px);padding:10px;position:absolute;top:8px;bottom:auto}.upgrade-panel>.label{font-size:.72rem;display:block}.upgrade-panel>.label small{margin-top:4px;font-size:.68rem;display:block}#upgrade-options button>b{display:none}.has-upgrade #arena-wrap{height:clamp(510px,100dvh - 220px,650px)}.has-upgrade #touch-controls{bottom:22px}.has-upgrade .arena-caption{display:none}}.encounter-picker{background:#101f23;border:1px solid #3a514c;border-radius:5px;margin:0 0 24px;padding:20px}#encounter-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.encounter-choice{text-align:left;color:#d9e4e1;background:#14242a;border:1px solid #3d514e;border-radius:4px;padding:20px 16px;position:relative}.encounter-choice.selected{border-color:var(--encounter-color);box-shadow:inset 0 3px var(--encounter-color);background:#1e3435}.encounter-choice:hover{background:#20373a}.encounter-choice:disabled{opacity:.8;cursor:default}.encounter-choice strong{color:var(--encounter-color);margin:14px 0 8px;font-size:1.05rem;display:block}.encounter-choice small{color:#b7d0c5;font-size:.83rem;display:block}.encounter-choice p{color:#adbfbb;margin:12px 0 0;font-size:.85rem;line-height:1.5}.encounter-number{letter-spacing:.2em;color:var(--encounter-color);font-size:.8rem}.playtest-actions{flex-wrap:wrap}@media (width<=1099px){#encounter-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=599px){.encounter-picker{padding:14px}.encounter-picker .panel-title{flex-direction:column;align-items:start;gap:8px}#encounter-choices{grid-template-columns:1fr;gap:10px}.encounter-choice{padding:14px}.encounter-choice strong{margin-top:6px}}.intel-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:18px;padding-top:10px;display:flex}.intel-footer p,.intel-footer .text-button{margin:0}.intel-footer p{align-items:center;gap:6px;display:flex}#private-intel:empty,#encounter-task:empty,#arena-feedback:empty{display:none}@media (width<=799px){.intel{grid-template-columns:100px minmax(0,1fr);align-items:center}#glyph-controls{grid-area:auto/1/auto/-1;margin-top:8px}.glyph-buttons{gap:6px;margin:0 0 8px}.glyph-buttons button{min-height:58px;padding:4px}.glyph-buttons .glyph-icon{width:42px;height:42px}.signal-glyph .glyph-icon{width:82px;height:82px;margin:0 auto}.private-state{padding:8px 0;font-size:2.75rem}.glyph-shortcuts{gap:6px;font-size:.8rem}.intel-footer{display:none}.playtest-tools{padding:5px 12px}}#world-controls{left:var(--world-control-x,0px);top:var(--world-control-y,0px);z-index:7;visibility:hidden;pointer-events:none;width:min(288px,100% - 24px);position:absolute}#arena-wrap[data-world-control=warden] #world-controls,#arena-wrap[data-world-control=seer] #world-controls{visibility:visible;pointer-events:auto}#arena-wrap[data-world-control=seer] #world-controls{width:64px}#world-controls #glyph-controls{background:#111d23f2;border:1px solid #b79560;border-radius:6px;margin:0;padding:8px;box-shadow:0 4px 18px #0007}#world-controls .glyph-buttons{gap:6px;margin:0 0 8px}#world-controls .glyph-buttons button{min-height:46px;padding:4px}#world-controls .glyph-icon{width:34px;height:34px}#world-controls .glyph-shortcuts{gap:6px;font-size:.8rem}#world-controls .glyph-shortcuts kbd{min-width:24px;height:24px;font-size:.75rem}#world-controls #seer-callout{margin:0}#world-controls #call-symbol{background:#18263aee;height:52px;min-height:52px;padding:8px}#player-status{z-index:5;background:#0b171de6;border:1px solid #34524e;border-radius:5px;width:192px;padding:7px 10px;position:absolute;top:48px;left:12px}#player-status #my-role{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}#player-status .role-heading{color:var(--player-color);gap:6px;margin:0;display:flex}#player-status .role-heading>span{font-size:1.1rem;line-height:1}#player-status .role-heading h2{margin:0;font-size:max(14px,.8rem);line-height:1.3}#player-status .my-health{margin:0}#player-status .my-health>span{white-space:nowrap;font-size:max(14px,.8rem)}#player-status .progress{height:4px;margin-top:3px}#my-health-meter{background:var(--player-color)}#player-status:has(#backup-options[open]){z-index:9}#backup-options>summary{cursor:pointer;text-align:center;color:#ec8ba4;min-height:32px}#backup-actions .takeover{margin-top:6px;padding:8px;font-size:.75rem}#arena-top-note{top:12px;left:35%;right:35%}@media (width<=799px){#world-controls{width:min(264px,100% - 24px)}#player-status{width:174px;padding:6px 8px;top:44px;left:10px}.has-upgrade #player-status{top:auto;bottom:136px}}
