/* ==========================================================================
   Optical Test and Calibration — "The Chain"
   --------------------------------------------------------------------------
   base.css owns the reset, the layout shell, header/nav/mega mechanics,
   buttons, footer skeleton, reveals, preloader shell and the hero contract.
   This file supplies the palette, the drawing (chain, certificate, seal)
   and the nine sections of the homepage.
   ========================================================================== */

:root{
  /* ---------- palette, from the brief ---------- */
  --teal:      #0d7a93;
  --teal-d:    #0a5d6e;   /* small text on paper */
  --teal-band: #0a6273;   /* contact band: deep teal, still AA with white */
  --teal-l:    #74c2d2;   /* lines and small text on ink */
  --lume:      #e8c34a;
  --lume-ink:  #8a6f16;   /* lume used as text on paper */
  --ink:       #0b1216;
  --ink-2:     #101a1f;
  --ink-3:     #16242a;
  --paper:     #f4f3ef;
  --paper-2:   #fbfaf6;
  --mist:      #dbe6e9;

  /* ---------- base.css contract ---------- */
  --text:      #f4f3ef;
  --muted:     rgba(244,243,239,.62);
  --ink-text:  #0f181c;
  --ink-mute:  #5b696d;
  --surface:   var(--paper);
  --surface-2: var(--mist);
  --accent:    var(--teal);
  --accent-lit:var(--teal-l);
  --accent-2:  var(--lume);
  --line:      rgba(11,18,22,.15);
  --line-d:    rgba(11,18,22,.12);

  /* ---------- type ---------- */
  --font-display: "Crimson Pro", Georgia, "Times New Roman", serif;
  --font-body:    "Gantari", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "Sono", ui-monospace, "SFMono-Regular", Menlo, monospace;

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

html{ scroll-padding-top:124px; }
body{
  background:var(--paper);
  color:var(--ink-text);
  font-size:16.5px;
  line-height:1.66;
}
::selection{ background:var(--teal); color:#fff; }
:focus-visible{ outline-color:var(--focus,var(--teal-d)); }

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

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip{
  position:absolute; left:.6rem; top:.6rem; z-index:10000;
  width:1px; height:1px; overflow:hidden; clip-path:inset(50%);
  padding:.8rem 1.1rem; background:var(--ink); color:var(--paper);
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase;
}
.skip:focus{ width:auto; height:auto; clip-path:none; }

/* ==========================================================================
   PRELOADER — a chain drawing itself
   ========================================================================== */
.pre{ background:var(--paper); }
.pre__mark{ min-height:62px; display:grid; place-items:center; }
.pre__mark svg{ width:190px; height:auto; display:block; }
.pl{
  stroke:var(--ink); stroke-width:1.4; fill:none;
  stroke-dasharray:200; stroke-dashoffset:200;
  animation:predraw .95s var(--ease) forwards;
}
.plh{ stroke:var(--paper); stroke-width:7; fill:none; }
.pl1{ animation-delay:.05s; }
.pl2{ animation-delay:.3s; }
.pl3{ animation-delay:.55s; }
.pdot{ fill:var(--lume); opacity:0; animation:predot .5s var(--ease) 1s forwards; }
.pre__meta{
  color:var(--ink-mute); font-family:var(--font-mono);
  font-size:.58rem; letter-spacing:.14em; text-transform:uppercase;
}
.pre__pct{ color:var(--teal-d); }
.pre__bar{ width:min(220px,60vw); height:1px; background:rgba(11,18,22,.14); }
.pre__bar i{ background:var(--teal); }
@keyframes predraw{ to{ stroke-dashoffset:0; } }
@keyframes predot{ to{ opacity:1; } }

/* ==========================================================================
   HEADER — a letterhead: utility strip over the navigation
   ========================================================================== */
.hdr{
  background:var(--paper);
  color:var(--ink-text);
  border-bottom:1px solid var(--line);
}
@media (min-width:1024px){
  .hdr{
    background:color-mix(in srgb, var(--paper) 90%, transparent);
    backdrop-filter:blur(12px) saturate(1.05);
    -webkit-backdrop-filter:blur(12px) saturate(1.05);
  }
}
.hdr__top{ background:var(--ink); color:rgba(244,243,239,.62); }
.hdr__topin{
  max-width:var(--wrap-max); margin-inline:auto; padding-inline:var(--pad);
  min-height:32px; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase;
}
.hdr__topin p{ margin:0; }
.hdr__toplinks{ display:flex; align-items:center; gap:1.1rem; }
.hdr__toplinks a{ color:rgba(244,243,239,.62); transition:color .2s; }
.hdr__toplinks a:hover{ color:var(--lume); }
.hdr__tel{ color:var(--paper) !important; letter-spacing:.1em; }

.hdr__in{ min-height:72px; gap:1rem; }
.brand{ display:flex; align-items:center; gap:.65rem; }
.brand img{ width:auto; height:38px; filter:invert(1); opacity:.92; }
.brand__txt{ display:block; line-height:1; }
.brand__name{
  display:block; font-family:var(--font-display); font-size:1.06rem; font-weight:500;
  letter-spacing:-.006em; color:var(--ink-text); white-space:nowrap;
}
.brand__name i{ font-style:italic; color:var(--teal); }

.nav__list{ gap:0; }
.nav__link{
  font-family:var(--font-body); font-size:.72rem; font-weight:500;
  color:var(--ink-text); padding:.5rem .55rem; border-radius:2px;
  letter-spacing:.004em;
}
.nav__link:hover{ color:var(--teal-d); background:rgba(11,18,22,.045); }
.nav__item.is-open > .nav__link{ color:var(--teal-d); }
.nav__chev{ width:8px; opacity:.45; }

.hdr__cta{
  display:inline-flex; align-items:center; gap:.5rem;
  margin-left:.85rem; padding:.58rem .88rem;
  background:var(--ink); color:var(--paper);
  font-size:.75rem; font-weight:600; letter-spacing:.01em; border-radius:2px;
  transition:background .22s var(--ease), transform .22s var(--ease), color .22s;
}
.hdr__cta svg{ width:14px; height:auto; transition:transform .25s var(--ease); }
.hdr__cta:hover{ background:var(--teal); transform:translateY(-1px); }
.hdr__cta:hover svg{ transform:translateX(3px); }
.hdr__cta-short{ display:none; }
.burger span{ background:var(--ink-text); }

/* --- megas: paper panels, not dark dropdowns --- */
.mega{
  background:var(--paper); color:var(--ink-text);
  border:1px solid var(--line); border-radius:2px;
  box-shadow:0 34px 60px -30px rgba(11,18,22,.4);
}
.mega__h{
  color:var(--teal-d); border-bottom-color:var(--line);
  font-size:.55rem; letter-spacing:.18em;
}
.mega a{ color:rgba(11,18,22,.84); font-size:.82rem; }
.mega a:hover{ color:var(--teal-d); }
.mega__note{ font-size:.79rem; line-height:1.58; color:var(--ink-mute); }
.mega__cta{
  display:inline-block; margin-top:.8rem; padding-bottom:.2rem;
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--teal-d) !important; border-bottom:1px solid rgba(13,122,147,.35);
}
.mega__cta:hover{ border-bottom-color:var(--teal-d); }
.mega__tel{
  display:block; margin-top:1rem; padding:0 !important;
  font-family:var(--font-display); font-size:1.1rem; color:var(--ink-text) !important;
}
.mega__feat{ padding-left:1.4rem; border-left:1px solid var(--line); }
/* base.css only styles the overlay foot on mobile — keep it out of the desktop bar */
.nav__foot{ display:none; }

/* ==========================================================================
   HERO — the chain
   ========================================================================== */
.hero{
  position:relative;
  background:var(--paper);
  padding-top:clamp(1.4rem,3.4vw,2.6rem);
  padding-bottom:clamp(1.2rem,2.4vw,2rem);
  min-height:min(calc(100svh - 104px), 820px);
  display:flex; overflow:hidden;
}
.hero__in{
  display:flex; flex-direction:column; justify-content:space-between;
  gap:clamp(1.6rem,4vw,3.4rem); width:100%;
}
.hero__top{
  display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr);
  gap:clamp(1.2rem,3.6vw,3rem); align-items:end;
  padding-top:clamp(.4rem,2.4vw,1.6rem);
}
.hero__eyebrow{
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-mute); margin-bottom:clamp(.9rem,2.2vw,1.5rem);
}
.hero__eyebrow i{ width:6px; height:6px; background:var(--lume); display:block; flex:none; }
.hero__h1{
  font-weight:400; line-height:.94; letter-spacing:-.014em;
  color:var(--ink-text);
}
.hero__h1 .line{ padding-block:.06em; }
.hero__h1 em{ font-style:italic; color:var(--teal); }
.hero__aside{ max-width:37ch; padding-bottom:.35rem; }
.hero__sub{ font-size:1rem; line-height:1.68; color:var(--ink-mute); }
.hero__acts{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.5rem; }
.hero__note{
  margin-top:1.1rem; font-family:var(--font-mono); font-size:.59rem; line-height:1.75;
  letter-spacing:.05em; color:var(--ink-mute); max-width:40ch;
}

