:root{
  /* brand constants — never vary by colourway or theme */
  --brand-blue:#2696D0;
  --brand-deep:#176191;
  --brand-gray:#A0A2A4;

  --paper:#F6F8F9;
  --surface:#FFFFFF;
  --surface-2:#EDF2F4;
  --ink:#243039;
  --muted:#5A6873;
  --rule:#DFE6EA;
  --rule-strong:#C7D3D9;
  --accent:#2696D0;
  --deep:#176191;
  --bright:#62BDEC;
  --bgray:#A0A2A4;
  --link:#176191;
  --band:#123E5C;
  --band-ink:#EAF3F8;
  --band-muted:#A6C9DE;
  --band-rule:#28607F;
  --btn-primary-ink:#FFFFFF;
  --head-bg:#FFFFFF;
  --head-ink:#243039;
  --head-muted:#5A6873;
  --head-rule:#DFE6EA;

  --shell:1220px;
  --rail:190px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px;

  --f-display:'Spectral',Georgia,serif;
  --f-ui:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#141C22; --surface:#1B252C; --surface-2:#22303A; --ink:#E7EEF2; --muted:#9DACB5;
    --rule:#2B3841; --rule-strong:#3A4B57; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
    --bgray:#8E969B; --link:#7FC4E8; --band:#0E3149; --band-ink:#EAF3F8; --band-muted:#A6C9DE;
    --band-rule:#25566F; --btn-primary-ink:#0B1418;
    --head-bg:#1B252C; --head-ink:#E7EEF2; --head-muted:#9DACB5; --head-rule:#2B3841;
  }
}
:root[data-theme="dark"]{
  --paper:#141C22; --surface:#1B252C; --surface-2:#22303A; --ink:#E7EEF2; --muted:#9DACB5;
  --rule:#2B3841; --rule-strong:#3A4B57; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
  --bgray:#8E969B; --link:#7FC4E8; --band:#0E3149; --band-ink:#EAF3F8; --band-muted:#A6C9DE;
  --band-rule:#25566F; --btn-primary-ink:#0B1418;
  --head-bg:#1B252C; --head-ink:#E7EEF2; --head-muted:#9DACB5; --head-rule:#2B3841;
}
:root[data-theme="light"]{
  --paper:#F6F8F9; --surface:#FFFFFF; --surface-2:#EDF2F4; --ink:#243039; --muted:#5A6873;
  --rule:#DFE6EA; --rule-strong:#C7D3D9; --accent:#2696D0; --deep:#176191; --bright:#62BDEC;
  --bgray:#A0A2A4; --link:#176191; --band:#123E5C; --band-ink:#EAF3F8; --band-muted:#A6C9DE;
  --band-rule:#28607F; --btn-primary-ink:#FFFFFF;
  --head-bg:#FFFFFF; --head-ink:#243039; --head-muted:#5A6873; --head-rule:#DFE6EA;
}

/* ===== Colourway B — “Slate”: ink masthead and bands, brand blue kept as the single pop ===== */
:root[data-palette="b"]{
  --paper:#F2F5F6; --surface:#FFFFFF; --surface-2:#E6ECEF; --ink:#1E2A33; --muted:#57656F;
  --rule:#D8E0E4; --rule-strong:#BCC8CF; --accent:#2696D0; --deep:#176191; --bright:#62BDEC;
  --bgray:#A0A2A4; --link:#176191; --band:#1E2A33; --band-ink:#E8EFF3; --band-muted:#A7B6C0;
  --band-rule:#394853; --btn-primary-ink:#FFFFFF;
  --head-bg:#1E2A33; --head-ink:#EDF3F6; --head-muted:#A7B6C0; --head-rule:#33434E;
}
@media (prefers-color-scheme:dark){
  :root[data-palette="b"]{
    --paper:#10171C; --surface:#18222A; --surface-2:#1F2C35; --ink:#E7EEF2; --muted:#9AA9B3;
    --rule:#28353E; --rule-strong:#374854; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
    --bgray:#8E969B; --link:#7FC4E8; --band:#0B1116; --band-ink:#E8EFF3; --band-muted:#A7B6C0;
    --band-rule:#2A3A45; --btn-primary-ink:#0B1418;
    --head-bg:#0B1116; --head-ink:#EDF3F6; --head-muted:#A7B6C0; --head-rule:#25333C;
  }
}
:root[data-palette="b"][data-theme="dark"]{
  --paper:#10171C; --surface:#18222A; --surface-2:#1F2C35; --ink:#E7EEF2; --muted:#9AA9B3;
  --rule:#28353E; --rule-strong:#374854; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
  --bgray:#8E969B; --link:#7FC4E8; --band:#0B1116; --band-ink:#E8EFF3; --band-muted:#A7B6C0;
  --band-rule:#2A3A45; --btn-primary-ink:#0B1418;
  --head-bg:#0B1116; --head-ink:#EDF3F6; --head-muted:#A7B6C0; --head-rule:#25333C;
}
:root[data-palette="b"][data-theme="light"]{
  --paper:#F2F5F6; --surface:#FFFFFF; --surface-2:#E6ECEF; --ink:#1E2A33; --muted:#57656F;
  --rule:#D8E0E4; --rule-strong:#BCC8CF; --accent:#2696D0; --deep:#176191; --bright:#62BDEC;
  --bgray:#A0A2A4; --link:#176191; --band:#1E2A33; --band-ink:#E8EFF3; --band-muted:#A7B6C0;
  --band-rule:#394853; --btn-primary-ink:#FFFFFF;
  --head-bg:#1E2A33; --head-ink:#EDF3F6; --head-muted:#A7B6C0; --head-rule:#33434E;
}

