@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2) format("woff2-variations");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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2) format("woff2-variations");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff");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{color-scheme:dark;--bg: #131416;--surface: #1e2023;--surface-raised: #232528;--line: #2b2e32;--line-strong: #3a3e43;--rail: #0d0e10;--rail-edge: #34373c;--device-top: #2a2d31;--device-bottom: #1f2124;--device-edge: #0b0c0d;--screw: #4b4f55;--screw-edge: #151719;--ink: #e6e3de;--ink-muted: #8b8f94;--ink-faint: #6b6f74;--accent: #d9a441;--accent-dim: #8a6a2c;--accent-wash: rgba(217, 164, 65, .12);--font-sans: "Instrument Sans Variable", "Instrument Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--radius: 4px;--radius-device: 6px;--measure: 64ch;--page: 1080px;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .42s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-snap: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.65;font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}img,svg,canvas{display:block;max-width:100%}button,input,select{font:inherit;color:inherit}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--line-strong)}a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:2px}::selection{background:var(--accent);color:var(--bg)}.page{width:100%;max-width:var(--page);margin-inline:auto;padding-inline:var(--s-5)}@media(max-width:600px){.page{padding-inline:var(--s-4)}}.section{padding-block:var(--s-7);border-top:1px solid var(--line)}.section:first-of-type{border-top:0}.stack>*+*{margin-top:var(--s-4)}.stack-sm>*+*{margin-top:var(--s-2)}h1,h2,h3{font-weight:500;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}h1{font-size:var(--text-2xl);max-width:26ch}h2{font-size:var(--text-xl);max-width:34ch}h3{font-size:var(--text-lg);max-width:40ch}p{max-width:var(--measure);text-wrap:pretty}.lede{font-size:var(--text-lg);line-height:1.55;color:var(--ink)}.muted{color:var(--ink-muted)}.micro{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.unit{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-faint);margin-left:.15em}hr{border:0;border-top:1px solid var(--line)}.grain{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.canvas-wrap:after,.hero-canvas-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.028) 0 1px,transparent 1px 3px);border-radius:inherit}.device:before,.hero-panel:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(160deg,#ffffff0b,#fff0 34%)}.rack{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;align-items:stretch;margin-top:var(--s-5)}.rack-rail{position:relative;background:var(--rail);border:1px solid var(--rail-edge);border-inline:1px solid #08090a;background-image:radial-gradient(circle at 50% 9px,#2f3338 0 2px,#17191c 2.5px,transparent 3px);background-size:100% 34px;background-repeat:repeat-y}.rack-rail-left{border-radius:var(--radius) 0 0 var(--radius);border-right:0}.rack-rail-right{border-radius:0 var(--radius) var(--radius) 0;border-left:0}.device{position:relative;--tilt-x: 0deg;--tilt-y: 0deg;background:repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px),linear-gradient(180deg,var(--device-top),var(--device-bottom));border:1px solid var(--device-edge);border-radius:var(--radius-device);box-shadow:inset 0 1px #ffffff0f,inset 0 -1px #00000080;overflow:hidden;transform:perspective(1400px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;transition:transform .12s linear}.screw{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5d6268,var(--screw) 55%,#2b2e32);border:1px solid var(--screw-edge);z-index:2;pointer-events:none;transform:translateZ(6px)}.device-head{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-bottom:1px solid #121416;box-shadow:inset 0 1px #ffffff09;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;color:var(--ink-faint)}.device-name{color:var(--ink-muted)}.device-head-end{margin-left:auto}.screw.tl{top:6px;left:6px}.screw.tr{top:6px;right:6px}.screw.bl{bottom:6px;left:6px}.screw.br{bottom:6px;right:6px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.device>.panel,.device .panel{border:0;border-radius:0;background:transparent}@media(max-width:640px){.rack{grid-template-columns:10px minmax(0,1fr) 10px}.rack-rail{background-size:100% 26px;background-position:0 0}.device-head{padding-inline:var(--s-4)}}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}.panel-body{padding:var(--s-4)}.readout-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:#0d0e10;border-top:1px solid #121416;box-shadow:inset 0 1px #ffffff08}.readout{background:linear-gradient(180deg,#1a1c20,#15171a);padding:var(--s-3) var(--s-4)}.readout dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted);font-weight:500}.readout dd{margin:var(--s-1) 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.125rem;color:var(--accent);text-shadow:0 0 8px rgba(217,164,65,.16)}.readout dd.wording{color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);text-shadow:none}.readout .unit{color:#8a6a2c}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:30px;padding:0 var(--s-3);border:1px solid #0c0d0e;border-radius:3px;background:linear-gradient(180deg,#2d3034,#212327);box-shadow:inset 0 1px #ffffff12;color:var(--ink);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;cursor:pointer;user-select:none}.btn:hover{background:linear-gradient(180deg,#34383c,#25272b)}.btn:active{background:#1b1d20;box-shadow:inset 0 1px 3px #00000073}.btn[aria-pressed=true],.btn.is-active{border-color:#6f5824;color:var(--accent);background:linear-gradient(180deg,#33291a,#2a2418);box-shadow:inset 0 1px 2px #0006}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{border-color:var(--accent-dim);background:linear-gradient(180deg,#dfab48,#c2913a);color:#1a1509;text-shadow:0 1px 0 rgba(255,255,255,.15)}.btn-primary:hover{background:linear-gradient(180deg,#e9b553,#cb9a40)}.btn-primary:active{background:#b98936;box-shadow:inset 0 1px 3px #00000059}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{text-align:left;padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--line);vertical-align:baseline;line-height:1.55}.data-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted);font-weight:500}.data-table td.num,.data-table th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding-right:0}.report-table{border-top:1px solid #121416}.report-table td:last-child{color:var(--ink-muted);font-size:var(--text-sm);min-width:18ch}.report-table tr.is-contested td{color:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--s-4);top:var(--s-4);z-index:20;padding:var(--s-2) var(--s-3);background:var(--accent);color:#1a1509;font-size:var(--text-sm);font-weight:500;border-radius:var(--radius);transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.divider-label{display:flex;align-items:center;gap:var(--s-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted);font-weight:500}.divider-label:after{content:"";flex:1;height:1px;background:var(--line)}.tool-header{padding-block:var(--s-4) var(--s-5)}.tool-header h1{margin-top:var(--s-2)}.tool-header .lede{margin-top:var(--s-3);max-width:62ch;color:var(--ink-muted);font-size:var(--text-base)}.tool-body{padding-bottom:var(--s-6)}.source-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid #121416;box-shadow:inset 0 1px #ffffff09}.source-name{font-size:var(--text-sm);color:var(--ink);overflow-wrap:anywhere}.dropzone{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);padding:var(--s-4);border-bottom:1px solid #121416;background:#00000024;transition:background .12s linear}.dropzone.is-over{background:var(--accent-wash)}.dropzone p{font-size:var(--text-sm);color:var(--ink-muted);max-width:34ch}.canvas-wrap{position:relative;height:280px;margin:var(--s-4);background:#121315;border:1px solid #08090a;border-radius:3px;box-shadow:inset 0 2px 10px #000000a6,0 1px #ffffff0d;overflow:hidden}.canvas-wrap canvas{width:100%;height:100%}@media(max-width:600px){.canvas-wrap{height:200px}}.transport{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-top:1px solid #121416;box-shadow:inset 0 1px #ffffff09}.transport-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--ink-muted);margin-left:auto}.status-line{padding:var(--s-2) var(--s-4);border-top:1px solid #121416;background:#00000029;font-size:var(--text-xs);color:var(--ink-faint);font-family:var(--font-mono);min-height:28px}.control-row{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);padding:var(--s-4)}.control-group{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--s-4) var(--s-4)}.control-group+.control-group{border-top:1px solid #121416;box-shadow:inset 0 1px #ffffff09}.control-legend{flex-basis:100%;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted);font-weight:500;margin-bottom:var(--s-1)}.knob-editor{width:6ch;padding:0 2px;border:1px solid var(--accent);border-radius:2px;background:var(--bg);color:var(--ink);font-size:var(--text-sm);text-align:center}.note{font-size:var(--text-sm);color:var(--ink-muted);max-width:68ch}.prose{max-width:68ch;line-height:1.7}.prose>.prose-section+.prose-section{margin-top:var(--s-6)}.prose-section>h2:first-child{margin-top:0}.prose h2{margin-top:var(--s-6)}.prose h3{margin-top:var(--s-5)}.prose h2+p,.prose h2+ul,.prose h2+ol,.prose h2+table,.prose h2+figure{margin-top:var(--s-3)}.prose h3+p,.prose h3+ul,.prose h3+ol{margin-top:var(--s-2)}.prose p+p,.prose p+ul,.prose p+ol,.prose ul+p,.prose ol+p,.prose p+table,.prose p+figure,.prose ul+ul,.prose ol+ol{margin-top:var(--s-4)}.prose ul,.prose ol{padding-left:1.25rem;display:grid;gap:var(--s-2)}.prose li{max-width:62ch;padding-left:.15em}.prose li>p+p{margin-top:var(--s-2)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:0 3px}.word-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}.word{display:inline-block;transform:translateY(110%);transition:transform var(--dur-slow) var(--ease-out)}.has-text-reveal.is-revealed .word{transform:none}.odo{display:inline-flex;align-items:baseline;font-variant-numeric:tabular-nums;overflow:hidden}.odo-col{display:inline-block;height:1em;overflow:hidden;line-height:1}.odo-strip{display:block;transition:transform var(--dur-slow) var(--ease-out);will-change:transform}.odo-digit{display:block;height:1em;line-height:1}.odo-mark{display:inline-block}.readout dd:empty:after{content:"—";color:var(--ink-faint)}.boot{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--bg);transition:opacity .42s var(--ease-in-out),visibility .42s var(--ease-in-out)}.boot.is-gone{opacity:0;visibility:hidden;pointer-events:none}.boot-screen{display:grid;grid-template-columns:24px minmax(0,320px) 24px;align-items:stretch;animation:ef-boot-in .52s var(--ease-out) both}.boot-rail{background:#16181b;border:1px solid #4a4f55;background-image:radial-gradient(circle at 50% 9px,#565b62 0 2px,#1c1f22 2.5px,transparent 3px);background-size:100% 34px;background-repeat:repeat-y;animation:ef-boot-rail .62s var(--ease-out) both}.boot-rail:first-child{border-radius:4px 0 0 4px;border-right:0;animation-name:ef-boot-rail-left}.boot-rail:last-child{border-radius:0 4px 4px 0;border-left:0;animation-name:ef-boot-rail-right}.boot-unit{position:relative;overflow:hidden;background:linear-gradient(180deg,#2a2d31,#1f2124);border:1px solid var(--device-edge);border-radius:6px;box-shadow:inset 0 1px #ffffff12,0 20px 60px #0009;animation:ef-boot-unit .7s var(--ease-out) both}.boot-scan{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 12px #d9a44199;animation:ef-boot-scan .7s var(--ease-in-out) both}.boot-strip{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4)}.boot-led{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #d9a441cc;animation:ef-boot-led .9s steps(1,end) both}.boot-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.16em;color:var(--ink-muted);animation:ef-boot-text .4s var(--ease-out) .2s both}.boot-bar{flex:1;height:3px;background:#101113;border-radius:2px;overflow:hidden}.boot-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:0 50%;animation:ef-boot-bar .8s var(--ease-in-out) both}@keyframes ef-boot-in{0%{opacity:0;transform:scale(.96)}}@keyframes ef-boot-rail-left{0%{transform:translate(-30px);opacity:0}}@keyframes ef-boot-rail-right{0%{transform:translate(30px);opacity:0}}@keyframes ef-boot-unit{0%{opacity:0;transform:scaleY(.6)}}@keyframes ef-boot-scan{0%{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(56px);opacity:0}}@keyframes ef-boot-led{0%,40%{background:#4a4e54;box-shadow:0 0 0 1px #0a0b0c}41%,to{background:var(--accent);box-shadow:0 0 8px #d9a441cc}}@keyframes ef-boot-text{0%{opacity:0;letter-spacing:.5em}}@keyframes ef-boot-bar{0%{transform:scaleX(0)}60%{transform:scaleX(.82)}to{transform:scaleX(1)}}html.is-booting body{overflow:hidden}html.is-booting main,html.is-booting .masthead,html.is-booting .foot{opacity:0}html.is-booted .rack{animation:ef-rack-settle .62s var(--ease-out) both}html.is-booted-fast .rack{animation:ef-rack-settle .32s var(--ease-out) both}@keyframes ef-rack-settle{0%{opacity:0;transform:translateY(10px) scale(.995)}}@view-transition{navigation:auto}::view-transition-old(root){animation:ef-fade-out var(--dur-base) var(--ease-in-out) both}::view-transition-new(root){animation:ef-fade-in var(--dur-slow) var(--ease-out) both}@keyframes ef-fade-out{to{opacity:0;transform:translateY(-4px)}}@keyframes ef-fade-in{0%{opacity:0;transform:translateY(8px)}}::view-transition-group(masthead),::view-transition-group(footer){animation-duration:0ms}::view-transition-group(device){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}::view-transition-group(prose){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}::view-transition-old(device){animation:ef-region-out var(--dur-base) var(--ease-in-out) both}::view-transition-new(device){animation:ef-region-in var(--dur-slow) var(--ease-out) both}::view-transition-old(prose){animation:ef-region-out var(--dur-base) var(--ease-in-out) both}::view-transition-new(prose){animation:ef-region-in var(--dur-slow) var(--ease-out) both}@keyframes ef-region-out{to{opacity:0;transform:translateY(-18px) scale(.985)}}@keyframes ef-region-in{0%{opacity:0;transform:translateY(26px) scale(.99)}}[data-reveal]{opacity:0;transform:translateY(10px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);will-change:opacity,transform}[data-reveal].is-revealed{opacity:1;transform:none;will-change:auto}@keyframes ef-flash{0%{background-color:var(--accent-wash)}to{background-color:transparent}}.is-flashing{animation:ef-flash .6s var(--ease-out) both}.status-line{position:relative;transition:color var(--dur-base) var(--ease-out)}.status-line.is-flashing{animation:none;color:var(--ink)}.status-line.is-flashing:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);animation:ef-status-edge .9s var(--ease-out) both}@keyframes ef-status-edge{0%{opacity:1}to{opacity:0}}.led{--level: 0;position:relative;width:6px;height:6px;border-radius:50%;background:#4a4e54;box-shadow:0 0 0 1px #0a0b0c;flex:none;transition:background-color var(--dur-fast) var(--ease-snap)}.led.is-signal{background:color-mix(in oklab,var(--accent) calc(45% + var(--level) * 55%),#6a5326);box-shadow:0 0 0 1px #0a0b0c,0 0 calc(2px + var(--level) * 9px) rgba(217,164,65,calc(.25 + var(--level) * .5))}.btn,.nav-link,.foot-list a,.parent-link,.tool-row h3 a,.guide-list a{transition:color var(--dur-fast) var(--ease-snap),background-color var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease-snap)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}a[href^="/"]:not(.btn),a[href^="https://"]:not(.btn){text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-base) var(--ease-out),color var(--dur-fast) var(--ease-snap)}a[href^="/"]:not(.btn):hover,a[href^="https://"]:not(.btn):hover{background-size:100% 1px}.knob-arc{transition:stroke-dasharray 60ms var(--ease-snap)}.knob-pointer{transition:transform 60ms var(--ease-snap)}.knob-dial:active .knob-pointer,.knob-dial.is-dragging .knob-pointer{transition:none}.readout dd{transition:color var(--dur-base) var(--ease-out)}.readout dd.is-updated{animation:ef-value-pulse var(--dur-slow) var(--ease-out) both}@keyframes ef-value-pulse{0%{color:#f4d79a;text-shadow:0 0 14px rgba(217,164,65,.7)}to{color:var(--accent);text-shadow:0 0 8px rgba(217,164,65,.16)}}.seq-step{transition:background-color var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease-snap)}.seq-step.is-current{transform:translateY(-1px)}.seq-step-head{transition:color var(--dur-fast) var(--ease-snap),text-shadow var(--dur-fast) var(--ease-snap)}.seq-step-head.is-current{color:var(--accent);text-shadow:0 0 8px rgba(217,164,65,.45)}.tool-row{transition:background-color var(--dur-fast) var(--ease-snap)}.tool-row:hover{background:#ffffff04}.masthead{transition:box-shadow var(--dur-base) var(--ease-out)}body.is-scrolled .masthead{box-shadow:inset 0 1px #ffffff0e,0 6px 18px #00000073}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}::view-transition-old(root),::view-transition-new(root){animation:none}.btn:hover{transform:none}a[href^="/"]:hover,a[href^="https://"]:hover{background-size:100% 1px}}.masthead[data-astro-cid-ctg3m53h]{border-bottom:1px solid var(--device-edge);background:linear-gradient(180deg,#23262a,#191b1e);box-shadow:inset 0 1px #ffffff0e,inset 0 -1px #00000080;position:sticky;top:0;z-index:10}.masthead-inner[data-astro-cid-ctg3m53h]{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:52px}.masthead-inner[data-astro-cid-ctg3m53h] nav[data-astro-cid-ctg3m53h]{margin-left:auto;min-width:0}.wordmark[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:baseline;gap:var(--s-2);text-decoration:none;font-weight:600;font-size:var(--text-base);letter-spacing:-.01em}.wordmark-mark[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:center;color:var(--accent)}.wordmark-mark[data-astro-cid-ctg3m53h] svg[data-astro-cid-ctg3m53h]{width:20px;height:16px;overflow:visible}.mark-track[data-astro-cid-ctg3m53h]{stroke:var(--line-strong);stroke-width:1}.mark-cap[data-astro-cid-ctg3m53h]{fill:var(--accent)}.wordmark-text[data-astro-cid-ctg3m53h]{color:var(--ink)}.nav[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--s-4);list-style:none;padding:0;margin:0}.nav-link[data-astro-cid-ctg3m53h]{display:inline-block;font-size:var(--text-sm);color:var(--ink-muted);text-decoration:none;padding-block:var(--s-1);border-bottom:1px solid transparent;white-space:nowrap}.nav-link[data-astro-cid-ctg3m53h]:hover{color:var(--ink)}.nav-link[data-astro-cid-ctg3m53h].is-current{color:var(--ink);border-bottom-color:var(--accent)}.subnav[data-astro-cid-ctg3m53h]{border-top:1px solid #0e1011;background:linear-gradient(180deg,#17191b,#131517);box-shadow:inset 0 1px #ffffff08}.subnav-inner[data-astro-cid-ctg3m53h]{display:flex;align-items:center;min-height:38px}.subnav-list[data-astro-cid-ctg3m53h]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-5);list-style:none;padding:0;margin:0}.subnav-link[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:baseline;gap:var(--s-2);font-size:var(--text-sm);color:var(--ink-faint);text-decoration:none;padding-block:var(--s-1);border-bottom:1px solid transparent;white-space:nowrap}.subnav-num[data-astro-cid-ctg3m53h]{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:.02em}.subnav-link[data-astro-cid-ctg3m53h]:hover{color:var(--ink)}.subnav-link[data-astro-cid-ctg3m53h].is-current{color:var(--ink);border-bottom-color:var(--accent)}.subnav-link[data-astro-cid-ctg3m53h].is-current .subnav-num[data-astro-cid-ctg3m53h]{color:var(--accent)}@media(max-width:900px){.nav[data-astro-cid-ctg3m53h]{gap:var(--s-3)}.subnav-list[data-astro-cid-ctg3m53h]{gap:var(--s-1) var(--s-3)}}@media(max-width:640px){.subnav-num[data-astro-cid-ctg3m53h]{display:none}}@media(max-width:400px){.subnav-list[data-astro-cid-ctg3m53h]{gap:var(--s-1) var(--s-2)}.subnav-link[data-astro-cid-ctg3m53h]{font-size:var(--text-xs)}}.foot[data-astro-cid-gcn2mc3v]{margin-top:var(--s-8);border-top:1px solid var(--line);padding-block:var(--s-6)}.foot-inner[data-astro-cid-gcn2mc3v]{display:grid;grid-template-columns:1fr 1fr 2fr;gap:var(--s-5)}.foot-list[data-astro-cid-gcn2mc3v]{list-style:none;padding:0;margin:var(--s-2) 0 0;display:grid;gap:var(--s-1);font-size:var(--text-sm)}.foot-list[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]{color:var(--ink-muted);text-decoration:none}.foot-list[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]:hover{color:var(--ink)}.foot-note[data-astro-cid-gcn2mc3v]{justify-self:end;max-width:40ch}.foot-small[data-astro-cid-gcn2mc3v]{font-size:var(--text-sm);margin-top:var(--s-2)}.parent-link[data-astro-cid-gcn2mc3v]{color:var(--ink-muted);text-decoration:none;border-bottom:1px solid var(--line-strong)}.parent-link[data-astro-cid-gcn2mc3v]:hover{color:var(--ink);border-bottom-color:var(--accent)}@media(max-width:720px){.foot-inner[data-astro-cid-gcn2mc3v]{grid-template-columns:1fr 1fr}.foot-note[data-astro-cid-gcn2mc3v]{grid-column:1 / -1;justify-self:start}}
