/* ============================================================
   FundGuard Capital — design system
   Graphite / cold-rolled steel / a single warm brass accent.
   Engraved-plate bond: everything reads as milled, ruled, struck.
   Legacy token names (--pine-*, --mint*) are kept so every existing
   rule and every sub-page inherits the regrade without edits.
   ============================================================ */

:root{
  /* graphite substrate — cool, near-neutral so brass is the only warmth */
  --pine-0:#07090b;
  --pine-1:#0d1013;
  --pine-2:#13181d;
  --pine-3:#1b2229;
  --pine-4:#242c35;

  /* cold-rolled steel */
  --steel-hi:#ccd5dd;
  --steel:#98a4b0;
  --steel-lo:#7b8794;

  /* the single warm metal: brass. --mint kept as the alias */
  --mint:#c9974e;
  --mint-hi:#edcf95;
  --mint-dim:rgba(201,151,78,.14);
  --brass:#c9974e;
  --brass-hi:#edcf95;

  --ink:#eef1f4;
  --ink-2:#b9c2cb;
  --warn:#f4826a;

  --line:rgba(152,164,176,.22);
  --line-soft:rgba(152,164,176,.12);

  /* brushed-plate fill: a directional sheen, not a flat translucency */
  --glass:linear-gradient(158deg, rgba(255,255,255,.058), rgba(255,255,255,.012) 46%, rgba(255,255,255,.03));
  --glass-edge:rgba(201,151,78,.20);

  --disp:'Manrope',system-ui,-apple-system,sans-serif;
  --body:'Source Sans 3','Source Sans Pro',system-ui,-apple-system,sans-serif;

  --gutter:clamp(16px,2.4vw,28px);
  --sect:clamp(72px,10vw,128px);
  --r-lg:18px;
  --r-md:12px;

  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-plate:cubic-bezier(.16,1,.3,1);
}

/* ---------- reset & base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--pine-1);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,canvas{display:block;max-width:100%}
a{color:var(--mint);text-decoration:none}
a:hover{color:var(--mint-hi)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--mint);color:var(--pine-0)}
:focus-visible{
  outline:2px solid var(--mint);
  outline-offset:3px;
  box-shadow:0 0 0 7px rgba(201,151,78,.14);
  border-radius:4px;
}

h1,h2,h3{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
h1{font-size:clamp(2.35rem,5.2vw,4.05rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
h3{font-size:1.16rem;letter-spacing:-.01em}
p{max-width:68ch}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--mint);color:var(--pine-0);
  padding:10px 18px;font-weight:600;border-radius:0 0 10px 0;
}
.skip-link:focus{left:0}

.shell{width:min(1200px,100% - 2*var(--gutter));margin-inline:auto}
.cols{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gutter)}

.kicker{
  font-family:var(--disp);font-weight:700;font-size:.78rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--mint);
  display:inline-flex;align-items:center;gap:10px;
}
.kicker::before{content:"";width:22px;height:2px;background:var(--mint);opacity:.75}
.section-head{margin-bottom:clamp(34px,5vw,58px);max-width:760px}
.section-head h2{margin-top:14px}
.section-head p{margin-top:14px;color:var(--ink-2);font-size:1.1rem}

/* hex lattice backdrop (honeycomb tile) */
.lattice{position:relative}
.lattice::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 66L0 50L0 16L28 0L56 16L56 50L28 66L28 100' fill='none' stroke='rgba(152,164,176,0.055)' stroke-width='1'/%3E%3Cpath d='M28 0L28 34L0 50L0 84L28 100L56 84L56 50L28 34' fill='none' stroke='rgba(152,164,176,0.055)' stroke-width='1'/%3E%3C/svg%3E");
  background-size:56px 100px;
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 40%, #000 30%, transparent 78%);
  mask-image:radial-gradient(ellipse 90% 80% at 50% 40%, #000 30%, transparent 78%);
}
.lattice > *{position:relative;z-index:1}

/* ---------- reveal choreography ---------- */
[data-reveal]{
  opacity:0;
  transform:scale(.985) translateY(10px);
  transition:opacity .85s var(--ease-out), transform .85s var(--ease-out);
  transition-delay:calc(var(--rv,0)*90ms);
  will-change:opacity,transform;
}
[data-reveal].is-in{opacity:1;transform:none}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:100;
  background:rgba(13,16,19,.72);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s,background .3s;
}
.site-head.is-scrolled{border-bottom-color:var(--line-soft);background:rgba(9,11,14,.86)}
.site-head__bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;min-height:74px;
}
.mark{display:inline-flex;align-items:center;gap:12px;color:var(--ink)}
.mark:hover{color:var(--ink)}
.mark__glyph{width:38px;height:38px;flex:none}
.mark__word{font-family:var(--disp);font-weight:800;font-size:1.06rem;letter-spacing:.12em}
.mark__word small{
  display:block;font-weight:700;font-size:.6rem;letter-spacing:.34em;
  color:var(--steel);margin-top:1px;
}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px)}
.site-nav__link{
  color:var(--ink-2);font-weight:600;font-size:.95rem;
  padding:6px 2px;border-bottom:2px solid transparent;
  transition:color .2s,border-color .2s;
}
.site-nav__link:hover{color:var(--mint-hi);border-bottom-color:var(--mint)}
.menu-btn{display:none;width:44px;height:44px;position:relative}
.menu-btn span,.menu-btn::before,.menu-btn::after{
  content:"";position:absolute;left:10px;right:10px;height:2px;
  background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s;
}
.menu-btn::before{top:15px}
.menu-btn span{top:21px}
.menu-btn::after{top:27px}
.site-head.nav-open .menu-btn::before{transform:translateY(6px) rotate(45deg)}
.site-head.nav-open .menu-btn span{opacity:0}
.site-head.nav-open .menu-btn::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- actions (buttons) ---------- */
.action{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--disp);font-weight:700;font-size:.98rem;
  padding:14px 26px;border-radius:11px;
  transition:transform .18s var(--ease-out),box-shadow .25s,background .2s,color .2s,border-color .2s;
  white-space:nowrap;
}
.action--solid{
  background:linear-gradient(140deg,var(--mint-hi),var(--mint));
  color:var(--pine-0);
  box-shadow:0 6px 24px -8px rgba(201,151,78,.45), inset 0 1px 0 rgba(255,255,255,.5);
}
.action--solid:hover{transform:translateY(-2px);box-shadow:0 12px 34px -8px rgba(201,151,78,.55);color:var(--pine-0)}
.action--line{
  border:1px solid var(--line);color:var(--ink);
  background:rgba(255,255,255,.02);
}
.action--line:hover{border-color:var(--mint);color:var(--mint-hi);transform:translateY(-2px)}
.action--sm{padding:10px 20px;font-size:.9rem}
.action .action__arrow{transition:transform .18s}
.action:hover .action__arrow{transform:translateX(3px)}

