@font-face{font-family:'Bitter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bitter-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Bitter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bitter-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bitter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/bitter-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Bitter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/bitter-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bitter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/bitter-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Bitter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/bitter-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/work-sans-latin-ext-300-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Work Sans';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/work-sans-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/work-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/work-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/work-sans-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/work-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Layout: sketchbook pages — paper ground, 12-col container 1200px, sketches 5 cols beside 6 of text; sections alternate paper / paper-alt; night only for footer. Tokens from the capinori design system. */
[hidden]{display:none!important}
:root{
  --paper:#ffffff; --paper-alt:#f4f4f2; --sketch-paper:#ffffff;
  --ink:#111111; --ink-muted:#6b6b6b; --graphite:#2b2b2b; --logo-grey:#b2b2b2;
  --line:#d4d4d2; --line-strong:#8a8a8a;
  --night:#111111; --on-night:#f2f2f0;
  --marker:#ffd84d; --on-marker:#111111;
  --signal:#c2381b; --on-signal:#ffffff;
  --copy-pencil:#2f45a0; --focus:var(--copy-pencil);
  --shadow-offset:4px 4px 0 #111111;
  --logo-filter:none;
  --font-display:"Bitter","Rockwell",Georgia,serif;
  --font-sans:"Work Sans","Helvetica Neue",Arial,sans-serif;
  --container:1200px; --measure:68ch;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#141414; --paper-alt:#1e1e1e; --sketch-paper:#ecebe7;
  --ink:#f2f2f0; --ink-muted:#a0a0a0; --line:#2e2e2e; --line-strong:#6b6b6b;
  --night:#0a0a0a; --signal:#ff7a52; --on-signal:#111111; --copy-pencil:#97a6f5;
  --shadow-offset:4px 4px 0 #f2f2f0; --logo-filter:invert(1); color-scheme:dark }}
:root[data-theme="dark"]{
  --paper:#141414; --paper-alt:#1e1e1e; --sketch-paper:#ecebe7;
  --ink:#f2f2f0; --ink-muted:#a0a0a0; --line:#2e2e2e; --line-strong:#6b6b6b;
  --night:#0a0a0a; --signal:#ff7a52; --on-signal:#111111; --copy-pencil:#97a6f5;
  --shadow-offset:4px 4px 0 #f2f2f0; --logo-filter:invert(1); color-scheme:dark }

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:28px;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
img{max-width:100%}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;text-wrap:balance;color:var(--ink);overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
body{overflow-wrap:break-word}
.d-xl{font-size:72px;line-height:76px;font-weight:700;letter-spacing:-.01em}
.d-l{font-size:52px;line-height:58px;font-weight:700;letter-spacing:-.01em}
h1,.h1{font-size:40px;line-height:48px;font-weight:700}
h2,.h2{font-size:30px;line-height:38px;font-weight:600}
h3,.h3{font-size:22px;line-height:30px;font-weight:600}
p{margin:0}
.lead{font-size:22px;line-height:34px;font-weight:300;max-width:var(--measure)}
.body-s{font-size:15px;line-height:24px}
.muted{color:var(--ink-muted)}
.label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted)}
.prose{max-width:var(--measure);display:flex;flex-direction:column;gap:16px}
@media (max-width:720px){
  .d-xl{font-size:44px;line-height:50px}.d-l{font-size:36px;line-height:42px}
  h1,.h1{font-size:32px;line-height:40px}h2,.h2{font-size:26px;line-height:34px}
  .lead{font-size:19px;line-height:30px}
}

/* marker, links, buttons */
.mark{background:var(--marker);color:var(--on-marker);padding:0 4px;border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.mark-u{background:linear-gradient(transparent 58%,var(--marker) 58%,var(--marker) 92%,transparent 92%);padding:0 2px}
:root[data-theme="dark"] .mark-u{color:var(--on-marker);background:var(--marker)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mark-u{color:var(--on-marker);background:var(--marker)}}
.link{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color 150ms ease-out}
.link:hover{color:var(--copy-pencil)}
.btn{font-family:var(--font-sans);font-size:15px;line-height:20px;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:var(--paper);text-decoration:none;cursor:pointer;transition:transform 150ms ease-out,box-shadow 150ms ease-out,color 150ms ease-out}
.btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-offset)}
.btn--signal{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--outline:hover{border-color:var(--ink)}
.btn--text{background:transparent;border-color:transparent;color:var(--ink);padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:4px}
.btn--text:hover{transform:none;box-shadow:none;color:var(--copy-pencil)}
.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}

