:root{color-scheme:dark;--bg:#0d1115;--surface:#151b20;--ink:#eef2ed;--muted:#9baeb9;--line:#34424c;--lime:#c8f36b;--amber:#f3bd64;--danger:#ff9b90;--accent:var(--lime);font-family:"Arial Narrow","Avenir Next Condensed","Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.45}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-height:100svh}a{color:var(--accent);text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--amber);outline-offset:3px}button,input,select{border:1px solid var(--line);border-radius:5px}input,select{background:var(--bg);color:var(--ink);padding:12px 14px;width:100%;min-height:48px;font-size:17px}input::placeholder{color:#84959e}button{min-height:44px;padding:10px 20px;background:transparent;color:var(--ink);font-size:17px}button:hover:not(:disabled){border-color:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Impact,"Arial Narrow","Avenir Next Condensed",Arial,sans-serif;font-weight:800;line-height:1.1}h1{font-size:clamp(32px,3.4vw,51px);text-transform:uppercase;letter-spacing:.015em;margin-bottom:0}h2{font-size:30px;margin-bottom:18px}h3{font-size:22px;margin-bottom:10px}small,.muted{color:var(--muted)}.shell{max-width:1600px;margin:0 auto;padding:22px 24px 32px}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.header a{color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:4px;padding:9px 18px}.header a:hover{color:var(--ink)}.turn{font-size:clamp(17px,2vw,27px);white-space:nowrap}.turn span{color:var(--muted)}.identity{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:18px}.identity span{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:5px;margin-bottom:18px;min-height:62px;align-items:center}.stat{text-align:center;padding:8px 16px;font-size:19px}.stat:not(:last-child){border-right:1px solid var(--line)}.stat strong{font-size:24px;margin-left:12px;font-family:monospace;color:var(--accent)}.game-layout{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(310px,1fr);gap:16px;align-items:start}.map-panel,.rail,.report,.panel{border:1px solid var(--line);border-radius:6px;background:var(--surface)}.map-panel{background:#0f1519;overflow:hidden}.map-caption{font-size:14px;color:var(--muted);padding:10px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.map-caption strong{color:var(--accent);font-weight:500}.network-scroll{overflow:auto;max-width:100%}.network{display:block;width:100%;min-width:600px;max-height:645px}.network-grid{color:#40505a;opacity:.48}.network-lines line{stroke:#7c8c96;stroke-width:1.3}.network-node{cursor:pointer}.network-node circle{fill:#10171c;stroke:#c2ccd1;stroke-width:2}.network-node .node-icon{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:#c8d2d7}.node-name{font-family:"Arial Narrow","Avenir Next Condensed",Arial,sans-serif;font-size:17px;font-weight:600;fill:var(--ink)}.node-id{font:15px monospace;letter-spacing:1px;fill:#c1ced4}.node-marker{font:11px monospace;fill:var(--lime)}.network-node.vault circle{stroke:var(--amber)}.network-node.vault .node-icon{color:var(--amber)}.network-node.available circle{stroke:#7f9c50;stroke-dasharray:4 4}.network-node.current circle{stroke:var(--lime);stroke-width:3;fill:#202c1c;stroke-dasharray:none}.network-node.current .node-icon{color:var(--lime)}.network-node.selected>circle{stroke:var(--accent);stroke-width:4}.network-node .trace-dot{stroke:var(--amber);fill:var(--amber)}.network-node.blocked>circle{stroke:#f79787;stroke-dasharray:5 3}.network-node .sensor-mark{stroke:var(--amber);stroke-dasharray:2 5;fill:none;stroke-width:1}.hunt-mark{stroke:var(--amber);stroke-width:2;fill:none}.replay-line{stroke:var(--lime);stroke-width:5;opacity:.6}.rail{padding:21px 22px}.rail h2{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:0}.role-block{display:grid;grid-template-columns:42px minmax(0,1fr);gap:13px;padding:17px 0 19px;border-bottom:1px solid var(--line)}.role-number{font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:34px;line-height:1.15;color:var(--accent)}.role-title{font-size:19px;font-weight:700;line-height:1.3;margin-bottom:3px}.role-title span{color:var(--muted);font-weight:400}.role-help{font-size:14px;color:var(--muted);margin-bottom:10px;line-height:1.35}.role-content{min-width:0}.role-content select+select{margin-top:8px}.primary{background:var(--accent);border-color:var(--accent);color:#11190c;font-family:Impact,"Arial Narrow",Arial,sans-serif;font-weight:700;font-size:23px;padding:13px 20px;min-height:56px}.primary:hover:not(:disabled){filter:brightness(1.08)}.rail>.primary{width:100%;margin-top:20px}.commit-note{text-align:center;color:var(--muted);font-size:14px;margin:10px 0 0}.report{padding:18px 22px;margin-top:16px}.report h2{font-size:24px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}.report p{font-size:16px;line-height:1.55;margin-bottom:6px}.report p:last-child{margin-bottom:0}.report .private-label{font-size:13px;color:var(--accent);margin-top:14px}.ready{color:var(--accent);font-size:18px;padding:20px 0}.ready strong{display:block;font-size:23px;margin-bottom:8px}.status-row{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);margin:10px 0}.status-row .done{color:var(--accent)}.intro{max-width:1240px;margin:0 auto;padding:40px 28px}.intro h1{font-size:clamp(46px,7vw,83px);max-width:900px}.intro-lead{font-size:23px;color:var(--muted);max-width:760px;margin:20px 0 34px}.intro-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.2fr);gap:26px;align-items:start}.intro .panel{padding:26px}.choices{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 24px}.choices button{font:26px monospace;padding:10px}.choices button.active{background:var(--lime);border-color:var(--lime);color:#11190c}.names{display:grid;grid-template-columns:1fr 1fr;gap:18px}.names label{display:block;color:var(--muted);font-size:14px;margin-bottom:8px}.names input{margin-top:5px}.intro .primary{width:100%;margin-top:22px}.intro .network{min-width:500px}.intro-foot{color:var(--muted);font-size:15px;margin:26px 0}.intro-foot p{margin:8px 0}.download-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:15px}.wide-message{max-width:980px;margin:40px auto;padding:32px}.wide-message h2{font-size:40px}.wide-message p{font-size:19px}.team-links{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.invite{border-top:2px solid var(--accent);padding:17px 0}.invite h3{color:var(--accent)}.invite.security{--accent:var(--amber)}.invite input{font:13px monospace;margin:10px 0;color:var(--muted)}.invite a{display:inline-block;margin-right:14px}.invite button{font-size:15px;padding:7px 10px}.host-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);gap:18px}.host-info{padding:24px}.host-info .primary{width:100%;margin-top:12px}.host-info .team-links{grid-template-columns:1fr;margin:12px 0}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.score{border:1px solid var(--line);padding:20px;text-align:center;border-radius:5px}.score strong{display:block;color:var(--lime);font:64px Impact,"Arial Narrow",Arial,sans-serif}.score span{color:var(--muted);font-size:16px}.score .team-name{font-size:21px;color:var(--ink)}.winner{color:var(--lime)}.error{color:var(--danger);margin:12px 0}.boot{padding:50px 28px}.boot p{margin-top:20px;color:var(--muted)}#connection:not(:empty){position:sticky;top:0;z-index:10;background:#3b2918;color:#ffddb1;text-align:center;padding:10px 18px;font-size:16px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);border-radius:5px;padding:10px 18px;z-index:20;max-width:90vw}#notice:empty{display:none}.rules-document{max-width:940px;margin:0 auto;padding:35px 26px 70px}.rules-document h1{font-size:44px;margin-bottom:20px}.rules-document h2{margin-top:30px;font-size:27px}.rules-document p,.rules-document li{font-size:17px;line-height:1.6}.rules-document ol,.rules-document ul{padding-left:24px}.rules-document code{color:var(--lime)}.rules-document .back{display:inline-block;margin-bottom:26px}.footnote{font-size:14px;color:var(--muted);margin-top:20px}.screen-security{--accent:var(--amber)}.empty-state{padding:30px 22px}.empty-state h2{font-size:30px}.route-list{font:14px/1.8 monospace;color:var(--muted);overflow-wrap:anywhere}.rules-document strong{color:var(--ink)}
@media(min-width:1500px){.shell{padding:22px 28px}.rail{padding:22px 25px}.role-block{padding:20px 0}.role-help{font-size:16px}.role-title{font-size:22px}.role-content select{font-size:20px}.report p{font-size:19px}.network{max-height:680px}}
@media(max-width:1000px){.shell{padding:18px}.header{flex-wrap:wrap;gap:12px}.header h1{font-size:35px}.turn{order:3;width:100%;font-size:20px}.game-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr)}.network{min-width:570px}.rail{padding:16px}.role-block{gap:8px;grid-template-columns:34px minmax(0,1fr)}.role-title{font-size:17px}.role-number{font-size:28px}.intro-layout{grid-template-columns:1fr}.intro-art{display:none}.host-layout{grid-template-columns:1fr}}
@media(max-width:760px){.shell{padding:16px 12px 25px}.header{gap:10px;margin-bottom:16px}.header h1{font-size:31px}.header a{font-size:15px;padding:7px 12px}.header .identity{font-size:15px}.game-layout{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;min-height:100px}.stat{font-size:16px;padding:9px 8px}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat strong{font-size:21px}.rail{padding:21px}.role-block{grid-template-columns:38px minmax(0,1fr);gap:12px;padding:18px 0}.role-title{font-size:20px}.role-help{font-size:15px}.role-number{font-size:33px}.role-content select{font-size:17px}.report{padding:18px}.intro{padding:26px 16px}.intro h1{font-size:51px}.intro-lead{font-size:20px;margin:18px 0 24px}.intro-layout{display:block}.intro .panel{padding:20px}.names{gap:12px}.names input{font-size:15px;padding:10px}.team-links{grid-template-columns:1fr}.wide-message{margin:10px 0;padding:23px 17px}.wide-message h2{font-size:32px}.scoreboard{gap:10px}.score{padding:16px 10px}.score strong{font-size:50px}.host-info{padding:20px}.network{min-width:600px;max-height:none}.rules-document{padding:24px 19px}.rules-document h1{font-size:35px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:border-color .12s,background-color .12s,filter .12s}.current>circle{animation:arrive .22s ease-out}@keyframes arrive{from{stroke-width:6}to{stroke-width:3}}}
@media print{body{background:white;color:#111}.rules-document{max-width:none;padding:0}.rules-document a.back{display:none}h1,h2,h3{break-after:avoid}p,li{orphans:3;widows:3}.rules-document h2{color:#111}.rules-document code{color:#111}}

.rail form>.primary{width:100%;margin-top:20px}

@media(min-width:1500px){.role-block{padding:16px 0}}

.game-layout>*,.host-layout>*{min-width:0}input,select{min-width:0}.statusbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}.statusbar .status-row{margin:0}.report details{margin-top:8px;color:var(--muted);font-size:14px}.report summary{cursor:pointer;padding:4px 0}.report details p{margin-top:8px}
@media(min-width:1100px){.header{margin-bottom:14px}.stats{min-height:56px}.game-layout .network{max-height:560px}.report{padding:15px 20px}.report h2{font-size:22px;padding-bottom:8px;margin-bottom:8px}.report p{font-size:16px;line-height:1.4}.report .private-label{margin-top:8px}}
@media(max-width:760px){.game-layout{grid-template-columns:minmax(0,1fr)}.statusbar{display:block}.statusbar .status-row{margin-top:7px}.identity{flex-wrap:wrap}}

/* ИГРО-ДЖОЙ: small text signature. */

/* ИГРО-ДЖОЙ — compact publisher signature. */
.igrojoy-signature{max-width:1200px;margin:0 auto;padding:10px 20px 0;font:500 11px/1.2 Arial,sans-serif;letter-spacing:.12em;color:inherit}


/* Repairs 0.2.1: keep decisions, outcomes and map usable on small screens. */
.network-node[aria-disabled="true"],.network-node[role="img"]{cursor:default}
.network-node[aria-disabled="true"]>circle:first-of-type{stroke-dasharray:3 5;opacity:.55}
.network-node[role="button"]:focus-visible>circle:first-of-type{stroke:var(--ink);stroke-width:4;outline:none}
.field-note{font-size:14px;line-height:1.35;color:var(--muted);margin:8px 0 0}
.plan-recap{margin:18px 0}.plan-recap>div{padding:10px 0;border-bottom:1px solid var(--line)}
.plan-recap dt{font-size:13px;color:var(--muted)}.plan-recap dd{margin:4px 0 0;font-size:17px;overflow-wrap:anywhere}
.operation-scores{margin:22px 0}.operation-scores ol{list-style:none;padding:0;margin:0}.operation-scores li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.operation-scores strong{white-space:nowrap}.operation-scores strong span{font-size:14px;color:var(--muted)}
a.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:16px 24px;border-radius:8px}
@media(max-width:900px){.game-layout{grid-template-columns:1fr}.network{min-width:0;max-height:none}.game-layout>.rail{order:0}.role-block{padding:12px 0}.rail form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.rail #commit,.rail .commit-note,.rail #plan-error{grid-column:1/-1}.report{padding:16px 20px}}
@media(max-width:760px){.shell{padding:14px 13px 28px}.network{min-width:0;width:100%;height:auto;max-height:none}.network-scroll{overflow:hidden}.map-caption{padding:10px 13px;gap:5px}.map-caption span{font-size:12px}.role-block{grid-template-columns:28px minmax(0,1fr);gap:9px;padding:12px 0}.role-number{font-size:16px}.role-title{font-size:18px}.role-help{font-size:14px;margin-bottom:8px}.rail{padding:17px}.rail form{grid-template-columns:1fr;gap:0}.stats{margin:12px 0}.stat{padding:10px 13px}.stat strong{font-size:24px}.report p{font-size:15px;line-height:1.45}.operation-scores li{font-size:15px}.header{gap:10px}.header .turn{font-size:14px}.statusbar{margin:10px 0}}
@media(min-width:1100px){.game-layout>.rail{padding:16px 20px}.game-layout .role-block{padding:10px 0}.game-layout .role-title{font-size:18px}.game-layout .role-help{font-size:13px;line-height:1.3;margin-bottom:6px}.game-layout select{min-height:44px;font-size:16px}.game-layout .rail h2{margin-bottom:5px}.game-layout .commit-note{margin:10px 0 0}.game-layout .error:empty{margin:0}.game-layout .primary{min-height:48px}}
.draft-feedback{font-size:13px;color:var(--muted);line-height:1.35;margin:12px 0}.draft-feedback p{margin:0}.draft-feedback.error{color:var(--danger)}.draft-feedback button{margin-top:8px;width:100%;white-space:normal}.pause-tools{margin-top:20px;padding:20px;max-width:900px}.pause-tools p{font-size:15px;color:var(--muted);max-width:760px}.pause-tools button{margin:8px 10px 0 0;white-space:normal}.pause-tools .error{color:var(--danger)}
@media(min-width:761px) and (max-width:900px){.draft-feedback{grid-column:1/-1}}
@media(min-width:1100px) and (max-height:850px){.shell{padding-top:14px}.header{margin-bottom:12px}.header h1{font-size:40px}.stats{min-height:48px;margin-bottom:12px}.stat{font-size:17px;padding:6px 12px}.game-layout>.rail{padding:14px 16px}.game-layout .rail h2{font-size:26px;padding-bottom:10px}.game-layout .role-block{grid-template-columns:26px minmax(0,1fr);gap:8px;padding:8px 0}.game-layout .role-number{font-size:26px}.game-layout select{padding:8px 10px;line-height:1.3;height:44px}.game-layout .draft-feedback{margin:8px 0;font-size:12px}.game-layout .commit-note{font-size:12px;margin-top:8px}}
@media(min-width:1100px) and (max-height:850px){.game-layout .rail h2{font-size:24px;padding-bottom:8px}.game-layout .role-block{padding:6px 0}}
