.public-site .roundabout-demo{--road:#1b3d5d;--road-edge:#708ba4;--marking:var(--ink);--rule:rgba(112,131,154,.38);--scene:#0a2d57;--class-bus:#4f9be4}.public-site .roundabout-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}.public-site .roundabout-kicker{display:block;margin-bottom:5px;color:var(--accent);font:11px/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.public-site .roundabout-heading strong{display:block;font:500 20px/1.3 var(--font-ui);letter-spacing:-.02em;text-wrap:balance}.public-site .roundabout-controls{display:flex;flex-shrink:0;gap:6px}.public-site .roundabout-controls button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px 11px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink);font:500 12px/1 var(--font-ui)}.public-site .roundabout-controls button:first-child{min-width:82px}.public-site .roundabout-controls button:hover{border-color:var(--accent);background:var(--panel)}.public-site .roundabout-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.public-site .roundabout-controls button[aria-pressed=true]{border-color:var(--accent);background:var(--brand-action);color:var(--brand-on-action)}.public-site .roundabout-controls svg{width:15px;height:15px;flex-shrink:0}.public-site .roundabout-demo .roundabout-controls{align-self:flex-start;margin-top:calc((11px * 1.5 + 5px + 20px * 1.3 - 44px) / 2)}.public-site .roundabout-scene{position:relative;overflow:hidden;container-type:inline-size;border-bottom:1px solid var(--line);background-color:var(--scene);background-image:linear-gradient(rgba(140,200,255,.05) 1px,transparent 0),linear-gradient(90deg,rgba(140,200,255,.05) 1px,transparent 0);background-size:32px 32px}.public-site .roundabout-demo .roundabout-scene>.roundabout-map{display:block;width:100%;max-width:none;height:auto;margin:0;overflow:hidden;font-family:var(--font-mono)}.public-site .roundabout-road{fill:var(--road);stroke:var(--road-edge);stroke-width:1.5;stroke-linejoin:round}.public-site .roundabout-island,.public-site .roundabout-splitter{fill:var(--bg);stroke:var(--road-edge);stroke-width:1.5}.public-site .roundabout-centreline{fill:none;stroke:var(--marking);stroke-width:1.2;opacity:.5}.public-site .roundabout-giveway{fill:none;stroke:var(--marking);stroke-width:1.6;stroke-dasharray:4.8 2.4;opacity:.7}.public-site .roundabout-line path{stroke-width:2.4;stroke-linecap:round}.public-site .roundabout-line.entry{fill:var(--accent);stroke:var(--accent)}.public-site .roundabout-line.exit{fill:var(--ink);stroke:var(--ink)}.public-site .roundabout-line.exit path{stroke-dasharray:0 5}.public-site .roundabout-pulse{fill:none;stroke-width:9;stroke-linecap:round}.public-site .roundabout-pulse.entry{stroke:var(--accent)}.public-site .roundabout-pulse.exit{stroke:var(--ink)}.public-site .roundabout-label-plate{fill:var(--scene);opacity:.9}.public-site .roundabout-label{font-size:calc(11px * var(--k, 1))}.public-site .roundabout-line-name{letter-spacing:.08em;text-transform:uppercase}.public-site .roundabout-line-count{fill:var(--ink);font-size:1.7273em;font-variant-numeric:tabular-nums}.public-site .roundabout-label.entry .roundabout-line-name,.public-site .roundabout-pop{fill:var(--accent)}.public-site .roundabout-label.exit .roundabout-line-name,.public-site .roundabout-label.exit .roundabout-pop{fill:var(--ink)}.public-site .roundabout-pop{font-size:1.0909em;font-weight:500}.public-site .roundabout-island-label{fill:var(--muted);font-size:calc(11px * var(--k, 1));letter-spacing:.1em}.public-site .roundabout-island-count{fill:var(--ink);font-family:var(--font-ui);font-size:calc(28px * var(--k, 1));font-weight:500;font-variant-numeric:tabular-nums}.public-site .roundabout-body,.public-site .roundabout-rider{fill:var(--ink)}.public-site .roundabout-roof{fill:var(--muted)}.public-site .roundabout-glass,.public-site .roundabout-helmet{fill:var(--bg)}.public-site .roundabout-frame{fill:none;stroke:var(--muted);stroke-width:1.3;stroke-linecap:round}.public-site .roundabout-box{fill:rgba(140,200,255,.07);stroke:var(--accent);stroke-width:1.1}.public-site .roundabout-vehicle[data-state=approaching] .roundabout-box{stroke-dasharray:3 2.5}.public-site .roundabout-vehicle[data-state=counted] .roundabout-box{stroke:var(--ink);fill:rgba(244,247,251,.06)}.public-site .roundabout-tag{font-size:calc(11px * var(--k, 1))}.public-site .roundabout-tag rect{fill:var(--accent)}.public-site .roundabout-tag[data-state=counted] rect{fill:var(--ink)}.public-site .roundabout-tag text{fill:var(--bg);font-weight:500}.public-site .roundabout-hud{position:absolute;top:10px;left:14px;z-index:1;display:grid;grid-template-columns:auto auto;justify-content:start;-moz-column-gap:8px;column-gap:8px;align-items:baseline;margin:0;color:var(--ink);font:12px/1.2 var(--font-mono);font-variant-numeric:tabular-nums;pointer-events:none}.public-site .roundabout-hud>span:first-child{color:var(--accent);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.public-site .roundabout-progress{display:block;grid-column:1/-1;width:100%;height:2px;margin-top:4px;background:var(--rule)}.public-site .roundabout-progress span{display:block;height:100%;background:var(--accent);transform-origin:0 50%}@container (max-width: 479px){.public-site .roundabout-hud{position:static;padding:10px 14px 0;font-size:11px}}.public-site .roundabout-data{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"lines matrix" "classes classes";gap:16px 28px;padding:14px 20px 16px}.public-site .roundabout-lines{grid-area:lines}.public-site .roundabout-matrix{grid-area:matrix}.public-site .roundabout-table{width:100%;border-collapse:collapse;font:12px/1.35 var(--font-mono);font-variant-numeric:tabular-nums}.public-site :is(.roundabout-table caption,.roundabout-caption){margin:0;padding-bottom:6px;color:var(--accent);font:11px/1.5 var(--font-mono);letter-spacing:.1em;text-align:left;text-transform:uppercase;caption-side:top}.public-site .roundabout-table :is(th,td){padding:4px 0 4px 8px;border-bottom:1px solid var(--rule);font-weight:400;text-align:right;white-space:nowrap}.public-site .roundabout-table thead :is(th,td){color:var(--muted);font-size:11px}.public-site .roundabout-table tbody th{padding-left:0;color:var(--muted);text-align:left}.public-site .roundabout-table .roundabout-none{color:var(--muted)}.public-site .roundabout-table .roundabout-total{color:var(--accent)}.public-site .roundabout-classes{grid-area:classes}.public-site .roundabout-classes dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;margin:0;font:12px/1.35 var(--font-mono);font-variant-numeric:tabular-nums}.public-site .roundabout-classes dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--rule)}.public-site .roundabout-classes dt{color:var(--muted);font-size:11px;white-space:nowrap}.public-site .roundabout-classes dd{margin:0;color:var(--ink)}.public-site .roundabout-swatch{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:1px;vertical-align:0}.public-site .roundabout-split{display:flex;gap:2px;height:4px;margin-top:9px;background:var(--rule)}.public-site .roundabout-split span{flex:0 1 0;min-width:0;transition:flex-grow .3s ease}.public-site :is(.roundabout-swatch,.roundabout-split span).car{background:var(--accent)}.public-site :is(.roundabout-swatch,.roundabout-split span).utility{background:var(--ink)}.public-site :is(.roundabout-swatch,.roundabout-split span).bus{background:var(--class-bus)}.public-site :is(.roundabout-swatch,.roundabout-split span).bicycle{background:var(--muted)}.public-site .roundabout-motion-note{padding:0 20px 16px;color:var(--muted);font:12px/1.6 var(--font-ui)}.public-site .roundabout-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:600px){.public-site .roundabout-heading{gap:10px;padding:14px}.public-site .roundabout-heading strong{font-size:17px}.public-site .roundabout-controls{gap:4px}.public-site .roundabout-controls button{padding-inline:9px}.public-site .roundabout-demo .roundabout-controls{margin-top:0}.public-site .roundabout-data,.public-site .roundabout-motion-note{padding-inline:14px}}@media (max-width:480px){.public-site .roundabout-heading{flex-wrap:wrap}.public-site .roundabout-heading>span:first-child{flex:1 1 100%}.public-site .roundabout-demo .roundabout-scene>.roundabout-map{width:150%;margin-left:-25%}.public-site .roundabout-data{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"lines classes" "matrix matrix";gap:16px}.public-site .roundabout-caption-lead{display:none}.public-site .roundabout-classes dl{grid-template-columns:minmax(0,1fr);gap:0}.public-site .roundabout-split{margin-top:8px}}@media (prefers-reduced-motion:reduce){.public-site .roundabout-split span{transition:none}}@media (forced-colors:active){.public-site .roundabout-controls button[aria-pressed=true]{forced-color-adjust:none;border-color:Highlight;background:Highlight;color:HighlightText}.public-site .roundabout-demo .roundabout-scene:has(>.roundabout-map){forced-color-adjust:none}}.public-site .callout.traffic-counting-guide{align-self:start;margin-top:0}.public-site .traffic-counting-guide>h3+p{margin-top:14px}.public-site .traffic-conditions-list,.public-site .traffic-counting-steps{margin-block:24px;padding-left:24px}.public-site .traffic-counting-steps{list-style:decimal-leading-zero outside;padding-left:32px}.public-site .traffic-conditions-list{list-style:square outside}.public-site :is(.traffic-counting-steps,.traffic-conditions-list)>li{padding-left:8px}.public-site :is(.traffic-counting-steps,.traffic-conditions-list)>li+li{margin-top:18px}.public-site :is(.traffic-counting-steps,.traffic-conditions-list)>li::marker{color:var(--accent);font-family:var(--font-mono);font-size:12px}.public-site :is(.traffic-counting-steps,.traffic-conditions-list) strong{display:block;margin-bottom:3px}.public-site .traffic-counting-note{border-top:1px solid var(--line);padding-top:18px}.public-site .traffic-counting-guide>.text-link{display:inline-block;margin-top:18px}