/* ==========================================================================
   Cardinal Reality Capture — site.css
   Brand system: ink navy / mid navy / bronze / chalk / paper / steel
   Type: Libre Franklin (display + body), IBM Plex Mono (technical annotation)
   ========================================================================== */

/* ---------- Fonts (self hosted, no third party requests) ---------- */
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/libre-franklin-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/libre-franklin-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/libre-franklin-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/libre-franklin-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/libre-franklin-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}

/* ---------- Tokens ---------- */
:root{
  --ink:#0E1A2B;
  --ink-2:#132340;
  --mid:#1B3358;
  --bronze:#B0813F;
  --bronze-lt:#C99A55;
  --bronze-deep:#8C6329;   /* bronze that clears 4.5:1 on paper and white, for small text */
  --chalk:#E9EAE6;
  --paper:#F5F5F1;
  --steel:#79838F;
  --steel-deep:#5C6673;    /* muted text on the paper field, clears 4.5:1 */
  --steel-lt:#9AA4AE;

  --line-dark:rgba(233,234,230,.14);
  --line-light:rgba(14,26,43,.14);
  --line-bronze:rgba(176,129,63,.45);

  --font:'Libre Franklin',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --wrap:1240px;
  --wrap-narrow:820px;
  --gut:clamp(20px,5vw,48px);
  --sect:clamp(64px,9vw,120px);
  --r:3px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:17px;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block;}
a{color:inherit;}
button{font:inherit;}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.021em;line-height:1.08;}
p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}
ul,ol{margin:0 0 1.1em;padding-left:1.15em;}
li{margin-bottom:.4em;}
hr{border:0;border-top:1px solid var(--line-light);margin:2.5rem 0;}
::selection{background:var(--bronze);color:var(--ink);}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
.wrap-narrow{width:100%;max-width:var(--wrap-narrow);margin-inline:auto;padding-inline:var(--gut);}
.section{padding-block:var(--sect);}
.section--tight{padding-block:clamp(48px,6vw,80px);}
.dark{background:var(--ink);color:var(--chalk);}
/* dark-2 is a shade modifier. Markup always carries BOTH classes (class="dark dark-2")
   so every ".dark X" rule below applies. Do not use dark-2 on its own. */
