#st-rivalry-workspace .st-doc{max-width:920px}
#st-rivalry-workspace .st-doc h2{font-size:18px;margin:34px 0 8px;padding-top:14px;border-top:1px solid var(--st-line);scroll-margin-top:12px}
#st-rivalry-workspace .st-doc h3{font-size:14px;margin:20px 0 6px}
#st-rivalry-workspace .st-doc p,#st-rivalry-workspace .st-doc li{max-width:76ch}
#st-rivalry-workspace .st-doc p{margin:8px 0}
#st-rivalry-workspace .st-doc ul,#st-rivalry-workspace .st-doc ol{margin:8px 0;padding-left:20px}
#st-rivalry-workspace .st-doc li{margin:4px 0}
#st-rivalry-workspace .st-doc code{font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--st-panel);border:1px solid var(--st-line);border-radius:3px;padding:0 4px;overflow-wrap:anywhere}
#st-rivalry-workspace .st-doc table{margin:10px 0}
#st-rivalry-workspace .st-doc td{vertical-align:top}
#st-rivalry-workspace .st-doc td.st-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#st-rivalry-workspace .st-toc{background:var(--st-panel);border-radius:6px;padding:12px 16px;margin:14px 0;columns:2 240px;column-gap:28px}
#st-rivalry-workspace .st-toc a{display:block;padding:3px 0;text-decoration:none;break-inside:avoid}
#st-rivalry-workspace .st-lede{font-size:15px;color:var(--st-fg)}

/* flow charts: boxes joined by arrows, top to bottom */
#st-rivalry-workspace .st-flow{display:flex;flex-direction:column;align-items:stretch;margin:14px 0;max-width:680px}
#st-rivalry-workspace .st-flow figcaption{color:var(--st-muted);font-size:12px;margin-top:8px}
#st-rivalry-workspace .st-box{background:var(--st-panel);border:1px solid var(--st-line);border-radius:6px;padding:9px 12px;min-width:0}
#st-rivalry-workspace .st-box b{display:block;font-weight:600}
#st-rivalry-workspace .st-box span{display:block;color:var(--st-muted);font-size:12px}
#st-rivalry-workspace .st-box.st-key{border-color:var(--st-accent)}
#st-rivalry-workspace .st-box.st-bad{border-color:var(--st-warn)}
#st-rivalry-workspace .st-box.st-bad b{color:var(--st-warn)}
#st-rivalry-workspace .st-arrow{text-align:center;color:var(--st-muted);font-size:12px;line-height:1.2;padding:3px 0}
#st-rivalry-workspace .st-arrow::after{content:"↓";display:block;font-size:15px;color:var(--st-accent)}
#st-rivalry-workspace .st-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px}
#st-rivalry-workspace .st-split>div{display:flex;flex-direction:column;min-width:0}

/* decision ladder: tested top to bottom, first match wins */
#st-rivalry-workspace .st-ladder{margin:14px 0;max-width:820px;counter-reset:rung}
#st-rivalry-workspace .st-rung{display:grid;grid-template-columns:minmax(0,1.25fr) 52px minmax(0,1fr);align-items:stretch;counter-increment:rung}
#st-rivalry-workspace .st-rung+.st-rung{margin-top:22px;position:relative}
#st-rivalry-workspace .st-rung+.st-rung::before{content:"no ↓";position:absolute;top:-19px;left:14px;font-size:11px;color:var(--st-muted)}
#st-rivalry-workspace .st-if{border:1px dashed var(--st-accent);border-radius:6px;padding:9px 12px;min-width:0}
#st-rivalry-workspace .st-if b{display:block;font-weight:600}
#st-rivalry-workspace .st-if b::before{content:counter(rung) ". ";color:var(--st-accent)}
#st-rivalry-workspace .st-if span{display:block;color:var(--st-muted);font-size:12px}
#st-rivalry-workspace .st-yes{display:flex;align-items:center;justify-content:center;color:var(--st-accent);font-size:11px;white-space:nowrap}
#st-rivalry-workspace .st-yes::after{content:"yes →"}
#st-rivalry-workspace .st-ladder figcaption{color:var(--st-muted);font-size:12px;margin-top:8px}
#st-rivalry-workspace .st-tag{display:inline-block;border:1px solid var(--st-line);border-radius:10px;padding:0 7px;font-size:11px;white-space:nowrap}
#st-rivalry-workspace .st-tag.st-fixed{border-color:var(--st-accent);color:var(--st-accent)}
#st-rivalry-workspace .st-tag.st-open{border-color:var(--st-warn);color:var(--st-warn)}
@media(max-width:620px){
  #st-rivalry-workspace .st-rung{grid-template-columns:minmax(0,1fr)}
  #st-rivalry-workspace .st-yes{justify-content:flex-start;padding:3px 14px}
  #st-rivalry-workspace .st-yes::after{content:"yes ↓"}
}
#st-rivalry-workspace .st-doc .st-wide{min-width:800px}
#st-rivalry-workspace .st-doc .st-mid{min-width:600px}