/* --- the chain drawing --- */
.chain{ margin-top:auto; padding-top:clamp(1rem,3vw,2.4rem); }
.chain__labels{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:.8rem;
}
.chain__labels li{
  position:relative; display:flex; flex-direction:column;
  align-items:center; justify-content:space-between; gap:.6rem;
  min-height:46px; text-align:center;
}
.chain__labels span{
  font-family:var(--font-mono); font-size:.58rem; line-height:1.5;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute);
  max-width:14ch;
}
.chain__labels li::after{ content:""; width:1px; height:13px; background:var(--line); }
.chain__labels li::before{
  content:""; position:absolute; bottom:-2px; left:50%; width:5px; height:5px;
  margin-left:-2.5px; border-radius:50%; background:var(--teal);
}
.chain__labels .is-ref span{ color:var(--ink-text); }
.chain__labels .is-ref::before{ background:var(--lume); }

.chain__svg{ display:block; width:100%; height:auto; overflow:visible; margin-top:-.55rem; }
.cl__halo{ fill:none; stroke:var(--paper); stroke-width:9; }
.cl__out{ fill:none; stroke:rgba(11,18,22,.82); stroke-width:1.6; }
.cl__in{ fill:none; stroke:rgba(11,18,22,.34); stroke-width:1.15; }
.cl--ref .cl__out{ stroke:var(--lume); stroke-width:2.4; fill:rgba(232,195,74,.1); }
.cl--ref .cl__in{ stroke:rgba(232,195,74,.6); stroke-width:1.3; }