.dark-2{background:var(--ink-2);color:var(--chalk);}
.light{background:var(--paper);color:var(--ink);}
.chalk{background:var(--chalk);color:var(--ink);}
.dark a,.dark-2 a{color:var(--chalk);}
/* buttons carry their own colour; beat the .dark a rule */
.dark a.btn--primary,.dark-2 a.btn--primary,a.btn--primary,button.btn--primary{color:var(--ink);}
.dark a.btn--ghost,.dark-2 a.btn--ghost{color:var(--chalk);}
.dark a.btn--outline,.dark-2 a.btn--outline{color:var(--chalk);}
.grid{display:grid;gap:clamp(24px,3vw,40px);}
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.split{display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:1fr 1fr;align-items:center;}
.split--wide-left{grid-template-columns:1.15fr .85fr;}
.split--wide-right{grid-template-columns:.85fr 1.15fr;}
@media (max-width:960px){
  .g3,.g4{grid-template-columns:repeat(2,1fr);}
  .split,.split--wide-left,.split--wide-right{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .g2,.g3,.g4{grid-template-columns:1fr;}
}

/* ---------- Type scale ---------- */
.display{font-size:clamp(2.45rem,6.2vw,5rem);line-height:1.02;letter-spacing:-.028em;}
.h1{font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1.06;letter-spacing:-.025em;}
.h2{font-size:clamp(1.75rem,3.3vw,2.65rem);line-height:1.1;letter-spacing:-.022em;}
.h3{font-size:clamp(1.2rem,1.9vw,1.5rem);line-height:1.22;letter-spacing:-.014em;font-weight:700;}
.h4{font-size:1.05rem;line-height:1.35;font-weight:700;letter-spacing:-.008em;}
.lede{font-size:clamp(1.06rem,1.55vw,1.28rem);line-height:1.55;font-weight:400;}
.dark .lede,.dark-2 .lede{color:rgba(233,234,230,.82);}
.light .lede{color:rgba(14,26,43,.78);}
.small{font-size:.9rem;line-height:1.6;}
.muted{color:var(--steel-deep);}
.dark .muted,.dark-2 .muted{color:var(--steel-lt);}
.measure{max-width:64ch;}
.measure-tight{max-width:52ch;}

/* ---------- Eyebrow (numbered section label, from the brochure system) ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-deep);
  display:block;margin-bottom:.85rem;
}
.eyebrow .n{color:inherit;opacity:.7;}
.eyebrow .sep{opacity:.4;padding-inline:.55em;}
.dark .eyebrow,.hero .eyebrow,.phero .eyebrow,.cta .eyebrow{color:var(--bronze-lt);}
.dark .card-num,.dark .step .sn,.dark .spec th,.dark .field label,.dark .field .req,
.dark .hudstrip b,.dark .chip--bronze,.dark .tl-row.is-key .v{color:var(--bronze-lt);}
.rule{width:56px;height:2px;background:var(--bronze);margin:0 0 1.5rem;}
.rule--center{margin-inline:auto;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-weight:600;font-size:.95rem;letter-spacing:.005em;
  padding:.85em 1.5em;border-radius:var(--r);text-decoration:none;
  border:1.5px solid transparent;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn--primary{background:var(--bronze);color:var(--ink);border-color:var(--bronze);}
.btn--primary:hover{background:var(--bronze-lt);border-color:var(--bronze-lt);color:var(--ink);}
.btn--ghost{background:transparent;color:var(--chalk);border-color:rgba(233,234,230,.34);}
.btn--ghost:hover{border-color:var(--bronze);color:var(--bronze-lt);}
.btn--dark{background:var(--ink);color:var(--chalk);border-color:var(--ink);}
.btn--dark:hover{background:var(--mid);border-color:var(--mid);}
.btn--outline{background:transparent;color:var(--ink);border-color:rgba(14,26,43,.3);}
.btn--outline:hover{border-color:var(--bronze-deep);color:var(--bronze-deep);}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;}
.arrow{transition:transform .18s ease;}
.btn:hover .arrow{transform:translateX(3px);}

/* text link with arrow */
.tlink{
  display:inline-flex;align-items:center;gap:.45em;text-decoration:none;
  font-weight:600;font-size:.92rem;color:var(--bronze-deep);
  border-bottom:1px solid transparent;transition:border-color .18s ease;
}
.tlink:hover{border-bottom-color:var(--bronze-deep);}
.dark .tlink,.dark-2 .tlink{color:var(--bronze-lt);}
.dark .tlink:hover,.dark-2 .tlink:hover{border-bottom-color:var(--bronze-lt);}

/* ---------- Header ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--bronze);color:var(--ink);padding:.7em 1.2em;z-index:200;text-decoration:none;}
.skip:focus{left:0;}
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(14,26,43,.9);backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid rgba(233,234,230,.1);
}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:74px;}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto;}

.nav{display:flex;align-items:center;gap:.15rem;margin-left:auto;}
.nav a,.nav .navtop{
  display:inline-flex;align-items:center;gap:.35em;
  color:rgba(233,234,230,.86);text-decoration:none;
  font-size:.86rem;font-weight:500;letter-spacing:.005em;
  padding:.55em .78em;border-radius:var(--r);
  background:none;border:0;cursor:pointer;white-space:nowrap;
  transition:color .16s ease,background .16s ease;
}
.nav a:hover,.nav .navtop:hover{color:#fff;background:rgba(233,234,230,.07);}
.nav a[aria-current="page"]{color:var(--bronze-lt);}
.nav .caret{width:8px;height:8px;opacity:.6;}
.has-menu{position:relative;}
.menu{
  position:absolute;top:calc(100% + 8px);left:0;min-width:270px;
  background:var(--ink-2);border:1px solid rgba(233,234,230,.14);border-radius:var(--r);
  padding:.5rem;box-shadow:0 24px 48px -18px rgba(0,0,0,.7);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.has-menu:hover .menu,.has-menu:focus-within .menu,.menu.open{opacity:1;visibility:visible;transform:none;}
.menu a{display:block;padding:.55em .7em;font-size:.86rem;border-radius:2px;}
.menu a .mdesc{display:block;font-size:.74rem;color:var(--steel-lt);font-weight:400;margin-top:.1em;}
.header-cta{display:flex;align-items:center;gap:.75rem;flex:0 0 auto;}
.header-phone{
  font-family:var(--mono);font-size:.85rem;color:var(--chalk);text-decoration:none;
  letter-spacing:.02em;white-space:nowrap;
}
.header-phone:hover{color:var(--bronze-lt);}
.header-cta .btn{padding:.62em 1.1em;font-size:.86rem;}
.navtoggle{display:none;background:none;border:1px solid rgba(233,234,230,.24);border-radius:var(--r);color:var(--chalk);padding:.5em .7em;cursor:pointer;}
.navtoggle svg{width:20px;height:20px;display:block;}

@media (max-width:1120px){
  .header-phone{display:none;}
}
@media (max-width:1000px){
  .nav,.header-cta .btn{display:none;}
  .navtoggle{display:block;}
  .header-cta{gap:.5rem;}
}
/* mobile drawer */
.drawer{
  display:none;background:var(--ink);border-top:1px solid rgba(233,234,230,.1);
  max-height:calc(100vh - 74px);overflow-y:auto;padding:1rem var(--gut) 2rem;
}
.drawer.open{display:block;}
.drawer a{display:block;color:var(--chalk);text-decoration:none;padding:.62em 0;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(233,234,230,.08);}
.drawer .sub a{font-weight:400;font-size:.92rem;padding-left:1rem;color:rgba(233,234,230,.75);border-bottom:none;}
.drawer .dgroup{margin-top:.5rem;}
.drawer .dlabel{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-lt);margin:1.4rem 0 .3rem;}
.drawer .btn{margin-top:1.5rem;width:100%;justify-content:center;}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--ink);color:var(--chalk);overflow:hidden;isolation:isolate;}
.hero-media{position:absolute;inset:0;z-index:-2;}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 46%;}
.hero-scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(14,26,43,.86) 0%,rgba(14,26,43,.6) 34%,rgba(14,26,43,.78) 72%,rgba(14,26,43,.97) 100%),
    linear-gradient(90deg,rgba(14,26,43,.94) 0%,rgba(14,26,43,.62) 46%,rgba(14,26,43,.2) 100%);
}
.hero-inner{position:relative;padding-block:clamp(84px,13vw,168px);}
.hero .display{max-width:16ch;}
.hero .lede{max-width:54ch;margin-top:1.35rem;}
.hero-meta{
  display:flex;flex-wrap:wrap;gap:.55rem 1.6rem;margin-top:2.4rem;padding-top:1.4rem;
  border-top:1px solid rgba(233,234,230,.16);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(233,234,230,.7);
}
.hero-meta span{display:inline-flex;align-items:center;gap:.5em;}
.hero-meta span::before{content:"";width:5px;height:5px;background:var(--bronze);flex:0 0 auto;transform:rotate(45deg);}