/* ---------- hero ----------
   The aegis plate is rendered by the WebGL canvas and sits deliberately
   right-of-centre. The copy column holds the left third and carries its
   own scrim, so nothing bright ever lands under body text. */
.hero{
  position:relative;overflow:clip;
  min-height:min(88vh,880px);
  display:flex;align-items:center;
  background:
    /* cool overhead key, the room the plate hangs in */
    radial-gradient(60% 46% at 62% -6%, rgba(150,180,215,.10), transparent 68%),
    /* warm bounce off the brass, low and right */
    radial-gradient(46% 52% at 74% 70%, rgba(201,151,78,.085), transparent 66%),
    radial-gradient(60% 70% at 4% 84%, rgba(27,34,41,.7), transparent 70%),
    linear-gradient(168deg,var(--pine-2) 0%,var(--pine-1) 46%,var(--pine-0) 100%);
  padding:clamp(64px,8vh,104px) 0 clamp(56px,7vh,92px);
}
/* milled floor rule — the guard rail, dead-level under the whole fold */
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:3;
  background:linear-gradient(to right,transparent,rgba(201,151,78,.4) 18%,rgba(152,164,176,.28) 52%,transparent);
  pointer-events:none;
}
.hero__scene{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero__vignette{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
    radial-gradient(100% 92% at 62% 48%, transparent 52%, rgba(7,9,11,.62) 100%),
    linear-gradient(to bottom, rgba(7,9,11,.32), transparent 18%, transparent 78%, var(--pine-1) 100%);
}
/* film grain — static, zero per-frame cost */
.hero__grain{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  background-size:160px 160px;
  opacity:.05;
  mix-blend-mode:overlay;
}
.hero__panel{
  position:relative;z-index:2;
  margin-inline:0;max-width:min(720px,100%);text-align:left;
}
/* legibility scrim — a soft graphite wedge that only exists behind the copy */
.hero__panel::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  inset:-16% -30% -20% -46%;
  background:
    radial-gradient(74% 70% at 32% 50%, rgba(7,9,11,.95) 0%, rgba(7,9,11,.8) 44%, transparent 76%),
    linear-gradient(to right, rgba(7,9,11,.85) 0%, rgba(7,9,11,.5) 55%, transparent 88%);
}
/* Struck-metal type: a 1px emboss only. Large blur shadows are deliberately
   absent — the word-mask reveal clips each word to its own box, and a blur
   would be sliced into visible rectangles. Contrast comes from the scrim. */
.hero__panel h1{
  font-size:clamp(2.35rem,3.6vw,3.25rem);
  line-height:1.08;letter-spacing:-.026em;
  margin:18px 0 22px;
  text-shadow:0 1px 0 rgba(255,255,255,.08), 0 -1px 0 rgba(0,0,0,.55);
}
.hero__panel h1 em{
  font-style:normal;color:var(--brass-hi);
  text-shadow:0 1px 0 rgba(255,255,255,.14), 0 -1px 0 rgba(0,0,0,.5);
}
.hero__panel .kicker{text-shadow:0 1px 14px rgba(7,9,11,.95)}
.hero__sub{
  color:var(--steel-hi);font-size:clamp(1.06rem,1.55vw,1.22rem);
  margin-inline:0;max-width:52ch;
  text-shadow:0 1px 18px rgba(7,9,11,.98), 0 0 44px rgba(7,9,11,.85);
}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-start;margin-top:32px}
.hero__fine{
  margin-top:26px;color:var(--steel);font-size:.88rem;letter-spacing:.02em;
  display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:flex-start;
  text-shadow:0 1px 12px rgba(7,9,11,.95);
}
.hero__fine span{display:inline-flex;align-items:center;gap:7px}
.hero__fine svg{width:14px;height:14px;color:var(--mint);flex:none}

/* ---------- stat band ---------- */
.stat-band{
  border-block:1px solid var(--line-soft);
  background:linear-gradient(to bottom,rgba(27,34,41,.35),rgba(13,16,19,.15));
  padding:clamp(34px,5vw,54px) 0;
}
.stat-band__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter)}
.stat{padding-left:22px;border-left:1px solid var(--line)}
.stat__num{
  font-family:var(--disp);font-weight:800;font-size:clamp(2rem,3.6vw,2.9rem);
  letter-spacing:-.02em;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1.05;
}
.stat__num b{color:var(--mint);font-weight:800}
.stat__label{color:var(--steel);font-size:.92rem;margin-top:6px;line-height:1.4}

/* ---------- product grid ---------- */
.products{
  padding:var(--sect) 0;
  background:
    radial-gradient(56% 72% at 84% 4%, rgba(201,151,78,.075), transparent 60%),
    radial-gradient(48% 66% at 6% 92%, rgba(36,44,53,.55), transparent 66%),
    linear-gradient(180deg, var(--pine-1), var(--pine-1));
}
.pgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gutter)}
.pcard{
  grid-column:span 3;
  position:relative;
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:26px 24px 24px;
  display:flex;flex-direction:column;gap:12px;
  transition:border-color .25s,box-shadow .25s;
  transform-style:preserve-3d;
  will-change:transform;
}
.pcard:hover{border-color:rgba(201,151,78,.4);box-shadow:0 24px 50px -24px rgba(0,0,0,.55),0 0 0 1px rgba(201,151,78,.12)}
.pcard--flag{
  grid-column:span 6;
  background:linear-gradient(150deg,rgba(36,44,53,.5),rgba(19,24,29,.34));
  padding:32px 30px 28px;
}
.pcard__tag{
  position:absolute;top:20px;right:20px;
  font-family:var(--disp);font-weight:700;font-size:.66rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--mint);border:1px solid rgba(201,151,78,.4);
  border-radius:999px;padding:5px 12px;background:rgba(201,151,78,.08);
}
.hex-chip{
  width:52px;height:56px;flex:none;
  clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);
  background:linear-gradient(155deg,rgba(201,151,78,.22),rgba(201,151,78,.05));
  display:grid;place-items:center;
  border:0;
}
.hex-chip svg{width:24px;height:24px;color:var(--mint)}
/* lucide inline icons — one weight, guardian mint via currentColor */
.lci{display:block;width:21px;height:21px;flex:none;color:var(--mint);stroke-width:1.75;margin-bottom:10px}
.pcard h3{margin-top:4px}
.pcard__spec{
  display:flex;flex-wrap:wrap;gap:6px 16px;
  font-family:var(--disp);font-weight:700;font-size:.85rem;color:var(--mint-hi);
}
.pcard__spec span{display:inline-flex;align-items:center;gap:6px}
.pcard__spec svg{width:13px;height:13px;opacity:.8}
.pcard p{color:var(--ink-2);font-size:.98rem;flex:1}
.pcard__go{
  font-family:var(--disp);font-weight:700;font-size:.9rem;color:var(--mint);
  display:inline-flex;align-items:center;gap:7px;margin-top:2px;
}
.pcard__go svg{width:14px;height:14px;transition:transform .18s}
.pcard__go:hover svg{transform:translateX(3px)}