.chain__dim{
  position:relative; display:grid; place-items:center;
  margin-top:1rem; min-height:14px;
}
.chain__dim svg{
  position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
  width:100%; height:12px; fill:none; stroke:var(--line); stroke-width:1;
}
.chain__dim span{
  position:relative; background:var(--paper); padding:0 clamp(.8rem,2vw,1.4rem);
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-mute);
}
.chain__dim i{ font-style:normal; color:var(--teal); margin:0 .25em; }

/* --- the same chain, hanging, on small screens --- */
.chainv{ display:none; }

/* ==========================================================================
   SECTION FURNITURE — the running head
   ========================================================================== */
.sect{ padding-block:clamp(3rem,6vw,5.4rem); }
.sect__h2{
  font-weight:400; letter-spacing:-.016em; line-height:1.04;
  font-size:clamp(1.9rem,4.1vw,3.15rem);
}
.sect__lead{ font-size:.97rem; line-height:1.7; color:var(--ink-mute); max-width:42ch; }
.sect__head--split{ align-items:end; }

.runhead{
  display:flex; align-items:center; gap:.85rem;
  padding-bottom:clamp(1rem,2.4vw,1.6rem);
}
.linkmark{ width:32px; height:18px; flex:none; overflow:visible; }
.linkmark rect{
  fill:none; stroke:var(--teal); stroke-width:1.1;
  stroke-dasharray:110; stroke-dashoffset:110;
}
.runhead.is-in .linkmark rect{ animation:linkdraw 1.1s var(--ease) forwards; }
.runhead__label{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--teal-d); white-space:nowrap;
}
.runhead__rule{
  flex:1; height:1px; background:var(--line);
  transform:scaleX(0); transform-origin:left center;
  transition:transform 1.1s var(--ease);
}
.runhead.is-in .runhead__rule{ transform:scaleX(1); }
.runhead__meta{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-mute); white-space:nowrap;
}
@keyframes linkdraw{ to{ stroke-dashoffset:0; } }

/* ==========================================================================
   01 — SINCE 1989
   ========================================================================== */