/* page hero (interior) */
.phero{background:var(--ink);color:var(--chalk);position:relative;overflow:hidden;}
.phero::after{
  content:"";position:absolute;right:-140px;top:-140px;width:520px;height:520px;
  background:radial-gradient(circle,rgba(176,129,63,.16) 0%,rgba(176,129,63,0) 68%);pointer-events:none;
}
.phero-inner{padding-block:clamp(56px,8vw,104px);position:relative;}
.phero--scan .phero-inner{padding-block:clamp(64px,9vw,124px) clamp(96px,12vw,168px);}
.phero .h1{max-width:19ch;}
.phero .lede{max-width:60ch;margin-top:1.15rem;}
.phero--image{position:relative;}
.phero--image .phero-bg{position:absolute;inset:0;z-index:0;}
.phero--image .phero-bg img{width:100%;height:100%;object-fit:cover;opacity:.4;}
.phero--image .phero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(14,26,43,.97) 12%,rgba(14,26,43,.75) 55%,rgba(14,26,43,.5) 100%);
}
.phero--image .phero-inner{z-index:1;}

/* breadcrumbs */
.crumbs{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(233,234,230,.6);margin-bottom:1.6rem;}
.crumbs a{text-decoration:none;color:rgba(233,234,230,.6);}
.crumbs a:hover{color:var(--bronze-lt);}
.crumbs .sep{padding-inline:.55em;opacity:.45;}

/* ---------- Section head ---------- */
.shead{margin-bottom:clamp(36px,4.5vw,60px);}
.shead .h2{max-width:20ch;}
.shead .lede{margin-top:1rem;max-width:62ch;}
.shead--center{text-align:center;}
.shead--center .h2,.shead--center .lede{margin-inline:auto;}
.shead--row{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;}
@media (max-width:800px){.shead--row{grid-template-columns:1fr;align-items:start;}}

/* ---------- Cards ---------- */
.card{
  background:rgba(233,234,230,.035);border:1px solid var(--line-dark);border-radius:var(--r);
  padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.card--link:hover{border-color:var(--line-bronze);background:rgba(176,129,63,.06);transform:translateY(-2px);}
.light .card{background:#fff;border-color:var(--line-light);}
.light .card--link:hover{border-color:var(--bronze);background:#fff;}
.card .h3{margin-bottom:.6rem;}
.card p{font-size:.95rem;line-height:1.6;}
.card .tlink{margin-top:auto;padding-top:1.25rem;}
.card-num{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;color:var(--bronze-deep);margin-bottom:1rem;}
.light .card-num{color:var(--bronze-deep);}
a.card{text-decoration:none;color:inherit;}

/* icon block */
.icard{display:flex;gap:1.1rem;align-items:flex-start;}
.icard .ico{flex:0 0 auto;width:34px;height:34px;margin-top:2px;}
.icard .ico svg{width:100%;height:100%;stroke:var(--bronze);fill:none;stroke-width:1.35;}

/* ---------- Figure / media ---------- */
figure{margin:0;}
.fig{border:1px solid var(--line-dark);border-radius:var(--r);overflow:hidden;background:var(--ink);}
.light .fig{border-color:var(--line-light);background:var(--ink);}
.fig img{width:100%;display:block;}
.fig figcaption,.figcap{
  font-family:var(--mono);font-size:.72rem;line-height:1.5;letter-spacing:.055em;
  color:var(--steel-lt);padding:.85rem 1rem;border-top:1px solid var(--line-dark);
  background:var(--ink);
}
.light .fig figcaption{color:var(--steel-lt);}
.fig--bare{border:0;background:none;}
.fig--bare img{border-radius:var(--r);}

/* portfolio grid */
.pgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,1.6vw,22px);}
.pgrid .p{grid-column:span 4;}
.pgrid .p--w6{grid-column:span 6;}
.pgrid .p--w8{grid-column:span 8;}
.pgrid .p--w12{grid-column:span 12;}
@media (max-width:900px){
  .pgrid .p,.pgrid .p--w6,.pgrid .p--w8{grid-column:span 6;}
}
@media (max-width:600px){
  .pgrid .p,.pgrid .p--w6,.pgrid .p--w8,.pgrid .p--w12{grid-column:span 12;}
}
.pitem{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line-dark);background:#0a121e;}
.pitem img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.pitem--tall img{aspect-ratio:3/4;}
.pitem--wide img{aspect-ratio:21/9;}
.pitem--sq img{aspect-ratio:1/1;}
.pitem:hover img{transform:scale(1.035);}
.pitem .pcap{
  position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.1rem .95rem;
  background:linear-gradient(180deg,rgba(14,26,43,0) 0%,rgba(14,26,43,.9) 62%);
}
.pitem .pcap .t{font-weight:700;font-size:.98rem;color:var(--chalk);line-height:1.25;}
.pitem .pcap .s{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--bronze-lt);margin-top:.35rem;}

