:root{--bg:#FFFFFF;--panel:#F3F5F9;--text:#0B1020;--muted:#4A5468;--rule:#CDD3DE;--strong:#0B1020;--blog:#1F3FFF;--on-blog:#FFFFFF;--nf:#FFB800;--on-nf:#0B1020;--apps:#00794A;--on-apps:#FFFFFF;--link:#1F3FFF;--focus:#0B1020;--sign:#0B1020;--sign-text:#FFFFFF;--sign-muted:#A9B2C6;--sign-line:#0B1020;--sign-btn:#3A4466;--band:#0B1020;--band-text:#FFFFFF;--band-muted:#A9B2C6;--band-rule:#26304A;--band-blog:#8FA4FF;--band-apps:#3DDC97;--tip-bg:#FFFFFF;--tip-text:#0B1020;--tip-muted:#4A5468;--btn:#0B1020;--on-btn:#FFFFFF;--cell:#F3F5F9;--cell-text:#4A5468;--av:#E3E7EF;--hint:#0B1020;--on-hint:#FFFFFF;--shade:rgba(11, 16, 32, .55);--f-body:"Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"DM Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--cc-l:#E8583A;--cc-on-l:#0B1020;--cc-d:#FF8A5C;--cc-on-d:#0B1020;--contact:var(--cc-l);--on-contact:var(--cc-on-l);--band-contact:var(--cc-d);--on-band-contact:var(--cc-on-d);--frame:#0B1020;--code-bg:#F3F5F9;--f-code:ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B1020;--panel:#141B30;--text:#E8ECF5;--muted:#A3ADC2;--rule:#2A3350;--strong:#E8ECF5;--blog:#8FA4FF;--on-blog:#0B1020;--nf:#FFB800;--on-nf:#0B1020;--apps:#3DDC97;--on-apps:#0B1020;--link:#8FA4FF;--focus:#E8ECF5;--sign:#05070F;--sign-text:#FFFFFF;--sign-muted:#A3ADC2;--sign-line:#2A3350;--sign-btn:#3A4466;--band:#05070F;--band-text:#FFFFFF;--band-muted:#A3ADC2;--band-rule:#222B44;--band-blog:#8FA4FF;--band-apps:#3DDC97;--tip-bg:#E8ECF5;--tip-text:#0B1020;--tip-muted:#3D475C;--btn:#E8ECF5;--on-btn:#0B1020;--cell:#141B30;--cell-text:#A3ADC2;--av:#222B44;--hint:#E8ECF5;--on-hint:#0B1020;--shade:rgba(0, 0, 0, .7);--contact:var(--cc-d);--on-contact:var(--cc-on-d);--frame:#5A6688;--code-bg:#141B30;color-scheme:dark}}:root[data-theme=dark]{--bg:#0B1020;--panel:#141B30;--text:#E8ECF5;--muted:#A3ADC2;--rule:#2A3350;--strong:#E8ECF5;--blog:#8FA4FF;--on-blog:#0B1020;--nf:#FFB800;--on-nf:#0B1020;--apps:#3DDC97;--on-apps:#0B1020;--link:#8FA4FF;--focus:#E8ECF5;--sign:#05070F;--sign-text:#FFFFFF;--sign-muted:#A3ADC2;--sign-line:#2A3350;--sign-btn:#3A4466;--band:#05070F;--band-text:#FFFFFF;--band-muted:#A3ADC2;--band-rule:#222B44;--band-blog:#8FA4FF;--band-apps:#3DDC97;--tip-bg:#E8ECF5;--tip-text:#0B1020;--tip-muted:#3D475C;--btn:#E8ECF5;--on-btn:#0B1020;--cell:#141B30;--cell-text:#A3ADC2;--av:#222B44;--hint:#E8ECF5;--on-hint:#0B1020;--shade:rgba(0, 0, 0, .7);--contact:var(--cc-d);--on-contact:var(--cc-on-d);--frame:#5A6688;--code-bg:#141B30;color-scheme:dark}@font-face{font-family:poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400-latin.woff2)format("woff2");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:poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500-latin.woff2)format("woff2");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:poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600-latin.woff2)format("woff2");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:poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700-latin.woff2)format("woff2");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:dm mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-400-latin.woff2)format("woff2");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:dm mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-500-latin.woff2)format("woff2");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:poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400-latin-ext.woff2)format("woff2");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}.fa-solid,.fa-regular,.fa-brands,.fa-classic{--_fa-family:var(--fa-family, var(--fa-style-family, 'Font Awesome 7 Free'));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);font-family:var(--_fa-family);font-feature-settings:normal;font-style:normal;font-synthesis:none;font-variant:normal;font-weight:var(--fa-style,900);line-height:1;text-align:center;text-rendering:auto;width:var(--fa-width,1.25em)}:is( .fa-solid,.fa-regular,.fa-brands,.fa-classic)::before{content:var(--fa)/""}@supports not (content:""/""){:is( .fa-solid,.fa-regular,.fa-brands,.fa-classic)::before{content:var(--fa)}}.fa-arrow-up-right-from-square{--fa:"\f08e"}.fa-bluesky{--fa:"\e671"}.fa-calendar{--fa:"\f133"}.fa-chevron-down{--fa:"\f078"}.fa-envelope{--fa:"\f0e0"}.fa-file-lines{--fa:"\f15c"}.fa-file-pdf{--fa:"\f1c1"}.fa-github{--fa:"\f09b"}.fa-hat-wizard{--fa:"\f6e8"}.fa-image{--fa:"\f03e"}.fa-link{--fa:"\f0c1"}.fa-linkedin{--fa:"\f08c"}.fa-location-dot{--fa:"\f3c5"}.fa-magnifying-glass{--fa:"\f002"}.fa-phone{--fa:"\f095"}.fa-quote-left{--fa:"\f10d"}.fa-rss{--fa:"\f09e"}.fa-screwdriver-wrench{--fa:"\f7d9"}.fa-wand-magic-sparkles{--fa:"\e2ca"}/*!* Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2026 Fonticons, Inc.*/:root{--fa-family-classic:'Font Awesome 7 Free';--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"font awesome 7 free";font-style:normal;font-weight:900;font-display:swap;src:url(/webfonts-subset/fa-solid-900.woff2)}.fa-classic{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900}:root{--fa-family-brands:'Font Awesome 7 Brands'}@font-face{font-family:"font awesome 7 brands";font-style:normal;font-weight:400;font-display:swap;src:url(/webfonts-subset/fa-brands-400.woff2)}.fa-brands,.fa-classic.fa-brands{--fa-family:var(--fa-family-brands);--fa-style:400}:root{--fa-width:auto}.fa-xs{font-size:calc(12/16 * 1em);line-height:calc(1/12 * 1em);vertical-align:calc((6/12 - .375) * 1em)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--f-body);overflow-x:hidden}img{display:block;max-width:100%}h1,h2,h3{font-family:var(--f-body);font-weight:600;margin:0;letter-spacing:-.015em}p{margin:0}a{color:inherit}button,input{font:inherit}.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}*:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sign,.map,.next-stops{--focus:#FFFFFF}#content:focus,#content:focus-visible{outline:none}.skip-link{--focus:#FFFFFF;box-shadow:0 0 0 2px #0B1020;position:fixed;top:12px;left:12px;z-index:100;padding:10px 16px;background:#fff;color:#0b1020;font-weight:600;text-decoration:none;transform:translateY(calc(-100% - 24px))}.skip-link:focus,.skip-link:focus-visible{transform:none}.table-scroll{overflow-x:auto}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.lab{font:500 12px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.lab b{font-weight:500;color:var(--text)}.tl{color:var(--link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.tl:hover{text-decoration-thickness:3px}.go-arrow{font-family:var(--f-mono);font-weight:500;display:inline-block;transition:transform .15s ease}.bul{flex:none;width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font:600 11px/1 var(--f-body);letter-spacing:0}.bul-b{background:var(--blog);color:var(--on-blog)}.bul-n{background:var(--nf);color:var(--on-nf)}.bul-a{background:var(--apps);color:var(--on-apps)}.bul-c{background:var(--contact);color:var(--on-contact)}.bul-lg{width:30px;height:30px;font-size:14px}.kcap{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;font:500 11px/1 var(--f-mono);color:var(--muted);background:var(--bg);border:1px solid var(--rule);border-bottom-width:2px;border-radius:3px;letter-spacing:0;text-transform:none}.chip{display:inline-flex;align-items:center;font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;border:1px solid var(--muted);color:var(--muted);border-radius:2px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 18px;border:2px solid var(--strong);background:0 0;color:var(--text);font:600 15px/1.2 var(--f-body);text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.btn:hover{background:var(--btn);color:var(--on-btn)}.btn:hover .go-arrow{transform:translateX(4px)}.btn-primary{background:var(--btn);color:var(--on-btn)}.btn-primary:hover{background:0 0;color:var(--text)}.sign{background:var(--sign);color:var(--sign-text);border-bottom:1px solid var(--sign-line);position:relative;z-index:50}.sign .wrap{display:flex;align-items:center;gap:20px;min-height:64px}.sign .bul-b{background:var(--band-blog);color:#0b1020}.sign .bul-a{background:var(--band-apps);color:#0b1020}.sign .bul-c{background:var(--band-contact);color:var(--on-band-contact)}.brand{font:700 19px/1 var(--f-body);letter-spacing:-.02em;color:var(--sign-text);text-decoration:none;white-space:nowrap;padding:8px 0}.nav{margin-left:auto}.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}.nav a{display:flex;align-items:center;gap:8px;padding:0 12px;height:64px;color:var(--sign-text);text-decoration:none;font-weight:500;font-size:15px;box-shadow:inset 0 -4px transparent;transition:box-shadow .15s}.nav a:hover{box-shadow:inset 0 -4px 0 var(--sign-muted)}.nav a:focus-visible{outline-offset:-5px}.nav a[data-l=b]:hover,.nav a[data-l=b][aria-current]{box-shadow:inset 0 -4px 0 var(--band-blog)}.nav a[data-l=n]:hover,.nav a[data-l=n][aria-current]{box-shadow:inset 0 -4px 0 var(--nf)}.nav a[data-l=a]:hover,.nav a[data-l=a][aria-current]{box-shadow:inset 0 -4px 0 var(--band-apps)}.nav a[data-l=c]:hover,.nav a[data-l=c][aria-current]{box-shadow:inset 0 -4px 0 var(--band-contact)}.nav .bul{transition:border-radius .12s,box-shadow .12s,transform .12s}.tools{display:flex;gap:8px}.sbtn{height:40px;min-width:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:0 0;color:var(--sign-text);border:1px solid var(--sign-btn);font:500 14px/1 var(--f-body);cursor:pointer}.sbtn:hover{border-color:var(--sign-text)}.sbtn kbd{font:500 11px/1 var(--f-mono);border:1px solid var(--sign-btn);padding:3px 5px;color:var(--sign-muted)}.sbtn-k{padding:0;width:40px}.sbtn-k .kcap{min-width:22px;height:22px;font-size:13px;color:var(--sign-text);background:0 0;border-color:var(--sign-muted)}.th-to-light{display:none}[data-theme=dark] .th-to-dark{display:none}[data-theme=dark] .th-to-light{display:inline}.menu-btn{display:none}@media(max-width:900px){.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--sign);border-top:1px solid #2a3350;z-index:40}.nav.open{display:block}.nav ul{flex-direction:column;gap:0;padding:4px clamp(16px,4vw,40px)12px}.nav a{height:52px;padding:0 4px;border-bottom:1px solid #1e2640}.nav a:hover,.nav a[data-l][aria-current]{box-shadow:inset 4px 0 0 var(--sign-muted);padding-left:14px}.nav a[data-l=b][aria-current],.nav a[data-l=b]:hover{box-shadow:inset 4px 0 0 var(--band-blog)}.nav a[data-l=n][aria-current],.nav a[data-l=n]:hover{box-shadow:inset 4px 0 0 var(--nf)}.nav a[data-l=a][aria-current],.nav a[data-l=a]:hover{box-shadow:inset 4px 0 0 var(--band-apps)}.nav a[data-l=c][aria-current],.nav a[data-l=c]:hover{box-shadow:inset 4px 0 0 var(--band-contact)}.menu-btn{display:inline-flex}.tools{margin-left:auto}}:root:not([data-theme]) .sign .tools{display:none}@media(max-width:900px){:root:not([data-theme]) .sign .wrap{flex-wrap:wrap;row-gap:0}:root:not([data-theme]) .brand{padding:22px 0}:root:not([data-theme]) .nav{display:block;position:static;flex:1 0 100%;margin-inline:calc(-1 * clamp(16px,4vw,40px))}}@media(max-width:640px){.sbtn .wd,.sbtn kbd,.sbtn-k{display:none!important}.sign .wrap{gap:10px}.brand{font-size:18px}}@media(max-width:380px){.sbtn{padding:0 9px}}.foot{padding:22px 0 40px;border-top:1px solid var(--rule)}.foot .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;font-size:14px;color:var(--muted)}.foot .keys{margin-left:auto;background:0 0;border:0;padding:4px 0;color:var(--muted);font:14px var(--f-body);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.foot .keys kbd,.help kbd{font:500 12px/1 var(--f-mono);border:1px solid var(--rule);border-bottom-width:2px;padding:3px 6px;color:var(--text);background:var(--bg);border-radius:2px}@media(max-width:640px){.foot .keys{margin-left:0}}@media(hover:none) and (pointer:coarse){.foot .keys{display:none}}:root:not([data-theme]) .foot .keys{display:none}dialog{padding:0;border:2px solid var(--strong);background:var(--bg);color:var(--text)}dialog::backdrop{background:var(--shade)}dialog.search{width:min(640px,100vw - 32px);max-height:min(620px,100vh - 64px)}.s-top{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--rule)}.s-top input{flex:1;min-width:0;height:46px;padding:0 12px;border:2px solid var(--strong);background:var(--bg);color:var(--text);font:17px var(--f-body)}.s-list{list-style:none;margin:0;padding:0;overflow:auto;max-height:440px}.s-list a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--text)}.s-list a:hover,.s-list a:focus-visible{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong);outline:none}.s-list .lab{display:block;font-size:11px}.s-empty{padding:18px 16px;color:var(--muted)}.home-hero{padding:clamp(36px,5vw,72px)0 clamp(40px,5vw,64px)}.home-hero>.wrap{display:grid;grid-template-columns:minmax(0,1.25fr)minmax(0,1fr);grid-template-areas:"intro contact" "bios contact";gap:0 clamp(32px,5vw,80px);align-items:start}.home-hero .intro{grid-area:intro}.home-hero .bios{grid-area:bios}.home-hero .contact{grid-area:contact}.h-about{font-size:clamp(36px,4.4vw,54px);line-height:1.02;letter-spacing:-.03em}.hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;max-width:58ch}.who{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:0 0 0 auto}.who img{width:72px;height:72px;object-fit:cover;border-radius:6px}.who figcaption{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;margin:0;font-size:16px;color:var(--text)}.who .nm2{font-weight:600;font-size:17px;line-height:1.3}.who .lab{font-size:11px}.tagline{margin-top:18px;font-size:clamp(20px,1.9vw,24px);line-height:1.35;font-weight:500;max-width:34ch;letter-spacing:-.01em}.tag2{display:block;margin-top:10px;font-size:clamp(17px,1.4vw,19px);font-weight:400;color:var(--muted);letter-spacing:0}.bio{margin-top:18px;max-width:58ch;color:var(--text)}.bio+.bio{margin-top:12px}@media(max-width:900px){.home-hero>.wrap{grid-template-columns:1fr;grid-template-areas:"intro" "contact" "bios";row-gap:28px}.bios .bio:first-child{margin-top:0}}@media(max-width:640px){.who img{width:64px;height:64px}}.map{overflow-x:clip;background:var(--band);color:var(--band-text);padding:clamp(40px,5vw,60px)0 clamp(36px,4vw,52px)}.map h2{font-size:clamp(28px,3vw,36px);letter-spacing:-.025em;margin-bottom:6px}.map .lab{color:var(--band-muted)}.map .bul-b{background:var(--band-blog);color:#0b1020}.map .bul-a{background:var(--band-apps);color:#0b1020}.map .bul-c{background:var(--band-contact);color:var(--on-band-contact)}.lines{list-style:none;margin:18px 0 0;padding:0}.map-line{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px 40px;align-items:end;padding:18px 0 22px;border-top:1px solid var(--band-rule)}.map-line:last-child{border-bottom:1px solid var(--band-rule)}.map-line-b{--c:var(--band-blog)}.map-line-n{--c:var(--nf)}.map-line-a{--c:var(--band-apps)}.map-line-c{--c:var(--band-contact)}.leg{display:grid;grid-template-columns:auto minmax(0,1fr)auto;gap:2px 12px;align-items:start;text-decoration:none;color:var(--band-text);padding:6px 6px 6px 0;align-self:center}.leg .bul{grid-row:span 3;margin-top:3px}.leg .lab{grid-column:2;margin-top:6px;font-size:11px}.leg .go-arrow{grid-row:1;grid-column:3;font-size:18px}.leg:hover .leg-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--c)}.leg:hover .go-arrow{transform:translateX(4px)}.leg-name{font:600 21px/1.2 var(--f-body);letter-spacing:-.02em}.leg-why{grid-column:2;font-size:14px;color:var(--band-muted);line-height:1.45}.track{position:relative;padding:112px 92px 6px 0}.track ol{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;position:relative}.track ol::before{content:"";position:absolute;left:14px;right:14px;top:14px;height:6px;margin-top:-3px;background:var(--c);pointer-events:none}.track li{position:relative;width:28px;display:flex;justify-content:center}@media(min-width:641px){.track li:nth-child(-n+2) .tip{left:0;transform:none}.track li:nth-child(-n+2) .tip::after{left:14px}.track li:nth-last-child(-n+2):not(:nth-child(-n+2)) .tip{left:auto;right:0;transform:none}.track li:nth-last-child(-n+2):not(:nth-child(-n+2)) .tip::after{left:auto;right:8px}}.track.short ol{justify-content:flex-start;gap:clamp(40px,7vw,96px);width:max-content}.track.short ol::before{right:auto;left:14px;width:110px}.track.short.joined ol::before{right:14px;width:auto}.map-line-n .track,.map-line-a .track,.map-line-c .track{padding-top:64px}.track.open ol::after{content:"";position:absolute;left:calc(100% - 14px);top:11px;height:6px;width:64px;background:repeating-linear-gradient(90deg,var(--c) 0 8px,transparent 8px 14px);pointer-events:none}.stop{position:relative;width:28px;height:28px;display:grid;place-items:center;text-decoration:none;color:var(--band-text)}.stop::before{content:"";position:relative;z-index:1;grid-area:1/1;width:16px;height:16px;border-radius:50%;background:var(--band);border:4px solid var(--c);transition:transform .15s,background .15s}.stop:hover::before,.stop:focus-visible::before{background:var(--c);transform:scale(1.3)}.stop:focus-visible{outline:none}.stop:focus-visible::before{box-shadow:0 0 0 3px var(--band),0 0 0 6px #FFFFFF}.stop:hover .nm,.stop:focus-visible .nm{color:var(--band-text);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--c)}.stop:hover .tip,.stop:focus-visible .tip{opacity:1;visibility:visible}.stop.now::before{background:var(--band)}.stop.now::after{content:"";position:relative;z-index:1;grid-area:1/1;width:8px;height:8px;border-radius:50%;background:var(--nf)}.pin{grid-area:1/1;position:relative;width:100%;height:100%}.nm{position:absolute;left:50%;bottom:24px;transform-origin:0 100%;transform:rotate(-50deg);margin-left:2px;padding:4px 6px 4px 0;white-space:nowrap;font:500 11.5px/1 var(--f-mono);letter-spacing:.02em;color:var(--band-muted);cursor:pointer}.nm.now{color:var(--nf)}.tip{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);z-index:5;width:max-content;max-width:250px;background:var(--tip-bg);color:var(--tip-text);padding:8px 10px 9px;font:500 14px/1.3 var(--f-body);text-align:left;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s;box-shadow:0 6px 20px rgba(0,0,0,.35)}.tip .lab{display:block;color:var(--tip-muted);margin-bottom:3px;font-size:11px}.tip::after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-bottom-color:var(--tip-bg)}.track li.arch-n{display:none}.track li.arch .nm{transform:translateX(-50%);margin-left:0;padding:4px 0;font-size:16px;letter-spacing:0}@media(max-width:1100px){.map-line{grid-template-columns:230px minmax(0,1fr)}}@media(max-width:900px){.map-line{grid-template-columns:minmax(0,1fr);gap:4px}}@media(max-width:640px){.leg{padding-right:0}.track{padding:104px 70px 4px 0}.track li{width:22px}.track ol::before{left:11px;right:11px;top:11px;height:5px}.track li.old{display:none}.track li.arch-n{display:flex}.track.short.joined ol::before{right:11px}.track.open ol::after{top:9px;height:5px}.track li,.stop{position:static}.tip{left:0;top:calc(100% + 12px);transform:none;max-width:min(250px,100vw - 32px)}.tip::after{display:none}.stop{width:22px;height:22px}.stop::before{width:14px;height:14px;border-width:3px}.nm{font-size:10.5px;transform:rotate(-58deg);bottom:18px}}.contact{border:2px solid var(--strong);border-top:6px solid var(--contact);padding:22px 24px 10px;scroll-margin-top:48px}.contact h2{font-size:24px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.contact .why{color:var(--muted);font-size:15px;margin:6px 0 18px}.contact .btn{width:100%}.contact .btn-primary{background:var(--contact);color:var(--on-contact);border-color:var(--contact)}.contact .btn-primary:hover{background:0 0;color:var(--text);border-color:var(--contact)}#contact:focus:not(:focus-visible){outline:none}.crows{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--rule)}.crows li{border-bottom:1px solid var(--rule)}.crows li:last-child{border-bottom:0}.crow{--bleed:8px;display:grid;grid-template-columns:22px minmax(0,1fr)auto;gap:14px;align-items:center;margin:0 calc(-1 * var(--bleed));padding:11px calc(var(--bleed) + 4px)11px calc(var(--bleed) + 2px);text-decoration:none;color:var(--text);transition:background .15s,box-shadow .15s}.crow>i{font-size:17px;justify-self:center;color:var(--muted)}.crow .t{display:block;font-weight:500;font-size:15px;line-height:1.35;overflow-wrap:anywhere}.crow .lab{display:block;font-size:11px}.crow .go-arrow{color:var(--muted)}a.crow:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}a.crow:hover .go-arrow{transform:translateX(4px)}@media(max-width:640px){.contact{padding:20px 16px 6px}.crow{--bleed:6px}}.bhead{padding:clamp(32px,4vw,56px)0 0}.bhead .bsign{border-top:6px solid var(--blog);padding-top:18px;display:grid;grid-template-columns:minmax(0,1fr)auto;gap:20px 40px;align-items:end}.bhead .bsign .lab{display:flex;align-items:center;gap:10px}.bhead .bsign h1{font-size:clamp(34px,4.2vw,52px);line-height:1.04;letter-spacing:-.03em;margin:12px 0 14px}.bhead .lede{max-width:62ch;font-size:17px}.bhead .counts{margin-top:16px}.bhead .bacts{display:flex;flex-direction:column;gap:12px;align-items:stretch;min-width:240px}.bhead .bsky-line{display:flex;gap:10px;align-items:baseline;margin-top:18px;font-size:15px;color:var(--muted);max-width:62ch}.bhead .bsky-line>i{color:var(--blog)}@media(max-width:900px){.bhead .bsign{grid-template-columns:1fr}.bhead .bacts{flex-direction:row;flex-wrap:wrap}}@media(max-width:640px){.bhead .bacts .btn{flex:auto}}.feed{padding:clamp(36px,4vw,52px)0 clamp(48px,6vw,80px)}.feed .more{margin-top:20px;display:flex;justify-content:center}.feed .more[hidden]{display:none}.feed .sub-foot{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;margin-top:36px;padding-top:20px;border-top:1px solid var(--rule)}.fhead{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:14px 24px;margin-bottom:14px}.fhead h2{font-size:clamp(22px,2.2vw,26px);letter-spacing:-.02em}.filters{display:flex;flex-wrap:wrap;gap:6px}.filters[hidden]{display:none}.fbtn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid var(--rule);background:0 0;color:var(--text);font:500 14px/1 var(--f-body);cursor:pointer}.fbtn .lab{font-size:11px}.fbtn .bul{width:18px;height:18px;font-size:10px}.fbtn:hover{border-color:var(--strong)}.fbtn[aria-pressed=true]{border:2px solid var(--strong);padding:5px 11px;font-weight:600}.rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--strong)}.rows>li.is-hidden{display:none}.frow{display:grid;grid-template-columns:30px minmax(0,1fr)auto;gap:6px 16px;align-items:start;padding:20px 14px 20px 10px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--text);transition:box-shadow .15s,background .15s;scroll-margin:120px 0 80px}.frow:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}.frow>.bul{margin-top:2px}.frow h3{font-size:clamp(19px,1.7vw,22px);line-height:1.25;letter-spacing:-.02em;margin:6px 0}.frow:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.frow .sum{color:var(--muted);font-size:15px;line-height:1.5;max-width:68ch}.frow>.go-arrow{font-size:20px;align-self:center}.frow:hover>.go-arrow{transform:translateX(4px)}.frow .by{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:14px;font-weight:500}.frow .minirow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.frow .minirow .lab{margin-top:12px;font-size:11px}.frow.slim{align-items:center;padding-top:11px;padding-bottom:11px}.frow.slim>.bul{width:18px;height:18px;font-size:10px;margin:0 0 0 2px}.frow.slim .in{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}.frow.slim .t{font-weight:500;font-size:15.5px;line-height:1.35}@media(max-width:640px){.frow{grid-template-columns:24px minmax(0,1fr);padding:18px 6px 18px 4px;gap:4px 12px}.frow>.bul{width:20px;height:20px;font-size:10px}.frow>.go-arrow{display:none}.frow .sum{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.frow .minirow .lab{display:none}.frow.slim{padding-top:10px;padding-bottom:10px}.frow.slim .in{flex-direction:column;gap:0}}.av{flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover}.av-i{display:inline-grid;place-items:center;background:var(--av);color:var(--text);font:600 11px/1 var(--f-body)}.nfwrap{margin-top:clamp(32px,4vw,48px)}.nfnow{position:relative;display:grid;grid-template-columns:minmax(0,1fr)auto;gap:16px 40px;align-items:center;padding:22px 24px;background:var(--panel);border-top:6px solid var(--nf);color:var(--text);scroll-margin-top:48px;transition:box-shadow .15s}.nfnow:has(.nf-main:hover){box-shadow:inset 0 0 0 2px var(--strong)}.nfnow:has(.nf-main:focus-visible),.nfnow:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.nfnow .lab{display:flex;align-items:center;gap:10px}.nfnow h2{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.025em;margin:10px 0 6px}.nfnow:has(.nf-main:hover) h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.nfnow p.d{color:var(--muted);font-size:15px;max-width:58ch}.nfnow .nf-go{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:14px;font-weight:600;font-size:15px}.nfnow .nf-go .go-arrow{font-size:18px}.nfnow .nf-go .lab{font-weight:500;flex-basis:100%}.nfnow:has(.nf-main:hover) .nf-main .go-arrow{transform:translateX(4px)}@media(max-width:900px){.nfnow{grid-template-columns:1fr}}@media(max-width:640px){.nfnow{padding:18px 16px}}.nf-main{color:inherit;text-decoration:none}.nf-main::after{content:"";position:absolute;inset:0;z-index:0}.nf-main:focus-visible{outline:none}.nf-last{position:relative;z-index:1;color:var(--text);font-weight:500;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-color:var(--muted)}.nf-last:hover{text-decoration-thickness:3px;text-decoration-color:var(--text)}.nf-last:hover .go-arrow{transform:translateX(4px)}.wkbox{justify-self:end}@media(max-width:900px){.wkbox{justify-self:start}}@media(max-width:640px){.wkbox{width:100%}}.wk-note{margin-top:10px;font-size:14px;color:var(--muted);text-align:center}.wk{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,46px);gap:6px}.wk li{display:flex;flex-direction:column;align-items:center;gap:6px}.wk .dn{font:500 11px/1 var(--f-mono);letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.wk .dc{width:46px;height:52px;display:grid;place-items:center;font:500 22px/1 var(--f-mono);background:var(--bg);color:var(--cell-text);border:1px solid var(--rule)}.wk .has .dc{background:var(--nf);color:var(--on-nf);border-color:var(--nf)}.wk .today .dc{border:2px solid var(--strong)}.wk .today .dn{color:var(--text);font-weight:600}.wk .future .dc{background:0 0;border:1px dashed var(--rule);color:transparent}@media(max-width:640px){.wk{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}.wk .dc{width:100%;height:46px;font-size:19px}}.mini{display:inline-grid;grid-template-columns:repeat(7,18px);gap:3px;margin-top:12px;vertical-align:middle}.mini span{height:20px;display:grid;place-items:center;font:500 10.5px/1 var(--f-mono);background:var(--cell);color:var(--cell-text)}.mini span.has{background:var(--nf);color:var(--on-nf)}.phead{padding:clamp(28px,4vw,48px)0 0}.phead .inner{border-top:6px solid var(--blog);padding-top:18px;max-width:860px}.phead h1{font-size:clamp(34px,4.6vw,56px);line-height:1.04;letter-spacing:-.03em;margin:20px 0 12px;overflow-wrap:break-word}.phead .crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:15px}.phead .crumbs .sep{color:var(--muted)}.phead .crumbs .bul{width:20px;height:20px;font-size:10px}.phead .dek{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:48ch}.phero{margin:0}.hero-img{display:block;width:100%;height:auto;object-fit:cover;background:var(--panel);border-radius:0}.phero-a{margin:26px 0 0;border:2px solid var(--frame);background:var(--sign)}.phero-a .hero-img{aspect-ratio:2/1}.ha-cap{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 12px 8px 9px;color:var(--sign-text);font:500 12px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}.ha-cap .bul{width:20px;height:20px;font-size:10px;background:var(--band-blog);color:#0b1020}.ha-line{margin-left:auto;color:var(--sign-muted);white-space:nowrap}@media(min-width:900px){.phead .inner.has-hero{max-width:none;display:grid;grid-template-columns:minmax(0,1fr)360px;grid-template-rows:auto auto 1fr;column-gap:56px;align-items:start}.phead .inner.has-hero>*{grid-column:1}.phead .inner.has-hero>.pmeta,.phead .inner.has-hero>.cite-out{grid-column:1/-1}.phead .inner.has-hero>.pmeta{margin-top:28px}.phead .inner.has-hero>.phero-a{grid-column:2;grid-row:1/span 3;margin:6px 0 0}.phero-a .hero-img{aspect-ratio:3/2}}.pmeta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:24px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.pby .av,.rel-row .by .av{flex:none;border-radius:50%;object-fit:cover}.pby .av-i,.rel-row .by .av-i{display:inline-grid;place-items:center;background:var(--av);color:var(--text);font:600 11px/1 var(--f-body)}.pby{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-weight:600}.pby .av{width:44px;height:44px}.pby .av-i{font-size:15px}.pmeta .tags{display:flex;gap:4px 14px;flex-wrap:wrap;font-size:14px}.pbody{display:grid;grid-template-columns:minmax(0,700px);column-gap:64px}.article{max-width:700px;padding:32px 0 20px}.article h2{font-size:clamp(22px,2.2vw,27px);line-height:1.2;letter-spacing:-.02em;margin:44px 0 14px;scroll-margin-top:72px}.article :focus-visible{outline-offset:6px}.endnote{max-width:700px;display:flex;gap:12px;align-items:baseline;padding:20px 0 36px;border-top:1px solid var(--rule);color:var(--muted)}.endnote .fa-bluesky{color:var(--blog)}.next-stops{background:var(--blog);color:var(--on-blog)}.next-stops .wrap{display:grid;grid-template-columns:1fr 1fr}.next-stops a{display:flex;flex-direction:column;gap:4px;padding:26px 24px 26px 0;text-decoration:none;color:var(--on-blog)}.next-stops a.nx-next{grid-column:2;padding-left:24px;padding-right:0;text-align:right;align-items:flex-end}.next-stops a.nx-prev+a.nx-next{border-left:1px solid color-mix(in srgb,var(--on-blog) 35%,transparent)}.next-stops .nx-k{font:500 12px/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}.next-stops .nx-t{font:600 clamp(19px,2vw,24px)/1.2 var(--f-body);letter-spacing:-.02em}.next-stops .nx-s{font-size:14px;opacity:.92}.next-stops .go-arrow{font-size:16px}.next-stops a:hover .nx-t{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.next-stops a:focus-visible{outline:3px solid var(--on-blog);outline-offset:-6px}.related{padding:clamp(36px,4vw,52px)0 clamp(40px,5vw,64px)}.related h2{font-size:clamp(22px,2.2vw,26px);letter-spacing:-.02em;margin-bottom:14px}.rel-rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--strong)}.rel-row{display:grid;grid-template-columns:30px minmax(0,1fr)auto;gap:6px 16px;align-items:start;padding:18px 14px 18px 10px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--text);transition:box-shadow .15s,background .15s}.rel-row>.bul{margin-top:2px}.rel-row .rel-in{display:flex;flex-direction:column;gap:6px;min-width:0}.rel-row .rel-t{font-weight:600;font-size:clamp(18px,1.6vw,20px);line-height:1.25;letter-spacing:-.02em}.rel-row .go-arrow{font-size:20px;align-self:center}.rel-row:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}.rel-row:hover .rel-t{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.rel-row:hover .go-arrow{transform:translateX(4px)}.rel-row .by{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:14px;font-weight:500}.rel-row .by .av{width:28px;height:28px}@media(max-width:640px){.pmeta{gap:12px 16px}.next-stops .wrap{grid-template-columns:1fr}.next-stops a,.next-stops a.nx-next{grid-column:1;padding:20px 0;border-left:0;text-align:left;align-items:flex-start}.next-stops a.nx-prev+a.nx-next{border-left:0;border-top:1px solid color-mix(in srgb,var(--on-blog) 35%,transparent)}.rel-row{grid-template-columns:24px minmax(0,1fr);padding:16px 6px 16px 4px;gap:4px 12px}.rel-row>.bul{width:20px;height:20px;font-size:10px}.rel-row .go-arrow{display:none}}.rail-col{display:none}.rail{position:relative}.rail-h{margin:0 0 12px}.rl-track{position:relative}.rl-track ol{list-style:none;margin:0;padding:0}.rl-bar,.rl-fill{position:absolute;z-index:1;left:10px;width:3px;border-radius:2px;pointer-events:none}.rl-bar{background:var(--rule)}.rl-fill{background:var(--blog);height:0;transition:height .2s ease}.rl{display:grid;grid-template-columns:23px minmax(0,1fr);gap:10px;align-items:start;padding:6px 8px 6px 0;color:var(--text);font:14px/1.3 var(--f-body);text-decoration:none;border-radius:2px}.rl .dot{position:relative;z-index:2;justify-self:center;margin-top:2px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2.5px solid var(--blog);transition:transform .15s}.rl .rn{overflow-wrap:anywhere}.rl:hover .rn{text-decoration:underline;text-underline-offset:3px}.rl:hover .dot{transform:scale(1.2)}.rl.past .dot{background:var(--blog)}.rl.past .rn{color:var(--muted)}.rl[aria-current=step]{background:var(--panel)}.rl[aria-current=step] .rn{font-weight:600;color:var(--text)}.rl[aria-current=step] .dot{background:var(--blog);transform:scale(1.15);box-shadow:0 0 0 2.5px var(--bg),0 0 0 4.5px var(--strong)}.rl:focus-visible{outline-offset:0}.ride{position:sticky;top:0;z-index:30;background:var(--bg);margin-top:26px}.ride[hidden]{display:none}.ride>.wrap{position:relative}.ride .rail{display:none;position:absolute;top:100%;left:clamp(16px,4vw,40px);right:clamp(16px,4vw,40px);max-width:460px;margin-top:3px;padding:14px 12px 10px;background:var(--bg);border:2px solid var(--strong);box-shadow:0 10px 30px rgba(0,0,0,.18);max-height:calc(100vh - 70px);overflow-y:auto;overscroll-behavior:contain}.ride.open .rail{display:block}.ride-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 0;border:0;background:0 0;color:var(--text);font:600 15px/1.25 var(--f-body);text-align:left;cursor:pointer}.ride-btn .lab{flex:none;font-size:11px}.ride-btn .chev{margin-left:auto;flex:none;font:500 13px/1 var(--f-mono);color:var(--muted);transition:transform .15s}.ride-btn[aria-expanded=true] .chev{transform:rotate(180deg)}.ride-btn:focus-visible{outline-offset:-3px}.ride-t{min-width:0;overflow-wrap:anywhere}.ride-line{position:relative;height:3px;margin:0 clamp(16px,4vw,40px);background:var(--rule)}.ride-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--blog);transition:width .2s ease}.ride-tick{position:absolute;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--bg);border:1.5px solid var(--blog)}.ride-tick.past{background:var(--blog)}.toc-inline{margin:24px 0 0;border:1px solid var(--rule);background:var(--panel)}.toc-inline summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;font-weight:600;cursor:pointer}.toc-inline summary .lab{font-size:11px}.toc-inline ol{margin:0;padding:4px 16px 14px 36px}.toc-inline li{margin:6px 0;font-size:15px;line-height:1.4}@media(min-width:1100px){.ride{display:none}.toc-inline{display:none}.pbody.has-rail{grid-template-columns:200px minmax(0,700px)}.rail-col{display:block;padding-top:36px}.rail-col .rail{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain;padding:2px 2px 8px}}.acts{position:relative;margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.acts .btn{min-height:42px;padding:8px 14px;font-size:14px;margin-left:6px}.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;min-width:42px;padding:0 12px;border:1px solid var(--rule);background:0 0;color:var(--text);font:500 14px/1 var(--f-body);text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s}.share-btn i{font-size:15px}.share-btn:hover{border-color:var(--strong);background:var(--panel)}.cp-ok{position:absolute;right:0;top:calc(100% + 8px);z-index:6;padding:5px 9px;background:var(--hint);color:var(--on-hint);font:500 12px/1.3 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.cp-ok:empty{display:none}.cite-out{display:block;width:100%;margin-top:10px;font:14px/1.5 var(--f-body);padding:10px;border:1px solid var(--rule);background:var(--panel);color:var(--text);resize:vertical}.cite-out[hidden]{display:none}@media(max-width:640px){.acts{margin-left:0;width:100%}.acts .wd{display:none}.acts .btn{margin-left:auto}.share-btn{padding:0}.cp-ok{right:auto;left:0}}dialog.help{width:min(560px,100vw - 32px);max-height:calc(100vh - 48px)}.help .h-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--rule)}.help h2{margin:0;font-size:20px}.help .h-body{padding:6px 18px 18px;overflow:auto}.help h3{font:500 11px/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}.help dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:baseline;font-size:15px}.help dt{white-space:nowrap}.help dd{margin:0}.switch{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:14px;border:1px solid var(--rule);font-size:15px}.switch small{display:block;color:var(--muted);font-size:13px}.sw{position:relative;flex:none;width:52px;height:30px;border-radius:15px;border:2px solid var(--strong);background:var(--bg);cursor:pointer;padding:0}.sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--strong);transition:transform .15s}.sw[aria-checked=true]{background:var(--strong)}.sw[aria-checked=true]::after{transform:translateX(22px);background:var(--bg)}html[data-keys=off] #open-search kbd{display:none}html.g-on .nav .bul{border-radius:4px;transform:translateY(-1px);box-shadow:0 0 0 2px var(--sign),0 0 0 3px var(--sign-text),0 3px 0 2px var(--sign-text)}.gpend{position:fixed;left:16px;bottom:16px;z-index:80;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--hint);color:var(--on-hint);font:500 13px/1.3 var(--f-mono);box-shadow:0 6px 20px rgba(0,0,0,.25)}.gpend[hidden]{display:none}.gpend kbd{font:600 13px/1 var(--f-mono);border:1px solid;padding:2px 6px}.hints{position:fixed;inset:0;z-index:90;pointer-events:none}.hint{position:fixed;padding:2px 5px;background:var(--hint);color:var(--on-hint);font:600 12px/1.2 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;box-shadow:0 0 0 1px var(--bg)}.hint b{opacity:.6;font-weight:600}.khint{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:86;display:grid;grid-template-columns:auto minmax(0,1fr)auto;gap:16px;align-items:center;width:min(420px,100vw - 32px);padding:20px 14px 22px 20px;background:var(--hint);color:var(--on-hint);overflow:hidden;box-shadow:0 0 0 1px var(--bg),0 18px 50px rgba(0,0,0,.4);animation:khint-in .22s ease-out}.khint[hidden]{display:none}.khint p{margin:0}.khint button{align-self:start;flex:none;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--on-hint) 45%,transparent);background:0 0;color:var(--on-hint);font:500 18px/1 var(--f-body);cursor:pointer}.khint button:hover{border-color:var(--on-hint)}.khint button:focus-visible{outline:2px solid var(--on-hint);outline-offset:2px}@keyframes khint-in{from{opacity:0;transform:translate(-50%,-44%)}}.khint-k{display:grid;place-items:center;width:48px;height:48px;font:600 24px/1 var(--f-mono);border:1.5px solid;border-bottom-width:5px;border-radius:7px}.khint-t{display:block;font-weight:600;font-size:17px;line-height:1.3}.khint-s{display:block;margin-top:3px;font-size:14px;line-height:1.45}.khint-s kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;margin:0 1px;font:600 12px/1 var(--f-mono);border:1px solid;border-bottom-width:2px;border-radius:3px}.khint-clock{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--on-hint);opacity:.55;transform-origin:0 50%;animation:khint-clock 10s linear forwards}@keyframes khint-clock{to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.khint-clock{display:none}}.nfw .phead .inner{border-top-color:var(--nf);max-width:none}.nfh{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:24px 56px;align-items:end;margin-top:22px}.nfh h1{margin:12px 0 10px}.nfh-st{display:flex;align-items:center;gap:10px;margin:0}.nfh-when{margin:14px 0 0;font-size:16px;font-weight:500;max-width:52ch}.nfh-when .lab,.nfhead .pby .lab{display:block;font-size:11px}.wk-h{margin:0 0 8px}.nfhead .wk-note{margin-top:8px;font-size:12px;text-align:left}.wk a.dc{text-decoration:none;transition:box-shadow .15s}.wk a.dc:hover{box-shadow:inset 0 0 0 2px var(--on-nf)}.ru-l,.nf-roundup{background:var(--panel);border-top:6px solid var(--nf);padding:20px 24px 8px}.ru-l{margin:32px 0 0}.ru-l+.nfa{padding-top:0}.ru-l+.nfa>.nf-roundup:first-child{border-top:0;padding-top:0}.nfa .nf-roundup{margin-bottom:8px}.nfa .nf-roundup h2{margin:0 0 12px}.nfa .nf-roundup h3{font:500 12px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:22px 0 8px}.ru-wait{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-top:32px;padding:16px 18px;border:1.5px dashed var(--muted)}.ru-wait p{margin:0;font-size:15px}.nfa:empty{padding:0}.nfa>h2{margin:44px 0 8px;padding-top:22px;border-top:1px solid var(--rule)}.nfa>h2>a{color:var(--text);text-decoration-color:var(--rule);text-decoration-thickness:2px;text-underline-offset:6px}.nfa>h2>a:hover{text-decoration-color:initial}.nf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 18px;font:500 12px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.nf-meta__added{order:-1}.nf-meta__kind{color:var(--text);text-transform:none;letter-spacing:.02em}.nf-meta__copy{font:500 14px/1.4 var(--f-body);letter-spacing:0;text-transform:none}.coming{margin-top:48px;padding:22px 24px;border:2px dashed var(--muted)}.coming .lab{display:block;margin-bottom:6px}.coming p{margin:0 0 10px}.coming .big{font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.01em;margin-bottom:8px}.acts2{display:flex;flex-wrap:wrap;gap:8px 24px;font-weight:600;font-size:15px}.acts2 a{color:var(--text);text-decoration-thickness:1.5px;text-underline-offset:4px}.acts2 a:hover{text-decoration-thickness:3px}.acts2 a:hover .go-arrow{transform:translateX(4px)}.nfw .endnote .fa-bluesky{color:var(--text)}.nfw .rl-fill,.nfw .ride-fill{background:var(--nf)}.nfw .rl .dot,.nfw .ride-tick{border-color:var(--muted)}.nfw .rl.past .dot,.nfw .rl[aria-current=step] .dot,.nfw .ride-tick.past{background:var(--nf);border-color:var(--nf)}.rail-h b{display:block}.rl-end{display:grid;grid-template-columns:23px minmax(0,1fr);gap:10px;padding:6px 8px 6px 0;font-size:14px;line-height:1.3;color:var(--muted)}.rl-end .dot{justify-self:center;margin-top:2px;width:14px;height:14px;border-radius:50%;border:2.5px dashed var(--muted)}.next-stops.nx-n{--on-blog:var(--on-nf);background:var(--nf)}.nx-none{grid-column:2;display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding:26px 0 26px 24px;text-align:right}.nx-prev+.nx-none{border-left:1px solid color-mix(in srgb,var(--on-nf) 35%,transparent)}@media(max-width:1100px){.nfh{grid-template-columns:minmax(0,1fr)}.nfhead .wkbox{justify-self:start}}@media(max-width:640px){.ru-l,.nf-roundup{padding:16px 16px 6px}.coming{padding:18px 16px}.nx-none{grid-column:1;align-items:flex-start;padding:20px 0;text-align:left}.nx-prev+.nx-none{border-left:0;border-top:1px solid color-mix(in srgb,var(--on-nf) 35%,transparent)}}.prose{color:var(--text)}.prose>:first-child{margin-top:0}.prose p,.prose li,.prose dd{font-size:17px;line-height:1.7}.prose p{margin:0 0 16px}.prose h2{color:var(--text)}.prose h3{color:var(--text);font-weight:600;letter-spacing:-.015em}.prose h3{font-size:19px;line-height:1.3;margin:32px 0 10px}.prose strong,.prose b{font-weight:600}.prose a{color:var(--link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.prose a:hover{text-decoration-thickness:3px}.prose a>.fa-arrow-up-right-from-square{font-size:.62em;vertical-align:.2em;margin-left:.1em;color:var(--muted)}.prose ul,.prose ol{margin:0 0 18px;padding-left:1.4em}.prose li{margin:0 0 8px;padding-left:.2em}.prose li>ul,.prose li>ol{margin:8px 0 0}.prose li>p{margin-bottom:8px}.prose li::marker{color:var(--muted)}.prose ol>li::marker{font:500 .85em var(--f-mono)}.prose dl{margin:0 0 18px}.prose dt{font-weight:600}.prose dd{margin:0 0 10px 1.4em}.prose blockquote{margin:26px 0;padding:2px 0 2px 20px;border-left:3px solid var(--strong);color:var(--text)}.prose blockquote p:last-child{margin-bottom:0}.prose hr{height:0;margin:40px 0;border:0;border-top:1px solid var(--rule)}.prose img{height:auto}.prose code,.prose kbd{font-family:var(--f-code);font-size:.88em}.prose :not(pre)>code{padding:.1em .35em;background:var(--code-bg);border:1px solid var(--rule);border-radius:2px;overflow-wrap:break-word}.prose pre:not(.mermaid){margin:24px 0;padding:16px 18px;background:var(--code-bg);border:1px solid var(--rule);overflow-x:auto;font:14px/1.6 var(--f-code);tab-size:2}.prose pre:not(.mermaid) code{font-size:inherit}.prose .highlight{margin:24px 0}.prose .highlight pre:not(.mermaid){margin:0}.prose .table-scroll{margin:28px 0}.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5}.prose thead th{border-bottom:2px solid var(--strong)}.prose th,.prose td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.prose th{font-weight:600}.prose td code{font-size:.82em}.prose sup{line-height:0}.prose .footnote-ref{padding:0 1px;font-weight:600;text-decoration:none}.prose .footnote-ref:hover{text-decoration:underline}.prose .footnotes{margin-top:48px;padding-top:18px;border-top:1px solid var(--rule)}.prose .footnotes>hr{display:none}.prose .footnotes::before{content:"Notes";display:block;margin-bottom:12px;font:500 12px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.prose .footnotes ol{padding-left:2.2em}.prose .footnotes li,.prose .footnotes p{font-size:15px;line-height:1.6}.prose .footnotes li{scroll-margin-top:90px}.prose .footnotes li:target{background:var(--panel);box-shadow:-10px 0 0 var(--panel),-13px 0 0 var(--strong)}.prose .footnote-backref{text-decoration-thickness:1px}.prose figure{margin:24px 0 28px}.prose figure img{max-width:100%;border:1px solid var(--rule)}.prose .float-end{float:right;margin:0 0 16px 16px}@media(max-width:639.98px){.prose .float-end{float:none;margin:24px 0 28px}.prose .float-end img{margin-inline:auto}}.prose figcaption{margin-top:8px;font:12.5px/1.5 var(--f-mono);color:var(--muted);text-align:left}.prose figcaption p{margin:0;font:inherit}.prose figcaption em{font-style:normal}.prose figcaption a{color:var(--link)}.prose pre.mermaid{margin:28px 0;padding:20px;border:1px solid var(--rule);background:var(--bg);color:var(--muted);font:13px/1.5 var(--f-code);overflow-x:auto;white-space:pre}.prose pre.mermaid[data-processed]{white-space:normal}.prose pre.mermaid svg{display:block;margin:0 auto;height:auto}.prose pre.mermaid .cluster:has(>rect[style*=fill]) .cluster-label *{color:var(--tip-text)!important;fill:var(--tip-text)!important}.prose div[style*=justify-content]:has(>blockquote.bluesky-embed,>.bluesky-embed){justify-content:flex-start!important}.prose blockquote.bluesky-embed{width:100%;max-width:560px;margin:20px 0 26px;padding:14px 16px 12px;border:1px solid var(--rule);border-left:3px solid var(--strong);background:var(--bg);font-size:15px;line-height:1.55;color:var(--muted)}.prose blockquote.bluesky-embed p{margin:0 0 10px;font-size:16px;line-height:1.55;color:var(--text)}.prose div.bluesky-embed{margin:20px 0 26px!important}:root:not([data-theme=dark]) .chroma{-webkit-text-size-adjust:none}:root:not([data-theme=dark]) .chroma .err{color:#f6f8fa;background-color:#82071e}:root:not([data-theme=dark]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme=dark]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme=dark]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme=dark]) .chroma .hl{background-color:#dedede}:root:not([data-theme=dark]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}:root:not([data-theme=dark]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}:root:not([data-theme=dark]) .chroma .line{display:flex}:root:not([data-theme=dark]) .chroma .k{color:#cf222e}:root:not([data-theme=dark]) .chroma .kc{color:#cf222e}:root:not([data-theme=dark]) .chroma .kd{color:#cf222e}:root:not([data-theme=dark]) .chroma .kn{color:#cf222e}:root:not([data-theme=dark]) .chroma .kp{color:#cf222e}:root:not([data-theme=dark]) .chroma .kr{color:#cf222e}:root:not([data-theme=dark]) .chroma .kt{color:#cf222e}:root:not([data-theme=dark]) .chroma .na{color:#1f2328}:root:not([data-theme=dark]) .chroma .nc{color:#1f2328}:root:not([data-theme=dark]) .chroma .no{color:#0550ae}:root:not([data-theme=dark]) .chroma .nd{color:#0550ae}:root:not([data-theme=dark]) .chroma .ni{color:#6639ba}:root:not([data-theme=dark]) .chroma .nl{color:#900;font-weight:700}:root:not([data-theme=dark]) .chroma .nn{color:#24292e}:root:not([data-theme=dark]) .chroma .nx{color:#1f2328}:root:not([data-theme=dark]) .chroma .nt{color:#0550ae}:root:not([data-theme=dark]) .chroma .nb{color:#6639ba}:root:not([data-theme=dark]) .chroma .bp{color:#68707a}:root:not([data-theme=dark]) .chroma .nv{color:#953800}:root:not([data-theme=dark]) .chroma .vc{color:#953800}:root:not([data-theme=dark]) .chroma .vg{color:#953800}:root:not([data-theme=dark]) .chroma .vi{color:#953800}:root:not([data-theme=dark]) .chroma .vm{color:#953800}:root:not([data-theme=dark]) .chroma .nf{color:#6639ba}:root:not([data-theme=dark]) .chroma .fm{color:#6639ba}:root:not([data-theme=dark]) .chroma .s{color:#0a3069}:root:not([data-theme=dark]) .chroma .sa{color:#0a3069}:root:not([data-theme=dark]) .chroma .sb{color:#0a3069}:root:not([data-theme=dark]) .chroma .sc{color:#0a3069}:root:not([data-theme=dark]) .chroma .dl{color:#0a3069}:root:not([data-theme=dark]) .chroma .sd{color:#0a3069}:root:not([data-theme=dark]) .chroma .s2{color:#0a3069}:root:not([data-theme=dark]) .chroma .se{color:#0a3069}:root:not([data-theme=dark]) .chroma .sh{color:#0a3069}:root:not([data-theme=dark]) .chroma .si{color:#0a3069}:root:not([data-theme=dark]) .chroma .sx{color:#0a3069}:root:not([data-theme=dark]) .chroma .sr{color:#0a3069}:root:not([data-theme=dark]) .chroma .s1{color:#0a3069}:root:not([data-theme=dark]) .chroma .ss{color:#032f62}:root:not([data-theme=dark]) .chroma .m{color:#0550ae}:root:not([data-theme=dark]) .chroma .mb{color:#0550ae}:root:not([data-theme=dark]) .chroma .mf{color:#0550ae}:root:not([data-theme=dark]) .chroma .mh{color:#0550ae}:root:not([data-theme=dark]) .chroma .mi{color:#0550ae}:root:not([data-theme=dark]) .chroma .il{color:#0550ae}:root:not([data-theme=dark]) .chroma .mo{color:#0550ae}:root:not([data-theme=dark]) .chroma .o{color:#0550ae}:root:not([data-theme=dark]) .chroma .ow{color:#0550ae}:root:not([data-theme=dark]) .chroma .or{color:#0550ae}:root:not([data-theme=dark]) .chroma .p{color:#1f2328}:root:not([data-theme=dark]) .chroma .c{color:#57606a}:root:not([data-theme=dark]) .chroma .ch{color:#57606a}:root:not([data-theme=dark]) .chroma .cm{color:#57606a}:root:not([data-theme=dark]) .chroma .c1{color:#57606a}:root:not([data-theme=dark]) .chroma .cs{color:#57606a}:root:not([data-theme=dark]) .chroma .cp{color:#57606a}:root:not([data-theme=dark]) .chroma .cpf{color:#57606a}:root:not([data-theme=dark]) .chroma .gd{color:#82071e;background-color:#ffebe9}:root:not([data-theme=dark]) .chroma .ge{color:#1f2328}:root:not([data-theme=dark]) .chroma .gi{color:#116329;background-color:#dafbe1}:root:not([data-theme=dark]) .chroma .go{color:#1f2328}:root:not([data-theme=dark]) .chroma .gl{text-decoration:underline}:root:not([data-theme=dark]) .chroma .w{color:#fff}[data-theme=dark] .chroma{color:#e6edf3;-webkit-text-size-adjust:none}[data-theme=dark] .chroma .err{color:#f85149}[data-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}[data-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}[data-theme=dark] .chroma .hl{background-color:#6e7681}[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}[data-theme=dark] .chroma .line{display:flex}[data-theme=dark] .chroma .k{color:#ff7b72}[data-theme=dark] .chroma .kc{color:#79c0ff}[data-theme=dark] .chroma .kd{color:#ff7b72}[data-theme=dark] .chroma .kn{color:#ff7b72}[data-theme=dark] .chroma .kp{color:#79c0ff}[data-theme=dark] .chroma .kr{color:#ff7b72}[data-theme=dark] .chroma .kt{color:#ff7b72}[data-theme=dark] .chroma .nc{color:#f0883e;font-weight:700}[data-theme=dark] .chroma .no{color:#79c0ff;font-weight:700}[data-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:700}[data-theme=dark] .chroma .ni{color:#ffa657}[data-theme=dark] .chroma .ne{color:#f0883e;font-weight:700}[data-theme=dark] .chroma .nl{color:#79c0ff;font-weight:700}[data-theme=dark] .chroma .nn{color:#ff7b72}[data-theme=dark] .chroma .nx{color:#e6edf3}[data-theme=dark] .chroma .py{color:#79c0ff}[data-theme=dark] .chroma .nt{color:#7ee787}[data-theme=dark] .chroma .nv{color:#79c0ff}[data-theme=dark] .chroma .vc{color:#79c0ff}[data-theme=dark] .chroma .vg{color:#79c0ff}[data-theme=dark] .chroma .vi{color:#79c0ff}[data-theme=dark] .chroma .vm{color:#79c0ff}[data-theme=dark] .chroma .nf{color:#d2a8ff;font-weight:700}[data-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:700}[data-theme=dark] .chroma .l{color:#a5d6ff}[data-theme=dark] .chroma .ld{color:#79c0ff}[data-theme=dark] .chroma .s{color:#a5d6ff}[data-theme=dark] .chroma .sa{color:#79c0ff}[data-theme=dark] .chroma .sb{color:#a5d6ff}[data-theme=dark] .chroma .sc{color:#a5d6ff}[data-theme=dark] .chroma .dl{color:#79c0ff}[data-theme=dark] .chroma .sd{color:#a5d6ff}[data-theme=dark] .chroma .s2{color:#a5d6ff}[data-theme=dark] .chroma .se{color:#79c0ff}[data-theme=dark] .chroma .sh{color:#79c0ff}[data-theme=dark] .chroma .si{color:#a5d6ff}[data-theme=dark] .chroma .sx{color:#a5d6ff}[data-theme=dark] .chroma .sr{color:#79c0ff}[data-theme=dark] .chroma .s1{color:#a5d6ff}[data-theme=dark] .chroma .ss{color:#a5d6ff}[data-theme=dark] .chroma .m{color:#a5d6ff}[data-theme=dark] .chroma .mb{color:#a5d6ff}[data-theme=dark] .chroma .mf{color:#a5d6ff}[data-theme=dark] .chroma .mh{color:#a5d6ff}[data-theme=dark] .chroma .mi{color:#a5d6ff}[data-theme=dark] .chroma .il{color:#a5d6ff}[data-theme=dark] .chroma .mo{color:#a5d6ff}[data-theme=dark] .chroma .o{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .or{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .c{color:#8b949e;font-style:italic}[data-theme=dark] .chroma .ch{color:#8b949e;font-style:italic}[data-theme=dark] .chroma .cm{color:#8b949e;font-style:italic}[data-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}[data-theme=dark] .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}[data-theme=dark] .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}[data-theme=dark] .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}[data-theme=dark] .chroma .ge{font-style:italic}[data-theme=dark] .chroma .gr{color:#ffa198}[data-theme=dark] .chroma .gh{color:#79c0ff;font-weight:700}[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}[data-theme=dark] .chroma .go{color:#8b949e}[data-theme=dark] .chroma .gp{color:#8b949e}[data-theme=dark] .chroma .gs{font-weight:700}[data-theme=dark] .chroma .gu{color:#79c0ff}[data-theme=dark] .chroma .gt{color:#ff7b72}[data-theme=dark] .chroma .gl{text-decoration:underline}[data-theme=dark] .chroma .w{color:#6e7681}.spoiler{margin:24px 0;border:1px solid var(--rule)}.spoiler__toggle{display:list-item;list-style:disclosure-closed inside;padding:12px 16px;font-weight:600;font-size:15px;line-height:1.4;color:var(--text);cursor:pointer;transition:background .15s,box-shadow .15s}.spoiler__toggle::marker{color:var(--muted)}.spoiler__toggle:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}.spoiler[open]>.spoiler__toggle{list-style-type:disclosure-open;border-bottom:1px solid var(--rule)}.spoiler__content{padding:14px 16px 2px}.spoiler__content>.chat{margin:0 0 14px}.chat{margin:24px 0;padding:14px 16px;background:var(--panel);border:1px solid var(--rule)}.chat__messages{display:flex;flex-direction:column;gap:12px}.chat__message{display:flex;flex-direction:column;gap:2px}.chat__speaker{font-weight:600;font-size:14px;line-height:1.3;color:var(--text)}.chat__content{font-size:15px;line-height:1.55;color:var(--text)}.chat__content p{margin:0;font-size:inherit;line-height:inherit}.chat__content p+p{margin-top:.5em}.chat__content code{padding:.05em .3em;background:var(--code-bg);font:.88em var(--f-code)}.chat__content pre{margin:6px 0;padding:10px 12px;background:var(--code-bg);overflow-x:auto}.chat__content a{color:var(--link)}.dnd-card{margin:28px 0;border:1px solid var(--rule);border-top:3px solid var(--strong)}.dnd-card summary{display:flex;align-items:center;gap:10px;padding:12px 16px;font-weight:600;font-size:17px;line-height:1.3;letter-spacing:-.01em;color:var(--text);background:var(--bg);cursor:pointer;list-style:none;transition:background .15s}.dnd-card summary::-webkit-details-marker{display:none}.dnd-card summary:hover{background:var(--panel)}.dnd-card summary i{font-size:15px;color:var(--text)}.dnd-card summary::after{content:"\f078";font-family:"font awesome 7 free";font-weight:900;font-size:12px;margin-left:auto;color:var(--muted);transition:transform .15s}.dnd-card[open] summary::after{transform:rotate(180deg)}.dnd-card__content{padding:14px 16px 16px;border-top:1px solid var(--rule)}.dnd-card__content p,.dnd-card__content li{font-size:16px;line-height:1.6}.dnd-card__content p{margin:0 0 8px}.dnd-card__content p:last-child{margin-bottom:0}.dnd-card__content hr{margin:14px 0;border:0;border-top:1px solid var(--rule)}.dnd-card__content ul,.dnd-card__content ol{margin:0 0 10px}.dnd-card__content li{margin-bottom:6px}.dnd-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:14px}.dnd-card__level{font:500 12px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin-right:4px}.dnd-card__tag{display:inline-flex;align-items:center;padding:4px 7px;font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--muted);border-radius:2px;white-space:nowrap}.dnd-figure{--dnd-diagram-axis:var(--muted);--dnd-diagram-grid:var(--rule);--dnd-diagram-text:var(--text);--dnd-diagram-muted:var(--muted);--dnd-diagram-accent:#B5321F;--dnd-diagram-accent-2:#1D5FB8;--dnd-diagram-accent-3:#8F5410;margin:28px 0}.dnd-figure>svg{display:block;max-width:100%;height:auto;padding:14px;background:var(--bg);border:1px solid var(--rule)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .dnd-figure{--dnd-diagram-accent:#FF8A7A;--dnd-diagram-accent-2:#8FB8FF;--dnd-diagram-accent-3:#F4A261}}[data-theme=dark] .dnd-figure{--dnd-diagram-accent:#FF8A7A;--dnd-diagram-accent-2:#8FB8FF;--dnd-diagram-accent-3:#F4A261}.faq{margin:32px 0;border-top:2px solid var(--strong)}.faq__item{border-bottom:1px solid var(--rule)}.faq__question{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 12px 16px 10px;font-weight:600;font-size:17px;line-height:1.4;color:var(--text);list-style:none;cursor:pointer;transition:background .15s,box-shadow .15s}.faq__question::-webkit-details-marker{display:none}.faq__question:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}.faq__indicator{flex:none;font-size:12px;color:var(--muted);transition:transform .15s}.faq__item[open] .faq__indicator{transform:rotate(180deg)}.faq__answer{padding:2px 12px 20px 10px;color:var(--text)}.faq__answer p,.faq__answer li{font-size:16px;line-height:1.65}.faq__answer p{margin:0 0 12px}.faq__answer p:last-child{margin-bottom:0}.faq__answer a{color:var(--link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.faq__answer a:hover{text-decoration-thickness:3px}.faq__answer code{padding:.1em .35em;background:var(--code-bg);border:1px solid var(--rule);border-radius:2px;font:.88em var(--f-code)}.faq__answer ol,.faq__answer ul{margin:0 0 12px;padding-left:1.4em}.faq__answer li{margin-bottom:6px}.faq__answer strong{font-weight:600}.notes{list-style:none;margin:0;padding:0;max-width:820px;border-top:2px solid var(--strong)}.notes li{padding:20px 14px 20px 10px;border-bottom:1px solid var(--rule)}.notes h2{margin:6px 0;font-size:clamp(19px,1.7vw,22px);line-height:1.25;letter-spacing:-.02em}.notes h2 a{color:var(--text);text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:2px;text-underline-offset:5px}.notes h2 a:hover{text-decoration-color:initial}.notes .tags{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:14px}.notes-d{max-width:68ch;font-size:15px;line-height:1.5;color:var(--muted)}.note{padding-bottom:clamp(48px,6vw,80px)}.note .prose{max-width:700px}.note .prose h2{margin:44px 0 14px;font-size:clamp(22px,2.2vw,27px);line-height:1.2;letter-spacing:-.02em}.p404{padding-top:clamp(48px,10vw,120px);padding-bottom:clamp(64px,12vw,140px)}.p404 h1{margin:0 0 12px;font-size:clamp(34px,5vw,52px);line-height:1.1;letter-spacing:-.03em}.p404-code{display:block;margin-bottom:14px;padding-bottom:14px;max-width:420px;border-bottom:6px solid var(--strong);font:500 clamp(72px,14vw,128px)/1 var(--f-mono);letter-spacing:-.04em;color:var(--muted)}.p404-lead{margin:0 0 28px;font-size:18px;line-height:1.55;color:var(--muted)}.p404-home:hover .go-arrow{transform:translateX(-4px)}.pg{padding-bottom:clamp(48px,6vw,80px)}.ph{max-width:820px;margin:clamp(28px,4vw,48px)0 28px;padding-top:18px;border-top:6px solid var(--strong)}.ph h1{margin:12px 0 10px;font-size:clamp(32px,4.4vw,48px);line-height:1.1;letter-spacing:-.03em;overflow-wrap:break-word}.ph .lab{margin-top:8px}.ph .tags{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:14px}.ph-lede{max-width:62ch;font-size:18px;line-height:1.55;color:var(--muted)}.ph .crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:15px}.ph .crumbs .sep{color:var(--muted)}.terms{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));border-top:2px solid var(--strong)}.terms li{border-bottom:1px solid var(--rule)}.terms a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:48px;padding:12px 14px 12px 10px;color:var(--text);text-decoration:none;transition:background .15s,box-shadow .15s}.terms a:hover{background:var(--panel);box-shadow:inset 3px 0 0 var(--strong)}.terms a:hover .terms-t{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.terms .lab{flex:none}.terms-t{font-weight:500;font-size:16px;overflow-wrap:anywhere}.ap-head{padding:clamp(28px,4vw,48px)0 0}.ap-sign{border-top:6px solid var(--apps);padding-top:18px;max-width:860px}.ap-sign>.lab{margin-top:4px}.ap-head-wide .ap-sign{max-width:none}.ap .crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:15px}.ap .crumbs .sep{color:var(--muted)}.ap .crumbs .bul{width:20px;height:20px;font-size:10px}.ap .crumbs .here{font-weight:500}.ap-h1{font-size:clamp(34px,4.6vw,56px);line-height:1.04;letter-spacing:-.03em;margin:20px 0 12px}.ap-lede{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:48ch}.ap-sign>.ap-count{margin-top:16px}.app{padding:clamp(32px,4vw,52px)0 clamp(48px,6vw,80px);scroll-margin-top:24px}.app+.app{padding-top:0}.app h2{font-size:clamp(24px,2.4vw,30px);line-height:1.15;letter-spacing:-.025em}.app .btn-primary{background:var(--apps);color:var(--on-apps);border-color:var(--apps)}.app .btn-primary:hover{background:0 0;color:var(--text);border-color:var(--apps)}.app-in{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;border-top:2px solid var(--strong);padding-top:28px}@media(min-width:900px){.app-in{grid-template-columns:minmax(0,1fr)minmax(0,520px);gap:56px;align-items:start}}.app-id{display:flex;align-items:center;gap:16px}.app-id .lab{margin-top:4px}.app-icon{flex:none}.app-icon img{width:64px;height:64px}.app-sum{margin-top:20px;max-width:62ch;font-size:17px}.app-h3{margin:28px 0 10px;font-size:17px}.spec{list-style:none;margin:0;padding:0;max-width:62ch;border-top:1px solid var(--rule)}.spec li{position:relative;padding:10px 0 10px 24px;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.5}.spec li::before{content:"";position:absolute;left:2px;top:17px;width:8px;height:8px;background:var(--apps)}.app-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:28px}.app-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:15px}.app-shot{margin:0}.app-shot img{width:100%;height:auto}.ap-doc{max-width:700px;padding:32px 0 20px;font-size:17px;line-height:1.7}.ap-doc p,.ap-doc ul,.ap-doc ol{margin:0 0 16px}.ap-doc ul,.ap-doc ol{padding-left:1.4em}.ap-doc li+li{margin-top:6px}.ap-doc h2{font-size:clamp(22px,2.2vw,27px);line-height:1.2;letter-spacing:-.02em;margin:44px 0 14px}.ap-doc h3{font-size:19px;line-height:1.3;margin:28px 0 10px}.ap-doc a{color:var(--link);text-decoration-thickness:1.5px;text-underline-offset:3px}.ap-doc a:hover{text-decoration-thickness:3px}.ap-doc code{font-family:var(--f-mono);font-size:.88em;background:var(--panel);padding:1px 5px;overflow-wrap:anywhere}.ap-doc strong{font-weight:600}.ap-doc:last-child{padding-bottom:clamp(48px,6vw,80px)}@media print{.sign,.skip-link,.foot .keys,.rail-col,.ride,.khint,.gpend,.hints,dialog{display:none!important}:root,:root[data-theme]{--bg:#FFFFFF;--panel:#FFFFFF;--text:#000000;--muted:#000000;--link:#000000;--strong:#000000}html,body{background:#fff!important;color:#000!important}.wrap,.article,.pbody{max-width:none;padding:0}.pbody{display:block}}