@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ------------------------------------------------------------------ tokens */
:root{
  color-scheme:light;
  --bg:#f3efe7; --surface:#fffdf8; --surface-2:#ece6da;
  --text:#14161b; --text-2:#2b2f37; --muted:#474c56;
  --line:#b9b19f; --line-soft:#dcd4c4;
  --hue:230;
  --acc:hsl(var(--hue) 78% 30%);
  --acc-t:hsl(var(--hue) 78% 22%);
  --acc-soft:hsl(var(--hue) 70% 45% / .16);
  --acc-ink:#ffffff;
  --stage:#e9e3d6;
  --shadow:0 1px 2px rgba(40,30,10,.08),0 10px 30px rgba(40,30,10,.12);
  --bar-h:3.25rem;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Source Serif 4",Georgia,"Times New Roman",serif;
  --ui:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#080b11; --surface:#10141c; --surface-2:#171c26;
  --text:#f2eee7; --text-2:#d9d4ca; --muted:#b4b2ac;
  --line:#3b4252; --line-soft:#232938;
  --acc:hsl(var(--hue) 85% 70%);
  --acc-t:hsl(var(--hue) 85% 80%);
  --acc-soft:hsl(var(--hue) 80% 60% / .2);
  --acc-ink:#06080c;
  --stage:#05070b;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 12px 40px rgba(0,0,0,.55);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#080b11; --surface:#10141c; --surface-2:#171c26;
    --text:#f2eee7; --text-2:#d9d4ca; --muted:#b4b2ac;
    --line:#3b4252; --line-soft:#232938;
    --acc:hsl(var(--hue) 85% 70%);
    --acc-t:hsl(var(--hue) 85% 80%);
    --acc-soft:hsl(var(--hue) 80% 60% / .2);
    --acc-ink:#06080c;
    --stage:#05070b;
    --shadow:0 1px 2px rgba(0,0,0,.5),0 12px 40px rgba(0,0,0,.55);
  }
}

/* ------------------------------------------------------------------ base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--bar-h) + .5rem);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.125rem;line-height:1.6;overflow-x:hidden}
a{color:var(--acc-t);text-underline-offset:.15em}
h1,h2,h3{font-family:var(--serif);line-height:1.12;font-weight:600;letter-spacing:-.012em;margin:0}
h1{font-size:clamp(1.9rem,4.6vw,3.1rem)}
h2{font-size:clamp(1.55rem,3.6vw,2.2rem);margin:0 0 .8rem}
h3{font-size:1.2rem;margin:1.4rem 0 .3rem}
p{margin:0 0 1rem}
.wrap{max-width:44rem;margin:0 auto;padding:0 max(1rem,env(safe-area-inset-left))}
.wrap.wide{max-width:68rem}
.lede{font-size:1.2rem;color:var(--text-2)}
.soft{color:var(--muted);font-size:.92em}
.skip{position:absolute;left:-999px;top:0;background:var(--acc);color:var(--acc-ink);padding:.6rem 1rem;z-index:100;border-radius:0 0 .5rem 0}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.perma{margin-left:.4rem;font-size:.6em;color:var(--muted);text-decoration:none;opacity:0;transition:opacity .15s}
h2:hover .perma,.perma:focus-visible{opacity:1}
[hidden]{display:none!important}

/* ------------------------------------------------------------------ top bar */
.topbar{position:sticky;top:0;z-index:50;height:var(--bar-h);display:flex;align-items:center;gap:.4rem;padding:0 max(.75rem,env(safe-area-inset-right)) 0 max(.9rem,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft);font-family:var(--ui)}
.topbar .home{font-weight:650;font-size:.92rem;color:var(--text);text-decoration:none;white-space:nowrap;padding:.7rem .3rem;display:inline-flex;align-items:center;gap:.5rem}
.home .dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--acc);box-shadow:0 0 .7rem var(--acc);transition:background .4s}
.topnav{display:flex;gap:.1rem;overflow-x:auto;scrollbar-width:none;min-width:0;flex:0 1 auto}
.topnav::-webkit-scrollbar{display:none}
.topnav a{color:var(--text-2);text-decoration:none;font-size:.9rem;padding:.7rem .5rem;white-space:nowrap}
.topnav a[aria-current]{color:var(--acc-t);font-weight:700}
.spacer{flex:1}
.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;padding:0 .85rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);text-decoration:none;font:inherit;font-family:var(--ui);font-size:.88rem;font-weight:600;white-space:nowrap;cursor:pointer}
.icon-btn{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;flex:none;font:inherit;font-size:1.15rem}
.icon-btn svg[hidden]{display:none}
@media (max-width:720px){.topnav{display:none}}