.since{ background:var(--mist); }
.since__grid{
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(1.8rem,5vw,4.4rem);
  padding-top:clamp(1.4rem,3.4vw,2.6rem);
}
.since__left{ display:flex; flex-direction:column; }
.since .sect__h2{ margin-bottom:auto; padding-bottom:clamp(1.6rem,3vw,2.4rem); }
.stamp{
  display:flex; align-items:center; gap:1rem;
  padding-top:1.1rem; border-top:1px solid var(--line);
}
.stamp img{ width:auto; height:54px; filter:invert(1); opacity:.85; }
.stamp p{
  font-family:var(--font-mono); font-size:.54rem; line-height:1.85;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mute);
}
.lede{
  font-family:var(--font-display); font-size:clamp(1.22rem,2vw,1.55rem);
  line-height:1.38; letter-spacing:-.004em; color:var(--ink-text); max-width:36ch;
}
.since__body > p + p{
  margin-top:1.05rem; font-size:.96rem; line-height:1.72;
  color:var(--ink-mute); max-width:52ch;
}
.facts{ margin-top:clamp(1.5rem,3vw,2.2rem); border-top:1px solid var(--line); }
.facts div{
  display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,1fr); gap:1rem;
  padding:.7rem 0; border-bottom:1px solid var(--line);
}
.facts dt{
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-mute); padding-top:.22rem;
}
.facts dd{ font-size:.885rem; line-height:1.5; color:var(--ink-text); }

/* ==========================================================================
   02 — THE ROUTE
   ========================================================================== */
.route{ background:var(--ink); color:rgba(244,243,239,.62); --focus:var(--lume); }
.route .sect__h2{ color:var(--paper); }
.route .sect__lead{ color:rgba(244,243,239,.6); }
.route .runhead__label{ color:var(--teal-l); }
.route .runhead__meta{ color:rgba(244,243,239,.56); }
.route .runhead__rule{ background:rgba(244,243,239,.18); }
.route .linkmark rect{ stroke:var(--teal-l); }

.route__list{
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(.9rem,2.2vw,1.7rem);
  margin-top:clamp(1.6rem,3vw,2.6rem);
}
.route__step{
  position:relative; padding-top:1.3rem;
  border-top:1px solid rgba(244,243,239,.2);
}
.route__step::before{
  content:""; position:absolute; left:-8px; top:-6px;
  width:15px; height:10px; border-radius:5px;
  border:1px solid rgba(116,194,210,.6); background:var(--ink);
}
.route__step:first-child::before{ display:none; }
.route__n{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.18em;
  color:var(--teal-l);
}
.route__step h3{
  font-family:var(--font-display); font-weight:400; font-size:1.5rem;
  line-height:1.08; letter-spacing:-.01em; color:var(--paper);
  margin:.45rem 0 .55rem;
}
.route__step p{ font-size:.86rem; line-height:1.62; color:rgba(244,243,239,.6); }
.route__link{
  display:inline-block; margin-top:.9rem; padding-bottom:.18rem;
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--lume); border-bottom:1px solid rgba(232,195,74,.3);
  transition:border-color .2s, color .2s;
}
.route__link:hover{ border-bottom-color:var(--lume); color:#f3d97f; }
.route__step--key{ border-top-color:rgba(232,195,74,.75); }
.route__step--key .route__n{ color:var(--lume); }
.route__step:nth-child(5)::before{ border-color:rgba(232,195,74,.55); }

/* ==========================================================================
   03 — THE CERTIFICATE
   ========================================================================== */
.cert{ background:var(--mist); }
.cert__grid{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
  gap:clamp(1.6rem,3.6vw,3.2rem); align-items:start;
  margin-top:clamp(2.6rem,4vw,3.4rem);
}
.certdoc{
  position:relative; margin:0;
  background:var(--paper-2);
  border:1px solid rgba(11,18,22,.2);
  padding:clamp(1.2rem,2.8vw,2.1rem);
  box-shadow:0 30px 70px -46px rgba(11,18,22,.7);
}
.certdoc__stamp{
  position:absolute; top:-2.1rem; right:clamp(.6rem,2vw,1.4rem);
  transform:rotate(-6deg);
  display:grid; gap:.12rem; padding:.34rem .7rem; text-align:center;
  border:1.5px solid rgba(232,195,74,.9); background:rgba(244,243,239,.72);
}
.certdoc__stamp b{
  font-family:var(--font-mono); font-size:.62rem; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; color:var(--lume-ink);
}
.certdoc__stamp span{
  font-family:var(--font-mono); font-size:.44rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--lume-ink);
}
.certdoc__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding-bottom:.6rem; border-bottom:1.5px solid rgba(11,18,22,.72);
}
.certdoc__kicker{
  font-family:var(--font-display); font-size:clamp(.98rem,1.5vw,1.16rem);
  letter-spacing:.15em; text-transform:uppercase; color:var(--ink-text);
}
.certdoc__ref{
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.16em; color:var(--ink-mute);
}
.certdoc__org{ padding:.85rem 0 .95rem; border-bottom:1px solid rgba(11,18,22,.16); }
.certdoc__name{ font-family:var(--font-display); font-size:1.02rem; color:var(--ink-text); }
.certdoc__addr{
  margin-top:.24rem; font-family:var(--font-mono); font-size:.5rem;
  letter-spacing:.05em; color:var(--ink-mute);
}
.certdoc__fields div{
  display:grid; grid-template-columns:minmax(0,8.6rem) minmax(0,1fr); gap:.9rem;
  padding:.6rem 0; border-bottom:1px dashed rgba(11,18,22,.16);
}
.certdoc__fields dt{
  font-family:var(--font-mono); font-size:.5rem; letter-spacing:.13em;
  text-transform:uppercase; color:#6b7679; padding-top:.2rem;
}
.certdoc__fields dd{ font-size:.85rem; line-height:1.45; color:var(--ink-text); }
.certdoc__foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  margin-top:1rem; padding-top:.9rem; border-top:1px solid rgba(11,18,22,.24);
}
.certdoc__trace{
  font-family:var(--font-display); font-style:italic; font-size:.92rem;
  line-height:1.4; color:#3a474b; max-width:25ch;
}
.certdoc__seal{ width:clamp(64px,9vw,84px); flex:none; color:var(--lume); }
.certdoc__seal svg{ display:block; width:100%; height:auto; overflow:visible; }
.seal__ring{ fill:none; stroke:currentColor; stroke-width:1.5; }
.seal__ring--in{ stroke-width:.9; opacity:.6; }
.seal__txt{
  font-family:var(--font-mono); font-size:6.1px; letter-spacing:.16em;
  fill:currentColor; opacity:.95;
}
.seal__big{ font-family:var(--font-display); font-size:19px; fill:currentColor; }
.seal__small{
  font-family:var(--font-mono); font-size:4.6px; letter-spacing:.16em;
  fill:currentColor; opacity:.8;
}