/* placeholders: blue copying pencil = annotation */
.ph{color:var(--copy-pencil);background:color-mix(in srgb,var(--copy-pencil) 8%,transparent);border-bottom:1px dashed var(--copy-pencil);padding:0 3px;font-style:normal}
.ph-box{border:1.5px dashed var(--copy-pencil);color:var(--copy-pencil);padding:16px 20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:24px;background:color-mix(in srgb,var(--copy-pencil) 4%,transparent)}
.ph-box b{font-size:11px;line-height:16px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.ph-img{aspect-ratio:16/9;max-width:100%;border:1.5px dashed var(--copy-pencil);display:grid;place-items:center;color:var(--copy-pencil);font-size:13px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--copy-pencil) 7%,transparent) 10px 11px)}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.head-in{max-width:var(--container);margin:0 auto;display:flex;align-items:center;gap:24px;padding-block:14px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:721px){.head-in{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.logo{display:flex;flex-direction:column;align-items:flex-end;gap:5px;width:128px;text-decoration:none;color:var(--ink);flex:none}
.logo img{display:block;width:100%;height:auto;filter:var(--logo-filter)}
.logo span{font-weight:300;font-size:11px;line-height:12px;letter-spacing:.01em;white-space:nowrap}
.foot .logo{width:170px}.foot .logo span{font-size:14px;line-height:16px}
.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.nav li{position:relative}
.nav-a{display:block;font-size:15px;line-height:20px;font-weight:600;text-decoration:none;padding:8px 14px;color:var(--ink);transition:color 150ms ease-out}
.nav-a:hover{color:var(--copy-pencil)}
.nav-a[aria-current="true"] span{background:linear-gradient(transparent 60%,var(--marker) 60%)}
:root[data-theme="dark"] .nav-a[aria-current="true"] span{background:var(--marker);color:var(--on-marker);padding:0 3px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav-a[aria-current="true"] span{background:var(--marker);color:var(--on-marker);padding:0 3px}}
.sub{position:absolute;left:0;top:100%;min-width:290px;background:var(--paper);border:1px solid var(--ink);padding:10px 0;display:none;flex-direction:column;box-shadow:var(--shadow-offset)}
.nav li:hover>.sub,.nav li:focus-within>.sub{display:flex}
.sub a{padding:7px 18px;font-size:15px;line-height:22px;text-decoration:none;color:var(--ink)}
.sub a:hover{color:var(--copy-pencil);background:var(--paper-alt)}
.sub .sub-h{padding:10px 18px 4px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink-muted)}
.head-cta{margin-left:14px;white-space:nowrap}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line-strong);border-radius:2px;font:600 15px/20px var(--font-sans);color:var(--ink);padding:9px 14px;cursor:pointer}
@media (max-width:1000px){.nav>ul,.head-cta .long{display:none}.head-cta .short{display:inline}.menu-btn{display:inline-flex}.nav{margin-left:0}.head-cta{margin-left:0}}
@media (min-width:1001px){.head-cta .short{display:none}}
@media (max-width:1000px){.nav{display:none}.head-in{gap:12px}.head-cta{margin-left:auto}.menu-btn{margin-left:0}}
@media (max-width:480px){.logo{width:112px}.logo span{font-size:10px;line-height:11px}.head-cta,.menu-btn{padding:9px 12px}}
.mnav{display:none;border-top:1px solid var(--line);background:var(--paper);height:calc(100dvh - 72px - env(safe-area-inset-top,0px));overflow:auto}
.mnav-in{display:flex!important;flex-direction:column;gap:0!important;padding-block:8px 32px!important}
.mgroup{border-bottom:1px solid var(--line);padding:18px 0}
.mtop{display:block;font:600 26px/32px var(--font-display);text-decoration:none;color:var(--ink)}
.mtop[aria-current="true"]{text-decoration:underline;text-decoration-color:var(--marker);text-decoration-thickness:6px;text-underline-offset:-1px;text-decoration-skip-ink:none}
.msub{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px}
.msub a{font-size:15px;line-height:22px;color:var(--ink-muted);text-decoration:none}
.msub a[aria-current="page"]{color:var(--ink);font-weight:600}
.mfoot{padding-top:24px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.mb-ico{width:16px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative;margin-right:8px;transition:transform 150ms ease-out}
.menu-btn[aria-expanded="true"] .mb-ico{border:0}
.menu-btn[aria-expanded="true"] .mb-ico::before,.menu-btn[aria-expanded="true"] .mb-ico::after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1.5px solid currentColor;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .mb-ico::after{transform:rotate(-45deg)}
.menu-btn{align-items:center}
body.menu-open{overflow:hidden}
/* section sub-navigation */
.subnav{border-top:1px solid var(--line);background:var(--paper)}
.subnav-in{max-width:var(--container);margin:0 auto;display:flex;align-items:center;gap:6px 26px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;padding-block:11px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.subnav-in::-webkit-scrollbar{display:none}
@media (min-width:721px){.subnav-in{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.subnav .sn-t{font-size:11px;line-height:16px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink-muted);padding-right:4px;border-right:1px solid var(--line);padding-right:22px}
.subnav a{font-size:14px;line-height:20px;text-decoration:none;color:var(--ink-muted);padding:2px 0;transition:color 150ms ease-out}
.subnav a:hover{color:var(--copy-pencil)}
.subnav a[aria-current="page"]{color:var(--ink);font-weight:600;background:linear-gradient(transparent 62%,var(--marker) 62%)}
:root[data-theme="dark"] .subnav a[aria-current="page"]{color:var(--on-marker);background:var(--marker);padding:2px 4px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .subnav a[aria-current="page"]{color:var(--on-marker);background:var(--marker);padding:2px 4px}}
.subnav .url,.crumbs .url{margin-left:auto;padding-left:24px;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;color:var(--ink-muted)}
@media (max-width:900px){.subnav .url{display:none}}
.crumbs{border-top:1px solid var(--line)}
.sel{user-select:all}
.mnav.open{display:block}
.mnav-in{max-width:var(--container);margin:0 auto;padding-block:8px 24px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:4px}
.mnav details{border-bottom:1px solid var(--line)}
.mnav summary,.mnav .solo{font:600 18px/26px var(--font-display);padding:12px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;text-decoration:none;color:var(--ink)}
.mnav summary::after{content:"+";font-family:var(--font-sans);font-weight:400}
.mnav details[open] summary::after{content:"–"}
.mnav details a{display:block;padding:6px 0 6px 12px;text-decoration:none;font-size:16px}
.mnav .solo{border-bottom:1px solid var(--line)}

/* url strip */
.crumbs{background:var(--paper)}
.crumbs-in{max-width:var(--container);margin:0 auto;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;line-height:20px;color:var(--ink-muted)}
@media (min-width:721px){.crumbs-in{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.crumbs a{text-decoration:none;color:var(--ink-muted)}
.crumbs a:hover{color:var(--copy-pencil)}
.crumbs .url{margin-left:auto;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;letter-spacing:0}

/* bands */
.band{background:var(--paper)}
.band.alt{background:var(--paper-alt)}
.band.night{background:var(--night);color:var(--on-night)}
.band.night h2,.band.night h3{color:var(--on-night)}
.wrap{max-width:var(--container);margin:0 auto;padding-block:96px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:48px}
@media (min-width:721px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
@media (max-width:720px){.wrap{padding-block:64px;gap:36px}}
.wrap.tight{padding-block:64px}
.sec-head{display:flex;flex-direction:column;gap:12px;max-width:var(--measure)}
.sec-head .lead{font-size:19px;line-height:30px}

/* page head (subpages) */
.ph-grid,.hero{display:grid;grid-template-columns:6fr 1fr 5fr;align-items:center}
.ph-grid>.txt,.hero>.txt{grid-column:1;display:flex;flex-direction:column;gap:20px;min-width:0}
.ph-grid>figure,.hero>figure{grid-column:3}
.hero .wrap{padding-top:112px}
@media (max-width:900px){.ph-grid,.hero{grid-template-columns:1fr;gap:36px}.ph-grid>figure,.hero>figure{grid-column:1;max-width:480px}}
.sketch{margin:0}
.sketch .sheet{background:var(--sketch-paper);padding:16px}
:root[data-theme="dark"] .sketch .sheet{border:1px solid var(--line)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sketch .sheet{border:1px solid var(--line)}}
.sketch img{display:block;width:100%;height:auto;aspect-ratio:640/420}
.sketch figcaption{font-size:15px;line-height:24px;color:var(--ink-muted);margin-top:8px}

/* grids & cards */
.g2,.g3,.g4{display:grid;gap:32px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr;gap:24px}}
.card{display:flex;flex-direction:column;gap:12px;padding:32px;background:var(--paper);border:1px solid var(--ink);color:var(--ink);text-decoration:none;transition:transform 150ms ease-out,box-shadow 150ms ease-out;min-width:0}
.band.alt .card{background:var(--paper)}
a.card:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-offset)}
.card .c-sketch{background:var(--sketch-paper);margin:-32px -32px 12px;padding:12px;border-bottom:1px solid var(--ink)}
.card .c-sketch img{display:block;width:100%;height:150px;object-fit:contain}
.card .more{font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px;margin-top:auto;padding-top:8px}
.card p{font-size:15px;line-height:24px}
@media (max-width:640px){.card{padding:24px}.card .c-sketch{margin:-24px -24px 8px}}
.plain{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--ink)}
.plain p{font-size:15px;line-height:24px}

/* definition lists */
.dl{list-style:none;margin:0;padding:0;display:grid;gap:0;max-width:880px}
.dl li{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:24px;padding:18px 0;border-top:1px solid var(--line)}
.dl li:last-child{border-bottom:1px solid var(--line)}
.dl b{font-family:var(--font-display);font-weight:600;font-size:19px;line-height:28px}
@media (max-width:640px){.dl li{grid-template-columns:1fr;gap:4px}}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:var(--measure)}
.ticks li{padding-left:28px;position:relative}
.ticks li::before{content:"→";position:absolute;left:0;color:var(--ink-muted)}
.split{display:grid;grid-template-columns:5fr 1fr 6fr;align-items:start}
.split>:first-child{grid-column:1}.split>:last-child{grid-column:3;min-width:0}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:24px}.split>:last-child{grid-column:1}}