/* two cars on a small circuit; they swap the lead twice per cycle */
#st-rivalry-workspace .st-race{width:260px;max-width:100%;height:auto;flex-shrink:0;overflow:visible}
#st-rivalry-workspace .st-race-road{fill:none;stroke:var(--st-line);stroke-width:13;stroke-linejoin:round}
#st-rivalry-workspace .st-race-line{fill:none;stroke:var(--st-bg);stroke-width:.8;stroke-dasharray:3 4}
#st-rivalry-workspace .st-car{offset-path:path("M30 62 C12 62 8 30 28 20 C48 10 78 14 96 26 C108 34 116 34 128 26 C146 14 176 8 196 18 C220 30 218 62 196 66 C172 70 150 58 128 58 C100 58 62 62 30 62 Z");offset-rotate:auto;animation:20s linear infinite}
#st-rivalry-workspace .st-car-glass{fill:var(--st-bg);opacity:.75}
#st-rivalry-workspace .st-car-a{fill:var(--st-accent);offset-distance:3%;animation-name:st-lap-a}
#st-rivalry-workspace .st-car-b{fill:var(--st-warn);offset-distance:97%;animation-name:st-lap-b}
@keyframes st-lap-a{0%{offset-distance:3%}22%{offset-distance:68%}50%{offset-distance:147%}74%{offset-distance:224%}100%{offset-distance:303%}}
@keyframes st-lap-b{0%{offset-distance:-3%}22%{offset-distance:62%}50%{offset-distance:153%}74%{offset-distance:230%}100%{offset-distance:297%}}

/* the same two cars on a track round the edge of the window (js/docs.js) */
#st-rivalry-workspace .st-edge{display:none;position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
#st-rivalry-workspace.st-has-edge .st-edge{display:block}
#st-rivalry-workspace.st-has-edge .st-race{display:none}
#st-rivalry-workspace.st-has-edge .st-window{padding:44px 48px}
#st-rivalry-workspace .st-edge .st-race-road{stroke-width:17}
#st-rivalry-workspace .st-edge .st-race-line{stroke-width:1;stroke-dasharray:5 7}
#st-rivalry-workspace .st-edge .st-car-a{offset-distance:.7%;animation-name:st-edge-a}
#st-rivalry-workspace .st-edge .st-car-b{offset-distance:99.3%;animation-name:st-edge-b}
@keyframes st-edge-a{0%{offset-distance:.7%}22%{offset-distance:66%}50%{offset-distance:149.2%}74%{offset-distance:221.2%}100%{offset-distance:300.7%}}
@keyframes st-edge-b{0%{offset-distance:-.7%}22%{offset-distance:64.6%}50%{offset-distance:150.6%}74%{offset-distance:222.6%}100%{offset-distance:299.3%}}
/* last and !important: the edge rules above name an animation and js/docs.js sets a duration inline */
@media(prefers-reduced-motion:reduce){#st-rivalry-workspace .st-car{animation:none!important}}