/* ---------- rate card — the spec-sheet DNA ----------
   dense ruled table: index / product / maximum / speed / go */
.ratecard{
  margin-top:calc(var(--gutter)*1.2);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:var(--glass);
}
.ratecard__cap{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 24px;background:rgba(201,151,78,.06);
  border-bottom:1px solid var(--line);
}
.ratecard__cap span{
  font-family:var(--disp);font-weight:700;font-size:.78rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--mint-hi);
}
.ratecard__cap small{color:var(--steel-lo);font-size:.8rem;letter-spacing:.06em}
.ratecard__head,.ratecard__row{
  display:grid;grid-template-columns:56px 1fr 150px 130px 46px;
  align-items:center;column-gap:18px;
  padding:0 24px;
}
.ratecard__head{
  font-family:var(--disp);font-weight:700;font-size:.68rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--steel-lo);
  padding-block:11px;border-bottom:1px solid var(--line);
  background:rgba(7,9,11,.35);
}
.ratecard__row{
  padding-block:15px;
  border-bottom:1px solid var(--line-soft);
  color:var(--ink);
  transition:background .2s,border-color .2s;
}
.ratecard__row:last-child{border-bottom:0}
.ratecard__row:hover{background:rgba(201,151,78,.05);color:var(--ink)}
.ratecard__n{
  font-family:var(--disp);font-weight:800;font-size:.8rem;
  color:var(--steel-lo);font-variant-numeric:tabular-nums;letter-spacing:.08em;
}
.ratecard__row:hover .ratecard__n{color:var(--mint)}
.ratecard__name b{
  display:block;font-family:var(--disp);font-weight:700;font-size:1.02rem;
  letter-spacing:-.01em;
}
.ratecard__name small{
  display:block;color:var(--steel);font-size:.86rem;line-height:1.45;margin-top:2px;
}
.ratecard__amt{
  font-family:var(--disp);font-weight:800;font-size:1.02rem;color:var(--mint-hi);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;
}
.ratecard__time{
  color:var(--steel);font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.ratecard__go{
  width:34px;height:34px;border:1px solid var(--line);border-radius:9px;
  display:grid;place-items:center;color:var(--mint);
  transition:border-color .2s,background .2s,transform .2s var(--ease-out);
}
.ratecard__go svg{width:15px;height:15px}
.ratecard__row:hover .ratecard__go{
  border-color:rgba(201,151,78,.5);background:rgba(201,151,78,.1);transform:translateX(2px);
}
@media (max-width:1024px){
  .ratecard__head,.ratecard__row{grid-template-columns:44px 1fr 120px 104px 40px;column-gap:12px}
}
@media (max-width:768px){
  .ratecard__head{display:none}
  .ratecard__row{
    grid-template-columns:34px 1fr 40px;
    grid-template-areas:"n name go" ". spec go";
    row-gap:6px;padding:14px 16px;
  }
  .ratecard__n{grid-area:n}
  .ratecard__name{grid-area:name}
  .ratecard__name small{display:none}
  .ratecard__amt{grid-area:spec;font-size:.94rem}
  .ratecard__amt::after{content:" · " attr(data-time);color:var(--steel);font-weight:400;font-size:.86rem}
  .ratecard__time{display:none}
  .ratecard__go{grid-area:go;align-self:center}
}

/* ---------- module board — dense bordered cells (industries / services) */
.modboard{
  display:grid;gap:0;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:rgba(7,9,11,.25);
}
.modboard--3{grid-template-columns:repeat(3,1fr)}
.modboard--4{grid-template-columns:repeat(4,1fr)}
.modboard > *{
  position:relative;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  border-radius:0;background:transparent;
}
.modboard--3 > *:nth-child(3n){border-right:0}
.modboard--4 > *:nth-child(4n){border-right:0}
.modboard--3 > *:nth-last-child(-n+3){border-bottom:0}
.modboard--4 > *:nth-last-child(-n+4){border-bottom:0}
.mod__n{
  position:absolute;top:16px;right:18px;
  font-family:var(--disp);font-weight:800;font-size:.7rem;
  letter-spacing:.16em;color:var(--steel-lo);font-variant-numeric:tabular-nums;
}
.modboard .ind-cell{border-left:0;border-top:0;padding:24px 22px}
.modboard .ind-cell:hover{border-color:var(--line-soft)}
.modboard .stat{border-left:0;padding:26px 24px}
@media (max-width:1024px){
  .modboard--3,.modboard--4{grid-template-columns:repeat(2,1fr)}
  .modboard--3 > *,.modboard--4 > *{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
  .modboard--3 > *:nth-child(2n),.modboard--4 > *:nth-child(2n){border-right:0}
  .modboard--3 > *:nth-last-child(-n+2),.modboard--4 > *:nth-last-child(-n+2){border-bottom:0}
}
@media (max-width:768px){
  .modboard--3{grid-template-columns:1fr 1fr}
  .modboard .ind-cell{padding:18px 16px}
}

/* ---------- equipment spotlight ---------- */
.spotlight{
  padding:var(--sect) 0;
  background:linear-gradient(180deg,var(--pine-1),var(--pine-2) 30%,var(--pine-2) 70%,var(--pine-1));
  border-block:1px solid var(--line-soft);
}
.spotlight__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:calc(var(--gutter)*1.6);align-items:center}
.spotlight__copy{grid-column:span 7}
.spotlight__copy h2{margin:14px 0 18px}
.spotlight__copy > p{color:var(--ink-2);margin-bottom:16px}
.spotlight__points{list-style:none;margin:22px 0 30px;display:grid;gap:14px}
.spotlight__points li{display:flex;gap:13px;align-items:flex-start;color:var(--ink-2)}
.spotlight__points svg{width:19px;height:19px;color:var(--mint);flex:none;margin-top:4px}
.spotlight__points b{color:var(--ink);font-weight:600}
.specsheet{
  grid-column:span 5;
  background:var(--glass);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--glass-edge);
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
}
.specsheet__head{
  display:flex;align-items:center;gap:12px;
  padding:20px 24px;border-bottom:1px solid var(--line-soft);
  background:rgba(201,151,78,.06);
}
.specsheet__head svg{width:20px;height:20px;color:var(--mint)}
.specsheet__head span{font-family:var(--disp);font-weight:700;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mint-hi)}
.specsheet dl{margin:0}
.specsheet__row{
  display:flex;justify-content:space-between;gap:18px;
  padding:15px 24px;border-bottom:1px solid var(--line-soft);
}
.specsheet__row:last-child{border-bottom:0}
.specsheet__row dt{color:var(--steel);font-size:.92rem}
.specsheet__row dd{font-family:var(--disp);font-weight:700;font-size:.95rem;color:var(--ink);text-align:right}