/* tables */
.tbl-wrap{overflow-x:auto;border-top:1px solid var(--ink)}
table{border-collapse:collapse;width:100%;font-size:15px;line-height:24px;min-width:560px}
th,td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--line)}
th{font-size:12px;line-height:16px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--ink-muted)}
td:first-child{font-weight:600}
.col-hl{background:color-mix(in srgb,var(--marker) 26%,transparent);padding-left:12px}
th.col-hl{color:var(--on-marker);background:var(--marker)}

/* phase model */
.model{display:grid;grid-template-columns:1fr 64px 1fr 64px 1fr;align-items:stretch}
.entry{grid-column:1/-1;display:grid;grid-template-columns:1fr 64px 1fr 64px 1fr;margin-bottom:10px}
.entry span{display:flex;flex-direction:column;align-items:center;font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--ink-muted);gap:2px}
.entry span::after{content:"↓";font-size:18px;color:var(--ink)}
.entry span:nth-child(2){grid-column:3}.entry span:nth-child(3){grid-column:5}
.phase{border:1px solid var(--ink);background:var(--paper);padding:28px;display:flex;flex-direction:column;gap:14px;min-width:0}
.phase .num{font:700 52px/52px var(--font-display);color:var(--ink)}
.phase .q{font-size:15px;line-height:24px;color:var(--ink-muted)}
.phase .res{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;font-size:15px;line-height:24px}
.phase .res b{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
.phase.cur{box-shadow:inset 0 6px 0 var(--marker)}
.gate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink);text-align:center}
.gate .dia{width:22px;height:22px;border:1.5px solid var(--ink);transform:rotate(45deg);background:var(--paper)}
.gate small{font-size:10px;line-height:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink-muted);writing-mode:vertical-rl;transform:rotate(180deg)}
.gate .arr{font-size:20px;line-height:20px}
@media (max-width:900px){
  .model,.entry{grid-template-columns:1fr}.entry{display:none}
  .gate{flex-direction:row;padding:12px 0}.gate small{writing-mode:horizontal-tb;transform:none}
  .gate .arr{transform:rotate(90deg)}
}