/* ===== Colourway C — “Paper”: one white ground throughout, structure from hairlines ===== */
:root[data-palette="c"]{
  --paper:#FFFFFF; --surface:#FFFFFF; --surface-2:#F1F6F8; --ink:#1F2A33; --muted:#56646E;
  --rule:#E5ECEF; --rule-strong:#C9D5DB; --accent:#2696D0; --deep:#176191; --bright:#62BDEC;
  --bgray:#A0A2A4; --link:#176191; --btn-primary-ink:#FFFFFF;
  --head-bg:#FFFFFF; --head-ink:#1F2A33; --head-muted:#56646E; --head-rule:#E5ECEF;
}
:root[data-palette="c"] .band{
  --band:#EAF3F9; --band-ink:#1B2A34; --band-muted:#4D6472; --band-rule:#C9DFEE; --band-accent:#176191;
}
:root[data-palette="c"] .band--solid{
  --band:#176191; --band-ink:#F2F8FB; --band-muted:#BBDAED; --band-rule:#3E7EA9; --band-accent:#8CCBEC;
}
@media (prefers-color-scheme:dark){
  :root[data-palette="c"]{
    --paper:#0E1418; --surface:#0E1418; --surface-2:#18232B; --ink:#E9EFF3; --muted:#96A6B0;
    --rule:#222E36; --rule-strong:#33434E; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
    --bgray:#8E969B; --link:#7FC4E8; --btn-primary-ink:#0B1418;
    --head-bg:#0E1418; --head-ink:#E9EFF3; --head-muted:#96A6B0; --head-rule:#222E36;
  }
  :root[data-palette="c"] .band{
    --band:#16222A; --band-ink:#E9EFF3; --band-muted:#A2B3BD; --band-rule:#2A3A45; --band-accent:#8CCBEC;
  }
  :root[data-palette="c"] .band--solid{
    --band:#124D74; --band-ink:#F2F8FB; --band-muted:#B4D6EA; --band-rule:#2E6D96; --band-accent:#A6DAF3;
  }
}
:root[data-palette="c"][data-theme="dark"]{
  --paper:#0E1418; --surface:#0E1418; --surface-2:#18232B; --ink:#E9EFF3; --muted:#96A6B0;
  --rule:#222E36; --rule-strong:#33434E; --accent:#59B3E2; --deep:#8CCBEC; --bright:#62BDEC;
  --bgray:#8E969B; --link:#7FC4E8; --btn-primary-ink:#0B1418;
  --head-bg:#0E1418; --head-ink:#E9EFF3; --head-muted:#96A6B0; --head-rule:#222E36;
}
:root[data-palette="c"][data-theme="dark"] .band{
  --band:#16222A; --band-ink:#E9EFF3; --band-muted:#A2B3BD; --band-rule:#2A3A45; --band-accent:#8CCBEC;
}
:root[data-palette="c"][data-theme="dark"] .band--solid{
  --band:#124D74; --band-ink:#F2F8FB; --band-muted:#B4D6EA; --band-rule:#2E6D96; --band-accent:#A6DAF3;
}
:root[data-palette="c"][data-theme="light"]{
  --paper:#FFFFFF; --surface:#FFFFFF; --surface-2:#F1F6F8; --ink:#1F2A33; --muted:#56646E;
  --rule:#E5ECEF; --rule-strong:#C9D5DB; --accent:#2696D0; --deep:#176191; --bright:#62BDEC;
  --bgray:#A0A2A4; --link:#176191; --btn-primary-ink:#FFFFFF;
  --head-bg:#FFFFFF; --head-ink:#1F2A33; --head-muted:#56646E; --head-rule:#E5ECEF;
}
:root[data-palette="c"][data-theme="light"] .band{
  --band:#EAF3F9; --band-ink:#1B2A34; --band-muted:#4D6472; --band-rule:#C9DFEE; --band-accent:#176191;
}
:root[data-palette="c"][data-theme="light"] .band--solid{
  --band:#176191; --band-ink:#F2F8FB; --band-muted:#BBDAED; --band-rule:#3E7EA9; --band-accent:#8CCBEC;
}