/* ---------- Spec / data tables ---------- */
.spec{width:100%;border-collapse:collapse;font-size:.92rem;}
.spec th,.spec td{text-align:left;padding:.8em .9em;border-bottom:1px solid var(--line-dark);vertical-align:top;}
.light .spec th,.light .spec td{border-bottom-color:var(--line-light);}
.spec th{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-deep);font-weight:500;white-space:nowrap;}
.spec td.num{font-family:var(--mono);text-align:right;white-space:nowrap;}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0;}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* timeline rows (Call Monday / Data by Friday) */
.tl{border-top:1px solid var(--line-dark);}
.light .tl{border-top-color:var(--line-light);}
.tl-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.85em 0;border-bottom:1px solid var(--line-dark);align-items:baseline;}
.light .tl-row{border-bottom-color:var(--line-light);}
.tl-row .l{font-family:var(--mono);font-size:.8rem;letter-spacing:.09em;color:var(--steel-lt);text-transform:uppercase;}
.light .tl-row .l{color:var(--steel-deep);}
.tl-row .v{font-family:var(--mono);font-size:.8rem;letter-spacing:.09em;color:var(--chalk);}
.light .tl-row .v{color:var(--ink);}
.tl-row.is-key .l{color:var(--chalk);font-weight:500;}
.light .tl-row.is-key .l{color:var(--ink);}
.tl-row.is-key .v{color:var(--bronze-lt);font-weight:500;}
.light .tl-row.is-key .v{color:var(--bronze-deep);}

/* ---------- Lists ---------- */
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:.55rem;}
.ticks li{position:relative;padding-left:1.5rem;font-size:.96rem;line-height:1.55;margin:0;}
.ticks li::before{
  content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;
  background:var(--bronze);transform:rotate(45deg);
}
.ticks--2{grid-template-columns:repeat(2,1fr);gap:.55rem 2rem;}
@media (max-width:640px){.ticks--2{grid-template-columns:1fr;}}

.deflist{display:grid;gap:0;border-top:1px solid var(--line-dark);}
.light .deflist{border-top-color:var(--line-light);}
.deflist>div{padding:1.4rem 0;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:200px 1fr;gap:1.5rem;}
.light .deflist>div{border-bottom-color:var(--line-light);}
.deflist dt{font-weight:700;font-size:1rem;}
.deflist dd{margin:0;font-size:.96rem;line-height:1.6;color:var(--steel-lt);}
.light .deflist dd{color:rgba(14,26,43,.72);}
@media (max-width:720px){.deflist>div{grid-template-columns:1fr;gap:.4rem;}}

/* numbered process steps */
.steps{counter-reset:s;display:grid;gap:0;border-top:1px solid var(--line-dark);}
.light .steps{border-top-color:var(--line-light);}
.step{display:grid;grid-template-columns:64px 1fr;gap:1.5rem;padding:1.7rem 0;border-bottom:1px solid var(--line-dark);}
.light .step{border-bottom-color:var(--line-light);}
.step .sn{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;color:var(--bronze-deep);padding-top:.25em;}
.step .h4{margin-bottom:.35rem;}
.step p{font-size:.95rem;color:var(--steel-lt);margin:0;}
.light .step p{color:rgba(14,26,43,.72);}
@media (max-width:600px){.step{grid-template-columns:1fr;gap:.5rem;}}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--r);overflow:hidden;}
.light .stats{background:var(--line-light);border-color:var(--line-light);}
.stat{background:var(--ink);padding:clamp(20px,2.6vw,32px);}
.light .stat{background:var(--paper);}
.stat .v{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--chalk);}
.light .stat .v{color:var(--ink);}
.stat .k{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--steel-lt);margin-top:.7rem;line-height:1.45;}
.light .stat .k{color:var(--steel-deep);}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,1fr);}}

/* ---------- Pull quote / callout ---------- */
.callout{
  border-left:2px solid var(--bronze);padding:.4rem 0 .4rem 1.6rem;
  font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.5;font-weight:500;letter-spacing:-.012em;
}
.note{
  border:1px solid var(--line-bronze);border-radius:var(--r);
  background:rgba(176,129,63,.07);padding:clamp(20px,2.4vw,30px);
}
.note .h4{margin-bottom:.5rem;}
.note p{font-size:.95rem;}

/* ---------- CTA band ---------- */
.cta{background:var(--mid);color:var(--chalk);position:relative;overflow:hidden;}
.cta::before{
  content:"";position:absolute;left:50%;top:-40%;width:760px;height:760px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(176,129,63,.2) 0%,rgba(176,129,63,0) 66%);pointer-events:none;
}
.cta-inner{position:relative;text-align:center;padding-block:clamp(56px,7vw,90px);}
.cta .h2{max-width:18ch;margin-inline:auto;}
.cta .lede{max-width:56ch;margin:1.1rem auto 0;}
.cta .btn-row{justify-content:center;}
.cta-contact{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin-top:2rem;
  font-family:var(--mono);font-size:.82rem;letter-spacing:.06em;
}
.cta-contact a{text-decoration:none;color:var(--chalk);border-bottom:1px solid rgba(233,234,230,.3);}
.cta-contact a:hover{color:var(--bronze-lt);border-bottom-color:var(--bronze-lt);}

