/* AirFexLABS — "The Record"
   One appearance, declared. No prefers-color-scheme, no [data-theme].
   Zero third-party requests. Zero JavaScript. Zero border-radius. Zero box-shadow. */

/* ---------- fonts: self-hosted, no external request ---------- */
@font-face{font-family:"IBM Plex Sans";src:url("/fonts/IBMPlexSans-Regular.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("/fonts/IBMPlexSans-SemiBold.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Regular.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Medium.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap}

:root{
  --paper:#FAF9F6; --paper-2:#F1EFE9; --rule:#DDD9CF;
  --ink:#16191B; --ink-2:#5B6167; --ink-dark:#12171A;
  --accent:oklch(0.46 0.10 70); --accent-on-dark:oklch(0.82 0.12 75);

  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:40px; --s6:64px;
  --section-y:clamp(64px,9vw,112px);
  --container:1140px;
  --pad-x:clamp(20px,5vw,40px);

  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --t-figure:clamp(38px,6vw,58px);
  --t-h1:clamp(29px,4.2vw,44px);
  --t-h2:clamp(21px,2.5vw,27px);
  --t-h3:18px;
  --t-body:17px;
  --t-small:15px;
  --t-stamp:13px;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:var(--t-body);line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:600;line-height:1.18;letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.container{max-inline-size:var(--container);margin-inline:auto;padding-inline:var(--pad-x)}
.prose{max-inline-size:62ch}
.standfirst{max-inline-size:56ch}
section{padding-block:var(--section-y)}
section + section{border-top:1px solid var(--rule)}

/* ---------- header ---------- */
.masthead{position:sticky;top:0;z-index:10;background:var(--paper);
  border-bottom:1px solid var(--rule)}
.masthead .container{display:flex;align-items:center;gap:var(--s5);
  padding-block:var(--s3)}
.wordmark{font-family:var(--mono);font-weight:500;font-size:var(--t-small);
  letter-spacing:.04em;color:var(--ink);text-decoration:none;border-bottom:0}
.masthead nav{margin-inline-start:auto;display:flex;gap:var(--s4)}
.masthead nav a{font-size:var(--t-small)}

/* ---------- links & button: never --accent ---------- */
a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink-2);
  transition:color .15s linear,border-color .15s linear}
a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.btn{display:inline-block;background:var(--ink);color:var(--paper);border:0;
  padding:var(--s3) var(--s4);font-size:var(--t-small);font-weight:600;
  transition:background-color .15s linear}
.btn:hover{background:#000;color:var(--paper)}

/* ---------- the .record primitive ---------- */
.record{position:relative;padding-top:var(--s4);max-inline-size:56ch}
/* 2px x 32px tick, not a full-width rule: a rule across the top of a block is
   the "accent bar on a card" pattern the anti-slop rules reject by name. */
.record::before{content:"";position:absolute;top:0;left:0;
  inline-size:32px;block-size:2px;background:var(--accent)}
.record + .record{margin-top:var(--s5)}
.record .figure{display:block;font-family:var(--mono);font-weight:500;
  font-size:var(--t-figure);line-height:1.05;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.record .label{display:block;margin-top:var(--s2);font-size:var(--t-body);color:var(--ink)}
.record .stamp{display:block;margin-top:var(--s3);font-family:var(--mono);
  font-size:var(--t-stamp);line-height:1.55;color:var(--ink-2)}
.record .correction{display:block;margin-top:var(--s2);font-size:var(--t-small);
  color:var(--ink-2)}
.record .correction del{color:var(--ink-2)}
.record .correction strong{color:var(--ink);font-weight:600}

/* ---------- hero ---------- */
.hero{padding-block:clamp(56px,8vw,96px) var(--section-y)}
.kicker{font-family:var(--mono);font-size:var(--t-stamp);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s5)}
.hero h1{font-size:var(--t-h1);max-inline-size:24ch;margin-top:var(--s6)}
.hero .standfirst{margin-top:var(--s4);color:var(--ink-2)}
.hero .btn{margin-top:var(--s5)}

/* ---------- generic section head ---------- */
.eyebrow{font-family:var(--mono);font-size:var(--t-stamp);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s3)}
h2{font-size:var(--t-h2);max-inline-size:26ch}
.after-h2{margin-top:var(--s4)}

/* ---------- rules (method) ---------- */
.rule-block{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--rule)}
.rule-block:first-of-type{border-top:0;padding-top:0}
.rule-block h3{font-size:var(--t-h3);max-inline-size:34ch}
.rule-block p{margin-top:var(--s3);color:var(--ink-2)}
.rule-block .record{margin-top:var(--s5)}

/* ---------- dark band: the single change of ground and air ---------- */
.band{background:var(--ink-dark);color:var(--paper);
  padding-block:clamp(112px,15vw,184px);border-top:0}
.band h2{color:var(--paper)}
.band .eyebrow{color:var(--accent-on-dark)}
.band p{color:#C6C9C7}
.band strong{color:var(--paper);font-weight:600}
.band a{color:var(--paper);border-bottom-color:#6E7674}
.band a:hover{border-bottom-color:var(--paper)}

/* ---------- plain list ---------- */
.plainlist{margin:var(--s5) 0 0;padding:0;list-style:none;max-inline-size:62ch}
.plainlist li{padding-block:var(--s4);border-top:1px solid var(--rule)}
.plainlist li:last-child{border-bottom:1px solid var(--rule)}
.plainlist b{font-weight:600}
.plainlist span{display:block;margin-top:var(--s2);color:var(--ink-2);font-size:var(--t-small)}

/* ---------- contact ---------- */
.contact-grid{margin-top:var(--s5);display:grid;gap:var(--s5);
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));max-inline-size:62ch}
.contact-grid dt{font-family:var(--mono);font-size:var(--t-stamp);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s2)}
.contact-grid dd{margin:0;font-size:var(--t-small)}

footer{border-top:1px solid var(--rule);padding-block:var(--s5);
  font-family:var(--mono);font-size:var(--t-stamp);color:var(--ink-2)}
footer p{max-inline-size:62ch}
footer p + p{margin-top:var(--s3)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ---------- language switch: two pages, no script ---------- */
.langs{display:flex;gap:var(--s2);align-items:baseline;margin-inline-start:var(--s4)}
.langs a,.langs span{font-family:var(--mono);font-size:var(--t-stamp);letter-spacing:.06em}
.langs span{color:var(--ink);border-bottom:1px solid var(--ink)}
.langs a{color:var(--ink-2);border-bottom:0}
.langs a:hover{color:var(--ink)}
.langs em{color:var(--rule);font-style:normal}

/* ---------- pull quote: the founder's position, set apart ---------- */
.stance{margin-top:var(--s5);padding:var(--s4) 0 var(--s4) var(--s4);
  border-left:2px solid var(--accent);max-inline-size:56ch;font-size:19px;line-height:1.5}
.band .stance{border-left-color:var(--accent-on-dark);color:var(--paper)}

/* ---------- who signs it: attribution is information, not decoration ---------- */
.signs{display:block;margin-top:var(--s2);font-family:var(--mono);font-size:var(--t-stamp);
  letter-spacing:.04em;color:var(--ink-2)}
.signs b{color:var(--ink);font-weight:500}
