:root{
  --sheet:#0B2239; --sheet2:#123253; --line:#2E5F87; --line-soft:rgba(46,95,135,.38);
  --grid-fine:rgba(46,95,135,.13); --grid-major:rgba(46,95,135,.22);
  --chalk:#DCE6EE; --chalk-dim:#9FB4C6;
  --spec:#E7EBEF; --spec2:#DDE3E9; --ink:#0B2239; --ink-dim:#4C6379;
  --brass:#D6A24A; --signal:#5ED3B8;
  --gut:clamp(20px,5vw,64px);
  --measure:68ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--sheet); color:var(--chalk);
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-variation-settings:'wdth' 100,'wght' 400;
  font-size:clamp(15.5px,.55vw + 14px,17.5px); line-height:1.62;
  -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums;
}
img{max-width:100%}
a{color:inherit}
::selection{background:var(--brass);color:var(--sheet)}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}

/* ---- drafting rule: one continuous margin line down the page ---- */
.sheet{position:relative}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gut);position:relative}
.wrap::before{
  content:"";position:absolute;left:calc(var(--gut) - 14px);top:0;bottom:0;width:1px;
  background:var(--line-soft);
}
.dark .wrap::before{background:var(--line-soft)}
.light .wrap::before{background:rgba(11,34,57,.16)}
@media(max-width:720px){.wrap::before{display:none}}

/* section tick against the rule */
.tick{position:relative;display:block}
.tick::before{
  content:"";position:absolute;left:-14px;top:.58em;width:10px;height:1px;background:var(--line);
}
.light .tick::before{background:rgba(11,34,57,.4)}
@media(max-width:720px){.tick::before{display:none}}

/* ---- type scale ---- */
.display{
  font-variation-settings:'wdth' 125,'wght' 680;
  font-size:clamp(2.35rem,6.4vw,5.1rem); line-height:.98; letter-spacing:-.022em;
  margin:0; text-wrap:balance;
}
h2{
  font-variation-settings:'wdth' 118,'wght' 640;
  font-size:clamp(1.65rem,3.1vw,2.6rem); line-height:1.08; letter-spacing:-.015em; margin:0 0 .5em;
}
h3{font-variation-settings:'wdth' 108,'wght' 640;font-size:1.16rem;line-height:1.3;margin:0 0 .35em;letter-spacing:-.006em}
p{margin:0 0 1em;max-width:var(--measure)}
.lede{font-size:clamp(1.06rem,1.35vw,1.26rem);line-height:1.55;color:var(--chalk-dim);max-width:60ch}
.light .lede{color:var(--ink-dim)}
.lbl{
  font-variation-settings:'wdth' 78,'wght' 640;
  font-size:.815rem;letter-spacing:.045em;color:var(--chalk-dim);
}
.light .lbl{color:var(--ink-dim)}

/* ---- masthead ---- */
header{position:sticky;top:0;z-index:50;background:rgba(11,34,57,.9);backdrop-filter:blur(9px);border-bottom:1px solid var(--line-soft)}
.bar{display:flex;align-items:center;gap:22px;min-height:60px}
.mark{display:flex;align-items:center;gap:9px;text-decoration:none;font-variation-settings:'wdth' 120,'wght' 700;letter-spacing:-.012em;font-size:1.02rem}
.mark svg{flex:none}
nav{margin-left:auto;display:flex;align-items:center;gap:clamp(14px,2vw,26px)}
nav a{text-decoration:none;color:var(--chalk-dim);font-size:.93rem;font-variation-settings:'wdth' 96,'wght' 520}
nav a:hover{color:var(--chalk)}
@media(max-width:760px){nav .hide-sm{display:none}}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  padding:.72em 1.15em;border-radius:2px;font-size:.97rem;
  font-variation-settings:'wdth' 102,'wght' 640;
  background:var(--brass);color:#17222E;border:1px solid var(--brass);
  transition:background .16s ease,border-color .16s ease;
}
.btn:hover{background:#E4B463;border-color:#E4B463}
.btn-ghost{background:transparent;color:var(--chalk);border-color:var(--line)}
.btn-ghost:hover{background:rgba(46,95,135,.2);border-color:var(--line)}
.light .btn-ghost{color:var(--ink);border-color:rgba(11,34,57,.28)}
.light .btn-ghost:hover{background:rgba(11,34,57,.06)}

/* ---- blueprint ground ---- */
.dark{
  background-color:var(--sheet);color:var(--chalk);
  background-image:
    linear-gradient(var(--grid-major) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),
    linear-gradient(var(--grid-fine) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-fine) 1px,transparent 1px);
  background-size:230px 230px,230px 230px,46px 46px,46px 46px;
  background-position:center top;
}
.light{background:var(--spec);color:var(--ink)}
section{padding:clamp(62px,8vw,118px) 0}

