:root{--color-paper:#fff;--color-surface:#f1f5f8;--color-rule:#d7e0e8;--color-line:#afbcc5;--color-ink-soft:#586a7b;--color-ink:#1d2935;--color-ink-strong:#0e1823;--color-accent:#275b89;--color-accent-strong:#1b4268;--color-accent-soft:#e3ecf4;--color-on-accent:#fff;--color-code-keyword:#5a3e9b;--color-code-string:#2c6b52;--color-code-comment:#5c6c7b;--color-code-number:#1f6f86;--color-deep:#142f49;--color-on-deep:#dde8f3;--color-on-deep-soft:#a9bfd4;--color-iso-accent-top:#5e8fc0;--font-body:"Schibsted Grotesk Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-ui:"Schibsted Grotesk Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step--1:clamp(.875rem, .85rem + .12vw, .95rem);--step-0:clamp(1.0625rem, 1.02rem + .2vw, 1.1875rem);--step-1:clamp(1.275rem, 1.2rem + .38vw, 1.484rem);--step-2:clamp(1.53rem, 1.41rem + .6vw, 1.855rem);--step-3:clamp(1.836rem, 1.65rem + .93vw, 2.319rem);--step-4:clamp(2.203rem, 1.92rem + 1.4vw, 2.899rem);--leading-body:1.65;--leading-tight:1.2;--measure:68ch;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:3rem;--space-2xl:4.5rem;--radius:14px;--radius-s:10px;--radius-round:999px;--control-size:2.25rem;--shadow:0 1px 2px #0e18230a, 0 8px 24px #142f4912;--bar:3px;--rule-width:1px;--page-max:72rem}:root[data-theme=dark]{--color-paper:#0d151e;--color-surface:#16212c;--color-rule:#283646;--color-line:#3b4d5e;--color-ink-soft:#92a3b3;--color-ink:#d9e2ea;--color-ink-strong:#f2f6f9;--color-accent:#86b2dc;--color-accent-strong:#aecbe8;--color-accent-soft:#1a2d41;--color-on-accent:#0d151e;--color-code-keyword:#b8a2e6;--color-code-string:#8cc9ae;--color-code-comment:#8597a7;--color-code-number:#7cc3d6;--color-deep:#1c3d5c;--color-iso-accent-top:#9cc0e4}@media print{:root,:root[data-theme=dark]{--color-paper:#fff;--color-ink:#000;--color-ink-strong:#000;--color-ink-soft:#444;--color-surface:#f4f4f4;--color-rule:#d0d0d0;--color-line:#a0a0a0;--color-accent:#275b89;--color-accent-strong:#1b4268;--color-accent-soft:#e8eef4;--color-on-accent:#fff;--color-deep:#142f49;--color-iso-accent-top:#5e8fc0;--color-code-keyword:#5a3e9b;--color-code-string:#2c6b52;--color-code-comment:#666;--color-code-number:#1f6f86;--step-0:10.5pt;--step--1:9pt;--step-1:12.5pt;--step-2:15pt;--step-3:18pt;--step-4:22pt}}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/fonts/schibsted-grotesk-latin-ext-wght-italic.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/fonts/schibsted-grotesk-latin-wght-italic.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{border-top:var(--bar) solid var(--color-accent);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--step-0);line-height:var(--leading-body);text-rendering:optimizelegibility;font-kerning:normal;font-variant-numeric:oldstyle-nums proportional-nums;margin:0}h1,h2,h3,h4{color:var(--color-ink-strong);font-family:var(--font-ui);line-height:var(--leading-tight);letter-spacing:-.01em;text-wrap:balance;font-weight:700}h1{font-size:var(--step-4);margin:0 0 var(--space-s)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}h4{font-size:var(--step-0)}p,li{text-wrap:pretty}a{color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:.06em}a:hover{color:var(--color-accent-strong);text-decoration-thickness:.12em}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}::selection{background:var(--color-accent-soft)}img,svg,video{max-width:100%;height:auto}code,kbd,pre,samp{font-family:var(--font-mono);font-variant-numeric:normal;font-size:.88em}hr{border:0;border-top:var(--rule-width) solid var(--color-rule);margin:var(--space-xl) 0}.muted{color:var(--color-ink-soft)}.skip{left:var(--space-s);background:var(--color-paper);padding:var(--space-2xs) var(--space-s);z-index:10;position:absolute;top:-10rem}.skip:focus{top:var(--space-s)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.wrap{width:100%;max-width:var(--page-max);padding:0 var(--space-m);margin:0 auto}html,body{overflow-x:clip}.site-head{background:var(--color-paper);border-bottom:var(--rule-width) solid var(--color-rule);font-family:var(--font-ui)}.site-head-row{justify-content:space-between;align-items:baseline;gap:var(--space-2xs) var(--space-m);padding-top:var(--space-m);padding-bottom:var(--space-m);flex-wrap:wrap;display:flex}.site-name{color:var(--color-ink-strong);font-weight:700;font-size:var(--step-0);letter-spacing:-.01em;text-decoration:none}.site-name:hover{color:var(--color-accent)}.site-nav ul{align-items:center;gap:var(--space-m);font-size:var(--step--1);flex-wrap:wrap;margin:0;padding:0;font-weight:500;list-style:none;display:flex}.site-nav a{color:var(--color-ink);text-decoration:none}.site-nav a:hover{color:var(--color-accent)}.site-nav a[aria-current=page]{color:var(--color-ink-strong);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.5em;text-decoration-thickness:2px}main{padding:0 0 var(--space-2xl)}.prose-col{max-width:var(--measure)}.site-foot{border-top:var(--rule-width) solid var(--color-rule);padding:var(--space-xl) 0;font-family:var(--font-ui);font-size:var(--step--1);color:var(--color-ink-soft)}.site-foot ul{gap:var(--space-2xs) var(--space-m);margin:0 0 var(--space-2xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.site-foot a{color:var(--color-ink)}.site-foot a:hover{color:var(--color-accent)}.site-foot p{margin:0}.theme-item{display:none}.js .theme-item{display:list-item}.theme-toggle{width:var(--control-size);height:var(--control-size);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-round);background:var(--color-paper);color:var(--color-ink);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}.theme-toggle .icon-sun,[data-theme=dark] .theme-toggle .icon-moon{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}@media print{.theme-item,.js .theme-item{display:none}}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1em}.prose p,.prose ul,.prose ol,.prose dl,.prose h2,.prose h3,.prose h4{margin-bottom:0}.prose h2{margin-top:var(--space-xl)}.prose h3{margin-top:var(--space-l)}.prose h4{margin-top:var(--space-m)}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:var(--space-xs)}.prose .headerlink{color:var(--color-ink-soft);opacity:0;margin-left:.35em;font-weight:400;text-decoration:none}.prose :is(h2,h3,h4):hover .headerlink,.prose .headerlink:focus-visible{opacity:1}.prose :is(h2,h3,h4){scroll-margin-top:var(--space-m)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.35em}.prose strong{color:var(--color-ink-strong)}.prose :not(pre)>code{background:var(--color-surface);overflow-wrap:anywhere;border-radius:3px;padding:.1em .3em}.prose .highlight,.prose pre{background:var(--color-surface);border-radius:var(--radius);margin-top:var(--space-m)}.prose .highlight pre,.prose pre{padding:var(--space-s) var(--space-m);tab-size:4;margin:0;font-size:.85em;line-height:1.5;overflow-x:auto}.prose .highlight pre code,.prose pre code{font-size:1em}.prose .highlight+*,.prose pre+*{margin-top:var(--space-m)}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .ow,.highlight .nt{color:var(--color-code-keyword)}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .ss,.highlight .na{color:var(--color-code-string)}.highlight .c,.highlight .c1,.highlight .cm,.highlight .cp,.highlight .cs,.highlight .ch{color:var(--color-code-comment);font-style:italic}.highlight .m,.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo,.highlight .il,.highlight .bp,.highlight .no{color:var(--color-code-number)}.highlight .hll{background:var(--color-accent-soft);display:block}.prose blockquote{padding-left:var(--space-m);border-left:3px solid var(--color-rule);color:var(--color-ink-soft);margin-left:0;margin-right:0}.prose blockquote>*+*{margin-top:.75em}.prose blockquote p{margin-bottom:0}.prose figure{margin:var(--space-l) 0}.prose figure img{border-radius:var(--radius);display:block}.prose figcaption{margin-top:var(--space-2xs);font-family:var(--font-ui);font-size:var(--step--1);color:var(--color-ink-soft)}.prose table{border-collapse:collapse;max-width:100%;font-size:var(--step--1);font-variant-numeric:lining-nums tabular-nums;display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2xs) var(--space-s) var(--space-2xs) 0;border-bottom:var(--rule-width) solid var(--color-rule);text-align:left;vertical-align:top}.prose th{font-family:var(--font-ui);color:var(--color-ink-strong)}.prose sup{line-height:0}.prose .footnote-ref{padding:0 .1em;text-decoration:none}.prose .footnote{margin-top:var(--space-xl);font-size:var(--step--1);color:var(--color-ink-soft)}.prose .footnote hr{margin:0 0 var(--space-s);width:6rem}.prose .footnote ol{padding-left:1.4em}.prose .footnote-backref{text-decoration:none}.prose :target{background:var(--color-accent-soft);border-radius:2px}.prose dt{color:var(--color-ink-strong);font-weight:700}.prose dd{margin-left:var(--space-m)}.prose abbr[title]{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.article-head .kicker a{color:var(--color-accent)}.article-head h1{max-width:22ch;font-size:var(--step-4);line-height:1.1}.article-meta{font-family:var(--font-ui);font-size:var(--step--1);color:var(--color-ink-soft);margin:0}.toc{max-width:var(--measure);margin-bottom:var(--space-l);padding:var(--space-s) var(--space-m);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);font-family:var(--font-ui);font-size:var(--step--1)}.toc-title{margin:0 0 var(--space-2xs);color:var(--color-ink-strong);font-weight:700}.toc ul{margin:0;padding-left:1.2em}.toc-list>ul{padding-left:0;list-style:none}.toc li+li{margin-top:.2em}.spec-bg{fill:var(--color-surface)}.spec-1{fill:var(--color-rule)}.spec-2{fill:var(--color-ink-soft)}.spec-3{fill:var(--color-accent)}.post-list{max-width:var(--measure);margin:0;padding:0;list-style:none}.post-item{padding:var(--space-m) 0;border-bottom:var(--rule-width) solid var(--color-rule)}.post-item:first-child{padding-top:0}.post-title{font-family:var(--font-ui);font-size:var(--step-1);font-weight:700;line-height:var(--leading-tight);text-decoration:none;display:block}.post-title:hover{text-decoration:underline}.post-date{margin-top:var(--space-3xs);font-family:var(--font-ui);font-size:var(--step--1);color:var(--color-ink-soft);display:block}.post-desc{margin:var(--space-2xs) 0 0}.kicker{margin:0 0 var(--space-s);font-family:var(--font-ui);font-size:var(--step--1);color:var(--color-accent);align-items:center;gap:.6em;font-weight:600;display:flex}.kicker:before{content:"";background:var(--color-line);border-radius:2px;width:1.6rem;height:2px}.kicker a{color:inherit;text-decoration:none}.arrow{color:var(--color-accent);white-space:nowrap;font-weight:600;text-decoration:none}.arrow:after{content:"";border-top:2px solid;border-right:2px solid;width:.45em;height:.45em;margin-left:.4em;transition:margin .15s;display:inline-block;transform:translateY(-.08em)rotate(45deg)}.arrow:hover:after{margin-left:.6em}.button{border:var(--rule-width) solid var(--color-accent);border-radius:var(--radius-s);background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-ui);font-size:var(--step--1);padding:.75em 1.25em;font-weight:600;text-decoration:none;display:inline-block}.button:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:var(--color-on-accent)}.button-light{color:var(--color-deep);background:#fff;border-color:#fff}.button-light:hover{background:var(--color-accent-soft);border-color:var(--color-accent-soft);color:var(--color-deep)}.hero{gap:var(--space-xl);padding:var(--space-2xl) 0 var(--space-xl);align-items:center;display:grid}@media (width>=60rem){.hero{padding-top:calc(var(--space-2xl) * 1.3);grid-template-columns:1.05fr .95fr}}.hero-title{max-width:20ch;color:var(--color-ink-strong);margin:0;font-size:clamp(2.4rem,1.7rem + 2.6vw,3.5rem);font-weight:700;line-height:1.04}.hero-lede{margin:var(--space-m) 0 0;max-width:34rem;font-size:var(--step-1);color:var(--color-ink-soft);line-height:1.5}.hero-actions{align-items:center;gap:var(--space-m);margin:var(--space-l) 0 0;flex-wrap:wrap;display:flex}.hero-art{justify-self:center;width:100%;max-width:30rem}.facts{margin:0 0 var(--space-2xl);padding:var(--space-m) var(--space-l);gap:var(--space-m);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}@media (width>=48rem){.facts{grid-template-columns:repeat(4,minmax(0,1fr))}.facts li+li{border-left:var(--rule-width) solid var(--color-rule);padding-left:var(--space-m)}}.facts li{gap:.15em;display:grid}.facts strong{font-size:var(--step-0);color:var(--color-ink-strong);letter-spacing:-.015em;line-height:1.25}@media (width>=48rem){.facts strong{font-size:var(--step-1)}}.facts span{font-size:var(--step--1);color:var(--color-ink-soft)}.feature{gap:var(--space-l);padding:var(--space-xl) 0;border-top:var(--rule-width) solid var(--color-rule);align-items:center;display:grid}@media (width>=52rem){.feature{gap:var(--space-2xl);padding:var(--space-2xl) 0;grid-template-columns:.9fr 1.1fr}.feature-flip .feature-art{order:2}}.feature-art{aspect-ratio:4/3;padding:var(--space-l);background:var(--color-surface);border-radius:var(--radius);place-items:center;display:grid}.feature-art .iso{width:100%;max-width:19rem;height:auto}.feature-art .iso-pipeline{max-width:26rem}.feature-text h2{margin:0 0 var(--space-s);font-size:var(--step-3);max-width:18ch;line-height:1.1}.feature-text p{max-width:32rem;color:var(--color-ink-soft)}.iso polygon{stroke:var(--color-ink-strong);stroke-width:1.1px;stroke-linejoin:round}.iso .t{fill:var(--color-paper)}.iso .l{fill:var(--color-rule)}.iso .r{fill:var(--color-line)}.iso .t.acc{fill:var(--color-iso-accent-top)}.iso .l.acc{fill:var(--color-accent)}.iso .r.acc{fill:var(--color-accent-strong)}.how{padding:var(--space-2xl) 0;border-top:var(--rule-width) solid var(--color-rule)}.how h2{margin:0 0 var(--space-l);font-size:var(--step-3);max-width:22ch}.steps{gap:var(--space-m);margin:0;padding:0;list-style:none;display:grid}@media (width>=52rem){.steps{grid-template-columns:repeat(4,minmax(0,1fr))}}.steps li{padding:var(--space-m);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--color-ink-soft);font-size:var(--step--1);line-height:1.55}.steps span{font-family:var(--font-mono);color:var(--color-accent);font-weight:600;display:block}.steps strong{margin:var(--space-xs) 0 var(--space-3xs);color:var(--color-ink-strong);font-size:var(--step-0);display:block}.cta{margin:var(--space-l) 0 var(--space-xl);padding:var(--space-xl);background:var(--color-deep);color:var(--color-on-deep);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow)}.cta h2{margin:0 0 var(--space-2xs);color:#fff;font-size:var(--step-3);max-width:22ch}.cta p{margin:0 0 var(--space-m);color:var(--color-on-deep-soft)}.cta p:last-child{margin:0}.page-head{margin:0 calc(50% - 50vw) var(--space-xl);padding:var(--space-xl) calc(50vw - 50%);background:var(--color-surface);border-bottom:var(--rule-width) solid var(--color-rule)}.page-head h1,.page-head .page-title{font-family:var(--font-ui);font-size:var(--step-4);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.025em;color:var(--color-ink-strong);margin:0}.page-head .lede{margin:var(--space-xs) 0 0;max-width:40rem;font-size:var(--step-1);color:var(--color-ink-soft)}.page-head .meta{margin:var(--space-s) 0 0;font-size:var(--step--1);color:var(--color-ink-soft)}.jump{gap:var(--space-2xs);margin:var(--space-m) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.jump a{border:1px solid var(--color-line);border-radius:var(--radius-round);background:var(--color-paper);color:var(--color-accent);font-size:var(--step--1);padding:.3em .85em;font-weight:600;text-decoration:none;display:inline-block}.jump a:hover{border-color:var(--color-accent)}.chip-rows{display:grid}.chip-row{gap:var(--space-s) var(--space-xl);padding:var(--space-l) 0;border-top:var(--rule-width) solid var(--color-rule);scroll-margin-top:var(--space-m);display:grid}.chip-row:first-child{border-top:0;padding-top:0}@media (width>=52rem){.chip-row{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}}.chip-row h2{font-size:var(--step-2);margin:0 0 var(--space-2xs)}.chip-row p{color:var(--color-ink-soft);max-width:30rem;margin:0}.pills{gap:var(--space-2xs);flex-wrap:wrap;align-content:start;margin:0;padding:0;list-style:none;display:flex}.pills li{border:1px solid var(--color-rule);border-radius:var(--radius-s);background:var(--color-paper);color:var(--color-ink-strong);font-size:var(--step--1);padding:.3em .85em;font-weight:600;display:inline-block}.pills li.core{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.pill-legend{align-items:center;gap:var(--space-2xs);margin:var(--space-m) 0 0;padding-top:var(--space-m);border-top:var(--rule-width) solid var(--color-rule);font-size:var(--step--1);color:var(--color-ink-soft);display:flex}.pill-key{border:1px solid var(--color-accent);background:var(--color-accent-soft);border-radius:4px;flex:none;width:1.6em;height:1em}.more{margin-top:var(--space-m);font-family:var(--font-ui)}.contact-grid{gap:var(--space-m);margin-bottom:var(--space-xl);display:grid}@media (width>=52rem){.contact-grid{grid-template-columns:1.4fr 1fr}}.contact-grid:has(>:only-child){grid-template-columns:minmax(0,40rem)}.contact-card{padding:var(--space-l);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);box-shadow:var(--shadow)}.contact-main{background:var(--color-surface)}.contact-address{font-size:var(--step-0);overflow-wrap:anywhere;margin:0;font-weight:600}@media (width>=40rem){.contact-address{font-size:var(--step-1)}}.contact-address a{color:var(--color-ink-strong);padding:.4em 0;text-decoration:none;display:inline-block}.contact-address a:hover,.contact-address a:focus-visible{color:var(--color-accent);text-decoration:underline}.contact-note{margin:var(--space-s) 0 0;color:var(--color-ink-soft)}.contact-links{gap:var(--space-xs);font-size:var(--step-1);margin:0;padding:0;list-style:none;display:grid}.contact-helps h2{margin:0 0 var(--space-m);font-size:var(--step-2)}@media (width>=52rem){.contact-helps .steps{grid-template-columns:repeat(3,minmax(0,1fr))}}.notfound{gap:var(--space-m);max-width:28rem;display:grid}.notfound .feature-art{aspect-ratio:16/9}.notfound .iso{width:100%;max-width:20rem;height:auto}.notfound p{gap:var(--space-m);flex-wrap:wrap;margin:0;display:flex}.subgroups{gap:var(--space-m);display:grid}@media (width>=40rem){.subgroups{grid-template-columns:repeat(2,minmax(0,1fr))}}.subgroup h3{margin:0 0 var(--space-2xs);font-size:var(--step--1);color:var(--color-ink-soft);font-weight:600}.cv-top{justify-content:space-between;align-items:flex-start;gap:var(--space-l);display:flex}.cv-top h1{margin-top:0}.cv-photo{flex:none;width:9rem;height:auto}.contact-person{align-items:center;gap:var(--space-s);margin-bottom:var(--space-m);display:flex}.contact-person img{border-radius:50%;width:4.5rem;height:4.5rem}.contact-person p{margin:0;display:grid}.contact-person strong{color:var(--color-ink-strong)}.contact-person span{font-size:var(--step--1);color:var(--color-ink-soft)}.role-hero .hero-title{font-size:var(--step-4);max-width:19ch}.role-name{margin-bottom:var(--space-s);font-family:var(--font-ui);font-size:var(--step-0);letter-spacing:0;color:var(--color-accent);align-items:center;gap:.6em;font-weight:600;line-height:1.3;display:flex}.role-name:before{content:"";background:var(--color-line);border-radius:2px;flex:none;width:1.6rem;height:2px}.role-band,.role-tools,.role-others,.roles{padding:var(--space-2xl) 0;border-top:var(--rule-width) solid var(--color-rule)}.role-band>h2,.role-tools>h2,.role-others>h2,.roles>h2{font-size:var(--step-3);max-width:24ch;margin:0;line-height:1.1}.section-lede{margin:var(--space-xs) 0 0;max-width:36rem;color:var(--color-ink-soft)}.stops{margin:var(--space-l) 0 0;gap:var(--space-m);padding:0;list-style:none;display:grid}@media (width>=52rem){.stops{gap:var(--space-l);grid-template-columns:repeat(2,minmax(0,1fr))}}.stop{background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.stop-art{height:11rem;padding:var(--space-m);background:var(--color-surface);border-bottom:var(--rule-width) solid var(--color-rule);place-items:center;display:grid}.stop-art .iso{width:auto;max-width:88%;height:8.5rem}.stop-text{padding:var(--space-l);flex-direction:column;display:flex}.stop-text h3{margin:0 0 var(--space-xs);font-size:var(--step-1);color:var(--color-ink-strong);line-height:1.2}.stop-text p:not(.kicker){margin:0 0 var(--space-s);color:var(--color-ink-soft)}.stop-text p:not(.kicker):last-child{padding-top:var(--space-2xs);margin:auto 0 0}.role-tools .chip-rows{margin-top:var(--space-l)}.role-tools .pill-legend{border-top:0;padding-top:0}.role-tools .chip-row h3{margin:0 0 var(--space-3xs);font-size:var(--step-1)}.role-tools .chip-row p{font-size:var(--step--1)}.role-cards{margin:var(--space-l) 0 0;gap:var(--space-m);padding:0;list-style:none;display:grid}@media (width>=40rem){.role-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=60rem){.role-cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.role-card{gap:var(--space-2xs);height:100%;padding:var(--space-m) var(--space-m) var(--space-l);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--color-ink-soft);text-decoration:none;transition:border-color .15s;display:grid}.role-card:hover{border-color:var(--color-accent);color:var(--color-ink-soft)}.role-card-art{height:8.5rem;margin-bottom:var(--space-xs);padding:var(--space-s);background:var(--color-surface);border-radius:var(--radius-s);place-items:center;display:grid}.role-card-art .iso{width:auto;max-width:90%;height:6.75rem}.role-card strong{font-size:var(--step-1);color:var(--color-ink-strong);letter-spacing:-.015em;line-height:1.25}.role-card strong:after{content:"";border-top:2px solid var(--color-accent);border-right:2px solid var(--color-accent);width:.4em;height:.4em;margin-left:.45em;transition:margin .15s;display:inline-block;transform:translateY(-.12em)rotate(45deg)}.role-card:hover strong:after{margin-left:.65em}.role-card span:last-child{font-size:var(--step--1);line-height:1.55}.hero .kicker a:hover{text-underline-offset:.25em;text-decoration:underline}.roles{border-top:0;padding-top:0}.tip{cursor:help;border:0;text-decoration:none;position:relative}.tip-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tip:after{content:attr(data-tip);content:attr(data-tip) / "";z-index:10;background:var(--color-paper);width:max-content;max-width:15rem;color:var(--color-ink-soft);border:1px solid var(--color-rule);border-radius:calc(var(--radius-s) / 2);box-shadow:var(--shadow);font-size:calc(var(--step--1) * .9);text-align:center;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;padding:.3em .6em;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,3px)}.tip:hover:after{opacity:1;visibility:visible;transition:opacity .18s .35s,transform .18s .35s,visibility 0s linear .35s;transform:translate(-50%)}@media (hover:none){.tip{cursor:pointer}}@media (prefers-reduced-motion:reduce){.tip:after,.tip:hover:after{transform:translate(-50%)}.tip:hover:after{transition:visibility 0s linear .35s,opacity 0s linear .35s}}@media (width<=52rem){.tip:after,.tip:hover:after{left:var(--space-m);right:var(--space-m);bottom:var(--space-m);width:auto;max-width:none;font-size:var(--step--1);padding:.55em .9em;position:fixed;top:auto;transform:none}}.design-book .book-section{margin-bottom:var(--space-2xl)}.design-book .book-section>h2{margin:0 0 var(--space-m)}.token-list{gap:var(--space-s);font-size:var(--step--1);margin:0;padding:0;list-style:none;display:grid}.token-list code{font-size:1em}.swatches{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.swatch{gap:var(--space-s);align-items:center;display:flex}.swatch-chip{border-radius:var(--radius);border:var(--rule-width) solid var(--color-rule);flex:none;width:3rem;height:3rem}.type-scale li{gap:var(--space-3xs);display:grid}.type-sample{font-family:var(--font-ui);color:var(--color-ink-strong);font-weight:700;line-height:var(--leading-tight)}.space-scale li{gap:var(--space-s);align-items:center;display:flex}.space-bar{height:var(--space-s);background:var(--color-accent);border-radius:2px;flex:none}.specimen{border-top:var(--rule-width) solid var(--color-rule);padding-top:var(--space-l)}.book-drawings{gap:var(--space-m);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.book-drawing{margin:0}.book-drawing .iso{width:100%;max-width:12rem;height:auto}.book-drawing figcaption{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--color-ink-soft)}.design-book .facts,.design-book .pills,.book-steps{margin-bottom:var(--space-l)}@media (width>=52rem){.book-steps{grid-template-columns:repeat(2,minmax(0,1fr));max-width:40rem}}@media print{@page{margin:16mm 18mm}.site-head,.site-foot,.skip,.toc,.headerlink,.cv-head{display:none!important}html,main,.page-head{color:#000!important;background:#fff!important;border:0!important}.page-head{margin:0 0 8mm!important;padding:0!important}.cta,.facts,.steps li{box-shadow:none!important}.page-head h1,.page-head .lede,.page-head .meta{color:#000!important}main{padding:0}a{color:inherit;text-decoration:none}.prose a[href^=http]:after{content:" (" attr(href) ")";color:var(--color-ink-soft);font-size:.85em}h2,h3{break-after:avoid}pre,blockquote,figure,table,.cv-entry{break-inside:avoid}.cv-photo{width:32mm}}