/* ---------- process rail ---------- */
.process{
  padding:var(--sect) 0;
  background:
    radial-gradient(52% 70% at 10% 8%, rgba(201,151,78,.06), transparent 60%),
    radial-gradient(60% 85% at 94% 90%, rgba(27,34,41,.6), transparent 66%);
}
.rail{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);row-gap:44px;counter-reset:step}
.rail__step{position:relative;padding-top:26px}
.rail__step::before{
  content:"";position:absolute;top:9px;left:0;right:calc(-1*var(--gutter));
  height:1px;background:linear-gradient(to right,var(--mint) 0 18px,var(--line) 18px);
}
.rail__step:nth-child(3n)::before,.rail__step:last-child::before{right:0}
.rail__step::after{
  content:"";position:absolute;top:4px;left:0;width:11px;height:11px;
  background:var(--mint);
  clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);
  box-shadow:0 0 14px rgba(201,151,78,.7);
}
.rail__n{
  font-family:var(--disp);font-weight:800;font-size:.8rem;letter-spacing:.2em;
  color:var(--mint);text-transform:uppercase;
}
.rail__step h3{margin:8px 0 10px}
.rail__step p{color:var(--ink-2);font-size:.97rem}

/* ---------- industries ---------- */
.industries{
  padding:var(--sect) 0;
  background:linear-gradient(180deg,var(--pine-1),var(--pine-0));
  border-top:1px solid var(--line-soft);
}
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}
.ind-cell{
  border:1px solid var(--line-soft);border-radius:var(--r-md);
  padding:22px 20px;background:rgba(255,255,255,.018);
  transition:border-color .25s,background .25s;
}
.ind-cell:hover{border-color:rgba(201,151,78,.35);background:rgba(201,151,78,.04)}
.ind-cell .hex-chip{width:42px;height:46px;margin-bottom:14px}
.ind-cell .hex-chip svg{width:20px;height:20px}
.ind-cell h3{font-size:1.02rem}
.ind-cell p{color:var(--steel);font-size:.9rem;margin-top:6px;line-height:1.5}

/* ---------- FAQ ---------- */
.faq-sect{
  padding:var(--sect) 0;
  background:
    radial-gradient(50% 65% at 88% 6%, rgba(201,151,78,.055), transparent 60%),
    radial-gradient(55% 80% at 4% 96%, rgba(27,34,41,.55), transparent 66%),
    linear-gradient(180deg, var(--pine-0), var(--pine-1) 26%, var(--pine-1) 74%, var(--pine-0));
}
.qa-stack{max-width:820px;display:grid;gap:12px}
.qa{
  border:1px solid var(--line);border-radius:var(--r-md);
  background:rgba(255,255,255,.02);
  transition:border-color .25s;
}
.qa.is-open{border-color:rgba(201,151,78,.4)}
.qa__q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  text-align:left;padding:19px 22px;
  font-family:var(--disp);font-weight:700;font-size:1.04rem;color:var(--ink);
}
.qa__q:hover{color:var(--mint-hi)}
.qa__hex{
  flex:none;width:26px;height:28px;
  clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);
  background:rgba(201,151,78,.12);
  display:grid;place-items:center;
  transition:background .25s;
}
.qa__hex::before{
  content:"";width:10px;height:10px;
  background:currentColor;color:var(--mint);
  clip-path:polygon(20% 42%,80% 42%,80% 58%,20% 58%);
  transition:clip-path .25s;
}
.qa:not(.is-open) .qa__hex::before{
  clip-path:polygon(42% 20%,58% 20%,58% 42%,80% 42%,80% 58%,58% 58%,58% 80%,42% 80%,42% 58%,20% 58%,20% 42%,42% 42%);
}
.qa__a{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .32s var(--ease-out);
}
.qa.is-open .qa__a{grid-template-rows:1fr}
.qa__a-inner{overflow:hidden}
.qa__a p{padding:0 22px 20px;color:var(--ink-2);font-size:1rem}

/* ---------- closer CTA ---------- */
.closer{
  position:relative;overflow:clip;
  padding:calc(var(--sect)*1.05) 0;
  background:
    radial-gradient(70% 120% at 50% 110%,rgba(201,151,78,.14),transparent 60%),
    linear-gradient(180deg,var(--pine-0),var(--pine-2));
  border-top:1px solid var(--line-soft);
  text-align:center;
}
.closer h2{font-size:clamp(2.1rem,4.4vw,3.4rem);margin-bottom:18px}
.closer p{margin-inline:auto;color:var(--ink-2);font-size:1.14rem;max-width:52ch}
.closer__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}
.closer__tel{margin-top:22px;color:var(--steel);font-size:.95rem}
.closer__tel a{font-weight:700;color:var(--mint-hi)}

/* ---------- footer ---------- */
.site-foot{
  background:
    radial-gradient(60% 42% at 50% 0%, rgba(201,151,78,.05), transparent 62%),
    linear-gradient(180deg, #0a0d10, var(--pine-0) 45%);
  border-top:1px solid var(--line-soft);
  padding:clamp(50px,7vw,80px) 0 34px;
  font-size:.95rem;
}
.site-foot__grid{display:grid;grid-template-columns:4fr 3fr 2fr 3fr;gap:calc(var(--gutter)*1.4)}
.site-foot__brand p{color:var(--steel);margin-top:16px;max-width:34ch}
.site-foot h3{
  font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--steel);margin-bottom:16px;font-weight:700;
}
.site-foot ul{list-style:none;display:grid;gap:9px}
.site-foot ul a{color:var(--ink-2)}
.site-foot ul a:hover{color:var(--mint-hi)}
.site-foot address{font-style:normal;color:var(--ink-2);display:grid;gap:9px}
.site-foot address a{color:var(--ink-2)}
.site-foot address a:hover{color:var(--mint-hi)}
.site-foot__legal{
  margin-top:clamp(36px,5vw,54px);padding-top:26px;
  border-top:1px solid var(--line-soft);
  color:var(--steel-lo);font-size:.86rem;line-height:1.6;
}
.site-foot__legal strong{color:var(--steel)}
.site-foot__row{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
  margin-top:20px;color:var(--steel-lo);font-size:.85rem;
}
.site-foot__row a{color:var(--steel)}
.site-foot__row a:hover{color:var(--mint-hi)}

/* ---------- sub-page hero band ---------- */
.band{
  position:relative;
  padding:clamp(70px,9vw,110px) 0 clamp(44px,6vw,70px);
  background:radial-gradient(110% 130% at 50% -20%,var(--pine-3),var(--pine-1) 70%);
  border-bottom:1px solid var(--line-soft);
}
.band h1{margin-top:14px;font-size:clamp(2.1rem,4.4vw,3.3rem)}
.band p{color:var(--ink-2);margin-top:16px;font-size:1.12rem}

