@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/ibm-plex-mono-latin-400-normal.06ac09dc.woff2) format("woff2"),url(/_next/static/media/ibm-plex-mono-latin-400-normal.e32cf7a4.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/ibm-plex-mono-latin-500-normal.dece0821.woff2) format("woff2"),url(/_next/static/media/ibm-plex-mono-latin-500-normal.2258ff2f.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/ibm-plex-mono-latin-600-normal.422bb707.woff2) format("woff2"),url(/_next/static/media/ibm-plex-mono-latin-600-normal.0dcad33c.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/ibm-plex-sans-latin-400-normal.13a15bcd.woff2) format("woff2"),url(/_next/static/media/ibm-plex-sans-latin-400-normal.48b78688.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/ibm-plex-sans-latin-500-normal.4cdcd386.woff2) format("woff2"),url(/_next/static/media/ibm-plex-sans-latin-500-normal.f8dd458c.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/ibm-plex-sans-latin-600-normal.1cdb9a2c.woff2) format("woff2"),url(/_next/static/media/ibm-plex-sans-latin-600-normal.0eddcd6d.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/ibm-plex-sans-latin-700-normal.45cdbe8d.woff2) format("woff2"),url(/_next/static/media/ibm-plex-sans-latin-700-normal.ce08404e.woff) format("woff")}@font-face{font-family:Google Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/google-sans-latin-700-normal.8b93cf3c.woff2) format("woff2"),url(/_next/static/media/google-sans-latin-700-normal.4714fa34.woff) format("woff")}:root{--bg:#f6f4ef;--surface:#fffdf9;--surface-2:#efece4;--surface-3:#e6e2d8;--ink:#1c1b19;--ink-2:#3d3a35;--muted:#6f6a61;--line:#dcd7cc;--line-strong:#c4bdaf;--accent:#c2410c;--chart-1:#c2410c;--focus-ring:0 0 0 3px rgb(194 65 12/30%);--accent-hover:#9a3412;--accent-soft:#fdede3;--on-accent:#fff;--ok:#2b8a3e;--ok-soft:#e3f2e6;--warn:#9c6612;--warn-soft:#fbf0d9;--danger:#c92a2a;--danger-soft:#fbe3e3;--info:#1c64b0;--info-soft:#e1ecf8;--model-top:#f3e9da;--model-a:#dac8ad;--model-b:#c2ac8b;--model-floor:#e9ddc9;--model-edge:#8a7457;--model-label:#6b5a43;--grid:rgb(28 27 25/6%);--radius:10px;--radius-sm:6px;--radius-lg:14px;--radius-xl:22px;--radius-xs:4px;--radius-pill:999px;--shadow:0 1px 2px rgb(28 27 25/6%),0 6px 20px rgb(28 27 25/6%);--shadow-overlay:0 12px 36px rgb(28 27 25/18%);--breakpoint-mobile:640px;--breakpoint-tablet:900px;--breakpoint-wide:1180px;--layout-max-width:1240px;--layout-gutter:24px;--layout-gutter-mobile:16px;--content-reading-width:760px;--content-form-width:620px;--control-height:40px;--control-height-touch:44px;--font:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--brand-font:"Google Sans","IBM Plex Sans",system-ui,sans-serif;--logo-top-a:#fbfaf7;--logo-top-b:#e2ddd2;--logo-left-a:#b2ab9d;--logo-left-b:#918a7c;--logo-front-a:#7d7668;--logo-front-b:#5c5648;--logo-dark-a:#3a3731;--logo-dark-b:#1c1b19;--logo-inner-a:#c8c2b4;--logo-inner-b:#a49d8e;--logo-edge:#1c1b19;--clay-soft:#f6e1d3;--clay-mid:#e0915f;--clay-deep:#8f3510;--blue-soft:#dce7f2;--blue-mid:#6f9bd0;--blue-deep:#1f4b85;--sage-soft:#dfe9d9;--sage-mid:#7fae7a;--sage-deep:#2c6334;--ochre-soft:#f3e6c3;--ochre-mid:#d4a63e;--ochre-deep:#7a4f08;--teal-soft:#d5ece8;--teal-mid:#4fa596;--teal-deep:#155e54;--plum-soft:#ebdff0;--plum-mid:#a77bbd;--plum-deep:#5c2d75;--rose-soft:#f5dde3;--rose-mid:#d37a92;--rose-deep:#8a2443;--slate-soft:#e2e4ea;--slate-mid:#8a93a8;--slate-deep:#3a4256;--bench:#1f1d1a;--bench-2:#2a2723;--bench-ink:#f3efe7;--bench-muted:#b3ac9f;--bench-line:#3a3630;color-scheme:light}:root[data-theme=dark]{--bg:#151412;--surface:#1d1c19;--surface-2:#26241f;--surface-3:#2f2c26;--ink:#f1ede5;--ink-2:#d6d0c4;--muted:#9d968a;--line:#34312b;--line-strong:#4a463c;--accent:#ff7a3d;--chart-1:#e8672c;--focus-ring:0 0 0 3px rgb(255 122 61/35%);--accent-hover:#ff956a;--accent-soft:#3a2418;--on-accent:#1a0f08;--ok:#69db7c;--ok-soft:#1c2e20;--warn:#f0b85a;--warn-soft:#33291a;--danger:#ff8787;--danger-soft:#3a1f1f;--info:#74b0f0;--info-soft:#1a2838;--model-top:#6a5d4b;--model-a:#52483a;--model-b:#43392d;--model-floor:#5a4f3f;--model-edge:#a08b6e;--model-label:#e7dcc9;--grid:rgb(241 237 229/5%);--shadow:0 1px 2px rgb(0 0 0/30%),0 6px 20px rgb(0 0 0/25%);--shadow-overlay:0 12px 36px rgb(0 0 0/55%);--logo-top-a:#f5f5f5;--logo-top-b:#d9d9d9;--logo-left-a:#b7b7b7;--logo-left-b:#8e8e8e;--logo-front-a:#888888;--logo-front-b:#616161;--logo-dark-a:#44484f;--logo-dark-b:#181b20;--logo-inner-a:#cfcfcf;--logo-inner-b:#a3a3a3;--logo-edge:#f2f2f2;--clay-soft:#3a261b;--clay-mid:#c7774a;--clay-deep:#ffc29e;--blue-soft:#1d2a3a;--blue-mid:#5b86bb;--blue-deep:#b5d1f3;--sage-soft:#1f2e21;--sage-mid:#6c9c68;--sage-deep:#bfe0b9;--ochre-soft:#33291a;--ochre-mid:#bf9334;--ochre-deep:#f3d690;--teal-soft:#16302c;--teal-mid:#4a9486;--teal-deep:#a9e0d5;--plum-soft:#2c2133;--plum-mid:#9572a8;--plum-deep:#dcc3ea;--rose-soft:#36202a;--rose-mid:#bf6d84;--rose-deep:#f5bccb;--slate-soft:#24272f;--slate-mid:#7c859a;--slate-deep:#cdd3e0;--bench:#0e0d0c;--bench-2:#1b1a17;--bench-line:#2c2924;color-scheme:dark}:root{--cat-soft:var(--surface-2);--cat-mid:var(--line-strong);--cat-deep:var(--ink-2)}[data-colour=clay]{--cat-soft:var(--clay-soft);--cat-mid:var(--clay-mid);--cat-deep:var(--clay-deep)}[data-colour=blue]{--cat-soft:var(--blue-soft);--cat-mid:var(--blue-mid);--cat-deep:var(--blue-deep)}[data-colour=sage]{--cat-soft:var(--sage-soft);--cat-mid:var(--sage-mid);--cat-deep:var(--sage-deep)}[data-colour=ochre]{--cat-soft:var(--ochre-soft);--cat-mid:var(--ochre-mid);--cat-deep:var(--ochre-deep)}[data-colour=teal]{--cat-soft:var(--teal-soft);--cat-mid:var(--teal-mid);--cat-deep:var(--teal-deep)}[data-colour=plum]{--cat-soft:var(--plum-soft);--cat-mid:var(--plum-mid);--cat-deep:var(--plum-deep)}[data-colour=rose]{--cat-soft:var(--rose-soft);--cat-mid:var(--rose-mid);--cat-deep:var(--rose-deep)}[data-colour=slate]{--cat-soft:var(--slate-soft);--cat-mid:var(--slate-mid);--cat-deep:var(--slate-deep)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--ink);font:.9rem/1.55 var(--font);-webkit-font-smoothing:antialiased}img,svg{max-width:100%}a{color:inherit}h1,h2,h3,h4{margin:0;letter-spacing:-.01em;line-height:1.2}h1{font-size:clamp(1.7rem,3.2vw,2.5rem);font-weight:700}h2{font-size:1.3rem}h2,h3{font-weight:600}h3{font-size:1rem}p{margin:0}button,input,select,textarea{color:inherit;font:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dim,.mono{font-family:var(--mono);font-feature-settings:"zero" 1}.dim{font-weight:500;letter-spacing:-.01em;white-space:nowrap}.muted{color:var(--muted)}.small{font-size:.86rem}.tiny{font-size:.78rem}.eyebrow{color:var(--muted);font:600 .68rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.page-heading{display:grid;gap:14px;min-width:0;max-width:46em}.page-heading h1{font-size:clamp(2rem,4vw,2.8rem);letter-spacing:-.03em}.page-lede{color:var(--ink-2);font-size:1.05rem}.stack{--gap:12px;display:grid;gap:var(--gap);align-content:start}.stack,.stack>*{min-width:0}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.row.between{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;white-space:nowrap;clip:rect(0 0 0 0)}.wrap{max-width:var(--layout-max-width);margin:0 auto;padding-inline:var(--layout-gutter)}main{padding-block:28px 64px}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:var(--control-height);padding:9px 16px;color:var(--ink);font-size:.9rem;font-weight:500;white-space:nowrap;text-decoration:none;cursor:pointer;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-2)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn svg{flex:none;width:16px;height:16px}.btn-primary{color:var(--on-accent);font-weight:600;background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--danger);background:transparent;border-color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-lg{min-height:var(--control-height-touch);padding:12px 20px;font-size:1rem}.btn-sm{min-height:32px;padding:5px 10px;font-size:.86rem}.btn-block{width:100%}.btn-pill{border-radius:var(--radius-pill)}.seg{display:inline-flex;flex-wrap:wrap;width:fit-content;gap:2px;padding:3px;background:var(--surface-2);border-radius:var(--radius-sm)}.seg button{padding:6px 11px;color:var(--ink-2);font-size:.86rem;font-weight:500;cursor:pointer;background:transparent;border:0;border-radius:var(--radius-xs)}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{color:var(--ink);background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.12)}.linkbtn{padding:0;color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer;background:none;border:0}.linkbtn-danger{color:var(--danger)}.linkbtn:disabled{cursor:not-allowed;opacity:.5}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-pad{padding:20px}.card-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.card-body{padding:18px 20px}.panel{padding:16px;background:var(--surface-2);border-radius:var(--radius)}.divider{margin:16px 0;border:0;border-top:1px solid var(--line)}.badge{display:inline-flex;gap:5px;align-items:center;padding:2px 8px;color:var(--ink-2);font:500 .68rem/1.6 var(--font);white-space:nowrap;background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-pill)}.badge .dot{width:6px;height:6px;background:currentcolor;border-radius:50%}.badge-ok{color:var(--ok);background:var(--ok-soft)}.badge-warn{color:var(--warn);background:var(--warn-soft)}.badge-danger{color:var(--danger);background:var(--danger-soft)}.badge-info{color:var(--info);background:var(--info-soft)}.badge-accent{color:var(--accent);background:var(--accent-soft)}.badge-outline{background:transparent;border-color:var(--line-strong)}.chip{display:inline-flex;align-items:center;padding:6px 12px;font-size:.86rem;white-space:nowrap;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill)}.chip:hover{border-color:var(--line-strong)}.chip[aria-pressed=true]{color:var(--bg);background:var(--ink);border-color:var(--ink)}.callout{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;color:var(--ink);font-size:.86rem;background:var(--info-soft);border-radius:var(--radius-sm)}.callout svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--info)}.callout-warn{background:var(--warn-soft)}.callout-ok{background:var(--ok-soft)}.callout-danger{background:var(--danger-soft)}.callout-neutral{background:var(--surface-2)}.field{display:grid;gap:6px}.field>label,.label{font-size:.86rem;font-weight:500}.error,.hint{font-size:.78rem}.hint{color:var(--muted)}.error{color:var(--danger)}.input,.select,.textarea{width:100%;min-width:0;min-height:var(--control-height);padding:9px 11px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.textarea{min-height:96px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-1px}.input[aria-invalid=true]{background:var(--danger-soft);border-color:var(--danger)}.input-unit{display:flex;align-items:stretch}.input-unit .input{font-family:var(--mono);border-top-right-radius:0;border-bottom-right-radius:0}.input-unit .unit{display:grid;place-items:center;padding:0 10px;color:var(--muted);font:.86rem var(--mono);background:var(--surface-2);border:1px solid var(--line-strong);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.check input{flex:none;width:16px;height:16px;margin-top:3px;accent-color:var(--accent)}.table-wrap{overflow-x:auto}table{width:100%;font-size:.9rem;border-collapse:collapse}th{padding:10px 12px;color:var(--muted);font:600 .68rem/1.2 var(--mono);text-align:left;text-transform:uppercase;white-space:nowrap;letter-spacing:.05em}td,th{border-bottom:1px solid var(--line)}td{padding:11px 12px;vertical-align:top}tr:last-child td{border-bottom:0}.media{position:relative;max-width:100%;overflow:hidden;background-color:var(--cat-soft);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px;border-radius:var(--radius-sm);aspect-ratio:4/3}.model-media{display:block;height:100%;position:relative;width:100%}.model-media>img,.model-media>video{display:block;height:100%;inset:0;object-fit:contain;position:absolute;width:100%}.model-media>.media-hidden{opacity:0}:is([data-colour] .media,.media[data-colour]){background-image:radial-gradient(color-mix(in srgb,var(--cat-deep) 18%,transparent) 1px,transparent 1.2px);background-size:16px 16px}:is([data-colour] .media,.media[data-colour]) :is(img,video){filter:drop-shadow(0 14px 18px color-mix(in srgb,var(--cat-deep) 22%,transparent))}.media .spin-hint{position:absolute;right:8px;bottom:8px;display:flex;gap:5px;align-items:center;padding:5px 7px;color:var(--ink-2);font:500 .68rem/1 var(--mono);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xs)}.media .spin-icon{font-size:.9rem;line-height:.7}.media .spinning .spin-hint{color:var(--bg);background:var(--ink);border-color:var(--ink)}.model-media[href],.model-media[role=button]{color:inherit;cursor:pointer;outline:none;text-decoration:none}.model-media[href]:focus-visible,.model-media[role=button]:focus-visible{box-shadow:inset var(--focus-ring)}.media .corner{position:absolute;top:8px;left:8px;display:flex;gap:6px}.grid{display:grid;gap:18px}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.sticky{position:sticky;top:84px}.section{margin-top:44px}.section-head{gap:16px;align-items:end;justify-content:space-between;margin-bottom:16px}.breadcrumb,.section-head{display:flex;flex-wrap:wrap}.breadcrumb{gap:6px;margin-bottom:14px;color:var(--muted);font-size:.86rem}.breadcrumb a{text-decoration:none}.breadcrumb a:hover{color:var(--ink);text-decoration:underline}.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:.86rem}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right}.tabs{display:flex;gap:2px;overflow-x:auto;box-shadow:inset 0 -1px 0 var(--line)}.tabs button{padding:10px 14px;color:var(--muted);font-weight:500;white-space:nowrap;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}@media (max-width:900px){.two-col{grid-template-columns:minmax(0,1fr)}.sticky{position:static}}@media (max-width:640px){.wrap{padding-inline:var(--layout-gutter-mobile)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.home-intro{max-width:700px;padding-block:36px 28px}.home-intro h1{max-width:660px}.home-summary{max-width:610px;font-size:1.05rem}.home-preview{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(280px,1fr);max-width:760px;overflow:hidden}.home-preview .media{min-height:190px;border-radius:0}@media (max-width:640px){.home-intro{padding-block:20px 12px}.home-preview{grid-template-columns:1fr}}