/* ==========================================================================
   ScanTech Inspection Services — "The Procedure"
   --------------------------------------------------------------------------
   base.css owns reset, wrap, sections, header/nav mechanics, buttons, forms,
   footer skeleton, reveals, preloader shell and the hero headline contract.
   This file supplies the palette, the technique-sheet grammar, the A-scan and
   the six numbered clauses.
   ========================================================================== */

:root{
  /* ---------- palette, straight from the brief ---------- */
  --ink:        #242038;
  --ink-2:      #2a2643;
  --ink-3:      #332e4d;
  --paper:      #f4f2ed;
  --paper-2:    #eae6dc;
  --blue:       #2b5672;
  --bright:     #116dff;
  --steel:      #8f94a3;

  --text:       #f4f2ed;
  --muted:      rgba(244,242,237,.64);
  --ink-text:   #242038;
  --ink-mute:   #5c586e;

  /* ---------- base.css contract ---------- */
  --accent:     var(--blue);
  --accent-lit: #9dc2dc;
  --accent-2:   var(--bright);
  --line:       rgba(244,242,237,.15);
  --line-d:     rgba(36,32,56,.16);
  --surface:    var(--paper);
  --surface-2:  var(--paper-2);

  /* ---------- type ---------- */
  --font-display: "Solway", Georgia, "Times New Roman", serif;
  --font-body:    "Trispace", system-ui, -apple-system, sans-serif;
  --font-mono:    "Fira Code", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --wrap-max: 1240px;
  --pad:      clamp(1.15rem, 4vw, 2.6rem);
  --radius:   2px;
  --ease:     cubic-bezier(.22,.61,.36,1);
}

