/* ============================================================
   TALON DEFENSE WORKS — brand system
   Palette (TDW Style Guide / Adobe FDE):
   cream #F2F2F2 · sand #D9C196 · tan #BFA07A · gold #A6916A · charcoal #404040
   Type: Qaranta Bold (display) · Syncopate (labels) · system sans (body)
   ============================================================ */
@font-face{
  font-family:'Qaranta';
  src:url('../fonts/qaranta-bold.otf') format('opentype');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Syncopate';
  src:url('../fonts/syncopate-bold.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Syncopate';
  src:url('../fonts/syncopate-regular.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}

:root{
  --cream:#F2F2F2;
  --paper:#FAFAF9;
  --sand:#D9C196;
  --tan:#BFA07A;
  --gold:#A6916A;
  --gold-deep:#8C7752;
  --gold-text:#6E5A3C;
  --charcoal:#404040;
  --ink:#1C1913;
  --dark:#17140E;
  --dark-2:#221E16;
  --dark-3:#2C2820;
  --line-light:#DDD8CE;
  --line-dark:#3A352B;
  --display:'Qaranta',Impact,'Arial Narrow',sans-serif;
  --label:'Qaranta','Segoe UI',sans-serif; /* TRIAL 9/25: was 'Syncopate' (extra-wide, uneven caps). Revert = put Syncopate back. */
  --body:'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,Consolas,'Cascadia Mono',Menlo,monospace;
  --maxw:1160px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* Reduced motion = reduce, don't remove. No blanket kill: opacity fades and
   color transitions are safe; we remove spatial movement per component instead
   (.rv transform, lineage draw-ons, gauge auto-play, hover lifts, pulse dots). */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
body{
  font-family:var(--body);
  background:var(--cream);
  color:var(--ink);
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;
}
main{flex:1 0 auto;width:100%}
img{max-width:100%;display:block}
a{color:var(--gold-text);text-decoration:none}
.band-dark a:not(.btn),.band-dark2 a:not(.btn){color:var(--sand)}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
::selection{background:var(--sand);color:var(--ink)}

/* ---------- concept ribbon ---------- */
.ribbon{
  background:var(--ink);color:var(--sand);
  font-family:var(--label);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  text-align:center;padding:8px 14px;
}

/* ---------- nav ---------- */
header.nav{
  position:sticky;top:0;z-index:60;
  background:rgba(23,20,14,.96);
  /* no backdrop-filter: re-blurring under a sticky header repaints every scroll frame */
  border-bottom:1px solid rgba(166,145,106,.25);
}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.nav-logo{flex:none}
.nav-logo img{height:44px;width:auto;max-width:none}
nav.menu{display:flex;gap:24px;align-items:center}
nav.menu a{
  font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:.07em;text-transform:uppercase; /* Qaranta (Dave 9/25; was Syncopate 11px) */
  color:#E8E2D6;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap;
}
nav.menu a:hover{color:var(--sand);text-decoration:none}
nav.menu a.active{color:var(--sand);border-bottom-color:var(--gold)}
nav.menu a.nav-cta{border:1.5px solid var(--gold);padding:10px 16px;color:var(--sand)}
nav.menu a.nav-cta:hover{background:rgba(166,145,106,.15)}
nav.menu a.nav-cta.active{background:var(--gold);color:var(--dark);border-bottom-color:transparent}
.nav-burger{display:none;background:none;border:1px solid var(--gold);color:var(--sand);font-family:var(--label);text-transform:uppercase;font-size:11px;letter-spacing:.2em;padding:9px 14px;cursor:pointer}
/* dropdown: The Works > Test Lab / Contact */
.nav-sub{position:relative;display:flex;align-items:center;align-self:stretch}
.nav-sub>a.has-sub::after{content:"";display:inline-block;margin-left:7px;vertical-align:2px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--gold)}
.nav-sub-menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  min-width:172px;padding:6px 0;display:none;flex-direction:column;
  background:rgba(23,20,14,.97);border:1px solid rgba(166,145,106,.25);border-top:2px solid var(--gold);
}
.nav-sub:hover .nav-sub-menu,.nav-sub:focus-within .nav-sub-menu{display:flex}
nav.menu .nav-sub-menu a{padding:11px 20px;border-bottom:none;width:100%;font-size:13px}
nav.menu .nav-sub-menu a.active{color:var(--sand);background:rgba(166,145,106,.12);border-bottom:none}
@media (max-width:1180px){
  .nav-sub{flex-direction:column;align-items:stretch;align-self:auto;width:100%}
  .nav-sub>a.has-sub::after{display:none}
  .nav-sub-menu{position:static;display:flex;transform:none;border:none;background:none;padding:0}
  nav.menu .nav-sub-menu a{padding:13px 28px 13px 46px;opacity:.85}
}
@media (max-width:1180px){
  nav.menu{
    display:none;position:absolute;top:76px;left:0;right:0;
    background:var(--dark);flex-direction:column;gap:0;padding:10px 0 18px;
    border-bottom:1px solid var(--line-dark);
  }
  nav.menu.open{display:flex}
  nav.menu a{padding:13px 28px;width:100%}
  nav.menu a.nav-cta{margin:12px 28px 4px;width:calc(100% - 56px);text-align:center}
  .nav-burger{display:block}
}

/* ---------- shared section machinery ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
section.band{padding:96px 0}
section.band.tight{padding:72px 0}
.band-dark{background:var(--dark);color:#EDE8DD}
.band-dark2{background:var(--dark-2);color:#EDE8DD}
.band-cream{background:var(--cream)}
.band-paper{background:var(--paper)}

.eyebrow{
  display:flex;align-items:center;gap:16px;
  font-family:var(--label);font-weight:700;font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-text);margin-bottom:22px;
}
.band-dark .eyebrow,.band-dark2 .eyebrow{color:var(--sand)}
.hero .eyebrow{color:var(--sand)}
.eyebrow::before{content:'';width:44px;height:2px;background:var(--gold);flex:none}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:'';width:44px;height:2px;background:var(--gold);flex:none}

h1,h2,h3{font-family:var(--display);text-transform:uppercase;line-height:1.04;text-wrap:balance;font-weight:700}
h1{font-size:clamp(44px,7.2vw,88px);letter-spacing:.01em}
h2{font-size:clamp(30px,4.4vw,52px);margin-bottom:20px}
h2.h2s{font-size:clamp(26px,3.4vw,40px)}
h3{font-size:21px;letter-spacing:.03em;margin-bottom:10px}
.lede{font-size:19px;max-width:64ch;color:var(--charcoal)}
.band-dark .lede,.band-dark2 .lede{color:#C9C2B2}
p+p{margin-top:14px}

.btn{
  display:inline-block;font-family:var(--label);font-weight:700;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  padding:16px 30px;border:2px solid var(--gold);cursor:pointer;transition:background .18s,color .18s;
}
.btn:hover{text-decoration:none}
.btn-solid{background:var(--gold);color:var(--dark)}
.btn-solid:hover{background:var(--sand);border-color:var(--sand)}
.btn-ghost{background:transparent;color:var(--sand)}
.btn-ghost:hover{background:rgba(166,145,106,.15)}
.btn-dark{background:#630d0d;border-color:#630d0d;color:var(--cream)}
.btn-dark:hover{background:#7d1414;border-color:#7d1414}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.16,.84,.34,1),transform .8s cubic-bezier(.16,.84,.34,1)}
.rv.in{opacity:1;transform:none}
/* reduced motion = reduce, don't remove: keep opacity fades, drop spatial movement */
@media (prefers-reduced-motion:reduce){.rv{transform:none;transition:opacity .6s ease}}


/* ---------- hero ---------- */
.hero{
  position:relative;min-height:70vh;display:flex;align-items:flex-end;
  background:var(--dark);color:#F5F1E8;overflow:hidden;
}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.92)}
.hero .shade{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(23,20,14,.42) 0%,rgba(23,20,14,.10) 42%,rgba(23,20,14,.78) 100%)}
.hero .wrap{position:relative;padding-bottom:84px;padding-top:140px;width:100%}
.hero .sub{font-size:19px;max-width:56ch;margin-top:22px;color:#DDD5C4}
.hero-home .bg{background-image:url('../img/photo-2528.jpg')}
/* home hero quiet-loop: photo is the baseline; video fades in over it once playing (JS-injected, skipped under reduced motion) */
.herovid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:0;transition:opacity 1.4s cubic-bezier(.16,.84,.34,1)}
.herovid.live{opacity:.6}
.hero-mini{min-height:52vh}
.hero-peregrine .bg{background-image:url('../img/peregrine-hero.jpg')}
.hero-story .bg{background-image:url('../img/about-hero.jpg');background-position:center 30%}