/* ---- hero ---- */
.hero{padding-top:clamp(54px,7vw,96px);padding-bottom:clamp(44px,5vw,74px)}
.datum{height:1px;background:var(--line);margin:clamp(26px,3.4vw,42px) 0 clamp(22px,2.6vw,30px);transform-origin:left center}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px}

/* live strip */
.strip{margin-top:clamp(40px,5.5vw,70px);border-top:1px solid var(--line-soft);padding-top:18px}
.strip ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin:10px 0 0;padding:0}
.strip li{display:flex;align-items:center;gap:8px;font-size:.95rem;color:var(--chalk);font-variation-settings:'wdth' 94,'wght' 520}
@media(max-width:640px){.strip ul{flex-direction:column;gap:9px}}
.dot{width:6px;height:6px;border-radius:50%;background:var(--signal);flex:none;box-shadow:0 0 0 3px rgba(94,211,184,.16)}

/* ---- practices: deliberately unequal ---- */
.practices{display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);margin-top:clamp(30px,4vw,46px)}
@media(min-width:880px){.practices{grid-template-columns:1.35fr 1fr}.p-wide{grid-column:1/-1}}
.cell{background:var(--sheet);padding:clamp(24px,3vw,38px)}
.cell .lbl{display:block;margin-bottom:14px}
.cell ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:7px}
.cell li{padding-left:16px;position:relative;font-size:.95rem;color:var(--chalk-dim);line-height:1.5}
.cell li::before{content:"";position:absolute;left:0;top:.66em;width:7px;height:1px;background:var(--brass)}
.p-wide ul{grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:7px 30px}

/* ---- module index (light spec sheet) ---- */
.index{margin-top:clamp(30px,4vw,48px);display:grid;gap:clamp(26px,3vw,40px)}
@media(min-width:760px){.index{grid-template-columns:1fr 1fr}}
.group h3{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid rgba(11,34,57,.22);padding-bottom:9px;margin-bottom:12px}
.group h3 span{margin-left:auto;font-variation-settings:'wdth' 78,'wght' 600;font-size:.8rem;color:var(--ink-dim)}
.group ul{list-style:none;margin:0;padding:0;columns:2;column-gap:22px}
.group li{font-size:.93rem;line-height:1.72;color:var(--ink-dim);break-inside:avoid}
@media(max-width:420px){.group ul{columns:1}}

/* ---- build sequence: real dimension line ---- */
.seq{margin-top:clamp(30px,4vw,48px);display:grid;gap:0}
.step{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2.4vw,30px);padding:22px 0;border-top:1px solid var(--line-soft)}
.step:last-child{border-bottom:1px solid var(--line-soft)}
.step .n{
  font-variation-settings:'wdth' 118,'wght' 680;font-size:1.4rem;color:var(--brass);
  line-height:1;min-width:2.1ch;padding-top:.1em;
}
.step p{margin:.28em 0 0;color:var(--chalk-dim);font-size:.96rem}

/* ---- industries table ---- */
.tbl{width:100%;border-collapse:collapse;margin-top:clamp(26px,3.4vw,42px);text-align:left}
.tbl th{font-variation-settings:'wdth' 78,'wght' 640;font-size:.815rem;letter-spacing:.045em;color:var(--ink-dim);padding:0 0 10px;border-bottom:1px solid rgba(11,34,57,.24);font-weight:inherit}
.tbl td{padding:15px 0;border-bottom:1px solid rgba(11,34,57,.13);vertical-align:top;font-size:.96rem;line-height:1.55}
.tbl td:first-child{font-variation-settings:'wdth' 106,'wght' 620;width:min(38%,250px);padding-right:24px;color:var(--ink)}
.tbl td:last-child{color:var(--ink-dim)}
@media(max-width:560px){
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl thead{display:none}
  .tbl tr{border-bottom:1px solid rgba(11,34,57,.13);padding:13px 0}
  .tbl td{border:0;padding:0}
  .tbl td:first-child{width:auto;margin-bottom:2px}
}

