/* IAM-Studio — design system
   Palette taken directly from the wordmark: I = red, A = blue, M = gold, "Studio" = ink.
   Neutrals are biased toward the ink navy so nothing reads as default grey.
   Type: Newsreader (the logo's serif) · Public Sans (body) · IBM Plex Mono (data) */

:root{
  /* the wordmark triad */
  --red:#D93B3C;
  --blue:#2E95CE;
  --gold:#E5A50F;
  --ink:#1A1A2E;

  /* derived working tones */
  --blue-deep:#1D6E9C;
  --gold-deep:#8F6A05;
  --teal:#137F68;

  --paper:#FAFAFB;
  --surface:#FFFFFF;
  --surface-2:#F1F2F7;
  --ink-2:#4A4A63;
  --ink-3:#7A7A93;
  --rule:#E3E4EC;
  --rule-soft:#EDEEF4;

  --band-bg:#1A1A2E;
  --on-band:#F4F4F8;
  --band-accent:#6FC0EA;
  --btn-bg:#1D6E9C;
  --btn-fg:#FFFFFF;

  --logo-word:#1A1A2E;
  --logo-rule:#D5D7E0;

  --shadow:0 1px 2px rgba(26,26,46,.04), 0 10px 32px -18px rgba(26,26,46,.24);

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --maxw:1080px;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --red:#F4605F; --blue:#5CB4E4; --gold:#F0BE3C; --ink:#EDEFF6;
    --blue-deep:#7CC7EE; --gold-deep:#F0BE3C; --teal:#38B597;
    --paper:#101021; --surface:#191A2D; --surface-2:#22233A;
    --ink-2:#B6B9CC; --ink-3:#868AA4;
    --rule:#2C2E45; --rule-soft:#232438;
    --band-bg:#191A2D; --on-band:#EDEFF6; --band-accent:#5CB4E4;
    --btn-bg:#5CB4E4; --btn-fg:#0D0D1B;
    --logo-word:#EDEFF6; --logo-rule:#343650;
    --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 32px -18px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --red:#F4605F; --blue:#5CB4E4; --gold:#F0BE3C; --ink:#EDEFF6;
  --blue-deep:#7CC7EE; --gold-deep:#F0BE3C; --teal:#38B597;
  --paper:#101021; --surface:#191A2D; --surface-2:#22233A;
  --ink-2:#B6B9CC; --ink-3:#868AA4;
  --rule:#2C2E45; --rule-soft:#232438;
  --band-bg:#191A2D; --on-band:#EDEFF6; --band-accent:#5CB4E4;
  --btn-bg:#5CB4E4; --btn-fg:#0D0D1B;
  --logo-word:#EDEFF6; --logo-rule:#343650;
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 32px -18px rgba(0,0,0,.8);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
     font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance;margin:0}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:22px}

/* ── the wordmark ────────────────────────────────────── */
.logo{display:block;height:28px;width:auto}
.logo .lw{fill:var(--logo-word)}
.logo .lr{stroke:var(--logo-rule)}
.brand{display:inline-flex;align-items:center;text-decoration:none}

/* the triad rule — the wordmark's three colors, reused as the structural marker */
.triad{display:flex;gap:3px;width:52px;flex:none}
.triad i{height:3px;flex:1;border-radius:2px}
.triad i:nth-child(1){background:var(--red)}
.triad i:nth-child(2){background:var(--blue)}
.triad i:nth-child(3){background:var(--gold)}

.eyebrow{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.16em;
         text-transform:uppercase;color:var(--ink-3);margin:0}

/* ── nav ─────────────────────────────────────────────── */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:color-mix(in srgb,var(--paper) 90%,transparent);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--rule-soft)}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:14px 22px;display:flex;
        align-items:center;gap:20px;position:relative}
.nav-links{display:flex;gap:26px;margin-left:auto;align-items:center}
.nav-links a{font-size:14px;text-decoration:none;color:var(--ink-2);font-weight:500}
.nav-links a:hover{color:var(--blue-deep)}
.langtog{display:flex;border:1px solid var(--rule);border-radius:999px;overflow:hidden;
         font-family:var(--mono);font-size:11px;font-weight:600}