html{ scroll-padding-top:96px; }
body{
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.66;
  letter-spacing:-.002em;
}
::selection{ background:var(--bright); color:#fff; }
:focus-visible{ outline:2px solid var(--bright); outline-offset:3px; }

.sect__h2{ font-weight:700; letter-spacing:-.024em; line-height:1.04; }
.sect__head .sect__lead{ margin-top:1.05rem; }
.sect__head--split .sect__lead{ margin-top:0; }
@media (max-width:1023px){ .sect__head--split .sect__lead{ margin-top:1rem; } }
.sect--light .sect__lead{ color:var(--ink-mute); }

/* very light paper grain over everything */
body::after{
  content:""; position:fixed; inset:0; z-index:870; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

.skip{
  position:absolute; left:.5rem; top:.5rem; z-index:10000;
  width:1px; height:1px; overflow:hidden; clip-path:inset(50%);
  padding:.75rem 1.1rem; background:var(--paper); color:var(--ink);
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
}
.skip:focus{ width:auto; height:auto; clip-path:none; }

/* ==========================================================================
   PRELOADER — the A-scan draws itself, the bar does the rest
   ========================================================================== */
.pre{ background:var(--ink); }
.pre__mark{ width:min(250px,58vw); margin-bottom:1.6rem; }
.pre__mark svg{ width:100%; height:auto; display:block; }
.pre__base{ stroke:rgba(244,242,237,.22); stroke-width:1; }
.pre__trace{
  fill:none; stroke:var(--bright); stroke-width:1.8; stroke-linejoin:round;
  stroke-dasharray:1; stroke-dashoffset:1;
  animation:preDraw 1.3s .08s var(--ease) forwards;
}
@keyframes preDraw{ to{ stroke-dashoffset:0; } }
.pre__meta{ color:rgba(244,242,237,.5); letter-spacing:.16em; font-size:.64rem; }
.pre__pct{ color:var(--bright); }
.pre__bar{ background:rgba(244,242,237,.16); height:2px; }
.pre__bar i{ background:var(--bright); }

/* ==========================================================================
   HEADER
   ========================================================================== */
.hdr{
  background:color-mix(in srgb, var(--ink) 92%, transparent);
  border-bottom:1px solid var(--line);
  color:var(--text);
}
.hdr__in{ min-height:80px; gap:.9rem; }
.brand{ display:flex; align-items:center; gap:.72rem; color:var(--text); flex-shrink:0; }
.brand__mark{ width:30px; height:30px; color:var(--bright); flex-shrink:0; }
.brand__mark svg{ width:30px; height:30px; display:block; }
.brand__type{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--font-display); font-weight:700; font-size:1.36rem; letter-spacing:-.025em; }
.brand__sub{ font-family:var(--font-mono); font-size:.48rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(244,242,237,.5); margin-top:.36rem; }

.nav__list{ gap:.05rem; }
@media (min-width:1024px){ .nav__foot{ display:none; } }
.nav__link{
  font-family:var(--font-body); font-size:.755rem; font-weight:500;
  letter-spacing:.07em; text-transform:uppercase;
  color:rgba(244,242,237,.74); padding:.58rem .6rem;
}
.nav__link:hover{ color:var(--text); background:rgba(244,242,237,.07); }
.nav__item.is-open > .nav__link{ color:var(--text); }
.nav__link[aria-current="page"]{ color:var(--text); box-shadow:inset 0 -2px 0 var(--bright); }

.hdr__tel{
  display:inline-flex; align-items:baseline; gap:.42rem;
  margin-left:.35rem; padding-left:.95rem; border-left:1px solid var(--line);
  font-family:var(--font-mono); font-size:.72rem; color:rgba(244,242,237,.82);
  white-space:nowrap; transition:color .2s;
}
.hdr__tel span{ font-size:.5rem; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); }
.hdr__tel:hover{ color:#fff; }
.hdr__cta{
  display:inline-flex; align-items:center; flex-shrink:0;
  padding:.68rem 1rem; margin-left:.2rem;
  background:var(--bright); color:#fff; white-space:nowrap;
  font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  border-radius:var(--radius);
  transition:transform .22s var(--ease), filter .22s;
}
.hdr__cta:hover{ transform:translateY(-1px); filter:brightness(1.1); }

/* ==========================================================================
   HERO — the instrument, at bench scale, with the sheet on top
   ========================================================================== */
.hero{
  position:relative; overflow:hidden;
  min-height:min(94svh, 900px);
  display:flex; align-items:center;
  padding-block:clamp(2.6rem, 6vw, 4.6rem);
  background:var(--ink);
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:64% 50%; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(36,32,56,.97) 0%, rgba(36,32,56,.94) 26%, rgba(36,32,56,.72) 46%, rgba(36,32,56,.24) 68%, rgba(36,32,56,.06) 100%),
    linear-gradient(0deg, rgba(36,32,56,.5) 0%, rgba(36,32,56,0) 38%);
}
.hero__in{ position:relative; z-index:2; width:100%; }
.hero__copy{ max-width:540px; }

.hero__kicker{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(244,242,237,.6);
}
.hero__kicker::before{ content:""; width:26px; height:1px; background:var(--bright); flex-shrink:0; }

.hero__h1{
  font-size:var(--h1-size, clamp(2.35rem, 5.3vw, 4rem));
  letter-spacing:-.03em;
  margin-top:1.15rem;
  color:var(--text);
}
.hero__h1 .line{ padding-block:.045em; }
.hero__h1 .dot{ font-style:normal; margin-left:-.13em; }

.hero__lead{
  margin-top:1.35rem; max-width:46ch;
  font-size:.97rem; line-height:1.7; color:rgba(244,242,237,.76);
}
.hero__acts{ display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-top:1.9rem; }
.hero__acts .btn{ padding:.78rem 1.15rem; font-size:.79rem; font-weight:500; }
.hero__trust{
  margin-top:1.7rem; display:flex; flex-wrap:wrap; align-items:center; gap:.55rem;
  font-family:var(--font-mono); font-size:.555rem; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(244,242,237,.44);
}
.hero__trust span{ color:var(--steel); }
.hero__note{
  position:absolute; right:var(--pad); bottom:1.5rem; z-index:2;
  font-family:var(--font-mono); font-size:.54rem; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(244,242,237,.38);
}