*{box-sizing:border-box;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-ui); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;}
a{color:var(--link);}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:2px;}

/* ---------- primitives ---------- */
.shell{width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--s5);}
@media(min-width:900px){ .shell{padding-inline:var(--s7);} }

.eyebrow{font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0;}
.ref{font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-variant-numeric:tabular-nums;}
h1,h2,h3,h4{font-family:var(--f-display); font-weight:600; margin:0; text-wrap:balance; letter-spacing:-.005em;}
h1{font-size:clamp(2.4rem,1.35rem + 4vw,4.6rem); line-height:1.04;}
h2{font-size:clamp(1.7rem,1.2rem + 1.9vw,2.6rem); line-height:1.14;}
h3{font-size:clamp(1.15rem,1rem + .55vw,1.45rem); line-height:1.25;}
h4{font-size:1.04rem; line-height:1.35;}
p{margin:0;}
.lede{font-size:clamp(1.02rem,.96rem + .3vw,1.18rem); color:var(--muted); max-width:64ch; line-height:1.65;}
.body-copy{max-width:66ch; color:var(--muted); display:flex; flex-direction:column; gap:var(--s4);}
.body-copy strong{color:var(--ink); font-weight:600;}

.btn{
  display:inline-flex; align-items:center; gap:10px; border-radius:2px;
  font-family:var(--f-ui); font-size:14px; font-weight:600;
  padding:13px 20px; text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.btn--primary{background:var(--accent); color:var(--btn-primary-ink); border-color:var(--accent);}
.btn--primary:hover{background:var(--deep); border-color:var(--deep);}
.btn--ghost{border-color:var(--rule-strong); color:var(--ink); background:transparent;}
.btn--ghost:hover{border-color:var(--ink);}
.btn--onband{background:transparent; border-color:var(--band-rule); color:var(--band-ink);}
.btn--onband:hover{border-color:var(--band-ink);}
.btn--onband-solid{background:var(--band-ink); color:var(--band); border-color:var(--band-ink);}
.btn--onband-solid:hover{background:#fff; border-color:#fff;}
.arrow{width:14px;height:14px;flex:none;}

/* docket row: rail + content */
.docket{display:grid; gap:var(--s5); grid-template-columns:1fr;}
@media(min-width:960px){ .docket{grid-template-columns:var(--rail) minmax(0,1fr); gap:var(--s7);} }
.docket__rail{display:flex; flex-direction:column; gap:8px; padding-top:6px; align-items:flex-start;}
.docket__rail .rail-note{font-size:12.5px; color:var(--muted); line-height:1.45; max-width:24ch;}

section{border-top:1px solid var(--rule);}
.sect{padding-block:var(--s8);}
@media(min-width:900px){ .sect{padding-block:var(--s9);} }
.sect--tight{padding-block:var(--s7);}

/* draft flag */
.draft{
  display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--bgray);
  border:1px dashed var(--rule-strong); border-radius:2px; padding:3px 8px; white-space:nowrap;
}
.draft::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--bgray);}
.band .draft{color:var(--band-muted); border-color:var(--band-rule);}
.band .draft::before{background:var(--band-muted);}