/* KI steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;counter-reset:s}
.steps li{position:relative;padding:0 20px 0 0;display:flex;flex-direction:column;gap:10px;min-width:0}
.steps li::before{counter-increment:s;content:counter(s);width:44px;height:44px;border:1.5px solid var(--ink);border-radius:999px;display:grid;place-items:center;font:700 20px/1 var(--font-display);background:var(--paper);position:relative;z-index:1}
.steps li::after{content:"";position:absolute;top:22px;left:44px;right:0;border-top:1.5px dashed var(--line-strong)}
.steps li:last-child::after{display:none}
.steps li.key::before{background:var(--marker);color:var(--on-marker);border-color:var(--ink)}
.steps h3{font-size:20px;line-height:28px}
.steps p{font-size:15px;line-height:24px}
.steps .res{font-size:14px;line-height:22px;color:var(--ink-muted);border-top:1px solid var(--line);padding-top:10px}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:28px}.steps li{padding:0 0 0 64px}.steps li::before{position:absolute;left:0;top:0}.steps li::after{left:21px;top:48px;bottom:-28px;right:auto;border-top:0;border-left:1.5px dashed var(--line-strong)}}

/* chips / filters */
.filters{display:flex;flex-direction:column;gap:14px}
.fgroup{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fgroup .label{min-width:150px}
.chip{font:600 14px/20px var(--font-sans);padding:7px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tag{display:inline-block;font-size:11px;line-height:16px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--ink-muted)}
.empty{border:1px dashed var(--line-strong);padding:32px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}

/* usecase card fields */
.fields{display:grid;gap:8px;margin:4px 0 0;font-size:14px;line-height:22px}
.fields div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding-top:8px}
.fields dt{font-weight:600}
.fields dd{margin:0}