/* ---- facts ---- */
.facts{display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);margin-top:clamp(28px,3.4vw,42px)}
@media(min-width:700px){.facts{grid-template-columns:repeat(2,1fr)}}
.fact{background:var(--sheet);padding:clamp(20px,2.4vw,28px)}
.fact h3{font-size:1rem;margin-bottom:.3em}
.fact p{margin:0;font-size:.94rem;color:var(--chalk-dim)}

/* ---- close ---- */
.close .display{font-size:clamp(2rem,5vw,3.9rem)}
.contact{display:grid;gap:clamp(18px,2.4vw,30px);margin-top:clamp(28px,3.4vw,40px)}
@media(min-width:720px){.contact{grid-template-columns:repeat(auto-fit,minmax(170px,max-content));justify-content:start;gap:clamp(24px,3.4vw,56px)}}
.contact div{max-width:30ch}
.contact address{font-style:normal}
.contact a{text-decoration:none;font-variation-settings:'wdth' 104,'wght' 600;font-size:1.02rem;border-bottom:1px solid var(--line);padding-bottom:2px}
.contact a:hover{border-color:var(--brass);color:var(--brass)}
.contact .lbl{display:block;margin-bottom:5px}

footer{border-top:1px solid var(--line-soft);padding:26px 0 34px;color:var(--chalk-dim);font-size:.87rem}
.foot{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.foot .sp{margin-left:auto}

/* ---- single orchestrated page-load ---- */
@media(prefers-reduced-motion:no-preference){
  .anim-rule{animation:drawX .75s .15s cubic-bezier(.22,.7,.3,1) both}
  .anim-up{opacity:0;animation:rise .62s cubic-bezier(.22,.7,.3,1) forwards}
  .anim-up.d1{animation-delay:.05s}.anim-up.d2{animation-delay:.16s}
  .anim-up.d3{animation-delay:.62s}.anim-up.d4{animation-delay:.74s}
  @keyframes drawX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes rise{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}
}

/* ================= founder page ================= */
.f-hero{padding-top:clamp(48px,6vw,86px);padding-bottom:clamp(40px,5vw,70px)}
.f-hero .display{font-size:clamp(2.6rem,7.2vw,5.6rem)}
.role{font-size:clamp(1.06rem,1.4vw,1.3rem);color:var(--chalk-dim);max-width:46ch;margin:0}

/* drawing-sheet title block: labelled fields, real information */
.titleblock{
  margin-top:clamp(30px,4vw,46px);
  display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);
}
@media(min-width:640px){.titleblock{grid-template-columns:repeat(3,1fr)}}
.tb{background:var(--sheet);padding:16px clamp(16px,2vw,22px)}
.tb .lbl{display:block;margin-bottom:5px}
.tb strong{font-variation-settings:'wdth' 106,'wght' 640;font-weight:inherit;font-size:1.01rem;display:block;line-height:1.35}
.tb a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}
.tb a:hover{color:var(--brass);border-color:var(--brass)}

/* numbered specialisation list is NOT a sequence — plain ruled rows */
.spec{margin-top:clamp(28px,3.4vw,44px);border-top:1px solid rgba(11,34,57,.2)}
.spec .row{
  display:grid;gap:4px clamp(18px,3vw,42px);padding:18px 0;
  border-bottom:1px solid rgba(11,34,57,.13);
}
@media(min-width:760px){.spec .row{grid-template-columns:minmax(200px,.85fr) 1.6fr;align-items:baseline}}
.spec h3{margin:0;font-size:1.04rem;color:var(--ink)}
.spec p{margin:0;color:var(--ink-dim);font-size:.96rem;max-width:62ch}

.note{
  margin-top:clamp(28px,3.4vw,44px);border-left:2px solid var(--brass);
  padding:4px 0 4px clamp(16px,2vw,24px);
}
.note p{margin:0;max-width:64ch}
.note p + p{margin-top:.8em}

.back{display:inline-flex;align-items:center;gap:8px;color:var(--chalk-dim);text-decoration:none;font-size:.93rem;font-variation-settings:'wdth' 96,'wght' 520}
.back:hover{color:var(--chalk)}
