@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.DHTKMUil.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.B1g8a0vD.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.BpXpdlRW.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.BsaNuasd.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.BVZ5su8S.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.DMe4EKeb.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{--paper: #E8EAE6;--paper-2: #DDE0DB;--sheet: #F4F5F2;--ink: #14181D;--ink-2: #232A31;--text: #14181D;--text-muted: #39424B;--text-subtle: #566069;--rule: #B4BAB9;--rule-strong: #14181D;--hi: #F2C200;--hi-soft: #F7DD6B;--ok: #1F7A4D;--bad: #B3261E;--on-ink: #ECEEEA;--on-ink-muted: #A9B1B8;--on-ink-rule: #3A444D;--font-display: "Archivo Variable", "Archivo", "Arial Narrow", system-ui, sans-serif;--font-body: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--text-sm: .875rem;--text-base: 1.0625rem;--text-md: 1.1875rem;--text-lg: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--text-xl: clamp(1.5rem, 1.2rem + 1.4vw, 2.125rem);--text-2xl: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);--text-hero: clamp(2.75rem, 1.2rem + 6.4vw, 6.25rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--section-y: clamp(3.5rem, 2.5rem + 5vw, 6.5rem);--container-max: 1200px;--container-pad: clamp(1.25rem, .6rem + 2.6vw, 2.5rem);--rail: minmax(0, 15rem);--radius: 2px;--z-nav: 50;--z-overlay: 100;--dur: .18s;--ease: cubic-bezier(.4, 0, .2, 1)}@media(prefers-reduced-motion:reduce){:root{--dur: 1ms}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:4.5rem;-webkit-text-size-adjust:100%;background:var(--paper)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,picture,svg{max-width:100%;display:block}a{color:inherit}::selection{background:var(--hi);color:var(--ink)}:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:var(--radius)}.on-ink :focus-visible{outline-color:var(--hi)}.wrap{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:700;font-stretch:100%;line-height:1.08;letter-spacing:-.015em}.section{border-top:2px solid var(--rule-strong);padding-block:var(--section-y)}.section__grid{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:var(--space-12);row-gap:var(--space-8)}.section__head h2{font-size:var(--text-lg);font-stretch:112%;line-height:1.15;letter-spacing:-.005em}.section__head p{margin-top:var(--space-4);color:var(--text-muted);font-size:var(--text-base)}@media(min-width:861px){.section__head{position:sticky;top:5rem;align-self:start}}@media(max-width:860px){.section__grid{grid-template-columns:1fr}}.mark{background:linear-gradient(transparent 12%,var(--hi) 12%,var(--hi) 92%,transparent 92%);padding-inline:.2em;margin-inline:-.2em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.tags{display:flex;flex-wrap:wrap;font-size:var(--text-sm);color:var(--text-subtle);font-family:var(--font-display);font-stretch:100%}.tag{margin-right:.3em}.tag:not(:last-child):after{content:","}.btn{display:inline-flex;align-items:center;font-family:var(--font-display);font-stretch:108%;font-weight:700;font-size:1rem;letter-spacing:0;padding:.85rem 1.4rem;border:2px solid var(--ink);border-radius:var(--radius);text-decoration:none;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.btn--primary{background:var(--hi);color:var(--ink)}.btn--primary:hover{background:var(--ink);color:var(--hi)}.btn--ghost{background:transparent;color:var(--ink)}.btn--ghost:hover{background:var(--ink);color:var(--paper)}.link{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--hi);font-family:var(--font-display);font-weight:600;transition:text-decoration-color var(--dur) var(--ease)}.link:hover{text-decoration-color:var(--ink)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-100%;z-index:var(--z-overlay);background:var(--hi);color:var(--ink);padding:10px 16px;font-family:var(--font-display);font-weight:700;text-decoration:none}.skip-link:focus{top:var(--space-4)}.link,.article__back,.footer__inner a,.contact__alt a{display:inline-block;padding-block:.7rem}.nav{position:sticky;top:0;z-index:var(--z-nav);background:var(--paper);border-bottom:1px solid var(--rule)}.nav__inner{display:flex;align-items:center;gap:var(--space-6);height:4rem}.nav__logo{font-family:var(--font-display);font-stretch:125%;font-weight:800;font-size:1.125rem;letter-spacing:.02em;text-decoration:none}.nav__logo b{font-weight:800;background:var(--hi);padding-inline:.15em;margin-left:.05em}.nav__menu{display:flex;gap:var(--space-8);margin-left:auto;align-items:center}.nav__link{font-family:var(--font-display);font-stretch:100%;font-weight:600;font-size:.95rem;text-decoration:none;color:var(--text-muted);padding-block:.25rem;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.nav__link:hover{color:var(--ink);border-bottom-color:var(--hi)}.nav__link[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-left:auto;padding:0 10px;background:none;border:2px solid var(--ink);border-radius:var(--radius);cursor:pointer}.nav__toggle-bar{display:block;width:100%;height:2px;background:var(--ink);transition:transform var(--dur) var(--ease)}.nav__toggle[aria-expanded=true] .nav__toggle-bar:first-child{transform:translateY(3.5px) rotate(45deg)}.nav__toggle[aria-expanded=true] .nav__toggle-bar:last-child{transform:translateY(-3.5px) rotate(-45deg)}.lang-switch{display:inline-flex;align-items:center;border:2px solid var(--ink);border-radius:var(--radius)}.lang-btn{font-family:var(--font-display);font-weight:700;font-size:.8125rem;background:none;border:none;color:var(--ink);cursor:pointer;padding:.35rem .6rem}.lang-btn.is-active{background:var(--ink);color:var(--paper)}.lang-switch__sep{display:none}@media(max-width:760px){.nav__toggle{display:flex}.nav__menu{position:absolute;top:100%;left:0;right:0;margin-left:0;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--container-pad);background:var(--paper);border-bottom:2px solid var(--ink);display:none}.nav__menu.is-open{display:flex}.nav__link{font-size:1.125rem}}.nav__logo{display:inline-block;padding-block:.7rem}.lang-btn{min-height:40px;min-width:40px}.hero{position:relative;min-height:clamp(34rem,82vh,56rem);display:grid;align-items:center;overflow:hidden}.hero__inner{position:relative;z-index:1;padding-block:clamp(2.5rem,1.5rem + 4vw,5rem);pointer-events:none}.hero__copy{max-width:min(40rem,44%);pointer-events:auto}.hero__title{font-size:clamp(2.5rem,.9rem + 4vw,4.5rem);font-weight:800;font-stretch:78%;line-height:.98;letter-spacing:-.02em;text-wrap:balance}.hero__lede{margin-top:var(--space-8);max-width:56ch;font-size:var(--text-md);color:var(--text-muted)}.hero__lede strong{color:var(--ink);font-weight:600}.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8)}@media(max-width:900px){.hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;overflow:visible}.hero__inner{pointer-events:auto}.hero__copy{max-width:none}.factory{position:relative!important;inset:auto!important;width:100%;height:clamp(20rem,52vw,30rem);order:2}}.factory{position:absolute;inset:0;overflow:hidden;font-family:var(--font-display);contain:layout}.factory #scene{position:absolute;inset:0;outline:none}.factory #scene canvas{display:block;width:100%;height:100%}.factory #labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.station-label{position:absolute;left:0;top:0;opacity:0;transition:opacity var(--dur) var(--ease);will-change:transform;pointer-events:none;min-width:138px}.station-label.visible{opacity:1}.station-label .stem{height:26px;width:2px;background:var(--ink);margin:0 0 0 10px}.station-label .label-card{background:var(--ink);color:var(--on-ink);border-left:4px solid var(--hi);padding:10px 13px}.station-label .label-title{font-weight:700;font-size:12px;display:flex;gap:10px;align-items:center;white-space:nowrap}.station-label .label-title span{color:var(--hi);font-family:var(--font-mono);font-size:10px}.station-label .label-meta{font-size:10px;color:var(--on-ink-muted);margin:6px 0 0 24px;white-space:nowrap}.factory #tooltip{position:absolute;pointer-events:none;z-index:10;opacity:0;transition:opacity var(--dur) var(--ease);padding:11px 14px;background:var(--ink);color:var(--on-ink);border-left:4px solid var(--hi);max-width:240px}.factory #tooltip.visible{opacity:1}.factory #tooltip strong{font-size:13px;font-weight:700}.factory #tooltip strong span{font-family:var(--font-mono);font-size:10px;color:var(--hi);margin-right:8px}.factory #tooltip p{font-size:12px;color:var(--on-ink-muted);margin:6px 0 0;line-height:1.5}.factory__pause{position:absolute;right:max(var(--container-pad),calc((100% - var(--container-max)) / 2 + var(--container-pad)));bottom:var(--space-4);z-index:5;display:grid;place-items:center;width:44px;height:44px;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:var(--radius);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.factory__pause:hover{background:var(--ink);color:var(--paper)}.factory #loading{position:absolute;left:71%;top:48%;transform:translate(-50%,-50%);transition:opacity .4s;z-index:4}.factory #loading i{display:block;width:22px;height:22px;border:3px solid var(--rule);border-top-color:var(--ink);border-radius:50%;animation:factory-spin .9s linear infinite}.factory #loading.done{opacity:0;pointer-events:none}@keyframes factory-spin{to{transform:rotate(360deg)}}.factory #error{position:absolute;left:50%;right:var(--container-pad);top:40%;display:none;background:var(--sheet);border:2px solid var(--ink);padding:var(--space-4) var(--space-6);font-size:.9375rem}.factory #error strong{font-weight:700}.factory #error p{margin-top:var(--space-2);color:var(--text-muted)}@media(max-width:900px){.factory #loading{left:50%}.factory #error{left:var(--container-pad)}}@media(prefers-reduced-motion:reduce){.factory #loading i{animation:none}.station-label,.factory #tooltip{transition:none}}.services{display:grid;gap:0}.service{display:grid;gap:var(--space-4);padding-block:var(--space-8);border-top:1px solid var(--rule);max-width:62ch}.service:first-child{border-top:none;padding-top:0}.service:last-child{padding-bottom:0}.service__title{font-size:var(--text-xl);font-stretch:90%;font-weight:800}.service__body{color:var(--text-muted)}.service__price{font-family:var(--font-display);font-weight:700;font-size:1.0625rem}.case{display:grid;gap:var(--space-6);min-width:0}.case__status{display:inline-flex;align-items:center;gap:var(--space-2);justify-self:start;font-family:var(--font-display);font-weight:700;font-size:.875rem;color:var(--ok);border:2px solid var(--ok);padding:.15rem .6rem}.case__dot{width:8px;height:8px;background:var(--ok)}.case__title{font-size:var(--text-2xl);font-weight:800;font-stretch:85%;line-height:1.02;max-width:18ch;text-wrap:balance}.case__desc{max-width:62ch;color:var(--text-muted);font-size:var(--text-md)}.case__sub{margin-top:var(--space-6);font-size:1rem;font-stretch:112%;padding-bottom:var(--space-2);border-bottom:2px solid var(--ink)}.compare{display:grid;gap:var(--space-3);margin-block:var(--space-4)}.compare__frame{position:relative;aspect-ratio:4 / 3;overflow:hidden;border:2px solid var(--ink);background:var(--paper-2);user-select:none}.compare__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.compare__img--after{clip-path:inset(0 0 0 var(--pos))}.compare__line{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:var(--hi);box-shadow:0 0 0 1px var(--ink);pointer-events:none}.compare__tag{position:absolute;top:var(--space-3);padding:.2rem .6rem;background:var(--ink);color:var(--on-ink);font-family:var(--font-display);font-weight:700;font-size:.8125rem;pointer-events:none}.compare__tag--before{left:var(--space-3)}.compare__tag--after{right:var(--space-3)}.compare__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.compare__frame:has(.compare__range:focus-visible){outline:3px solid var(--ink);outline-offset:3px}.compare__tiers{display:inline-flex;justify-self:start;border:2px solid var(--ink)}.compare__tier{font-family:var(--font-display);font-weight:700;font-size:.875rem;padding:.4rem .9rem;background:transparent;color:var(--ink);border:none;cursor:pointer}.compare__tier[aria-pressed=true]{background:var(--ink);color:var(--paper)}.compare__caption{font-family:var(--font-display);font-size:.875rem;color:var(--text-subtle)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}.metric{padding:var(--space-4) var(--space-4) var(--space-4) 0;display:flex;flex-direction:column-reverse;gap:var(--space-1)}.metric+.metric{padding-left:var(--space-4);border-left:1px solid var(--rule)}.metric__n{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);line-height:1}.metric__l{font-family:var(--font-display);font-size:.875rem;color:var(--text-muted)}.steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6) var(--space-6)}.step{display:grid;gap:var(--space-1);align-content:start}.step__i{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-subtle)}.step__t{font-size:1.25rem;font-stretch:90%;font-weight:800}.step__d{font-family:var(--font-display);font-size:.9375rem;color:var(--text-muted)}.guard{border-left:6px solid var(--hi);background:var(--paper-2);padding:var(--space-4) var(--space-6);max-width:62ch;font-size:1rem;color:var(--text-muted)}.guard strong{font-family:var(--font-mono);font-size:.9em;color:var(--ink)}.work{display:grid}.work__item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);column-gap:var(--space-8);row-gap:var(--space-4);padding-block:var(--space-6);border-top:1px solid var(--rule)}.work__item:first-child{border-top:none;padding-top:0}.work__main{display:grid;gap:var(--space-2);align-content:start}.work__title{font-size:1.25rem;font-stretch:95%;font-weight:800;line-height:1.15}.work__side{display:grid;gap:var(--space-3);justify-items:start}.work__body{color:var(--text-muted)}@media(max-width:760px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(3){padding-left:0;border-left:none}.metric:nth-child(n+3){border-top:1px solid var(--rule)}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.work__item{grid-template-columns:1fr}}.compare__tier{min-height:44px;padding-inline:1.1rem}.about{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);column-gap:var(--space-12);row-gap:var(--space-8);align-items:start}.about__body{display:grid;gap:var(--space-6);max-width:58ch;font-size:var(--text-md);color:var(--text-muted)}.about__body strong{color:var(--ink);font-weight:600}.about__side{display:grid;gap:var(--space-4)}.about__portrait{width:100%;max-width:22rem;aspect-ratio:4 / 5;object-fit:cover;border:2px solid var(--ink)}.about__creds-title{margin-top:var(--space-4);font-size:1rem;font-stretch:112%;padding-bottom:var(--space-2);border-bottom:2px solid var(--ink)}.creds{display:grid}.creds__row{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:var(--space-3);padding-block:.55rem;border-bottom:1px solid var(--rule);font-family:var(--font-display);font-size:.9375rem}.creds__row dt{font-weight:700}.creds__row dd{color:var(--text-muted)}@media(max-width:860px){.about{grid-template-columns:1fr}}.contact{background:var(--ink);color:var(--on-ink);border-top:2px solid var(--ink);padding-block:calc(var(--section-y) * 1.1)}.contact__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:clamp(2rem,1rem + 5vw,6rem);row-gap:var(--space-12);align-items:start}.contact__title{font-size:clamp(2.5rem,1.2rem + 5vw,5rem);font-weight:800;font-stretch:78%;line-height:.98;letter-spacing:-.02em;text-wrap:balance}.contact__body{margin-top:var(--space-6);max-width:52ch;color:var(--on-ink-muted);font-size:var(--text-md)}.contact__alt{margin-top:var(--space-8);display:flex;flex-wrap:wrap;gap:var(--space-6);font-family:var(--font-display);font-weight:600}.contact__alt a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--hi)}.contact__alt a:hover{text-decoration-color:var(--on-ink)}.contact__form{display:grid;gap:var(--space-2)}.contact__form label{font-family:var(--font-display);font-weight:700;font-size:.9375rem;margin-top:var(--space-3)}.contact__form input,.contact__form textarea{width:100%;background:var(--ink-2);color:var(--on-ink);border:2px solid var(--on-ink-rule);border-radius:var(--radius);padding:.8rem .9rem;font:inherit;font-size:1rem;transition:border-color var(--dur) var(--ease)}.contact__form textarea{resize:vertical;min-height:7rem}.contact__form input::placeholder,.contact__form textarea::placeholder{color:#8791a0}.contact__form input:hover,.contact__form textarea:hover{border-color:var(--on-ink-muted)}.contact__form input:focus,.contact__form textarea:focus{border-color:var(--hi);outline:none}.contact__form input:focus-visible,.contact__form textarea:focus-visible{outline:2px solid var(--hi);outline-offset:2px}.contact__form .btn{margin-top:var(--space-4);justify-self:start;border-color:var(--hi)}.contact__form .btn--primary:hover{background:transparent;color:var(--hi)}.contact__form .btn[disabled]{opacity:.6;cursor:progress}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.contact__status{margin-top:var(--space-4);font-family:var(--font-display);font-weight:600;padding:.75rem 1rem;border-left:6px solid var(--hi);background:var(--ink-2)}.contact__status--ok{border-left-color:#5bc08a}.contact__status--err{border-left-color:#f0766c}.contact__status[hidden]{display:none}@media(max-width:860px){.contact__grid{grid-template-columns:1fr}}.footer{background:var(--ink);color:var(--on-ink-muted);border-top:1px solid var(--on-ink-rule);padding-block:var(--space-8);font-family:var(--font-display);font-size:.875rem}.footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.footer__inner a{color:var(--on-ink);text-decoration-color:var(--on-ink-rule);text-underline-offset:4px}.footer__inner a:hover{text-decoration-color:var(--hi)}.blog-hero{padding-block:clamp(3rem,2rem + 4vw,5.5rem) var(--space-8)}.blog-hero h1{font-size:clamp(2.75rem,1.4rem + 5vw,5rem);font-weight:800;font-stretch:78%;line-height:.98;margin-bottom:var(--space-4)}.blog-hero p{color:var(--text-muted);max-width:58ch;font-size:var(--text-md)}.blog-grid{display:grid;border-top:2px solid var(--ink)}.post-card{display:grid;grid-template-columns:10rem minmax(0,1fr);column-gap:var(--space-8);row-gap:var(--space-2);padding-block:var(--space-6);border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}.post-card__meta{grid-row:1 / span 4;font-family:var(--font-display);font-size:.875rem;color:var(--text-subtle);padding-top:.35rem}.post-card__title{font-size:var(--text-xl);font-stretch:90%;font-weight:800;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:3px;text-underline-offset:5px;transition:text-decoration-color var(--dur) var(--ease)}.post-card:hover .post-card__title{text-decoration-color:var(--hi)}.post-card__summary{color:var(--text-muted);max-width:62ch}.post-card__more{font-family:var(--font-display);font-weight:700;font-size:.9375rem;margin-top:var(--space-2)}.article{padding-block:clamp(2.5rem,2rem + 3vw,4.5rem)}.article__head{max-width:72ch;margin-bottom:var(--space-8)}.article__back{font-family:var(--font-display);font-weight:600;font-size:.9375rem;display:inline-block;margin-bottom:var(--space-6);text-decoration-color:var(--hi);text-decoration-thickness:2px;text-underline-offset:4px}.article__meta{font-family:var(--font-display);font-size:.875rem;color:var(--text-subtle);margin-bottom:var(--space-4)}.article__title{font-size:clamp(2.25rem,1.2rem + 4vw,4rem);font-weight:800;font-stretch:82%;line-height:1;margin-bottom:var(--space-4);text-wrap:balance}.article__summary{font-size:var(--text-lg);color:var(--text-muted);margin-bottom:var(--space-4)}.prose{max-width:68ch}.prose>*+*{margin-top:var(--space-4)}.prose h2{font-size:var(--text-xl);font-stretch:90%;font-weight:800;margin-top:var(--space-12);margin-bottom:var(--space-2)}.prose h3{font-size:var(--text-lg);font-weight:800;margin-top:var(--space-8);margin-bottom:var(--space-2)}.prose p,.prose li{color:var(--text-muted);font-size:var(--text-md);line-height:1.7}.prose strong{color:var(--ink)}.prose a{color:var(--ink);text-decoration-color:var(--hi);text-decoration-thickness:2px;text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--ink)}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.prose blockquote{border-left:6px solid var(--hi);padding-left:var(--space-4);color:var(--ink)}.prose blockquote p{color:var(--ink)}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-2);padding:1px 6px}.prose pre{background:var(--ink);color:var(--on-ink);padding:var(--space-4);overflow-x:auto}.prose pre code{background:none;padding:0;color:inherit}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-display);font-size:.9375rem}.prose th,.prose td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid var(--rule)}.prose th{border-bottom:2px solid var(--ink)}@media(max-width:680px){.post-card{grid-template-columns:1fr}.post-card__meta{grid-row:auto}}
