/* Diffusion lab (human-geography/assets/tools/diffusion-lab.js). OWNED BY THIS TOOL ONLY (builder T4).
   Country A is drawn at the page's pixel size, so text stays 12 to 14 px on
   every screen. Steps are one teal family, dark (first) to light (last), so
   the order reads in grey too; a changed version is a vermillion diamond;
   places not reached are hollow. Every color has a written label too. */
.dl-svg,.dl-qfig,.dl-leg{--dl-land:#F3EEE2;--dl-line:#9C9488;--dl-s1:#0B4F5A;--dl-s2:#1F7E8C;--dl-s3:#5BB0BC;--dl-s4:#A7D9E0;
  --dl-off:#FFFFFF;--dl-offl:#8A8478;--dl-chg:#C24E00;--dl-move:#7A3310;--dl-back:#5B6670;--dl-tag:#FFFFFF;--dl-tagt:#1B1B1B;--dl-quiet:#C9C2B4;--dl-mtn:#8C7B62;}
:root[data-theme="dark"] .dl-svg,:root[data-theme="dark"] .dl-qfig,:root[data-theme="dark"] .dl-leg{--dl-land:#2A2F2E;--dl-line:#6F766F;--dl-s1:#E1F6F9;--dl-s2:#8CCFD9;--dl-s3:#3E98A6;--dl-s4:#1E5C66;
  --dl-off:#1B2021;--dl-offl:#8D958F;--dl-chg:#FF9A5C;--dl-move:#F2B48A;--dl-back:#A9B4BE;--dl-tag:#1B2021;--dl-tagt:#F1F1EE;--dl-quiet:#58605B;--dl-mtn:#B7A586;}
.dl-card{display:grid;gap:14px;}
.dl-fig{display:flex;flex-direction:column;gap:8px;}
.dl-pic{position:relative;min-height:300px;height:min(62vh,560px);}
.ls-root .dl-fig{flex:1 1 auto;min-height:0;height:100%;}
.ls-root .dl-pic{flex:1 1 auto;height:auto;min-height:260px;}
.dl-svg{display:block;width:100%;height:100%;font-family:var(--font-ui);user-select:none;-webkit-user-select:none;}
.dl-pic .dl-svg{position:absolute;inset:0;}
.dl-qfig{margin:0;} .dl-qfig .dl-svg{height:auto;}
.dl-grp[hidden]{display:none;}
.dl-ctl{display:flex;flex-direction:column;gap:12px;}
.dl-row{display:block;}
.dl-chips{display:flex;gap:8px;flex-wrap:wrap;}
.dl-lbl{margin:0 0 6px;font:700 var(--ls-s,14px)/1.3 var(--font-ui);color:var(--muted);}
.ls-root .dl-chips .tchip[aria-pressed=true],.dl-chips .tchip[aria-pressed=true]{background:var(--cink);color:var(--paper);}
.dl-play{position:relative;}
.dl-play .bt-slider>label{display:flex;align-items:center;min-height:44px;}
.dl-play .dl-go{position:absolute;top:0;right:0;min-width:110px;min-height:44px;}
.dl-stepslot{width:100%;}
.dl-tipslot{height:52px;}
.dl-prov{fill:var(--dl-land);stroke:var(--dl-line);stroke-width:1.2;stroke-linejoin:round;}
.dl-pl{stroke:var(--dl-offl);stroke-width:1.3;transition:fill .35s ease;}
.dl-pl.dl-off{fill:var(--dl-off);}
.dl-pl.dl-on{stroke:rgba(0,0,0,.35);}
:root[data-theme="dark"] .dl-pl.dl-on{stroke:rgba(255,255,255,.45);}
.dl-pl.dl-s1{fill:var(--dl-s1);} .dl-pl.dl-s2{fill:var(--dl-s2);} .dl-pl.dl-s3{fill:var(--dl-s3);} .dl-pl.dl-s4{fill:var(--dl-s4);}
.dl-pl.dl-chg{stroke:var(--dl-chg);stroke-width:2.2;}
.dl-pl.dl-quiet{fill:var(--dl-quiet);stroke:none;}
.dl-hearth{fill:none;stroke:var(--dl-chg);stroke-width:2.4;stroke-dasharray:4 3;}
.dl-arr-l{fill:none;stroke:var(--dl-move);stroke-linecap:round;}
.dl-arr-l.is-dashed{stroke-dasharray:6 5;}
.dl-arr-h{fill:var(--dl-move);}
.dl-arrow.is-back .dl-arr-l{stroke:var(--dl-back);} .dl-arrow.is-back .dl-arr-h{fill:var(--dl-back);}
.dl-arrow.is-plan .dl-arr-l{stroke:var(--dl-back);opacity:.8;} .dl-arrow.is-plan .dl-arr-h{fill:var(--dl-back);opacity:.8;}
.dl-tag rect{fill:var(--dl-tag);stroke:var(--dl-tagt);stroke-width:1.4;}
.dl-tag text{font:800 12.5px var(--font-ui);fill:var(--dl-tagt);}
.dl-tag.is-push rect{stroke:var(--dl-chg);} .dl-tag.is-push text{fill:var(--dl-chg);}
.dl-tag.is-pull rect{stroke:var(--dl-s2);stroke-width:2;}
.dl-tag.is-obst rect,.dl-tag.is-opp rect{stroke:var(--dl-move);stroke-width:2;}
.dl-tag.is-hearth rect{stroke:var(--dl-chg);stroke-width:2;}
.dl-num circle{fill:var(--dl-tagt);} .dl-num text{font:800 13px var(--font-ui);fill:var(--dl-tag);}
.dl-letter{font:900 15px var(--font-ui);fill:var(--dl-tagt);stroke:var(--dl-tag);stroke-width:4px;paint-order:stroke;stroke-linejoin:round;}
.dl-mtn{fill:var(--dl-mtn);stroke:var(--dl-line);stroke-width:1;}
.dl-person{fill:var(--dl-move);}
.dl-via{fill:none;stroke:var(--dl-move);stroke-width:2;}
.dl-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font:600 13px/1.3 var(--font-ui);color:var(--ink);}
.dl-legend li{display:flex;align-items:center;gap:6px;}
.dl-legend .dl-sizes{gap:5px;}
.dl-sw{flex:none;display:inline-block;width:14px;height:14px;border-radius:50%;border:1.3px solid var(--dl-offl);}
.dl-sw.dl-s1{background:var(--dl-s1);} .dl-sw.dl-s2{background:var(--dl-s2);} .dl-sw.dl-s3{background:var(--dl-s3);} .dl-sw.dl-s4{background:var(--dl-s4);}
.dl-sw.dl-off{background:var(--dl-off);}
.dl-sw.dl-diam{border-radius:2px;transform:rotate(45deg) scale(.8);background:var(--dl-s3);border:2.2px solid var(--dl-chg);}
.dl-sw.dl-ln{width:22px;height:0;border:0;border-top:3px solid var(--dl-move);border-radius:0;}
.dl-sw.dl-ln.is-dashed{border-top:3px dashed var(--dl-back);}
.dl-sw.dl-numsw{width:18px;height:18px;background:var(--dl-tagt);color:var(--dl-tag);border:0;font:800 11px/18px var(--font-ui);text-align:center;}
.dl-sz{display:inline-block;border-radius:50%;background:var(--dl-s2);border:1px solid var(--dl-offl);}
.dl-sz.is-q{background:var(--dl-quiet);}
.dl-sz.r1{width:13px;height:13px;border-radius:2px;margin-left:0;} .dl-sz.r2{width:11px;height:11px;margin-left:6px;} .dl-sz.r3{width:8px;height:8px;margin-left:6px;} .dl-sz.r4{width:6px;height:6px;margin-left:6px;}
.dl-qfig figcaption{margin-top:6px;}
.dl-factors{margin:.4em 0;padding-left:1.4em;}
.dl-table,.cl-table{border-collapse:collapse;margin:.5em 0;font-size:14px;}
.dl-table th,.dl-table td,.cl-table th,.cl-table td{border:1px solid var(--line);padding:4px 10px;text-align:right;}
.dl-table th[scope=row],.cl-table th[scope=row]{text-align:left;}
@media (max-width:640px){ .dl-qfig figcaption{display:none;} .dl-legend{gap:4px 10px;font-size:12.5px;} }
.ls-root .dl-legend{padding-right:46px;}

/* The drawn country (2026-11): sea with shallows, rivers and the lake. Strokes keep their width when the map is scaled. */
.dl-prov path{vector-effect:non-scaling-stroke;}
.dl-sea{fill:#DCEAF4;stroke:#C3DAEA;stroke-width:7;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.dl-river{fill:none;stroke:#7FB2D8;stroke-width:2.2;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.dl-lake{fill:#C7DEEF;stroke:#7FB2D8;stroke-width:1.2;vector-effect:non-scaling-stroke;}
:root[data-theme="dark"] .dl-sea{fill:#17324A;stroke:#1F4160;}
:root[data-theme="dark"] .dl-river{stroke:#3F7FB0;}
:root[data-theme="dark"] .dl-lake{fill:#1F4160;stroke:#3F7FB0;}
.dl-legend .dl-steps{gap:3px;} .dl-legend .dl-steps .dl-sw:last-of-type{margin-right:4px;}