/* ---------- masthead ---------- */
.util{border-bottom:1px solid var(--head-rule); background:var(--head-bg);}
.util__in{display:flex; align-items:center; justify-content:space-between; gap:var(--s4); height:38px; font-size:11.5px; letter-spacing:.05em; color:var(--head-muted);}
.util__in .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand-blue);margin-inline-end:7px;vertical-align:1px;}
.util__links{display:none; gap:var(--s5);}
@media(min-width:780px){ .util__links{display:flex;} }
.util a{color:inherit; text-decoration:none;}
.util a:hover{color:var(--head-ink);}

.mast{position:sticky; top:0; z-index:40; background:var(--head-bg); border-bottom:1px solid var(--head-rule);}
.mast__in{display:flex; align-items:center; justify-content:space-between; gap:var(--s5); height:86px;}
.nav{display:none; align-items:center; gap:var(--s6);}
@media(min-width:1080px){ .nav{display:flex;} }
.nav a{
  text-decoration:none; padding:0 0 3px; cursor:pointer; font-family:var(--f-ui);
  font-size:13.5px; font-weight:500; color:var(--head-ink);
  border-bottom:2px solid transparent; transition:color .16s, border-color .16s;
}
.nav a:hover{color:var(--brand-blue);}
.nav a[aria-current="page"]{border-bottom-color:var(--brand-blue); color:var(--brand-blue);}
.mast .btn--ghost{border-color:var(--head-rule); color:var(--head-ink);}
.mast .btn--ghost:hover{border-color:var(--head-ink);}
.mast .btn--primary{background:var(--brand-blue); border-color:var(--brand-blue); color:#fff;}
.mast .btn--primary:hover{background:var(--brand-deep); border-color:var(--brand-deep);}
.mast__cta{display:flex; align-items:center; gap:var(--s3);}
.mast__cta .btn--primary{display:none;}
@media(min-width:560px){ .mast__cta .btn--primary{display:inline-flex;} }
.menu-toggle{display:inline-flex; align-items:center; gap:8px;}
@media(min-width:1080px){ .menu-toggle{display:none;} }
.drawer{display:none; border-top:1px solid var(--head-rule); background:var(--head-bg);}
.drawer.open{display:block;}
@media(min-width:1080px){ .drawer.open{display:none;} }
.drawer__in{display:flex; flex-direction:column; padding-block:var(--s3) var(--s5);}
.drawer a{display:block;text-decoration:none;text-align:start;cursor:pointer;font-family:var(--f-ui);font-size:15px;font-weight:500;color:var(--head-ink);padding:13px 0;border-bottom:1px solid var(--head-rule);}

/* ---------- logo ---------- */
.logo{text-decoration:none;display:flex; align-items:center; gap:13px; background:none; border:0; padding:0; cursor:pointer;}
.logo__icon{width:44px;height:44px;flex:none;}
.logo__word{display:flex; flex-direction:column; align-items:stretch;}
.logo__nm{font-family:var(--f-display); font-weight:600; font-size:30px; line-height:.9; letter-spacing:.02em; white-space:nowrap;}
.logo__nm .my{color:var(--brand-gray);} .logo__nm .ip{color:var(--brand-blue);}
.logo__icon .ring{stroke:var(--brand-blue);}
.logo__icon .core{fill:var(--brand-deep);}
.logo__icon .node{fill:var(--brand-gray);}
.mast .logo__icon .gap{fill:var(--head-bg);}
.foot .logo__icon .gap{fill:var(--surface);}
.logo__tg{font-family:var(--f-ui); font-weight:600; font-size:8.85px; color:var(--bgray); text-align:justify; text-align-last:justify; margin-top:.3em; width:100%;}
@media(min-width:560px){
  .logo__icon{width:52px;height:52px;}
  .logo__nm{font-size:35px;}
  .logo__tg{font-size:10.3px;}
}
.logo--lg .logo__icon{width:72px;height:72px;}
.logo--lg .logo__nm{font-size:48px;}
.logo--lg .logo__tg{font-size:14.2px;}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; border-top:0; background:var(--surface);}
.hero__bg{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0;}
.hero__ring{
  position:absolute; top:50%; inset-inline-end:-30%; transform:translateY(-52%);
  width:min(620px,120vw); opacity:.14;
}
@media(min-width:760px){ .hero__ring{inset-inline-end:-12%; width:min(760px,72vw); opacity:.17;} }
@media(min-width:1240px){ .hero__ring{inset-inline-end:-4%; width:720px;} }
.hero__ring svg{display:block; width:100%; height:auto; animation:spin 150s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){ .hero__ring svg{animation:none;} }

