@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-normal-latin.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-normal-latin-ext.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-italic-latin.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-italic-latin-ext.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/IBMPlexSans-latin.woff2) format("woff2");font-weight:100 700;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+2212}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/IBMPlexSans-latin-ext.woff2) format("woff2");font-weight:100 700;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}

/* paper and four inks. Light: a hand-coloured atlas sheet. Dark: the same sheet under a lamp. */
:root{
  --bg:#f1e9d6;--paper:#f7f1e3;--surface:#fbf7ee;--text:#1d1a15;--muted:#4a4339;--rule:#d6c9ac;--border:#3a3228;--accent-ink:#244677;--btn-ink:#fff;--focus:#0b57b0;
  --ink0:#d9705d;--ink1:#e6b94a;--ink2:#86b06c;--ink3:#6a95c4;--clash:#b3261e;--ring:#1d1a15;--blend:multiply;--grain:.42;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --top:50px;color-scheme:light;--line:var(--rule);--mut:var(--muted);--acc:var(--accent-ink);--fg:var(--text)
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#12141b;--paper:#191c25;--surface:#1c2029;--text:#ede6d6;--muted:#bdb4a3;--rule:#323848;--border:#e7dfcc;--accent-ink:#a9c6ee;--btn-ink:#10141c;--focus:#8ab8ff;
  --ink0:#cf6a58;--ink1:#d9ac45;--ink2:#7aa462;--ink3:#628cbd;--clash:#ff8a80;--ring:#fff6e2;--blend:normal;--grain:.18;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#12141b;--paper:#191c25;--surface:#1c2029;--text:#ede6d6;--muted:#bdb4a3;--rule:#323848;--border:#e7dfcc;--accent-ink:#a9c6ee;--btn-ink:#10141c;--focus:#8ab8ff;
  --ink0:#cf6a58;--ink1:#d9ac45;--ink2:#7aa462;--ink3:#628cbd;--clash:#ff8a80;--ring:#fff6e2;--blend:normal;--grain:.18;color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
svg [hidden],svg[hidden]{display:none}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--top) + 12px)}
body{margin:0;background:var(--bg);color:var(--text);font:400 18.5px/1.62 var(--serif);text-rendering:optimizeLegibility;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:var(--grain);background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjg1JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIC40NSAwIDAgMCAwIC4zOCAwIDAgMCAwIC4yNiAwIDAgMCAuMjIgMCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=")}
main,.site-footer,.topbar{position:relative;z-index:1}
a{color:var(--accent-ink);text-underline-offset:2px}
:focus-visible{outline:2.5px solid var(--focus);outline-offset:2px}
strong{font-weight:650}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--surface);color:var(--text);padding:8px 12px;z-index:50}.skip-link:focus{left:8px}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:10px;padding:0 14px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--rule);font:500 14px/1 var(--sans)}
.brand{display:flex;align-items:center;gap:9px;color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap;min-width:0}
.brand-mark{display:grid;grid-template-columns:7px 7px;gap:1.5px;flex:none}.brand-mark i{width:7px;height:7px;border-radius:1.5px}
.brand-mark i:nth-child(1){background:var(--ink0)}.brand-mark i:nth-child(2){background:var(--ink1)}.brand-mark i:nth-child(3){background:var(--ink2)}.brand-mark i:nth-child(4){background:var(--ink3)}
.topnav{display:flex;gap:14px;margin-left:14px}.topnav a{color:var(--muted);text-decoration:none;white-space:nowrap}.topnav a[aria-current="true"]{color:var(--text)}
.spacer{flex:1}
.chip{color:var(--muted);text-decoration:none;padding:7px 8px;border-radius:6px;min-height:34px;display:inline-flex;align-items:center}.chip[aria-current="page"]{color:var(--text);background:var(--surface)}
.icon-btn{flex:none;border:1px solid var(--rule);background:transparent;color:var(--text);border-radius:8px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer}
:root[data-theme="dark"] .i-moon,:root:not([data-theme]) .i-moon{display:none}
:root[data-theme="light"] .i-sun{display:none}
@media (prefers-color-scheme:light){:root:not([data-theme]) .i-moon{display:inline}:root:not([data-theme]) .i-sun{display:none}}
@media (max-width:1060px){.topnav{display:none}}