/* ---------- apply layout ---------- */
.apply-wrap{padding:clamp(44px,6vw,80px) 0 var(--sect)}
.apply-grid{display:grid;grid-template-columns:7fr 5fr;gap:calc(var(--gutter)*1.6);align-items:start}

.form-card{
  background:var(--glass);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--glass-edge);
  border-radius:var(--r-lg);
  padding:clamp(26px,4vw,42px);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.65);
}
.form-card__title{font-size:1.3rem;margin-bottom:6px}
.form-card__note{color:var(--steel);font-size:.92rem;margin-bottom:26px}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:20px}
.field label{
  display:block;font-family:var(--disp);font-weight:700;font-size:.86rem;
  letter-spacing:.03em;color:var(--steel-hi);margin-bottom:8px;
}
.field label small{color:var(--steel-lo);font-weight:600}
.field input,.field select,.field textarea{
  width:100%;
  font:inherit;color:var(--ink);
  background:rgba(7,9,11,.55);
  border:1px solid var(--line);
  border-radius:10px;
  padding:13px 15px;
  transition:border-color .2s,box-shadow .2s;
  appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23c9974e' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;
  padding-right:42px;
}
.field textarea{min-height:110px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--steel-lo)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--mint);
  box-shadow:0 0 0 4px rgba(201,151,78,.14);
}
.field.has-error input,.field.has-error select{border-color:var(--warn)}
.field__err{
  display:none;color:var(--warn);font-size:.86rem;margin-top:7px;line-height:1.45;
}
.field.has-error .field__err{display:block}
.form-card .action{width:100%;margin-top:6px}
.form-card__fine{color:var(--steel-lo);font-size:.82rem;margin-top:16px;text-align:center}

/* honeypot — never visible to humans */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.sent-state{display:none;text-align:center;padding:34px 10px}
.sent-state.is-shown{display:block}
.sent-state .hex-chip{width:66px;height:72px;margin:0 auto 22px}
.sent-state .hex-chip svg{width:30px;height:30px}
.sent-state h3{font-size:1.45rem;margin-bottom:10px}
.sent-state p{color:var(--ink-2);margin-inline:auto}

.next-steps{display:grid;gap:14px}
.next-steps__item{
  display:flex;gap:16px;align-items:flex-start;
  border:1px solid var(--line-soft);border-radius:var(--r-md);
  padding:18px 20px;background:rgba(255,255,255,.018);
}
.next-steps__n{
  flex:none;width:34px;height:37px;
  clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);
  background:rgba(201,151,78,.14);
  display:grid;place-items:center;
  font-family:var(--disp);font-weight:800;font-size:.9rem;color:var(--mint);
}
.next-steps__item h3{font-size:1rem}
.next-steps__item p{color:var(--steel);font-size:.9rem;margin-top:4px}
.aside-note{
  margin-top:22px;border:1px solid var(--line-soft);border-radius:var(--r-md);
  padding:18px 20px;color:var(--steel);font-size:.9rem;
  background:rgba(201,151,78,.04);
}
.aside-note b{color:var(--ink-2)}