.hero__in{position:relative; z-index:2; display:flex; flex-direction:column; padding-block:var(--s8);}
@media(min-width:760px){ .hero__in{padding-block:var(--s9);} }
.hero__copy{display:flex; flex-direction:column; gap:var(--s5);}
.hero__copy h1{max-width:15ch;}
.hero__copy .lede{max-width:52ch;}
@media(min-width:760px){ .hero__copy{max-width:min(74%,780px);} }
.hero__actions{display:flex; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s2);}

.stats{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--rule);}
@media(min-width:860px){ .stats{grid-template-columns:repeat(4,minmax(0,1fr));} }
.stat{padding:var(--s5) var(--s4) var(--s5) 0; border-bottom:1px solid var(--rule);}
@media(min-width:860px){
  .stat{border-bottom:0; border-inline-end:1px solid var(--rule); padding-inline:var(--s5);}
  .stat:first-child{padding-inline-start:0;}
  .stat:last-child{border-inline-end:0;}
}
.stat__n{font-family:var(--f-display); font-weight:600; font-size:2.05rem; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink);}
.stat__l{font-size:12.5px; color:var(--muted); margin-top:8px; line-height:1.45;}

/* ---------- services list ---------- */
.list{display:flex; flex-direction:column; border-top:1px solid var(--rule);}
.list__item{text-decoration:none;
  display:grid; grid-template-columns:1fr; gap:var(--s2);
  padding-block:var(--s5); border-bottom:1px solid var(--rule);
  text-align:start; background:none; border-inline:0; border-top:0; cursor:pointer;
  font-family:inherit; color:inherit; transition:background .16s ease; padding-inline:0;
}
@media(min-width:840px){
  .list__item{text-decoration:none;grid-template-columns:92px minmax(0,1fr) minmax(0,1.2fr) 26px; gap:var(--s5);
    align-items:baseline; padding-inline:10px; margin-inline:-10px;}
}
.list__item:hover{background:var(--surface-2);}
.list__item h3{font-size:1.2rem;}
.list__item p{font-size:14.5px; color:var(--muted); line-height:1.55;}
.list__item .chev{color:var(--accent); justify-self:end; align-self:center;}

/* ---------- band ---------- */
.band{background:var(--band); color:var(--band-ink); border-top:0;}
.band .eyebrow{color:var(--band-muted);}
.band h2, .band h3{color:var(--band-ink);}
.band .lede{color:var(--band-muted);}
.pillars{display:grid; grid-template-columns:1fr; margin-top:var(--s7); border-top:1px solid var(--band-rule);}
@media(min-width:880px){ .pillars{grid-template-columns:repeat(3,1fr);} }
.pillar{padding:var(--s6) 0; border-bottom:1px solid var(--band-rule); display:flex; flex-direction:column; gap:var(--s3); align-items:flex-start;}
@media(min-width:880px){
  .pillar{padding:var(--s6) var(--s6) var(--s7) 0; border-bottom:0; border-inline-end:1px solid var(--band-rule);}
  .pillar + .pillar{padding-inline-start:var(--s6);}
  .pillar:last-child{border-inline-end:0;}
}
.pillar h3{font-size:1.26rem;}
.pillar p{color:var(--band-muted); font-size:14.5px; max-width:36ch;}
.pillar .ref{color:var(--band-accent,var(--bright));}

/* ---------- table ---------- */
.tablewrap{overflow-x:auto; border:1px solid var(--rule); background:var(--surface); border-radius:2px;}
table{border-collapse:collapse; width:100%; min-width:640px; font-size:14px;}
thead th{text-align:start; font-weight:600; font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); padding:14px 18px; border-bottom:1px solid var(--rule-strong); white-space:nowrap;}
tbody td{padding:15px 18px; border-bottom:1px solid var(--rule); vertical-align:top;}
tbody tr:last-child td{border-bottom:0;}
tbody tr:hover{background:var(--surface-2);}
td.num, th.num{text-align:end; font-variant-numeric:tabular-nums; white-space:nowrap;}
.svc-name{font-weight:600; color:var(--ink);}
.svc-sub{display:block; font-size:12px; color:var(--muted); font-weight:400; margin-top:2px;}
.tag{display:inline-block; font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border-radius:2px; background:var(--surface-2); color:var(--muted); white-space:nowrap;}
.tag--fixed{background:rgba(38,150,208,.13); color:var(--deep);}
.note{font-size:12.5px; color:var(--muted); margin-top:var(--s4); max-width:66ch;}

