@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-mono-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/atkinson-next-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/atkinson-next-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-next-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/atkinson-next-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-next-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-next-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/atkinson-next-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-next-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/atkinson-next-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-next-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-next-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/atkinson-next-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/inter-400-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/inter-400-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/inter-500-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/inter-500-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--t-2xs: 12px;--lh-2xs: 1.4;--t-xs: 13px;--lh-xs: 1.45;--t-sm: 14px;--lh-sm: 1.55;--t-base: 16px;--lh-base: 1.65;--t-md: 18px;--lh-md: 1.55;--t-lg: 22px;--lh-lg: 1.3;--t-xl: 28px;--lh-xl: 1.22;--t-2xl: 36px;--lh-2xl: 1.18;--t-3xl: clamp(40px, 5vw, 56px);--lh-3xl: 1.12;--t-display: clamp(48px, 12vw, 120px);--lh-display: .9;--s-0: 2px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--w-shell: 1440px;--w-wrap: 1080px;--w-rail-nav: 240px;--w-rail-toc: 208px;--w-measure: 53ch;--t-prose: var(--t-base);--font-display: "Atkinson Hyperlegible Next", system-ui, sans-serif;--font-body: "Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace;--font-cjk: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--ink: #14171B;--paper: #FFFFFF;--surface: #F3F5F8;--paper-2: var(--surface);--muted: #4A5059;--l-hub: #14171B;--l-hub-ink: #14171B;--l-hub-inv: #ECEEF1;--l-fg: #D4253A;--l-fg-ink: #B81D30;--l-fg-inv: #FF8A96;--l-bk: #8A5626;--l-bk-ink: #7A4A1F;--l-bk-inv: #DDAE80;--l-co: #1C8A4B;--l-co-ink: #157240;--l-co-inv: #5FD394;--l-dd: #1F5AD6;--l-dd-ink: #1A4FC0;--l-dd-inv: #8DB0FF;--l-pb: #D46F00;--l-pb-ink: #A35400;--l-pb-inv: #FFB55E;--l-op: #7539C0;--l-op-ink: #6A30B3;--l-op-inv: #C4A0FF;--l-bl: #0B8585;--l-bl-ink: #086F6F;--l-bl-inv: #5AD6D6;--l-hub-soft: #ECECED;--l-fg-soft: #FCEEEF;--l-bk-soft: #F6F1EE;--l-co-soft: #EDF6F1;--l-dd-soft: #EDF2FC;--l-pb-soft: #FCF3EB;--l-op-soft: #F4EFFA;--l-bl-soft: #EBF5F5;--line: var(--l-hub);--line-ink: var(--l-hub-ink);--line-inv: var(--l-hub-inv);--line-soft: var(--l-hub-soft);--pill-fg: #FFFFFF;--pill-bg: var(--line-ink);--accent: var(--line);--accent-ink: var(--line-ink);--accent-on-inverse: var(--line-inv);--accent-soft: var(--line-soft);--surface-inverse: #0E0F0D;--surface-inverse-text: #FBFBF9;--border-emphasis: #0E0F0D;--surface-inverse-muted: #A9B0BA;--surface-inverse-rule: rgba(251, 251, 249, .14);--surface-inverse-hi: rgba(251, 251, 249, .06);--border-soft: rgba(18, 19, 15, .2);--border-softer: rgba(18, 19, 15, .09);--scroll-shadow: rgba(18, 19, 15, .48);--code-bg: #14161A;--code-text: #E3E7EE;--code-comment: #8B94A3;--code-key: #9FB4FF;--code-str: #8FD59B;--code-fn: #6FD3E0;--code-out: #a3be8c;--code-err: #c56b74;--code-atk: #d08770;--code-scroll-shadow: rgba(227, 231, 238, .38);--q-bg: #F4F1E6;--q-border: #A6780A;--q-ink: #8A6308;--q-answer: #3A3530;--tab-anthropic: #d4421e;--tab-openai: #10a37f;--tab-anthropic-ink: #e04e28;--tab-openai-ink: #10a37f;--badge-ink: #0E0F0D;--badge-tip-bg: #c5d86d;--badge-warn-bg: #e8a87c;--badge-danger-bg: #bf616a;--prose-italic: italic;--dur-fast: .12s;--dur-base: .15s;--ease: cubic-bezier(.2, 0, 0, 1);--radius-sm: 2px;--radius-md: 6px;--radius-pill: 999px;--radius-round: 50%;--shadow-overlay: 0 24px 60px rgba(10, 10, 10, .35);--track-mul: 1;--nav-h: 56px;--subnav-h: 0px}:root:lang(zh){--font-display: "Atkinson Hyperlegible Next", var(--font-cjk), system-ui, sans-serif;--font-body: "Atkinson Hyperlegible Next", var(--font-cjk), system-ui, sans-serif;--font-mono: "Atkinson Hyperlegible Mono", var(--font-cjk), ui-monospace, monospace;--prose-italic: normal;--track-mul: .15;font-synthesis-style:none;--lh-base: 1.8;--lh-md: 1.75}:root:lang(zh) h1,:root:lang(zh) h2,:root:lang(zh) h3,:root:lang(zh) h4{letter-spacing:normal}:lang(zh) em,:lang(zh) i{font-style:normal;font-weight:600}:lang(zh) .hero h1 em{font-weight:inherit}:root[data-theme=dark]{--ink: #ECEEF1;--paper: #0F1216;--surface: #171B21;--paper-2: var(--surface);--muted: #A9B0BA;--l-hub: #ECEEF1;--l-hub-ink: #ECEEF1;--l-fg: #FF6474;--l-fg-ink: #FF8A96;--l-bk: #D29A64;--l-bk-ink: #DDAE80;--l-co: #3DC57B;--l-co-ink: #5FD394;--l-dd: #6B97FF;--l-dd-ink: #8DB0FF;--l-pb: #FF9F33;--l-pb-ink: #FFB55E;--l-op: #B383FF;--l-op-ink: #C4A0FF;--l-bl: #2BC8C8;--l-bl-ink: #5AD6D6;--pill-fg: #0F1216;--l-hub-soft: #2A2C30;--l-fg-soft: #2C1C21;--l-bk-soft: #26221F;--l-co-soft: #152722;--l-dd-soft: #1A2232;--l-pb-soft: #2C2319;--l-op-soft: #232032;--l-bl-soft: #12282B;--surface-inverse: #24261F;--surface-inverse-text: #EDEDE8;--border-emphasis: #666961;--border-soft: rgba(237, 237, 232, .16);--border-softer: rgba(237, 237, 232, .1);--scroll-shadow: rgba(237, 237, 232, .38);--q-bg: #1A1814;--q-border: #D4A040;--q-ink: #D4A040;--q-answer: #D4CEBC}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ink: #ECEEF1;--paper: #0F1216;--surface: #171B21;--paper-2: var(--surface);--muted: #A9B0BA;--l-hub: #ECEEF1;--l-hub-ink: #ECEEF1;--l-fg: #FF6474;--l-fg-ink: #FF8A96;--l-bk: #D29A64;--l-bk-ink: #DDAE80;--l-co: #3DC57B;--l-co-ink: #5FD394;--l-dd: #6B97FF;--l-dd-ink: #8DB0FF;--l-pb: #FF9F33;--l-pb-ink: #FFB55E;--l-op: #B383FF;--l-op-ink: #C4A0FF;--l-bl: #2BC8C8;--l-bl-ink: #5AD6D6;--pill-fg: #0F1216;--l-hub-soft: #2A2C30;--l-fg-soft: #2C1C21;--l-bk-soft: #26221F;--l-co-soft: #152722;--l-dd-soft: #1A2232;--l-pb-soft: #2C2319;--l-op-soft: #232032;--l-bl-soft: #12282B;--surface-inverse: #24261F;--surface-inverse-text: #EDEDE8;--border-emphasis: #666961;--border-soft: rgba(237, 237, 232, .16);--border-softer: rgba(237, 237, 232, .1);--scroll-shadow: rgba(237, 237, 232, .38);--q-bg: #1A1814;--q-border: #D4A040;--q-ink: #D4A040;--q-answer: #D4CEBC}}@media (min-width: 1360px){:root{--t-prose: var(--t-md)}}:root[data-line=fg]{--line: var(--l-fg);--line-ink: var(--l-fg-ink);--line-inv: var(--l-fg-inv);--line-soft: var(--l-fg-soft)}:root[data-line=bk]{--line: var(--l-bk);--line-ink: var(--l-bk-ink);--line-inv: var(--l-bk-inv);--line-soft: var(--l-bk-soft)}:root[data-line=co]{--line: var(--l-co);--line-ink: var(--l-co-ink);--line-inv: var(--l-co-inv);--line-soft: var(--l-co-soft)}:root[data-line=dd]{--line: var(--l-dd);--line-ink: var(--l-dd-ink);--line-inv: var(--l-dd-inv);--line-soft: var(--l-dd-soft)}:root[data-line=pb]{--line: var(--l-pb);--line-ink: var(--l-pb-ink);--line-inv: var(--l-pb-inv);--line-soft: var(--l-pb-soft)}:root[data-line=op]{--line: var(--l-op);--line-ink: var(--l-op-ink);--line-inv: var(--l-op-inv);--line-soft: var(--l-op-soft)}:root[data-line=bl]{--line: var(--l-bl);--line-ink: var(--l-bl-ink);--line-inv: var(--l-bl-inv);--line-soft: var(--l-bl-soft)}*{box-sizing:border-box;margin:0;padding:0;-webkit-text-size-adjust:100%}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--t-base);line-height:var(--lh-base);overflow-x:hidden;padding-bottom:var(--s-7);padding-top:0}:lang(zh) body{font-family:var(--font-body),var(--font-cjk)}body.has-subnav{--subnav-h: 44px}.subnav{position:fixed;top:var(--nav-h);left:0;right:0;height:var(--subnav-h);background:var(--paper-2);border-bottom:1px solid var(--ink);z-index:99;display:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:stretch}.subnav::-webkit-scrollbar{display:none}body.has-subnav .subnav{display:flex}.subnav-link{padding:0 var(--s-3);display:flex;align-items:center;gap:var(--s-1);font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);text-decoration:none;color:var(--muted);background:transparent;border:none;cursor:pointer;white-space:nowrap;border-right:1px solid var(--border-softer);transition:color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease),border-bottom-color var(--dur-base) var(--ease)}.subnav-link:hover{color:var(--ink);background:#0000000a}.subnav-link.active{color:var(--accent-ink);background:var(--paper);border-bottom:2px solid var(--accent)}.subnav-link .num{font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-sm);font-style:italic;color:var(--accent-ink)}.subnav-link.shell{opacity:.55}.subnav-link.shell:after{content:"◌";font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);margin-left:var(--s-1)}.subnav-link.shell.active{opacity:1}.page{display:none}.page.active{display:block}.shell-banner{background:var(--q-bg);border-bottom:2px solid var(--q-border);padding:var(--s-3) var(--s-4);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--q-ink);font-weight:500}.hero{padding:var(--s-6) var(--s-4) var(--s-6);border-bottom:1px solid var(--ink)}.kicker{font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:700;color:var(--ink);margin-bottom:var(--s-4)}.hero h1{font-family:var(--font-display);font-weight:800;font-size:var(--t-2xl);line-height:var(--lh-2xl);letter-spacing:-.02em;margin-bottom:var(--s-4)}.hero h1 em{font-family:inherit;font-style:normal;color:var(--accent);letter-spacing:-.01em}.hero .lede{font-family:var(--font-body);font-size:var(--t-md);line-height:var(--lh-md);color:var(--muted);font-weight:400}.toc{padding:var(--s-5) var(--s-4);background:var(--paper-2);border-bottom:1px solid var(--ink)}.toc h2{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);margin-bottom:var(--s-2)}.toc-part{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--border-soft)}.toc-part-label{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3)}.toc-part-link{display:block;text-decoration:none;color:var(--ink);padding:var(--s-2) 0}.toc-part-link .toc-part-label{margin-bottom:0}.toc-part-link:hover .name{color:var(--accent-ink)}.toc-part-link .name{transition:color var(--dur-base) var(--ease)}.toc-part-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toc-see-all{display:inline-block;margin-top:var(--s-5);font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--accent-ink);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:var(--s-0)}.toc-see-all:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toc-part-label .roman{font-family:var(--font-body);font-size:var(--t-lg);line-height:var(--lh-lg);font-style:normal;font-weight:800;color:var(--l-fg-ink);min-width:2.2em}.toc-part-label .name{font-family:var(--font-body);font-size:var(--t-md);line-height:var(--lh-md);font-weight:700}.toc-part-label .meta{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);margin-left:auto}.toc-item{display:block;padding:var(--s-3) 0;border-top:1px solid var(--border-softer);text-decoration:none;color:var(--ink);cursor:pointer}.toc-item:first-child{border-top:none}.toc-item-top{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-1)}.toc-num{font-family:var(--font-body);font-size:var(--t-lg);line-height:var(--lh-lg);font-weight:400;color:var(--accent-ink);font-style:italic;min-width:32px}.toc-label{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs)}.toc-label .status{display:inline-block;margin-left:var(--s-1);font-size:var(--t-2xs);line-height:var(--lh-2xs);padding:1px var(--s-1);border-radius:var(--radius-sm);letter-spacing:calc(.12em * var(--track-mul))}.toc-label .status.ready{background:var(--accent);color:var(--paper)}.toc-label .status.shell{background:var(--border-softer);color:var(--muted)}.toc-label .time{display:inline-block;margin-left:var(--s-2);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);text-transform:none;letter-spacing:calc(.02em * var(--track-mul));font-weight:400;opacity:.7}.toc-desc{font-size:var(--t-sm);color:var(--muted);line-height:var(--lh-sm);padding-left:44px}.phase{padding:var(--s-7) 20px}.phase-num{display:inline-flex;align-items:center;vertical-align:middle;font-family:var(--font-display);font-size:var(--t-sm);line-height:var(--lh-2xs);font-weight:800;font-style:normal;font-variant-numeric:tabular-nums;color:var(--pill-fg);background:var(--pill-bg);padding:var(--s-1) var(--s-3);border-radius:var(--radius-md);margin:0 var(--s-3) 0 0}.phase-num:after{content:none}.week{display:inline;vertical-align:middle;font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:400;color:var(--muted);margin:0}.phase h2,.phase .phase-title{font-family:var(--font-display);font-size:var(--t-xl);line-height:var(--lh-xl);font-weight:800;letter-spacing:-.02em;text-wrap:balance;margin-top:var(--s-4);margin-bottom:var(--s-4)}.phase .standfirst{font-family:var(--font-body);font-size:var(--t-lg);line-height:var(--lh-md);font-weight:500;color:var(--ink);text-wrap:pretty;max-width:28em;margin-bottom:var(--s-5)}.phase .goal{font-family:var(--font-body);font-size:var(--t-prose);line-height:var(--lh-base);color:var(--ink);font-style:normal;max-width:var(--w-measure);margin-bottom:0;padding-bottom:var(--s-6);border-bottom:1px solid var(--border-soft)}.shell-plan{padding:0}.shell-plan-section{padding:var(--s-5) 0;border-top:1px solid var(--border-soft)}.shell-plan-section:first-of-type{border-top:none;padding-top:0}.shell-plan-section .lbl{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);font-weight:500;color:var(--accent-ink);letter-spacing:calc(.08em * var(--track-mul));margin-bottom:var(--s-2)}.shell-plan-section h3{font-family:var(--font-display);font-size:var(--t-lg);font-weight:500;line-height:var(--lh-lg);margin-bottom:var(--s-3);letter-spacing:-.01em}.shell-plan-section p{font-size:var(--t-prose);line-height:var(--lh-base);margin-bottom:var(--s-3);color:var(--q-answer)}.shell-plan-section ul.outline{margin:var(--s-3) 0;padding-left:0;list-style:none}.shell-plan-section ul.outline li{padding:var(--s-2) 0 var(--s-2) var(--s-5);position:relative;line-height:var(--lh-sm);font-size:var(--t-sm);border-top:1px dashed var(--border-softer)}.shell-plan-section ul.outline li:first-child{border-top:none}.shell-plan-section ul.outline li:before{content:attr(data-step);position:absolute;left:0;color:var(--accent-ink);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);font-weight:500}.shell-plan-section ul.outline li strong{display:block;font-size:var(--t-prose);line-height:var(--lh-base);margin-bottom:var(--s-0)}.shell-plan-section ul.outline li span.desc{color:var(--muted);font-size:var(--t-sm);line-height:var(--lh-sm)}.step{padding:var(--s-7) 0;border-top:1px solid var(--border-soft)}.step:first-of-type{border-top:none;padding-top:0}.goal+.step{border-top:none}.step-num{font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:600;color:var(--muted);text-transform:lowercase;margin-bottom:var(--s-2)}.step-num:first-letter{text-transform:uppercase}.step h3.has-step-ring{display:flex;align-items:baseline;gap:var(--s-3)}.step-ring{box-sizing:border-box;flex-shrink:0;display:inline-grid;place-items:center;width:36px;height:36px;border:4px solid var(--line);border-radius:var(--radius-round);font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-2xs);font-weight:800;font-style:normal;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0;transform:translateY(-4px)}.step h3{font-family:var(--font-display);font-size:var(--t-lg);font-weight:700;line-height:var(--lh-lg);margin-bottom:var(--s-4);letter-spacing:-.01em;text-wrap:balance}.step h4{font-family:var(--font-body);font-size:var(--t-base);line-height:var(--lh-sm);font-weight:700;color:var(--ink);margin:var(--s-6) 0 var(--s-2)}.step p{font-size:var(--t-prose);line-height:var(--lh-base);margin-bottom:var(--s-4)}.step p strong{font-weight:600}.step ul{margin:var(--s-3) 0;padding-left:0;list-style:none}.step ul li{padding:var(--s-1) 0 var(--s-1) var(--s-4);position:relative;line-height:var(--lh-base);font-size:var(--t-prose)}.step ul li:before{content:"→";position:absolute;left:0;color:var(--accent-ink);font-family:var(--font-mono)}.step ol li{font-size:var(--t-prose);line-height:var(--lh-base)}pre{color:var(--code-text);padding:var(--s-4);margin:0 -20px;font-family:var(--font-mono);font-size:var(--t-xs);line-height:var(--lh-xs);overflow-x:auto;-webkit-overflow-scrolling:touch;background:linear-gradient(to right,var(--code-bg),var(--code-bg)) left center / 20px 100% no-repeat local,linear-gradient(to left,var(--code-bg),var(--code-bg)) right center / 20px 100% no-repeat local,linear-gradient(to right,var(--code-scroll-shadow),transparent) left center / 12px 100% no-repeat scroll,linear-gradient(to left,var(--code-scroll-shadow),transparent) right center / 12px 100% no-repeat scroll,var(--code-bg)}.qa pre,.callout pre,.deliverable pre,.observe pre,.qa .diagram,.callout .diagram,.deliverable .diagram,.observe .diagram{margin-left:0;margin-right:0}pre.standalone{margin:var(--s-4) -20px}pre.trace{border-left-color:var(--code-fn);margin:var(--s-4) -20px}pre.shell{border-left-color:#c5d86d;margin:var(--s-4) -20px}pre.attack{border-left-color:#bf616a;margin:var(--s-4) -20px}.pre-wrap{position:relative}.copy-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;background:var(--paper);border:1px solid var(--border-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:border-color var(--dur-base) var(--ease),background var(--dur-base) var(--ease)}.copy-btn:hover{border-color:var(--muted);background:var(--paper-2)}.copy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.copy-btn svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.copy-btn .icon-check{display:none}.copy-btn.copied{border-color:var(--accent);background:var(--accent-soft)}.copy-btn.copied .icon-copy{display:none}.copy-btn.copied .icon-check{display:block;stroke:var(--accent-ink)}.copy-btn.error{border-color:#bf616a}.lang-badge{position:absolute;top:8px;left:8px;font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--code-comment);pointer-events:none}@media (prefers-reduced-motion: reduce){.copy-btn{transition:none}}.code-tabs{margin:var(--s-4) -20px 0;display:flex;background:#0f0f0f;border-bottom:1px solid #2a2a2a;position:relative}.code-tabs:before{content:"API";position:absolute;left:16px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--code-comment)}.code-tab{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);font-weight:500;background:transparent;color:#8a8270;border:none;padding:var(--s-2) var(--s-3);cursor:pointer;border-bottom:2px solid transparent;margin-left:var(--s-7);transition:color var(--dur-base) var(--ease),border-bottom-color var(--dur-base) var(--ease);letter-spacing:calc(.05em * var(--track-mul))}.code-tab:nth-child(3){margin-left:0}.code-tab:hover{color:#e8e4d8}.code-tab.active[data-api=anthropic]{color:var(--tab-anthropic-ink);border-bottom-color:var(--tab-anthropic)}.code-tab.active[data-api=openai]{color:var(--tab-openai-ink);border-bottom-color:var(--tab-openai)}.code-content{display:none}.code-content.active{display:block}.code-tabs+.code-content pre,.code-content pre{margin-top:0;border-left:none;padding-left:19px}code,code.inline{font-family:var(--font-mono);font-size:.85em;background:var(--accent-soft);padding:var(--s-0) var(--s-1);border-radius:var(--radius-sm);color:var(--ink);word-break:break-word}pre code{font-size:inherit;background:none;padding:0;border-radius:0;color:inherit}.c-cm,.c-kw,.c-st,.c-fn,.c-out,.c-err,.c-atk{font-family:var(--font-mono)}.c-cm{color:var(--code-comment)}.c-kw{color:var(--code-key)}.c-st{color:var(--code-str)}.c-fn{color:var(--code-fn)}.c-out{color:var(--code-out)}.c-err{color:var(--code-err)}.c-atk{color:var(--code-atk);font-weight:500}.callout{background:var(--accent-soft);color:var(--ink);padding:var(--s-5) var(--s-4);margin:var(--s-4) -20px;position:relative}.callout:before{content:"Note";display:inline-block;background:var(--pill-bg);color:var(--pill-fg);font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);font-weight:800;padding:0 var(--s-2);border-radius:var(--radius-pill);margin-bottom:var(--s-2)}.callout.warn{background:var(--q-bg)}.callout.warn:before{content:"Trap";background:var(--badge-warn-bg);color:var(--badge-ink)}.callout.tip:before{content:"Tip";background:var(--badge-tip-bg);color:var(--badge-ink)}.callout.danger:before{content:"Danger";background:var(--badge-danger-bg);color:var(--badge-ink)}.callout.composite{background:var(--q-bg);border:1px dashed var(--q-border)}.callout.composite:before{content:attr(data-badge);background:var(--badge-warn-bg);color:var(--badge-ink)}.callout.verified{background:var(--surface)}.callout.verified:before{content:attr(data-badge);background:var(--badge-tip-bg);color:var(--badge-ink)}.callout.start{background:var(--surface-inverse);color:var(--surface-inverse-text);border-left:none;border:1px solid var(--border-emphasis)}.callout.start:before{content:attr(data-badge);background:var(--line-inv);color:var(--surface-inverse)}.callout.start .path-pills{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:var(--s-1) 0 0}.callout.start .path-step{display:inline-flex;align-items:center;gap:var(--s-2)}.callout.start .path-pill{display:inline-block;font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);letter-spacing:calc(.06em * var(--track-mul));padding:var(--s-1) var(--s-2);text-decoration:none;background:#f4f1ea1a;color:var(--surface-inverse-text);border:1px solid rgba(244,241,234,.25);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.callout.start .path-pill:hover,.callout.start .path-pill:focus-visible{background:transparent;border-color:var(--line-inv);color:var(--line-inv);outline:none}.callout.start .path-arrow{font-family:var(--font-mono);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--line-inv);padding:0 1px}.callout.start .path-escape{font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);font-style:var(--prose-italic);font-weight:400;color:#f4f1ea99;margin:var(--s-2) 0 0}.callout.start .path-escape a{color:var(--line-inv);text-decoration:none;border-bottom:1px solid currentColor}.callout.start .path-line{font-family:var(--font-body);font-style:normal;font-weight:400;margin:0}.callout.start .path-line a{color:var(--line-inv);text-decoration:none;border-bottom:1px solid currentColor}.callout p{margin:0;font-family:var(--font-body);font-size:var(--t-prose);line-height:var(--lh-base);font-style:normal;font-weight:400}.qa{background:var(--q-bg);padding:var(--s-4) var(--s-4) var(--s-3);margin:var(--s-4) -20px}.qa .q{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--q-ink);margin-bottom:var(--s-1)}.qa .question{font-family:var(--font-display);font-size:var(--t-md);font-weight:500;line-height:var(--lh-md);margin-bottom:var(--s-2);color:var(--ink)}.qa .answer{font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--q-answer)}.qa .answer p{margin-bottom:var(--s-2)}.qa .answer p:last-child{margin-bottom:0}.qa .answer ul li{font-size:var(--t-sm);line-height:var(--lh-sm)}.qa code.inline{background:#b8860b26}.observe{background:var(--surface);padding:var(--s-4) var(--s-4);margin:var(--s-4) -20px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}.observe .label{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--accent-ink);margin-bottom:var(--s-2)}.observe p{font-size:var(--t-sm);line-height:var(--lh-sm);margin-bottom:var(--s-2)}.observe p:last-child{margin-bottom:0}.deliverable{margin-top:var(--s-6);padding:var(--s-5) var(--s-4);background:var(--surface-inverse);color:var(--surface-inverse-text);border:1px solid var(--border-emphasis);margin-left:-20px;margin-right:-20px}.deliverable .tag{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--accent-on-inverse);margin-bottom:var(--s-3)}.deliverable h3{font-family:var(--font-display);font-size:var(--t-md);line-height:var(--lh-md);font-weight:500;margin-bottom:var(--s-2)}.deliverable p{font-size:var(--t-sm);line-height:var(--lh-sm);opacity:.85;margin-bottom:var(--s-3)}.deliverable .checklist{list-style:none;padding:0;margin:0}.deliverable .checklist li{font-family:var(--font-mono);font-size:var(--t-2xs);padding:var(--s-1) 0 var(--s-1) var(--s-4);position:relative;opacity:.9;line-height:var(--lh-2xs)}.deliverable .checklist li:before{content:"☐";position:absolute;left:0;color:var(--accent-on-inverse)}.diagram{margin:var(--s-4) -20px;padding:var(--s-4);background:linear-gradient(to right,var(--paper-2),var(--paper-2)) left center / 20px 100% no-repeat local,linear-gradient(to left,var(--paper-2),var(--paper-2)) right center / 20px 100% no-repeat local,linear-gradient(to right,var(--scroll-shadow),transparent) left center / 12px 100% no-repeat scroll,linear-gradient(to left,var(--scroll-shadow),transparent) right center / 12px 100% no-repeat scroll,var(--paper-2);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);overflow-x:auto;white-space:pre;-webkit-overflow-scrolling:touch}.page-nav{padding:var(--s-6) var(--s-4) var(--s-7);display:flex;justify-content:space-between;align-items:stretch;gap:var(--s-3);background:var(--paper)}.page-nav-btn{flex:1;padding:var(--s-4) var(--s-4);background:var(--surface-inverse);color:var(--surface-inverse-text);border:1px solid var(--border-emphasis);cursor:pointer;text-align:left;font-family:inherit;transition:background var(--dur-base) var(--ease)}.page-nav-btn:hover{background:var(--accent)}.page-nav-btn:disabled{opacity:.3;cursor:not-allowed;background:var(--muted)}.related-posts{padding:var(--s-6) var(--s-4) 0}.related-posts h2{font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);font-weight:600;color:var(--muted);margin:0 0 var(--s-3)}.related-posts ul{list-style:none;padding:0;margin:0}.related-posts li{padding:var(--s-2) 0;border-bottom:1px solid var(--border-soft)}.related-posts a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;transition:color var(--dur-fast) var(--ease),border-bottom-color var(--dur-fast) var(--ease)}.related-posts a:hover{color:var(--accent-ink);border-bottom-color:var(--accent)}.related-posts-date{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);margin-left:var(--s-2);white-space:nowrap}.page-nav-btn .dir{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);opacity:.6;margin-bottom:var(--s-1)}.page-nav-btn .title{font-family:var(--font-body);font-size:var(--t-md);line-height:var(--lh-md);font-style:var(--prose-italic);font-weight:400}.page-nav-btn.next{text-align:right}.outro{padding:var(--s-7) var(--s-4);text-align:center;border-bottom:1px solid var(--ink)}.outro h2{font-family:var(--font-body);font-size:var(--t-2xl);font-weight:400;font-style:var(--prose-italic);line-height:var(--lh-2xl);margin-bottom:var(--s-4);letter-spacing:-.02em}.outro p{font-size:var(--t-sm);color:var(--muted);line-height:var(--lh-sm);max-width:var(--w-measure);margin:0 auto}.threat-grid{margin:var(--s-4) -20px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.threat-row{display:grid;grid-template-columns:1fr;padding:var(--s-4) var(--s-4);border-bottom:1px solid var(--border-softer);background:var(--surface)}.threat-row:last-child{border-bottom:none}.threat-row.header{background:var(--surface-inverse);color:var(--surface-inverse-text);border-bottom:1px solid var(--border-emphasis);font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs)}.threat-row .name{font-family:var(--font-body);font-style:var(--prose-italic);font-size:var(--t-md);line-height:var(--lh-md);font-weight:500;color:var(--accent-ink);margin-bottom:var(--s-1)}.threat-row .vector{font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--muted);margin-bottom:var(--s-1)}.threat-row .defense{font-size:var(--t-xs);line-height:var(--lh-xs)}.phase p,.step p,.step li,.phase .goal,.deliverable .checklist li{max-width:var(--w-measure)}@media (min-width: 700px){:root{--nav-h: 60px;--subnav-h: 0px}body.has-subnav{--subnav-h: 48px}.subnav-link{padding:0 var(--s-4);font-size:var(--t-2xs)}.hero{padding:var(--s-8) var(--s-7) var(--s-7)}.hero h1{font-size:var(--t-3xl);line-height:var(--lh-3xl)}.hero .lede{font-size:var(--t-md);line-height:var(--lh-md)}.toc,.phase,.outro,.page-nav,.shell-banner{padding-left:var(--s-7);padding-right:var(--s-7)}.phase{padding-top:var(--s-8);padding-bottom:var(--s-8)}.phase h2,.phase .phase-title{font-size:var(--t-2xl);line-height:var(--lh-2xl)}.step h3{font-size:var(--t-xl);line-height:var(--lh-xl)}pre,.callout,.deliverable,.qa,.observe,.code-tabs,.diagram,.threat-grid{margin-left:0;margin-right:0}pre,.callout,.deliverable{padding:var(--s-5)}pre,.callout,.deliverable,.qa,.observe{border-radius:var(--radius-md)}.callout{padding:var(--s-5)}.deliverable{padding:var(--s-6)}.diagram{font-size:var(--t-xs);line-height:var(--lh-xs)}.outro h2{font-size:var(--t-3xl);line-height:var(--lh-3xl)}.threat-row{grid-template-columns:1fr 1fr 2fr;gap:var(--s-4);align-items:center;padding:var(--s-4) var(--s-5)}.threat-row .name,.threat-row .vector,.threat-row .defense{margin-bottom:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}body{padding-top:0}.site-header{position:sticky;top:0;z-index:200;display:flex;align-items:stretch;height:var(--nav-h);background:var(--paper);border-bottom:1px solid var(--border-soft)}:root:not([data-line=hub]) .site-header:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:5px;background:var(--line);pointer-events:none}.site-header .brand{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-4);font-family:var(--font-display);font-size:var(--t-md);line-height:var(--lh-2xs);font-weight:800;letter-spacing:-.01em;color:var(--ink);text-decoration:none;flex-shrink:0;white-space:nowrap}.site-header .brand:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.site-header .brand .interchange{display:block;flex-shrink:0}.nav-toggle{display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:0 var(--s-3);min-width:44px;min-height:44px;flex-shrink:0;background:transparent;border:0;font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.nav-toggle:hover{color:var(--ink);background:var(--paper-2)}.nav-toggle:focus-visible{color:var(--ink);background:var(--paper-2);outline:2px solid var(--accent);outline-offset:-2px}.nav-toggle .ico-close,.nav-toggle[aria-expanded=true] .ico-open{display:none}.nav-toggle[aria-expanded=true] .ico-close{display:block}.nav-toggle[aria-expanded=true]{color:var(--ink);background:var(--paper-2)}@media (min-width: 1180px){.nav-toggle{display:none}}@media (max-width: 1179.98px){.site-header nav#site-nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;overflow:visible;background:var(--paper);border-bottom:2px solid var(--ink);max-height:calc(100dvh - var(--nav-h));overflow-y:auto}.site-header nav#site-nav[data-open=false]{clip-path:inset(0 0 100% 0);pointer-events:none}.site-header nav#site-nav[data-open=false] a{visibility:hidden}.site-header nav#site-nav a{width:100%;border-right:0;border-bottom:1px solid var(--border-soft);padding:0 var(--s-4)}}.site-header nav{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:linear-gradient(to right,var(--paper),var(--paper)) left center / 20px 100% no-repeat local,linear-gradient(to left,var(--paper),var(--paper)) right center / 20px 100% no-repeat local,linear-gradient(to right,var(--scroll-shadow),transparent) left center / 12px 100% no-repeat scroll,linear-gradient(to left,var(--scroll-shadow),transparent) right center / 12px 100% no-repeat scroll}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{position:relative;display:flex;align-items:center;padding:0 var(--s-3);min-height:44px;font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-xs);font-weight:600;color:var(--muted);text-decoration:none;flex-shrink:0;white-space:nowrap;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.site-header nav a:hover{color:var(--ink);background:var(--paper-2)}.site-header nav a[data-line]:after{content:"";position:absolute;left:var(--s-3);bottom:var(--s-2);width:var(--s-4);height:var(--s-1);border-radius:var(--radius-pill);background:var(--tick)}.site-header nav a[data-line=fg]{--tick: var(--l-fg)}.site-header nav a[data-line=bk]{--tick: var(--l-bk)}.site-header nav a[data-line=co]{--tick: var(--l-co)}.site-header nav a[data-line=dd]{--tick: var(--l-dd)}.site-header nav a[data-line=pb]{--tick: var(--l-pb)}.site-header nav a[data-line=op]{--tick: var(--l-op)}.site-header nav a[data-line=bl]{--tick: var(--l-bl)}.site-header nav a[aria-current=page]{color:var(--ink)}.site-header nav a[aria-current=page]:after{right:var(--s-3);width:auto}.site-header nav a:focus-visible{color:var(--ink);background:var(--paper-2);outline:2px solid var(--accent);outline-offset:-2px}.site-footer{border-top:2px solid var(--ink);margin-top:var(--s-8);padding:var(--s-6) var(--s-4) var(--s-5);font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted)}.site-footer-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5);margin-bottom:var(--s-6)}.site-footer-head{font-family:inherit;font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:700;color:var(--ink);margin:0 0 var(--s-3)}.site-footer-nav ul{list-style:none;margin:0;padding:0}.site-footer-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;transition:color var(--dur-fast) var(--ease),border-bottom-color var(--dur-fast) var(--ease)}.site-footer-nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}.site-footer-nav a:focus-visible{color:var(--ink);outline:2px solid var(--accent);outline-offset:2px}.site-footer-nav a[aria-current=true]{color:var(--accent-ink)}.site-footer-tagline{margin:0;padding-top:var(--s-4);border-top:1px solid var(--border-soft)}@media (max-width: 560px){.site-footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4) var(--s-5)}}.wrap{max-width:var(--w-wrap);margin:0 auto}.breadcrumb{font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted);padding:var(--s-5) var(--s-4) 0}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--accent-ink)}.chapter-shell{display:flex;gap:var(--s-6);align-items:flex-start;max-width:var(--w-shell);margin:0 auto;padding:0 var(--s-6)}.chapter-main{flex:1;min-width:0}.chapter-side{width:var(--w-rail-nav);flex-shrink:0;position:sticky;top:var(--nav-h);align-self:flex-start;max-height:calc(100vh - var(--nav-h));overflow-y:auto;padding:var(--s-5) 0 var(--s-7)}.chapter-side-nav .side-part-group{margin-bottom:var(--s-5)}.chapter-side-nav .side-part{display:flex;gap:var(--s-2);align-items:baseline;margin:0 0 var(--s-3);font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);font-weight:700;color:var(--ink)}.chapter-side-nav .side-part .roman{font-family:var(--font-body);font-weight:800;color:var(--accent-ink)}.chapter-side-nav ul{list-style:none;margin:0;padding:0}.chapter-side-nav li{position:relative}.chapter-side-nav li:before{content:"";position:absolute;left:5px;top:var(--s-4);bottom:calc(-1 * var(--s-3));width:var(--s-1);background:var(--line)}.chapter-side-nav li:last-child:before{content:none}.chapter-side-nav li a{position:relative;display:block;font-family:var(--font-body);font-size:var(--t-sm);color:var(--muted);text-decoration:none;padding:var(--s-1) var(--s-2) var(--s-1) var(--s-6);line-height:var(--lh-sm);transition:color var(--dur-fast) var(--ease)}.chapter-side-nav li a:before{content:"";position:absolute;left:0;top:7px;z-index:1;box-sizing:border-box;width:14px;height:14px;border-radius:var(--radius-round);border:3px solid var(--line);background:var(--paper)}.chapter-side-nav li a[data-visited]:before{background:var(--line)}.chapter-side-nav li a:hover{color:var(--ink)}.chapter-side-nav li a:focus-visible{color:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}.chapter-side-nav li a[aria-current=page]{color:var(--ink);font-weight:700}.chapter-side-nav li a[aria-current=page]:before{left:-4px;top:3px;width:22px;height:22px;border-width:5px;background:var(--paper)}a.page-nav-btn{display:block;text-decoration:none;color:var(--surface-inverse-text)}a.page-nav-btn:hover{color:var(--surface-inverse-text)}a.page-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chapter-toc{width:var(--w-rail-toc);flex-shrink:0;font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);border-left:1px solid var(--paper-2);padding-left:var(--s-4);align-self:start;position:sticky;top:calc(var(--nav-h) + var(--subnav-h) + 16px);max-height:calc(100vh - var(--nav-h) - var(--subnav-h) - 32px);overflow-y:auto;color:var(--muted)}.chapter-toc[hidden]{display:none}.chapter-toc-header{margin-bottom:var(--s-1)}.chapter-toc-toggle{display:inline-flex;align-items:center;gap:var(--s-1);background:transparent;border:0;padding:0;cursor:pointer;font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted)}.chapter-toc-toggle:hover{color:var(--ink)}.chapter-toc-toggle:focus-visible{color:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}.chapter-toc-toggle .chapter-toc-chev{transition:transform var(--dur-base) var(--ease)}.chapter-toc-toggle[aria-expanded=false] .chapter-toc-chev{transform:rotate(-90deg)}.chapter-toc-list{list-style:none;padding:0;margin:0}.chapter-toc-item{padding:var(--s-1) 0}.chapter-toc-item a{color:var(--muted);text-decoration:none;display:block;padding:var(--s-0) 0}.chapter-toc-item a:hover{color:var(--ink)}.chapter-toc-item a:focus-visible{color:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}.chapter-toc-h3{padding-left:var(--s-4)}.chapter-toc-item.active>a{color:var(--accent-ink)}@media (max-width: 899.98px){.chapter-toc{display:none}}.mobile-section-nav{display:none}.mobile-section-nav a{display:inline-block;margin:var(--s-3) var(--s-4) 0;font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--accent-ink);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:var(--s-0)}.mobile-section-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (max-width: 1023.98px){.chapter-side{display:none}.chapter-shell{padding:0}.mobile-section-nav{display:block}}@media (min-width: 900px) and (max-width: 1359.98px){.chapter-shell{flex-wrap:wrap}.chapter-toc{order:-1;width:100%;position:static;max-height:none;overflow-y:visible;border-left:0;padding-left:var(--s-4);padding-right:var(--s-4);margin-bottom:var(--s-4)}.chapter-toc-item{max-width:var(--w-measure)}}@media (min-width: 900px) and (max-width: 1023.98px){.chapter-side.chapter-side-blogtoc{display:block;order:-1;width:100%;position:static;max-height:none;overflow-y:visible;padding:0}}.lang-switch{display:flex;align-items:stretch;margin-left:auto;flex-shrink:0}.lang-switch a{display:flex;align-items:center;justify-content:center;padding:0 var(--s-3);min-width:44px;font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-xs);font-weight:600;color:var(--muted);text-decoration:none;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.lang-switch a:hover{color:var(--ink);background:var(--paper-2)}.lang-switch a[aria-current=true]{position:relative;color:var(--ink);font-weight:800}.lang-switch a[aria-current=true]:after{content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:var(--s-2);height:var(--s-1);border-radius:var(--radius-pill);background:var(--ink)}.lang-switch a:focus-visible{color:var(--ink);background:var(--paper-2);outline:2px solid var(--accent);outline-offset:-2px}.xref{color:inherit;text-decoration:none;border-bottom:1px dotted var(--accent);transition:color var(--dur-fast) var(--ease),border-bottom-color var(--dur-fast) var(--ease)}.xref:hover,.xref:focus-visible{color:var(--accent-ink);border-bottom:1px solid var(--accent-ink)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:-9999px;top:0;z-index:300;padding:var(--s-2) var(--s-3);background:var(--surface-inverse);color:var(--surface-inverse-text);border:1px solid var(--border-emphasis);font-family:var(--font-mono);font-size:var(--t-xs);line-height:var(--lh-xs);letter-spacing:calc(.08em * var(--track-mul));text-decoration:none}.skip-link:focus{left:8px;top:8px;outline:2px solid var(--accent)}.site-search{display:flex;align-items:stretch;margin-left:auto;flex-shrink:0}.site-search-trigger{display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:0 var(--s-3);height:100%;min-width:44px;flex-shrink:0;background:transparent;border:0;font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-xs);font-weight:600;color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.site-search-trigger:hover,.site-search-trigger:focus-visible{color:var(--ink);background:var(--paper-2);outline:none}.site-search-trigger:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.site-search-trigger svg{display:block}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;flex-shrink:0;margin:0 var(--s-1) 0 0;background:transparent;color:var(--ink);border:0;border-radius:var(--radius-sm);cursor:pointer;-webkit-appearance:none;appearance:none;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--paper-2)}.theme-toggle:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.theme-toggle svg{display:none}.theme-toggle[data-theme=light] .ico-sun,.theme-toggle[data-theme=dark] .ico-moon,.theme-toggle[data-theme=auto] .ico-auto{display:block}.site-search-modal{position:fixed;inset:0;z-index:400;overflow-y:auto;overscroll-behavior:contain}.site-search-backdrop{position:absolute;inset:0;background:#0a0a0a8c}.site-search-panel{position:relative;max-width:640px;margin:8vh auto 0;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow-overlay);padding:var(--s-4) var(--s-7) var(--s-5) var(--s-5)}.site-search-close{position:absolute;top:var(--s-2);right:var(--s-2);display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:0;cursor:pointer;font-size:var(--t-xl);line-height:var(--lh-xl);color:var(--muted);z-index:1}.site-search-close:hover,.site-search-close:focus-visible{color:var(--ink);outline:none}.site-search-close:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}html.site-search-open{overflow:hidden}.site-search-results{--pagefind-ui-primary: var(--accent-ink);--pagefind-ui-text: var(--ink);--pagefind-ui-background: var(--paper);--pagefind-ui-border: var(--border-soft);--pagefind-ui-tag: var(--paper-2);--pagefind-ui-border-width: 1px;--pagefind-ui-border-radius: 0px;--pagefind-ui-image-border-radius: 0px;--pagefind-ui-font: var(--font-body)}.site-search-results .pagefind-ui__search-input{font-family:var(--font-display);font-size:var(--t-base);line-height:var(--lh-base);background:var(--paper-2);color:var(--ink)}.site-search-results .pagefind-ui__search-input:focus{outline:2px solid var(--accent);outline-offset:-2px}.site-search-results .pagefind-ui__search-clear{top:14px;right:10px;height:auto;padding:var(--s-1) var(--s-2);border:1px solid var(--border-soft);background:transparent;font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.site-search-results .pagefind-ui__search-clear:hover,.site-search-results .pagefind-ui__search-clear:focus-visible{border-color:var(--accent-ink);color:var(--accent-ink);outline:none}.site-search-results .pagefind-ui__filter-panel{border:0;padding:0;margin-top:var(--s-3)}.site-search-results .pagefind-ui__filter-name{font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted);font-weight:600}.site-search-results .pagefind-ui__filter-block[open] .pagefind-ui__filter-name,.site-search-results .pagefind-ui__filter-label{color:var(--ink)}.site-search-results .pagefind-ui__result-title a{font-family:var(--font-display);color:var(--ink)}.site-search-results .pagefind-ui__result-title a:hover{color:var(--accent-ink)}.site-search-results .pagefind-ui__result-excerpt{color:var(--muted)}.site-search-results .pagefind-ui__message,.site-search-results .pagefind-ui__button{font-family:var(--font-mono);letter-spacing:calc(.04em * var(--track-mul))}.site-search-results mark{background:var(--accent-soft);color:var(--ink);padding:0 1px}.entry-link{transition:border-color var(--dur-base) var(--ease)}.entry-link>div:first-child{transition:color var(--dur-base) var(--ease)}.entry-link:hover{border-color:var(--accent)}.entry-link:hover>div:first-child,.entry-link:focus-visible>div:first-child{color:var(--accent-ink)}.entry-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.home-toc-wrap .toc{padding-left:var(--s-4);padding-right:var(--s-4)}.home-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-7);max-width:var(--w-shell);margin:0 auto;padding:var(--s-7) var(--s-4) var(--s-8)}@media (min-width: 1024px){.home-hero{grid-template-columns:minmax(0,500px) minmax(0,1fr);align-items:center;gap:var(--s-8);padding:var(--s-8) var(--s-6) var(--s-8) var(--s-8)}}.home-hero h1{font-family:var(--font-display);font-weight:800;font-size:var(--t-3xl);line-height:var(--lh-3xl);letter-spacing:-.025em;margin-bottom:var(--s-5);text-wrap:balance}.home-hero h1 em{font-style:normal}.home-hero .lede{font-size:var(--t-md);line-height:var(--lh-md);color:var(--muted);margin-bottom:var(--s-6)}.home-search{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:56px;padding:0 var(--s-5);border:2px solid var(--ink);border-radius:var(--radius-pill);background:var(--paper);color:var(--muted);cursor:pointer;font-family:var(--font-body);font-size:var(--t-md);line-height:var(--lh-2xs);text-align:left;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.home-search:hover{color:var(--ink);background:var(--surface)}.home-search:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.home-search svg{flex-shrink:0;color:var(--ink)}.home-stat{margin-top:var(--s-4);font-family:var(--font-body);font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--muted)}.line-map [data-line=fg]{--c: var(--l-fg)}.line-map [data-line=bk]{--c: var(--l-bk)}.line-map [data-line=co]{--c: var(--l-co)}.line-map [data-line=dd]{--c: var(--l-dd)}.line-map [data-line=pb]{--c: var(--l-pb)}.line-map [data-line=op]{--c: var(--l-op)}.line-map [data-line=bl]{--c: var(--l-bl)}.line-map-svg{display:none;width:100%;height:auto;overflow:visible}.line-map-track{fill:none;stroke:var(--c);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width var(--dur-base) var(--ease)}.line-map-stop{fill:var(--paper);stroke:var(--c);stroke-width:5}.line-map-hub{fill:var(--paper);stroke:var(--ink);stroke-width:6}.line-map-name{font-family:var(--font-body);font-size:19px;font-weight:700;fill:var(--ink)}.line-map-count{font-family:var(--font-body);font-size:14px;fill:var(--muted)}.line-map-here{font-family:var(--font-body);font-size:14px;font-weight:700;fill:var(--ink)}.line-map-line{outline:none}.line-map-line:hover .line-map-track,.line-map-line:focus-visible .line-map-track{stroke-width:11}.line-map-line:hover .line-map-name,.line-map-line:focus-visible .line-map-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.line-map-line:focus-visible .line-map-stop{stroke:var(--ink)}.line-map-list{list-style:none;margin:0;padding:0}.line-map-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-1) var(--s-3);align-items:baseline;min-height:44px;padding:var(--s-3) 0;border-top:1px solid var(--border-soft);color:var(--ink);text-decoration:none}.line-map-list a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.line-map-list-name{font-weight:700;font-size:var(--t-base);line-height:var(--lh-sm)}.line-map-list-count{font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--muted);font-variant-numeric:tabular-nums}.line-map-list-bar{grid-column:1 / -1;width:var(--len);height:6px;border-radius:var(--radius-pill);background:var(--c)}@media (min-width: 760px){.line-map-svg{display:block}.line-map-list{display:none}}.home-section{padding:0 var(--s-4) var(--s-6)}.home-section--feature{padding-bottom:var(--s-5)}.home-section--grid{padding-bottom:var(--s-8)}.home-grid-heading{margin-bottom:var(--s-3)}.home-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:var(--s-4)}@media (min-width: 560px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 760px){.home-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-toc-wrap{padding:0 var(--s-4) var(--s-8)}.home-blog{padding-bottom:var(--s-8)}.home-feature{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--dur-base) var(--ease)}.home-feature:hover{border-color:var(--accent)}.home-feature:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.home-feature-figure{background:var(--surface);border-bottom:1px solid var(--border-soft);padding:var(--s-4)}.home-feature-figure svg{display:block;width:100%;height:auto;max-height:340px}.home-feature-body{padding:var(--s-5)}.home-feature:hover .home-card-title{color:var(--accent-ink)}.home-blog-more,.home-blog-all{margin-top:var(--s-4)}.home-latest{padding-top:0}.home-latest-heading{text-decoration:none;color:inherit;display:inline-block;margin-bottom:var(--s-2)}.home-latest-list{list-style:none;padding:0;margin:0}.home-latest-list li{padding:var(--s-2) 0;border-bottom:1px solid var(--border-soft)}.home-latest-date{font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);margin-right:var(--s-2)}.home-card-title{font-family:var(--font-display);font-weight:500;font-size:var(--t-lg);line-height:var(--lh-lg)}.home-card-title--feature{font-size:var(--t-xl);line-height:var(--lh-xl)}.home-card-tagline{font-family:var(--font-display);font-weight:500;font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--muted);margin-top:var(--s-2)}.home-card-meta{font-family:var(--font-body);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted);margin-top:var(--s-3)}.home-card{display:block;border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--s-5);text-decoration:none;color:var(--ink);transition:border-color var(--dur-base) var(--ease)}.home-card--feature{padding:var(--s-6);border-color:var(--accent)}.home-card:hover{border-color:var(--accent)}.home-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.home-changelog-link{color:var(--ink);transition:color var(--dur-base) var(--ease)}.home-changelog-link:hover,.home-changelog-link:focus-visible{color:var(--accent-ink)}.home-changelog-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toc-chapter-link{text-decoration:none;color:var(--ink);display:flex;gap:var(--s-3)}.toc-chapter-title{transition:color var(--dur-base) var(--ease)}.toc-chapter-link:hover .toc-chapter-title,.toc-chapter-link:focus-visible .toc-chapter-title{color:var(--accent-ink)}.toc-chapter-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.blog-tag{display:inline-block;padding:var(--s-0) var(--s-2);border:1px solid var(--border-soft);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--t-2xs);line-height:var(--lh-2xs);letter-spacing:calc(.05em * var(--track-mul));color:var(--muted);text-decoration:none;background:transparent;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.blog-tag:hover,.blog-tag:focus-visible{border-color:var(--accent-ink);color:var(--accent-ink);outline:none}.blog-tag:focus-visible{box-shadow:0 0 0 2px var(--accent)}.blog-list{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:var(--s-3)}@media (min-width: 1024px){.blog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.site-header .brand{padding:0 var(--s-3)}.site-search{margin-left:auto}.site-search-trigger{padding:var(--s-2) var(--s-3)}.site-search-label,.nav-toggle-label{display:none}.nav-toggle{padding:0 var(--s-2)}.lang-switch{margin-left:0}.site-search-panel{margin:44px 0 0;max-width:none;min-height:calc(100dvh - 44px)}}@media (max-width: 430px){.site-header .brand{padding:0 var(--s-2)}.lang-switch a[aria-current=true]{display:none}}@media (max-width: 360px){.site-header .brand{padding:0 var(--s-1)}}.changelog-body{padding:var(--s-6) var(--s-4)}.changelog-body [data-line=hub]{--c: var(--l-hub)}.changelog-body [data-line=fg]{--c: var(--l-fg)}.changelog-body [data-line=bk]{--c: var(--l-bk)}.changelog-body [data-line=co]{--c: var(--l-co)}.changelog-body [data-line=dd]{--c: var(--l-dd)}.changelog-body [data-line=pb]{--c: var(--l-pb)}.changelog-body [data-line=op]{--c: var(--l-op)}.changelog-body [data-line=bl]{--c: var(--l-bl)}.changelog-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:var(--radius-round);background:var(--c)}.changelog-chart{margin-bottom:var(--s-7)}.changelog-chart-title{font-family:var(--font-display);font-weight:800;font-size:var(--t-lg);line-height:var(--lh-lg);margin:0 0 var(--s-3)}.changelog-chart-rows{list-style:none;margin:0;padding:0}.changelog-chart-row{display:grid;grid-template-columns:9.5em minmax(0,1fr) 3ch;gap:var(--s-3);align-items:center;min-height:44px;border-top:1px solid var(--border-softer);color:var(--ink);text-decoration:none;transition:background-color var(--dur-fast) var(--ease)}.changelog-chart-row:hover{background:var(--surface)}.changelog-chart-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.changelog-chart-month{font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:600;white-space:nowrap}.changelog-chart-row:hover .changelog-chart-month{text-decoration:underline;text-underline-offset:3px}.changelog-chart-short{display:none}.changelog-chart-track{display:block;min-width:0}.changelog-chart-bar{display:flex;gap:2px;height:12px;min-width:12px;border-radius:var(--radius-pill);overflow:hidden}.changelog-seg{flex:0 1 0;min-width:2px;background:var(--c);transition:opacity var(--dur-base) var(--ease)}.changelog-seg.is-dim{opacity:.16}.changelog-chart-count{font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.changelog-legend{list-style:none;margin:var(--s-3) 0 0;padding:var(--s-3) 0 0;border-top:1px solid var(--border-softer);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted)}.changelog-legend li{display:inline-flex;align-items:center;gap:var(--s-2)}.changelog-filter{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-bottom:var(--s-6)}.changelog-filter[hidden]{display:none}.changelog-filter-label{font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:600;color:var(--muted);margin-right:var(--s-1)}.changelog-chip{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-3);border:1px solid var(--border-soft);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);font:600 var(--t-sm)/var(--lh-sm) var(--font-body);cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.changelog-chip:hover{background:var(--surface);border-color:var(--ink)}.changelog-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.changelog-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.changelog-chip[aria-pressed=true] .changelog-dot{box-shadow:0 0 0 2px var(--paper)}.changelog-chip[aria-pressed=true] .changelog-dot[data-line=hub]{background:var(--paper)}.changelog-month{margin-bottom:var(--s-7)}.changelog-month[hidden]{display:none}.changelog-month-head{font-family:var(--font-display);font-weight:800;font-size:var(--t-lg);line-height:var(--lh-lg);margin:0;padding-bottom:var(--s-2);border-bottom:2px solid var(--ink);scroll-margin-top:calc(var(--nav-h) + var(--s-4))}.changelog-month-count{font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:400;color:var(--muted);margin-left:var(--s-2);white-space:nowrap}.changelog-list{list-style:none;padding:0;margin:0}.changelog-entry{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--s-1);padding:var(--s-3) 0;border-bottom:1px solid var(--border-softer)}.changelog-entry[hidden]{display:none}.changelog-meta{display:flex;align-items:center;gap:var(--s-3);min-width:0}.changelog-date{font-family:var(--font-mono);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted);white-space:nowrap}.changelog-dots{display:inline-flex;align-items:center;gap:var(--s-1)}.changelog-title{display:flex;align-items:center;gap:var(--s-3);min-height:44px;cursor:pointer;list-style:none;font-family:var(--font-display);font-weight:600;font-size:var(--t-base);line-height:var(--lh-sm);transition:color var(--dur-fast) var(--ease)}.changelog-title::-webkit-details-marker{display:none}.changelog-title-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-width:0}.changelog-detail[open] .changelog-title-text{display:block;-webkit-line-clamp:unset}.changelog-chevron{flex:none;margin-left:auto;color:var(--muted)}.changelog-detail[open] .changelog-chevron{transform:rotate(90deg)}.changelog-title:hover{color:var(--accent-ink)}.changelog-title:hover .changelog-chevron{color:var(--ink)}.changelog-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.changelog-items{margin:var(--s-1) 0 var(--s-3);padding-left:var(--s-4)}.changelog-items li{margin:.3em 0;color:var(--ink)}.changelog-items a{text-decoration:none}.changelog-items a code{color:var(--accent-ink)}.changelog-items a:hover code{background:var(--accent)}.changelog-items a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 599px){.changelog-chart-row{grid-template-columns:5.5em minmax(0,1fr) 3ch;gap:var(--s-2)}.changelog-chart-long{display:none}.changelog-chart-short{display:inline}}@media (min-width: 760px){.changelog-entry{grid-template-columns:9.5em minmax(0,1fr);column-gap:var(--s-4);align-items:start;padding:var(--s-1) 0}.changelog-meta{min-height:44px}.changelog-title{font-size:var(--t-md);line-height:var(--lh-md)}}.page-meta{font-family:var(--font-body);font-size:var(--t-2xs);line-height:var(--lh-2xs);color:var(--muted);padding:var(--s-2) var(--s-4) 0}.lede,.toc-desc,.home-card-tagline,.blog-card-summary,.changelog-items li,.home-latest-list li,.related-posts li,.entry-summary{max-width:var(--w-measure)}.entry-list{list-style:none;padding:0;margin:0}.entry-item{padding:var(--s-3) 0;border-bottom:1px solid var(--border-soft)}.entry-link{text-decoration:none;color:var(--ink);display:block}.entry-title{font-family:var(--font-display);font-size:var(--t-md);line-height:var(--lh-md)}.entry-summary{color:var(--muted);font-size:var(--t-sm);line-height:var(--lh-sm);margin-top:var(--s-1)}.group-card-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:var(--s-3);margin-top:var(--s-5)}@media (min-width: 560px){.group-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.wrap--prose{max-width:760px}.privacy-body{padding:var(--s-5) var(--s-4)}@media (min-width: 1080px){.entry-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s-6)}}::selection{background:var(--line-soft);color:var(--ink)}html{caret-color:var(--line)}.chapter-main article a:not([class]),.blog-article a:not([class]){color:inherit;text-decoration:none;border-bottom:1px dotted var(--accent);transition:color var(--dur-fast) var(--ease),border-bottom-color var(--dur-fast) var(--ease)}.chapter-main article a:not([class]):hover,.chapter-main article a:not([class]):focus-visible,.blog-article a:not([class]):hover,.blog-article a:not([class]):focus-visible{color:var(--accent-ink);border-bottom:1px solid var(--accent-ink)}.group-row{position:relative;display:block;color:var(--ink);text-decoration:none;padding:var(--s-4) 0 var(--s-4) var(--s-6);border-top:1px solid var(--border-soft)}.group-row:before{content:"";position:absolute;left:0;top:calc(var(--s-4) + 5px);box-sizing:border-box;width:16px;height:16px;border-radius:var(--radius-round);border:4px solid var(--line);background:var(--paper)}.group-row-name{font-family:var(--font-display);font-weight:700;font-size:var(--t-md);line-height:var(--lh-md)}.group-row-summary{color:var(--muted);font-size:var(--t-sm);line-height:var(--lh-sm);margin-top:var(--s-1)}.group-row-count{color:var(--muted);font-size:var(--t-xs);line-height:var(--lh-xs);margin-top:var(--s-2);font-variant-numeric:tabular-nums}.group-row:hover .group-row-name{color:var(--accent-ink)}.group-row:hover:before{background:var(--line)}@media (min-width: 1024px){.wrap.home-section,.wrap.home-toc-wrap{max-width:var(--w-shell);padding-left:var(--s-8);padding-right:var(--s-6)}}.home-section>*,.home-toc-wrap>*{max-width:1000px}.home-feature{border:0;border-radius:0}.home-feature-body{padding-left:0;padding-right:0}.home-toc-wrap .toc{background:transparent;border-bottom:0;padding-left:0;padding-right:0}.home-toc-wrap .toc h2{font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:700;color:var(--ink);margin-bottom:var(--s-3)}.home-toc-wrap .toc-part{position:relative;margin-top:0;padding-top:0;border-top:0}.home-toc-wrap .toc-part:before{content:"";position:absolute;left:5px;top:50%;height:100%;width:var(--s-1);background:var(--l-fg)}.home-toc-wrap .toc-part:last-of-type:before{content:none}.home-toc-wrap .toc-part-link{position:relative;padding:var(--s-3) 0 var(--s-3) var(--s-6)}.home-toc-wrap .toc-part-link:before{content:"";position:absolute;left:0;top:50%;margin-top:-7px;z-index:1;box-sizing:border-box;width:14px;height:14px;border-radius:var(--radius-round);border:3px solid var(--l-fg);background:var(--paper)}.home-toc-wrap .toc-part-link:hover:before{background:var(--l-fg)}.home-toc-wrap .toc-part-label .meta{margin-left:auto}.station-strip{display:none}@media (max-width: 899.98px){.station-strip{display:block;padding:var(--s-4) var(--s-4) var(--s-2)}}.station-strip-track{display:flex;align-items:center;height:22px}.station-strip-track span{flex:1;height:var(--s-1);background:var(--line)}.station-strip-track span.off{background:var(--border-soft)}.station-strip-track i{box-sizing:border-box;flex-shrink:0;width:12px;height:12px;border-radius:var(--radius-round);border:3px solid var(--line);background:var(--line)}.station-strip-track i.here{width:22px;height:22px;border-width:5px;background:var(--paper)}.station-strip-label{display:flex;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted)}.station-strip-label b{color:var(--ink);font-weight:700}@media (max-width: 479.98px){.site-header .brand{font-size:var(--t-base);padding:0 var(--s-3);gap:var(--s-1)}.site-header .brand .interchange{width:22px;height:16px}}.about-body{padding:var(--s-6) var(--s-4) var(--s-8)}.hero.about-hero{padding-left:0;padding-right:0}.about-hero>.wrap{padding:0 var(--s-4)}.hero .about-standfirst{font-family:var(--font-body);font-size:var(--t-md);line-height:var(--lh-md);font-weight:500;color:var(--ink);max-width:28em;margin:0;text-wrap:pretty}@media (min-width: 700px){.hero .about-standfirst{font-size:var(--t-lg);line-height:var(--lh-md)}}.board{background:var(--surface-inverse);color:var(--surface-inverse-text);border:1px solid var(--border-emphasis);border-radius:var(--radius-md);overflow:hidden}.board-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s-1) var(--s-5);padding:var(--s-4) var(--s-5) var(--s-3);border-bottom:1px solid var(--surface-inverse-rule)}.board-title{font-family:var(--font-display);font-weight:800;font-size:var(--t-md);line-height:var(--lh-md);color:inherit;margin:0}.board-departs{font-size:var(--t-sm);line-height:var(--lh-sm);color:var(--surface-inverse-muted);margin:0}.board-scroll{overflow-x:auto}.board-scroll:focus-visible{outline:2px solid var(--surface-inverse-text);outline-offset:-2px}.board-table{width:100%;min-width:640px;border-collapse:collapse;font-size:var(--t-sm);line-height:var(--lh-sm)}.board-table th{text-align:left;font-weight:600;font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--surface-inverse-muted);padding:var(--s-3) var(--s-5) var(--s-2);white-space:nowrap}.board-table td{padding:var(--s-3) var(--s-5);border-top:1px solid var(--surface-inverse-rule);vertical-align:top}.board-table tr.is-now td{background:var(--surface-inverse-hi)}.board-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.board-status{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700;color:var(--l-co-inv)}.board-status:before{content:"";width:8px;height:8px;border-radius:var(--radius-round);background:currentColor}.board-calls{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4)}.board-call{display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}.board-dot{flex:none;width:10px;height:10px;border-radius:var(--radius-round);background:var(--c)}.board [data-line=fg]{--c: var(--l-fg-inv)}.board [data-line=bk]{--c: var(--l-bk-inv)}.board [data-line=co]{--c: var(--l-co-inv)}.board [data-line=dd]{--c: var(--l-dd-inv)}.board [data-line=pb]{--c: var(--l-pb-inv)}.board [data-line=op]{--c: var(--l-op-inv)}.board [data-line=bl]{--c: var(--l-bl-inv)}.board-pr{display:inline-flex;align-items:center;min-width:44px;min-height:44px;margin-block:calc(-1 * var(--s-3));color:var(--l-dd-inv);text-decoration:underline 1px;text-underline-offset:3px}.board-pr:hover{text-decoration-thickness:2px}.board-pr:focus-visible{outline:2px solid var(--l-dd-inv);outline-offset:-2px}.board-foot{margin:0;padding:var(--s-3) var(--s-5) var(--s-4);border-top:1px solid var(--surface-inverse-rule);font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--surface-inverse-muted)}.board-foot a{color:var(--surface-inverse-text);text-decoration:underline 1px;text-underline-offset:3px}.board-foot a:focus-visible{outline:2px solid var(--surface-inverse-text);outline-offset:2px}.about-section{margin-top:var(--s-7)}.about-h2{font-family:var(--font-display);font-weight:800;font-size:var(--t-lg);line-height:var(--lh-lg);margin:0 0 var(--s-4)}.about-stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 var(--s-3)}.about-stops li{position:relative;padding-top:var(--s-6);text-align:center;font-size:var(--t-xs);line-height:var(--lh-xs);color:var(--muted)}.about-stops li:before{content:"";position:absolute;top:0;left:50%;margin-left:-8px;z-index:1;box-sizing:border-box;width:16px;height:16px;border-radius:var(--radius-round);border:4px solid var(--l-hub);background:var(--paper)}.about-stops li:not(:last-child):after{content:"";position:absolute;top:6px;left:50%;width:calc(100% + var(--s-3));height:var(--s-1);background:var(--l-hub)}.about-stops b{display:block;margin-bottom:var(--s-0);font-size:var(--t-sm);line-height:var(--lh-sm);font-weight:700;color:var(--ink)}@media (max-width: 759.98px){.about-stops{grid-template-columns:minmax(0,1fr);gap:var(--s-4) 0;padding-left:var(--s-6)}.about-stops li{padding-top:0;text-align:left}.about-stops li:before{top:2px;left:calc(-1 * var(--s-6));margin-left:0}.about-stops li:not(:last-child):after{top:10px;left:calc(-1 * var(--s-6) + 6px);width:var(--s-1);height:auto;bottom:calc(-1 * var(--s-4) - 10px)}}.about-prose p{max-width:var(--w-measure);margin:0 0 var(--s-3);font-size:var(--t-md);line-height:var(--lh-base)}.about-prose a{color:var(--ink);text-decoration:underline dotted 1px var(--line);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease)}.about-prose a:hover,.about-prose a:focus-visible{color:var(--accent-ink);text-decoration-style:solid}@media (max-width: 699.98px){.board{margin:0 calc(-1 * var(--s-4));border-radius:0;border-left:0;border-right:0}.board-top,.board-foot,.board-table th,.board-table td{padding-left:var(--s-4);padding-right:var(--s-4)}}