/* ---------- five-step application (spec-sheet file) ---------- */
.app-wrap{padding:clamp(40px,5.5vw,72px) 0 var(--sect)}
.app-shell{max-width:780px;margin-inline:auto}
.app-progress{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin-bottom:10px;
}
.app-progress__label{
  font-family:var(--disp);font-weight:800;font-size:1.02rem;letter-spacing:-.01em;
}
.app-progress__count{
  font-family:var(--disp);font-weight:700;font-size:.78rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--mint);
  font-variant-numeric:tabular-nums;
}
.app-bar{
  height:4px;border-radius:999px;background:rgba(152,164,176,.18);
  overflow:hidden;margin-bottom:26px;
}
.app-bar__fill{
  height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--mint),var(--mint-hi));
  box-shadow:0 0 12px rgba(201,151,78,.5);
  transition:width .5s var(--ease-out);
}
.app-err{
  display:none;margin-bottom:18px;
  border:1px solid rgba(244,130,106,.5);border-radius:var(--r-md);
  background:rgba(244,130,106,.07);
  padding:14px 18px;color:var(--warn);font-size:.95rem;
}
.app-err.is-shown{display:block}
#app-form{
  background:var(--glass);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--glass-edge);
  border-radius:var(--r-lg);
  padding:clamp(24px,4vw,40px);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.65);
}
.app-step{display:none;border:0;min-inline-size:auto}
.app-step.is-active{display:block}
.app-step__title{
  font-family:var(--disp);font-weight:800;font-size:1.35rem;letter-spacing:-.02em;
  padding:0;margin-bottom:6px;
}
.app-step__title:focus{outline:none}
.app-step__note{color:var(--steel);font-size:.94rem;margin-bottom:24px;max-width:56ch}
.field__hint{color:var(--steel-lo);font-size:.82rem;margin-top:7px;line-height:1.45}
.field label small,.app-step small{color:var(--steel-lo);font-weight:600}
.check{
  display:flex;align-items:center;gap:10px;margin-top:10px;cursor:pointer;
  color:var(--ink-2);font-size:.92rem;font-weight:400;letter-spacing:0;
}
.check input{
  width:18px;height:18px;flex:none;accent-color:var(--mint);cursor:pointer;
}
.seg{display:flex;gap:10px}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:86px;min-height:44px;padding:10px 22px;
  border:1px solid var(--line);border-radius:10px;
  font-family:var(--disp);font-weight:700;font-size:.92rem;color:var(--ink-2);
  background:rgba(7,9,11,.4);
  transition:border-color .2s,background .2s,color .2s;
}
.seg input:checked + span{
  border-color:var(--mint);color:var(--pine-0);
  background:linear-gradient(140deg,var(--mint-hi),var(--mint));
}
.seg input:focus-visible + span{
  outline:2px solid var(--mint);outline-offset:3px;
}
.dropzone{
  border:1.5px dashed var(--line);border-radius:var(--r-md);
  padding:26px 20px;text-align:center;cursor:pointer;
  background:rgba(7,9,11,.35);
  transition:border-color .2s,background .2s;
}
.dropzone p{margin-inline:auto;color:var(--ink-2);font-size:.98rem}
.dropzone b{color:var(--mint);font-weight:700}
.dropzone small{display:block;margin-top:6px;color:var(--steel-lo);font-size:.8rem}
.dropzone.is-over,.dropzone:hover{border-color:var(--mint);background:rgba(201,151,78,.05)}
.field.has-error .dropzone{border-color:var(--warn)}
.dz-files{list-style:none;margin-top:10px;display:grid;gap:8px}
.dz-files li{
  display:flex;align-items:center;gap:12px;
  border:1px solid var(--line-soft);border-radius:10px;
  padding:9px 12px 9px 15px;background:rgba(201,151,78,.05);
  font-size:.92rem;
}
.dz-files li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dz-files li small{color:var(--steel-lo);font-variant-numeric:tabular-nums}
.dz-files li button{
  flex:none;width:30px;height:30px;border-radius:8px;
  display:grid;place-items:center;color:var(--steel);
  font-size:1.15rem;line-height:1;border:1px solid transparent;
  transition:color .2s,border-color .2s;
}
.dz-files li button:hover{color:var(--warn);border-color:rgba(244,130,106,.4)}
.review{margin-bottom:24px;display:grid;gap:14px}
.review__sect{
  border:1px solid var(--line-soft);border-radius:var(--r-md);overflow:hidden;
}
.review__sect h3{
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mint-hi);
  padding:11px 18px;background:rgba(201,151,78,.06);
  border-bottom:1px solid var(--line-soft);
}
.review__sect dl{
  margin:0;display:grid;grid-template-columns:minmax(120px,38%) 1fr;
}
.review__sect dt{
  color:var(--steel);font-size:.88rem;padding:9px 0 9px 18px;
  border-top:1px solid var(--line-soft);
}
.review__sect dd{
  color:var(--ink);font-size:.92rem;padding:9px 18px 9px 12px;
  border-top:1px solid var(--line-soft);text-align:right;overflow-wrap:anywhere;
  font-variant-numeric:tabular-nums;
}
.review__sect dt:first-of-type,.review__sect dd:first-of-type{border-top:0}
.consent{
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  border:1px solid var(--line-soft);border-radius:var(--r-md);
  padding:16px 18px;background:rgba(201,151,78,.04);
  color:var(--ink-2);font-size:.94rem;line-height:1.55;
}
.consent input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:var(--mint);cursor:pointer}
#consent-field{margin:6px 0 18px}
.sig-pad{
  border:1px solid var(--line);border-radius:var(--r-md);
  background:rgba(7,9,11,.55);
  position:relative;overflow:hidden;
}
.sig-pad::after{
  content:"";position:absolute;left:18px;right:18px;bottom:34px;height:1px;
  background:var(--line);pointer-events:none;
}
.sig-pad canvas{width:100%;height:170px;display:block;touch-action:none;cursor:crosshair}
.field.has-error .sig-pad{border-color:var(--warn)}
.sig-row{
  display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:8px;
}
.sig-row small{color:var(--steel-lo);font-size:.82rem}
.sig-clear{
  font-family:var(--disp);font-weight:700;font-size:.85rem;color:var(--steel);
  padding:8px 16px;border:1px solid var(--line);border-radius:9px;
  transition:color .2s,border-color .2s;
}
.sig-clear:hover{color:var(--mint-hi);border-color:var(--mint)}
.app-nav{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-top:26px;
}
.app-back{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--disp);font-weight:700;font-size:.93rem;color:var(--steel);
  padding:13px 20px;border:1px solid var(--line);border-radius:11px;
  transition:color .2s,border-color .2s;
}
.app-back:hover{color:var(--mint-hi);border-color:var(--mint)}
.app-nav .action{margin-left:auto;min-width:170px}
.app-done{
  display:none;text-align:center;
  background:var(--glass);border:1px solid var(--glass-edge);
  border-radius:var(--r-lg);
  padding:clamp(40px,6vw,64px) clamp(22px,4vw,44px);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.65);
}
.app-done.is-shown{display:block}
.app-done:focus{outline:none}
.app-done svg{
  width:74px;height:74px;margin:0 auto 24px;color:var(--mint);
  filter:drop-shadow(0 0 18px rgba(201,151,78,.45));
}
.app-done h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:12px}
.app-done p{margin-inline:auto;color:var(--ink-2);max-width:52ch}
.field-pair--3{grid-template-columns:2fr 2fr 1fr}
@media (max-width:768px){
  .field-pair--3{grid-template-columns:1fr}
  .seg{flex-wrap:wrap}
  .seg span{flex:1}
  .review__sect dl{grid-template-columns:1fr}
  .review__sect dt{padding:9px 18px 0}
  .review__sect dd{text-align:left;padding:2px 18px 9px;border-top:0}
  .app-nav{flex-wrap:wrap}
  .app-nav .action{flex:1}
}

/* ---------- legal prose ---------- */
.prose-wrap{padding:clamp(44px,6vw,80px) 0 var(--sect)}
.prose{max-width:760px}
.prose h2{font-size:1.35rem;margin:38px 0 12px}
.prose p{color:var(--ink-2);margin-bottom:14px}
.prose ul{margin:0 0 14px 22px;color:var(--ink-2)}
.prose li{margin-bottom:7px}
.prose .stamp{color:var(--steel-lo);font-size:.9rem;margin-bottom:8px}

/* ---------- 404 ---------- */
.lost{
  min-height:78vh;display:flex;align-items:center;text-align:center;
  padding:80px 0;
}
.lost__code{
  font-family:var(--disp);font-weight:800;font-size:clamp(5rem,14vw,9rem);
  line-height:1;color:transparent;
  -webkit-text-stroke:2px rgba(201,151,78,.55);
  letter-spacing:.04em;
}
.lost h1{font-size:clamp(1.6rem,3.4vw,2.4rem);margin:18px 0 12px}
.lost p{margin-inline:auto;color:var(--ink-2)}
.lost__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}

/* ---------- narrow single-purpose page (unsubscribe) ---------- */
.solo{min-height:70vh;display:flex;align-items:center;padding:90px 0}
.solo__card{max-width:520px;margin-inline:auto;width:100%}

/* ============================================================
   Photography — deep pine / mint duotone treatment
   Grayscale WebP sources; tint lives entirely in CSS so the
   imagery reads inside the brand palette.
   ============================================================ */
.duo{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(160deg,var(--pine-4) 0%,var(--pine-2) 46%,var(--pine-0) 100%);
}
.duo__img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.06) brightness(.9);
  mix-blend-mode:luminosity;
  opacity:.92;
}
.duo::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(155deg, rgba(201,151,78,.15), transparent 44%, rgba(7,9,11,.46) 100%),
    radial-gradient(90% 90% at 82% 10%, rgba(201,151,78,.10), transparent 62%);
}

/* equipment spotlight — wide banner under the copy/spec grid */
.equip-photo{
  margin:clamp(44px,6vw,72px) 0 0;
  border-radius:var(--r-lg);
  border:1px solid var(--glass-edge);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
  aspect-ratio:16/7;
}
.equip-photo .duo__img{height:100%}

/* full-bleed machine band between process and industries */
.machine-band{
  height:clamp(220px,32vw,400px);
  border-block:1px solid var(--line-soft);
}
.machine-band .duo__img{position:absolute;inset:0;height:100%}
.machine-band::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to bottom, var(--pine-1), transparent 26%, transparent 72%, var(--pine-1));
}