/* hero + game */
.hero{padding:30px max(16px,calc((100vw - 1240px)/2)) 26px}
.hero-text{max-width:760px}
.kicker{font:600 13px/1.3 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
h1{font:700 clamp(31px,4.3vw,54px)/1.05 var(--serif);letter-spacing:-.014em;margin:0 0 14px;text-wrap:balance}
.deck{font-size:20px;line-height:1.5;margin:0 0 18px;max-width:640px}
.game{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.board{background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 1px 0 var(--rule),0 18px 40px -26px rgba(40,30,10,.45);padding:10px;position:relative}
.board::after{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--border) 22%,transparent);border-radius:3px;pointer-events:none}
.map{display:block;width:100%;height:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
.cty{fill:transparent;stroke:var(--border);stroke-width:1.15;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:stroke-width .15s}
.cty:hover{stroke-width:2.4}
.bhit{fill:transparent;cursor:pointer}
.cty:focus-visible{outline:none;stroke:var(--focus);stroke-width:3.4}
.wash{filter:url(#wash);mix-blend-mode:var(--blend);opacity:.93;transition:opacity .25s}
.wash.fresh{animation:lay .45s ease-out}
@keyframes lay{from{opacity:0}to{opacity:.93}}
.clash-ink{fill:var(--clash);opacity:.85}
.clash{fill:url(#clash);stroke:var(--clash);stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:none}
.clab{font:600 11.5px var(--sans);fill:var(--text);text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:var(--paper);stroke-width:3px;opacity:.82}
.map.dim .clab{opacity:0}
.map.dim .washes,.map.dim .clashes{opacity:0}
.graph{opacity:0;pointer-events:none;transition:opacity .6s}
.gl{stroke:var(--muted);stroke-width:1.1;vector-effect:non-scaling-stroke;stroke-linecap:round}
.gd{fill:var(--paper);stroke:var(--border);stroke-width:1.6;vector-effect:non-scaling-stroke;transition:fill .3s}
.gd.hub{stroke-width:3}
.gl.hub{stroke:var(--text);stroke-width:2.2}
.map.graph-on .graph{opacity:1}
.map.graph-on .paths .cty{stroke-opacity:.18}
.map.graph-on .washes{opacity:.08}
.map.graph-on .clab{opacity:0}
.map .washes,.map .paths .cty{transition:opacity .6s,stroke-opacity .6s}
.ring-fill{filter:url(#wash);mix-blend-mode:var(--blend);opacity:.95}
.ring-edge{stroke:var(--ring);stroke-width:2.6;vector-effect:non-scaling-stroke;stroke-linecap:round;fill:none}
.ring-dot{fill:var(--paper);stroke:var(--ring);stroke-width:2.4;vector-effect:non-scaling-stroke}
.ring-bad{stroke:var(--clash);stroke-width:4.5;vector-effect:non-scaling-stroke;stroke-linecap:round;animation:blink 1s ease-in-out 3}
.ring-dim{fill:var(--paper);opacity:.72;pointer-events:none}
@keyframes blink{50%{opacity:.25}}
.tray{position:sticky;top:calc(var(--top) + 14px)}
.pencils{display:flex;gap:6px;align-items:flex-end;height:132px;margin:0 0 12px;padding:0 0 4px;border-bottom:1px solid var(--rule)}
.pencil{border:0;background:none;padding:0;width:38px;height:120px;cursor:pointer;transform:translateY(18px);transition:transform .2s ease;-webkit-tap-highlight-color:transparent}
.pencil svg{width:100%;height:100%;display:block;overflow:visible}
.pencil .wood{fill:#e7c99b}.pencil .lead{fill:var(--k)}.pencil .body{fill:var(--k)}.pencil .facet{fill:#fff;opacity:.16}.pencil .ferrule{fill:#000;opacity:.12}
.pencil[aria-checked="true"]{transform:translateY(0)}
.pencil:focus-visible{outline-offset:4px}
.pencil.eraser .rubber{fill:#e9a7a0}.pencil.eraser .sleeve{fill:#9aa3ad}
.pencil.eraser{transform:translateY(40px)}.pencil.eraser[aria-checked="true"]{transform:translateY(22px)}
.pencil.new{animation:arrive .7s cubic-bezier(.2,.8,.2,1.2)}
@keyframes arrive{from{transform:translateY(120px)}}
.tray-hint{font:italic 600 20px/1.3 var(--serif);margin:0 0 6px}
.status{font:600 15px/1.45 var(--sans);margin:0 0 6px}
.status .bad{color:var(--clash)}
.stuck{font:500 15.5px/1.45 var(--sans);margin:0 0 10px;padding:9px 11px;border-left:3px solid var(--clash);background:color-mix(in srgb,var(--clash) 9%,var(--surface))}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.why{grid-column:1/-1;font-size:18px;line-height:1.55;background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--ink3);border-radius:8px;padding:14px 18px;max-width:900px}
.why p{margin:0 0 .6em}.why p:last-child{margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--rule);background:var(--surface);color:var(--text);font:600 15px/1.15 var(--sans);padding:11px 15px;border-radius:9px;cursor:pointer;text-decoration:none;min-height:44px;text-align:left}
.btn:hover{border-color:var(--text)}
.btn.primary{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--btn-ink)}
.btn.quiet{background:transparent}
.noscript{font-size:17px}

@media (max-width:900px){
  .game{grid-template-columns:1fr;gap:12px}
  .tray{position:static}
  .pencils{height:96px;justify-content:center;gap:10px}
  .pencil{width:30px;height:92px}
  .clab{font-size:13px}
}
@media (max-width:520px){.clab{display:none}.deck{font-size:18.5px}.hero{padding-top:20px}}

/* sections */
.sec{padding:34px 16px 20px}
.col{max-width:700px;margin:0 auto}
.wide{max-width:1080px;margin:18px auto}
h2{font:700 clamp(26px,3vw,36px)/1.15 var(--serif);margin:0 0 14px;letter-spacing:-.008em;text-wrap:balance}
.sec p{margin:0 0 1em}
.anchor{margin-left:8px;font:500 16px var(--sans);color:var(--muted);text-decoration:none;opacity:0}
h2:hover .anchor,.anchor:focus-visible{opacity:1}
.morph-ctl{margin-top:4px}
.sec.small{font-size:16.5px}.sec.small h2{font-size:24px}

.timeline{list-style:none;margin:8px 0 0;padding:0;border-left:2px solid var(--rule)}
.timeline li{position:relative;padding:0 0 18px 22px}
.timeline li::before{content:"";position:absolute;left:-7px;top:9px;width:12px;height:12px;border-radius:2px;background:var(--ink0)}
.timeline li:nth-child(4n+2)::before{background:var(--ink1)}.timeline li:nth-child(4n+3)::before{background:var(--ink2)}.timeline li:nth-child(4n)::before{background:var(--ink3)}
.timeline .yr{font:700 15px var(--sans);letter-spacing:.04em}
.timeline p{margin:2px 0 0}

/* finder + commune map */
.finder{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:14px 14px 10px;max-width:700px;margin:0 auto 14px}
.finder label{display:block;font:600 15px var(--sans);margin:0 0 7px}
.qrow{display:flex;gap:8px}
.qrow input{flex:1;min-width:0;font:500 18px var(--sans);padding:10px 12px;border:1px solid var(--rule);border-radius:9px;background:var(--paper);color:var(--text);min-height:48px}
.qrow input::placeholder{color:var(--muted)}
.sugg{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--rule);border-radius:9px;background:var(--paper);font:500 15.5px/1.3 var(--sans);overflow:hidden}
.sugg:empty{display:none}
.sugg li{padding:11px 12px;cursor:pointer;border-bottom:1px solid var(--rule)}.sugg li:last-child{border-bottom:0}
.sugg li[aria-selected="true"],.sugg li:hover{background:var(--surface)}
.sugg small{color:var(--muted);font-weight:500;margin-left:6px}
.examples{font:500 14px var(--sans);color:var(--muted);margin:9px 0 2px}
.examples button{font:inherit;color:var(--accent-ink);background:none;border:0;padding:6px 5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px;min-height:36px}
.cmap{position:relative;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:8px}
.cmap canvas{display:block;width:100%;height:auto;aspect-ratio:1000/707}
.map-msg{position:absolute;inset:auto 0 45% 0;text-align:center;font:500 15px var(--sans);color:var(--muted);margin:0}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;padding:0;margin:10px 2px 0;font:500 15.5px var(--sans);color:var(--text)}
.lg{display:inline-block;width:14px;height:14px;border-radius:2px;margin-right:7px;vertical-align:-2px;border:1px solid var(--border)}
.lg.ring{background:var(--ink0)}.lg.noring{background:var(--paper)}
.card{margin:16px auto 0;max-width:1080px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:16px}
.card-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:center}
.card-fig svg{display:block;width:100%;height:auto;background:var(--paper);border-radius:6px}
.card h3{font:700 24px/1.2 var(--serif);margin:0 0 8px}
.card p{margin:0 0 .7em;font-size:17.5px}
.card-x{color:var(--muted);font-size:16px!important}
.nbp{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke;fill:var(--paper)}
.nbp.in-ring{fill:var(--ink1);mix-blend-mode:var(--blend)}
.nbp.me{fill:var(--ink0);mix-blend-mode:var(--blend)}
.nbl{font:600 10px var(--sans);fill:var(--text);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--paper);stroke-width:2.5px}
.nbl.me{font-size:12.5px}
@media (max-width:760px){.card-in{grid-template-columns:1fr}}

/* Sibiu */
.fig{margin:18px 0 22px}
.fig-note{font:500 14.5px/1.5 var(--sans);color:var(--muted);margin:8px 2px 0}
.sibmap{display:block;width:100%;height:auto;background:var(--paper);border:1px solid var(--rule);border-radius:6px}
.sibmap .ctx{fill:none;stroke:var(--border);stroke-opacity:.28;stroke-width:.8}
.sibmap .sp{stroke:var(--border);stroke-width:1.2;mix-blend-mode:var(--blend);fill-opacity:.9}
.sibmap .sp.house{fill:var(--ink3)}.sibmap .sp.well{fill:var(--ink1)}.sibmap .sp.via{fill:var(--ink2);fill-opacity:.55}
.sibmap .sl{font:700 13px var(--sans);fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:3.5px}
.sibmap .piece{fill:none;stroke:var(--text);stroke-width:2.2;stroke-dasharray:5 3}
.sibmap .sl2{font:italic 600 12px var(--serif);fill:var(--text);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--paper);stroke-width:3.5px}
.sibmap .pal{fill:var(--clash)}.sibmap .pal-l{font:italic 600 13px var(--serif);fill:var(--text);paint-order:stroke;stroke:var(--paper);stroke-width:3.5px}
.untangle{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:8px;max-width:760px;margin:0 auto}
.untangle svg{display:block;width:100%;height:auto;user-select:none}
.ut-e{stroke:var(--text);stroke-width:2.4;stroke-linecap:round;opacity:.75}
.ut-e.x{stroke:var(--clash);opacity:1;stroke-width:3.2}
.ut-n{cursor:grab;touch-action:none}.ut-n:active{cursor:grabbing}
.ut-n .hit{fill:transparent}
.ut-n .house{fill:var(--ink3);stroke:var(--border);stroke-width:1.6}
.ut-n .well{fill:var(--ink1);stroke:var(--border);stroke-width:1.6}
.ut-n .via{fill:var(--ink2);stroke:var(--border);stroke-width:1.4}
.ut-n text{font:700 13.5px var(--sans);fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:4px;pointer-events:none}
.ut-n:focus-visible .house,.ut-n:focus-visible .well,.ut-n:focus-visible .via{stroke:var(--focus);stroke-width:3.5}
.ut-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 6px 2px}
.ut-count{font:600 16px var(--sans);margin:0}
.ut-hint{font:500 15px var(--sans);color:var(--muted);margin:2px 6px 6px}

