255 lines
65 KiB
HTML
255 lines
65 KiB
HTML
<title>Station Master — track geometry</title>
|
||
<style>
|
||
|
||
.bs{width:100%;height:auto;background:#0e1116;border-radius:6px;padding:6px;overflow:visible}
|
||
.bs-rail{stroke:#cfd6e0;stroke-width:1.6}
|
||
.bs-tie{stroke:#8d97a5;stroke-width:1.1}
|
||
.bs-open .bs-rail{stroke:#6b7686;stroke-dasharray:6 4}
|
||
.bs-open .bs-tie{stroke:#59626f}
|
||
.bs-card{fill:#161b21;stroke:#39424e;stroke-width:1}
|
||
.bs-card.bs-run{fill:#1d232c}
|
||
.bs-office{fill:#1b2534;stroke:#4d6fa8;stroke-width:2}
|
||
.bs-lim{fill:#241d1d;stroke:#8a5a5a}
|
||
.bs-fac{fill:#201c26;stroke:#7a5f9a}
|
||
.bs-mod{fill:#231d2b;stroke:#5c4a70;stroke-dasharray:4 3}
|
||
.bs-sec{fill:#161b21;stroke:#39424e}
|
||
.bs-sec.bs-dp{fill:#151f19;stroke:#3f7a52;stroke-width:2;stroke-dasharray:5 3}
|
||
.bs-sec.bs-office{fill:#1b2534;stroke:#4d6fa8;stroke-width:2}
|
||
/* THE DIVISION, drawn as the route rather than as a row of boxes.
|
||
Three kinds of cell, and they must be told apart at a glance: a Division Point is where trains
|
||
come from and go to, a Mainline card is shared ground between two districts, and a Running Track
|
||
card belongs to one player's Office Area. */
|
||
.bs-dcell rect{fill:#161b21;stroke:#39424e;stroke-width:1}
|
||
.bs-ddp rect{fill:#151f19;stroke:#3f7a52;stroke-width:2;stroke-dasharray:5 3}
|
||
.bs-dml rect{fill:#1d222b;stroke:#6b7686;stroke-width:1.6}
|
||
.bs-drun rect{fill:#1b2534;stroke:#4d6fa8}
|
||
.bs-dcell.bs-full rect{stroke:#e0a060;stroke-width:2}
|
||
/* The elbow where the route turns from one player's side of the table to the next. Drawn heavier
|
||
than a plain join because that turn is the boundary two districts share. */
|
||
.bs-turn{fill:none;stroke:#7f8b9c;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
|
||
/* Buffer stops at both ends. The Division is a line, not a loop: trains enter at one Division Point
|
||
and leave at the other, and a seated layout must not be read as a ring. */
|
||
.bs-stop line{stroke:#e0a060;stroke-width:2.6;stroke-linecap:round}
|
||
.bs-end{fill:#e0a060;font:10px ui-monospace,monospace;letter-spacing:.03em}
|
||
/* The vertical bars a Mainline card is divided into (§2.1). Drawn faint: they are the ruler the
|
||
train is measured against, not something to look at instead of the train. */
|
||
.bs-region{stroke:#4a5361;stroke-width:1.2;stroke-dasharray:3 3}
|
||
.bs-slot{fill:none;stroke:#5f6b7a;stroke-width:1.1;stroke-dasharray:3 2}
|
||
.bs-slot.bs-occ{fill:rgba(90,169,230,.20);stroke:#5aa9e6;stroke-dasharray:none}
|
||
.bs-train rect{fill:#2f6b3d;stroke:#8fd6a0;stroke-width:1.2}
|
||
.bs-crew rect{fill:#8a6d1f;stroke:#e0c060;stroke-width:1.2}
|
||
.bs-tlab{fill:#eaf6ec;font:600 11px ui-monospace,monospace}
|
||
.bs-carlab{fill:#cfd6e0;font:9px ui-monospace,monospace}
|
||
.bs-wb{fill:#20262e;stroke:#4a5361;stroke-width:1}
|
||
.bs-wb.bs-green{stroke:#3f7a52}
|
||
.bs-wb.bs-green.bs-occ{fill:rgba(63,122,82,.55)}
|
||
.bs-wb.bs-maw{stroke:#8a6d1f}
|
||
.bs-wb.bs-maw.bs-occ{fill:rgba(190,150,40,.65)}
|
||
.bs-wb.bs-red{stroke:#8a5a5a}
|
||
.bs-wb.bs-red.bs-occ{fill:rgba(170,70,70,.6)}
|
||
.bs-wl{fill:#8d97a5;font:7px ui-monospace,monospace}
|
||
.bs-arrow{fill:#5f6b7a;font:10px ui-monospace,monospace}
|
||
.bs-cn{fill:#e6e9ee;font:600 11px ui-monospace,monospace}
|
||
.bs-coord{fill:#5f6b7a;font:9px ui-monospace,monospace}
|
||
.bs-name{fill:#e6e9ee;font:600 11px ui-monospace,monospace}
|
||
.bs-cap{fill:#8b94a3;font:10px ui-monospace,monospace}
|
||
.bs-cap.bs-full{fill:#e0a060;font-weight:600}
|
||
.bs-grade{fill:#e08060;font:10px ui-monospace,monospace}
|
||
.bs-mod{font:10px ui-monospace,monospace}
|
||
text.bs-mod{fill:#c8a04a}
|
||
.bs-enh{fill:#7fb0e6;font:9px ui-monospace,monospace}
|
||
.bs-rowlab{fill:#5f6b7a;font:600 9px ui-monospace,monospace;letter-spacing:.1em}
|
||
.bs-ghost rect{fill:rgba(90,169,230,.07);stroke:#5aa9e6;stroke-width:2;stroke-dasharray:5 4}
|
||
.bs-ghost text{fill:#5aa9e6;font:11px ui-monospace,monospace}
|
||
.bs-ghost,g[data-cell].bs-legal{cursor:pointer}
|
||
g[data-cell].bs-legal .bs-card{stroke:#5aa9e6;stroke-width:2.5}
|
||
g[data-cell].bs-legal:hover .bs-card,.bs-ghost:hover rect{fill:#233246}
|
||
g[data-cell].bs-focus .bs-card{stroke:#e0c060;stroke-width:2.5}
|
||
g[data-cell].bs-from .bs-card{stroke:#7a6a3a;stroke-width:2;stroke-dasharray:4 3}
|
||
|
||
|
||
:root{
|
||
--plate:#0d1117; --plate-grid:#1b2430;
|
||
--ground:#eef1f5; --surface:#ffffff; --rule:#cdd5e0;
|
||
--ink:#18212c; --dim:#5b6673; --accent:#2f5ea8; --reject:#a04a4a;
|
||
--mono:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace;
|
||
--serif:"Iowan Old Style",Charter,"Bitstream Charter","Palatino Linotype",Georgia,serif;
|
||
}
|
||
@media (prefers-color-scheme:dark){
|
||
:root{
|
||
--ground:#0d1117; --surface:#141a21; --rule:#2a333f;
|
||
--ink:#dde3ea; --dim:#8d97a5; --accent:#6d97d8; --reject:#c88a8a;
|
||
}
|
||
}
|
||
:root[data-theme="dark"]{
|
||
--ground:#0d1117; --surface:#141a21; --rule:#2a333f;
|
||
--ink:#dde3ea; --dim:#8d97a5; --accent:#6d97d8; --reject:#c88a8a;
|
||
}
|
||
:root[data-theme="light"]{
|
||
--ground:#eef1f5; --surface:#ffffff; --rule:#cdd5e0;
|
||
--ink:#18212c; --dim:#5b6673; --accent:#2f5ea8; --reject:#a04a4a;
|
||
}
|
||
|
||
*{box-sizing:border-box}
|
||
body{
|
||
margin:0; background:var(--ground); color:var(--ink);
|
||
font-family:var(--serif); font-size:17px; line-height:1.65;
|
||
-webkit-font-smoothing:antialiased;
|
||
}
|
||
.sheet{max-width:1080px;margin:0 auto;padding:clamp(28px,5vw,72px) clamp(20px,4vw,48px) 96px}
|
||
.measure{max-width:66ch}
|
||
|
||
.eyebrow{
|
||
font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.14em;
|
||
color:var(--accent); margin:0 0 14px;
|
||
}
|
||
h1{
|
||
font-family:var(--mono); font-weight:600; font-size:clamp(1.9rem,4.4vw,2.9rem);
|
||
line-height:1.12; letter-spacing:-.02em; margin:0 0 20px; text-wrap:balance;
|
||
}
|
||
.stand{font-size:1.15rem;color:var(--dim);margin:0 0 8px}
|
||
h2{
|
||
font-family:var(--mono); font-weight:600; font-size:1.1rem; letter-spacing:.02em;
|
||
margin:0 0 6px; text-wrap:balance;
|
||
}
|
||
h2 .n{color:var(--accent);margin-right:.6em;font-weight:400}
|
||
p{margin:0 0 1em}
|
||
section{margin-top:clamp(48px,7vw,84px);border-top:1px solid var(--rule);padding-top:26px}
|
||
.lede{color:var(--dim);margin-bottom:28px}
|
||
code{font-family:var(--mono);font-size:.88em;background:color-mix(in srgb,var(--accent) 11%,transparent);padding:.12em .38em;border-radius:3px}
|
||
|
||
/* Specimen plates: the board is a dark instrument, so the plates stay dark in both themes. */
|
||
.plate{
|
||
background:var(--plate); border:1px solid var(--plate-grid); border-radius:5px; padding:14px;
|
||
background-image:linear-gradient(var(--plate-grid) 1px,transparent 1px),linear-gradient(90deg,var(--plate-grid) 1px,transparent 1px);
|
||
background-size:13px 13px; background-position:-1px -1px;
|
||
overflow-x:auto;
|
||
}
|
||
/* A specimen is a card looked at closely, not a poster: cap it so the SVG's own 11px labels stay
|
||
subordinate to the page's headings instead of scaling past them. */
|
||
.plate .bs{background:transparent;display:block;margin:0 auto;max-width:236px}
|
||
.plate--wide .bs{max-width:none;min-width:940px}
|
||
|
||
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:26px 24px;margin:0}
|
||
.spec{margin:0;display:flex;flex-direction:column;gap:10px}
|
||
.spec figcaption{display:flex;flex-direction:column;gap:4px}
|
||
.meta{display:flex;gap:10px;align-items:baseline;margin:0;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em}
|
||
.pairs{color:var(--ink)}
|
||
.slope{color:var(--accent);text-transform:uppercase}
|
||
.slope.none{color:var(--dim)}
|
||
.note{margin:0;font-size:.94rem;color:var(--dim);line-height:1.55}
|
||
|
||
.pair-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;margin:0}
|
||
.judged{margin:0;display:flex;flex-direction:column;gap:12px}
|
||
.verdict{
|
||
font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;
|
||
display:flex;align-items:center;gap:9px;margin:0;
|
||
}
|
||
.verdict::before{content:"";width:9px;height:9px;border-radius:50%;flex:none;background:currentColor}
|
||
.yes{color:var(--accent)}
|
||
.no{color:var(--reject)}
|
||
.judged .note{font-size:.95rem}
|
||
|
||
table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.82rem;font-variant-numeric:tabular-nums}
|
||
.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:5px;background:var(--surface)}
|
||
td{padding:9px 16px;border-bottom:1px solid var(--rule);white-space:nowrap}
|
||
tr:last-child td{border-bottom:0}
|
||
td:first-child{color:var(--dim);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;width:1%}
|
||
|
||
.foot{margin-top:64px;padding-top:22px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.76rem;color:var(--dim);line-height:1.8}
|
||
</style>
|
||
|
||
<div class="sheet">
|
||
<header class="measure">
|
||
<p class="eyebrow">Station Master · board geometry</p>
|
||
<h1>The track is 45°, and the rail runs down the middle</h1>
|
||
<p class="stand">Every card below is drawn by the game's own renderer, from the engine's own connection table. Nothing here is a mock-up — if the picture is wrong, the board is wrong.</p>
|
||
</header>
|
||
|
||
<section>
|
||
<h2><span class="n">01</span>Measured off the sheet</h2>
|
||
<p class="lede measure">Taken from <code>docs/tracks.png</code> rather than inferred from the art. The east–west rail sits at the card's exact vertical middle on every row of the sheet.</p>
|
||
<div class="tablewrap">
|
||
<table><tr><td>Sheet</td><td>2136 × 1397 px, 8 × 9 cards</td></tr><tr><td>Card</td><td>259 × 150 px · aspect 1.73</td></tr><tr><td>Grid lines, y</td><td>15 · 164 · 314 · 464 · 614 · 764 · 914 · 1064 · 1213</td></tr><tr><td>Rail centres, y</td><td>89.5 · 236 · — · — · 689.5 · 839 · 989 · 1135.5 · 1288.5</td></tr><tr><td>Deviation from centre</td><td>under 1 px on all nine rows</td></tr><tr><td>Leg crosses edge at</td><td>x = W/2, at 45°</td></tr></table>
|
||
</div>
|
||
</section>
|
||
|
||
<section>
|
||
<h2><span class="n">02</span>The shapes</h2>
|
||
<p class="lede measure">Five, and that is all of them. A card turns 180° but never flips, so each of these also exists upside down — the turnout's leg reaching north instead of south, the curve reaching <code>ne</code> instead of <code>sw</code>. What it cannot do is change diagonal.</p>
|
||
<div class="specs">
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Straight — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Straight</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">e–w</span><span class="slope none">—</span></p>
|
||
<p class="note">The through track, dead centre. One orientation: turning it gives the same card back.</p>
|
||
</figcaption>
|
||
</figure>
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Turnout · right — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="166" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="166" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="9.222222222222221" y1="52.5" x2="9.222222222222221" y2="43.5"/><line class="bs-tie" x1="18.444444444444443" y1="52.5" x2="18.444444444444443" y2="43.5"/><line class="bs-tie" x1="27.666666666666668" y1="52.5" x2="27.666666666666668" y2="43.5"/><line class="bs-tie" x1="36.888888888888886" y1="52.5" x2="36.888888888888886" y2="43.5"/><line class="bs-tie" x1="46.111111111111114" y1="52.5" x2="46.111111111111114" y2="43.5"/><line class="bs-tie" x1="55.333333333333336" y1="52.5" x2="55.333333333333336" y2="43.5"/><line class="bs-tie" x1="64.55555555555556" y1="52.5" x2="64.55555555555556" y2="43.5"/><line class="bs-tie" x1="73.77777777777777" y1="52.5" x2="73.77777777777777" y2="43.5"/><line class="bs-tie" x1="83" y1="52.5" x2="83" y2="43.5"/><line class="bs-tie" x1="92.22222222222223" y1="52.5" x2="92.22222222222223" y2="43.5"/><line class="bs-tie" x1="101.44444444444444" y1="52.5" x2="101.44444444444444" y2="43.5"/><line class="bs-tie" x1="110.66666666666667" y1="52.5" x2="110.66666666666667" y2="43.5"/><line class="bs-tie" x1="119.88888888888889" y1="52.5" x2="119.88888888888889" y2="43.5"/><line class="bs-tie" x1="129.11111111111111" y1="52.5" x2="129.11111111111111" y2="43.5"/><line class="bs-tie" x1="138.33333333333334" y1="52.5" x2="138.33333333333334" y2="43.5"/><line class="bs-tie" x1="147.55555555555554" y1="52.5" x2="147.55555555555554" y2="43.5"/><line class="bs-tie" x1="156.77777777777777" y1="52.5" x2="156.77777777777777" y2="43.5"/><line class="bs-tie" x1="166" y1="52.5" x2="166" y2="43.5"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">Turnout · right</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">w–e · w–s</span><span class="slope">ne_sw</span></p>
|
||
<p class="note">Frog on the west end, leg out through the middle of the south edge. Turn it 180° and the leg goes north instead.</p>
|
||
</figcaption>
|
||
</figure>
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Turnout · left — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="129.23223304703365" y1="46.23223304703363" x2="81.23223304703363" y2="94.23223304703363"/><line class="bs-rail" x1="132.76776695296635" y1="49.76776695296637" x2="84.76776695296637" y2="97.76776695296637"/><line class="bs-tie" x1="127.81801948466054" y1="44.81801948466054" x2="134.18198051533946" y2="51.18198051533946"/><line class="bs-tie" x1="120.96087662751768" y1="51.67516234180339" x2="127.3248376581966" y2="58.039123372482315"/><line class="bs-tie" x1="114.10373377037483" y1="58.532305198946254" x2="120.46769480105375" y2="64.89626622962518"/><line class="bs-tie" x1="107.24659091323197" y1="65.38944805608911" x2="113.61055194391089" y2="71.75340908676803"/><line class="bs-tie" x1="100.38944805608911" y1="72.24659091323197" x2="106.75340908676803" y2="78.61055194391089"/><line class="bs-tie" x1="93.53230519894626" y1="79.10373377037482" x2="99.89626622962518" y2="85.46769480105374"/><line class="bs-tie" x1="86.6751623418034" y1="85.96087662751768" x2="93.03912337248232" y2="92.3248376581966"/><line class="bs-tie" x1="79.81801948466054" y1="92.81801948466054" x2="86.18198051533946" y2="99.18198051533946"/><text class="bs-cn" x="6" y="12">Turnout · left</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">e–w · e–s</span><span class="slope">nw_se</span></p>
|
||
<p class="note">The mirror card. Same shape, opposite diagonal — which is the whole reason a siding needs one of each hand.</p>
|
||
</figcaption>
|
||
</figure>
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Curve · right — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">Curve · right</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">s–w</span><span class="slope">ne_sw</span></p>
|
||
<p class="note">The leg without the through track: along the centre line to the frog, then out at 45°.</p>
|
||
</figcaption>
|
||
</figure>
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Curve · left — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="129.23223304703365" y1="46.23223304703363" x2="81.23223304703363" y2="94.23223304703363"/><line class="bs-rail" x1="132.76776695296635" y1="49.76776695296637" x2="84.76776695296637" y2="97.76776695296637"/><line class="bs-tie" x1="127.81801948466054" y1="44.81801948466054" x2="134.18198051533946" y2="51.18198051533946"/><line class="bs-tie" x1="120.96087662751768" y1="51.67516234180339" x2="127.3248376581966" y2="58.039123372482315"/><line class="bs-tie" x1="114.10373377037483" y1="58.532305198946254" x2="120.46769480105375" y2="64.89626622962518"/><line class="bs-tie" x1="107.24659091323197" y1="65.38944805608911" x2="113.61055194391089" y2="71.75340908676803"/><line class="bs-tie" x1="100.38944805608911" y1="72.24659091323197" x2="106.75340908676803" y2="78.61055194391089"/><line class="bs-tie" x1="93.53230519894626" y1="79.10373377037482" x2="99.89626622962518" y2="85.46769480105374"/><line class="bs-tie" x1="86.6751623418034" y1="85.96087662751768" x2="93.03912337248232" y2="92.3248376581966"/><line class="bs-tie" x1="79.81801948466054" y1="92.81801948466054" x2="86.18198051533946" y2="99.18198051533946"/><text class="bs-cn" x="6" y="12">Curve · left</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">s–e</span><span class="slope">nw_se</span></p>
|
||
<p class="note">Its left-hand twin. Both cards also turn 180°, reaching ne and nw respectively.</p>
|
||
</figcaption>
|
||
</figure>
|
||
<figure class="spec">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 103" preserveAspectRatio="xMinYMin meet"><g data-cell="0,0" data-tip="Refinery — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Refinery</text></g></svg></div>
|
||
<figcaption>
|
||
<p class="meta"><span class="pairs">e–w</span><span class="slope none">—</span></p>
|
||
<p class="note">Every office and industry card on the printed sheet is a plain straight, with no diverging leg at all.</p>
|
||
</figcaption>
|
||
</figure>
|
||
</div>
|
||
</section>
|
||
|
||
<section>
|
||
<h2><span class="n">03</span>The rule</h2>
|
||
<p class="lede measure">Two cards stacked. Both pairs have the ports; in both, the two legs meet the shared edge at the same point. Only one of them is a railway.</p>
|
||
<div class="pair-grid">
|
||
<figure class="judged">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 202" preserveAspectRatio="xMinYMin meet"><g data-cell="1,0" data-tip="turnout · right — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="166" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="166" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="9.222222222222221" y1="52.5" x2="9.222222222222221" y2="43.5"/><line class="bs-tie" x1="18.444444444444443" y1="52.5" x2="18.444444444444443" y2="43.5"/><line class="bs-tie" x1="27.666666666666668" y1="52.5" x2="27.666666666666668" y2="43.5"/><line class="bs-tie" x1="36.888888888888886" y1="52.5" x2="36.888888888888886" y2="43.5"/><line class="bs-tie" x1="46.111111111111114" y1="52.5" x2="46.111111111111114" y2="43.5"/><line class="bs-tie" x1="55.333333333333336" y1="52.5" x2="55.333333333333336" y2="43.5"/><line class="bs-tie" x1="64.55555555555556" y1="52.5" x2="64.55555555555556" y2="43.5"/><line class="bs-tie" x1="73.77777777777777" y1="52.5" x2="73.77777777777777" y2="43.5"/><line class="bs-tie" x1="83" y1="52.5" x2="83" y2="43.5"/><line class="bs-tie" x1="92.22222222222223" y1="52.5" x2="92.22222222222223" y2="43.5"/><line class="bs-tie" x1="101.44444444444444" y1="52.5" x2="101.44444444444444" y2="43.5"/><line class="bs-tie" x1="110.66666666666667" y1="52.5" x2="110.66666666666667" y2="43.5"/><line class="bs-tie" x1="119.88888888888889" y1="52.5" x2="119.88888888888889" y2="43.5"/><line class="bs-tie" x1="129.11111111111111" y1="52.5" x2="129.11111111111111" y2="43.5"/><line class="bs-tie" x1="138.33333333333334" y1="52.5" x2="138.33333333333334" y2="43.5"/><line class="bs-tie" x1="147.55555555555554" y1="52.5" x2="147.55555555555554" y2="43.5"/><line class="bs-tie" x1="156.77777777777777" y1="52.5" x2="156.77777777777777" y2="43.5"/><line class="bs-tie" x1="166" y1="52.5" x2="166" y2="43.5"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">turnout · right</text></g><g data-cell="0,0" data-tip="curve · right — " transform="translate(0,99)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="132.76776695296635" y1="46.23223304703363" x2="84.76776695296637" y2="-1.7677669529663687"/><line class="bs-rail" x1="129.23223304703365" y1="49.76776695296637" x2="81.23223304703363" y2="1.7677669529663687"/><line class="bs-tie" x1="134.18198051533946" y1="44.81801948466054" x2="127.81801948466054" y2="51.18198051533946"/><line class="bs-tie" x1="127.3248376581966" y1="37.960876627517685" x2="120.96087662751768" y2="44.32483765819661"/><line class="bs-tie" x1="120.46769480105375" y1="31.10373377037482" x2="114.10373377037483" y2="37.467694801053746"/><line class="bs-tie" x1="113.61055194391089" y1="24.246590913231962" x2="107.24659091323197" y2="30.61055194391089"/><line class="bs-tie" x1="106.75340908676803" y1="17.38944805608911" x2="100.38944805608911" y2="23.753409086768038"/><line class="bs-tie" x1="99.89626622962518" y1="10.53230519894625" x2="93.53230519894626" y2="16.89626622962518"/><line class="bs-tie" x1="93.03912337248232" y1="3.6751623418033903" x2="86.6751623418034" y2="10.039123372482319"/><line class="bs-tie" x1="86.18198051533946" y1="-3.181980515339464" x2="79.81801948466054" y2="3.181980515339464"/><text class="bs-cn" x="6" y="12">curve · right</text></g></svg></div>
|
||
<p class="verdict yes">Joins</p>
|
||
<p class="note">Both legs lie on the <code>ne_sw</code> diagonal, so the rail crosses the card edge without bending. This is the right-hand turnout with its own right-hand curve.</p>
|
||
</figure>
|
||
<figure class="judged">
|
||
<div class="plate"><svg class="bs" viewBox="0 0 169 202" preserveAspectRatio="xMinYMin meet"><g data-cell="1,0" data-tip="turnout · right — " transform="translate(0,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="166" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="166" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="9.222222222222221" y1="52.5" x2="9.222222222222221" y2="43.5"/><line class="bs-tie" x1="18.444444444444443" y1="52.5" x2="18.444444444444443" y2="43.5"/><line class="bs-tie" x1="27.666666666666668" y1="52.5" x2="27.666666666666668" y2="43.5"/><line class="bs-tie" x1="36.888888888888886" y1="52.5" x2="36.888888888888886" y2="43.5"/><line class="bs-tie" x1="46.111111111111114" y1="52.5" x2="46.111111111111114" y2="43.5"/><line class="bs-tie" x1="55.333333333333336" y1="52.5" x2="55.333333333333336" y2="43.5"/><line class="bs-tie" x1="64.55555555555556" y1="52.5" x2="64.55555555555556" y2="43.5"/><line class="bs-tie" x1="73.77777777777777" y1="52.5" x2="73.77777777777777" y2="43.5"/><line class="bs-tie" x1="83" y1="52.5" x2="83" y2="43.5"/><line class="bs-tie" x1="92.22222222222223" y1="52.5" x2="92.22222222222223" y2="43.5"/><line class="bs-tie" x1="101.44444444444444" y1="52.5" x2="101.44444444444444" y2="43.5"/><line class="bs-tie" x1="110.66666666666667" y1="52.5" x2="110.66666666666667" y2="43.5"/><line class="bs-tie" x1="119.88888888888889" y1="52.5" x2="119.88888888888889" y2="43.5"/><line class="bs-tie" x1="129.11111111111111" y1="52.5" x2="129.11111111111111" y2="43.5"/><line class="bs-tie" x1="138.33333333333334" y1="52.5" x2="138.33333333333334" y2="43.5"/><line class="bs-tie" x1="147.55555555555554" y1="52.5" x2="147.55555555555554" y2="43.5"/><line class="bs-tie" x1="156.77777777777777" y1="52.5" x2="156.77777777777777" y2="43.5"/><line class="bs-tie" x1="166" y1="52.5" x2="166" y2="43.5"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">turnout · right</text></g><g data-cell="0,0" data-tip="curve · left — " transform="translate(0,99)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="36.76776695296637" y1="49.76776695296637" x2="84.76776695296637" y2="1.7677669529663687"/><line class="bs-rail" x1="33.23223304703363" y1="46.23223304703363" x2="81.23223304703363" y2="-1.7677669529663687"/><line class="bs-tie" x1="38.18198051533946" y1="51.18198051533946" x2="31.818019484660535" y2="44.81801948466054"/><line class="bs-tie" x1="45.039123372482315" y1="44.32483765819661" x2="38.67516234180339" y2="37.960876627517685"/><line class="bs-tie" x1="51.896266229625176" y1="37.467694801053746" x2="45.532305198946254" y2="31.10373377037482"/><line class="bs-tie" x1="58.75340908676803" y1="30.61055194391089" x2="52.38944805608911" y2="24.246590913231962"/><line class="bs-tie" x1="65.61055194391089" y1="23.753409086768038" x2="59.24659091323197" y2="17.38944805608911"/><line class="bs-tie" x1="72.46769480105374" y1="16.89626622962518" x2="66.10373377037482" y2="10.53230519894625"/><line class="bs-tie" x1="79.3248376581966" y1="10.039123372482319" x2="72.96087662751768" y2="3.6751623418033903"/><line class="bs-tie" x1="86.18198051533946" y1="3.181980515339464" x2="79.81801948466054" y2="-3.181980515339464"/><text class="bs-cn" x="6" y="12">curve · left</text></g></svg></div>
|
||
<p class="verdict no">Does not join</p>
|
||
<p class="note">The left-hand curve is on <code>nw_se</code>. The rails touch and turn straight back — a V, not a junction. The engine refuses it, and the picture has to show why.</p>
|
||
</figure>
|
||
</div>
|
||
</section>
|
||
|
||
<section>
|
||
<h2><span class="n">04</span>A district</h2>
|
||
<p class="lede measure">The Running Track between the Limits, with a leg going up at the west end and a siding hanging below at the east. Because no card joins north to south, dropping a row always costs two cards — the leg out, then a curve turning the run back east–west. Districts come out wide and shallow.</p>
|
||
<div class="plate plate--wide"><svg class="bs" viewBox="0 0 1352 301" preserveAspectRatio="xMinYMin meet"><g data-cell="0,-2" data-tip="Limits — " transform="translate(0,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Limits</text></g><g data-cell="0,-1" data-tip="Whistle Post — " transform="translate(169,99)"><rect class="bs-card bs-office bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Whistle Post</text></g><g data-cell="0,0" data-tip="turnout · right 180° — " transform="translate(338,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="132.76776695296635" y1="46.23223304703363" x2="84.76776695296637" y2="-1.7677669529663687"/><line class="bs-rail" x1="129.23223304703365" y1="49.76776695296637" x2="81.23223304703363" y2="1.7677669529663687"/><line class="bs-tie" x1="134.18198051533946" y1="44.81801948466054" x2="127.81801948466054" y2="51.18198051533946"/><line class="bs-tie" x1="127.3248376581966" y1="37.960876627517685" x2="120.96087662751768" y2="44.32483765819661"/><line class="bs-tie" x1="120.46769480105375" y1="31.10373377037482" x2="114.10373377037483" y2="37.467694801053746"/><line class="bs-tie" x1="113.61055194391089" y1="24.246590913231962" x2="107.24659091323197" y2="30.61055194391089"/><line class="bs-tie" x1="106.75340908676803" y1="17.38944805608911" x2="100.38944805608911" y2="23.753409086768038"/><line class="bs-tie" x1="99.89626622962518" y1="10.53230519894625" x2="93.53230519894626" y2="16.89626622962518"/><line class="bs-tie" x1="93.03912337248232" y1="3.6751623418033903" x2="86.6751623418034" y2="10.039123372482319"/><line class="bs-tie" x1="86.18198051533946" y1="-3.181980515339464" x2="79.81801948466054" y2="3.181980515339464"/><text class="bs-cn" x="6" y="12">turnout · right 180°</text></g><g data-cell="0,1" data-tip="straight — " transform="translate(507,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">straight</text></g><g data-cell="0,2" data-tip="turnout · right — " transform="translate(676,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="166" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="166" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="9.222222222222221" y1="52.5" x2="9.222222222222221" y2="43.5"/><line class="bs-tie" x1="18.444444444444443" y1="52.5" x2="18.444444444444443" y2="43.5"/><line class="bs-tie" x1="27.666666666666668" y1="52.5" x2="27.666666666666668" y2="43.5"/><line class="bs-tie" x1="36.888888888888886" y1="52.5" x2="36.888888888888886" y2="43.5"/><line class="bs-tie" x1="46.111111111111114" y1="52.5" x2="46.111111111111114" y2="43.5"/><line class="bs-tie" x1="55.333333333333336" y1="52.5" x2="55.333333333333336" y2="43.5"/><line class="bs-tie" x1="64.55555555555556" y1="52.5" x2="64.55555555555556" y2="43.5"/><line class="bs-tie" x1="73.77777777777777" y1="52.5" x2="73.77777777777777" y2="43.5"/><line class="bs-tie" x1="83" y1="52.5" x2="83" y2="43.5"/><line class="bs-tie" x1="92.22222222222223" y1="52.5" x2="92.22222222222223" y2="43.5"/><line class="bs-tie" x1="101.44444444444444" y1="52.5" x2="101.44444444444444" y2="43.5"/><line class="bs-tie" x1="110.66666666666667" y1="52.5" x2="110.66666666666667" y2="43.5"/><line class="bs-tie" x1="119.88888888888889" y1="52.5" x2="119.88888888888889" y2="43.5"/><line class="bs-tie" x1="129.11111111111111" y1="52.5" x2="129.11111111111111" y2="43.5"/><line class="bs-tie" x1="138.33333333333334" y1="52.5" x2="138.33333333333334" y2="43.5"/><line class="bs-tie" x1="147.55555555555554" y1="52.5" x2="147.55555555555554" y2="43.5"/><line class="bs-tie" x1="156.77777777777777" y1="52.5" x2="156.77777777777777" y2="43.5"/><line class="bs-tie" x1="166" y1="52.5" x2="166" y2="43.5"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">turnout · right</text></g><g data-cell="0,3" data-tip="straight — " transform="translate(845,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">straight</text></g><g data-cell="0,4" data-tip="turnout · left — " transform="translate(1014,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="129.23223304703365" y1="46.23223304703363" x2="81.23223304703363" y2="94.23223304703363"/><line class="bs-rail" x1="132.76776695296635" y1="49.76776695296637" x2="84.76776695296637" y2="97.76776695296637"/><line class="bs-tie" x1="127.81801948466054" y1="44.81801948466054" x2="134.18198051533946" y2="51.18198051533946"/><line class="bs-tie" x1="120.96087662751768" y1="51.67516234180339" x2="127.3248376581966" y2="58.039123372482315"/><line class="bs-tie" x1="114.10373377037483" y1="58.532305198946254" x2="120.46769480105375" y2="64.89626622962518"/><line class="bs-tie" x1="107.24659091323197" y1="65.38944805608911" x2="113.61055194391089" y2="71.75340908676803"/><line class="bs-tie" x1="100.38944805608911" y1="72.24659091323197" x2="106.75340908676803" y2="78.61055194391089"/><line class="bs-tie" x1="93.53230519894626" y1="79.10373377037482" x2="99.89626622962518" y2="85.46769480105374"/><line class="bs-tie" x1="86.6751623418034" y1="85.96087662751768" x2="93.03912337248232" y2="92.3248376581966"/><line class="bs-tie" x1="79.81801948466054" y1="92.81801948466054" x2="86.18198051533946" y2="99.18198051533946"/><text class="bs-cn" x="6" y="12">turnout · left</text></g><g data-cell="0,5" data-tip="Limits — " transform="translate(1183,99)"><rect class="bs-card bs-trk bs-run" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Limits</text></g><g data-cell="1,0" data-tip="curve · right — " transform="translate(338,0)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="33.23223304703363" y1="49.76776695296637" x2="81.23223304703363" y2="97.76776695296637"/><line class="bs-rail" x1="36.76776695296637" y1="46.23223304703363" x2="84.76776695296637" y2="94.23223304703363"/><line class="bs-tie" x1="31.818019484660535" y1="51.18198051533946" x2="38.18198051533946" y2="44.81801948466054"/><line class="bs-tie" x1="38.67516234180339" y1="58.039123372482315" x2="45.039123372482315" y2="51.67516234180339"/><line class="bs-tie" x1="45.532305198946254" y1="64.89626622962518" x2="51.896266229625176" y2="58.532305198946254"/><line class="bs-tie" x1="52.38944805608911" y1="71.75340908676803" x2="58.75340908676803" y2="65.38944805608911"/><line class="bs-tie" x1="59.24659091323197" y1="78.61055194391089" x2="65.61055194391089" y2="72.24659091323197"/><line class="bs-tie" x1="66.10373377037482" y1="85.46769480105374" x2="72.46769480105374" y2="79.10373377037482"/><line class="bs-tie" x1="72.96087662751768" y1="92.3248376581966" x2="79.3248376581966" y2="85.96087662751768"/><line class="bs-tie" x1="79.81801948466054" y1="99.18198051533946" x2="86.18198051533946" y2="92.81801948466054"/><text class="bs-cn" x="6" y="12">curve · right</text></g><g data-cell="-1,2" data-tip="curve · right — " transform="translate(676,198)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="131" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="131" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="154.33333333333334" y1="43.5" x2="154.33333333333334" y2="52.5"/><line class="bs-tie" x1="142.66666666666666" y1="43.5" x2="142.66666666666666" y2="52.5"/><line class="bs-tie" x1="131" y1="43.5" x2="131" y2="52.5"/><line class="bs-rail" x1="132.76776695296635" y1="46.23223304703363" x2="84.76776695296637" y2="-1.7677669529663687"/><line class="bs-rail" x1="129.23223304703365" y1="49.76776695296637" x2="81.23223304703363" y2="1.7677669529663687"/><line class="bs-tie" x1="134.18198051533946" y1="44.81801948466054" x2="127.81801948466054" y2="51.18198051533946"/><line class="bs-tie" x1="127.3248376581966" y1="37.960876627517685" x2="120.96087662751768" y2="44.32483765819661"/><line class="bs-tie" x1="120.46769480105375" y1="31.10373377037482" x2="114.10373377037483" y2="37.467694801053746"/><line class="bs-tie" x1="113.61055194391089" y1="24.246590913231962" x2="107.24659091323197" y2="30.61055194391089"/><line class="bs-tie" x1="106.75340908676803" y1="17.38944805608911" x2="100.38944805608911" y2="23.753409086768038"/><line class="bs-tie" x1="99.89626622962518" y1="10.53230519894625" x2="93.53230519894626" y2="16.89626622962518"/><line class="bs-tie" x1="93.03912337248232" y1="3.6751623418033903" x2="86.6751623418034" y2="10.039123372482319"/><line class="bs-tie" x1="86.18198051533946" y1="-3.181980515339464" x2="79.81801948466054" y2="3.181980515339464"/><text class="bs-cn" x="6" y="12">curve · right</text></g><g data-cell="-1,3" data-tip="Refinery — " transform="translate(845,198)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="166" y1="45.5" x2="0" y2="45.5"/><line class="bs-rail" x1="166" y1="50.5" x2="0" y2="50.5"/><line class="bs-tie" x1="166" y1="43.5" x2="166" y2="52.5"/><line class="bs-tie" x1="156.77777777777777" y1="43.5" x2="156.77777777777777" y2="52.5"/><line class="bs-tie" x1="147.55555555555554" y1="43.5" x2="147.55555555555554" y2="52.5"/><line class="bs-tie" x1="138.33333333333334" y1="43.5" x2="138.33333333333334" y2="52.5"/><line class="bs-tie" x1="129.11111111111111" y1="43.5" x2="129.11111111111111" y2="52.5"/><line class="bs-tie" x1="119.88888888888889" y1="43.5" x2="119.88888888888889" y2="52.5"/><line class="bs-tie" x1="110.66666666666666" y1="43.5" x2="110.66666666666666" y2="52.5"/><line class="bs-tie" x1="101.44444444444444" y1="43.5" x2="101.44444444444444" y2="52.5"/><line class="bs-tie" x1="92.22222222222223" y1="43.5" x2="92.22222222222223" y2="52.5"/><line class="bs-tie" x1="83" y1="43.5" x2="83" y2="52.5"/><line class="bs-tie" x1="73.77777777777777" y1="43.5" x2="73.77777777777777" y2="52.5"/><line class="bs-tie" x1="64.55555555555556" y1="43.5" x2="64.55555555555556" y2="52.5"/><line class="bs-tie" x1="55.33333333333333" y1="43.5" x2="55.33333333333333" y2="52.5"/><line class="bs-tie" x1="46.111111111111114" y1="43.5" x2="46.111111111111114" y2="52.5"/><line class="bs-tie" x1="36.888888888888886" y1="43.5" x2="36.888888888888886" y2="52.5"/><line class="bs-tie" x1="27.666666666666657" y1="43.5" x2="27.666666666666657" y2="52.5"/><line class="bs-tie" x1="18.444444444444457" y1="43.5" x2="18.444444444444457" y2="52.5"/><line class="bs-tie" x1="9.222222222222229" y1="43.5" x2="9.222222222222229" y2="52.5"/><line class="bs-tie" x1="0" y1="43.5" x2="0" y2="52.5"/><text class="bs-cn" x="6" y="12">Refinery</text></g><g data-cell="-1,4" data-tip="curve · left — " transform="translate(1014,198)"><rect class="bs-card bs-trk" x="0" y="0" width="166" height="96" rx="4"/><line class="bs-rail" x1="0" y1="50.5" x2="35" y2="50.5"/><line class="bs-rail" x1="0" y1="45.5" x2="35" y2="45.5"/><line class="bs-tie" x1="0" y1="52.5" x2="0" y2="43.5"/><line class="bs-tie" x1="11.666666666666666" y1="52.5" x2="11.666666666666666" y2="43.5"/><line class="bs-tie" x1="23.333333333333332" y1="52.5" x2="23.333333333333332" y2="43.5"/><line class="bs-tie" x1="35" y1="52.5" x2="35" y2="43.5"/><line class="bs-rail" x1="36.76776695296637" y1="49.76776695296637" x2="84.76776695296637" y2="1.7677669529663687"/><line class="bs-rail" x1="33.23223304703363" y1="46.23223304703363" x2="81.23223304703363" y2="-1.7677669529663687"/><line class="bs-tie" x1="38.18198051533946" y1="51.18198051533946" x2="31.818019484660535" y2="44.81801948466054"/><line class="bs-tie" x1="45.039123372482315" y1="44.32483765819661" x2="38.67516234180339" y2="37.960876627517685"/><line class="bs-tie" x1="51.896266229625176" y1="37.467694801053746" x2="45.532305198946254" y2="31.10373377037482"/><line class="bs-tie" x1="58.75340908676803" y1="30.61055194391089" x2="52.38944805608911" y2="24.246590913231962"/><line class="bs-tie" x1="65.61055194391089" y1="23.753409086768038" x2="59.24659091323197" y2="17.38944805608911"/><line class="bs-tie" x1="72.46769480105374" y1="16.89626622962518" x2="66.10373377037482" y2="10.53230519894625"/><line class="bs-tie" x1="79.3248376581966" y1="10.039123372482319" x2="72.96087662751768" y2="3.6751623418033903"/><line class="bs-tie" x1="86.18198051533946" y1="3.181980515339464" x2="79.81801948466054" y2="-3.181980515339464"/><text class="bs-cn" x="6" y="12">curve · left</text></g><text class="bs-rowlab" x="2" y="191">RUNNING TRACK</text></svg></div>
|
||
</section>
|
||
|
||
<footer class="foot measure">
|
||
Geometry: <code>connectionsFor</code>, <code>slopeAt</code>, <code>joins</code> — src/engine/track.ts<br>
|
||
Drawing: <code>officeSvg</code> — src/sim/board-svg.ts<br>
|
||
Source measurements: docs/tracks.png
|
||
</footer>
|
||
</div>
|