/* industries — faint crane silhouettes behind the grid, heavy scrim for AA */
.industries{position:relative}
.industries__photo{
  position:absolute;inset:0;
  pointer-events:none;
}
.industries__photo .duo__img{position:absolute;inset:0;height:100%;opacity:.5}
.industries__photo::after{
  background:
    linear-gradient(to bottom, var(--pine-1) 0%, rgba(13,16,19,.82) 26%, rgba(7,9,11,.86) 66%, var(--pine-0) 100%),
    linear-gradient(155deg, rgba(201,151,78,.06), transparent 50%);
}

@media (max-width:768px){
  .equip-photo{aspect-ratio:16/9}
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1024px){
  .pcard{grid-column:span 6}
  .pcard--flag{grid-column:span 6}
  .spotlight__copy{grid-column:span 12}
  .specsheet{grid-column:span 12;max-width:560px}
  .rail{grid-template-columns:repeat(2,1fr);row-gap:38px}
  .rail__step:nth-child(3n)::before{right:calc(-1*var(--gutter))}
  .rail__step:nth-child(2n)::before{right:0}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .apply-grid{grid-template-columns:1fr}
  .site-foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  body{font-size:1rem}
  .menu-btn{display:block}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(9,11,14,.97);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line-soft);
    padding:10px var(--gutter) 22px;
    display:none;
  }
  .site-head.nav-open .site-nav{display:flex}
  .site-nav__link{padding:13px 4px;border-bottom:1px solid var(--line-soft);font-size:1.05rem}
  .site-nav .action{margin-top:16px;justify-content:center}
  .hero{min-height:0;padding-top:76px}
  .hero__panel{text-align:left}
  .hero__cta,.hero__fine{justify-content:flex-start}
  .stat-band__grid{grid-template-columns:1fr 1fr;row-gap:28px}
  .pcard,.pcard--flag{grid-column:span 12}
  .rail{grid-template-columns:1fr}
  .rail__step::before,.rail__step:nth-child(3n)::before,.rail__step:nth-child(2n)::before{right:0}
  .ind-grid{grid-template-columns:1fr 1fr;gap:12px}
  .ind-cell{padding:16px 14px}
  .field-pair{grid-template-columns:1fr}
  .site-foot__grid{grid-template-columns:1fr;gap:34px}
  .closer{text-align:left}
  .closer__cta{justify-content:flex-start}
  .closer p{margin-inline:0}
}

/* ============================================================
   Reduced motion — kill all animation & transforms
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }
  [data-reveal]{opacity:1;transform:none}
  .pcard{transform:none !important}
}

/* ============================================================
   AEGIS LAYER — engraved-plate identity + scroll choreography
   Everything below is additive. Hidden start-states are scoped
   under .mo-on, which ui/motion.js only sets when the browser
   supports the work AND the user has not asked for reduced
   motion. With JS off, or under reduced motion, every rule here
   collapses to the finished, fully visible state.
   ============================================================ */

/* ---------- 0. the failsafe that needs no JavaScript ----------
   [data-reveal] starts at opacity:0 and is revealed by ui/fg.js. If that
   script never runs — JS disabled, a parse error, a blocked request, a CDN
   miss — every one of those elements would stay invisible and the page
   would render blank. That is an outage, not a missing animation.

   A CSS animation is the only self-healing option here: it runs with no
   script at all, on every page, and it does not depend on a root class
   that only index.html's motion.js sets. .is-in cancels it outright. */
@keyframes rvFailsafe{to{opacity:1;transform:none}}
/* 2.6s, not 8s. This only ever fires for a visitor whose JS loaded but
   failed — a <noscript> block in each page's head handles JS-off with no
   delay at all, and ui/motion.js's unconditional 2500ms timer handles the
   scripted path. Eight seconds of empty fold was far past the bounce
   threshold; this sits just behind the JS failsafe so real reveals still
   win the race for anyone who scrolls. */
[data-reveal]{animation:rvFailsafe .001s linear 2.6s forwards}
[data-reveal].is-in{animation:none}

/* ---------- 1. the mark, restruck in steel + brass ----------
   CSS beats SVG presentation attributes, so the inline logo is
   regraded on every page without editing a single .html file. */
.mark__glyph path:nth-child(1),
.mark__glyph > path:first-of-type{fill:#12171c}
.mark__glyph path[stroke]{stroke:var(--brass)}
/* Steel/brass two-tone. These two selectors must match the stroke values
   that are actually in the markup — the inner hex and the base rule stay
   steel so the mark keeps a tonal hierarchy instead of going flat gold. */
.mark__glyph path[stroke="#5f736a"]{stroke:var(--steel-lo)}
.mark__glyph path[stroke="#93a8a0"]{stroke:var(--steel)}
.mark__word{position:relative}
.mark__word small{color:var(--steel-lo)}

/* ---------- 2. engraved rules ----------
   A hairline that draws itself under every section head: the
   literal guard rail. Rides the .is-in class ui/fg.js already
   sets, so it inherits that file's reveal failsafe for free. */
.section-head{position:relative;padding-bottom:26px}
.section-head::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:linear-gradient(to right,var(--brass) 0 46px,rgba(152,164,176,.3) 46px,rgba(152,164,176,.03));
  transform:scaleX(0);transform-origin:0 50%;
}
.mo-on .section-head::after{transition:transform 1.15s var(--ease-plate) .12s}
.mo-on .section-head.is-in::after,
html:not(.mo-on) .section-head::after{transform:scaleX(1)}

/* the process rail hairlines draw left to right as each step lands */
.mo-on .rail__step::before{
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform 1.05s var(--ease-plate);
}
.mo-on .rail__step.is-in::before{transform:scaleX(1)}
.mo-on .rail__step::after{
  opacity:0;transform:scale(.4);
  transition:opacity .5s ease .18s,transform .6s var(--ease-plate) .18s;
}
.mo-on .rail__step.is-in::after{opacity:1;transform:none}

/* ---------- 3. word-mask type reveal ---------- */
.mo-on .moWord{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.mo-on .moWordIn{
  display:inline-block;transform:translateY(112%);
  transition:transform .92s var(--ease-plate);
}
.mo-on .moIn .moWordIn{transform:none}

/* ---------- 4. the milling pass ----------
   Signature moment: the rate card is cut row by row, each row
   wiped in from the left behind a travelling brass burr. */
.mo-on .moMill{
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.0s var(--ease-plate);
}
.mo-on .moMill.moIn{clip-path:inset(0 0 0 0)}
.ratecard__row{position:relative}
/* the burr: a brass hairline riding the cutting edge of the wipe.
   Full-width element carrying a 2px line at its own left edge, so
   translateX(100%) walks it exactly one row-width across — no viewport
   units, nothing that can escape the card. */
.mo-on .moMill::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:100%;z-index:3;
  background:linear-gradient(to right,rgba(237,207,149,.95) 0 2px,transparent 2px);
  opacity:0;pointer-events:none;
}
.mo-on .moMill.moIn::before{animation:burr 1s var(--ease-plate) forwards}
@keyframes burr{
  0%{opacity:0;transform:translateX(0)}
  10%{opacity:1}
  85%{opacity:.6}
  100%{opacity:0;transform:translateX(100%)}
}