/* ------------------------------------------------------------------ hero: text + stage */
.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.hero-text{padding:1.4rem max(1rem,env(safe-area-inset-left)) 1rem}
.kicker{font-family:var(--ui);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--acc-t);font-weight:700;margin:0 0 .5rem}
.deck{font-size:1.1rem;color:var(--text-2);margin:.7rem 0 0;max-width:34rem}
.deck b{color:var(--text)}
#reset2{margin-top:.7rem}
.stage{--acc:hsl(var(--hue) 85% 70%);--acc-t:hsl(var(--hue) 85% 80%);--text:#f2eee7;--text-2:#d9d4ca;--bg:#080b11;--line:#3b4252;--acc-ink:#06080c;position:relative;background:#05070b;color:#f2eee7;height:min(112vw,72svh,46rem);min-height:20rem;overflow:hidden;touch-action:none;cursor:grab;outline-offset:-3px;-webkit-user-select:none;user-select:none}
.stage.dragging{cursor:grabbing}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage .ov{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;overflow:visible}
.stage svg.bnd{position:absolute;left:0;top:0;transform-origin:0 0;overflow:visible;pointer-events:none}
.stage svg.bnd path{fill:none;stroke:var(--acc);stroke-width:1.4;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:.75}
.pin{position:absolute;left:0;top:0;width:2.75rem;height:2.75rem;margin:-1.375rem 0 0 -1.375rem;border:0;background:transparent;pointer-events:none;cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity .35s;padding:0}
.pin.on{opacity:1;pointer-events:auto}
.pin i{display:block;width:1.3rem;height:1.3rem;border-radius:50%;border:2px solid var(--acc);background:rgba(5,7,11,.72);box-shadow:0 0 0 .3rem color-mix(in srgb,var(--acc) 26%,transparent);font:700 .72rem/1 var(--ui);color:#fff;display:grid;place-items:center;font-style:normal}
.pin[aria-current="true"] i{background:var(--acc);color:var(--acc-ink);box-shadow:0 0 0 .45rem color-mix(in srgb,var(--acc) 30%,transparent)}
.lbl{position:absolute;left:0;top:0;font:italic 500 .82rem/1 var(--serif);color:#fff;text-shadow:0 0 6px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.9);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .3s;transform:translate(-50%,-50%)}
.lbl.on{opacity:.9}
.eye{position:absolute;left:0;top:0;width:2rem;height:2rem;margin:-1rem 0 0 -1rem;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #000,0 0 14px rgba(0,0,0,.5);pointer-events:none;opacity:0;transition:opacity .15s}
.eye.on{opacity:1}
.stage-hud{position:absolute;left:0;bottom:0;right:0;padding:1.6rem .8rem .6rem .8rem;background:linear-gradient(to top,rgba(5,7,11,.82),rgba(5,7,11,0));font:600 .8rem/1.3 var(--ui);color:#fff;text-shadow:0 1px 3px #000;pointer-events:none;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.stage-hud .sw{width:.9rem;height:.9rem;border-radius:50%;border:1.5px solid #fff;display:inline-block}
.stage-tools{position:absolute;right:.6rem;top:.6rem;display:flex;flex-direction:column;gap:.35rem}
.stage-tools .icon-btn{width:2.5rem;height:2.5rem;color:#f2eee7;border-color:rgba(242,238,231,.4);background:rgba(8,11,17,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--ui)}
@media (pointer:coarse){.stage-tools .icon-btn{width:2.75rem;height:2.75rem}}
.stage-reset{position:absolute;left:.7rem;top:.7rem;font-family:var(--ui)}
.stage-reset.chip{color:#f2eee7;border-color:rgba(242,238,231,.45);background:rgba(8,11,17,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.stage-fallback{position:absolute;inset:0;display:none}
.stage-fallback img{width:100%;height:100%;object-fit:cover;display:block}
.stage.nogl canvas,.stage.nogl .ov,.stage.nogl .stage-tools,.stage.nogl .stage-hud{display:none}
.stage.nogl .stage-fallback{display:block}
.stage.nogl{touch-action:auto;cursor:auto}

/* ------------------------------------------------------------------ control deck */
.deckbox{display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem;padding:1.2rem max(1rem,env(safe-area-inset-left)) 1.6rem;max-width:68rem;margin:0 auto;font-family:var(--ui)}
.wheelbox{display:grid;gap:.9rem;justify-items:center}
.wheel{position:relative;width:min(19rem,78vw);aspect-ratio:1;touch-action:none;cursor:pointer;border-radius:50%}
.wheel svg{width:100%;height:100%;display:block;overflow:visible}
.wheel .ringg{fill:none}
.wheel .bar{stroke-linecap:round;opacity:.92}
.wheel .apt{fill:none;stroke:var(--text);stroke-width:2.4;stroke-linecap:round;opacity:.9}
.wheel .knob{fill:var(--bg);stroke:var(--text);stroke-width:2.5}
.wheel .tick{stroke:var(--text);stroke-width:2;stroke-linecap:round}
.wheel .mid{position:absolute;inset:23%;display:grid;place-content:center;text-align:center;pointer-events:none}
.mid .pc{font:600 clamp(1.9rem,6.5vw,2.7rem)/1 var(--serif);color:var(--acc-t);font-variant-numeric:tabular-nums;transition:color .3s}
.mid .pn{font:600 .8rem/1.2 var(--ui);color:var(--text-2);margin-top:.3rem}
.wheel:focus-visible{outline:3px solid var(--acc);outline-offset:6px}
.presets{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:center;max-width:26rem}
.presets .chip{min-height:2.5rem;font-size:.85rem;padding:0 .75rem;gap:.45rem}
.presets .chip .sw{width:.8rem;height:.8rem;border-radius:50%;background:var(--sw);border:1px solid color-mix(in srgb,var(--text) 40%,transparent)}
.presets .chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
@media (pointer:coarse){.presets .chip{min-height:2.75rem}}
.wheel-hint{font-size:.82rem;color:var(--muted);text-align:center;margin:0;max-width:22rem}
.readbox{display:grid;gap:.9rem;align-content:start}
.readout{margin:0;font-size:1.02rem;line-height:1.5;color:var(--text-2)}
.readout b{color:var(--text)}
.readout .big{font:600 clamp(2rem,5vw,2.8rem)/1 var(--serif);color:var(--acc-t);margin-right:.4rem}
.finds{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.find{display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;align-items:start;text-align:left;width:100%;padding:.7rem .85rem;border:1px solid var(--line-soft);border-radius:.8rem;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.find:hover{border-color:var(--acc)}
.find[aria-current="true"]{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.find .n{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--acc-soft);border:1.5px solid var(--acc);display:grid;place-items:center;font:700 .75rem/1 var(--ui);color:var(--text);grid-row:1 / span 2;margin-top:.1rem}
.find .t{font:600 .98rem/1.3 var(--serif)}
.find .d{font-size:.9rem;line-height:1.45;color:var(--text-2);grid-column:2}
.find .m{font-size:.8rem;color:var(--muted);grid-column:2}
.timebox{display:grid;gap:.45rem;border-top:1px solid var(--line-soft);padding-top:.9rem}
.timebox .row{display:flex;align-items:center;gap:.7rem}
.timebox .when{font:600 1.05rem/1.2 var(--serif);min-width:9.5rem;color:var(--text)}
.timebox .note{font-size:.85rem;color:var(--muted);margin:0}
.timebox input[type=range]{flex:1;min-width:0;height:2.75rem;accent-color:var(--acc);background:transparent}
.play{width:2.75rem;height:2.75rem;flex:none}
.ticks{display:flex;justify-content:space-between;font:600 .68rem/1 var(--ui);color:var(--muted);padding:0 .35rem 0 3.4rem;letter-spacing:.02em}
.toggle{display:inline-flex;gap:.5rem;align-items:center;font:600 .85rem/1.2 var(--ui);color:var(--text-2)}
@media (min-width:980px){
  .hero{grid-template-columns:minmax(0,24rem) minmax(0,1fr);grid-template-areas:"text stage" "deck stage";align-items:start;grid-template-rows:auto 1fr}
  .hero-text{grid-area:text;padding:1.6rem 1.4rem .6rem max(1.6rem,env(safe-area-inset-left))}
  .hero-text h1{font-size:clamp(1.9rem,2.6vw,2.7rem)}
  .deck{font-size:1rem;line-height:1.55;margin-top:.55rem}
  .stage{grid-area:stage;height:calc(100svh - var(--bar-h));min-height:30rem;position:sticky;top:var(--bar-h);align-self:start}
  .deckbox{grid-area:deck;grid-template-columns:minmax(0,1fr);padding:.2rem 1.4rem 2rem max(1.6rem,env(safe-area-inset-left));max-width:none;margin:0;gap:1rem}
  .wheel{width:min(14.5rem,100%)}
  .presets{max-width:none}
}
@media (min-width:1500px){.hero{grid-template-columns:minmax(0,28rem) minmax(0,1fr)}}
@media (pointer:coarse){.stage{touch-action:pan-x pan-y}}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 45%,transparent)}100%{box-shadow:0 0 0 1.1rem transparent}}
.pin.on i{animation:pulse 2.2s ease-out infinite}
@media (prefers-reduced-motion:reduce){.pin.on i{animation:none}}

/* ------------------------------------------------------------------ chapters */
.chapter{padding:3rem 0 1rem}
.chapter h2{font-size:clamp(1.5rem,3.4vw,2.1rem)}
.answer-box{border-left:4px solid var(--acc);background:var(--surface);padding:1rem 1.2rem;border-radius:0 .6rem .6rem 0;box-shadow:var(--shadow);margin:1.2rem 0}
.answer-box p:last-child{margin:0}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-family:var(--ui);font-size:.92rem}
th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}
th{font-weight:700;color:var(--text-2);font-size:.82rem;letter-spacing:.02em}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.sw2{display:inline-block;width:1.15rem;height:1.15rem;border-radius:.25rem;border:1px solid color-mix(in srgb,var(--text) 35%,transparent);vertical-align:-.2rem;margin-right:.45rem}
.heat td.h{font-weight:600}
.src{padding-left:1.2rem;font-size:.95rem}
.src li{margin:.3rem 0}
.share-row{display:flex;flex-wrap:nowrap;gap:.35rem;align-items:center}
.share-row .lab{font:.95rem var(--ui);color:var(--muted);margin-right:.2rem}
.share-row a,.share-row button{display:inline-grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;padding:0;border-radius:50%;border:1px solid var(--line-soft);background:transparent;color:var(--text-2);text-decoration:none;cursor:pointer;transition:color .15s,border-color .15s}
@media (pointer:coarse){.share-row a,.share-row button{width:2.75rem;height:2.75rem}}
.share-row a:hover,.share-row button:hover,.share-row a:focus-visible,.share-row button:focus-visible{color:var(--acc);border-color:var(--acc)}
.share-status{min-height:1.4rem;font-size:.88rem;color:var(--muted);margin:.3rem 0 0}
.share{padding:2rem 0 0}
.foot{border-top:1px solid var(--line-soft);padding:1.5rem 0 3rem;color:var(--muted);font-size:.95rem;margin-top:3rem;font-family:var(--ui)}
.foot p{margin:.3rem 0}
.nf{padding:4rem 0}
.btn{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid var(--acc);background:var(--acc);color:var(--acc-ink);font:700 1rem var(--ui);text-decoration:none;cursor:pointer}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
.sr{position:absolute;left:-999px}
table.heat td.h{background:hsl(var(--hh) 75% 70% / var(--ha))}
:root[data-theme="dark"] table.heat td.h{background:hsl(var(--hh) 70% 27% / var(--ha))}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) table.heat td.h{background:hsl(var(--hh) 70% 27% / var(--ha))}}
table.list th[scope=row],table.heat th[scope=row]{font-weight:600;color:var(--text)}

/* Reading rail: the sticky opening map stays clear; navigation appears with the text chapters. */
.rail{display:none}
@media (min-width:94rem){
  body.rail-ready .rail{--col:68rem;display:flex;flex-direction:column;position:fixed;top:50%;left:calc(50% + var(--col)/2 + 1.25rem);transform:translateY(-50%);z-index:60;margin:0;padding:.4rem .35rem;max-height:calc(100vh - 7rem);border:1px solid var(--line);border-radius:2rem;background:var(--bg)}
  .rail::before{content:"";position:absolute;left:calc(.875rem + .35rem - .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(--muted);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;left:calc(100% + .15rem);top:50%;max-width:calc(50vw - 34rem - 1.25rem - 3.25rem);overflow:hidden;text-overflow:ellipsis;padding:.1rem .2rem;border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--muted);font:600 .82rem/1.3 var(--ui);white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-4px,-50%);transition:opacity .15s,transform .15s}
  .rail-dot[aria-current="true"] .rail-label{opacity:1;color:var(--text);transform:translate(0,-50%)}
  .rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{opacity:1;color:var(--acc);transform:translate(0,-50%)}
}
@media(prefers-reduced-motion:reduce){.rail .dot,.rail-label{transition:none}}
@media(forced-colors:active){.rail::before{background:CanvasText}.rail-dot .dot{background:CanvasText;box-shadow:none}.rail-dot[aria-current="true"] .dot{background:Highlight}.rail-label{border-color:CanvasText}}
@media print{.rail{display:none}}