/* logos strip */
.logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.logos .ph-box{align-items:center;justify-content:center;text-align:center;min-height:88px}
@media (max-width:800px){.logos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* quote */
.quote{margin:0;max-width:820px;display:flex;flex-direction:column;gap:16px}
.quote p{font:400 30px/40px var(--font-display)}
.quote p::before{content:"„";color:var(--signal);font-weight:700}
.quote p::after{content:"“";color:var(--signal);font-weight:700}
@media (max-width:720px){.quote p{font-size:24px;line-height:34px}}

/* forms */
.form{display:grid;gap:20px;max-width:640px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label,.field .flabel{font-size:15px;line-height:24px;font-weight:600}
.field label .opt{font-weight:400;color:var(--ink-muted)}
.input{font:inherit;font-size:17px;line-height:28px;color:var(--ink);background:var(--paper-alt);border:0;border-bottom:1px solid var(--line-strong);border-radius:2px 2px 0 0;padding:8px 12px;width:100%}
.band.alt .input{background:var(--paper)}
.input:hover{border-bottom-color:var(--ink)}
textarea.input{min-height:140px;resize:vertical}
.help{font-size:14px;line-height:22px;color:var(--ink-muted)}
.field.err .input{border-bottom:2px solid var(--signal)}
.field .errmsg{display:none;font-size:14px;line-height:22px;color:var(--signal)}
.field.err .errmsg{display:block}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:24px}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--ink)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:640px){.f2{grid-template-columns:1fr}}
.ok{border:1px solid var(--ink);padding:20px 24px;display:flex;gap:14px;align-items:flex-start;max-width:640px}
.ok::before{content:"✓";font:700 20px/28px var(--font-display);background:var(--marker);color:var(--on-marker);width:28px;height:28px;display:grid;place-items:center;flex:none}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.tile{text-align:left;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);padding:20px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:transform 150ms ease-out,box-shadow 150ms ease-out}
.tile:hover{border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:var(--shadow-offset)}
.tile b{font:600 20px/28px var(--font-display)}
.tile span{font-size:15px;line-height:24px;color:var(--ink-muted)}
.tile[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 6px 0 var(--marker)}