.cert__notes{ display:flex; flex-direction:column; }
.notes{ display:grid; }
.notes li{
  display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.5rem;
  padding:.95rem 0; border-top:1px solid var(--line);
}
.notes li:first-child{ border-top:1.5px solid rgba(11,18,22,.55); }
.notes__n{
  font-family:var(--font-mono); font-size:.57rem; letter-spacing:.1em;
  color:var(--teal-d); padding-top:.28rem;
}
.notes h3{
  font-family:var(--font-display); font-weight:500; font-size:1.16rem;
  line-height:1.2; letter-spacing:-.005em; margin-bottom:.2rem;
}
.notes p{ font-size:.875rem; line-height:1.62; color:var(--ink-mute); }
.cert__aside{
  margin-top:1.1rem; padding:.9rem 1rem;
  border-left:2px solid var(--lume); background:rgba(251,250,246,.6);
  font-size:.8rem; line-height:1.6; color:var(--ink-mute);
}

/* ==========================================================================
   04 — DISCIPLINES
   ========================================================================== */
.disc{ background:var(--paper); }
.disc__wrap{ margin-top:clamp(1.4rem,3vw,2.2rem); }
.disc__table{ width:100%; border-collapse:collapse; text-align:left; }
.disc__table th{
  font-family:var(--font-mono); font-size:.56rem; font-weight:400;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ink-mute);
  padding:0 0 .7rem; border-bottom:1.5px solid rgba(11,18,22,.55);
}
.disc__table td{
  padding:1.05rem 0; border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.disc__n{
  width:3rem; font-family:var(--font-mono); font-size:.55rem;
  letter-spacing:.08em; color:var(--ink-mute);
}
.disc__thn{ width:3rem; }
.disc__name{
  font-family:var(--font-display); font-size:1.4rem; line-height:1.2;
  letter-spacing:-.005em; color:var(--ink-text);
}
.disc__status{
  width:15rem; text-align:right; white-space:nowrap;
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-text);
}
.disc__thstatus{ text-align:right; }
.disc__status .dot{
  display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--lume); margin-right:.55rem; vertical-align:1px;
}
.disc__status--no{ color:var(--ink-mute); }
.disc__status--no .dash{
  display:inline-block; width:7px; height:1px; background:currentColor;
  margin-right:.55rem; vertical-align:3px;
}
.disc__table tbody tr{ transition:background .2s; }
.disc__table tbody tr:hover{ background:rgba(13,122,147,.055); }
.disc__foot{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1.2rem; margin-top:1.5rem;
}
.disc__foot p{ font-size:.78rem; line-height:1.6; color:var(--ink-mute); max-width:60ch; }