/* the live search */
.calc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}
.calc-out{font:600 17px/1.4 var(--sans);margin:0}

/* sheet */
.sheet-ctl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;max-width:700px;margin:0 auto 12px;font:600 15px var(--sans)}
.sheet-ctl select{font:500 17px var(--sans);padding:9px 10px;border-radius:9px;border:1px solid var(--rule);background:var(--paper);color:var(--text);min-height:44px}
.sheet{background:#fffdf7;color:#1b1813;border:1px solid var(--rule);border-radius:4px;padding:18px 18px 14px;margin:0 auto;max-width:760px;box-shadow:0 18px 40px -26px rgba(40,30,10,.45)}
.sheet figcaption{font:700 21px/1.2 var(--serif);margin:0 0 8px}
.sheet svg{display:block;width:100%;height:auto;max-height:70vh}
.sheet .sp2{fill:#fff;stroke:#1b1813;stroke-width:1;vector-effect:non-scaling-stroke}
.sheet .sl2{font:500 10.5px var(--sans);fill:#3a3530;text-anchor:middle;dominant-baseline:middle}
.sheet-rule{font:500 14px/1.45 var(--sans);margin:10px 0 0;color:#3a3530}

/* method, sources, share, footer */
.sources{padding-left:22px;font-size:15.5px}.sources li{margin:0 0 6px}
.share{margin:14px 0 6px}.share-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.share-label{font:600 14px var(--sans);margin-right:4px}
.ic{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--rule);background:transparent;color:var(--text);cursor:pointer}
.ic:hover,.ic:focus-visible{color:var(--accent-ink);border-color:var(--accent-ink)}
@media (pointer:coarse){.ic{width:44px;height:44px}}
.share-msg{font:500 13px var(--sans);color:var(--muted);margin:6px 0 0;min-height:1em}
.site-footer{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;padding:26px 16px 40px;margin-top:30px;font:500 14px var(--sans);color:var(--muted);border-top:1px solid var(--rule)}
.site-footer a{color:var(--muted)}

/* rail */
.rail{display:none}
@media(min-width:1100px){
.wide{max-width:min(1080px,calc(100vw - 120px))}
.rail{--col:700px;--gut:1.25rem;display:flex;flex-direction:column;position:fixed;top:50%;right:14px;transform:translateY(-50%);z-index:20;margin:0;padding:.4rem 0;max-height:calc(100vh - 7rem);transition:opacity .3s}
.rail.away{opacity:0;pointer-events:none}
.rail::before{content:"";position:absolute;left:calc(.875rem - .5px);top:1.1rem;bottom:1.1rem;width:1px;background:var(--line)}
.rail-dot{position:relative;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;text-decoration:none;border-radius:50%}
.rail-dot .dot{width:7px;height:7px;border-radius:50%;background:var(--mut);box-shadow:0 0 0 3px var(--bg);transition:transform .2s,background .2s,box-shadow .2s;flex:none}
.rail-dot:hover .dot,.rail-dot:focus-visible .dot{background:var(--acc);transform:scale(1.25)}
.rail-dot[aria-current=true] .dot{background:var(--acc);transform:scale(1.45);box-shadow:0 0 0 3px var(--bg),0 0 0 4.5px color-mix(in srgb,var(--acc) 38%,transparent)}
.rail-dot:focus-visible{outline:2px solid var(--acc);outline-offset:-1px}
.rail-label{position:absolute;right:calc(100% + .3rem);top:50%;transform:translate(6px,-50%);padding:.22rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg);color:var(--fg);box-shadow:0 6px 20px rgba(0,0,0,.14);font:600 .82rem/1.3 var(--sans);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{opacity:1;transform:translate(0,-50%)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.print-sheet{display:none}
@media print{
  body::before{display:none}
  body>*:not(.print-sheet){display:none!important}
  .print-sheet{display:block!important;color:#000}
  .print-sheet h1{font:700 20pt/1.2 Georgia,serif;margin:0 0 6pt}
  .print-sheet p{font:10pt/1.4 Georgia,serif;margin:6pt 0 0}
  .print-sheet svg{width:100%;height:auto;max-height:24cm}
  .print-sheet .sp2{fill:#fff;stroke:#000;stroke-width:.7}
  .print-sheet .sl2{font:6.5pt Arial,sans-serif;fill:#444;text-anchor:middle;dominant-baseline:middle}
  @page{margin:12mm}
}