/* ---------- the sheet (hero panel + document share the language) ---------- */
.sheet{
  background:var(--paper); color:var(--ink-text);
  border:1px solid rgba(244,242,237,.28);
  box-shadow:0 34px 70px -34px rgba(0,0,0,.85);
}
.sheet--hero{ max-width:440px; margin-top:2rem; }
.sheet--hero::before{ content:""; display:block; height:2px; background:var(--bright); }
.sheet__top{
  display:flex; justify-content:space-between; gap:1rem;
  padding:.6rem .9rem; border-bottom:1px solid rgba(36,32,56,.16);
  font-family:var(--font-mono); font-size:.52rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue);
}
.sheet__fields > div{
  display:grid; grid-template-columns:84px minmax(0,1fr); gap:.7rem;
  align-items:baseline; padding:.55rem .9rem;
  border-bottom:1px solid rgba(36,32,56,.09);
}
.sheet__fields > div:last-child{ border-bottom:0; }
.sheet__fields dt{
  font-family:var(--font-mono); font-size:.52rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute);
}
.sheet__fields dd{
  margin:0; text-align:right; overflow-wrap:anywhere;
  font-family:var(--font-mono); font-size:.665rem; line-height:1.5;
  text-transform:uppercase; color:var(--ink-text);
}

/* ==========================================================================
   CLAUSE GRAMMAR — numbered margin, rules across the full width
   ========================================================================== */
.clause{ position:relative; border-top:1px solid var(--line); }
.clause--light{ background:var(--paper); color:var(--ink-text); border-top-color:var(--line-d); }
.clause--ink{ background:var(--ink); }
.clause--ink-2{ background:var(--ink-2); }
.clause--light .sect__lead{ color:var(--ink-mute); }
.clause--ink .sect__lead,
.clause--ink-2 .sect__lead{ color:var(--muted); }

.clause__grid{
  display:grid; grid-template-columns:104px minmax(0,1fr);
  gap:clamp(1rem, 2.6vw, 2.8rem); align-items:start;
}
.clause__mark{ display:flex; flex-direction:column; gap:.6rem; padding-top:.35rem; }
.clause__num{ font-family:var(--font-mono); font-size:1.02rem; letter-spacing:.02em; }
.clause__mark::after{
  content:""; display:block; width:1px; height:36px;
  background:currentColor; opacity:.2; margin-top:.35rem;
}
.clause__tag{
  font-family:var(--font-mono); font-size:.52rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-mute);
}
.clause--ink .clause__tag,
.clause--ink-2 .clause__tag{ color:var(--steel); }
.clause--light .clause__num{ color:var(--blue); }
.clause--ink .clause__num,
.clause--ink-2 .clause__num{ color:var(--accent-lit); }

/* ==========================================================================
   1.0 — WHO WE ARE
   ========================================================================== */
.about{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
  gap:clamp(1.8rem, 4vw, 4rem); align-items:start;
}
.about__prose p{
  font-size:.97rem; line-height:1.78; color:var(--ink-mute);
  max-width:62ch; margin-bottom:1.05rem;
}
.about__prose p:first-child{ font-size:1.08rem; color:var(--ink-text); line-height:1.68; }

.mission{ margin-top:1.9rem; padding:.15rem 0 .15rem 1.35rem; border-left:2px solid var(--bright); max-width:54ch; }
.mission p{
  font-family:var(--font-display); font-weight:400; font-size:1.14rem;
  line-height:1.5; letter-spacing:-.012em; color:var(--ink-text);
}
.mission cite{
  display:block; margin-top:.75rem; font-style:normal;
  font-family:var(--font-mono); font-size:.54rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-mute);
}