/* ==========================================================================
   05 — BEYOND CALIBRATION
   ========================================================================== */
.beyond{ background:var(--ink); color:var(--paper); --focus:var(--lume); }
.beyond .sect__h2{ color:var(--paper); }
.beyond .sect__lead{ color:rgba(244,243,239,.6); }
.beyond .runhead__label{ color:var(--teal-l); }
.beyond .runhead__meta{ color:rgba(244,243,239,.56); }
.beyond .runhead__rule{ background:rgba(244,243,239,.18); }
.beyond .linkmark rect{ stroke:var(--teal-l); }

.ledger{ margin-top:clamp(1.2rem,2.6vw,2rem); border-top:1px solid rgba(244,243,239,.2); }
.ledger li{ border-bottom:1px solid rgba(244,243,239,.12); }
.ledger a{
  display:grid;
  grid-template-columns:3.2rem minmax(0,16rem) minmax(0,1fr) 1.8rem;
  grid-template-areas:"n name desc arrow";
  align-items:center; gap:clamp(.8rem,2vw,1.6rem);
  padding:clamp(.9rem,1.8vw,1.35rem) 0;
  transition:background .25s, padding .25s var(--ease);
}
.ledger a:hover{ background:rgba(13,122,147,.12); }
.ledger__n{
  grid-area:n; font-family:var(--font-mono); font-size:.55rem;
  letter-spacing:.1em; color:rgba(244,243,239,.52);
}
.ledger__name{
  grid-area:name; font-family:var(--font-display); font-size:clamp(1.28rem,2.3vw,1.75rem);
  line-height:1.12; letter-spacing:-.01em; color:var(--paper);
  transition:transform .3s var(--ease), color .2s;
}
.ledger a:hover .ledger__name{ transform:translateX(6px); color:#fff; }
.ledger__desc{
  grid-area:desc; font-size:.85rem; line-height:1.55; color:rgba(244,243,239,.55);
}
.ledger__arrow{
  grid-area:arrow; width:17px; justify-self:end;
  color:rgba(244,243,239,.4);
  transition:transform .3s var(--ease), color .25s;
}
.ledger a:hover .ledger__arrow{ transform:translateX(4px); color:var(--lume); }

/* ==========================================================================
   06 — CONTACT
   ========================================================================== */
.contact{
  background:var(--teal-band); color:var(--paper); --focus:var(--lume);
  padding-block:clamp(3rem,6vw,5rem);
}
.contact__in{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(1.6rem,4vw,3.6rem); align-items:start;
}
.contact__eyebrow{
  font-family:var(--font-mono); font-size:.57rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(244,243,239,.82); margin-bottom:1.2rem;
}
.contact__h{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.03; letter-spacing:-.02em;
}
.contact__right{ display:grid; gap:1.1rem; justify-items:start; }
.contact__tel{
  font-family:var(--font-display); font-size:clamp(1.7rem,3.4vw,2.5rem);
  line-height:1; padding-bottom:.28rem; color:var(--paper);
  border-bottom:1px solid rgba(244,243,239,.4);
  transition:border-color .2s, color .2s;
}
.contact__tel:hover{ border-bottom-color:var(--lume); color:#fff; }
.contact address{
  font-size:.94rem; line-height:1.62; color:rgba(244,243,239,.88);
}
.contact__acts{ display:flex; flex-wrap:wrap; gap:.55rem; }
.contact__fine{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.06em;
  line-height:1.9; color:rgba(244,243,239,.84);
}
.contact__fine a{ color:var(--paper); border-bottom:1px solid var(--lume); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--ink); border-top:1px solid rgba(244,243,239,.14); }
.foot img{ width:132px; height:auto; opacity:.92; }
.foot__blurb{
  font-size:.82rem; line-height:1.66; color:rgba(244,243,239,.62); max-width:34ch;
}
.foot__tel{ margin-top:1rem; }
.foot__tel a{ font-family:var(--font-display); font-size:1.3rem; color:var(--paper); }
.foot__h{ color:rgba(244,243,239,.6); font-size:.55rem; letter-spacing:.17em; }
.foot__nav a{ font-size:.81rem; color:rgba(244,243,239,.72); }
.foot__nav a:hover{ color:var(--lume); }
.foot__bottom{
  border-top:0;
  font-size:.58rem; letter-spacing:.06em; padding-top:1.1rem; color:rgba(244,243,239,.5);
}

/* ==========================================================================
   BUTTONS (paper / ink / teal)
   ========================================================================== */
.btn{
  font-family:var(--font-body); font-size:.81rem; font-weight:600;
  letter-spacing:.005em; padding:.8rem 1.15rem; border-radius:2px;
}
.btn--solid{ background:var(--lume); color:var(--ink); }
.btn--solid:hover{ background:#f0d06a; filter:none; }
.btn--line,.btn--ghost{
  border:1px solid rgba(11,18,22,.28); color:var(--ink-text);
}
.btn--line:hover,.btn--ghost:hover{
  border-color:var(--ink); background:rgba(11,18,22,.045);
  color:var(--ink-text);
}
.btn--lume{ background:var(--lume); color:var(--ink); }
.btn--lume:hover{ background:#f0d06a; transform:translateY(-2px); }
.contact .btn--line{
  border-color:rgba(244,243,239,.42); color:var(--paper);
}
.contact .btn--line:hover{
  background:var(--paper); color:var(--teal-d); border-color:var(--paper);
}
.btn--sm{ padding:.62rem .9rem; font-size:.74rem; }

/* ==========================================================================
   HERO ENTRANCE
   ========================================================================== */
@keyframes heroLine{
  from{ opacity:0; transform:translateY(.4em); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: no-preference){
  body.loaded .hero__h1 .line > span{ animation:heroLine .95s var(--ease) .05s both; }
  body.loaded .hero__h1 .line:nth-child(2) > span{ animation-delay:.16s; }
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1320px){
  .nav__link{ font-size:.69rem; padding:.46rem .44rem; }
  .hdr__cta{ padding:.55rem .8rem; font-size:.73rem; }
}
@media (max-width:1300px){
  .brand__txt{ display:none; }
  .hdr__cta-long{ display:none; }
  .hdr__cta-short{ display:inline; }
}
@media (max-width:1023px){
  .hdr__in{ min-height:66px; gap:.7rem; }
  .hdr__cta{ margin-left:auto; }
  .burger{ margin-left:0; }
  .brand img{ height:34px; }

  .hero{ min-height:min(calc(100svh - 98px),760px); }
  .hero__top{ grid-template-columns:minmax(0,1fr); align-items:start; gap:1.4rem; }
  .hero__aside{ max-width:46ch; padding-bottom:0; }
  .hero__sub{ font-size:.96rem; }
  .sect__head--split{ align-items:start; }

  /* the overlay is ink: everything inside it is light */
  .nav{ background:var(--ink); color:var(--paper); }
  .nav__head{ border-bottom-color:rgba(244,243,239,.16); }
  .nav__headlabel{ color:rgba(244,243,239,.5); }
  .nav__close{ border-color:rgba(244,243,239,.22); color:var(--paper); }
  .nav__item{ border-bottom-color:rgba(244,243,239,.13); }
  .mega{ background:none; border:0; border-radius:0; box-shadow:none; }
  .nav__link{
    font-family:var(--font-display); font-size:1.5rem; font-weight:400;
    letter-spacing:-.012em; color:var(--paper); padding:.66rem .1rem;
  }
  .nav__link:hover{ color:var(--lume); background:none; }
  .nav__item.is-open > .nav__link{ color:var(--lume); }
  .nav__chev{ width:12px; opacity:.5; }
  .nav__foot{
    display:grid;
    color:rgba(244,243,239,.58);
    border-top:1px solid rgba(244,243,239,.14);
    margin-top:auto; padding-top:1.1rem;
    font-size:.6rem; letter-spacing:.05em;
  }
  .nav__foot a{ color:rgba(244,243,239,.78); }
  .nav__footcta{
    display:inline-flex; justify-content:center; margin-top:.4rem;
    background:var(--lume); color:var(--ink) !important;
    padding:.8rem 1rem; font-family:var(--font-body);
    font-size:.84rem; font-weight:600; letter-spacing:0;
  }
  .mega__h{ color:var(--teal-l); border-bottom-color:rgba(244,243,239,.16); }
  .mega a{ color:rgba(244,243,239,.72); }
  .mega a:hover{ color:var(--lume); }
  .mega__note{ color:rgba(244,243,239,.55); }
  .mega__feat{
    border-left:0; border-top:1px solid rgba(244,243,239,.14);
    padding-left:0; padding-top:1rem;
  }
  .mega__cta{ color:var(--lume) !important; border-bottom-color:rgba(232,195,74,.3); }
  .mega__tel{ color:var(--paper) !important; }

  .since__grid{ grid-template-columns:minmax(0,1fr); gap:1.8rem; }
  .since .sect__h2{ padding-bottom:1.4rem; }
  .cert__grid{ grid-template-columns:minmax(0,1fr); }
  .contact__in{ grid-template-columns:minmax(0,1fr); }
  .ledger a{
    grid-template-columns:2.4rem minmax(0,1fr) 1.5rem;
    grid-template-areas:"n name arrow" "n desc arrow";
    row-gap:.35rem;
  }
  .disc__name{ width:34%; }
  .disc__status{ width:11.5rem; }
}
@media (max-width:900px){
  .route__list{ grid-template-columns:minmax(0,1fr); gap:0; }
  .route__step{
    border-top:0; border-left:1px solid rgba(244,243,239,.18);
    padding:.15rem 0 1.5rem 1.5rem;
  }
  .route__step::before{ left:-8px; top:.25rem; }
  .route__step:first-child::before{ display:block; }
  .route__step:last-child{ padding-bottom:0; }
  .route__n{ display:block; padding-top:.1rem; }
}
@media (max-width:780px){
  .chain__labels,.chain__svg{ display:none; }
  .chainv{
    display:grid; position:relative; padding-block:.2rem;
  }
  .chainv::before{
    content:""; position:absolute; top:23px; bottom:23px; right:25.5px;
    width:1px; background:var(--line);
  }
  .chainv li{
    display:grid; grid-template-columns:minmax(0,1fr) 52px;
    align-items:center; gap:.7rem; min-height:46px;
  }
  .chainv li > span{
    text-align:right; font-family:var(--font-mono); font-size:.58rem;
    letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mute);
  }
  .chainv li > i{ display:grid; place-items:center; }
  .chainv svg{ display:block; width:44px; height:auto; }
  .cv__halo{ fill:none; stroke:var(--paper); stroke-width:7; }
  .cv__out{ fill:none; stroke:rgba(11,18,22,.72); stroke-width:1.4; }
  .chainv .is-ref > span{ color:var(--ink-text); }
  .chainv .is-ref .cv__out{ stroke:var(--lume); stroke-width:2.2; }
  .chain__dim{ margin-top:.7rem; }
  .chain__dim span{ font-size:.5rem; letter-spacing:.18em; }

  .hero{ min-height:0; padding-top:1.2rem; }
  .hero__in{ gap:1.6rem; }
  .hero__h1{ letter-spacing:-.01em; }
  .sect__head--split{ gap:1rem; }
  .disc__name{ font-size:1.18rem; }
  .disc__status{ width:auto; font-size:.5rem; }
  .disc__n,.disc__thn{ width:2.2rem; }
  .disc__foot{ align-items:flex-start; }
  .facts div{ grid-template-columns:minmax(0,1fr); gap:.15rem; }
  .facts dt{ padding-top:0; }
  .certdoc__fields div{ grid-template-columns:minmax(0,1fr); gap:.15rem; }
  .certdoc__fields dt{ padding-top:0; }
  .certdoc__stamp{ top:-1.9rem; }
  .certdoc__stamp span{ font-size:.4rem; }
}
@media (max-width:640px){
  .hdr__top{ display:none; }
  .hero{ min-height:calc(100svh - 66px); }
}
@media (max-width:560px){
  .brand__txt{ display:none; }
  .brand img{ height:32px; }
  .hero__acts{ gap:.45rem; }
  .btn{ font-size:.78rem; padding:.78rem 1rem; }
  .runhead__meta{ display:none; }
  .runhead__label{ font-size:.52rem; letter-spacing:.12em; }
  .linkmark{ width:26px; }
  .certdoc__foot{ align-items:center; }
  .certdoc__trace{ font-size:.84rem; }
  .contact__acts{ flex-direction:column; align-items:stretch; }
  .contact__acts .btn{ justify-content:center; }
  .foot__tel a{ font-size:1.15rem; }
}
@media (max-width:380px){
  .hero__note{ font-size:.52rem; }
  .disc__status{ font-size:.46rem; letter-spacing:.06em; }
  .disc__status .dot{ margin-right:.35rem; }
  .certdoc__stamp{ right:0; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .pl,.pdot{ animation:none; stroke-dashoffset:0; opacity:1; }
  .linkmark rect{ stroke-dashoffset:0; animation:none; }
  .runhead__rule{ transform:none; }
  .ledger a:hover .ledger__name,
  .ledger a:hover .ledger__arrow{ transform:none; }
}