/* ---------- 5. plate wipe for media ---------- */
.mo-on .moPlate{
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.25s var(--ease-plate);
}
.mo-on .moPlate.moIn{clip-path:inset(0 0 0 0)}

/* ---------- 6. rise for grids ---------- */
.mo-on .moRise{
  opacity:0;transform:translateY(26px);
  transition:opacity .8s ease,transform .85s var(--ease-plate);
}
.mo-on .moRise.moIn{opacity:1;transform:none}

/* ---------- 7. the guard rail, vertical ----------
   Scroll progress reads as a brass rail bolted to the right edge
   of the page rather than a generic top loading bar. */
.moRail{
  position:fixed;top:0;bottom:0;right:0;width:3px;z-index:90;pointer-events:none;
  background:rgba(152,164,176,.09);
}
.moRail i{
  display:block;width:100%;height:100%;transform:scaleY(0);transform-origin:50% 0;
  background:linear-gradient(to bottom,var(--brass-hi),var(--brass) 55%,#8d6a34);
  box-shadow:0 0 10px rgba(201,151,78,.45);
  transition:transform .12s linear;
}

/* ---------- 8. weighted micro-interactions ---------- */
.mo-on .moMag{transition:transform .4s var(--ease-plate),box-shadow .25s,background .2s,color .2s,border-color .2s}
.mo-on .moSheen{position:relative}
.mo-on .moSheen::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(237,207,149,.10),transparent 62%);
  opacity:0;transition:opacity .38s;
}
.mo-on .moSheen:hover::after{opacity:1}

/* ---------- 9. brass-forward chrome ---------- */
.action--solid{
  background:linear-gradient(150deg,#e8c98f 0%,var(--brass) 52%,#a97a37 100%);
  color:#1a1409;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -1px 0 rgba(0,0,0,.25),
    0 8px 26px -10px rgba(201,151,78,.55);
}
.action--solid:hover{color:#140f06;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 14px 34px -10px rgba(201,151,78,.6)}
.hex-chip{
  background:linear-gradient(155deg,rgba(201,151,78,.26),rgba(201,151,78,.04) 62%,rgba(255,255,255,.05));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09);
}
.stat{transition:border-color .3s}
.stat:hover{border-left-color:var(--brass)}
.specsheet__row dd{color:var(--steel-hi)}

/* ---------- 10. reduced motion: composed, static, complete ---------- */
@media (prefers-reduced-motion:reduce){
  .moRail{display:none}
  .section-head::after{transform:scaleX(1)}
  .mo-on .moWordIn,.mo-on .moRise{transform:none;opacity:1}
  .mo-on .moMill,.mo-on .moPlate{clip-path:none}
  .mo-on .moMill::before{display:none}
  .mo-on .rail__step::before,.mo-on .rail__step::after{transform:none;opacity:1}
}

/* ---------- 11. hero, narrow ----------
   There is no empty column on a phone — the copy fills the fold. So the
   plate stops being a subject and becomes an embossed corner seal: dropped
   to the lower right and held well back in alpha by the shader. It is NOT
   cropped by the edge — the shield's right flank and pointed tip are what
   make the silhouette read as a shield at all, and that is where the
   fund/guard name-bond lives, so ui/aegis.js solves the narrow scale from
   the real viewport half-width and seats the whole emblem inside it.
   The scrim becomes an even wash rather than a side wedge, because here
   the copy sits over the whole canvas, not beside it. */
@media (max-width:900px){
  .hero__panel{max-width:none}
  .hero__panel::before{
    inset:-16% -34% -24% -50%;
    background:
      linear-gradient(to bottom, rgba(7,9,11,.94) 0%, rgba(7,9,11,.86) 62%, rgba(7,9,11,.6) 100%),
      radial-gradient(80% 60% at 30% 40%, rgba(7,9,11,.9), transparent 82%);
  }
}
@media (max-width:768px){
  .hero{min-height:0;padding-top:82px}
  .hero__panel h1{font-size:clamp(2.5rem,9vw,3.3rem)}
}

/* ============================================================
   Secure application link — trust panel, resume note, consent.
   New class names only; nothing above this line is altered.
   ============================================================ */
.sec-panel{
  border:1px solid var(--line-soft);
  border-radius:var(--r-md);
  background:rgba(201,151,78,.04);
  padding:20px 22px;
  margin-bottom:20px;
}
.sec-panel__hd{display:flex;align-items:center;gap:14px}
.sec-panel__hd .hex-chip{width:44px;height:48px}
.sec-panel__hd .hex-chip svg{width:21px;height:21px}
.sec-panel__title{
  font-family:var(--disp);font-weight:800;font-size:1.06rem;
  letter-spacing:-.01em;line-height:1.2;
}
.sec-panel__sub{color:var(--mint-hi);font-size:.9rem;margin-top:3px}
.sec-panel__list{
  list-style:none;margin:16px 0 0;padding:0;
  display:grid;gap:9px;
  color:var(--steel);font-size:.9rem;line-height:1.55;
}
.sec-panel__list li{position:relative;padding-left:18px}
.sec-panel__list li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:6px;height:7px;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  background:var(--mint);opacity:.75;
}

.sec-resume{
  display:flex;align-items:center;gap:12px;
  border:1px solid rgba(201,151,78,.28);
  border-radius:10px;
  background:rgba(201,151,78,.07);
  color:var(--ink-2);font-size:.88rem;
  padding:10px 12px 10px 15px;
  margin:-14px 0 24px;
}
.sec-resume span{flex:1}
.sec-resume__x{
  flex:none;width:26px;height:26px;line-height:1;
  display:grid;place-items:center;
  color:var(--steel);font-size:1.15rem;border-radius:7px;
  transition:color .2s,background .2s;
}
.sec-resume__x:hover{color:var(--mint-hi);background:rgba(201,151,78,.12)}

/* .field input sets appearance:none for text inputs — restore the native
   box here so the checkbox actually renders its check */
.sec-consent .consent input[type="checkbox"]{
  appearance:auto;-webkit-appearance:checkbox;
  width:18px;height:18px;flex:none;margin-top:3px;padding:0;
  background:none;border:0;border-radius:0;
  accent-color:var(--mint);cursor:pointer;
}
.sec-consent .consent input[type="checkbox"]:focus{
  outline:2px solid var(--mint);outline-offset:2px;box-shadow:none;
}
.sec-consent .consent label{
  font-family:var(--body);font-weight:400;font-size:.92rem;line-height:1.55;
  letter-spacing:0;color:var(--ink-2);
  margin:0;display:block;cursor:pointer;
}
.sec-consent.has-error .consent{border-color:var(--warn)}
.sec-consent .field__err{margin-top:9px}

@media (max-width:768px){
  .sec-panel{padding:18px 18px}
  .sec-resume{margin-top:-8px}
}