/* ---------- Forms ---------- */
.form{display:grid;gap:1.15rem;}
.field{display:grid;gap:.42rem;}
.field label{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-deep);}
.dark .field label{color:var(--bronze-lt);}
.field .req{color:var(--bronze-deep);}
.field input,.field select,.field textarea{
  font:inherit;font-size:.98rem;padding:.75em .9em;border-radius:var(--r);
  border:1px solid var(--line-light);background:#fff;color:var(--ink);width:100%;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.dark .field input,.dark .field select,.dark .field textarea{
  background:rgba(233,234,230,.05);border-color:rgba(233,234,230,.2);color:var(--chalk);
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--bronze);box-shadow:0 0 0 3px rgba(176,129,63,.18);
}
.field textarea{min-height:130px;resize:vertical;}
.field .hint{font-size:.8rem;color:var(--steel-deep);}
.dark .field .hint{color:var(--steel-lt);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem;}
@media (max-width:640px){.form-row{grid-template-columns:1fr;}}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.form-status{font-size:.92rem;padding:.9em 1.1em;border-radius:var(--r);display:none;}
.form-status.show{display:block;}
.form-status.ok{background:rgba(20,184,90,.12);border:1px solid rgba(20,184,90,.4);color:#0d7a3c;}
.dark .form-status.ok{color:#7ee0a8;}
.form-status.err{background:rgba(224,90,43,.12);border:1px solid rgba(224,90,43,.4);color:#a83b1a;}
.dark .form-status.err{color:#ffab8c;}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line-light);}
.dark .faq{border-top-color:var(--line-dark);}
.faq details{border-bottom:1px solid var(--line-light);}
.dark .faq details{border-bottom-color:var(--line-dark);}
.faq summary{
  cursor:pointer;list-style:none;padding:1.25rem 2.5rem 1.25rem 0;position:relative;
  font-weight:700;font-size:1.02rem;line-height:1.35;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"";position:absolute;right:.4rem;top:1.65rem;width:11px;height:11px;
  border-right:1.6px solid var(--bronze);border-bottom:1.6px solid var(--bronze);
  transform:rotate(45deg);transition:transform .2s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg);top:1.9rem;}
.faq .fa{padding:0 2.5rem 1.5rem 0;font-size:.97rem;line-height:1.65;color:rgba(14,26,43,.75);}
.dark .faq .fa{color:var(--steel-lt);}

/* ---------- Article ---------- */
.article{font-size:1.06rem;line-height:1.75;}
.article>*{max-width:70ch;}
.article h2{font-size:clamp(1.4rem,2.4vw,1.85rem);margin:2.6rem 0 .9rem;letter-spacing:-.02em;}
.article h3{font-size:1.15rem;font-weight:700;margin:2rem 0 .6rem;letter-spacing:-.012em;}
.article ul,.article ol{margin-bottom:1.4rem;}
.article li{margin-bottom:.5rem;}
.article .fig,.article figure{max-width:100%;margin:2.4rem 0;}
.article .note{max-width:100%;margin:2.2rem 0;}
.article a{color:var(--bronze-deep);text-decoration:none;border-bottom:1px solid rgba(140,99,41,.45);}
.article a:hover{border-bottom-color:var(--bronze-deep);}
.article strong{font-weight:700;}
.artmeta{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;color:var(--steel-deep);}
.dark .artmeta{color:var(--steel-lt);}
span.artmeta{text-transform:uppercase;}

/* article index cards */
.post{display:grid;grid-template-columns:260px 1fr;gap:clamp(20px,3vw,36px);padding:2rem 0;border-bottom:1px solid var(--line-light);align-items:start;text-decoration:none;color:inherit;}
.post:hover .post-t{color:var(--bronze-deep);}
.post-img{border-radius:var(--r);overflow:hidden;border:1px solid var(--line-light);}
.post-img img{aspect-ratio:4/3;object-fit:cover;width:100%;}
.post-t{font-size:1.28rem;font-weight:800;letter-spacing:-.018em;line-height:1.22;margin:.5rem 0 .55rem;transition:color .16s ease;}
.post p{font-size:.96rem;color:rgba(14,26,43,.72);margin:0;}
@media (max-width:700px){.post{grid-template-columns:1fr;}}

/* ---------- Logo strip / trust ---------- */
.trust{display:flex;flex-wrap:wrap;gap:.7rem 1rem;}
.chip{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  border:1px solid var(--line-dark);border-radius:100px;padding:.5em 1em;color:var(--steel-lt);
}
.light .chip{border-color:var(--line-light);color:var(--steel-deep);}
.chip--bronze{border-color:var(--line-bronze);color:var(--bronze-lt);}
.light .chip--bronze{color:var(--bronze-deep);}

/* ---------- Footer ---------- */
.site-footer{background:#0a121e;color:var(--chalk);padding-block:clamp(52px,6vw,76px) 0;}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(28px,3.5vw,48px);}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr;}}

.site-footer p{font-size:.9rem;color:var(--steel-lt);line-height:1.65;}
.fcol h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-lt);margin-bottom:1.05rem;font-weight:500;}
.fcol ul{list-style:none;padding:0;margin:0;}
.fcol li{margin-bottom:.5rem;}
.fcol a{font-size:.9rem;color:rgba(233,234,230,.78);text-decoration:none;}
.fcol a:hover{color:var(--bronze-lt);}
.fcontact{font-family:var(--mono);font-size:.86rem;line-height:1.9;color:rgba(233,234,230,.86);}
.fcontact a{color:inherit;text-decoration:none;}
.fcontact a:hover{color:var(--bronze-lt);}
.fbar{
  margin-top:clamp(40px,5vw,60px);border-top:1px solid rgba(233,234,230,.1);
  padding-block:1.5rem 2rem;display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;justify-content:space-between;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;color:var(--steel);
}
.fbar a{color:var(--steel);text-decoration:none;}
.fbar a:hover{color:var(--bronze-lt);}

/* ---------- Utilities ---------- */
.mt0{margin-top:0;}
.mt1{margin-top:1rem;}
.mt2{margin-top:2rem;}
.mt3{margin-top:3rem;}
.mb0{margin-bottom:0;}
.mb1{margin-bottom:1rem;}
.mb2{margin-bottom:2rem;}
.center{text-align:center;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.nowrap{white-space:nowrap;}

/* focus visibility */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--bronze);outline-offset:2px;border-radius:2px;
}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none;}
  .pitem img,.btn,.arrow{transition:none!important;}
}