.langtog button{background:transparent;border:0;color:var(--ink-3);padding:5px 10px;cursor:pointer;font:inherit}
.langtog button[aria-pressed="true"]{background:var(--btn-bg);color:var(--btn-fg)}
.menutog{margin-left:auto;background:transparent;border:1px solid var(--rule);border-radius:7px;
         padding:7px 11px;cursor:pointer;color:var(--ink);font-family:var(--mono);font-size:11px;
         letter-spacing:.1em}
.navcta{display:none}
@media(min-width:980px){.navcta{display:inline-flex}.menutog{display:none}}
@media(max-width:979px){
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);
    border-bottom:1px solid var(--rule);flex-direction:column;align-items:flex-start;gap:0;padding:10px 22px 18px}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 0;width:100%;border-bottom:1px solid var(--rule-soft)}
  .nav-links .langtog{margin-top:14px}
}

/* ── buttons ─────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:12px 20px;
     font-weight:600;font-size:14px;text-decoration:none;border:1px solid transparent;
     cursor:pointer;font-family:var(--sans);transition:transform .15s,border-color .15s}
.btn-primary{background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-ghost{border-color:var(--rule);color:var(--ink);background:var(--surface)}
.btn-ghost:hover{border-color:var(--blue)}

/* ── sections ────────────────────────────────────────── */
section{padding-block:92px}
.sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:40px;max-width:60ch}
.sec-head h2{font-family:var(--serif);font-size:clamp(29px,4.2vw,42px);font-weight:500;
             letter-spacing:-.02em;line-height:1.12}
.sec-head p{color:var(--ink-2);margin:0;font-size:17px}

/* ── hero ────────────────────────────────────────────── */
.hero{padding-block:64px 78px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:44px;align-items:center}
@media(min-width:980px){.hero-grid{grid-template-columns:1.02fr .98fr;gap:60px}}
.hero h1{font-family:var(--serif);font-size:clamp(38px,6vw,62px);line-height:1.04;
         font-weight:500;letter-spacing:-.03em;margin:22px 0 22px}
.hero h1 em{font-style:italic;color:var(--blue-deep)}
.hero-sub{font-size:19px;color:var(--ink-2);max-width:46ch;margin:0 0 32px;line-height:1.55}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.credbar{margin-top:44px;padding-top:20px;border-top:1px solid var(--rule);
         display:flex;flex-wrap:wrap;gap:9px 28px}
.credbar span{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em}

/* ── DAG figure ──────────────────────────────────────── */
figure.dag{margin:0;background:var(--surface);border:1px solid var(--rule);border-radius:14px;
           padding:24px 20px 18px;box-shadow:var(--shadow)}
figure.dag svg{width:100%;height:auto;max-width:100%;display:block}
.dag-node rect{fill:var(--surface-2);stroke:var(--rule);stroke-width:1.5}
.dag-node .nlab{font-family:var(--mono);font-size:10px;fill:var(--ink);font-weight:500}
.dag-node .role{font-family:var(--mono);font-size:7.5px;fill:var(--ink-3);letter-spacing:.1em}
.n-exp rect{stroke:var(--blue);fill:color-mix(in srgb,var(--blue) 12%,var(--surface))}
.n-out rect{stroke:var(--red);fill:color-mix(in srgb,var(--red) 10%,var(--surface))}
.n-conf rect{stroke:var(--gold);fill:color-mix(in srgb,var(--gold) 15%,var(--surface))}
.n-med rect{stroke:var(--ink-3);stroke-dasharray:4 3}
.edge{stroke:var(--ink-3);stroke-width:1.6;fill:none}
.edge-eff{stroke:var(--blue);stroke-width:2.4;fill:none}
.edge-back{stroke:var(--gold);stroke-width:1.8;stroke-dasharray:5 4;fill:none}
.edge-lab{font-family:var(--mono);font-size:8.5px;fill:var(--ink-3);letter-spacing:.08em}
figcaption{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule-soft);
           font-size:13.5px;color:var(--ink-2);line-height:1.55}