/* ---------- stat strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark)}
.stat{background:var(--dark-2);padding:34px 26px;text-align:center}
.stat .num{font-family:var(--display);font-size:46px;color:var(--sand);line-height:1}
.stat .num sup{font-size:20px}
.stat .lbl{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#9A9284;margin-top:10px}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}}

/* ---------- product cards ---------- */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:46px}
@media (max-width:860px){.cards{grid-template-columns:1fr}}
.pcard{background:var(--dark);color:#EDE8DD;display:flex;flex-direction:column;border:1px solid var(--line-dark)}
.pcard .ph{aspect-ratio:16/8.5;overflow:hidden;background:#0D0B07;display:flex;align-items:center;justify-content:center}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.pcard:hover .ph img{transform:scale(1.035)}
.pcard .body{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1}
.pcard .series{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.pcard h3{font-size:30px;margin:10px 0 6px}
.pcard .tag{color:#B9B1A0;font-size:15.5px}
.pcard .specline{font-family:var(--mono);font-size:12.5px;color:var(--sand);margin:16px 0 4px;letter-spacing:.02em}
.pcard .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:22px;gap:12px;flex-wrap:wrap}
.pcard .price{font-family:var(--display);font-size:24px;color:var(--sand)}
.pcard .price .note{font-family:var(--label);text-transform:uppercase;font-size:10px;letter-spacing:.2em;color:#8E8676;display:block;margin-top:4px}
/* Hawk Series development cards: titanium-gray coding, honest typographic
   placeholder until real prototypes exist (no fake renders, ever) */
.pcard-hawk .series{color:#9FA6AD}
.pcard-hawk .specline{color:#C9CFD6}
.ph-dev{flex-direction:column;gap:10px;border-bottom:2px solid #9FA6AD;position:relative}
.ph-dev .devname{font-family:var(--display);font-size:clamp(34px,3.6vw,46px);text-transform:uppercase;letter-spacing:.04em;color:#3A3F45}
.ph-dev .devsub{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#6E7377}
.ph-dev::before,.ph-dev::after{content:"";position:absolute;width:14px;height:14px;border:0 solid rgba(159,166,173,.5)}
.ph-dev::before{top:12px;left:12px;border-top-width:1.5px;border-left-width:1.5px}
.ph-dev::after{bottom:12px;right:12px;border-bottom-width:1.5px;border-right-width:1.5px}
.badge{
  display:inline-block;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--gold);color:var(--sand);padding:6px 12px;
}
.badge.solid{background:var(--gold);color:var(--dark)}

/* ---------- tech band ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
@media (max-width:880px){.split{grid-template-columns:1fr}}
.techlist{list-style:none;margin-top:26px;display:grid;gap:18px}
.techlist li{display:flex;gap:16px;align-items:flex-start}
.techlist .tick{flex:none;width:26px;height:26px;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--sand);font-size:13px;margin-top:2px}
.techlist b{display:block;font-family:var(--label);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sand);margin-bottom:3px}
.techlist span{color:#C0B8A6;font-size:15.5px}
.figframe{border:1px solid var(--line-dark);background:#26221D;padding:10px}
.figframe img{width:100%}
.figcap{font-family:var(--mono);font-size:11.5px;color:#8E8676;padding:12px 6px 4px;letter-spacing:.03em}
.band-cream .figframe,.band-paper .figframe{border-color:var(--line-light);background:#fff}
.band-cream .figcap,.band-paper .figcap{color:var(--charcoal)}

/* ---------- process ---------- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:46px}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.step{border-top:2px solid var(--gold);padding-top:18px}
.step .n{font-family:var(--display);font-size:15px;color:var(--gold-text);letter-spacing:.1em}
.band-dark .step .n,.band-dark2 .step .n{color:var(--gold)}
.step h3{font-size:17px;margin:8px 0 8px;letter-spacing:.06em}
.step p{font-size:14.5px;color:var(--charcoal)}
.band-dark .step p,.band-dark2 .step p{color:#B9B1A0}

/* timeline (works page) */
.timeline{margin-top:54px;display:grid;gap:0}
/* Process rows: the photo is a drawing-sheet plate that carries the row and
   alternates sides; the step number is a large faint index, not a bullet. */
.trow{display:grid;grid-template-columns:96px 1fr minmax(320px,44%);gap:20px 48px;padding:60px 0;
  border-top:1px solid var(--line-light);align-items:center}
.trow:last-child{border-bottom:1px solid var(--line-light)}
.trow>*{grid-row:1}
.trow .tn{grid-column:1;font-family:var(--display);font-size:clamp(60px,6.4vw,92px);color:var(--tan);opacity:.55;line-height:.9;align-self:start;margin-top:4px}
.trow>div:nth-child(2){grid-column:2}
.trow .tmedia{grid-column:3}
/* even rows: plate on the left, index and text follow */
.trow:nth-child(even){grid-template-columns:minmax(320px,44%) 96px 1fr}
.trow:nth-child(even) .tmedia{grid-column:1}
.trow:nth-child(even) .tn{grid-column:2}
.trow:nth-child(even)>div:nth-child(2){grid-column:3}
.trow h3{font-size:24px;margin-bottom:12px}
.trow p{max-width:52ch;color:var(--charcoal);font-size:17px;line-height:1.6}
/* the plate: white mat, offset gold outline behind, registration ticks at the corners */
.tmedia{position:relative;padding:12px;background:#fff;border:1px solid var(--line-light);box-shadow:0 22px 48px rgba(23,20,14,.16)}
.tmedia::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
.tmedia::after{content:'';position:absolute;inset:5px;pointer-events:none;
  --t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/16px 2px no-repeat,var(--t) top left/2px 16px no-repeat,
             var(--t) top right/16px 2px no-repeat,var(--t) top right/2px 16px no-repeat,
             var(--t) bottom left/16px 2px no-repeat,var(--t) bottom left/2px 16px no-repeat,
             var(--t) bottom right/16px 2px no-repeat,var(--t) bottom right/2px 16px no-repeat}
.tmedia img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.tmedia .tbd{aspect-ratio:4/3;border:1px dashed var(--tan);display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--charcoal);background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(191,160,122,.12) 10px 20px)}
@media (max-width:900px){
  .trow,.trow:nth-child(even){grid-template-columns:72px 1fr;gap:16px 24px;padding:44px 0}
  .trow>*{grid-row:auto}
  .trow .tn,.trow:nth-child(even) .tn{grid-column:1;grid-row:1;font-size:56px}
  .trow>div:nth-child(2),.trow:nth-child(even)>div:nth-child(2){grid-column:2;grid-row:1}
  .trow .tmedia,.trow:nth-child(even) .tmedia{grid-column:1/-1;grid-row:2;margin-top:6px}
}

/* ---------- quote band ---------- */
.quote{position:relative;background:var(--dark);color:#F0EBDF;overflow:hidden}
.quote .bg{position:absolute;inset:0;background:url('../img/quote-range-fire.jpg') center 35%/cover;opacity:.28}
.quote .inner{position:relative;max-width:900px;margin:0 auto;padding:130px 24px;text-align:center}
.quote blockquote{font-family:var(--display);font-size:clamp(26px,3.6vw,44px);text-transform:uppercase;line-height:1.2}
.quote blockquote em{color:var(--sand);font-style:normal}
.quote .attr{font-family:var(--label);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#9A9284;margin-top:26px}

/* ---------- spec table ---------- */
table.spec{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:14px}
table.spec th,table.spec td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line-light)}
table.spec th{font-family:var(--label);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--charcoal);width:42%;font-weight:700}
.band-dark table.spec th,.band-dark table.spec td,.band-dark2 table.spec th,.band-dark2 table.spec td{border-color:var(--line-dark)}
.band-dark table.spec th,.band-dark2 table.spec th{color:#9A9284}
.band-dark table.spec td,.band-dark2 table.spec td{color:#EDE8DD}
.tablewrap{overflow-x:auto}

/* ---------- chart ---------- */
/* ---------- Test Lab animated dB gauge ---------- */
.gauge-card{background:var(--paper);border:1px solid var(--line-light);padding:26px 28px 22px;margin-top:34px;position:relative}
.gauge-card.g-dark{background:var(--dark-2);border-color:var(--line-dark)}
/* tactical HUD framing */
.g-corner{position:absolute;width:13px;height:13px;border:2px solid var(--gold);opacity:.7}
.g-corner.tl{top:9px;left:9px;border-right:0;border-bottom:0}
.g-corner.tr{top:9px;right:9px;border-left:0;border-bottom:0}
.g-corner.bl{bottom:9px;left:9px;border-right:0;border-top:0}
.g-corner.br{bottom:9px;right:9px;border-left:0;border-top:0}
.gauge-status{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal);margin-top:5px}
.g-dark .gauge-status{color:#8E8676}
.g-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.g-firing .gauge-status,.g-firing .g-stat{color:#C4562F}
.g-locked .g-stat{color:var(--gold-deep)}
.g-dark .g-locked .g-stat{color:var(--sand)}
.gauge-head{margin-bottom:6px;padding-right:118px} /* clear the RE-TEST control */
.gauge-eyebrow{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-text)}
.g-dark .gauge-eyebrow{color:var(--sand)}
.gauge-title{font-family:var(--display);text-transform:uppercase;font-size:23px;letter-spacing:.02em;color:var(--ink);line-height:1.05;margin-top:3px}
.g-dark .gauge-title{color:#F0EBDF}
.gauge-wrap{position:relative;max-width:440px;margin:6px auto 0}
.gauge-svg{width:100%;height:auto;display:block;overflow:visible}
.gauge-readout{position:absolute;top:44%;left:0;right:0;text-align:center;pointer-events:none}
.gauge-read{font-family:var(--mono);font-size:38px;font-weight:700;color:var(--gold-text);font-variant-numeric:tabular-nums;display:inline-block;transform-origin:center bottom;will-change:transform,filter}
.g-dark .gauge-read{color:var(--sand)}
.gauge-unit{font-family:var(--mono);font-size:15px;color:var(--charcoal);margin-left:4px}
.g-dark .gauge-unit{color:#9A9284}
.gauge-readtag{font-family:var(--label);font-weight:700;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-text);min-height:15px;margin-top:2px;transition:color .3s ease}
.g-dark .gauge-readtag{color:var(--sand)}
.gauge-readtag.hot,.g-dark .gauge-readtag.hot{color:#C4562F}
/* bare-muzzle reference marker appears at the shot and stays as the comparison */
.g-baremark{opacity:0;transition:opacity .45s ease}
.g-bare .g-baremark{opacity:1}
.gauge-badge{text-align:center;margin-top:12px;opacity:0;transform:translateY(6px);transition:opacity .5s ease .1s,transform .5s ease .1s}
.gauge-badge.show{opacity:1;transform:none}
.gauge-badge b{display:block;font-family:var(--label);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.g-dark .gauge-badge b{color:var(--sand)}
.gauge-badge span{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--charcoal)}
.g-dark .gauge-badge span{color:#8E8676}
.gauge-note{font-size:12.5px;color:var(--charcoal);margin-top:12px;max-width:72ch}
.g-dark .gauge-note{color:#8E8676}
/* dot-plot chart (home + Test Lab) */
.chart-card{background:var(--paper);border:1px solid var(--line-light);padding:30px 28px 22px;margin-top:34px}
.band-dark .chart-card,.band-dark2 .chart-card{background:var(--dark-2);border-color:var(--line-dark)}
.chart-title{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--charcoal);margin-bottom:4px}
.band-dark .chart-title,.band-dark2 .chart-title{color:#9A9284}
.chart-sub{font-size:13.5px;color:var(--charcoal);margin-bottom:18px}
.band-dark .chart-sub,.band-dark2 .chart-sub{color:#B9B1A0}
.chart-note{font-size:12.5px;color:var(--charcoal);margin-top:14px;max-width:72ch}
.band-dark .chart-note,.band-dark2 .chart-note{color:#8E8676}
/* gauge effects are keyed to JS-applied classes; JS gates auto-play on reduced
   motion, but the RE-TEST button (an explicit user action) always plays. */
.g-live .g-track,.g-live .g-safe,.g-live .g-danger{animation:g-draw .55s cubic-bezier(.4,.9,.3,1) both}
.g-live .g-safe{animation-delay:.18s}
.g-live .g-danger{animation-delay:.30s}
@keyframes g-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.g-pulse{animation:g-glow 1.6s ease-out 1}
@keyframes g-glow{0%{filter:drop-shadow(0 0 0 rgba(166,145,106,0))}30%{filter:drop-shadow(0 0 7px rgba(166,145,106,.7))}100%{filter:drop-shadow(0 0 0 rgba(166,145,106,0))}}
/* motion-blur trail behind the needle */
.gauge-ghost{opacity:.30;filter:blur(1.1px)}
/* concussion ripples from the muzzle */
.g-ripple{opacity:0;transform-box:fill-box;transform-origin:center}
.g-boom .g-ripple-1{animation:g-rip .72s cubic-bezier(.2,.7,.3,1)}
.g-boom .g-ripple-2{animation:g-rip .72s cubic-bezier(.2,.7,.3,1) .07s}
.g-soft .g-ripple-1{animation:g-rip-s .55s ease-out}
@keyframes g-rip{0%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(7)}}
@keyframes g-rip-s{0%{opacity:.5;transform:scale(1)}100%{opacity:0;transform:scale(3.4)}}
/* damage-line flash as the needle crosses it downward */
.g-thrflash .g-thrmark,.g-thrflash .g-thr{animation:g-thrf .5s ease}
@keyframes g-thrf{0%,100%{filter:none}30%{filter:drop-shadow(0 0 6px #C4562F) brightness(1.55)}}
/* hub ember on settle */
.g-settled .g-hub{animation:g-hubf .8s ease}
@keyframes g-hubf{0%{filter:none}25%{filter:drop-shadow(0 0 6px var(--sand)) brightness(1.6)}100%{filter:none}}
/* telemetry indicator blink */
.g-armed .g-dot{animation:g-blink 1s steps(1) infinite}
.g-firing .g-dot{background:#C4562F;animation:g-blink .42s steps(1) infinite}
.g-locked .g-dot{background:var(--gold)}
@keyframes g-blink{50%{opacity:.15}}
/* RE-TEST control */
.g-retest{
  position:absolute;top:14px;right:16px;cursor:pointer;background:none;
  border:1px solid var(--gold);color:var(--gold-text);
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  padding:6px 11px;transition:background .25s ease,color .25s ease;
}
.g-dark .g-retest{color:var(--sand)}
.g-retest:hover{background:rgba(166,145,106,.16)}
.g-retest:active{background:var(--gold);color:var(--dark)}
.g-retest[disabled]{opacity:.35;cursor:default;pointer-events:none}
/* caliber toggle (5.56 / 7.62 on Diode, 6mm / 7.62 on Peregrine) */
.g-toggle{display:inline-flex;border:1px solid var(--gold);margin-top:10px}
.g-tog{background:none;border:0;border-left:1px solid var(--gold);cursor:pointer;color:var(--gold-text);
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:7px 16px;
  transition:background .2s ease,color .2s ease}
.g-tog:first-child{border-left:0}
.g-dark .g-tog{color:var(--sand)}
.g-tog:hover{background:rgba(166,145,106,.16)}
.g-tog.on{background:var(--gold);color:var(--dark)}
/* demo stamp: placeholder values while real data is pending sign-off */
.g-demo-tag{position:absolute;top:0;left:50%;transform:translateX(-50%);background:#C4562F;color:#F6F1E6;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;padding:4px 12px;z-index:2}
.g-demo .gauge-read,.g-demo .gauge-badge b{opacity:.85}
/* pending state: no verified numbers yet */
.g-pending .gauge-read{opacity:.45}
.g-pending .gauge-readtag{color:var(--charcoal)}
.g-dark.g-pending .gauge-readtag{color:#8E8676}
.chart-pending .chart-sub{color:var(--charcoal)}

/* ---------- home: two-line product band ----------
   One panel per line. The left rule carries the material code from the lineage
   tree: gold = stainless (Diode), titanium gray = Ti (Peregrine). */
.lines{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}
@media (max-width:760px){.lines{grid-template-columns:1fr}}
.line{--rule:var(--gold);position:relative;display:block;aspect-ratio:16/11;overflow:hidden;
  background:var(--dark-2);border:1px solid var(--line-dark);color:#F0EBDF;text-decoration:none}
.line.line-ti{--rule:#9FA6AD}
.band-cream .line,.band-paper .line{border-color:var(--line-light);box-shadow:0 14px 34px rgba(23,20,14,.16)}
.line::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rule);z-index:2}
.line img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88) brightness(.82);
  transition:transform 1.1s cubic-bezier(.16,.84,.34,1),filter .6s ease}
.line:hover img{transform:scale(1.035);filter:saturate(.95) brightness(.9)}
.line-body{position:absolute;left:0;right:0;bottom:0;padding:26px 28px 24px 30px;z-index:1;
  background:linear-gradient(180deg,rgba(23,20,14,0) 0%,rgba(23,20,14,.72) 45%,rgba(23,20,14,.94) 100%)}
.line-series{display:block;font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--sand)}
.line.line-ti .line-series{color:#C9CFD6}
.line h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(28px,3.2vw,40px);letter-spacing:.02em;line-height:1;margin-top:8px;color:#F5F1E8}
.line p{font-size:15px;color:#D6CEBD;margin-top:8px;max-width:38ch}
.line-cta{display:inline-block;margin-top:14px;font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand);border-bottom:1px solid var(--rule);padding-bottom:3px;transition:color .25s ease,border-color .25s ease}
.line.line-ti .line-cta{color:#C9CFD6}
.line:hover .line-cta{color:#F5F1E8;border-color:#F5F1E8}
.line-mono{position:absolute;top:16px;right:18px;z-index:2;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:rgba(240,235,223,.72)}
@media (prefers-reduced-motion:reduce){.line img,.line:hover img{transition:none;transform:none}}

/* full-bleed photo bands: a wide strip, never a full screen of photo */
.bleed-band img{width:100%;display:block;max-height:73vh;object-fit:cover;object-position:center 42%} /* 56vh -> 73vh 9/25: Home spread shows ~30% more of the photo (Dave) */
@media (max-width:760px){.bleed-band img{max-height:44vh}}

/* ---------- home: closing dealer band ---------- */
.cta-band .wrap{text-align:center}
.cta-band .lede{margin:14px auto 0;max-width:54ch}
.cta-band .btn-row{justify-content:center;margin-top:28px}
.cta-band .btn-ghost{color:var(--gold-text);border-color:var(--gold)}
.cta-band .btn-ghost:hover{background:rgba(166,145,106,.14)}

/* ---------- product photo slideshow (fixed height, aspect-agnostic, no captions) ---------- */
.pslide{position:relative;margin-top:26px}
.pslide-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.pslide-track::-webkit-scrollbar{display:none}
.pslide-track img{height:min(520px,62vh);width:auto;max-width:none;flex:none;scroll-snap-align:center;display:block;background:var(--dark-2);border:1px solid var(--line-dark)}
.pslide-track img:first-child{margin-left:auto}
.pslide-track img:last-child{margin-right:auto}
.ps-prev,.ps-next{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:1px solid var(--gold);background:rgba(23,20,14,.72);color:var(--sand);cursor:pointer;font-size:18px;line-height:1;transition:background .2s ease}
.ps-prev{left:10px}.ps-next{right:10px}
.ps-prev:hover,.ps-next:hover{background:var(--gold);color:var(--dark)}
@media (max-width:760px){.pslide-track img{height:min(360px,54vh)}.ps-prev,.ps-next{display:none}}

/* ---------- gallery ---------- */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
@media (max-width:760px){.gal{grid-template-columns:1fr}}
.gal figure{background:var(--dark-2);border:1px solid var(--line-dark)}
.gal img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gal figcaption{font-family:var(--mono);font-size:11.5px;color:#8E8676;padding:12px 14px}

/* ---------- merch tiles ---------- */
.merch{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
@media (max-width:860px){.merch{grid-template-columns:1fr 1fr}}
.mtile{border:1px solid var(--line-light);background:#fff;padding:38px 26px;text-align:center}
.mtile .mk{width:56px;height:56px;margin:0 auto 18px;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center}
.mtile .mk svg{width:28px;height:28px;stroke:var(--gold-deep);fill:none;stroke-width:1.6}
.mtile h3{font-size:15px;letter-spacing:.08em}
.mtile p{font-size:13px;color:var(--charcoal);margin-top:6px}

/* ---------- signup ---------- */
.signup{background:var(--dark-2);border:1px solid var(--line-dark);padding:54px 44px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;color:#EDE8DD}
.signup .lede{color:#C9C2B2}
@media (max-width:820px){.signup{grid-template-columns:1fr;padding:40px 26px}}
.field-row{display:flex;gap:12px;flex-wrap:wrap}
input[type=email],input[type=text],input[type=tel],input[type=url],input[type=date],select,textarea{
  font-family:var(--body);font-size:15px;padding:15px 16px;border:1px solid var(--line-dark);
  background:#14110C;color:#EDE8DD;min-width:0;flex:1;
}
.band-cream input,.band-cream select,.band-cream textarea,.band-paper input,.band-paper select,.band-paper textarea{
  background:#fff;color:var(--ink);border:1px solid #C9C2B4;
}
input::placeholder,textarea::placeholder{color:#8E8676}
.form-note{font-size:12.5px;color:#8E8676;margin-top:12px}
.form-ok{display:none;border:1px solid var(--gold);color:var(--sand);background:rgba(166,145,106,.1);padding:14px 18px;font-size:14.5px;margin-top:16px}
.form-ok.show{display:block}
.band-cream .form-ok,.band-paper .form-ok{color:var(--gold-text)}
.signup .form-ok{color:var(--sand)}
.signup input[type=email]{background:#14110C;color:#EDE8DD;border-color:var(--line-dark)}

/* contact grid */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;margin-top:46px}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.cinfo{display:grid;gap:26px;align-content:start}
.cinfo .blk b{display:block;font-family:var(--label);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text);margin-bottom:6px}
.cinfo .blk div{font-size:16.5px}
form.cform{display:grid;gap:14px}
form.cform textarea{min-height:140px;resize:vertical}

/* ---------- FAQ ---------- */
.faq{margin-top:44px;border-top:1px solid var(--line-light)}
.faq details{border-bottom:1px solid var(--line-light)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 4px;font-family:var(--label);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--display);font-size:22px;color:var(--gold-deep);flex:none}
.faq details[open] summary::after{content:'–'}
.faq .a{padding:0 4px 24px;color:var(--charcoal);max-width:78ch}

/* ---------- product lineage (family tree) ----------
   Two engineering lines from one root. Line color carries the
   material story: gold = stainless (Falcon), titanium gray = Ti (Hawk). */
.lineage{margin-top:54px}
.lin-root{text-align:center;position:relative;z-index:1}
.lin-mark{
  display:inline-block;font-family:var(--display);text-transform:uppercase;
  font-size:clamp(17px,2vw,22px);letter-spacing:.08em;color:var(--sand);
  border:1px solid var(--line-dark);background:var(--dark);padding:16px 34px 13px;
}
.lin-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#8E8676;margin-top:9px;text-transform:uppercase}
.lin-trunk{width:1px;height:42px;margin:10px auto 0;background:var(--gold);transform-origin:top;position:relative}
.lin-node{
  position:absolute;left:50%;bottom:-4px;width:9px;height:9px;border-radius:50%;
  transform:translateX(-50%);background:var(--gold);
}
/* pulse ring uses transform+opacity only (GPU-composited; box-shadow pulses repaint every frame) */
.lin-node::after{
  content:"";position:absolute;inset:-2px;border-radius:50%;
  border:2px solid var(--gold);opacity:0;
  animation:lin-pulse 3s ease-out infinite;
}
@keyframes lin-pulse{
  0%{transform:scale(.6);opacity:.55}
  70%,100%{transform:scale(3.4);opacity:0}
}
.lin-branches{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;position:relative;padding-top:40px}
/* horizontal spar connecting the two stems */
.lin-branches::before{
  content:"";position:absolute;top:0;left:25%;right:25%;height:1px;
  background:linear-gradient(90deg,var(--gold) 0 50%,#9FA6AD 50% 100%);
  transform-origin:center;
}
.lin-branch{position:relative;display:flex;flex-direction:column;transition:opacity .35s ease,filter .35s ease}
.lin-branch{--line:var(--gold);--hi:var(--sand)}
.b-hawk{--line:#9FA6AD;--hi:#C9CFD6}
.lin-stem{width:1px;height:40px;background:var(--line);position:absolute;top:-40px;left:50%;transform-origin:top}
.lin-stem .lin-node{bottom:auto;top:-4px;background:var(--line)}
.lin-stem .lin-node::after{border-color:var(--line);animation-delay:1.2s}
.lin-card{
  border:1px solid var(--line-dark);border-top:2px solid var(--line);background:var(--dark-2);
  padding:28px 30px 24px;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.lin-card .series{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--line)}
.lin-card h3{font-size:24px;margin:8px 0 16px;color:#F0EBDF}
.lin-specs{display:grid;gap:9px;margin:0}
.lin-specs>div{display:grid;grid-template-columns:86px 1fr;gap:12px;align-items:baseline;border-bottom:1px dashed var(--line-dark);padding-bottom:9px}
.lin-specs>div:last-child{border-bottom:none;padding-bottom:0}
.lin-specs dt{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#8E8676}
.lin-specs dd{font-family:var(--mono);font-size:13px;color:#EDE8DD;margin:0}
.lin-drop{width:1px;height:26px;margin:0 auto;background:var(--line);transform-origin:top}
.lin-models{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lin-model{
  display:flex;flex-direction:column;gap:3px;text-align:center;padding:15px 12px 13px;
  border:1px solid var(--line-dark);background:var(--dark);
  transition:transform .3s ease,border-color .3s ease,background .3s ease;
}
a.lin-model:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--line);background:var(--dark-2)}
.lin-model .mname{font-family:var(--display);text-transform:uppercase;font-size:18px;letter-spacing:.05em;color:var(--hi)}
.lin-model .mcal{font-family:var(--mono);font-size:12px;color:#B9B1A0}
.lin-model .mstat{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--line);margin-top:6px}
.lin-model.live .mstat::before{content:"●";margin-right:6px}
.lin-model.dev{border-style:dashed;opacity:.85}
/* lineage focus: hovered/focused branch lights up, sibling recedes */
.lin-branches:hover .lin-branch:not(:hover):not(:focus-within),
.lin-branches:focus-within .lin-branch:not(:hover):not(:focus-within){opacity:.48;filter:saturate(.55)}
.lin-branch:hover .lin-card,.lin-branch:focus-within .lin-card{
  transform:translateY(-3px);border-color:var(--line);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
}
.lin-fig{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:#8E8676;text-align:center;margin-top:34px;text-transform:uppercase}
/* draw-on choreography, keyed off the shared .rv reveal observer */
@media (prefers-reduced-motion:no-preference){
  .lineage.rv .lin-trunk,.lineage.rv .lin-stem,.lineage.rv .lin-drop{transform:scaleY(0);transition:transform .5s ease}
  .lineage.rv .lin-branches::before{transform:scaleX(0);transition:transform .5s ease .45s}
  .lineage.rv .lin-card,.lineage.rv .lin-model,.lineage.rv .lin-fig{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
  .lineage.rv.in .lin-trunk{transform:scaleY(1);transition-delay:.15s}
  .lineage.rv.in .lin-branches::before{transform:scaleX(1)}
  .lineage.rv.in .lin-stem{transform:scaleY(1);transition-delay:.9s}
  .lineage.rv.in .lin-card{opacity:1;transform:none;transition-delay:1.15s}
  .lineage.rv.in .lin-drop{transform:scaleY(1);transition-delay:1.7s}
  .lineage.rv.in .lin-model{opacity:1;transform:none;transition-delay:1.9s}
  .lineage.rv.in .lin-model:nth-child(2){transition-delay:2.05s}
  .lineage.rv.in .lin-fig{opacity:1;transform:none;transition-delay:2.3s}
}
/* reduced motion: no draw-on sweeps, but the lineage still fades in as a cascade;
   kill the repeating pulse dots and hover lifts (spatial motion) */
@media (prefers-reduced-motion:reduce){
  .lineage.rv .lin-card,.lineage.rv .lin-model,.lineage.rv .lin-fig{opacity:0;transition:opacity .6s ease}
  .lineage.rv.in .lin-card{opacity:1;transition-delay:.15s}
  .lineage.rv.in .lin-model{opacity:1;transition-delay:.4s}
  .lineage.rv.in .lin-model:nth-child(2){transition-delay:.55s}
  .lineage.rv.in .lin-fig{opacity:1;transition-delay:.75s}
  .lin-node::after{animation:none;opacity:0}
  a.lin-model:hover,.lin-branch:hover .lin-card,.lin-branch:focus-within .lin-card{transform:none}
}
@media (max-width:820px){
  .lin-branches{grid-template-columns:1fr;gap:44px;padding-top:34px}
  .lin-branches::before{display:none}
  .lin-stem{height:34px;top:-34px}
  .b-hawk .lin-stem{display:none}
  .b-hawk{border-top:1px dashed var(--line-dark);padding-top:40px}
  .lin-specs>div{grid-template-columns:74px 1fr}
}

/* ---------- merch drops ---------- */
.drops{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
@media (max-width:900px){.drops{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.drops{grid-template-columns:1fr}}
.drop{position:relative;display:flex;flex-direction:column;border:1px solid var(--line-light)}
.drop .dart{aspect-ratio:1/1.05;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:30px}
.drop .dkick{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;opacity:.78}
.drop .dn{font-family:var(--display);font-size:clamp(24px,2.4vw,32px);text-transform:uppercase;line-height:1.12}
.drop-dark .dart{background:var(--dark-2);color:var(--sand)}
.drop-dark .dn{color:#F0EBDF}
.drop-gold .dart{background:var(--gold);color:var(--dark)}
.drop-gold .dn{color:var(--dark)}
.drop-cream .dart{background:#fff;color:var(--gold-text)}
.drop-cream .dn{color:var(--ink)}
.drop .dmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;background:#fff;border-top:1px solid var(--line-light);font-family:var(--mono);font-size:11.5px;color:var(--charcoal)}
.drop .dbadge{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--gold);color:var(--gold-text);padding:4px 8px;flex:none}
.drop .dconcept{position:absolute;top:10px;right:10px;z-index:1;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--charcoal);background:rgba(242,242,242,.92);border:1px dashed var(--tan);padding:3px 7px}
.drop-dark .dconcept{background:rgba(23,20,14,.85);color:#B9B1A0}

/* ---------- FFL finder ---------- */
.demo-banner{border:1px dashed var(--tan);background:rgba(191,160,122,.14);font-family:var(--mono);font-size:12px;color:var(--charcoal);padding:12px 16px;margin-bottom:36px}
.finder-controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}
.finder-controls input{flex:2;min-width:220px}
.finder-controls select{flex:1;min-width:170px}
.tilemap{display:grid;grid-template-columns:repeat(12,minmax(0,52px));gap:5px}
.tile{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--label);text-transform:uppercase;font-size:10px;font-weight:700;background:#E6E1D6;color:var(--charcoal);cursor:pointer;border:1px solid transparent;padding:0}
.tile:hover{border-color:var(--ink)}
.tile.has{background:var(--gold);color:var(--dark)}
.tile.no{background:repeating-linear-gradient(45deg,#D8D4CB 0 6px,#CCC7BC 6px 12px);color:#6F6960;text-decoration:line-through;cursor:not-allowed}
.tile.hq{box-shadow:inset 0 0 0 2px var(--ink)}
.tile.sel{outline:2px solid var(--ink);outline-offset:1px}
.map-legend{display:flex;gap:24px;flex-wrap:wrap;margin-top:18px;font-size:12.5px;color:var(--charcoal)}
.map-legend .lg{display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px}
.lg-dealer{background:var(--gold)} .lg-ok{background:#E6E1D6} .lg-no{background:repeating-linear-gradient(45deg,#D8D4CB 0 4px,#CCC7BC 4px 8px)} .lg-hq{background:#E6E1D6;box-shadow:inset 0 0 0 2px var(--ink)}
.ffl-results{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
@media (max-width:900px){.ffl-results{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.ffl-results{grid-template-columns:1fr}}
.dcard{background:#fff;border:1px solid var(--line-light);padding:26px 24px}
.dcard h3{font-size:16.5px;letter-spacing:.05em;margin:10px 0 8px}
.dtier{display:inline-block;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--line-light);color:var(--charcoal)}
.dtier.apex{border-color:var(--gold);background:var(--gold);color:var(--dark)}
.dtier.strike{border-color:var(--gold);color:var(--gold-text)}
.dcard .meta{font-family:var(--mono);font-size:12.5px;color:var(--charcoal);line-height:1.8}
.dtags{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.dtags span{font-family:var(--mono);font-size:11px;color:var(--gold-text);border:1px dashed var(--tan);padding:3px 8px}
.ffl-empty{grid-column:1/-1;border:1px solid var(--line-light);background:#fff;padding:26px;font-size:15px;color:var(--charcoal)}

/* ---------- footer ---------- */
footer{background:var(--dark);color:#B9B1A0;border-top:2px solid var(--gold)}
.foot-signup{border-bottom:1px solid var(--line-dark)}
.foot-signup .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-top:36px;padding-bottom:36px}
.foot-signup b{display:block;font-family:var(--label);font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--sand);margin-bottom:6px}
.foot-signup span{font-size:14px;color:#9A9284}
.fs-form{flex:1;max-width:460px;min-width:280px}
.foot-main .col .foot-soon{display:block;color:#6E675C;font-size:14.5px;padding:5px 0}
.foot-main{max-width:var(--maxw);margin:0 auto;padding:70px 24px 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px}
@media (min-width:861px){.foot-main.foot-3{grid-template-columns:1.4fr 1fr 1fr}} /* Support column parked (9/25) */
@media (max-width:860px){.foot-main{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-main{grid-template-columns:1fr}}
.foot-main img{height:42px;margin-bottom:18px}
.foot-main .col b{display:block;font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);margin-bottom:16px}
.foot-main .col a{display:block;color:#B9B1A0;font-size:14.5px;padding:5px 0}
.foot-main .col a:hover{color:var(--sand);text-decoration:none}
.foot-tag{font-size:14px;max-width:34ch}
.socials{display:flex;gap:12px;margin-top:20px}
.socials a{width:38px;height:38px;border:0;display:flex;align-items:center;justify-content:center;color:#B9B1A0}
.socials a:hover{color:var(--gold);text-decoration:none}
.socials svg{width:17px;height:17px;fill:currentColor}
.foot-legal{border-top:1px solid var(--line-dark)}
.foot-legal .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-top:22px;padding-bottom:26px;font-size:12.5px;color:#8E8676}
.foot-legal a{color:#8E8676}
.foot-coords{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#6F695D;margin-left:10px;white-space:nowrap}

/* misc */
.smallprint{font-size:12.5px;color:var(--charcoal)}
.band-dark .smallprint,.band-dark2 .smallprint{color:#8E8676}
.kicker-link{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
hr.gr{border:0;height:1px;background:var(--line-light);margin:56px 0}
/* mobile: contained hero renders become a dimmed backdrop so text never collides */
@media (max-width:760px){
  .hero .bg[style*="contain"]{
    background-size:cover !important;
    background-position:center 35% !important;
    opacity:.35;
  }
}
/* ---- large / ultrawide screens: widen the content column and keep the hero
   imagery tracking the text block instead of the screen center ---- */
@media (min-width:1800px){ :root{--maxw:1420px} }
@media (min-width:2600px){
  :root{--maxw:1720px}
  .hero .bg{background-position:38% center}
  .herovid{object-position:38% 40%}
  .hero .sub{max-width:60ch}
}
/* ============ 2026-08-18 section-transition polish (see tools/polish.css master) ============ */
/* TDW section-transition polish — PREVIEW
   Dresses the seams between color bands so pages read as one continuous
   machined piece instead of stacked slides. Three devices, all CSS-only:
   1. Tonal blend: a soft graduation where a light band meets a dark one.
   2. Registration mark: a small gold index square + hairline segments at
      tone changes — the machinist's mark, echoes the spec-sheet brand.
   3. Panel joint: a subtle hairline where two same-tone bands meet.        */

main > *{position:relative}

/* ---------- 1. tonal blends at light/dark boundaries ---------- */
/* light band following a dark band: a tall, eased feather — many soft stops so
   the shadow dissolves into the page with no visible edge (prevents banding) */
:is(.band-dark,.band-dark2,.hero) + :is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper)::before{
  content:'';position:absolute;top:0;left:0;right:0;height:260px;
  background:linear-gradient(180deg,
    rgba(23,20,14,.16) 0%,
    rgba(23,20,14,.125) 12%,
    rgba(23,20,14,.095) 24%,
    rgba(23,20,14,.068) 36%,
    rgba(23,20,14,.046) 48%,
    rgba(23,20,14,.029) 60%,
    rgba(23,20,14,.016) 72%,
    rgba(23,20,14,.007) 84%,
    rgba(23,20,14,.002) 93%,
    rgba(23,20,14,0) 100%);
  pointer-events:none;z-index:1}
/* dark band following a light band: same eased feather, mirrored */
:is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper) + :is(.band-dark,.band-dark2,.band-dark3)::before{
  content:'';position:absolute;top:0;left:0;right:0;height:200px;
  background:linear-gradient(180deg,
    rgba(242,242,242,.07) 0%,
    rgba(242,242,242,.048) 22%,
    rgba(242,242,242,.03) 44%,
    rgba(242,242,242,.016) 64%,
    rgba(242,242,242,.006) 82%,
    rgba(242,242,242,0) 100%);
  pointer-events:none;z-index:1}

/* ---------- 2. registration mark at every tone change ---------- */
/* crisp gold mark sitting exactly on the boundary: two hairline segments
   flanking a diamond, drawn at full opacity so it never reads as smudge */
:is(.band-dark,.band-dark2,.hero) + :is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper)::after,
:is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper) + :is(.band-dark,.band-dark2,.band-dark3)::after{
  content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  width:240px;height:12px;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--gold),var(--gold)) 0 center/92px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 100% center/92px 1px no-repeat,
    conic-gradient(from 45deg at 50% 50%,var(--gold) 0 360deg) center/9px 9px no-repeat;
  filter:drop-shadow(0 0 1px rgba(23,20,14,.35))}

/* ---------- 3. hairline panel joints between same-tone bands ---------- */
:is(.band-dark,.band-dark2,.band-dark3) + :is(.band-dark,.band-dark2,.band-dark3){
  border-top:1px solid var(--line-dark)}
:is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper) +
:is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper){
  border-top:1px solid var(--line-light)}
/* small registration mark on those joints so quiet seams still carry the language */
:is(.band-dark,.band-dark2,.band-dark3) + :is(.band-dark,.band-dark2,.band-dark3)::after{
  content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  width:140px;height:8px;opacity:.8;pointer-events:none;
  background:
    linear-gradient(var(--gold),var(--gold)) 0 center/54px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 100% center/54px 1px no-repeat,
    conic-gradient(from 45deg at 50% 50%,var(--gold) 0 360deg) center/6px 6px no-repeat}

/* ---------- footer seam: give the page's last hand-off the same language ---- */
footer{position:relative}
footer::after{
  content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  width:240px;height:12px;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--gold),var(--gold)) 0 center/92px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 100% center/92px 1px no-repeat,
    conic-gradient(from 45deg at 50% 50%,var(--gold) 0 360deg) center/9px 9px no-repeat;
  filter:drop-shadow(0 0 1px rgba(23,20,14,.35))}
/* when the page ends on a light band, feather the light down into the footer */
body:has(main > :is(.band-cream,.band-paper,.wp-block-group.band-cream,.wp-block-group.band-paper):last-child) footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:200px;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,
    rgba(242,242,242,.07) 0%,
    rgba(242,242,242,.048) 22%,
    rgba(242,242,242,.03) 44%,
    rgba(242,242,242,.016) 64%,
    rgba(242,242,242,.006) 82%,
    rgba(242,242,242,0) 100%)}
/* when it ends on a dark band, a machined joint line */
body:has(main > :is(.band-dark,.band-dark2,.band-dark3,.pf-fade):last-child) footer{
  border-top:1px solid var(--line-dark)}

/* ---------- hero endings: settle the photo into the page ---------- */
/* eased fade inside the photo base — no hairline shelf (a crisp line at the
   boundary reads as a jagged ledge against the feather) */
.hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:200px;
  background:linear-gradient(0deg,
    rgba(23,20,14,.62) 0%,
    rgba(23,20,14,.44) 20%,
    rgba(23,20,14,.29) 40%,
    rgba(23,20,14,.17) 58%,
    rgba(23,20,14,.08) 74%,
    rgba(23,20,14,.03) 88%,
    rgba(23,20,14,0) 100%);
  pointer-events:none}

/* ---------- mini-hero banners: center the title block, give it presence ----
   The 88vh home hero keeps its classic bottom-anchored text; the half-height
   page banners center vertically and scale up so the band feels occupied.   */
.hero-mini{display:flex;align-items:center}
.hero-mini .wrap{padding-top:110px;padding-bottom:110px}
.hero-mini h1{font-size:clamp(46px,6.8vw,86px) !important}
.hero-mini .sub{font-size:20px}

/* ---------- Kilroy easter egg: hanging over the nav's black border ---------
   Dave's supplied artwork (kilroy.png, recolored to sand on transparent),
   straddling the nav/hero boundary so he peers down into the homepage.      */
/* lives INSIDE the sticky nav, so he stays locked to the black bar while the
   page scrolls beneath him; anchored to the bar's bottom edge, hanging over */
.pf-kilroy{position:absolute;bottom:0;right:6vw;width:109px; /* 150px × .85 × .85 (Dave 9/5) */
  /* 40.8% = measured so the artwork's wall line sits exactly on the nav's bottom edge */
  transform:translateY(40.8%);opacity:.55;cursor:pointer;z-index:3;
  transition:opacity .35s ease,transform .35s cubic-bezier(.16,.84,.34,1)}
/* the egg: he brightens and peeks up a touch when found; the link goes to the parent company */
.pf-kilroy:hover,.pf-kilroy:focus-visible{opacity:1;transform:translateY(36%);outline:none}
.pf-kilroy img{width:100%;height:auto;display:block;pointer-events:none}
@media (prefers-reduced-motion:reduce){.pf-kilroy{transition:opacity .35s ease}.pf-kilroy:hover,.pf-kilroy:focus-visible{transform:translateY(40.8%)}}
@media (max-width:760px){.pf-kilroy{width:104px;right:16px}}

/* ---------- stat strips (the number bars): frame them as instrument panels ---------- */
.stats,.statbar,[class*="stat"]{scroll-margin-top:60px}

/* ---------- tall full-bleed photos: fixed window + scroll-driven pan ----------
   Very tall images (the machined-parts flat-lay) get clipped to a 66vh window.
   In browsers with scroll-driven animations the photo pans upward inside the
   window as the page scrolls, revealing the full shot; elsewhere it shows a
   clean center-weighted crop. Add more selectors to PAN_LIST as needed.       */
/* .pf-window wraps a tall image: a 62vh clipping frame that carries a named
   view-timeline; the image inside pans via transform (compositor thread —
   smooth, per Chrome/WebKit scroll-driven-animation guidance).              */
.pf-window{height:62vh;overflow:clip;position:relative;view-timeline:--pf-pan block}
.pf-window > img{width:100%;height:auto;display:block}
@supports (animation-timeline: view()){
  .pf-window > img{
    animation:pf-pan linear both;
    animation-timeline:--pf-pan;
    animation-range:cover 0% cover 100%}
  @keyframes pf-pan{
    from{transform:translateY(0)}
    to{transform:translateY(max(-100% + 62vh, -100vh))}
  }
}
/* browsers without scroll-driven animations: clean fixed crop, no motion */
@supports not (animation-timeline: view()){
  .pf-window > img{height:62vh;object-fit:cover;object-position:center 25%}
}

/* ---------- fade-through band (JS-driven via --p custom property) ----------
   A normal in-flow photo band — no pinning, no scroll hijack. As the band
   travels up the viewport it desaturates and sinks to black, completing just
   before it exits, so the page glides straight into the next section.
   Progress (--p, 0..1) is set by a small rAF-smoothed script.               */
.pf-fade{position:relative;overflow:clip;background:var(--dark)}
.pf-fade img{width:100%;height:62vh;object-fit:cover;object-position:center 30%;display:block;
  filter:saturate(calc(1 - var(--p,0)*.9)) brightness(calc(1 - var(--p,0)*.8));
  will-change:filter}
.pf-fade .figcap{position:relative;z-index:2}
/* feather the preceding dark band down onto the photo's top edge — same eased
   multi-stop treatment as the section blends, so the photo emerges from black */
.pf-fade::before{
  content:'';position:absolute;top:0;left:0;right:0;height:220px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(23,20,14,1) 0%,
    rgba(23,20,14,.86) 14%,
    rgba(23,20,14,.66) 28%,
    rgba(23,20,14,.47) 42%,
    rgba(23,20,14,.30) 56%,
    rgba(23,20,14,.17) 70%,
    rgba(23,20,14,.08) 82%,
    rgba(23,20,14,.03) 91%,
    rgba(23,20,14,0) 100%)}
/* and let the photo's base breathe into the black below it, so the fade band
   is feathered on both edges */
.pf-fade::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:120px;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,
    rgba(23,20,14,.85) 0%,
    rgba(23,20,14,.5) 35%,
    rgba(23,20,14,.2) 68%,
    rgba(23,20,14,0) 100%)}
/* tall photos elsewhere that just need taming: static wide crop */
.pf-crop{height:44vh;overflow:clip}
.pf-crop img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}

/* ============ 2026-09-04 plate system — drawing-sheet photo treatment, site-wide ============
   One vocabulary for every photo: a mat, a hairline, an offset gold outline on the
   right/bottom edges, and gold registration ticks at the corners. Mat, line and
   outline colors follow the band the plate sits on via the --plate-* tokens, so
   the same markup reads correctly on cream, paper and the two darks. */
:root,.band-dark,.hero,.quote{--plate-mat:#26221D;--plate-line:var(--line-dark);--plate-bg:var(--dark);--plate-shadow:0 22px 48px rgba(0,0,0,.38)}
.band-dark2{--plate-mat:#2C2720;--plate-line:var(--line-dark);--plate-bg:var(--dark-2);--plate-shadow:0 22px 48px rgba(0,0,0,.38)}
.band-cream,.cta-band{--plate-mat:#fff;--plate-line:var(--line-light);--plate-bg:var(--cream);--plate-shadow:0 22px 48px rgba(23,20,14,.16)}
.band-paper{--plate-mat:#fff;--plate-line:var(--line-light);--plate-bg:var(--paper);--plate-shadow:0 22px 48px rgba(23,20,14,.14)}
/* --- block plates: mat + hairline + shadow --- */
.figframe,.gal figure{position:relative;padding:12px;background:var(--plate-mat);border:1px solid var(--plate-line);box-shadow:var(--plate-shadow)}
.figframe img{display:block}
/* --- offset outline (right/bottom edges only, drawn outside the box) --- */
.figframe::before,.gal figure::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
/* --- corner registration ticks --- */
.figframe::after,.gal figure::after,.pcard .ph::after,.line::after,.chart-card::after,.tmedia::after{
  content:'';position:absolute;inset:5px;pointer-events:none;z-index:3;
  --t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/16px 2px no-repeat,var(--t) top left/2px 16px no-repeat,
             var(--t) top right/16px 2px no-repeat,var(--t) top right/2px 16px no-repeat,
             var(--t) bottom left/16px 2px no-repeat,var(--t) bottom left/2px 16px no-repeat,
             var(--t) bottom right/16px 2px no-repeat,var(--t) bottom right/2px 16px no-repeat}
.pcard .ph,.chart-card{position:relative}
.pcard .ph::after{inset:8px}
.line::after{inset:8px 8px 8px 12px}
/* the process rows already carry the plate; align their mat with the tokens */
.tmedia{background:var(--plate-mat);border-color:var(--plate-line);box-shadow:var(--plate-shadow)}
/* --- image-only plates (no pseudo-elements available): mat via padding, ticks via
   background layers, offset outline via two stacked hard shadows --- */
.plate-img,.pslide-track img{
  padding:10px;border:1px solid var(--plate-line);
  --t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/16px 2px no-repeat,var(--t) top left/2px 16px no-repeat,
             var(--t) top right/16px 2px no-repeat,var(--t) top right/2px 16px no-repeat,
             var(--t) bottom left/16px 2px no-repeat,var(--t) bottom left/2px 16px no-repeat,
             var(--t) bottom right/16px 2px no-repeat,var(--t) bottom right/2px 16px no-repeat,
             var(--plate-mat);
  background-origin:border-box;
  box-shadow:var(--plate-shadow),14px 14px 0 0 var(--plate-bg),15px 15px 0 0 rgba(166,145,106,.6)}
.pslide-track{padding:0 0 18px 0}
.pslide-track img{margin-right:4px}
/* gallery figures keep their 4:5 crop inside the mat */
.gal img{display:block}
@media (max-width:760px){
  .figframe,.gal figure{padding:8px}
  .figframe::before,.gal figure::before{top:10px;left:10px;right:-10px;bottom:-10px}
  .plate-img,.pslide-track img{padding:7px;box-shadow:var(--plate-shadow),10px 10px 0 0 var(--plate-bg),11px 11px 0 0 rgba(166,145,106,.6)}
}

/* ============ Test Lab data explorer (mirrors Liam's report: tabs, filters, FRP switch) ============ */
.tl-stamp{display:flex;flex-wrap:wrap;gap:0;margin-top:26px;border:1px solid var(--gold);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.tl-stamp span{padding:8px 14px;border-left:1px solid var(--gold)}
.tl-stamp span:first-child{border-left:0;background:var(--gold);color:var(--dark);font-weight:700}
.tl-tabs{display:flex;gap:0;margin-top:28px;border-bottom:1px solid var(--line-light)}
.tl-tab{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;padding:14px 22px;
  font-family:var(--label);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--charcoal);transition:color .2s,border-color .2s}
.tl-tab:hover{color:var(--ink)}
.tl-tab.on{color:var(--ink);border-bottom-color:var(--gold)}
.tl-panel{padding-top:8px}
.tl-controls{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:flex-end;margin-top:22px}
.tl-ctl{display:flex;flex-direction:column;gap:7px}
.tl-ctl-l{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text)}
.tl-seg{display:inline-flex;border:1px solid var(--gold)}
.tl-segb{background:none;border:0;border-left:1px solid var(--gold);cursor:pointer;color:var(--gold-text);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;transition:background .2s,color .2s}
.tl-segb:first-child{border-left:0}
.tl-segb:hover{background:rgba(166,145,106,.14)}
.tl-segb.on{background:var(--gold);color:var(--dark)}
.tl-select{font-family:var(--mono);font-size:12px;padding:8px 12px;border:1px solid var(--gold);background:#fff;color:var(--ink)}
.tl-chart{margin-top:24px}
.tl-table{margin-top:26px}
table.spec.tl-spec th{width:auto;white-space:normal;letter-spacing:.14em;font-size:10.5px;padding:10px 12px;vertical-align:bottom;line-height:1.35}
table.spec.tl-spec td{white-space:normal;padding:11px 12px;vertical-align:top;font-size:13.5px}
table.spec.tl-spec th small,table.spec.tl-spec td small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:400;color:var(--charcoal);margin-top:3px}
table.spec.tl-spec .tl-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.spec.tl-spec td.tl-host{max-width:22ch}
table.spec.tl-spec td.tl-hot small{color:var(--gold-text)}
@media (max-width:640px){table.spec.tl-spec th,table.spec.tl-spec td{padding:8px 6px;font-size:12px}}
.tl-spec .tl-cfg{font-family:var(--body);font-weight:700;font-size:15px;letter-spacing:0;color:var(--ink)}
.tl-spec td.tl-host{font-family:var(--body);font-size:13.5px}
.tl-spec td.tl-host small{font-family:var(--body)}
.tl-spec .tl-hot{color:var(--gold-text);font-weight:700}
.tl-lede{margin-top:18px}
/* spec sheets: one plate per configuration */
.tl-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:26px;margin-top:26px}
.tl-sheet{position:relative;background:var(--plate-mat);border:1px solid var(--plate-line);box-shadow:var(--plate-shadow);padding:26px 26px 22px}
.tl-sheet::after{content:'';position:absolute;inset:5px;pointer-events:none;z-index:3;--t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/16px 2px no-repeat,var(--t) top left/2px 16px no-repeat,var(--t) top right/16px 2px no-repeat,var(--t) top right/2px 16px no-repeat,
             var(--t) bottom left/16px 2px no-repeat,var(--t) bottom left/2px 16px no-repeat,var(--t) bottom right/16px 2px no-repeat,var(--t) bottom right/2px 16px no-repeat}
.tl-sh-series{display:block;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-text)}
.tl-sheet h3{font-size:24px;margin:8px 0 4px}
.tl-sh-meta{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--charcoal)}
.tl-sh-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px;padding:14px 0;border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}
.tl-sh-nums div{text-align:center}
.tl-sh-nums b{display:block;font-family:var(--display);font-size:24px;color:var(--ink);line-height:1}
.tl-sh-nums .hot b{color:var(--gold-text)}
.tl-sh-nums span{display:block;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal);margin-top:6px}
.tl-sh-spec{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:16px 0 0;font-family:var(--mono);font-size:12px}
.tl-sh-spec div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dotted var(--line-light);padding:4px 0}
.tl-sh-spec dt{color:var(--charcoal)}.tl-sh-spec dd{margin:0;color:var(--ink)}
.tl-shots{width:100%;border-collapse:collapse;margin-top:16px;font-family:var(--mono);font-size:12px}
.tl-shots th{font-family:var(--label);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal);text-align:right;padding:6px 8px;border-bottom:1px solid var(--line-light)}
.tl-shots th:first-child,.tl-shots td:first-child{text-align:left}
.tl-shots td{text-align:right;padding:5px 8px;border-bottom:1px solid var(--line-light);color:var(--ink)}
.tl-shots tfoot td{font-weight:700;color:var(--gold-text);border-bottom:0;border-top:2px solid var(--gold)}
.tl-shots tr.tl-frp-off td{color:#B9B1A0;text-decoration:line-through}
@media (max-width:760px){.tl-tab{padding:12px 14px;font-size:10px}.tl-sh-nums{grid-template-columns:1fr 1fr}.tl-sheets{grid-template-columns:1fr}}

/* How it's Made: shorter fade band under the hero (Dave 9/4: header too tall) */
.pf-fade img{height:42vh}
/* platform spread: show the whole photo at the band height, framed, instead of cover-cropping it */
.bleed-band.bleed-contain{background:var(--dark-2);padding:36px 0 !important}
.bleed-band.bleed-contain img{width:auto;max-width:min(94%,1500px);height:auto;max-height:56vh;margin:0 auto;object-fit:contain}
/* lineage tree: both branch cards stretch to the same height so the model boxes share one baseline */
.lin-card{flex:1 1 auto}
/* Test Lab chart: plate treatment + legend chips */
.chart-card.tl-chart{padding:30px 30px 24px}
.chart-card.tl-chart::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
.tl-chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 30px;margin-bottom:22px}
.tl-chart .chart-title{font-family:var(--display);font-size:22px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin-bottom:6px}
.tl-chart .chart-sub{margin-bottom:0;max-width:60ch}
.tl-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--charcoal)}
.tl-legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tl-legend i{display:inline-block;width:18px;height:10px}
.tl-legend .tl-lg-base{width:10px;height:10px;border-radius:50%;border:1.5px solid #8E8676;background:var(--paper)}
.tl-legend .tl-lg-thr{width:18px;height:0;border-top:1.5px dashed #A8431C}

/* Label face (Syncopate) rule of thumb: its lowercase glyphs are small caps, so every use is uppercase-transformed,
   and label sizes sit on a 3-step integer scale (10/11/12px) so Windows hinting renders caps at one height. */

/* ---------- plates draw on: ticks sweep in and the outline unfolds as each plate reveals;
   ticks extend when the plate is hovered. Removed under reduced motion (draw-on = spatial). ---------- */
.figframe,.gal figure,.tmedia,.line,.tl-sheet,.pcard .ph,.chart-card,.gauge-card{--tk:16px}
.figframe::after,.gal figure::after,.pcard .ph::after,.line::after,.chart-card::after,.tmedia::after,.tl-sheet::after{
  background-size:var(--tk) 2px,2px var(--tk),var(--tk) 2px,2px var(--tk),var(--tk) 2px,2px var(--tk),var(--tk) 2px,2px var(--tk);
  transition:background-size .55s cubic-bezier(.16,.84,.34,1)}
.rv .figframe,.figframe.rv,.rv .gal figure,.gal figure.rv,.trow.rv .tmedia,.line.rv,.rv .line{--tk:0px}
.rv.in .figframe,.figframe.rv.in,.rv.in .gal figure,.gal figure.rv.in,.trow.rv.in .tmedia,.line.rv.in,.rv.in .line{--tk:16px}
.figframe:hover,.gal figure:hover,.tmedia:hover,.line:hover,.tl-sheet:hover{--tk:26px !important}
.rv .figframe::before,.figframe.rv::before,.rv .gal figure::before,.gal figure.rv::before,.trow.rv .tmedia::before{transform:scale(0);transform-origin:top left}
.rv.in .figframe::before,.figframe.rv.in::before,.rv.in .gal figure::before,.gal figure.rv.in::before,.trow.rv.in .tmedia::before{transform:scale(1);transition:transform .8s cubic-bezier(.16,.84,.34,1) .3s}
@media (prefers-reduced-motion:reduce){
  .rv .figframe,.figframe.rv,.rv .gal figure,.gal figure.rv,.trow.rv .tmedia,.line.rv,.rv .line{--tk:16px}
  .rv .figframe::before,.figframe.rv::before,.rv .gal figure::before,.gal figure.rv::before,.trow.rv .tmedia::before{transform:none;transition:none}
  .figframe::after,.gal figure::after,.pcard .ph::after,.line::after,.chart-card::after,.tmedia::after,.tl-sheet::after{transition:none}
}

/* home product panels: live measured line from the Test Lab export */
.line-stat{display:block;margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sand)}
.line.line-ti .line-stat{color:#C9CFD6}
.line-stat[hidden]{display:none}

/* footer REV stamp */
.foot-rev{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#6F675A;margin-left:16px;white-space:nowrap}

/* print: clean sheets, no chrome */
@media print{
  header.nav,footer,.herovid,.pf-kilroy,.tl-tabs,.tl-controls,.g-retest,.g-toggle,.ps-prev,.ps-next,.btn-row{display:none !important}
  body,.band,.band-dark,.band-dark2,.band-cream,.band-paper,.hero,.quote{background:#fff !important;color:#000 !important}
  .hero{min-height:auto !important}.hero .bg,.hero .shade,.quote .bg{display:none !important}
  .tl-sheet,.chart-card,.figframe,.tmedia,.trow{box-shadow:none !important;break-inside:avoid}
  .tl-stamp{border-color:#000;color:#000}.tl-stamp span:first-child{background:#000;color:#fff}
  a[href]::after{content:''}
}
/* Peregrine panel: the can sits left-of-centre in the photo, so the copy moves to the right half (Dave 9/4) */
.line.line-ti .line-body{left:auto;right:0;width:60%;text-align:right;padding-right:28px;
  background:linear-gradient(90deg,rgba(23,20,14,0) 0%,rgba(23,20,14,.55) 18%,rgba(23,20,14,.86) 60%,rgba(23,20,14,.92) 100%);top:0;display:flex;flex-direction:column;justify-content:flex-end}
.line.line-ti .line-body p{margin-left:auto}
.line.line-ti .line-mono{right:auto;left:20px}
.line.line-ti img{object-position:18% center}
@media (max-width:760px){.line.line-ti .line-body{width:100%;text-align:left;padding-right:28px;left:0;top:auto;
  background:linear-gradient(180deg,rgba(23,20,14,0) 0%,rgba(23,20,14,.72) 45%,rgba(23,20,14,.94) 100%)}.line.line-ti .line-mono{left:auto;right:18px}.line.line-ti .line-body p{margin-left:0}}

/* ============ 9/4 mobile polish ============ */
html,body{overflow-x:clip} /* offset plate outlines and shadows must never widen the page */
@media (max-width:760px){
  /* Blair sits between the logo and the Menu button, a size down */
  .pf-kilroy{width:78px;right:96px}
  /* gauge: RE-TEST moves under the head, toggle spans the card, tighter title */
  .gauge-head{padding-right:0}
  .g-retest{position:static;display:inline-block;margin-top:12px}
  .gauge-title{font-size:19px}
  .g-toggle{display:flex;width:100%}.g-tog{flex:1;text-align:center;padding:9px 6px}
  .gauge-card{padding:20px 16px 18px}
  .gauge-note{font-size:12px}
  /* Test Lab explorer */
  .tl-tabs{overflow-x:auto;scrollbar-width:none}.tl-tabs::-webkit-scrollbar{display:none}
  .tl-tab{white-space:nowrap;flex:none}
  .tl-controls{gap:14px 18px}
  .tl-seg{flex-wrap:wrap}.tl-segb{padding:9px 12px}
  .tl-stamp span{padding:6px 10px;font-size:9.5px}
  .chart-card.tl-chart{padding:20px 14px 18px}
  .chart-card.tl-chart::before{display:none}
  .tl-chart .chart-title{font-size:19px}
  .tl-legend{font-size:9.5px;gap:6px 12px}
  .tl-sheet{padding:20px 16px 18px}
  /* plates: keep the offset outline well inside the viewport */
  .tmedia::before{top:10px;left:10px;right:-8px;bottom:-8px}
  /* dealer finder: the rifle photo is already the hero background on a phone */
  .hero .plate-img{display:none}
  /* home product panels: a touch more room for the copy */
  .line{aspect-ratio:4/3}
  .line-body{padding:18px 18px 18px 22px}
  .line p{font-size:14px}
  /* stats strip */
  .stat{padding:26px 16px}.stat .num{font-size:38px}
  /* footer legal bar: centred, REV on its own line */
  .foot-legal .wrap{justify-content:center;text-align:center}
  .foot-rev{display:block;margin:6px 0 0}
  /* closing dealer band: buttons stack full width */
  .cta-band .btn{width:100%;text-align:center}
}
@media (max-width:420px){
  h1{font-size:44px}
  .hero-mini h1{font-size:40px !important}
  .tl-sh-nums b{font-size:20px}
  .line h3{font-size:26px}
}
/* Peregrine panel on phones: keep the copy in the right column and drop the paragraph so the can stays clear (Dave 9/4) */
@media (max-width:760px){
  .line.line-ti .line-body{left:auto;right:0;top:0;width:62%;text-align:right;padding:16px 14px 16px 10px;display:flex;flex-direction:column;justify-content:flex-end;
    background:linear-gradient(90deg,rgba(23,20,14,0) 0%,rgba(23,20,14,.6) 22%,rgba(23,20,14,.9) 70%,rgba(23,20,14,.94) 100%)}
  .line.line-ti .line-body p{display:none}
  .line.line-ti .line-mono{left:18px;right:auto}
  .line.line-ti h3{font-size:24px}
  .line.line-ti img{object-position:12% center}
}
/* How it's Made on phones: the step index goes on its own line above the heading (Qaranta digits are too wide for a side column) */
@media (max-width:900px){
  .trow,.trow:nth-child(even){grid-template-columns:1fr;gap:10px 0}
  .trow .tn,.trow:nth-child(even) .tn{grid-column:1;grid-row:1;font-size:40px;line-height:1;margin:0 0 -2px;opacity:.5}
  .trow>div:nth-child(2),.trow:nth-child(even)>div:nth-child(2){grid-column:1;grid-row:2}
  .trow .tmedia,.trow:nth-child(even) .tmedia{grid-column:1;grid-row:3;margin-top:14px}
  .trow h3{font-size:22px}
}
/* Suppressors hero on phones: the two-photo split doesn't survive a narrow screen; run the cores photo full-width, no mask, smoke layer off */
@media (max-width:760px){
  .hero > .bg + .bg{width:100% !important;-webkit-mask-image:none !important;mask-image:none !important;background-position:30% center !important;filter:brightness(.95) contrast(1.05) !important}
  .hero > .bg:has(+ .bg){display:none !important}
  .hero > .bg + .bg ~ .shade{background:linear-gradient(180deg,rgba(23,20,14,.35) 0%,rgba(23,20,14,.25) 40%,rgba(23,20,14,.85) 100%) !important}
}

/* ---------- Peregrine: "Tell us about your setup" plate + pre-hunt FAQ ---------- */
.setup-plate{position:relative;display:block;background:var(--plate-mat);border:1px solid var(--plate-line);box-shadow:var(--plate-shadow);padding:30px 30px 26px}
.setup-plate::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
.setup-plate::after{content:'';position:absolute;inset:5px;pointer-events:none;z-index:3;--t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/16px 2px no-repeat,var(--t) top left/2px 16px no-repeat,var(--t) top right/16px 2px no-repeat,var(--t) top right/2px 16px no-repeat,
             var(--t) bottom left/16px 2px no-repeat,var(--t) bottom left/2px 16px no-repeat,var(--t) bottom right/16px 2px no-repeat,var(--t) bottom right/2px 16px no-repeat}
.setup-plate .eyebrow{margin-bottom:10px}
.setup-plate h3{font-size:24px;margin:0 0 4px}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.setup-grid .full{grid-column:1/-1}
.setup-grid select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-text) 50%),linear-gradient(135deg,var(--gold-text) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px}
.setup-grid textarea{resize:vertical;min-height:72px}
.setup-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.setup-foot .form-note{margin-top:0}
@media (max-width:760px){.setup-plate{padding:22px 18px 20px}.setup-grid{grid-template-columns:1fr}.setup-plate::before{right:-8px;bottom:-8px}}
/* product hero buy strip: price · bores · what's in the box · how it ships, in one mono line */
.buy-strip{display:inline-flex;flex-wrap:wrap;margin-top:22px;border:1px solid rgba(166,145,106,.7);font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--sand)}
.buy-strip span{padding:9px 16px;border-left:1px solid rgba(166,145,106,.7)}
.buy-strip span:first-child{border-left:0;background:var(--gold);color:var(--dark);font-weight:700}
@media (max-width:760px){.buy-strip{font-size:10px}.buy-strip span{padding:7px 10px}}

/* ===================== Shop page (/shop/) — sh-* namespace, added 2026-09-05 ===================== */
.sh-flow{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line-light);margin-top:26px;background:#fff}
.sh-flow>div{padding:18px 16px;border-left:1px solid var(--line-light);position:relative}
.sh-flow>div:first-child{border-left:0}
.sh-flow .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal)}
.sh-flow b{display:block;font-family:var(--label);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;margin:6px 0}
.sh-flow p{font-size:13.5px;color:var(--charcoal);margin:0}
.sh-flow>div.here{background:#F1EDE4}
.sh-flow>div.here::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gold)}
.sh-cats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-light);margin-top:28px;background:#fff}
.sh-cat{padding:22px 24px 20px;border-left:1px solid var(--line-light);text-decoration:none;color:inherit;display:grid;gap:8px;align-content:start}
.sh-cat:first-child{border-left:0}
.sh-cat .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal)}
.sh-cat h3{font-family:var(--display);font-size:26px;margin:0;line-height:1}
.sh-cat p{font-size:13.5px;color:var(--charcoal);margin:0}
.sh-cat .ship{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border:1px solid var(--line-light);justify-self:start;margin-top:4px}
.sh-cat .ship.dealer{border-color:var(--gold);color:var(--gold-text)}
.sh-cat:hover h3{color:var(--gold-text)}
.sh-cathead{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;border-top:2px solid var(--ink);padding-top:14px}
.sh-cathead .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.sh-cathead .ship{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--charcoal)}
.sh-cathead.dark{border-top-color:var(--sand)}
.sh-cathead.dark .n{color:var(--sand)}.sh-cathead.dark .ship{color:var(--sand)}
.sh-plates{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:18px}
.sh-plate{border:1px solid var(--line-light);background:#fff;display:grid;grid-template-rows:auto 1fr}
.sh-plate .img{aspect-ratio:16/10;background:var(--dark) center/cover no-repeat;position:relative}
.sh-plate .img .cap,.sh-drop .art .cap,.sh-gear .img .cap{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--sand);text-transform:uppercase}
.sh-plate .body{padding:22px 24px 24px;display:grid;gap:14px;align-content:start}
.sh-plate .price{font-family:var(--display);font-size:34px;line-height:1;margin-top:6px}
.sh-plate .price small{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--charcoal);margin-left:8px}
.sh-spec{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-family:var(--mono);font-size:12px;margin:0}
.sh-spec dt{color:var(--charcoal);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px}.sh-spec dd{margin:0}
.sh-line{font-family:var(--mono);font-size:11.5px;color:var(--charcoal);margin-bottom:8px}
.sh-opts{display:flex;gap:8px;flex-wrap:wrap}
.sh-opt{font-family:var(--mono);font-size:11.5px;padding:7px 12px;border:1px solid var(--line-light);cursor:pointer;background:var(--cream);color:var(--ink)}
.sh-opt.on{border-color:var(--gold);background:var(--gold);color:var(--dark);font-weight:600}
.sh-dealer{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;margin-top:32px;align-items:start}
.sh-map.tilemap{grid-template-columns:repeat(12,minmax(0,44px));gap:4px}
.sh-legend.map-legend{color:var(--sand)}
.sh-finder.finder-controls{margin-bottom:12px}
.sh-results.ffl-results{grid-template-columns:1fr;gap:8px;margin-top:0}
.sh-results .dcard{cursor:pointer}
.sh-results .dcard.sel{outline:2px solid var(--gold);outline-offset:1px}
.sh-results .dcard.sel::after{content:"Selected for your order";display:block;margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}
.sh-why{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px;border-top:1px solid var(--line-dark);padding-top:28px}
.sh-why h3{color:var(--sand);font-size:18px;margin:0 0 8px}
.sh-why p{color:var(--sand);font-size:14px;margin:0;opacity:.9}
.sh-co{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;margin-top:8px}
.sh-form{display:grid;gap:14px}
.sh-form .f{display:grid;gap:6px}
.sh-form .f label{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal)}
.sh-form .f input,.sh-form .f select{border:1px solid var(--line-light);background:#fff;color:var(--ink);padding:11px 12px;font-family:var(--body);font-size:15px}
.sh-form .f input:disabled,.sh-form .f select:disabled{opacity:.7}
.sh-form .f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sh-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--charcoal)}
.sh-check input{margin-top:4px}
.sh-gate{border:1px solid var(--line-light);background:#F1EDE4;padding:14px 16px;font-size:13.5px;display:grid;gap:6px}
.sh-gate b{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#4C6B3A}
.sh-sum{border:1px solid var(--line-light);background:#fff;padding:22px 24px;display:grid;gap:10px;align-self:start}
.sh-sum .row{display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.sh-sum .row.total{border-top:1px solid var(--line-light);padding-top:12px;font-size:16px;font-weight:600}
.sh-sum .note{font-size:13px;color:var(--charcoal);margin:0}
.sh-tl{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-top:28px}
.sh-tl::before{content:"";position:absolute;left:0;right:0;top:9px;border-top:1px dashed var(--line-light)}
.sh-tl>div{padding-right:14px;position:relative}
.sh-tl .dot{width:19px;height:19px;border-radius:50%;border:2px solid var(--gold);background:var(--cream);position:relative;z-index:1;margin-bottom:12px}
.sh-tl .dot.done{background:var(--gold)}
.sh-tl b{display:block;font-family:var(--label);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.sh-tl p{font-size:13.5px;color:var(--charcoal);margin:0}
.sh-tl .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--gold-text);display:block;margin-bottom:4px}
.sh-track{margin-top:28px;border:1px solid var(--line-light);padding:18px 22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff}
.sh-track input{border:1px solid var(--line-light);background:var(--cream);color:var(--ink);padding:10px 12px;font-family:var(--mono);font-size:14px;letter-spacing:.06em;min-width:220px}
.sh-acc{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-top:22px}
.sh-acc>div{border:1px solid var(--line-light);padding:16px;background:#fff;display:grid;gap:6px;align-content:start}
.sh-acc b{font-family:var(--label);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.sh-acc .p{font-family:var(--mono);font-size:12px;color:var(--charcoal)}
.sh-acc p{font-size:13.5px;color:var(--charcoal);margin:0 0 6px}
.sh-acc .btn{justify-self:center;align-self:end;margin-top:auto;padding:10px 18px;font-size:10px;min-width:60%;text-align:center}
.sh-acc>div{min-width:0}
.sh-acc>div{grid-template-rows:auto auto auto 1fr auto}
.sh-acc>div p{align-self:start}
.sh-drop{display:grid;grid-template-columns:1.1fr 1fr;border:1px solid var(--line-light);background:var(--dark);color:var(--cream);margin:18px 0 34px}
.sh-drop .art{background:#2A2A2A center/cover no-repeat;min-height:360px;position:relative}
.sh-drop .art .alt{position:absolute;right:12px;top:12px;width:34%;aspect-ratio:16/9;background:#2A2A2A center/cover no-repeat;border:1px solid var(--line-dark)}
.sh-drop .txt{padding:28px 30px;display:grid;gap:14px;align-content:start}
.sh-drop .eyebrow{color:var(--sand)}
.sh-drop h3{font-family:var(--display);font-size:30px;color:var(--cream);margin:0;line-height:1}
.sh-drop p{color:var(--sand);font-size:14.5px;max-width:48ch;margin:0}
.sh-drop .items{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-family:var(--mono);font-size:12px}
.sh-drop .items span{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line-dark);padding:5px 0}
.sh-drop .items i{font-style:normal;color:var(--sand)}
.sh-drop .sw,.sh-gear .sw{display:flex;gap:6px}
.sh-drop .sw i,.sh-gear .sw i{width:16px;height:16px;border:1px solid var(--line-light);display:inline-block}
.sh-gear{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sh-gear article{border:1px solid var(--line-light);background:#fff;display:grid;grid-template-rows:auto 1fr}
.sh-gear .img{aspect-ratio:1;background:#C4C4C4 center/cover no-repeat;position:relative}
.sh-gear .img.dk{background-color:#3A3A3A}
.sh-gear .img .tag{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:3px 7px;background:var(--ink);color:var(--cream)}
.sh-gear .b{padding:14px 16px 16px;display:grid;gap:8px;align-content:start}
.sh-gear b{font-family:var(--label);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.sh-gear .p{font-family:var(--mono);font-size:12px;color:var(--charcoal)}
.sh-gear .sz{display:flex;gap:4px;flex-wrap:wrap}
.sh-gear .sz span{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line-light);padding:2px 7px}
.sh-gear .btn{justify-self:center;align-self:end;margin-top:auto;padding:10px 18px;font-size:10px;min-width:60%;text-align:center}
.sh-gear .b{grid-template-rows:auto auto auto auto 1fr}
@media (max-width:900px){
  .sh-flow,.sh-tl{grid-template-columns:1fr 1fr}
  .sh-cats,.sh-plates,.sh-dealer,.sh-co,.sh-drop{grid-template-columns:1fr}
  .sh-why,.sh-acc,.sh-gear{grid-template-columns:1fr 1fr}
  .sh-map.tilemap{grid-template-columns:repeat(12,minmax(0,1fr))}
  .sh-cat{border-left:0;border-top:1px solid var(--line-light)}.sh-cat:first-child{border-top:0}
}
@media (max-width:560px){.sh-flow,.sh-tl,.sh-why,.sh-acc,.sh-gear,.sh-form .f2{grid-template-columns:1fr}}
/* shop teasers (landing + cross-links between shop sub-pages), 2026-09-05 */
.sh-teasers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:22px}
.sh-teaser{border:1px solid var(--line-light);background:#fff;text-decoration:none;color:inherit;display:grid;grid-template-rows:auto 1fr}
.sh-teaser .img{aspect-ratio:16/9;background:var(--dark) center/cover no-repeat;position:relative}
.sh-teaser .img.acc{background:var(--dark-2);display:flex;align-items:center;justify-content:center}
.sh-teaser .img .big{font-family:var(--mono);font-size:26px;letter-spacing:.06em;color:var(--sand);text-align:center;line-height:1.2}
.sh-teaser .img .cap{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--sand);text-transform:uppercase}
.sh-teaser .b{padding:18px 20px 20px;display:grid;gap:8px;align-content:start}
.sh-teaser .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text)}
.sh-teaser h3{font-family:var(--display);font-size:22px;margin:0;line-height:1.05}
.sh-teaser p{font-size:13.5px;color:var(--charcoal);margin:0}
.sh-teaser .btn{justify-self:start;padding:10px 14px;font-size:10px;margin-top:6px}
.sh-teaser:hover h3{color:var(--gold-text)}
/* Diode panel: the can sits centre-frame with empty bokeh on the left, so the copy takes a left column and the photo nudges right (Dave 9/5) */
.line.line-ss .line-body{left:0;right:auto;width:44%;top:0;display:flex;flex-direction:column;justify-content:flex-end;padding-right:20px;
  background:linear-gradient(90deg,rgba(23,20,14,.93) 0%,rgba(23,20,14,.86) 52%,rgba(23,20,14,.55) 80%,rgba(23,20,14,0) 100%)}
.line.line-ss img{object-position:left center;transform:scale(1.16);transform-origin:left center}
.line.line-ss:hover img{transform:scale(1.19)}
@media (max-width:760px){.line.line-ss .line-body{width:100%;top:auto;padding-right:28px;display:block;
  background:linear-gradient(180deg,rgba(23,20,14,0) 0%,rgba(23,20,14,.72) 45%,rgba(23,20,14,.94) 100%)}.line.line-ss img{transform:none;object-position:center}}
/* Suppressors hero: tactical | hunting split (Dave 9/5). Two photo panels with a slanted seam; headline rides over both. */
.hero-split{position:relative;min-height:60vh;overflow:hidden;background:var(--dark);color:#F0EBDF;display:grid;grid-template-columns:1fr 1fr}
.hero-split .half{position:relative;display:block;text-decoration:none;color:inherit;overflow:hidden;min-height:60vh}
.hero-split .half img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.98);transition:transform 1.1s cubic-bezier(.16,.84,.34,1),filter .6s ease}
.hero-split .half:hover img{transform:scale(1.03);filter:saturate(1) brightness(1.04)}
.hero-split .half.tac{--rule:var(--gold)}
.hero-split .half.hunt{--rule:#9FA6AD;clip-path:polygon(7% 0,100% 0,100% 100%,0 100%);margin-left:-7%;width:107%}
.hero-split .half::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,20,14,.5) 0%,rgba(23,20,14,.06) 36%,rgba(23,20,14,.1) 60%,rgba(23,20,14,.8) 100%);pointer-events:none}
.hero-split .cap{position:absolute;left:0;right:0;bottom:0;padding:0 34px 30px;z-index:2}
.hero-split .half.hunt .cap{padding-left:calc(7% + 34px);text-align:right}
.hero-split .cap .k{display:inline-block;font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--rule);border-bottom:2px solid var(--rule);padding-bottom:6px}
.hero-split .cap h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(30px,3.6vw,46px);letter-spacing:.02em;line-height:1;margin:12px 0 6px;color:#F5F1E8}
.hero-split .cap p{font-size:15px;color:#D6CEBD;margin:0;max-width:40ch}
.hero-split .half.hunt .cap p{margin-left:auto}
.hero-split .cap .go{display:inline-block;margin-top:12px;font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sand);border-bottom:1px solid var(--rule);padding-bottom:3px}
.hero-split .half:hover .cap .go{color:#F5F1E8;border-color:#F5F1E8}
.hero-split .head{position:absolute;left:0;right:0;top:0;z-index:3;text-align:center;padding:56px 24px 0;pointer-events:none}
.hero-split .head .eyebrow{color:var(--sand)}
.hero-split .head h1{font-size:clamp(38px,5.6vw,68px);margin-top:8px;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.hero-split .head .sub{margin:12px auto 0;max-width:52ch;color:#F6F1E6;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 16px rgba(0,0,0,.6)}
.hero-split .seam{position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--sand);opacity:.55;transform:skewX(-7deg);z-index:2;pointer-events:none}
@media (max-width:760px){.hero-split{grid-template-columns:1fr;min-height:0}.hero-split .half{min-height:46vh}.hero-split .half.hunt{clip-path:none;margin-left:0;width:100%}
  .hero-split .half.hunt .cap{padding-left:34px;text-align:left}.hero-split .half.hunt .cap p{margin-left:0}.hero-split .seam{display:none}
  .hero-split .head{position:static;padding:40px 24px 8px;background:var(--dark)}}
/* shorter split hero for secondary pages (How it's Made, Dave 9/5) */
.hero-split.short,.hero-split.short .half{min-height:52vh}
.hero-split.short .head{padding-top:34px}
.hero-split.short .head .sub{margin-top:8px;font-size:15.5px}
.hero-split.short .cap{padding-bottom:24px}
.hero-split.short .cap .k{font-size:10px}
.hero-split.short .cap h3{font-size:clamp(22px,2.2vw,32px);margin:10px 0 4px}
.hero-split.short .cap p{font-size:13.5px;max-width:30ch;line-height:1.45}
@media (max-width:760px){.hero-split.short .half{min-height:36vh}}
/* front/back view toggle on shop merch photos (2026-09-05) */
.sh-fb{position:absolute;right:10px;bottom:10px;display:flex;border:1px solid rgba(217,193,150,.6);background:rgba(23,20,14,.72);z-index:2}
.sh-fb button{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border:0;background:transparent;color:var(--sand);cursor:pointer}
.sh-fb button.on{background:var(--gold);color:var(--dark);font-weight:600}
.sh-drop .art .sh-fb{right:14px;bottom:14px}
.sh-acc .img{aspect-ratio:4/3;background:var(--dark) center/cover no-repeat;margin:-16px -16px 8px;border-bottom:1px solid var(--line-light)}
.sh-acc .img.contain{background-size:contain;background-color:#111}
/* Test Lab chart as a drawing sheet: FIG eyebrow + title block (2026-09-05) */
.tl-fig{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line-light)}
.tl-titleblock{display:grid;grid-template-columns:repeat(6,auto);border:1px solid var(--ink);margin-top:22px;font-family:var(--mono)}
.tl-titleblock>div{padding:8px 12px;border-left:1px solid var(--ink);display:grid;gap:3px;min-width:0}
.tl-titleblock>div:first-child{border-left:0}
.tl-titleblock span{font-family:var(--label);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal)}
.tl-titleblock b{font-size:11.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){.tl-titleblock{grid-template-columns:repeat(3,1fr)}.tl-titleblock>div:nth-child(4){border-left:0}.tl-titleblock>div:nth-child(n+4){border-top:1px solid var(--ink)}}
@media (max-width:560px){.tl-titleblock{grid-template-columns:1fr 1fr}.tl-titleblock>div:nth-child(odd){border-left:0}.tl-titleblock>div:nth-child(n+3){border-top:1px solid var(--ink)}.tl-titleblock>div:nth-child(4){border-left:1px solid var(--ink)}}

/* ===== Dealer page (2026-09-05): map as the hero, plate cards, transfer steps ===== */
.dl-hero{padding:64px 0 56px}
.dl-hero-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.dl-finder.finder-controls{margin-top:26px;margin-bottom:0}
.dl-finder input,.dl-finder select{background:var(--dark-2);color:var(--cream);border:1px solid var(--line-dark)}
.dl-finder input::placeholder{color:#8E8676}
.dl-map.tilemap{grid-template-columns:repeat(12,minmax(0,46px));gap:4px}
.ffl-results .dcard{position:relative;padding:24px 22px 22px}
.ffl-results .dcard::after{content:'';position:absolute;inset:6px;pointer-events:none;--t:linear-gradient(var(--gold),var(--gold));
  background:var(--t) top left/14px 2px no-repeat,var(--t) top left/2px 14px no-repeat,var(--t) top right/14px 2px no-repeat,var(--t) top right/2px 14px no-repeat,
             var(--t) bottom left/14px 2px no-repeat,var(--t) bottom left/2px 14px no-repeat,var(--t) bottom right/14px 2px no-repeat,var(--t) bottom right/2px 14px no-repeat;opacity:.7}
.dcard .meta a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--tan)}
.dcard .dlinks{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-light);display:flex;gap:16px;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.dcard .dlinks a{color:var(--gold-text);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px}
.dl-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
.dl-steps>div{border:1px solid var(--line-light);background:#fff;padding:22px 22px 20px;display:grid;gap:8px;align-content:start}
.dl-steps .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold-text)}
.dl-steps b{font-family:var(--label);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.dl-steps p{font-size:14.5px;color:var(--charcoal);margin:0}
.dl-plates{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.dl-plate{position:relative;background:#fff;border:1px solid var(--line-light);padding:28px 28px 26px}
.dl-plate::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
.dl-plate h3{font-size:22px;margin:8px 0 10px}
.dl-plate p{color:var(--charcoal);font-size:15px}
.dl-tiers{display:grid;gap:10px;margin:14px 0 0}
.dl-tiers>div{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;border-bottom:1px dotted var(--line-light);padding:8px 0}
.dl-tiers dt{margin:0}.dl-tiers dd{margin:0;font-size:14px;color:var(--charcoal)}
@media (max-width:900px){.dl-hero-grid,.dl-plates{grid-template-columns:1fr}.dl-steps{grid-template-columns:1fr}.dl-map.tilemap{grid-template-columns:repeat(12,minmax(0,1fr))}}
/* ===== Legal pages (2026-09-05): numbered sections, sticky contents, document block ===== */
.lg-hero{padding:56px 0 44px}
.lg-grid{display:grid;grid-template-columns:220px 1fr;gap:48px;align-items:start;margin-top:8px}
.lg-toc{position:sticky;top:96px;display:grid;gap:6px;border-left:2px solid var(--gold);padding-left:16px}
.lg-toc .eyebrow{margin-bottom:6px}
.lg-toc a{font-family:var(--mono);font-size:12.5px;color:var(--charcoal);text-decoration:none;padding:3px 0}
.lg-toc a:hover{color:var(--gold-text)}
.lg-body{max-width:72ch}
.lg-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:36px}
.lg-card{display:grid;gap:6px;background:#fff;border:1px solid var(--line-light);padding:20px 22px;text-decoration:none;color:inherit;position:relative}
.lg-card::before{content:'';position:absolute;top:10px;left:10px;right:-10px;bottom:-10px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.5;pointer-events:none}
.lg-card .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.lg-card b{font-family:var(--display);font-size:20px;line-height:1.05}
.lg-card p{font-size:13.5px;color:var(--charcoal);margin:0}
.lg-card .go{font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);margin-top:6px}
.lg-sec{padding:26px 0 8px;border-top:1px solid var(--line-light)}
.lg-sec:first-of-type{border-top:0;padding-top:0}
.lg-sec h2{font-size:24px;display:flex;align-items:baseline;gap:14px;margin:0 0 12px}
.lg-sec h2 .n{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--gold-text);font-weight:400}
.lg-sec p{font-size:16px;line-height:1.65;color:var(--ink);margin:0 0 12px}
.lg-sec p b{font-weight:600}
.lg-sec ul{margin:0 0 12px;padding-left:20px}
.lg-sec li{font-size:15.5px;line-height:1.6;color:var(--ink);margin:4px 0}
.lg-block{display:grid;grid-template-columns:repeat(4,auto);border:1px solid var(--ink);margin-top:36px;font-family:var(--mono)}
.lg-block>div{padding:8px 12px;border-left:1px solid var(--ink);display:grid;gap:3px;min-width:0}
.lg-block>div:first-child{border-left:0}
.lg-block span{font-family:var(--label);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal)}
.lg-block b{font-size:11.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-block a{color:inherit;text-decoration:none}
@media (max-width:900px){.lg-grid{grid-template-columns:1fr}.lg-toc{position:static;border-left:0;padding-left:0;display:flex;flex-wrap:wrap;gap:8px 16px}.lg-toc .eyebrow{width:100%}.lg-cards{grid-template-columns:1fr}.lg-block{grid-template-columns:1fr 1fr}.lg-block>div:nth-child(3){border-left:0}.lg-block>div:nth-child(n+3){border-top:1px solid var(--ink)}}
/* phone pass 2026-09-05 */
@media (max-width:560px){
  .hero-mini h1,.lg-hero h1,.hero-split .head h1{font-size:clamp(28px,8vw,36px)!important;overflow-wrap:anywhere}
  .hero-split .half{min-height:34vh}.hero-split.short .half{min-height:30vh}
  .hero-split .head .eyebrow,.hero-mini .eyebrow,.lg-hero .eyebrow{letter-spacing:.14em;font-size:10px}
  .lg-sec h2{font-size:20px;display:block}.lg-sec h2 .n{display:block;margin-bottom:4px}
  .sh-cathead h2{font-size:22px}
  .buy-strip span{padding:6px 9px;font-size:9.5px}
}
/* ===== WooCommerce inside the theme (2026-09-05) ===== */
.nav-cart{font-family:var(--label);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sand);text-decoration:none;margin-left:18px;white-space:nowrap}
.nav-cart-n{display:inline-block;min-width:18px;padding:1px 5px;margin-left:4px;border:1px solid var(--gold);color:var(--dark);background:var(--gold);font-family:var(--mono);font-size:10px;text-align:center}
.tdw-wc{padding-top:44px}
.tdw-wc .woocommerce-breadcrumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);margin-bottom:18px}
.tdw-wc .woocommerce-breadcrumb a{color:var(--gold-text);text-decoration:none}
.tdw-wc h1.product_title,.tdw-wc .entry-title{font-family:var(--display);font-size:clamp(30px,4vw,46px);line-height:1;margin:0 0 10px}
.tdw-wc .price,.tdw-wc .woocommerce-Price-amount{font-family:var(--display);font-size:26px;color:var(--gold-text)}
.tdw-wc .woocommerce-product-details__short-description{font-size:16px;color:var(--charcoal);margin:12px 0 18px}
.tdw-wc table.variations th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal)}
.tdw-wc .button,.tdw-wc button.button,.tdw-wc .single_add_to_cart_button,.tdw-wc .checkout-button,.tdw-wc #place_order,.tdw-wc .woocommerce-button{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;padding:14px 22px;border:1px solid var(--gold);background:var(--gold);color:var(--dark);border-radius:0;cursor:pointer}
.tdw-wc .button:hover,.tdw-wc #place_order:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--cream)}
.tdw-wc .quantity .qty{border:1px solid var(--line-light);padding:11px 8px;font-family:var(--mono)}
.tdw-wc .product_meta{font-family:var(--mono);font-size:12px;color:var(--charcoal);margin-top:16px}
.tdw-wc .woocommerce-tabs ul.tabs li a,.tdw-wc .woocommerce-tabs h2{font-family:var(--label);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.tdw-wc table.shop_table{border:1px solid var(--line-light);border-radius:0;font-family:var(--mono);font-size:13.5px}
.tdw-wc table.shop_table th{font-family:var(--label);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal)}
.tdw-wc .woocommerce-info,.tdw-wc .woocommerce-message,.tdw-wc .woocommerce-error{border-top-color:var(--gold);background:#fff;font-size:14px}
.tdw-wc form .form-row input.input-text,.tdw-wc form .form-row textarea,.tdw-wc form .form-row select{border:1px solid var(--line-light);padding:11px 12px;font-family:var(--body)}
.tdw-wc .woocommerce-checkout #payment{background:#fff;border:1px solid var(--line-light);border-radius:0}
.tdw-wc .woocommerce-checkout #payment div.payment_box{background:#F1EDE4;font-size:14px}
.tdw-wc ul.products li.product .woocommerce-loop-product__title{font-family:var(--display);font-size:20px}
.tdw-wc .onsale{display:none}
.tdw-wc .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;font-family:var(--label);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.tdw-wc .woocommerce-MyAccount-navigation li{padding:8px 0;border-bottom:1px solid var(--line-light)}
.tdw-wc .woocommerce-MyAccount-navigation a{color:var(--gold-text);text-decoration:none}
/* WC polish 2026-09-05 */
.tdw-wc{padding:44px 0 72px}
.tdw-wc .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.tdw-wc input[type=text],.tdw-wc input[type=email],.tdw-wc input[type=tel],.tdw-wc input[type=password],.tdw-wc input[type=number],.tdw-wc input[type=search],.tdw-wc select,.tdw-wc textarea{background:#fff;color:var(--ink);border:1px solid var(--line-light);padding:11px 12px;font-family:var(--body);font-size:15px;width:100%;box-sizing:border-box;border-radius:0}
.tdw-wc select{width:auto;min-width:160px;padding-right:32px}
.tdw-wc label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--charcoal)}
.tdw-wc h2,.tdw-wc h3{font-family:var(--display);line-height:1.05}
.tdw-wc h2{font-size:24px;margin:0 0 14px}
.tdw-wc a{color:var(--gold-text)}
/* product */
.tdw-wc div.product{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.tdw-wc div.product .woocommerce-product-gallery,.tdw-wc div.product .summary{float:none;width:auto;margin:0}
.tdw-wc .woocommerce-product-gallery__image img{width:100%;height:auto;display:block;border:1px solid var(--line-light);background:#fff;padding:10px;box-sizing:border-box}
.tdw-wc .woocommerce-product-gallery__trigger{display:none}
.tdw-wc div.product .summary .price{display:block;margin:6px 0 12px}
.tdw-wc .tdw-tbd{font-family:var(--mono)!important;font-size:13px!important;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal)!important}
.tdw-wc .stock.out-of-stock{font-family:var(--mono);font-size:12.5px;color:var(--charcoal);border:1px dashed var(--tan);padding:10px 12px;background:rgba(191,160,122,.14)}
.tdw-wc table.variations{border-collapse:collapse;margin:0 0 14px}
.tdw-wc table.variations td{padding:6px 12px 6px 0;vertical-align:middle}
.tdw-wc table.variations select{min-width:140px}
.tdw-wc .reset_variations{font-family:var(--mono);font-size:11px;margin-left:10px;color:var(--charcoal)}
.tdw-wc form.cart{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;margin:8px 0 16px}
.tdw-wc form.cart .variations{flex:1 1 100%}
.tdw-wc form.cart .single_variation_wrap{flex:1 1 100%}
.tdw-wc .woocommerce-variation-add-to-cart{display:flex;gap:12px;align-items:center}
.tdw-wc .quantity .qty{width:72px;text-align:center}
.tdw-wc .woocommerce-variation-price .price{font-size:22px}
.tdw-wc .product_meta{border-top:1px solid var(--line-light);padding-top:12px}
.tdw-wc .product_meta>span{display:block;margin:2px 0}
.tdw-wc .woocommerce-tabs{grid-column:1/-1;margin-top:20px}
.tdw-wc .woocommerce-tabs ul.tabs{display:none}
.tdw-wc .woocommerce-tabs .panel{display:block!important;border-top:1px solid var(--line-light);padding:22px 0 8px;max-width:72ch}
.tdw-wc .woocommerce-tabs .panel h2{font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);margin:0 0 10px}
.tdw-wc .woocommerce-tabs .panel p{font-size:16px;line-height:1.65;color:var(--ink)}
.tdw-wc table.woocommerce-product-attributes{font-family:var(--mono);font-size:13px;border-collapse:collapse}
.tdw-wc table.woocommerce-product-attributes th,.tdw-wc table.woocommerce-product-attributes td{padding:8px 16px 8px 0;border-bottom:1px dotted var(--line-light);text-align:left}
.tdw-wc section.related,.tdw-wc section.up-sells,.tdw-wc .cross-sells{grid-column:1/-1;margin-top:40px;border-top:2px solid var(--ink);padding-top:16px}
.tdw-wc section.related>h2,.tdw-wc .cross-sells>h2{font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
/* product grids (related, cross-sells, category archives) */
.tdw-wc ul.products{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tdw-wc ul.products li.product{float:none;width:auto;margin:0;background:#fff;border:1px solid var(--line-light);display:grid;gap:6px;padding:0 0 16px;position:relative}
.tdw-wc ul.products li.product::before{display:none}
.tdw-wc ul.products li.product a img{width:100%;aspect-ratio:1;object-fit:cover;display:block;margin:0 0 8px}
.tdw-wc ul.products li.product .woocommerce-loop-product__title{font-family:var(--display);font-size:20px;padding:0 16px;margin:0}
.tdw-wc ul.products li.product .price{padding:0 16px;font-size:20px;margin:0}
.tdw-wc ul.products li.product .button{margin:6px 16px 0;justify-self:start;padding:10px 14px;font-size:10px}
/* cart */
.tdw-wc table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--line-light);background:#fff}
.tdw-wc table.shop_table th,.tdw-wc table.shop_table td{padding:14px 16px;border-bottom:1px solid var(--line-light);vertical-align:middle;text-align:left}
.tdw-wc table.shop_table td.product-thumbnail img{width:72px;height:72px;object-fit:cover;display:block}
.tdw-wc table.shop_table td.product-name a{color:var(--ink);text-decoration:none;font-family:var(--body);font-weight:600}
.tdw-wc table.shop_table td.product-remove a.remove{display:inline-block;width:22px;height:22px;line-height:20px;text-align:center;border:1px solid var(--line-light);color:var(--charcoal);text-decoration:none;font-size:16px}
.tdw-wc table.shop_table td.actions{background:#F1EDE4}
.tdw-wc table.shop_table td.actions .coupon{display:inline-flex;gap:8px;align-items:center}
.tdw-wc table.shop_table td.actions .coupon label{display:none}
.tdw-wc table.shop_table td.actions .coupon input{width:160px}
.tdw-wc table.shop_table td.actions>.button{float:right}
.tdw-wc .cart-collaterals{margin-top:28px;display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start}
.tdw-wc .cart-collaterals .cart_totals{float:none;width:auto;grid-column:2;background:#fff;border:1px solid var(--line-light);padding:22px 24px;position:relative}
.tdw-wc .cart-collaterals .cart_totals::before{content:'';position:absolute;top:12px;left:12px;right:-12px;bottom:-12px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.55;pointer-events:none}
.tdw-wc .cart_totals table{border:0}
.tdw-wc .cart_totals th{font-family:var(--label);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal);width:40%}
.tdw-wc .cart_totals ul#shipping_method{list-style:none;padding:0;margin:0;font-size:13.5px}
.tdw-wc .cart_totals .order-total td{font-family:var(--display);font-size:22px;color:var(--gold-text)}
.tdw-wc .wc-proceed-to-checkout{margin-top:16px}
.tdw-wc .wc-proceed-to-checkout .checkout-button{display:block;text-align:center}
.tdw-wc .cross-sells{grid-column:1}
/* checkout */
.tdw-wc .woocommerce-form-coupon-toggle .woocommerce-info{margin-bottom:22px}
.tdw-wc form.checkout{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start}
.tdw-wc form.checkout .col2-set{grid-column:1;display:grid;gap:22px}
.tdw-wc form.checkout .col2-set .col-1,.tdw-wc form.checkout .col2-set .col-2{float:none;width:auto}
.tdw-wc form.checkout h3{font-family:var(--display);font-size:22px;margin:0 0 12px}
.tdw-wc form .form-row{margin:0 0 12px;padding:0}
.tdw-wc form .form-row label{display:block;margin-bottom:5px}
.tdw-wc form .form-row-first,.tdw-wc form .form-row-last{width:calc(50% - 6px);float:left}
.tdw-wc form .form-row-last{float:right}
.tdw-wc form .form-row-wide{clear:both}
.tdw-wc #order_review_heading,.tdw-wc #order_review{grid-column:2}
.tdw-wc #order_review_heading{font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);margin:0 0 10px}
.tdw-wc #order_review{background:#fff;border:1px solid var(--line-light);padding:20px 22px;position:relative}
.tdw-wc #order_review::before{content:'';position:absolute;top:12px;left:12px;right:-12px;bottom:-12px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.55;pointer-events:none}
.tdw-wc #order_review table.shop_table{border:0}
.tdw-wc #order_review table.shop_table th,.tdw-wc #order_review table.shop_table td{padding:9px 6px;font-size:13.5px}
.tdw-wc #order_review .order-total td{font-family:var(--display);font-size:22px;color:var(--gold-text)}
.tdw-wc #payment{background:transparent;border:0;margin-top:14px}
.tdw-wc #payment ul.payment_methods{list-style:none;margin:0 0 14px;padding:0;border-bottom:1px solid var(--line-light)}
.tdw-wc #payment ul.payment_methods li{padding:8px 0;font-size:14.5px}
.tdw-wc #payment div.payment_box{background:#F1EDE4;padding:12px 14px;font-size:13.5px;margin:8px 0}
.tdw-wc #payment .woocommerce-privacy-policy-text{font-size:12.5px;color:var(--charcoal)}
.tdw-wc #place_order{width:100%;margin-top:12px;font-size:12px;padding:16px}
.tdw-wc .woocommerce-account-fields,.tdw-wc .woocommerce-additional-fields{margin-top:12px}
/* account */
.tdw-wc .woocommerce-form-login,.tdw-wc .woocommerce-form-register{background:#fff;border:1px solid var(--line-light);padding:24px 26px;margin:0}
.tdw-wc .u-columns.col2-set{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.tdw-wc .u-columns.col2-set .u-column1,.tdw-wc .u-columns.col2-set .u-column2{float:none;width:auto}
.tdw-wc .woocommerce-MyAccount-navigation{float:none;width:auto}
.tdw-wc .woocommerce-MyAccount-content{float:none;width:auto}
.tdw-wc .woocommerce-MyAccount-navigation+.woocommerce-MyAccount-content{margin-top:20px}
.tdw-wc .woocommerce-privacy-policy-text{font-size:13px;color:var(--charcoal)}
.tdw-wc .woocommerce-form-login .button,.tdw-wc .woocommerce-form-register .button{margin-top:10px}
.tdw-wc .woocommerce-LostPassword{font-size:13px;margin-top:10px}
@media (max-width:820px){
  .tdw-wc div.product,.tdw-wc form.checkout,.tdw-wc .cart-collaterals,.tdw-wc .u-columns.col2-set{grid-template-columns:1fr}
  .tdw-wc .cart-collaterals .cart_totals,.tdw-wc #order_review_heading,.tdw-wc #order_review{grid-column:1}
  .tdw-wc ul.products{grid-template-columns:1fr 1fr}
  .tdw-wc table.shop_table td.actions>.button{float:none;margin-top:10px}
}
@media (max-width:560px){.tdw-wc ul.products{grid-template-columns:1fr}.tdw-wc form .form-row-first,.tdw-wc form .form-row-last{width:100%;float:none}}
/* WC polish 2 — win the specificity fights with WC's layout sheet */
.tdw-wc .woocommerce-product-gallery{opacity:1!important}
.tdw-wc .woocommerce-product-gallery .flex-control-thumbs{display:flex;gap:8px;list-style:none;padding:0;margin:10px 0 0}
.tdw-wc .woocommerce-product-gallery .flex-control-thumbs li{width:72px;margin:0;float:none}
.tdw-wc ul.products{display:grid!important}
.tdw-wc ul.products li.product,.tdw-wc ul.products.columns-3 li.product,.tdw-wc ul.products.columns-4 li.product{width:auto!important;float:none!important;margin:0!important;clear:none!important}
.tdw-wc ul.products li.product .woocommerce-loop-product__title{font-size:18px;line-height:1.1}
.tdw-wc ul.products li.product .price.tdw-tbd{display:block;padding:0 16px}
.tdw-wc ul.products li.product .button{margin-top:auto}
.tdw-wc form.checkout{display:grid!important}
.tdw-wc form.checkout .col2-set,.tdw-wc form.checkout .col2-set .col-1,.tdw-wc form.checkout .col2-set .col-2{float:none!important;width:auto!important}
.tdw-wc #order_review_heading{display:none}
.tdw-wc #order_review{grid-column:2!important;grid-row:1;align-self:start;position:sticky;top:96px}
.tdw-wc .woocommerce-billing-fields h3::before{content:'Step 1 · ';font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--gold-text);vertical-align:middle}
.tdw-wc #order_review .shop_table thead th{font-family:var(--label);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text)}
.tdw-wc .u-columns.col2-set{display:grid!important}
.tdw-wc .u-columns.col2-set .u-column1,.tdw-wc .u-columns.col2-set .u-column2,.tdw-wc .u-columns.col2-set .col-1,.tdw-wc .u-columns.col2-set .col-2{float:none!important;width:auto!important}
.tdw-wc .u-columns.col2-set .u-column1{grid-column:1}.tdw-wc .u-columns.col2-set .u-column2{grid-column:2}
.tdw-wc .u-columns.col2-set h2{font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);margin:0 0 10px}
.tdw-wc .woocommerce-form-coupon-toggle .woocommerce-info{background:transparent;border:0;padding:0;font-size:13.5px;color:var(--charcoal)}
.tdw-wc .woocommerce-form-coupon-toggle .woocommerce-info::before{display:none}
@media (max-width:820px){.tdw-wc #order_review{grid-column:1!important;grid-row:auto;position:static}.tdw-wc .u-columns.col2-set .u-column2{grid-column:1}}
/* WC polish 3 */
.tdw-wc ul.products::before,.tdw-wc ul.products::after,.tdw-wc div.product::before,.tdw-wc div.product::after,.tdw-wc .col2-set::before,.tdw-wc .col2-set::after{display:none!important}
.tdw-wc div.product div.images,.tdw-wc div.product div.summary,.tdw-wc .woocommerce-product-gallery,.tdw-wc .woocommerce-product-gallery__wrapper,.tdw-wc .flex-viewport{width:100%!important;max-width:none!important;float:none!important}
.tdw-wc .woocommerce-product-gallery__image img{width:100%!important;height:auto}
.tdw-wc .woocommerce-product-gallery__image{width:100%}
/* audit 2026-09-05 */
.lg-sec h2 .n{white-space:nowrap;flex:0 0 auto}
.sh-spec.sh-spec-prose{grid-template-columns:auto 1fr;gap:8px 18px}
.sh-spec.sh-spec-prose dd{font-family:var(--body);font-size:15px;line-height:1.55}
.sh-spec.sh-spec-prose dt{padding-top:3px}
/* review toggle bar: current page vs their-edits twin (2026-09-20) */
.rev-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 28px;background:#F6E7E2;border-bottom:2px solid #8A2E1E;font-family:var(--mono);font-size:11.5px;color:#8A2E1E}
.rev-bar .rev-k{font-family:var(--label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.rev-bar a{color:#8A2E1E;text-decoration:none;padding:4px 10px;border:1px solid #8A2E1E}
.rev-bar a.on{background:#8A2E1E;color:#F6E7E2}
.rev-bar .rev-note{margin-left:auto;color:#6B4A40;max-width:60ch}
@media (max-width:760px){.rev-bar .rev-note{margin-left:0}}
/* decorative looping videos: no hover toolbar (picture-in-picture, cast) — 9/25 */
video[loop]{pointer-events:none}

/* ---------- WPForms launch forms (9/25/2026) ----------
   WPForms' own CSS is off (disable-css=3); the theme's input/select/textarea styles
   apply. Forms: Contact #618 (.tdw-form-contact), Dealer application #620 (.tdw-grid). */
.tdw-wpf .wpforms-field-container{display:grid;gap:12px}
.tdw-grid .wpforms-field-container{grid-template-columns:1fr 1fr;margin-top:20px}
.tdw-grid .tdw-full{grid-column:1/-1}
.tdw-wpf .wpforms-field{padding:0;margin:0;min-width:0}
.tdw-wpf .wpforms-field input,.tdw-wpf .wpforms-field select,.tdw-wpf .wpforms-field textarea{display:block;width:100%;box-sizing:border-box}
.tdw-wpf .wpforms-label-hide,.tdw-wpf .wpforms-sublabel-hide,.tdw-wpf .wpforms-screen-reader-element{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tdw-wpf .wpforms-field-hp,.tdw-wpf .wpforms-hidden,.tdw-wpf noscript{display:none!important}
.tdw-wpf select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-text) 50%),linear-gradient(135deg,var(--gold-text) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px}
.tdw-wpf textarea{resize:vertical;min-height:96px}
.tdw-form-contact textarea{min-height:140px}
.tdw-wpf .wpforms-submit-container{margin-top:18px;display:flex;align-items:center;gap:14px}
.tdw-wpf .wpforms-submit-spinner{width:22px;height:22px}
.tdw-wpf label.wpforms-error,.tdw-wpf em.wpforms-error{display:block;font-size:12.5px;font-style:normal;color:#E0906E;margin-top:6px}
.band-cream .tdw-wpf label.wpforms-error,.band-paper .tdw-wpf label.wpforms-error{color:#A8431C}
.tdw-wpf input.wpforms-error,.tdw-wpf select.wpforms-error,.tdw-wpf textarea.wpforms-error{border-color:#C4562F}
.wpforms-confirmation-container-full{border:1px solid var(--gold);color:var(--sand);background:rgba(166,145,106,.1);padding:14px 18px;font-size:14.5px}
.wpforms-confirmation-container-full p{margin:0}
.band-cream .wpforms-confirmation-container-full,.band-paper .wpforms-confirmation-container-full{color:var(--gold-text)}
@media (max-width:760px){.tdw-grid .wpforms-field-container{grid-template-columns:1fr}}
/* Lineage spec rows (was an inline <style> on the About page; moved here for the Talon blocks, 9/25) */
.lin-specs>div{grid-template-columns:128px 1fr}@media (max-width:760px){.lin-specs>div{grid-template-columns:112px 1fr}}

/* hero video backgrounds (Diode): a <video> does not stretch to inset:0 like a photo div,
   so it sat at its own 1920px size pinned to one edge. Fill the hero and center it (Dave 9/25). */
.hero video.bg{width:100%;height:100%;object-fit:cover;object-position:center center}

/* ---------- Age gate (9/25/2026) ---------- */
.age-gate{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(23,20,14,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.age-gate[hidden]{display:none}
.age-plate{position:relative;max-width:560px;width:100%;background:var(--dark-2);border:1px solid var(--line-dark);box-shadow:0 30px 80px rgba(0,0,0,.6);padding:44px 40px 34px;text-align:center;color:#EDE8DD}
.age-plate::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.6;pointer-events:none}
.age-plate img{height:40px;margin-bottom:26px}
.age-plate .eyebrow{justify-content:center;color:var(--sand);margin-bottom:14px}
.age-plate .age-gate-title{font-family:var(--display);text-transform:uppercase;line-height:1.04;font-weight:700;font-size:clamp(28px,4vw,40px);color:#F5F1E8;margin-bottom:14px}
.age-plate .lede{font-size:16.5px;color:#C9C2B2;max-width:44ch;margin:0 auto}
.age-plate .btn-row{justify-content:center;margin-top:26px}
.age-plate .smallprint{margin-top:22px;font-size:12.5px;color:#8E8676}
.age-plate .smallprint a{color:var(--sand)}
body.age-locked{overflow:hidden}
@media (max-width:560px){.age-plate{padding:34px 22px 26px}.age-plate::before{right:-8px;bottom:-8px}}

/* ---------- Reviews page (9/25/2026) ---------- */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px;margin-top:38px;align-items:start}
.review-card{position:relative;background:#fff;border:1px solid var(--line-light);box-shadow:0 22px 48px rgba(23,20,14,.12);padding:0;display:flex;flex-direction:column}
.review-card::before{content:'';position:absolute;top:14px;left:14px;right:-14px;bottom:-14px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);opacity:.5;pointer-events:none}
.review-card.is-featured{border-color:var(--gold);box-shadow:0 22px 48px rgba(166,145,106,.28)}
.review-card.is-featured::before{opacity:.9}
.review-card .rv-video{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.review-card .rv-video iframe,.review-card .rv-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.review-card .rv-video blockquote{margin:0}
.review-card .rv-photo{margin:0;padding:12px;background:#fff;box-shadow:none;border:0}
.review-card .rv-photo::before,.review-card .rv-photo::after{display:none}
.review-card .rv-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.review-card .rv-body{padding:24px 26px 26px}
.review-card .rv-video-link{margin:22px 26px 0}
.rv-stars{color:var(--gold);font-size:15px;letter-spacing:.1em;margin-bottom:12px}
.rv-stars .off{color:#DDD8CE}
.review-card blockquote{margin:0;font-size:16.5px;line-height:1.55;color:var(--ink)}
.review-card blockquote p{margin:0 0 10px}
.review-card blockquote p:last-child{margin:0}
.rv-who{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-light);font-size:14px;color:#6B655B}
.rv-who b{color:var(--ink);font-weight:700}
.rv-handle{font-family:var(--mono);font-size:12.5px;color:var(--gold-text);margin-left:6px}
.rv-meta{display:block;margin-top:4px;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#8E8676}
.rv-meta em{font-style:normal;color:var(--gold-text)}
.rv-empty{margin-top:30px}
.review-form .rv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.review-form .rv-file{font-size:14px;color:#C9C2B2;display:flex;flex-direction:column;gap:8px}
.review-form .rv-file input{color:#EDE8DD;font-size:13px}
.review-form .rv-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:#C9C2B2}
.review-form .rv-consent input{margin-top:3px;flex:none}
.review-form .form-ok{margin-top:18px}
@media (max-width:760px){.reviews-grid{grid-template-columns:1fr;gap:22px}.review-card::before{right:-8px;bottom:-8px}}
/* visually hidden (screen readers + search engines only) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