/* ---------- cards ---------- */
.grid-3{display:grid; grid-template-columns:1fr; gap:var(--s5);}
@media(min-width:780px){ .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));} }
.grid-2{display:grid; grid-template-columns:1fr; gap:var(--s6);}
@media(min-width:840px){ .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));} }
.card{text-decoration:none;color:inherit;
  display:flex; flex-direction:column; gap:var(--s3); background:var(--surface);
  border:1px solid var(--rule); border-radius:2px; padding:var(--s5); text-align:start;
  transition:border-color .18s ease; font-family:inherit; color:inherit;
}
button.card{cursor:pointer;}
.card:hover{border-color:var(--rule-strong);}
.card__meta{display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.card__meta .kind{color:var(--accent);}
.card h3{font-size:1.12rem;}
.card p{font-size:14px; color:var(--muted);}
.card .more{font-size:13px; font-weight:600; color:var(--link); margin-top:auto;}

/* ---------- founder ---------- */
.founder{display:grid; grid-template-columns:1fr; gap:var(--s6); align-items:start;}
@media(min-width:900px){ .founder{grid-template-columns:250px minmax(0,1fr); gap:var(--s8);} }
.portrait{
  aspect-ratio:4/5; background:linear-gradient(160deg,var(--surface-2),var(--surface));
  border:1px solid var(--rule); display:flex; align-items:flex-end; justify-content:center;
  position:relative; overflow:hidden;
}
.portrait svg{position:absolute; inset:0; width:100%; height:100%; opacity:.15;}
.portrait span{position:relative; z-index:1; padding:14px;}
.creds{display:grid; grid-template-columns:1fr; border-top:1px solid var(--rule); margin-top:var(--s5);}
@media(min-width:680px){ .creds{grid-template-columns:repeat(2,1fr); column-gap:var(--s7);} }
.cred{display:flex; justify-content:space-between; gap:var(--s4); padding:12px 0; border-bottom:1px solid var(--rule); font-size:13.5px;}
.cred dt{color:var(--muted); flex:none;}
.cred dd{margin:0; text-align:end; font-weight:500;}

/* ---------- process ---------- */
.steps{display:grid; grid-template-columns:1fr; border-top:1px solid var(--rule);}
@media(min-width:920px){ .steps{grid-template-columns:repeat(4,1fr);} }
.step{padding:var(--s5) 0; border-bottom:1px solid var(--rule); display:flex; flex-direction:column; gap:10px;}
@media(min-width:920px){
  .step{border-bottom:0; border-inline-end:1px solid var(--rule); padding:var(--s6) var(--s5) var(--s6) 0;}
  .step + .step{padding-inline-start:var(--s5);}
  .step:last-child{border-inline-end:0;}
}
.step__n{display:flex; align-items:center; gap:10px;}
.step__n b{font-family:var(--f-display); font-size:1.5rem; color:var(--accent); font-variant-numeric:tabular-nums; line-height:1;}
.step__n span{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.step p{font-size:14px; color:var(--muted);}

/* ---------- quote ---------- */
.quote{font-family:var(--f-display); font-style:italic; font-size:clamp(1.3rem,1.05rem + 1vw,1.9rem); line-height:1.38; color:var(--ink); max-width:24ch; margin:0;}
.quote-block{display:grid; gap:var(--s5); grid-template-columns:1fr; align-items:start;}
@media(min-width:920px){ .quote-block{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--s8);} }

/* ---------- forms ---------- */
.form{display:grid; grid-template-columns:1fr; gap:var(--s4);}
@media(min-width:660px){ .form{grid-template-columns:repeat(2,1fr);} .form .full{grid-column:1/-1;} }
label{display:flex; flex-direction:column; gap:7px; font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}
input,select,textarea{
  font-family:var(--f-ui); font-size:15px; color:var(--ink); background:var(--surface);
  border:1px solid var(--rule-strong); border-radius:2px; padding:11px 12px; width:100%;
  letter-spacing:normal; text-transform:none; font-weight:400;
}
textarea{min-height:120px; resize:vertical;}
input:focus,select:focus,textarea:focus{border-color:var(--accent); outline:none; box-shadow:0 0 0 3px rgba(38,150,208,.16);}

.meta-list{display:flex; flex-direction:column; border-top:1px solid var(--rule);}
.meta-row{display:flex; justify-content:space-between; gap:var(--s4); padding:14px 0; border-bottom:1px solid var(--rule); font-size:14px;}
.meta-row dt{color:var(--muted); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; padding-top:2px;}
.meta-row dd{margin:0; text-align:end;}

/* ---------- footer ---------- */
.foot{background:var(--surface); border-top:1px solid var(--rule);}
.foot__grid{display:grid; grid-template-columns:1fr; gap:var(--s6); padding-block:var(--s8) var(--s6);}
@media(min-width:780px){ .foot__grid{grid-template-columns:1.4fr repeat(3,1fr); gap:var(--s7);} }
.foot h4{font-family:var(--f-ui); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:var(--s3);}
.foot ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
.foot li a{text-decoration:none;padding:0;cursor:pointer;font-family:inherit;font-size:14px;color:var(--ink);text-align:start;}
.foot li a:hover{color:var(--accent);}
.foot__bottom{display:flex; flex-wrap:wrap; gap:var(--s4); justify-content:space-between; padding-block:var(--s5); border-top:1px solid var(--rule); font-size:12.5px; color:var(--muted);}
.foot__bottom nav{display:flex; flex-wrap:wrap; gap:var(--s5);}
.foot__bottom nav a{color:inherit;text-decoration:none;}
.foot__bottom nav a:hover{color:var(--ink);}

.pagehead{background:var(--surface); border-bottom:1px solid var(--rule); border-top:0;}
.pagehead__in{padding-block:var(--s7); display:flex; flex-direction:column; gap:var(--s4); align-items:flex-start;}
@media(min-width:900px){ .pagehead__in{padding-block:var(--s8);} }
.crumb{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.crumb i{color:var(--rule-strong); font-style:normal; padding-inline:8px;}
.pill-row{display:flex; flex-wrap:wrap; gap:8px;}
.pill{font-size:12px; padding:6px 12px; border:1px solid var(--rule-strong); border-radius:999px; color:var(--muted);}
.stack{display:flex; flex-direction:column; gap:var(--s4); align-items:flex-start;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
/* ---------- service detail ---------- */
.tick{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
@media(min-width:640px){ .tick{grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--s6);} }
.tick li{position:relative;padding-inline-start:22px;font-size:14.5px;color:var(--muted);line-height:1.5;}
.tick li::before{content:"";position:absolute;inset-inline-start:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--accent);}
.pullnote{font-family:var(--f-display);font-size:clamp(1.05rem,1rem + .35vw,1.25rem);line-height:1.45;
  color:var(--ink);border-inline-start:2px solid var(--accent);padding-inline-start:var(--s4);max-width:54ch;}
.spec{display:grid;grid-template-columns:1fr;border-top:1px solid var(--rule);margin-top:var(--s6);}
@media(min-width:740px){ .spec{grid-template-columns:repeat(3,1fr);} }
.spec__i{padding:var(--s5) 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:8px;}
@media(min-width:740px){
  .spec__i{border-bottom:0;border-inline-end:1px solid var(--rule);padding:var(--s5) var(--s5) var(--s5) 0;}
  .spec__i + .spec__i{padding-inline-start:var(--s5);}
  .spec__i:last-child{border-inline-end:0;}
}
.spec__i dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.spec__i dd{margin:0;font-size:14.5px;color:var(--ink);line-height:1.5;}
.svc-label{font-family:var(--f-ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}

/* ---------- jurisdiction tabs ---------- */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s6);}
.tab{
  font-family:var(--f-ui);font-size:12.5px;font-weight:600;color:var(--muted);background:transparent;
  border:1px solid var(--rule-strong);border-radius:999px;padding:7px 14px;cursor:pointer;
  transition:background .16s,border-color .16s,color .16s;
}
.tab:hover{border-color:var(--ink);color:var(--ink);}
.tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--btn-primary-ink);}