figcaption code{font-family:var(--mono);font-size:12px;background:var(--surface-2);
                padding:1px 5px;border-radius:4px;color:var(--ink)}

/* ── three-up claim strip ────────────────────────────── */
.claims{display:grid;grid-template-columns:1fr;gap:34px}
@media(min-width:800px){.claims{grid-template-columns:repeat(3,1fr);gap:44px}}
.claim h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:16px 0 8px;letter-spacing:-.015em}
.claim p{margin:0;font-size:15px;color:var(--ink-2)}
.claim .triad{width:40px}

/* ── shipped work ────────────────────────────────────── */
.grid-work{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:700px){.grid-work{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid-work{grid-template-columns:repeat(3,1fr)}}
article.work{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:22px;
             display:flex;flex-direction:column;gap:12px;transition:border-color .2s,transform .2s}
article.work:hover{border-color:var(--blue);transform:translateY(-2px)}
.work-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.work h3{font-size:17px;font-weight:700;letter-spacing:-.012em;margin:0}
.chip{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;padding:3px 7px;
      border-radius:4px;white-space:nowrap;text-transform:uppercase}
.chip-live{background:color-mix(in srgb,var(--teal) 15%,transparent);color:var(--teal)}
.chip-oss{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue-deep)}
.work .what{font-size:14px;color:var(--ink-2);margin:0;flex:1;line-height:1.5}
.metrics{display:flex;flex-wrap:wrap;gap:5px}
.metrics b{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--ink-2);
           background:var(--surface-2);border-radius:4px;padding:3px 7px;font-variant-numeric:tabular-nums}
.work-links{display:flex;gap:14px;padding-top:12px;border-top:1px solid var(--rule-soft);flex-wrap:wrap}
.work-links a{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--blue-deep);
              text-decoration:none;letter-spacing:.04em}
.work-links a:hover{text-decoration:underline}

/* ── incubator ───────────────────────────────────────── */
.inc-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.inc-row{display:grid;grid-template-columns:1fr;gap:8px;padding:22px 0;border-bottom:1px solid var(--rule-soft)}
@media(min-width:820px){.inc-row{grid-template-columns:150px 1fr 1fr;gap:28px;align-items:baseline}}
.inc-stage{display:flex;align-items:center;gap:8px}
.inc-stage i{width:7px;height:7px;border-radius:50%;display:block;flex:none}
.inc-stage span{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;
                text-transform:uppercase;color:var(--ink-3)}
.s-research i{background:var(--gold)}
.s-grant i{background:var(--red)}
.s-pilot i{background:var(--blue)}
.s-build i{background:var(--ink-3)}
.inc-row h3{font-size:16.5px;font-weight:700;margin:0 0 4px;letter-spacing:-.012em}
.inc-row h3 span{font-weight:400;color:var(--ink-3);font-size:14px}
.inc-row p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.5}
.caveat{font-family:var(--mono);font-size:11px;line-height:1.55;color:var(--ink-3);
        border-left:2px solid var(--gold);padding-left:11px}

/* ── consulting band ─────────────────────────────────── */
.band{background:var(--band-bg);color:var(--on-band);border-radius:18px;padding:48px 26px}
@media(min-width:840px){.band{padding:62px 52px}}
.band h2{font-family:var(--serif);font-size:clamp(28px,3.8vw,40px);font-weight:500;
         letter-spacing:-.024em;line-height:1.12;margin:16px 0 40px}
.tracks{display:grid;grid-template-columns:1fr;gap:1px;
        background:color-mix(in srgb,var(--on-band) 16%,transparent);
        border-radius:12px;overflow:hidden;margin-bottom:40px}
@media(min-width:840px){.tracks{grid-template-columns:repeat(3,1fr)}}
.track{background:var(--band-bg);padding:26px 24px}
.track h3{font-size:16.5px;font-weight:700;margin:0 0 14px;letter-spacing:-.008em}
.track ul{margin:0;padding-left:17px;font-size:13.5px;line-height:1.7;
          color:color-mix(in srgb,var(--on-band) 72%,transparent)}