/* capinorium */
.feat{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:start;text-decoration:none;color:var(--ink);border-top:1px solid var(--ink);padding-top:24px}
.feat:hover h2{color:var(--copy-pencil)}
@media (max-width:900px){.feat{grid-template-columns:1fr}}
.acard{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--ink);border-top:1px solid var(--ink);padding-top:16px;min-width:0}
.acard h3{font-size:20px;line-height:28px;transition:color 150ms ease-out}
.acard:hover h3{color:var(--copy-pencil)}
.acard .ph-img{aspect-ratio:3/2}
.acard p{font-size:15px;line-height:24px;color:var(--ink-muted)}
.meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;line-height:20px;color:var(--ink-muted)}

/* article */
.art-head{display:flex;flex-direction:column;gap:20px;max-width:880px}
.art-head h1{font-size:44px;line-height:52px}
@media (max-width:720px){.art-head h1{font-size:30px;line-height:38px}}
.art-grid{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:64px;align-items:start}
@media (max-width:1000px){.art-grid{grid-template-columns:1fr;gap:24px}.toc{display:none}}
.toc{position:sticky;top:110px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:20px}
.toc a{text-decoration:none;color:var(--ink-muted);padding:4px 0 4px 12px;border-left:1px solid var(--line)}
.toc a:hover{color:var(--copy-pencil);border-left-color:var(--copy-pencil)}
.art{max-width:var(--measure);display:flex;flex-direction:column;gap:20px;min-width:0}
.art h2{font-size:28px;line-height:36px;margin-top:28px;scroll-margin-top:110px}
.art p,.art li{font-size:18px;line-height:30px}
.art .answer{font-size:21px;line-height:33px;font-weight:300;border-left:3px solid var(--marker);padding-left:20px}
.art ul{margin:0;padding-left:22px;display:grid;gap:8px}
.art a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--line-strong)}
.art a:hover{color:var(--copy-pencil);text-decoration-color:currentColor}
.art .tbl-wrap table{font-size:15px}
.faq{display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 0;font:600 19px/28px var(--font-display)}
.faq summary::after{content:"+";font:400 22px/28px var(--font-sans)}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 0 18px;font-size:16px;line-height:26px;max-width:var(--measure)}
.faq a{text-decoration:underline;text-underline-offset:3px}
.sources ul{font-size:14px!important;line-height:22px}
.sources li{font-size:14px!important;line-height:22px!important}
.author{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;border:1px solid var(--line-strong);padding:20px;align-items:center}
.byline{display:flex;align-items:center;gap:12px}.byline img{width:44px;height:44px;border-radius:999px;object-fit:cover;filter:grayscale(1)}
.author .av-img{width:72px;height:72px;object-fit:cover;filter:grayscale(1);display:block}
.author .av{width:72px;height:72px;border:1.5px dashed var(--copy-pencil);display:grid;place-items:center;color:var(--copy-pencil);font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-align:center}