/* ---------- fee explorer ---------- */
.fx{margin-top:var(--s6);}
.fx__controls{display:flex;flex-direction:column;gap:var(--s4);}
.fx__row{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;}
@media(min-width:820px){ .fx__row{grid-template-columns:92px minmax(0,1fr);gap:var(--s4);} }
.fx__lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;padding-top:9px;}
.chips{display:flex;flex-wrap:wrap;gap:7px;}
.fx__tools{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;margin-top:var(--s5);}
.fx__search{position:relative;flex:1 1 260px;max-width:360px;}
.fx__search input{padding-inline-start:34px;font-size:14px;}
.fx__search svg{position:absolute;inset-inline-start:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted);pointer-events:none;}
.fx__count{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;}

.fx__bar{
  position:sticky; top:86px; z-index:20;
  display:flex; flex-wrap:wrap; gap:var(--s4); align-items:center; justify-content:space-between;
  background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px;
  padding:14px 16px; margin-top:var(--s5);
  box-shadow:0 6px 18px -14px rgba(0,0,0,.5);
}
.fx__sums{display:flex;flex-wrap:wrap;gap:var(--s5);align-items:baseline;}
.fx__sum{display:flex;flex-direction:column;gap:2px;}
.fx__sum dt{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.fx__sum dd{margin:0;font-family:var(--f-display);font-weight:600;font-size:1.18rem;font-variant-numeric:tabular-nums;line-height:1.1;}
.fx__sum--total dd{color:var(--accent);}
.fx__hint{font-size:13px;color:var(--muted);}
.fx__acts{display:flex;gap:10px;flex-wrap:wrap;}
.fx__acts .btn{padding:10px 16px;font-size:13px;}
.fx__acts .btn[disabled]{opacity:.45;cursor:not-allowed;}

.fx table{min-width:720px;}
.fx thead th{position:relative;}
.fx tbody tr.sec td{
  background:var(--surface-2); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; color:var(--muted); padding:10px 18px;
}
.fx tbody tr.sec:hover td{background:var(--surface-2);}
.fx td.pick{width:44px;padding-inline:0 0;text-align:center;vertical-align:top;padding-top:16px;}
.fx th.pick{width:44px;}
.fx input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0;}
.fx tr.on td{background:color-mix(in srgb, var(--accent) 8%, transparent);}
.fx .svc-name{font-weight:500;}
.fx td.money{font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap;}
.fx td.money.total{font-weight:600;color:var(--ink);}
.fx .nil{color:var(--rule-strong);}
.fx__empty{padding:var(--s7) var(--s5);text-align:center;color:var(--muted);font-size:14px;}