.about__aside{ border-top:1px solid var(--line-d); padding-top:.4rem; }
.facts > div{
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:.72rem 0; border-bottom:1px solid var(--line-d);
}
.facts dt{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-mute);
}
.facts dd{ margin:0; font-family:var(--font-mono); font-size:.72rem; color:var(--ink-text); text-align:right; }
.about__note{
  margin-top:1.15rem; font-family:var(--font-mono); font-size:.57rem;
  line-height:1.8; color:var(--ink-mute); max-width:30ch;
}

/* ==========================================================================
   2.0 — METHODS + the A-scan
   ========================================================================== */
.trace{ margin:0 0 clamp(2rem,4vw,3rem); }
.trace__plot{
  position:relative; height:clamp(112px,14vw,180px);
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(244,242,237,.035), rgba(244,242,237,0));
}
.trace__plot svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.trace__grid line{ stroke:rgba(244,242,237,.09); stroke-width:1; stroke-dasharray:2 7; }
.trace__base{ stroke:rgba(244,242,237,.3); stroke-width:1; vector-effect:non-scaling-stroke; }
.trace__line{
  fill:none; stroke:var(--bright); stroke-width:1.6; stroke-linejoin:round;
  vector-effect:non-scaling-stroke; stroke-dasharray:1; stroke-dashoffset:1;
}
.trace.is-drawn .trace__line{ stroke-dashoffset:0; transition:stroke-dashoffset 2.4s cubic-bezier(.45,.05,.2,1); }

.trace__pin{
  position:absolute; top:.55rem; transform:translateX(-50%);
  width:22px; height:22px; display:grid; place-items:center;
  border:1px solid rgba(17,109,255,.5); border-radius:50%;
  background:var(--ink); color:#8fb9ff;
  font-family:var(--font-mono); font-size:.54rem;
  opacity:0; transition:opacity .5s var(--ease) .9s;
}
.trace.is-drawn .trace__pin{ opacity:1; }
.trace__pin::after{
  content:""; position:absolute; top:100%; left:50%; width:1px; height:62%;
  background:linear-gradient(180deg, rgba(17,109,255,.4), rgba(17,109,255,.05));
}
.trace__legend{
  display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding-top:.8rem;
  font-family:var(--font-mono); font-size:.555rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
}
.trace__legend b{ color:var(--bright); font-weight:500; margin-right:.3rem; }
.trace__cap{ margin-left:auto; color:rgba(244,242,237,.36); }

.methods{ border-top:1px solid var(--line); }
.methods__head{
  display:grid; grid-template-columns:88px minmax(150px,.9fr) minmax(0,1.7fr) 128px 26px;
  gap:1.2rem; padding:.7rem 0 .7rem .85rem;
  border-bottom:1px solid var(--line);
  font-family:var(--font-mono); font-size:.52rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(244,242,237,.4);
}
.methods__head span:nth-child(1){ grid-column:1 / 3; }
.methods__head span:nth-child(2){ grid-column:3; }
.methods__head span:nth-child(3){ grid-column:4; }
.methods__head span:nth-child(4){ grid-column:5; }