/* print */
@media print{
  .site-header,.site-footer,.cta,.hero-media,.navtoggle{display:none!important;}
  body{background:#fff;color:#000;}
  .dark,.dark-2,.hero,.phero{background:#fff!important;color:#000!important;}
}

/* ---------- Even height figure row ---------- */
.pgrid .p{display:flex;}
.fig--even{display:flex;flex-direction:column;width:100%;}
.fig--even picture{display:block;}
.fig--even img{aspect-ratio:16/10;object-fit:cover;width:100%;}
.fig--even figcaption{margin-top:auto;}
.fig--tall img{aspect-ratio:3/4;object-fit:cover;width:100%;}
.fig--wide img{aspect-ratio:2/1;object-fit:cover;width:100%;}
.fig--sq img{aspect-ratio:1/1;object-fit:cover;width:100%;}
.fig--4x3 img{aspect-ratio:4/3;object-fit:cover;width:100%;}

/* ---------- Masonry gallery (natural aspect ratios, no cropping) ---------- */
.mgrid{columns:3;column-gap:clamp(14px,1.6vw,22px);}
.mgrid .mitem{break-inside:avoid;margin:0 0 clamp(14px,1.6vw,22px);display:block;}
@media (max-width:900px){.mgrid{columns:2;}}
@media (max-width:600px){.mgrid{columns:1;}}
.mitem .pitem img{aspect-ratio:auto;height:auto;}
.pitem--r169 img{aspect-ratio:16/9;}
.pitem--r32 img{aspect-ratio:3/2;}

/* ---------- Header refinements ---------- */
.header-call{
  display:none;align-items:center;gap:.45em;
  border:1px solid rgba(233,234,230,.28);border-radius:var(--r);
  color:var(--chalk);text-decoration:none;padding:.5em .8em;
  font-family:var(--mono);font-size:.8rem;letter-spacing:.02em;white-space:nowrap;
}
.header-call svg{width:15px;height:15px;flex:0 0 auto;}
.header-call:hover{border-color:var(--bronze);color:var(--bronze-lt);}
@media (max-width:1000px){.header-call{display:inline-flex;}}
@media (max-width:420px){.header-call .num{display:none;}.header-call{padding:.5em .65em;}}
.drawer .dphone{
  display:block;font-family:var(--mono);font-size:1rem;color:var(--bronze-lt);
  padding:1.2rem 0 .2rem;border-bottom:none;
}

/* ---------- Hero: live LiDAR cross section ---------- */
.hero--scan .hero-media{background:var(--ink);}
.hero--scan .hero-media canvas{width:100%;height:100%;display:block;}
.hero--scan .hero-scrim{
  background:
    linear-gradient(180deg,rgba(14,26,43,.7) 0%,rgba(14,26,43,.15) 26%,rgba(14,26,43,.1) 62%,rgba(14,26,43,.75) 100%),
    linear-gradient(90deg,rgba(14,26,43,.97) 0%,rgba(14,26,43,.9) 30%,rgba(14,26,43,.4) 58%,rgba(14,26,43,0) 88%);
}
.hero--scan .hero-inner{padding-block:clamp(96px,14vw,180px);}
.hero-hud{
  position:absolute;right:var(--gut);bottom:1.4rem;z-index:1;
  display:flex;flex-direction:column;gap:.28rem;align-items:flex-end;text-align:right;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(233,234,230,.42);pointer-events:none;
}
.hero-hud span{display:grid;grid-template-columns:1fr auto;gap:1.1em;align-items:baseline;}
.hero-hud b{color:var(--bronze);font-weight:500;order:-1;text-align:right;}
@media (max-width:900px){.hero-hud{display:none;}}

/* scan rule: the same motif as a section divider */
.scanline{position:relative;height:1px;background:var(--line-dark);overflow:hidden;}
.light .scanline{background:var(--line-light);}
.scanline::after{
  content:"";position:absolute;top:0;left:-30%;width:30%;height:100%;
  background:linear-gradient(90deg,rgba(176,129,63,0) 0%,var(--bronze) 55%,rgba(233,234,230,.9) 78%,rgba(176,129,63,0) 100%);
  animation:scanSweep 7s cubic-bezier(.5,0,.5,1) infinite;
}
@keyframes scanSweep{0%{left:-30%;}70%{left:100%;}100%{left:100%;}}
@media (prefers-reduced-motion:reduce){.scanline::after{animation:none;left:35%;opacity:.6;}}

/* ---------- Lightbox ---------- */
.zoomable{cursor:zoom-in;position:relative;}
.zoomable::after{
  content:"";position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:2px;
  background:rgba(14,26,43,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E9EAE6' stroke-width='1.7'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M11 8.5v5M8.5 11h5M15.8 15.8 20 20'/%3E%3C/svg%3E") center/16px no-repeat;
  opacity:0;transition:opacity .18s ease;pointer-events:none;z-index:2;
}
.zoomable:hover::after,.zoomable:focus-visible::after{opacity:1;}
body.lb-locked{overflow:hidden;}
.lightbox{
  position:fixed;inset:0;z-index:300;display:none;
  background:rgba(8,14,24,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  align-items:center;justify-content:center;padding:clamp(16px,4vw,56px);
}
.lightbox.open{display:flex;}
.lb-stage{margin:0;max-width:min(1500px,100%);max-height:100%;display:flex;flex-direction:column;gap:.9rem;}
.lb-stage img{
  max-width:100%;max-height:calc(100vh - 190px);width:auto;height:auto;object-fit:contain;
  border:1px solid rgba(233,234,230,.16);border-radius:var(--r);background:#0a121e;
}
.lb-stage figcaption{
  display:flex;justify-content:space-between;gap:2rem;align-items:baseline;
  font-family:var(--mono);font-size:.76rem;line-height:1.6;letter-spacing:.05em;color:var(--steel-lt);
}
.lb-idx{color:var(--bronze-lt);white-space:nowrap;}
.lb-close,.lb-nav{
  position:absolute;z-index:2;background:rgba(233,234,230,.07);color:var(--chalk);
  border:1px solid rgba(233,234,230,.2);border-radius:var(--r);
  width:46px;height:46px;display:grid;place-items:center;cursor:pointer;
  transition:background .16s ease,border-color .16s ease;
}
.lb-close:hover,.lb-nav:hover{background:rgba(176,129,63,.22);border-color:var(--bronze);}
.lb-close svg,.lb-nav svg{width:22px;height:22px;}
.lb-close{top:clamp(12px,3vw,26px);right:clamp(12px,3vw,26px);}
.lb-nav{top:50%;transform:translateY(-50%);}
.lb-prev{left:clamp(8px,2vw,22px);}
.lb-next{right:clamp(8px,2vw,22px);}
.lightbox.lb-single .lb-nav{display:none;}
@media (max-width:640px){
  .lb-nav{top:auto;bottom:clamp(12px,3vw,20px);transform:none;}
  .lb-stage img{max-height:calc(100vh - 230px);}
}

/* ---------- Portfolio HUD ---------- */
.pitem .phud{
  position:absolute;left:0;right:0;top:0;padding:.9rem 1rem;
  display:grid;gap:.18rem;
  font-family:var(--mono);font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(233,234,230,.72);
  background:linear-gradient(180deg,rgba(14,26,43,.9) 0%,rgba(14,26,43,0) 100%);
  opacity:0;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease;
  pointer-events:none;
}
.pitem .phud span{display:grid;grid-template-columns:78px 1fr;gap:.6em;align-items:baseline;}
.pitem .phud b{color:var(--bronze-lt);font-weight:500;}
.pitem:hover .phud,.pitem:focus-visible .phud{opacity:1;transform:none;}
@media (hover:none){.pitem .phud{display:none;}}

/* ---------- Deliverable pipeline ---------- */
.pipe{width:100%;height:auto;display:block;overflow:visible;}
.pipe .pipe-track{stroke:var(--line-dark);stroke-width:1;}
.pipe .pipe-node{fill:none;stroke:rgba(233,234,230,.28);stroke-width:1.2;}
.pipe .pipe-fill{fill:rgba(233,234,230,.04);}
.pipe .pipe-t{fill:var(--chalk);font:600 15px/1 'Libre Franklin',sans-serif;}
.pipe .pipe-s{fill:var(--steel-lt);font:400 11px/1 'IBM Plex Mono',monospace;letter-spacing:.1em;}
.pipe .pipe-n{fill:var(--bronze);font:500 10px/1 'IBM Plex Mono',monospace;letter-spacing:.16em;}
.pipe .pipe-sweep{fill:url(#pipeGrad);}
@keyframes pipeMove{0%{transform:translateX(-240px);}70%{transform:translateX(1220px);}100%{transform:translateX(1220px);}}
.pipe .pipe-sweep{animation:pipeMove 9s cubic-bezier(.45,0,.55,1) infinite;}
@keyframes pipeGlow{
  0%,7%{stroke:rgba(233,234,230,.28);}
  11%{stroke:var(--bronze-lt);}
  26%{stroke:rgba(233,234,230,.4);}
  55%,100%{stroke:rgba(233,234,230,.28);}
}
.pipe .pipe-node{animation:pipeGlow 9s linear infinite;}
.pipe g:nth-of-type(1) .pipe-node{animation-delay:0s;}
.pipe g:nth-of-type(2) .pipe-node{animation-delay:1.5s;}
.pipe g:nth-of-type(3) .pipe-node{animation-delay:3s;}
.pipe g:nth-of-type(4) .pipe-node{animation-delay:4.5s;}
@keyframes pipeDash{to{stroke-dashoffset:-24;}}
.pipe .pipe-track{stroke-dasharray:2 6;animation:pipeDash 2.4s linear infinite;}
@media (prefers-reduced-motion:reduce){
  .pipe .pipe-sweep{animation:none;transform:translateX(560px);}
  .pipe .pipe-node,.pipe .pipe-track{animation:none;}
}

/* ---------- Mono readout strip ---------- */
.hudstrip{
  display:flex;flex-wrap:wrap;gap:.5rem 2.2rem;
  padding:.95rem 0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--steel-lt);
}
.light .hudstrip{border-color:var(--line-light);color:var(--steel-deep);}
.hudstrip b{color:var(--bronze-deep);font-weight:500;margin-right:.75em;}
.pipewrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.pipewrap .pipe{min-width:900px;}

/* ---------- Sensor cards ---------- */
.sensor{
  border:1px solid var(--line-dark);border-radius:var(--r);
  padding:clamp(20px,2.4vw,28px);background:rgba(233,234,230,.035);
}
.light .sensor{border-color:var(--line-light);background:#fff;}
.sensor-h{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;}
.sensor-k{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--steel-lt);margin-top:.4rem;}
.sensor p{font-size:.94rem;line-height:1.6;margin:0;}
.sensor .chip{flex:0 0 auto;}

/* ---------- Brand lockup: mark + live type ----------
   The supplied lockup SVG has the wordmark outlined, which leaves the
   REALITY CAPTURE subline about four pixels tall in a header. Set as real
   Libre Franklin it stays legible down to a phone. */
.brand-lockup{display:inline-flex;align-items:center;gap:.62em;line-height:1;}
.brand-mark{flex:0 0 auto;display:block;}
.brand-type{display:flex;flex-direction:column;justify-content:center;}
.brand-word{
  display:block;font-family:var(--font);font-weight:600;color:var(--chalk);
  text-transform:uppercase;line-height:1;white-space:nowrap;
}
.brand-sub{
  display:block;font-family:var(--font);font-weight:500;color:var(--bronze-lt);
  text-transform:uppercase;line-height:1;white-space:nowrap;
}
.light .brand-word{color:var(--ink);}
.light .brand-sub{color:var(--bronze-deep);}

.brand-lockup--header .brand-mark{width:42px;height:42px;}
.brand-lockup--header .brand-word{font-size:23px;letter-spacing:.185em;}
.brand-lockup--header .brand-sub{font-size:10px;letter-spacing:.335em;margin-top:6px;}

.brand-lockup--footer .brand-mark{width:52px;height:52px;}
.brand-lockup--footer .brand-word{font-size:28px;letter-spacing:.185em;}
.brand-lockup--footer .brand-sub{font-size:11.5px;letter-spacing:.35em;margin-top:7px;}

@media (max-width:640px){
  .brand-lockup--header .brand-mark{width:34px;height:34px;}
  .brand-lockup--header .brand-word{font-size:19px;letter-spacing:.17em;}
  .brand-lockup--header .brand-sub{font-size:9px;letter-spacing:.29em;margin-top:5px;}
}
@media (max-width:380px){
  .brand-lockup--header .brand-word{font-size:17px;}
  .brand-lockup--header .brand-sub{font-size:8.5px;letter-spacing:.24em;}
}
.site-header .bar{height:84px;}
@media (max-width:640px){.site-header .bar{height:70px;}}
.site-footer .flogo{margin-bottom:1.4rem;}

/* ---------- Software list inside a card ---------- */
.swlist{margin:.4rem 0 0;display:grid;gap:.9rem;}
.swlist dt{font-weight:700;font-size:.95rem;letter-spacing:-.008em;}
.light .swlist dt{color:var(--ink);}
.dark .swlist dt{color:var(--chalk);}
.swlist dd{margin:.25rem 0 0;font-size:.88rem;line-height:1.55;color:rgba(14,26,43,.72);}
.dark .swlist dd{color:var(--steel-lt);}

/* ---------- Scan fields ---------- */
.scanfield canvas{width:100%;height:100%;display:block;}
.phero--scan{position:relative;overflow:hidden;}
.phero--scan .phero-scan{position:absolute;inset:0;z-index:0;pointer-events:none;}
.phero--scan .phero-scan::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(14,26,43,.96) 0%,rgba(14,26,43,.72) 38%,rgba(14,26,43,.1) 82%,rgba(14,26,43,0) 100%),
    linear-gradient(180deg,rgba(14,26,43,.45) 0%,rgba(14,26,43,0) 34%,rgba(14,26,43,0) 78%,rgba(14,26,43,.7) 100%);
}
.phero--scan .phero-inner{position:relative;z-index:1;}

/* ---------- Full width scan band ---------- */
.scanband{position:relative;overflow:hidden;background:var(--ink);min-height:clamp(380px,46vw,540px);display:flex;flex-direction:column;justify-content:center;}
.scanband-field{position:absolute;inset:0;z-index:0;}
.scanband-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(14,26,43,.96) 0%,rgba(14,26,43,.82) 34%,rgba(14,26,43,.18) 68%,rgba(14,26,43,0) 100%),
    linear-gradient(180deg,rgba(14,26,43,.55) 0%,rgba(14,26,43,0) 30%,rgba(14,26,43,0) 74%,rgba(14,26,43,.9) 100%);
}
.scanband-inner{position:relative;z-index:2;padding-block:clamp(56px,7vw,88px);max-width:var(--wrap);}
.scanband-inner .h2{max-width:17ch;}
.scanband-inner .lede{max-width:52ch;margin-top:1rem;}
.scanband-rail{
  position:relative;z-index:2;width:100%;max-width:var(--wrap);margin-inline:auto;
  padding:0 var(--gut) clamp(20px,3vw,30px);
  display:flex;flex-wrap:wrap;gap:.45rem 2.2rem;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(233,234,230,.62);
}
.scanband-rail b{color:var(--bronze-lt);font-weight:500;margin-right:.7em;}
@media (max-width:700px){.scanband-rail span:nth-child(n+3){display:none;}}

/* stronger scan divider */
.scanline{height:2px;}
.scanline::after{
  width:34%;left:-34%;
  background:linear-gradient(90deg,
    rgba(176,129,63,0) 0%,rgba(176,129,63,.55) 45%,var(--bronze) 72%,
    rgba(233,234,230,1) 86%,rgba(176,129,63,0) 100%);
  box-shadow:0 0 12px rgba(201,154,85,.45);
}
@keyframes scanSweep{0%{left:-34%;}68%{left:100%;}100%{left:100%;}}

/* ---------- Footer tagline ---------- */
.site-footer .ftag{
  font-family:var(--font);font-size:1.05rem;font-weight:600;letter-spacing:-.012em;
  color:var(--bronze-lt);margin:0 0 1rem;
}