/* coverage matrix */
.cov{overflow-x:auto;margin-top:var(--s6);border:1px solid var(--rule);background:var(--surface);border-radius:2px;}
.cov table{min-width:560px;font-size:13.5px;}
.cov th{white-space:nowrap;}
.cov td.dot{text-align:center;}
.cov button.cell{
  width:26px;height:26px;border-radius:50%;border:1px solid var(--rule-strong);background:transparent;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:.16s;
}
.cov button.cell[data-on="1"]{background:var(--accent);border-color:var(--accent);}
.cov button.cell[data-on="1"]:hover{background:var(--deep);border-color:var(--deep);}
.cov button.cell[data-on="0"]{border-style:dashed;cursor:default;opacity:.5;}
.cov button.cell svg{width:12px;height:12px;color:var(--btn-primary-ink);}
.cov td.country{font-weight:500;white-space:nowrap;}

/* ---------- notices ---------- */
.notice{display:flex;flex-direction:column;gap:6px;border-radius:2px;padding:14px 16px;margin-bottom:var(--s5);
  font-size:14px;border:1px solid var(--rule-strong);background:var(--surface);}
.notice strong{font-weight:600;color:var(--ink);}
.notice span,.notice li{color:var(--muted);}
.notice ul{margin:0;padding-inline-start:18px;}
.notice--good{border-inline-start:3px solid var(--accent);}
.notice--bad{border-inline-start:3px solid #C0492F;}

/* ---------- article body ---------- */
.prose h2{font-size:1.5rem;margin-top:var(--s5);}
.prose h3{font-size:1.2rem;margin-top:var(--s4);}
.prose ul,.prose ol{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:8px;}
.prose blockquote{margin:0;border-inline-start:2px solid var(--accent);padding-inline-start:var(--s4);
  font-family:var(--f-display);font-style:italic;color:var(--ink);}
.prose a{color:var(--link);}

/* coverage cells are links on the real site */
.cov a.cell{text-decoration:none;}
.cov .cell[data-on="0"]{border-style:dashed;opacity:.5;}

/* ---------- skip link ---------- */
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:100;background:var(--accent);
  color:#fff;padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none;border-radius:0 0 2px 0;}
.skip:focus{inset-inline-start:0;}
main:focus{outline:none;}

/* crumb links */
.crumb a{color:inherit;text-decoration:none;}
.crumb a:hover{color:var(--accent);}