.methods__list{ display:grid; }
.mrow{ border-bottom:1px solid var(--line); }
.mrow__link{
  display:grid; grid-template-columns:88px minmax(150px,.9fr) minmax(0,1.7fr) 128px 26px;
  gap:1.2rem; align-items:center; padding:1rem 0 1rem .85rem;
  transition:background .22s;
}
.mrow__link:hover{ background:rgba(244,242,237,.04); }
.mrow__code{ font-family:var(--font-mono); font-size:.66rem; letter-spacing:.06em; color:var(--steel); }
.mrow__code i{ display:block; font-style:normal; font-size:.5rem; letter-spacing:.12em; color:var(--bright); margin-bottom:.18rem; }
.mrow__name{
  font-family:var(--font-display); font-weight:700; font-size:1.16rem;
  line-height:1.2; letter-spacing:-.018em; color:var(--text);
}
.mrow__name em{
  display:block; margin-top:.28rem; font-style:normal;
  font-family:var(--font-mono); font-size:.5rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--steel);
}
.mrow__find{ font-size:.83rem; line-height:1.6; color:rgba(244,242,237,.62); }
.mrow__where{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.08em;
  text-transform:uppercase; color:rgba(244,242,237,.55);
}
.mrow__go{
  font-family:var(--font-mono); font-size:.85rem; color:var(--bright);
  opacity:.55; transition:opacity .2s, transform .24s var(--ease);
}
.mrow__link:hover .mrow__go{ opacity:1; transform:translate(2px,-2px); }
.mrow__link:hover .mrow__name{ color:#fff; }

.plates{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2.4vw,2rem); margin-top:clamp(2.2rem,4vw,3.4rem);
}
.plate{ margin:0; }
.plate img{ width:100%; aspect-ratio:3/2; object-fit:cover; border:1px solid var(--line); }
.plate figcaption{
  display:flex; flex-wrap:wrap; gap:.55rem; padding-top:.55rem;
  font-family:var(--font-mono); font-size:.54rem; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(244,242,237,.5);
}
.plate figcaption span{ color:var(--accent-lit); }

/* ==========================================================================
   3.0 — THE TECHNIQUE SHEET (specimen)
   ========================================================================== */
.doc{
  position:relative; background:#fbfaf6; color:var(--ink-text);
  border:1px solid rgba(36,32,56,.3);
  box-shadow:0 44px 90px -60px rgba(36,32,56,.6);
}
.doc__head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:2rem;
  padding:1.15rem 1.35rem; border-bottom:1px solid rgba(36,32,56,.18);
}
.doc__brand{ font-family:var(--font-display); font-weight:700; font-size:1rem; letter-spacing:-.012em; }
.doc__meta{
  margin-top:.32rem; font-family:var(--font-mono); font-size:.52rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mute);
}
.doc__id{ text-align:right; flex-shrink:0; }
.doc__title{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--blue);
}
.doc__sub{ margin-top:.25rem; font-family:var(--font-mono); font-size:.54rem; color:var(--ink-mute); }
.doc__stamp{
  display:inline-block; margin-top:.7rem; padding:.32rem .55rem;
  border:1.5px solid rgba(17,109,255,.45); transform:rotate(-3deg);
  font-family:var(--font-mono); font-size:.49rem; line-height:1.35;
  letter-spacing:.14em; text-transform:uppercase; color:var(--blue);
}
.doc__stamp b{ display:block; font-weight:400; font-size:.41rem; letter-spacing:.1em; color:var(--ink-mute); }

.doc__body{ padding:1.1rem 1.35rem 1.3rem; }
.doc__fields{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:clamp(1.6rem,3.4vw,2.8rem);
}
.frow{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:.55rem;
  align-items:baseline; padding:.56rem 0;
  border-bottom:1px dotted rgba(36,32,56,.24);
}
.frow dt{
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute); white-space:nowrap;
}
.frow dd{
  display:flex; align-items:baseline; justify-content:flex-end; gap:.55rem;
  margin:0; font-family:var(--font-mono); font-size:.64rem; color:var(--ink-text);
  white-space:nowrap;
}
.frow__lead{ flex:1 1 auto; height:.68em; border-bottom:1px dotted rgba(36,32,56,.2); }

.doc__fig{
  margin:1.25rem 0 0; padding-top:1.25rem;
  border-top:1px solid rgba(36,32,56,.16);
  display:grid; grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);
  gap:clamp(1rem,2.6vw,2.2rem); align-items:center;
}
.doc__fig svg{ width:100%; height:auto; display:block; }
.doc__fig figcaption{
  font-family:var(--font-mono); font-size:.52rem; line-height:1.75;
  letter-spacing:.03em; color:var(--ink-mute);
}
.doc__fig figcaption b{ color:var(--blue); font-weight:500; }