/* footer */
.foot{background:var(--night);color:var(--on-night)}
.foot .wrap{padding-block:64px 32px;gap:40px}
.foot-g{display:grid;grid-template-columns:2fr repeat(5,minmax(0,1fr));gap:32px}
@media (max-width:1000px){.foot-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.foot h4{font:600 12px/16px var(--font-sans);letter-spacing:.2em;text-transform:uppercase;margin:0 0 12px;color:var(--on-night)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px;line-height:22px}
.foot a{color:var(--on-night);text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:3px}
.foot .logo{color:var(--on-night)}
.foot .logo img{filter:none}
.foot-nl{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid #3a3a3a;border-bottom:1px solid #3a3a3a;padding-block:20px}
.foot-legal{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:13px;line-height:20px;opacity:.85}
.foot .ph{color:#b9c3ff;border-bottom-color:#b9c3ff;background:transparent}
.foot a.btn--light,.btn--light{background:var(--on-night);color:#111;border-color:var(--on-night)}
@media (max-width:640px){.crumbs .url{display:none}}
.btn--light:hover{box-shadow:4px 4px 0 var(--marker)}

.page[hidden]{display:none!important}
.notice{border:1px solid var(--line-strong);padding:16px 20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:24px;max-width:880px}
.notice b{font-size:11px;line-height:16px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink-muted)}
.legal{max-width:var(--measure);display:flex;flex-direction:column;gap:14px}
.legal h2{font-size:22px;line-height:30px;margin-top:20px}
.legal h3{font-size:18px;line-height:26px;margin-top:6px}
.legal p,.legal li{font-size:16px;line-height:26px}
.legal ul{margin:0;padding-left:22px;display:grid;gap:4px}
.legal .caps{font-size:14px;line-height:23px;letter-spacing:.01em}
.person{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px;align-items:start;max-width:980px}
.person img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1);display:block}
@media (max-width:720px){.person{grid-template-columns:1fr;gap:24px}.person img{max-width:360px}}
.stack{display:flex;flex-direction:column;gap:20px}
.stack-s{display:flex;flex-direction:column;gap:10px}
.note{font-size:14px;line-height:22px;color:var(--ink-muted)}
.anchor-row{display:flex;flex-wrap:wrap;gap:10px 28px}
.anchor-row a{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.anchor-row a:hover{color:var(--copy-pencil)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* language switcher */
.lang{position:relative;flex:none}
.lang summary{list-style:none;cursor:pointer;font:600 14px/20px var(--font-sans);padding:8px 10px;border:1px solid var(--line-strong);border-radius:2px;display:flex;align-items:center;gap:6px;color:var(--ink)}
.lang summary::-webkit-details-marker{display:none}
.lang summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.lang[open] summary{border-color:var(--ink)}
.lang ul{position:absolute;right:0;top:calc(100% + 6px);list-style:none;margin:0;padding:6px 0;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow-offset);min-width:170px;z-index:60}
.lang a{display:flex;justify-content:space-between;gap:16px;padding:7px 14px;font-size:15px;line-height:22px;text-decoration:none;color:var(--ink)}
.lang a:hover{background:var(--paper-alt);color:var(--copy-pencil)}
.lang a[aria-current="true"]{font-weight:600}
.lang a span{color:var(--ink-muted);font-size:12px;letter-spacing:.1em}
.mlang{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:15px}
.mlang a{text-decoration:none;color:var(--ink-muted)}.mlang a[aria-current="true"]{color:var(--ink);font-weight:600}
@media (max-width:1000px){.head-in .lang{display:none}}
/* form extras */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.errbox{color:var(--signal);font-size:15px;line-height:24px}
.btn[disabled]{opacity:.6;cursor:wait;transform:none;box-shadow:none}
/* consent banner */
.consent{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:560px;background:var(--paper);color:var(--ink);border:1px solid var(--ink);box-shadow:var(--shadow-offset);padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.consent h2{font-size:20px;line-height:28px}
.consent p{font-size:15px;line-height:24px}
.consent .row{display:flex;flex-wrap:wrap;gap:10px}
.consent .row .btn{flex:1 1 160px;justify-content:center}
.consent .opts{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.consent label{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:22px}
.consent label input{width:18px;height:18px;margin-top:2px;accent-color:var(--ink)}
.consent small{display:block;color:var(--ink-muted);font-size:13px;line-height:19px}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none}
.linkbtn:hover{text-decoration:underline;text-underline-offset:3px}
.art-meta-date{white-space:nowrap}