.track li{margin-bottom:4px}
.steps{display:grid;grid-template-columns:1fr;gap:18px;padding-top:34px;
       border-top:1px solid color-mix(in srgb,var(--on-band) 18%,transparent)}
@media(min-width:780px){.steps{grid-template-columns:repeat(3,1fr);gap:32px}}
.steps h4{font-size:14.5px;margin:6px 0 5px;font-weight:700}
.steps p{font-size:13.5px;margin:0;color:color-mix(in srgb,var(--on-band) 68%,transparent);line-height:1.5}
.steps .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;font-weight:600;
          color:var(--band-accent)}
.band-cta{margin-top:40px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn-onband{background:var(--on-band);color:var(--band-bg);border:0}
.btn-onband-ghost{background:transparent;color:var(--on-band);
                  border:1px solid color-mix(in srgb,var(--on-band) 34%,transparent)}

/* ── secondary line ──────────────────────────────────── */
.studio-grid{display:grid;grid-template-columns:1fr;gap:28px;margin-top:34px}
@media(min-width:780px){.studio-grid{grid-template-columns:repeat(3,1fr);gap:40px}}
.studio-grid h4{font-size:15px;margin:0 0 6px;font-weight:700}
.studio-grid p{font-size:14px;color:var(--ink-2);margin:0;line-height:1.5}

/* ── insights ────────────────────────────────────────── */
.posts{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
a.post{padding:24px 0;text-decoration:none;display:flex;flex-direction:column;gap:9px;
       border-bottom:1px solid var(--rule-soft);transition:padding-left .2s}
a.post:hover{padding-left:8px}
a.post:hover h3{color:var(--blue-deep)}
.post-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.post-meta time,.post-meta .tag,.post-meta .rt{font-family:var(--mono);font-size:10px;
       color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}
.post-meta .tag{color:var(--blue-deep);font-weight:600}
a.post h3{font-family:var(--serif);font-size:23px;font-weight:500;letter-spacing:-.018em;
          margin:0;line-height:1.22;transition:color .2s}
a.post p{margin:0;font-size:14.5px;color:var(--ink-2);max-width:62ch}

/* ── about ───────────────────────────────────────────── */
.about{display:grid;grid-template-columns:1fr;gap:38px}
@media(min-width:920px){.about{grid-template-columns:1.15fr .85fr;gap:60px}}
.about p{color:var(--ink-2);font-size:16.5px;line-height:1.65}
.about p strong{color:var(--ink);font-weight:600}
.facts{margin:0;border-top:1px solid var(--rule)}
.fact{padding:13px 0;border-bottom:1px solid var(--rule-soft);display:grid;
      grid-template-columns:1fr;gap:3px}
@media(min-width:520px){.fact{grid-template-columns:118px 1fr;gap:16px;align-items:baseline}}
.fact dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.fact dd{margin:0;font-size:14.5px;font-weight:500}

/* ── contact ─────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr;gap:34px}
@media(min-width:900px){.contact-grid{grid-template-columns:1.1fr .9fr;gap:56px}}
form.ct{display:flex;flex-direction:column;gap:16px}
.f2{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:540px){.f2{grid-template-columns:1fr 1fr}}
label{display:flex;flex-direction:column;gap:7px;font-family:var(--mono);font-size:10px;
      letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
input,select,textarea{font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--rule);
      border-radius:8px;background:var(--surface);color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--blue)}
textarea{resize:vertical;min-height:104px}
.hint{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);text-transform:none;
      letter-spacing:0;font-weight:400;margin:0}
.direct{align-self:start;border-top:1px solid var(--rule)}
.direct a{display:grid;grid-template-columns:70px 1fr;gap:14px;align-items:baseline;
          padding:14px 0;border-bottom:1px solid var(--rule-soft);text-decoration:none;font-size:15px}
.direct a span{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.12em;
               text-transform:uppercase}
.direct a b{font-weight:500;color:var(--ink);word-break:break-word}
.direct a:hover b{color:var(--blue-deep)}

/* ── footer ──────────────────────────────────────────── */
footer{border-top:1px solid var(--rule);padding-block:38px 48px}
.foot{display:flex;flex-wrap:wrap;gap:22px 40px;align-items:flex-start;justify-content:space-between}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}
.foot nav a{font-size:13px;color:var(--ink-2);text-decoration:none}
.foot nav a:hover{color:var(--blue-deep)}
.foot-legal{width:100%;border-top:1px solid var(--rule-soft);margin-top:24px;padding-top:18px;
            font-family:var(--mono);font-size:10.5px;color:var(--ink-3);display:flex;
            flex-wrap:wrap;gap:8px 20px;justify-content:space-between;letter-spacing:.04em}

/* ── article / insights pages ────────────────────────── */
.prose{max-width:66ch;margin:0 auto}
.prose h2{font-family:var(--serif);font-size:clamp(23px,3vw,30px);font-weight:600;
          letter-spacing:-.018em;margin:48px 0 16px;line-height:1.2}
.prose h3{font-size:18px;font-weight:700;margin:34px 0 10px;letter-spacing:-.01em}
.prose p{font-size:17.5px;line-height:1.75;color:var(--ink-2);margin:0 0 22px}
.prose strong{color:var(--ink);font-weight:600}
.prose ul,.prose ol{font-size:17.5px;line-height:1.75;color:var(--ink-2);padding-left:24px;margin:0 0 22px}
.prose li{margin-bottom:10px}
.prose a{color:var(--blue-deep);text-decoration:underline;text-underline-offset:2px}
.prose blockquote{margin:30px 0;padding:6px 0 6px 22px;border-left:3px solid var(--blue);
                  font-family:var(--serif);font-size:20px;font-style:italic;color:var(--ink)}
.prose blockquote p{font:inherit;color:inherit;margin:0}
.prose code{font-family:var(--mono);font-size:14.5px;background:var(--surface-2);
            padding:2px 6px;border-radius:4px;color:var(--ink)}
.prose pre{background:var(--surface-2);border:1px solid var(--rule);border-radius:10px;
           padding:18px;overflow-x:auto;margin:0 0 24px}
.prose pre code{background:transparent;padding:0;font-size:13.5px;line-height:1.6}
.prose hr{border:0;border-top:1px solid var(--rule);margin:42px 0}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 24px}
.prose th,.prose td{border:1px solid var(--rule);padding:10px 13px;text-align:left}
.prose th{background:var(--surface-2);font-family:var(--mono);font-size:10.5px;
          letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.tablewrap{overflow-x:auto;margin:0 0 24px}
.art-head{max-width:66ch;margin:0 auto 40px}
.art-head h1{font-family:var(--serif);font-size:clamp(32px,5vw,50px);font-weight:500;
             letter-spacing:-.028em;line-height:1.08;margin:16px 0 0}
.art-meta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:22px}
.art-meta time,.art-meta .tag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;
                              text-transform:uppercase;color:var(--ink-3)}
.art-meta .tag{color:var(--blue-deep);font-weight:600}
.backlink{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;
          color:var(--blue-deep);text-decoration:none;display:inline-block}
.backlink:hover{text-decoration:underline}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.filters button{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;padding:7px 14px;border-radius:999px;border:1px solid var(--rule);
  background:var(--surface);color:var(--ink-3);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--btn-bg);color:var(--btn-fg);border-color:transparent}
.empty{border:1px dashed var(--rule);border-radius:12px;padding:44px 24px;text-align:center;color:var(--ink-3)}
.artcta{max-width:66ch;margin:60px auto 0;padding-top:30px;border-top:1px solid var(--rule)}
.artcta h3{font-family:var(--serif);font-size:23px;font-weight:500;margin:16px 0 10px;letter-spacing:-.018em}
.artcta p{margin:0 0 20px;font-size:15.5px;color:var(--ink-2);max-width:56ch}