.doc__foot{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  gap:.8rem 2rem; padding:.85rem 1.35rem 1rem;
  border-top:1px solid rgba(36,32,56,.18); background:rgba(36,32,56,.03);
}
.doc__note{ font-family:var(--font-mono); font-size:.51rem; line-height:1.7; letter-spacing:.03em; color:var(--ink-mute); max-width:58ch; }
.doc__sign{
  display:flex; align-items:center; gap:.45rem;
  font-family:var(--font-mono); font-size:.5rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute);
}
.doc__sign i{ display:block; width:74px; height:.8rem; border-bottom:1px solid rgba(36,32,56,.42); }

/* ==========================================================================
   4.0 — THE TEAM
   ========================================================================== */
.crew{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 clamp(1.3rem,3vw,2.6rem); border-top:1px solid var(--line);
}
.crew__item{ padding:1.35rem 0 1.7rem; border-bottom:1px solid var(--line); min-width:0; }
.crew__no{ font-family:var(--font-mono); font-size:.53rem; letter-spacing:.14em; color:var(--accent-lit); }
.crew__name{
  font-family:var(--font-display); font-weight:700; font-size:1.28rem;
  line-height:1.15; letter-spacing:-.02em; margin:.45rem 0 .35rem;
}
.crew__mail{
  display:inline-block; font-family:var(--font-mono); font-size:.59rem;
  color:rgba(244,242,237,.6); border-bottom:1px solid rgba(244,242,237,.22);
  overflow-wrap:anywhere; transition:color .2s, border-color .2s;
}
.crew__mail:hover{ color:var(--accent-lit); border-color:var(--accent-lit); }
.crew__certs{ display:grid; gap:.32rem; margin-top:1rem; }
.crew__certs li{
  position:relative; padding-left:.9rem;
  font-family:var(--font-mono); font-size:.565rem; line-height:1.55;
  color:rgba(244,242,237,.68); overflow-wrap:anywhere;
}
.crew__certs li::before{ content:""; position:absolute; left:0; top:.62em; width:5px; height:1px; background:var(--steel); }

/* ==========================================================================
   5.0 — ACCREDITATION
   ========================================================================== */
.accred{
  display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(1.6rem,4vw,3.6rem); align-items:start;
}
.accred__badges{ margin:0; padding:clamp(1rem,2.4vw,1.9rem); background:#fff; border:1px solid var(--line-d); }
.accred__badges img{ width:100%; height:auto; mix-blend-mode:multiply; }

.accred__list{ display:grid; border-top:1px solid var(--line-d); }
.accred__list > div{
  display:grid; grid-template-columns:132px minmax(0,1fr); gap:1rem;
  align-items:baseline; padding:.9rem 0; border-bottom:1px solid var(--line-d);
}
.accred__list dt{ font-family:var(--font-display); font-weight:700; font-size:1.02rem; letter-spacing:-.014em; }
.accred__list dd{ margin:0; font-family:var(--font-mono); font-size:.6rem; line-height:1.7; color:var(--ink-mute); }

.counter{ display:flex; align-items:flex-end; gap:1.1rem; margin-top:1.9rem; padding-top:1.1rem; border-top:2px solid var(--ink-text); }
.counter__num{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(3rem,6vw,4.4rem); line-height:.82; letter-spacing:-.05em;
}
.counter__lab{
  font-family:var(--font-mono); font-size:.55rem; line-height:1.75;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mute);
}
.counter__lab b{ display:block; font-weight:500; font-size:.5rem; color:var(--blue); }

/* ==========================================================================
   6.0 — PROJECTS
   ========================================================================== */
