:root{--paper:#e3eae5;--map:#f2f6f3;--ink:#14211c;--muted:#4f6158;--rule:#c2cec7;--sign-bg:#00684a;--sign:#00684a;--sign-ink:#fff;--yellow:#f2c230;--yellow-ink:#1a1a12;--hi:#b45f00;--route:#24332d;--node:#fff;--node-line:#7c8f86;--group:#00684a14;--good:#00684a;--bad:#a3361b;--panel:#edf2ee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#161a19;--map:#1e2422;--ink:#e6ece8;--muted:#9cada5;--rule:#34403b;--sign-bg:#0b6045;--sign:#3fb07e;--hi:#f2c230;--route:#c8d3cd;--node:#2b3431;--node-line:#62746c;--group:#3fb07e1f;--good:#4cc08c;--bad:#f08a6c;--panel:#1c2120;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#161a19;--map:#1e2422;--ink:#e6ece8;--muted:#9cada5;--rule:#34403b;--sign-bg:#0b6045;--sign:#3fb07e;--hi:#f2c230;--route:#c8d3cd;--node:#2b3431;--node-line:#62746c;--group:#3fb07e1f;--good:#4cc08c;--bad:#f08a6c;--panel:#1c2120;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-family:Overpass,Segoe UI,system-ui,sans-serif;font-size:1.0625rem;line-height:1.55}a{color:var(--sign);text-underline-offset:.18em}code{background:var(--group);border-radius:4px;padding:.05em .3em;font-family:Cascadia Code,ui-monospace,Menlo,Consolas,monospace;font-size:.86em}:focus-visible{outline:3px solid var(--hi);outline-offset:2px}.skip{position:absolute;left:-999px}.skip:focus{z-index:10;background:var(--yellow);color:var(--yellow-ink);padding:.5rem .75rem;top:16px;left:16px}.top{padding:22px clamp(16px,4vw,40px) 0}.sign{background:var(--sign-bg);color:var(--sign-ink);border:3px solid var(--sign-ink);box-shadow:0 0 0 6px var(--sign-bg);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 32px;margin:6px;padding:clamp(16px,3vw,28px) clamp(18px,3.5vw,36px);display:flex;position:relative}.wordmark{letter-spacing:-.015em;margin:0;font-size:clamp(2.75rem,8vw,5.25rem);font-weight:900;line-height:.88}.tagline{max-width:34ch;margin:.6rem 0 0;font-size:clamp(1.05rem,2.2vw,1.35rem);font-weight:600;line-height:1.3}.sign-links{flex-wrap:wrap;gap:8px;display:flex}.sign-links a{color:var(--sign-ink);border:2px solid var(--sign-ink);border-radius:8px;padding:.3rem .7rem .2rem;font-weight:800;text-decoration:none}.sign-links a:hover{background:var(--sign-ink);color:var(--sign-bg)}main{padding:0 clamp(16px,4vw,40px)}.demo{margin-top:28px}.router-row{scrollbar-width:thin;gap:8px;padding:6px 4px 10px;display:flex;overflow-x:auto}.exit{font:inherit;color:var(--sign-ink);background:var(--sign-bg);border:2px solid var(--sign-ink);box-shadow:0 0 0 2px var(--sign-bg);cursor:pointer;border-radius:8px;flex:none;padding:.42rem .8rem .3rem;font-size:.98rem;font-weight:800}.exit:hover{filter:brightness(1.12)}.exit[aria-checked=true]{color:var(--yellow-ink);background:var(--yellow);border-color:var(--yellow-ink);box-shadow:0 0 0 2px var(--yellow)}.stage{grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:16px;margin-top:6px;display:grid}.map-wrap{border:1px solid var(--rule);background:var(--map);border-radius:12px;height:clamp(420px,72vh,820px);position:relative;overflow:hidden}#map{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#map:active{cursor:grabbing}.map-tools{gap:6px;display:flex;position:absolute;top:10px;right:10px}.map-tools button{min-width:36px;height:36px;font:inherit;color:var(--ink);background:var(--map);border:1px solid var(--rule);cursor:pointer;border-radius:8px;font-weight:800}.map-status{background:var(--map);border:1px solid var(--rule);border-radius:8px;margin:0;padding:.5rem .9rem .4rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-status[hidden],.map-level[hidden]{display:none}.map-level{color:var(--yellow-ink);background:var(--yellow);border:2px solid var(--yellow-ink);border-radius:6px;margin:0;padding:.25rem .6rem .15rem;font-size:.9rem;font-weight:800;position:absolute;bottom:10px;left:10px}.panel{background:var(--panel);border:1px solid var(--rule);border-radius:12px;flex-direction:column;align-self:start;gap:14px;padding:16px;display:flex}.method{margin:0;font-size:.98rem;line-height:1.45}.method strong{color:var(--sign);font-size:1.35rem;font-weight:900;display:block}.field{border:0;min-width:0;margin:0;padding:0}.field>label,.field>legend{margin-bottom:6px;padding:0;font-weight:800;display:block}.field.off>legend{color:var(--muted)}.field.off .seg,.field.off input[type=range],.field.off .check{display:none}select{width:100%;font:inherit;color:var(--ink);background:var(--map);border:1px solid var(--rule);border-radius:8px;padding:.45rem .5rem .35rem}.seg{border:1px solid var(--rule);border-radius:8px;display:flex;overflow:hidden}.seg label{flex:1;position:relative}.seg input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg span{text-align:center;background:var(--map);padding:.42rem .3rem .32rem;font-size:.92rem;font-weight:700;display:block}.seg label+label span{border-left:1px solid var(--rule)}.seg input:checked+span{background:var(--sign-bg);color:var(--sign-ink)}.seg input:focus-visible+span{outline:3px solid var(--hi);outline-offset:-3px}.seg input:disabled{cursor:not-allowed}input[type=range]{width:100%;accent-color:var(--sign)}.level-name{margin:2px 0 6px;font-weight:700}.check{align-items:center;gap:8px;font-weight:600;display:flex}.check input{accent-color:var(--sign);width:18px;height:18px}.hint{color:var(--muted);margin:6px 0 0;font-size:.9rem}.hint p{margin:.4rem 0 0}.stats{border-top:1px solid var(--rule);gap:8px;margin:0;padding-top:12px;display:grid}.stats div{grid-template-columns:6.25rem 1fr;gap:8px;display:grid}.stats dt{font-weight:800}.stats dd{margin:0}.delta{color:var(--muted);font-size:.88rem;display:block}.delta.good,.ok{color:var(--good);font-weight:700}.delta.bad,.bad{color:var(--bad);font-weight:700}.link{font:inherit;color:var(--sign);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.demo-help{max-width:70ch;color:var(--muted);font-size:.98rem}.demo-help p{margin:.7rem 0 0}.prose{max-width:68ch;margin:64px auto 0}.prose.wide{max-width:1100px}.prose.wide>div>p,.prose.wide>p{max-width:68ch}.prose h2{border-top:6px solid var(--yellow);margin:0 0 .8rem;padding-top:.6rem;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:900;line-height:1.05;display:inline-block}.prose h3{margin:2rem 0 .4rem;font-size:1.35rem;font-weight:800}.prose li{margin:.35rem 0}.prose ul{padding-left:1.2rem}.prose ul li::marker{color:var(--sign)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.98rem}caption{text-align:left;padding:0 0 .5rem;font-weight:800}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:.6rem .75rem .5rem}thead th{border-bottom:2px solid var(--ink);font-weight:800}table.num td{text-align:right;white-space:nowrap}table.num thead th:not(:first-child){text-align:right}td.best{color:var(--good);font-weight:800}.table-pick{font:inherit;cursor:pointer;color:var(--sign);background:0 0;border:0;padding:0}.table-pick code{background:var(--group);white-space:nowrap;font-weight:700}.table-pick:hover code{background:var(--sign-bg);color:var(--sign-ink)}.road{grid-template-columns:repeat(6,minmax(0,1fr));margin:1rem 0 0;padding:0;list-style:none;display:grid;position:relative}.road:before{content:"";background:repeating-linear-gradient(90deg, var(--yellow) 0 18px, transparent 18px 30px) center / 100% 2px no-repeat, var(--route);border-radius:5px;height:10px;position:absolute;top:22px;left:0;right:0}.road li{padding:0 10px 0 0;position:relative}.exit-no{text-align:center;border:2px solid var(--sign-ink);background:var(--sign-bg);min-width:54px;color:var(--sign-ink);box-shadow:0 0 0 2px var(--sign-bg);border-radius:8px;padding:.35rem .5rem .2rem;font-size:1.25rem;font-weight:900;display:inline-block;position:relative}.road li.now .exit-no{background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow-ink);box-shadow:0 0 0 2px var(--yellow)}.road li.later .exit-no{background:var(--map);color:var(--muted);border-color:var(--rule);box-shadow:0 0 0 2px var(--map)}.step-state{margin-top:.7rem;font-size:.92rem;font-weight:800;display:block}.road li.done .step-state{color:var(--good)}.road li.later .step-state{color:var(--muted)}.step-text{font-size:.95rem;line-height:1.4;display:block}.bench-tabs{flex-wrap:wrap;gap:6px;margin:1.2rem 0 .8rem;display:flex}.bench-tabs button{font:inherit;color:var(--ink);background:var(--map);border:1px solid var(--rule);cursor:pointer;border-radius:8px;padding:.35rem .7rem .25rem;font-size:.92rem;font-weight:700}.bench-tabs button[aria-selected=true]{background:var(--sign-bg);color:var(--sign-ink);border-color:var(--sign-bg)}.foot{border-top:1px solid var(--rule);color:var(--muted);margin:80px 0 0;padding:24px clamp(16px,4vw,40px) 40px;font-size:.95rem}.foot p{max-width:70ch;margin:0}@media (max-width:860px){.stage{grid-template-columns:minmax(0,1fr)}.map-wrap{height:clamp(320px,62vh,620px)}.road{grid-template-columns:minmax(0,1fr);gap:18px;padding-left:26px}.road:before{background:repeating-linear-gradient(180deg, var(--yellow) 0 18px, transparent 18px 30px) center / 2px 100% no-repeat, var(--route);width:10px;height:auto;inset:0 auto 0 0}.step-state{margin:0 0 0 .6rem;display:inline-block}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
