@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(./ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--mist:#dde0dc;--granite:#8f9490;--slate:#545b5a;--basalt:#1e2223;--lichen:#a0a543;--night:#1b1f20;--night-2:#9aa19f;--night-3:#5a6160;--blueprint:#2c4459;--blueprint-ink:#d9e1e6;--bg:var(--mist);--ink:var(--basalt);--ink-2:var(--slate);--ink-3:var(--granite);--here:var(--lichen);--on-light:var(--basalt);--on-light-2:var(--slate);--on-dark:var(--mist);--on-dark-2:var(--night-2);--sans:"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--display:clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem);--text:1.0625rem;--label:.75rem;--sym-station:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 .8 9.6 9.2H.4z'/%3E%3C/svg%3E");--sym-section:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 2 8.8 8.7H1.2z' fill='none' stroke='%23000' stroke-width='1.15' stroke-linejoin='round'/%3E%3C/svg%3E");--sym-note:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Ccircle cx='2.4' cy='5' r='2.1'/%3E%3Cpath d='M5.5 5H20' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E");--sym-sun:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Ccircle cx='5' cy='5' r='4' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3Cpath d='M5 1a4 4 0 0 0 0 8z'/%3E%3C/svg%3E");--sym-tide:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M.5 3.6q1.125-1.3 2.25 0t2.25 0 2.25 0 2.25 0M.5 7.2q1.125-1.3 2.25 0t2.25 0 2.25 0 2.25 0' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E");--sym-rig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Ccircle cx='5' cy='5' r='3' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3Cpath d='M5 0v3.2M5 6.8V10M0 5h3.2M6.8 5H10' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root.night{--bg:var(--night);--ink:var(--mist);--ink-2:var(--night-2);--ink-3:var(--night-3);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root.blueprint{--bg:var(--blueprint);--ink:var(--blueprint-ink);--ink-2:#9fb1bf;--ink-3:#5e7486;--on-dark:var(--blueprint-ink);--on-dark-2:#9fb1bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html{background:var(--bg)}html:not(.reading){touch-action:pinch-zoom}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);font:400 var(--text) / 1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0;transition:background-color .6s,color .6s}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}p{margin:0 0 .9rem}.lbl{font:400 var(--label) / 1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}#scene{z-index:0;pointer-events:none;opacity:0;width:100vw;height:100lvh;transition:opacity 1s;display:block;position:fixed;top:0;left:0}#scene.ready{opacity:1}.bar{z-index:10;padding:env(safe-area-inset-top,0px) 16px 9px;background:var(--bg);transition:background-color .6s;position:fixed;top:0;left:0;right:0}.bar-in{border-bottom:1px solid var(--ink);align-items:flex-end;gap:2rem;max-width:80rem;height:3.1rem;margin-inline:auto;display:flex}.brand{font:400 var(--label) / 1 var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.6em;padding-bottom:.85rem;text-decoration:none;display:flex}.stops-box{flex:1;position:relative}.stops{justify-content:space-between;margin:0;padding:0;list-style:none;display:flex}.stops li{position:relative}.stops li:after{content:"";background:var(--ink);width:1px;height:5px;position:absolute;bottom:-6px;left:50%}.stops a{font:400 var(--label) / 1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;gap:.5em;padding:0 .2rem .85rem;text-decoration:none;display:flex}.stops a:hover,.stops a[aria-current]{color:var(--ink)}.here-dot{background:var(--here);width:9px;height:9px;box-shadow:0 0 0 1.2px var(--ink);pointer-events:none;border-radius:50%;margin-left:-4.5px;position:absolute;bottom:-5.5px;left:0}@media (width<=1040px){.stops .t{display:none}.bar-in{gap:1.5rem}}main{z-index:1;pointer-events:none;padding-inline:16px;position:relative}.station{box-sizing:border-box;max-width:80rem;min-height:190vh;margin-inline:auto;padding-top:24vh}.station:last-child{min-height:100lvh;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}.panel{--let-go:max(0px, 66vh - 8rem);background:var(--bg);pointer-events:auto;flex-direction:column;max-width:26rem;padding:1rem 1.25rem 1.1rem;transition:background-color .6s;display:flex}.panel>h1,.panel>h2{top:calc(3.1rem + 10px + env(safe-area-inset-top,0px));z-index:1;margin:0 -1.25rem var(--let-go);background:var(--bg);padding:.3rem 1.25rem .9rem;transition:background-color .6s;position:sticky}.panel-body{margin-top:calc(-1 * var(--let-go))}.panel>.stn{margin-bottom:.6rem}@media (width<=759px){.station{padding-top:56vh}.panel{max-width:none}}.panel{border-top:3px double var(--ink)}.stn,.brand{align-items:center;gap:.65em;display:flex}.stn{font:400 var(--label) / 1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0 0 .9rem}.stn:before,.brand:before{content:"";background:var(--ink);width:.85em;height:.85em;-webkit-mask:var(--sym-station) center / contain no-repeat;-webkit-mask:var(--sym-station) center / contain no-repeat;mask:var(--sym-station) center / contain no-repeat;flex:none}h1,h2{font:400 var(--display) / 1.05 var(--sans);letter-spacing:-.018em;text-wrap:balance;margin:0 0 .9rem}h3{border-top:1px solid var(--ink);font:400 var(--text) / 1.4 var(--sans);align-items:center;gap:.6em;margin:1.4rem 0 .6rem;padding-top:.7rem;display:flex}h3:before{content:"";width:.62em;height:.62em;-webkit-mask:var(--sym-section) center / contain no-repeat;-webkit-mask:var(--sym-section) center / contain no-repeat;mask:var(--sym-section) center / contain no-repeat;background:currentColor;flex:none}.note{font:400 var(--label) / 1.6 var(--mono);letter-spacing:.02em;color:var(--ink-2);gap:.7em;margin:.9rem 0 0;display:flex}.note:before{content:"";width:1.9em;height:.62em;-webkit-mask:var(--sym-note) left center / contain no-repeat;-webkit-mask:var(--sym-note) left center / contain no-repeat;mask:var(--sym-note) left center / contain no-repeat;background:currentColor;flex:none;margin-top:.5em}#callouts{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.co{--behind:var(--bg);font:400 var(--label) / 1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-light);white-space:nowrap;opacity:0;align-items:center;transition:opacity .45s,color .4s;display:flex;position:absolute;top:0;left:0}.co.on-dark{color:var(--on-dark)}.co i{background:var(--bg);width:7px;height:7px;box-shadow:0 0 0 1.2px var(--ink);border-radius:50%;flex:none}.co b{width:30px;height:1px;box-shadow:0 0 0 1px var(--behind);background:currentColor;flex:none}.co span{text-shadow:-1px 0 var(--behind), 1px 0 var(--behind), 0 -1px var(--behind), 0 1px var(--behind), -1px -1px var(--behind), 1px -1px var(--behind), -1px 1px var(--behind), 1px 1px var(--behind);padding:0 8px}.co.flip{flex-direction:row-reverse}.co.here i{background:var(--here)}.co.route span{line-height:1.35}.co small{font-size:inherit;color:var(--on-light-2);display:block}.co.on-dark small{color:var(--on-dark-2)}.co a{color:inherit;text-underline-offset:.22em;pointer-events:none;text-decoration-thickness:1px}.co.on a{pointer-events:auto}@media (hover:hover){.co.faint.on{pointer-events:auto}.co.faint b,.co.faint span{opacity:.4;transition:opacity .3s}.co.faint:hover b,.co.faint:hover span{opacity:1}}#callouts .routes{width:100%;height:100%;position:absolute;inset:0}.routes g{opacity:0;transition:opacity .45s}.routes path{fill:none;stroke-linecap:round;stroke-linejoin:round}.routes .halo{stroke:color-mix(in srgb, var(--bg) 80%, transparent);stroke-width:4px}.routes .line{stroke:var(--ink);stroke-width:1.3px;stroke-dasharray:5 4}.co.compact b,.co.compact span{visibility:hidden}.co.open i,.co.lit i{background:var(--ink)}.co-tip{text-align:center;background:var(--bg);box-sizing:border-box;max-width:calc(100vw - 32px);font:400 var(--label) / 1.35 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);pointer-events:none;opacity:0;padding:.3rem .55rem;transition:opacity .2s;position:absolute;top:0;left:0}.co-tip small{font-size:inherit;color:var(--ink-2);display:block}.co-tip:after{content:"";left:var(--stem,50%);background:var(--ink);width:1px;height:8px;position:absolute;top:100%}.co-tip.below:after{top:auto;bottom:100%}.co-tip.on{opacity:1;z-index:1}.co-tip.tour{transition-duration:.5s}.co.here b,.co.here span{transition:opacity .5s}.co.here.waiting b,.co.here.waiting span{opacity:0}.dock{left:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:12;flex-direction:column;align-items:flex-start;gap:.5rem;max-width:calc(100vw - 32px);display:flex;position:fixed}.tools{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--ink);background:var(--bg);color:var(--ink);cursor:pointer;font:400 var(--label) / 1 var(--mono);letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums;align-items:center;gap:.6em;padding:.55rem .75rem;display:inline-flex}.chip[aria-pressed=true],.chip[aria-expanded=true]{background:var(--ink);color:var(--bg)}.chip .sym{width:.9em;height:.9em;-webkit-mask:var(--m) center / contain no-repeat;-webkit-mask:var(--m) center / contain no-repeat;mask:var(--m) center / contain no-repeat;background:currentColor}.sym-sun{--m:var(--sym-sun)}.sym-tide{--m:var(--sym-tide)}.sym-rig{--m:var(--sym-rig)}.toolpanel{box-sizing:border-box;background:var(--bg);border-top:1px solid var(--ink);gap:.65rem;width:min(23rem,100vw - 32px);padding:.9rem 1rem 1rem;display:grid}.toolpanel .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.toolpanel input[type=range]{width:100%;accent-color:var(--ink);margin:0}.toolpanel code{border-block:1px solid var(--ink-3);font:400 var(--label) / 1.6 var(--mono);white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all;padding:.5rem 0;display:block}.toolpanel p{margin:0}.toolpanel .tide{border-top:1px solid var(--ink-3);padding-top:.65rem}body.rigging{overflow:hidden}body.rigging main,body.rigging #callouts{visibility:hidden}body.rigging #scene{pointer-events:auto;touch-action:none;cursor:grab}.no-3d{z-index:0;text-align:center;margin:0;position:fixed;top:45vh;left:16px;right:16px}.cases{gap:1rem;margin:0 0 .9rem;padding:0;list-style:none;display:grid}.cases .note{margin-top:.35rem}html.reading{overflow:hidden}.case{box-sizing:border-box;overscroll-behavior:contain;width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:color-mix(in srgb, var(--bg) 45%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.case::backdrop{background:0 0}@media (prefers-reduced-motion:no-preference){.case.fade[open]{animation:.3s ease-out case-in}}@keyframes case-in{0%{opacity:0}}.case-bar{z-index:1;padding:calc(.6rem + env(safe-area-inset-top,0px)) 16px .6rem;background:var(--bg);border-bottom:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.case-label{font:400 var(--label) / 1 var(--mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.6em;text-decoration:none;display:flex}.case-label:before{content:"";background:var(--ink);width:.85em;height:.85em;-webkit-mask:var(--sym-station) center / contain no-repeat;-webkit-mask:var(--sym-station) center / contain no-repeat;mask:var(--sym-station) center / contain no-repeat;flex:none}.case-tools,.case-size{align-items:center;gap:.5rem;display:flex}.case-tools{gap:1rem}.case-size output{text-align:center;min-width:3.4em}.chip:disabled{opacity:.4;cursor:default}a.chip{text-decoration:none}.case-article{--reading-size:var(--reading,1);--text:calc(1.0625rem * var(--reading-size));--label:calc(.75rem * var(--reading-size));--display:calc(clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem) * var(--reading-size));box-sizing:border-box;width:min(100% - 32px,40em);font:400 var(--text) / 1.65 var(--sans);background:var(--bg);border-top:3px double var(--ink);outline:none;margin:2.5rem auto 4rem;padding:1.4rem 2rem 2.5rem}.case-article h2{margin:0 0 .7rem}.case-article>.note{margin-top:0}.case-contents{border-block:1px solid var(--ink-3);margin:1.6rem 0 2.2rem;padding:.8rem 0 .9rem}.case-contents ol{font:400 var(--label) / 2 var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:.5rem 0 0;padding-left:1.6em}.case-body>p:first-child{font-size:1.2em;line-height:1.5}.case-body p,.case-body ul,.case-body ol{margin:0 0 1em}.case-body h3{margin:2.4rem 0 .8rem;scroll-margin-top:5rem}.case-body h4{font:400 var(--text) / 1.4 var(--sans);color:var(--ink-2);margin:1.8rem 0 .5rem}.case-body ul,.case-body ol{padding-left:1.3em}.case-body li{margin:.35em 0}.case-body blockquote{border-left:1px solid var(--ink);margin:1.8rem 0;padding:.1rem 0 .1rem 1.2rem;font-size:1.15em;line-height:1.5}.case-body blockquote p{margin:0}.diagram{margin:2rem 0}.diagram-area{aspect-ratio:16/9;border:1px dashed var(--ink-3);font:400 var(--label) / 1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);place-items:center;display:grid}.diagram figcaption{font:400 var(--label) / 1.6 var(--mono);letter-spacing:.02em;color:var(--ink-2);gap:.7em;margin-top:.7rem;display:flex}.diagram figcaption:before{content:"";width:1.9em;height:.62em;-webkit-mask:var(--sym-note) left center / contain no-repeat;-webkit-mask:var(--sym-note) left center / contain no-repeat;mask:var(--sym-note) left center / contain no-repeat;background:currentColor;flex:none;margin-top:.5em}.case-more{border-top:1px solid var(--ink);gap:1rem;margin-top:3rem;padding-top:1rem;display:grid}.case-more a{gap:.25rem;text-decoration:none;display:grid}.case-more a:hover span+*,.case-more a:hover{text-decoration:underline;text-decoration-thickness:1px}@media (width<=759px){.case-article{border-top:0;width:100%;min-height:calc(100% - 3.2rem);margin:0;padding:1.25rem 16px 3rem}.case-tools{gap:.5rem}.case-size output{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}