.projects{
  display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
  gap:clamp(1.2rem,3vw,2.4rem); align-items:end;
}
.proj{ margin:0; min-width:0; }
.proj img{ width:100%; aspect-ratio:3/2; object-fit:cover; border:1px solid var(--line); }
.proj figcaption{
  display:flex; gap:.6rem; margin-top:.7rem;
  font-family:var(--font-mono); font-size:.55rem; line-height:1.7;
  letter-spacing:.05em; text-transform:uppercase; color:rgba(244,242,237,.52);
}
.proj figcaption span{ color:var(--accent-lit); flex-shrink:0; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact{ background:var(--blue); color:var(--paper); border-top:1px solid rgba(244,242,237,.18); }
.contact__in{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:clamp(2rem,5vw,4rem); align-items:start;
}
.contact__kicker{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(244,242,237,.6); margin-bottom:1rem;
}
.contact__h2{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(1.9rem,4.2vw,3.1rem); line-height:1.03; letter-spacing:-.03em;
  color:#fff;
}
.contact__lead{ margin-top:1.1rem; max-width:44ch; font-size:.95rem; line-height:1.72; color:rgba(244,242,237,.78); }
.contact .btn{ margin-top:1.8rem; }
.contact .btn--solid{ background:var(--paper); color:var(--ink); }
.contact .btn--solid:hover{ background:#fff; }

.contact__rows{ border-top:1px solid rgba(244,242,237,.3); }
.contact__rows > div{ padding:1.1rem 0; border-bottom:1px solid rgba(244,242,237,.3); }
.contact__k{
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(244,242,237,.58); margin-bottom:.4rem;
}
.contact__v{
  display:inline-block; font-family:var(--font-mono); font-size:.82rem;
  color:var(--paper); overflow-wrap:anywhere;
}
.contact__v:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.contact__v--tel{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(1.55rem,3vw,2.1rem); line-height:1.1; letter-spacing:-.02em;
}
.contact__rows address{ font-size:.78rem; line-height:1.8; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--ink); border-top:1px solid var(--line); }
.foot__top{ grid-template-columns:minmax(0,.72fr) minmax(0,1.6fr); }
.brand--foot{ margin-bottom:1.15rem; }
.foot__blurb{ max-width:34ch; font-size:.82rem; line-height:1.72; color:rgba(244,242,237,.6); }
.foot__reg{
  margin-top:1.15rem; font-family:var(--font-mono); font-size:.53rem;
  line-height:1.95; letter-spacing:.08em; text-transform:uppercase; color:rgba(244,242,237,.4);
}
.foot__h{ color:rgba(244,242,237,.45); }
.foot__nav a{ font-size:.78rem; overflow-wrap:anywhere; }
.foot__addr{ font-family:var(--font-mono); font-size:.6rem; line-height:1.85; color:rgba(244,242,237,.62); max-width:23ch; }
.foot__bottom{ font-size:.56rem; line-height:1.7; letter-spacing:.05em; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1180px){
  .nav__link{ font-size:.71rem; padding:.55rem .5rem; letter-spacing:.045em; }
  .hdr__tel{ display:none; }
  .crew{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1023px){
  .hdr__in{ min-height:70px; }
  .hdr__cta{ display:none; }
  .brand__name{ font-size:1.26rem; }
  .brand__mark, .brand__mark svg{ width:27px; height:27px; }

  .nav{ background:var(--ink); }
  .nav__headlabel{ color:var(--steel); }
  .nav__link{
    font-family:var(--font-display); font-weight:700; font-size:1.5rem;
    letter-spacing:-.02em; text-transform:none; color:var(--text);
    padding:1.05rem .1rem;
  }
  .nav__link:hover{ background:none; color:var(--accent-lit); }
  .nav__link[aria-current="page"]{ box-shadow:none; color:var(--accent-lit); }
  .nav__foot a{ color:rgba(244,242,237,.82); }
  .nav__foot a:first-child{ font-size:1rem; color:var(--text); }
  .nav__foot span{ font-size:.62rem; line-height:1.7; color:var(--steel); max-width:34ch; }
}

@media (max-width:900px){
  .hero{ display:block; min-height:0; padding-block:0; }
  .hero__media{ position:relative; inset:auto; height:clamp(190px,52vw,330px); }
  .hero__media img{ object-position:62% 46%; }
  .hero__media::after{
    background:linear-gradient(180deg, rgba(36,32,56,.02) 0%, rgba(36,32,56,.3) 52%, var(--ink) 100%);
  }
  .hero__in{ padding-block:1.5rem 2.6rem; }
  .hero__copy{ max-width:none; }
  .hero__note{ display:none; }
  .hero__h1{ font-size:var(--h1-size, clamp(2.2rem, 8.4vw, 3.4rem)); }

  .clause__grid{ grid-template-columns:minmax(0,1fr); gap:1.1rem; }
  .clause__mark{ flex-direction:row; align-items:center; gap:.8rem; padding-top:0; }
  .clause__mark::after{ width:34px; height:1px; margin:0; }
  .clause__tag{ margin-left:.1rem; }

  .about{ grid-template-columns:minmax(0,1fr); gap:2.2rem; }
  .doc__fig{ grid-template-columns:minmax(0,1fr); }
  .doc__fig svg{ max-width:430px; }
  .accred{ grid-template-columns:minmax(0,1fr); }
  .accred__badges{ max-width:520px; }
  .projects{ grid-template-columns:minmax(0,1fr); }
  .contact__in{ grid-template-columns:minmax(0,1fr); }

  .crew{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .foot__top{ grid-template-columns:minmax(0,1fr); }
}

@media (max-width:1080px){
  .methods__head{ display:none; }
  .mrow__link{
    grid-template-columns:auto minmax(0,1fr); grid-template-areas:
      "code name"
      "find find"
      "where where";
    gap:.45rem .9rem; padding:1.05rem 0; align-items:start;
  }
  .mrow__code{ grid-area:code; padding-top:.28rem; }
  .mrow__name{ grid-area:name; }
  .mrow__find{ grid-area:find; max-width:60ch; }
  .mrow__where{ grid-area:where; padding-top:.2rem; }
  .mrow__go{ display:none; }
}

@media (max-width:640px){
  .hero__acts .btn{ flex:1 1 auto; justify-content:center; }
  .plates{ grid-template-columns:minmax(0,1fr); }
  .crew{ grid-template-columns:minmax(0,1fr); }
  .doc__fields{ grid-template-columns:minmax(0,1fr); }
  .doc__head{ flex-direction:column; gap:1.1rem; }
  .doc__id{ text-align:left; }
  .doc__stamp{ margin-top:.6rem; }
  .doc__body{ padding:1rem 1rem 1.1rem; }
  .doc__head{ padding:1rem; }
  .doc__foot{ padding:.8rem 1rem 1rem; }
  .doc__sign i{ width:56px; }
  .counter{ align-items:flex-start; flex-direction:column; gap:.7rem; }
  .foot__nav > div:nth-child(3){ grid-column:1 / -1; }
  .foot__bottom{ flex-direction:column; }
}

@media (max-width:430px){
  .sheet__fields > div{ grid-template-columns:76px minmax(0,1fr); gap:.5rem; padding:.5rem .8rem; }
  .sheet__fields dd{ font-size:.62rem; }
  .sheet__top{ font-size:.48rem; padding:.55rem .8rem; }
  .hero__kicker{ font-size:.53rem; letter-spacing:.14em; }
  .frow dt{ font-size:.5rem; }
  .frow dd{ font-size:.6rem; }
  .accred__list > div{ grid-template-columns:minmax(0,1fr); gap:.3rem; }
}

@media (prefers-reduced-motion: reduce){
  .pre__trace{ animation:none; stroke-dashoffset:0; }
  .trace__line{ stroke-dashoffset:0; }
  .trace__pin{ opacity:1; }
}
