
/* ============================================================
   ELITE ACCESS · design tokens
   dark ground = turbine hall (graphite + machined brass)
   light ground = clinical limestone
   ============================================================ */
:root{
  --ground:#E8E9E6; --ground-2:#F1F2EF; --surface:#FCFCFB; --surface-2:#F5F6F3;
  --ink:#0F1518; --ink-2:#4B585D; --ink-3:#7C8A90;
  --brass:#8C6725; --brass-2:#A87F35; --brass-wash:rgba(140,103,37,.10);
  --line:rgba(15,21,24,.15); --line-2:rgba(15,21,24,.075);
  --sig:#2F6E6A; --sig-wash:rgba(47,110,106,.12);
  --shadow-1:0 1px 2px rgba(15,21,24,.06);
  --shadow-2:0 2px 4px rgba(15,21,24,.04), 0 18px 40px -22px rgba(15,21,24,.35);
  --shadow-3:0 40px 90px -40px rgba(15,21,24,.45);
  --plate:linear-gradient(158deg,#DFE1DD 0%,#EDEEEB 38%,#D9DBD7 100%);
  --nav-bg:rgba(232,233,230,.82);

  --font-display:"Bodoni MT","Didot","Didot LT STD","Hoefler Text","Playfair Display",Georgia,"Times New Roman",serif;
  --font-body:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"Consolas","SF Mono","Menlo","Roboto Mono","DejaVu Sans Mono","Courier New",monospace;

  --pad:clamp(4.25rem,8vw,7.5rem);
  --nav-h:80px;
  --r:3px;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#0C1113; --ground-2:#101719; --surface:#151E22; --surface-2:#192428;
    --ink:#E9EDEC; --ink-2:#9FAFB4; --ink-3:#6C7C82;
    --brass:#C9A063; --brass-2:#DCBA85; --brass-wash:rgba(201,160,99,.13);
    --line:rgba(198,220,226,.15); --line-2:rgba(198,220,226,.08);
    --sig:#5FA9A2; --sig-wash:rgba(95,169,162,.14);
    --shadow-1:0 1px 2px rgba(0,0,0,.4);
    --shadow-2:0 2px 4px rgba(0,0,0,.3), 0 18px 40px -22px rgba(0,0,0,.8);
    --shadow-3:0 40px 90px -40px rgba(0,0,0,.9);
    --plate:linear-gradient(158deg,#182226 0%,#1E2A2F 38%,#131B1E 100%);
    --nav-bg:rgba(12,17,19,.76);
  }
}
:root[data-theme="dark"]{
  --ground:#0C1113; --ground-2:#101719; --surface:#151E22; --surface-2:#192428;
  --ink:#E9EDEC; --ink-2:#9FAFB4; --ink-3:#6C7C82;
  --brass:#C9A063; --brass-2:#DCBA85; --brass-wash:rgba(201,160,99,.13);
  --line:rgba(198,220,226,.15); --line-2:rgba(198,220,226,.08);
  --sig:#5FA9A2; --sig-wash:rgba(95,169,162,.14);
  --shadow-1:0 1px 2px rgba(0,0,0,.4);
  --shadow-2:0 2px 4px rgba(0,0,0,.3), 0 18px 40px -22px rgba(0,0,0,.8);
  --shadow-3:0 40px 90px -40px rgba(0,0,0,.9);
  --plate:linear-gradient(158deg,#182226 0%,#1E2A2F 38%,#131B1E 100%);
  --nav-bg:rgba(12,17,19,.76);
}
:root[data-theme="light"]{
  --ground:#E8E9E6; --ground-2:#F1F2EF; --surface:#FCFCFB; --surface-2:#F5F6F3;
  --ink:#0F1518; --ink-2:#4B585D; --ink-3:#7C8A90;
  --brass:#8C6725; --brass-2:#A87F35; --brass-wash:rgba(140,103,37,.10);
  --line:rgba(15,21,24,.15); --line-2:rgba(15,21,24,.075);
  --sig:#2F6E6A; --sig-wash:rgba(47,110,106,.12);
  --shadow-1:0 1px 2px rgba(15,21,24,.06);
  --shadow-2:0 2px 4px rgba(15,21,24,.04), 0 18px 40px -22px rgba(15,21,24,.35);
  --shadow-3:0 40px 90px -40px rgba(15,21,24,.45);
  --plate:linear-gradient(158deg,#DFE1DD 0%,#EDEEEB 38%,#D9DBD7 100%);
  --nav-bg:rgba(232,233,230,.82);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:112.5%;-webkit-text-size-adjust:100%}   /* 18px base, easier on older eyes */
body{
  margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);
  font-size:1.0625rem;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
ul{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
[hidden]{display:none !important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}   /* spam honeypot */
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
::selection{background:var(--brass);color:var(--ground)}

.wrap{width:min(1290px,100% - 2.75rem);margin-inline:auto}
@media (max-width:640px){.wrap{width:min(1290px,100% - 1.75rem)}}
.sec{padding-block:var(--pad);position:relative}
.sec--tint{background:var(--ground-2)}
.sec--tight{padding-block:clamp(3rem,5.5vw,4.5rem)}

h1,h2,h3,.display{font-family:var(--font-display);font-weight:400;text-wrap:balance}
.h1{font-size:clamp(2.6rem,6vw,5rem);line-height:1;letter-spacing:-.026em}
.h2{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.03;letter-spacing:-.018em;margin-top:1.1rem}
.h3{font-size:clamp(1.3rem,1.9vw,1.55rem);line-height:1.16;letter-spacing:-.008em}
.h4{font-size:1.1rem;line-height:1.25;font-family:var(--font-display);font-weight:400}
.lede{color:var(--ink-2);font-size:clamp(1.04rem,1.3vw,1.18rem);line-height:1.6;max-width:56ch}
.muted{color:var(--ink-2)}
.eyebrow{
  font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass);display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--brass);flex:none;opacity:.7}
.eyebrow--c{justify-content:center}
.label{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(1.5rem,5vw,5rem);align-items:end}
@media (max-width:900px){.sec-head{grid-template-columns:1fr;gap:1.25rem;align-items:start}}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.6rem;border:1px solid transparent;border-radius:var(--r);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  cursor:pointer;background:none;transition:background .25s,color .25s,border-color .25s,transform .2s;
}
.btn--primary{background:var(--brass);border-color:var(--brass);color:var(--surface)}
.btn--primary:hover{background:var(--brass-2);border-color:var(--brass-2)}
.btn--ghost{border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:var(--brass);color:var(--brass)}
.btn--onDark{border-color:rgba(242,240,236,.35);color:#F2F0EC}
.btn--onDark:hover{border-color:#D3A967;color:#D3A967}
.onDark .btn.btn--primary{background:#C9A063;border-color:#C9A063;color:#0C1113}
.onDark .btn.btn--primary:hover{background:#DCBA85;border-color:#DCBA85}
.btn:active{transform:translateY(1px)}
.btn__ar{transition:transform .25s}
.btn:hover .btn__ar{transform:translateX(3px)}
.tlink{
  display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass);padding-block:.3rem;
  border-bottom:1px solid transparent;transition:border-color .25s;
}
.tlink:hover{border-bottom-color:var(--brass)}
.tlink svg{width:13px;height:13px;transition:transform .25s}
.tlink:hover svg{transform:translateX(3px)}

.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}
.skip{
  position:fixed;top:.5rem;left:.5rem;z-index:200;transform:translateY(-160%);
  background:var(--brass);color:var(--surface);padding:.7rem 1.1rem;border-radius:var(--r);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;transition:transform .2s;
}
.skip:focus{transform:none}

/* ============================================================
   PRELOADER
   ============================================================ */
#preloader{position:fixed;inset:0;z-index:300;background:#080C0E;color:#E9EDEC;display:grid;place-items:center;overflow:hidden}
#preloader::before{content:"";position:absolute;inset:0;background:radial-gradient(115% 85% at 50% 46%,rgba(201,160,99,.13),transparent 64%)}
#preloader::after{content:"";position:absolute;inset:clamp(14px,2.2vw,30px);border:1px solid rgba(201,160,99,.16)}
.pl__inner{position:relative;z-index:2;width:min(500px,84vw);text-align:center}
.pl__ring{position:absolute;left:50%;top:50%;width:min(560px,86vw);aspect-ratio:1;z-index:1;transform:translate(-50%,-50%)}
.pl__ring circle{fill:none;stroke:rgba(201,160,99,.18);stroke-width:.5}
.pl__ring .arc{fill:none;stroke:#C9A063;stroke-width:1;stroke-linecap:round;stroke-dasharray:40 260;transform-origin:50% 50%;animation:plSpin 2.6s linear infinite}
@keyframes plSpin{to{transform:rotate(360deg)}}
.pl__mark{font-family:var(--font-display);font-size:clamp(1.9rem,5.6vw,3.3rem);line-height:1;letter-spacing:.03em;color:#FAF8F4;white-space:nowrap}
.pl__mark span{display:inline-block;opacity:0;transform:translateY(16px);animation:plIn .8s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes plIn{to{opacity:1;transform:none}}
.pl__rule{width:44px;height:1px;background:#C9A063;margin:1.15rem auto 0;transform:scaleX(0);animation:plRule .8s .7s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes plRule{to{transform:scaleX(1)}}
.pl__sub{margin-top:1.05rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.36em;text-transform:uppercase;color:#8FA1A7;opacity:0;animation:plIn .7s .85s forwards}
.pl__bar{position:relative;height:1px;background:rgba(233,237,236,.16);margin-top:3rem;overflow:hidden}
.pl__bar i{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#8A6A34,#C9A063 60%,#E6C48C);transition:transform .18s linear}
.pl__meta{display:flex;justify-content:space-between;align-items:center;margin-top:.9rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.2em;color:#6C7C82}
.pl__meta b{color:#C9A063;font-weight:400}
#preloader.is-done{transform:translateY(-101%);transition:transform 1.05s cubic-bezier(.76,0,.24,1)}
#preloader.is-done .pl__inner{opacity:0;transform:translateY(-18px);transition:opacity .45s,transform .6s cubic-bezier(.76,0,.24,1)}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;border-bottom:1px solid transparent;transition:background .35s,border-color .35s}
.nav__in{display:flex;align-items:center;gap:2rem;width:100%}
.nav.is-stuck{background:var(--nav-bg);backdrop-filter:blur(16px) saturate(1.4);border-bottom-color:var(--line-2)}
.nav.is-top{color:#F2F0EC}
.brand{display:flex;align-items:center;gap:.7rem;flex:none}
.brand__glyph{width:26px;height:26px;flex:none}
.brand__txt{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.06em;line-height:1}
.brand__txt b{font-weight:400}
.brand__sub{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6;display:block;margin-top:.24rem}
.nav__links{display:flex;gap:1.75rem;margin-left:auto}
.nav__link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;position:relative;padding-block:.4rem;opacity:.78;transition:opacity .25s,color .25s}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.4,0,.2,1)}
.nav__link:hover{opacity:1}
.nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1);transform-origin:left}
.nav__link.is-active{opacity:1;color:var(--brass)}
.nav.is-top .nav__link.is-active{color:#D3A967}
.nav__actions{display:flex;align-items:center;gap:.6rem;flex:none}
.enqBtn{display:inline-flex;align-items:center;gap:.55rem;padding:.66rem 1.05rem;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;background:none;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;transition:border-color .25s,color .25s}
.nav.is-top .enqBtn{border-color:rgba(242,240,236,.32)}
.enqBtn:hover{border-color:var(--brass);color:var(--brass)}
.nav.is-top .enqBtn:hover{border-color:#D3A967;color:#D3A967}
.enqBtn__n{min-width:19px;height:19px;padding-inline:5px;border-radius:99px;background:var(--brass);color:var(--surface);display:grid;place-items:center;font-size:.64rem;letter-spacing:0;font-variant-numeric:tabular-nums}
.nav.is-top .enqBtn__n{background:#D3A967;color:#0C1113}
.enqBtn.is-pulse{animation:pulse .5s ease}
@keyframes pulse{0%,100%{transform:none}40%{transform:scale(1.06)}}
.burger{display:none;position:relative;width:42px;height:42px;border:1px solid var(--line);border-radius:var(--r);background:none;cursor:pointer}
.nav.is-top .burger{border-color:rgba(242,240,236,.32)}
/* bars are absolutely placed so the open state crosses exactly, at any button size */
.burger i{position:absolute;left:50%;width:16px;height:1px;margin-left:-8px;background:currentColor;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s}
.burger i:nth-child(1){top:calc(50% - 5px)}
.burger i:nth-child(2){top:50%}
.burger i:nth-child(3){top:calc(50% + 5px)}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media (max-width:1080px){.nav__links{display:none}.burger{display:grid}}
@media (max-width:620px){
  .nav__in{gap:.7rem}
  .brand__glyph{width:22px;height:22px}
  .brand__txt{font-size:.98rem}
  .brand__sub{display:none}
  .enqBtn{padding:.58rem .7rem;font-size:.64rem;gap:.42rem}
  .enqBtn__n{min-width:17px;height:17px;font-size:.64rem}
  .burger{width:38px;height:38px}
}
.mobile{position:fixed;inset:var(--nav-h) 0 auto 0;z-index:99;background:var(--ground);border-bottom:1px solid var(--line-2);display:grid;overflow:hidden;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1)}
.mobile.is-open{grid-template-rows:1fr}
.mobile__in{min-height:0;overflow:hidden}
.mobile ul{padding:1rem 0 1.6rem;display:grid}
.mobile a{padding:.85rem 0;border-bottom:1px solid var(--line-2);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.mobile a span{color:var(--brass);font-size:.64rem}

/* ============================================================
   PAGES / ROUTING
   ============================================================ */
.page{display:none}
.page.is-on{display:block;animation:pageIn .55s cubic-bezier(.2,.7,.2,1)}
@keyframes pageIn{from{opacity:0;transform:translateY(14px)}}

/* page masthead used on every inner page */
.mast{position:relative;overflow:hidden;background:#0A0F11;color:#F2F0EC;isolation:isolate;min-height:clamp(400px,54vw,600px);display:flex;align-items:flex-end}
.mast img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:0;transition:opacity 1.3s ease;filter:saturate(.62) contrast(1.06)}
.mast img.is-in{opacity:.72}
.mast::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(6,10,12,.94) 0%,rgba(6,10,12,.7) 46%,rgba(6,10,12,.34) 78%,rgba(6,10,12,.6) 100%),linear-gradient(to top,rgba(6,10,12,.92),transparent 46%)}
.mast__grid{position:absolute;inset:0;z-index:-1;opacity:.12;background-image:linear-gradient(to right,rgba(211,169,103,.5) 1px,transparent 1px);background-size:calc(100% / 12) 100%}
.mast__in{width:100%;padding-block:calc(var(--nav-h) + 4rem) clamp(2.6rem,5vw,4rem)}
.mast .eyebrow{color:#D3A967}
.mast .eyebrow::before{background:#D3A967}
.mast h1{color:#FAF8F4;margin-top:1.4rem;max-width:18ch}
.mast__lede{margin-top:1.5rem;max-width:56ch;color:#C3CDD1;font-size:clamp(1.02rem,1.3vw,1.16rem);line-height:1.62}
.mast__foot{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;align-items:center;margin-top:clamp(2rem,4vw,3rem);padding-top:1.4rem;border-top:1px solid rgba(242,240,236,.16)}
.mast__fact{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#8FA1A7}
.mast__fact b{display:block;font-family:var(--font-display);font-size:1.6rem;letter-spacing:-.01em;color:#FAF8F4;font-weight:400;margin-bottom:.3rem;font-variant-numeric:tabular-nums}
.mast__code{position:absolute;right:clamp(1rem,3vw,2.6rem);top:calc(var(--nav-h) + 2rem);z-index:1;writing-mode:vertical-rl;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(211,169,103,.7)}
@media (max-width:760px){.mast__code{display:none}}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.is-in{opacity:1;transform:none}


/* ============================================================
   HOME HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#0C1113;color:#F2F0EC;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media canvas{position:absolute;inset:0;width:100%;height:100%}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease .1s;filter:saturate(.72) contrast(1.06)}
.hero__media img.is-in{opacity:.9}
.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(to right,rgba(8,12,14,.94) 0%,rgba(8,12,14,.74) 38%,rgba(8,12,14,.25) 70%,rgba(8,12,14,.55) 100%),linear-gradient(to top,rgba(8,12,14,.96) 0%,rgba(8,12,14,.2) 42%,rgba(8,12,14,.5) 100%)}
.hero__grid{position:absolute;inset:0;z-index:-1;opacity:.14;background-image:linear-gradient(to right,rgba(211,169,103,.5) 1px,transparent 1px);background-size:calc(100% / 12) 100%}
.hero__in{width:100%;padding-block:calc(var(--nav-h) + 3rem) clamp(2.2rem,5vw,3.4rem)}
.hero__body{max-width:min(64ch,100%)}
.hero h1{font-size:clamp(2.85rem,6.6vw,5.9rem);line-height:.96;letter-spacing:-.026em;margin-top:1.5rem;color:#FAF8F4}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:block;transform:translateY(105%);animation:riseIn 1s cubic-bezier(.2,.75,.2,1) forwards}
@keyframes riseIn{to{transform:none}}
.hero__lede{margin-top:1.6rem;max-width:54ch;color:#C3CDD1;font-size:clamp(1.02rem,1.35vw,1.2rem);line-height:1.62}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.3rem}
.hero .eyebrow{color:#D3A967}
.hero .eyebrow::before{background:#D3A967}
.hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:clamp(3rem,7vw,5rem);border-top:1px solid rgba(242,240,236,.16)}
.hero__stat{padding:1.35rem 1.2rem 0 0}
.hero__stat b{display:block;font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.5rem);line-height:1;letter-spacing:-.02em;color:#FAF8F4;font-weight:400;font-variant-numeric:tabular-nums}
.hero__stat span{display:block;margin-top:.55rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#8FA1A7;line-height:1.5}
@media (max-width:760px){.hero__stats{grid-template-columns:repeat(2,1fr);row-gap:1.4rem;border-top:0}.hero__stat{padding-top:1.1rem;border-top:1px solid rgba(242,240,236,.1)}}
.hero__callouts{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero__callouts svg{position:absolute;inset:0;width:100%;height:100%}
.hero__callouts line{stroke:#D3A967;fill:none;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:220;stroke-dashoffset:220;animation:draw 1.1s cubic-bezier(.4,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.callout{position:absolute;transform:translateY(6px);opacity:0;animation:coIn .6s ease forwards;font-family:var(--font-mono);text-transform:uppercase;border-left:1px solid rgba(211,169,103,.5);padding-left:.7rem}
@keyframes coIn{to{opacity:1;transform:none}}
.callout b{display:block;font-size:1.02rem;letter-spacing:.02em;color:#F2F0EC;font-weight:400;font-variant-numeric:tabular-nums}
.callout span{display:block;font-size:.64rem;letter-spacing:.2em;color:#A2AEB2;margin-top:.2rem}
@media (max-width:1180px){.hero__callouts{display:none}}
.hero__scroll{position:absolute;right:clamp(1rem,2.5vw,2.2rem);bottom:clamp(2.2rem,5vw,3.4rem);z-index:2;writing-mode:vertical-rl;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:#8FA1A7;display:flex;align-items:center;gap:.9rem}
.hero__scroll::after{content:"";width:1px;height:52px;background:linear-gradient(#D3A967,transparent)}
@media (max-width:980px){.hero__scroll{display:none}}

/* ---------- ticker ---------- */
.ticker{border-block:1px solid var(--line-2);overflow:hidden;background:var(--ground-2)}
.ticker__track{display:flex;width:max-content;animation:slide 46s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.ticker__set{display:flex;flex:none}
.ticker__item{display:flex;align-items:center;gap:1.1rem;padding:1.05rem 1.6rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.ticker__item::after{content:"";width:3px;height:3px;background:var(--brass);border-radius:50%;flex:none}

/* ============================================================
   SHARED BLOCKS
   ============================================================ */
/* sector tiles */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:clamp(2.4rem,5vw,3.6rem)}
@media (max-width:960px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.tiles{grid-template-columns:1fr}}
.tile{position:relative;display:block;overflow:hidden;border-radius:var(--r);background:var(--plate);border:1px solid var(--line-2);aspect-ratio:5/6;isolation:isolate;transition:border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1)}
.tile:hover{border-color:var(--brass);transform:translateY(-4px)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:0;transform:scale(1.06);filter:saturate(.55) contrast(1.06);transition:opacity 1s ease,transform 1.6s cubic-bezier(.2,.7,.2,1),filter .6s}
.tile img.is-in{opacity:.9;transform:none}
.tile:hover img{transform:scale(1.05);filter:saturate(.85) contrast(1.04);opacity:1}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,10,12,.94) 6%,rgba(6,10,12,.34) 52%,rgba(6,10,12,.55) 100%)}
.tile__in{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:.6rem;padding:1.4rem;color:#F2F0EC}
.tile__code{position:absolute;top:1.2rem;left:1.4rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.22em;color:#D3A967}
.tile__ico{position:absolute;top:1rem;right:1.2rem;width:32px;height:32px;color:#D3A967;opacity:.8}
.tile h3{font-size:1.32rem;line-height:1.14;color:#FAF8F4}
.tile p{font-size:.92rem;color:#B6C1C5;line-height:1.55}
.tile__go{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:#D3A967;display:flex;align-items:center;gap:.5rem;margin-top:.3rem}
.tile__go svg{width:12px;height:12px;transition:transform .3s}
.tile:hover .tile__go svg{transform:translateX(4px)}

/* feature rows (alternating image + copy) */
.frow{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(1.8rem,4.5vw,4.5rem);align-items:center;padding-block:clamp(2.4rem,5vw,4rem);border-top:1px solid var(--line-2)}
.frow:first-of-type{border-top:0}
.frow--flip .frow__media{order:2}
@media (max-width:900px){.frow{grid-template-columns:1fr;gap:1.6rem}.frow--flip .frow__media{order:0}}
.frow__media{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--plate);border:1px solid var(--line-2)}
.frow__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);filter:saturate(.68) contrast(1.05);transition:opacity 1s ease,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.frow__media img.is-in{opacity:1;transform:none}
.frow__tag{position:absolute;left:0;bottom:0;background:rgba(6,10,12,.82);color:#E4E9EA;padding:.55rem .9rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;backdrop-filter:blur(6px)}
.frow__tag b{color:#D3A967;font-weight:400}
.frow__body h3{margin-top:.9rem}
.frow__body>p{color:var(--ink-2);margin-top:1rem;max-width:52ch}
.dlist{margin-top:1.7rem;border-top:1px solid var(--line-2)}
.dlist li{display:flex;gap:1rem;align-items:baseline;padding:.8rem 0;border-bottom:1px solid var(--line-2);font-size:.94rem;color:var(--ink-2)}
.dlist li b{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:400;flex:none;width:4.2rem}

/* stat strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border-block:1px solid var(--line-2)}
@media (max-width:760px){.strip{grid-template-columns:repeat(2,1fr)}}
.strip div{background:var(--ground);padding:clamp(1.4rem,2.6vw,2.2rem) 1.2rem}
.sec--tint .strip div{background:var(--ground-2)}
.strip b{display:block;font-family:var(--font-display);font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1;letter-spacing:-.02em;font-weight:400;font-variant-numeric:tabular-nums}
.strip span{display:block;margin-top:.6rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);line-height:1.6}

/* cards grid (capabilities, facilities) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:clamp(2.4rem,5vw,3.4rem)}
@media (max-width:960px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.cards{grid-template-columns:1fr}}
.pcard{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.pcard:hover{border-color:var(--line);transform:translateY(-3px);box-shadow:var(--shadow-2)}
.pcard__media{position:relative;aspect-ratio:16/10;background:var(--plate);overflow:hidden;border-bottom:1px solid var(--line-2)}
.pcard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);filter:saturate(.6) contrast(1.06);transition:opacity .9s,transform 1.5s cubic-bezier(.2,.7,.2,1),filter .5s}
.pcard__media img.is-in{opacity:1;transform:none}
.pcard:hover .pcard__media img{transform:scale(1.04);filter:saturate(.9)}
.pcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,12,14,.5),transparent 55%)}
.pcard__ico{position:absolute;left:.9rem;bottom:.75rem;z-index:1;width:30px;height:30px;color:#D3A967;filter:drop-shadow(0 2px 8px rgba(0,0,0,.8))}
.pcard__body{padding:1.25rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.pcard__body p{color:var(--ink-2);font-size:.94rem}
.pcard__body .label{margin-bottom:-.2rem}

/* numbered steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:clamp(2.4rem,5vw,3.6rem);background:var(--line-2);border-top:1px solid var(--line-2)}
.step{background:var(--ground);padding:1.9rem 1.6rem 2.1rem;display:grid;gap:.6rem;align-content:start}
.sec--tint .step{background:var(--ground-2)}
.step__n{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.2em;color:var(--brass);display:flex;align-items:center;gap:.7rem}
.step__n::after{content:"";height:1px;flex:1;background:var(--line-2)}
.step h3{font-size:1.12rem;margin-top:.3rem}
.step p{color:var(--ink-2);font-size:.94rem;max-width:38ch}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.steps{grid-template-columns:1fr}}

/* gallery mosaic */
.gal{background:#0A0F11;color:#F2F0EC;position:relative;overflow:hidden}
.gal::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 82% 6%,rgba(201,160,99,.10),transparent 60%)}
.gal .eyebrow{color:#D3A967}
.gal .eyebrow::before{background:#D3A967}
.gal .h2{color:#FAF8F4}
.gal .lede{color:#B6C1C5}
.gal__grid{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-top:clamp(2.4rem,5vw,3.6rem)}
.gitem{position:relative;overflow:hidden;border-radius:2px;background:#131B1E;border:1px solid rgba(198,220,226,.09)}
.gitem img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.07);filter:saturate(.6) contrast(1.06);transition:opacity 1s,transform 1.8s cubic-bezier(.2,.7,.2,1),filter .7s}
.gitem img.is-in{opacity:.94;transform:none}
.gitem:hover img{transform:scale(1.05);filter:saturate(.9);opacity:1}
.gitem::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,10,12,.82),transparent 52%)}
.gitem figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1rem 1.1rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#E4E9EA;display:flex;align-items:baseline;gap:.7rem}
.gitem figcaption b{color:#D3A967;font-weight:400;flex:none}
.gitem--a{grid-column:span 7;aspect-ratio:16/10}
.gitem--b{grid-column:span 5;aspect-ratio:16/10}
.gitem--c,.gitem--d,.gitem--e{grid-column:span 4;aspect-ratio:1}
.gitem--f{grid-column:span 12;aspect-ratio:24/7}
@media (max-width:900px){.gitem--a,.gitem--b{grid-column:span 12;aspect-ratio:16/10}.gitem--c,.gitem--d,.gitem--e{grid-column:span 6}.gitem--f{aspect-ratio:16/8}}
@media (max-width:560px){.gal__grid{gap:9px}.gitem--c,.gitem--d,.gitem--e{grid-column:span 12;aspect-ratio:4/3}.gitem--f{aspect-ratio:16/10}}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.15rem;margin-top:clamp(2.4rem,5vw,3.6rem)}
@media (max-width:960px){.quotes{grid-template-columns:1fr}}
.quote{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:clamp(1.5rem,2.6vw,2rem);display:flex;flex-direction:column;gap:1.3rem}
.quote__mark{font-family:var(--font-display);font-size:2.6rem;line-height:.6;color:var(--brass);opacity:.5;height:1.1rem}
.quote p{font-size:1.02rem;line-height:1.6;color:var(--ink)}
.quote footer{margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line-2);display:flex;align-items:center;gap:.85rem}
.quote__ph{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--line);opacity:0;transition:opacity .8s;filter:saturate(.8)}
.quote__ph.is-in{opacity:1}
.quote cite{font-style:normal;display:block;font-size:.92rem}
.quote small{display:block;margin-top:.3rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);line-height:1.5}

/* closing band */
.closer{position:relative;overflow:hidden;background:#0C1113;color:#F2F0EC;isolation:isolate;text-align:center}
.closer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s;z-index:-2;filter:saturate(.55) contrast(1.05)}
.closer img.is-in{opacity:.4}
.closer::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(90% 120% at 50% 100%,rgba(201,160,99,.14),transparent 60%),linear-gradient(rgba(8,12,14,.88),rgba(8,12,14,.94))}
.closer__in{padding-block:clamp(4.5rem,10vw,8rem);display:grid;justify-items:center;gap:1.4rem}
.closer h2{font-size:clamp(2.1rem,5.4vw,4.2rem);line-height:1.02;letter-spacing:-.024em;color:#FAF8F4;max-width:17ch}
.closer p{color:#C3CDD1;max-width:50ch}
.closer .hero__cta{justify-content:center}
.closer__line{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:#8FA1A7;margin-top:.6rem}


/* ============================================================
   CATALOGUE
   ============================================================ */
.catbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding-bottom:1.1rem;border-bottom:1px solid var(--line-2)}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{border:1px solid var(--line);background:none;border-radius:99px;cursor:pointer;padding:.5rem .95rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);transition:all .25s}
.chip:hover{border-color:var(--brass);color:var(--brass)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.search{position:relative;display:flex;align-items:center;min-width:min(290px,100%)}
.search svg{position:absolute;left:.75rem;width:15px;height:15px;color:var(--ink-3);pointer-events:none}
.search input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.62rem .8rem .62rem 2.15rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;transition:border-color .25s}
.search input::placeholder{color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em;font-size:.65rem}
.search input:focus{border-color:var(--brass);outline:none}
.catcount{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding-top:1rem;font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(292px,1fr));gap:1.15rem;margin-top:1.3rem}
.card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.card:hover{border-color:var(--line);transform:translateY(-3px);box-shadow:var(--shadow-2)}
.card.is-tagged{border-color:var(--brass)}
.card__plate{position:relative;aspect-ratio:16/9;background:var(--plate);border-bottom:1px solid var(--line-2);overflow:hidden}
.card__plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);filter:saturate(.6) contrast(1.06);transition:opacity .9s,transform 1.4s cubic-bezier(.2,.7,.2,1),filter .55s}
.card__plate img.is-in{opacity:1;transform:none}
.card:hover .card__plate img{transform:scale(1.05);filter:saturate(.9) contrast(1.05)}
.card__plate::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,12,14,.62),rgba(8,12,14,.06) 58%,rgba(8,12,14,.28))}
.card__glyph{position:absolute;left:.6rem;bottom:.55rem;z-index:2;width:26px;height:26px;color:#D3A967;filter:drop-shadow(0 2px 7px rgba(0,0,0,.85));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card:hover .card__glyph{transform:rotate(8deg) scale(1.08)}
.card__code{position:absolute;right:.7rem;bottom:.5rem;z-index:2;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.2em;color:#F2F0EC;text-shadow:0 1px 8px rgba(0,0,0,.9)}
.card__body{padding:1.15rem 1.15rem 1.25rem;display:flex;flex-direction:column;gap:.72rem;flex:1}
.card__top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.pill{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:.28rem .5rem;border-radius:2px;border:1px solid var(--line);color:var(--ink-3)}
.pill--sector{color:var(--brass);border-color:var(--brass-wash);background:var(--brass-wash)}
.pill--stat{display:inline-flex;align-items:center;gap:.4rem;border-color:transparent;background:var(--sig-wash);color:var(--sig)}
.pill--stat i{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.pill--stat.is-lead{background:var(--brass-wash);color:var(--brass)}
.pill--stat.is-bto{background:var(--line-2);color:var(--ink-3)}
.card h3{font-size:1.06rem;line-height:1.24}
.specs{display:grid;gap:.36rem}
.specs div{display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-mono);font-size:.645rem;letter-spacing:.05em;color:var(--ink-3);text-transform:uppercase}
.specs .dots{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-3px)}
.specs .val{color:var(--ink-2);font-variant-numeric:tabular-nums}
.card__foot{margin-top:auto;padding-top:.95rem;border-top:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.card__price{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}
.tagBtn{border:1px solid var(--ink);background:var(--ink);color:var(--ground);border-radius:2px;cursor:pointer;padding:.55rem .85rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.45rem;transition:all .25s}
.tagBtn:hover,.tagBtn[aria-pressed="true"]{background:var(--brass);border-color:var(--brass);color:var(--surface)}
.tagBtn svg{width:11px;height:11px}
.empty{grid-column:1/-1;padding:4rem 1rem;text-align:center;border:1px dashed var(--line);border-radius:var(--r);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}

/* ============================================================
   QUICK VIEW · reads as a datasheet, not a shop listing
   ============================================================ */
.qv{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:clamp(.75rem,3vw,2.5rem)}
.qv__scrim{position:absolute;inset:0;background:rgba(6,10,12,.72);backdrop-filter:blur(4px);opacity:0;transition:opacity .35s}
.qv.is-on .qv__scrim{opacity:1}
.qv__panel{
  position:relative;width:min(1020px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;
  background:var(--ground);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-3);
  opacity:0;transform:translateY(18px) scale(.985);transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .4s cubic-bezier(.2,.7,.2,1);
}
.qv.is-on .qv__panel{opacity:1;transform:none}
.qv__bar{
  flex:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 1.1rem .9rem 1.35rem;border-bottom:1px solid var(--line-2);background:var(--surface-2);
  border-radius:var(--r) var(--r) 0 0;
}
.qv__id{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;min-width:0}
.qv__id b{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.16em;color:var(--brass);font-weight:400}
.qv__id em{font-family:var(--font-mono);font-style:normal;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.qv__body{overflow-y:auto;padding:clamp(1.2rem,2.6vw,2rem);flex:1}
.qv__body::-webkit-scrollbar{width:6px}
.qv__body::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.qv__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(1.2rem,3vw,2.4rem);align-items:start}
@media (max-width:820px){.qv__grid{grid-template-columns:1fr}}
.qv__media{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:2px;background:var(--plate);border:1px solid var(--line-2)}
.qv__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s;filter:saturate(.72) contrast(1.05)}
.qv__media img.is-in{opacity:1}
.qv__media svg{position:absolute;left:.7rem;bottom:.6rem;width:28px;height:28px;color:#D3A967;filter:drop-shadow(0 2px 7px rgba(0,0,0,.85))}
.qv__plate{margin-top:1rem;border:1px solid var(--line-2);border-radius:2px;background:var(--surface);padding:.9rem 1rem}
.qv__plate .label{margin-bottom:.6rem}
.qv h2{font-size:clamp(1.45rem,2.4vw,1.95rem);line-height:1.12;letter-spacing:-.012em}
.qv__lede{color:var(--ink-2);margin-top:.9rem;line-height:1.62}
.qv__sec{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line-2)}
.qv__sec .label{margin-bottom:.7rem}
.qv__sec li{display:flex;gap:.75rem;align-items:flex-start;color:var(--ink-2);padding:.32rem 0;line-height:1.55}
.qv__sec li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brass);flex:none;margin-top:.62em}
.qv__cert{color:var(--ink-2);line-height:1.6}
.qv__buy{
  margin-top:1.6rem;padding-top:1.3rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
}
.qv__price{display:grid;gap:.25rem}
.qv__price b{font-family:var(--font-display);font-size:1.32rem;font-weight:400;letter-spacing:-.01em}
.qv__actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.qv__foot{
  flex:none;display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding:.75rem 1.1rem;border-top:1px solid var(--line-2);background:var(--surface-2);
  border-radius:0 0 var(--r) var(--r);
}
.qv__step{
  background:none;border:1px solid var(--line);border-radius:2px;cursor:pointer;padding:.55rem .85rem;
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:.5rem;max-width:42%;transition:all .25s;
}
.qv__step:hover{border-color:var(--brass);color:var(--brass)}
.qv__step[disabled]{opacity:.35;cursor:default}
.qv__step span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qv__step svg{width:12px;height:12px;flex:none}
.qv__step--prev svg{transform:rotate(180deg)}
.qv__hint{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);text-align:center}
@media (max-width:640px){.qv__hint{display:none}.qv__step{max-width:48%}}
.card{cursor:pointer}
.card__more{
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--brass);
  display:inline-flex;align-items:center;gap:.4rem;opacity:.8;transition:opacity .3s;
}
.card:hover .card__more,.card:focus-within .card__more{opacity:1}
.card__more svg{width:11px;height:11px}

/* ============================================================
   PLANS + COMPARISON TABLE
   ============================================================ */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:1.15rem;margin-top:clamp(2.4rem,5vw,3.6rem);align-items:start}
@media (max-width:980px){.plans{grid-template-columns:1fr;max-width:520px}}
.plan{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);padding:clamp(1.6rem,2.6vw,2.1rem);display:flex;flex-direction:column;gap:1.1rem;position:relative;transition:border-color .3s,box-shadow .3s}
.plan:hover{border-color:var(--line)}
.plan--best{border-color:var(--brass);box-shadow:var(--shadow-2)}
.plan--best::before{content:"Most specified";position:absolute;top:-1px;right:1.4rem;transform:translateY(-50%);background:var(--brass);color:var(--surface);padding:.3rem .65rem;border-radius:2px;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase}
.plan__name{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.plan__price{font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.6rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}
.plan__price i{font-family:var(--font-mono);font-style:normal;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.plan__blurb{color:var(--ink-2);font-size:.94rem;min-height:3rem}
.plan ul{display:grid;gap:.58rem;padding-top:1.1rem;border-top:1px solid var(--line-2)}
.plan li{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--ink-2)}
.plan li svg{width:13px;height:13px;color:var(--brass);flex:none;margin-top:.42rem}
.plan .btn{width:100%;margin-top:.4rem}

.tableWrap{overflow-x:auto;margin-top:clamp(2.4rem,5vw,3.4rem);border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}
.ctable{min-width:640px;font-size:.92rem}
.ctable th,.ctable td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:middle}
.ctable thead th{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:400;background:var(--surface-2);position:sticky;top:0}
.ctable thead th:not(:first-child){text-align:center}
.ctable tbody th{font-weight:400;color:var(--ink);width:36%}
.ctable td{text-align:center;color:var(--ink-2);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.ctable tr:last-child th,.ctable tr:last-child td{border-bottom:0}
.ctable .yes{color:var(--brass)}
.ctable .no{color:var(--ink-3);opacity:.55}
.ctable .col-best{background:var(--brass-wash)}
.ctable tbody tr:hover th,.ctable tbody tr:hover td{background:var(--surface-2)}
.ctable tbody tr:hover .col-best{background:var(--brass-wash)}

/* ============================================================
   FAQ / TIMELINE / CONTACT
   ============================================================ */
.faq{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line-2)}
.qa{border-bottom:1px solid var(--line-2)}
.qa__btn{width:100%;background:none;border:0;cursor:pointer;text-align:left;padding:1.45rem 3rem 1.45rem 0;position:relative;display:flex;gap:1.2rem;align-items:baseline;transition:color .25s}
.qa__btn:hover{color:var(--brass)}
.qa__btn b{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;color:var(--brass);font-weight:400;flex:none;padding-top:.28rem;opacity:.7}
.qa__btn span{font-family:var(--font-display);font-size:clamp(1.08rem,1.6vw,1.28rem);line-height:1.28}
.qa__ico{position:absolute;right:0;top:1.65rem;width:13px;height:13px}
.qa__ico::before,.qa__ico::after{content:"";position:absolute;background:currentColor;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s}
.qa__ico::before{left:0;right:0;top:6px;height:1px}
.qa__ico::after{top:0;bottom:0;left:6px;width:1px}
.qa__btn[aria-expanded="true"] .qa__ico::after{transform:rotate(90deg);opacity:0}
.qa__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1)}
.qa.is-open .qa__panel{grid-template-rows:1fr}
.qa__panel>div{min-height:0;overflow:hidden}
.qa__panel p{padding:0 3rem 1.6rem 3.42rem;color:var(--ink-2);max-width:74ch}
@media (max-width:640px){.qa__panel p{padding-left:0;padding-right:1rem}}

.tl{margin-top:clamp(2.4rem,5vw,3.6rem);border-top:1px solid var(--line-2)}
.tl li{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:clamp(1rem,3vw,2.5rem);padding:1.5rem 0;border-bottom:1px solid var(--line-2);align-items:start}
@media (max-width:640px){.tl li{grid-template-columns:1fr;gap:.4rem}}
.tl__yr{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;color:var(--brass);padding-top:.28rem;font-variant-numeric:tabular-nums}
.tl h3{font-size:1.1rem}
.tl p{color:var(--ink-2);margin-top:.4rem;max-width:62ch;font-size:.95rem}

.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:clamp(2.4rem,5vw,3.4rem)}
@media (max-width:900px){.offices{grid-template-columns:1fr}}
.office{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.office__media{position:relative;aspect-ratio:16/9;background:var(--plate);overflow:hidden}
.office__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.6) contrast(1.05);transition:opacity 1s}
.office__media img.is-in{opacity:1}
.office__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,12,14,.6),transparent 60%)}
.office__city{position:absolute;left:1rem;bottom:.75rem;z-index:1;font-family:var(--font-display);font-size:1.3rem;color:#FAF8F4}
.office__body{padding:1.3rem}
.office address{font-style:normal;color:var(--ink-2);font-size:.94rem;line-height:1.75}
.office .label{margin-bottom:.6rem}
.office a:hover{color:var(--brass)}

.field{display:grid;gap:.4rem}
.field label{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.field input,.field select,.field textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.72rem .8rem;font-size:.93rem;transition:border-color .25s}
.field textarea{resize:vertical;min-height:82px;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass);outline:none}
.field .err{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;color:#C2544A;display:none}
:root[data-theme="dark"] .field .err{color:#E88A7D}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .field .err{color:#E88A7D}}
.field.is-bad input,.field.is-bad select{border-color:#C2544A}
.field.is-bad .err{display:block}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
@media (max-width:520px){.row2{grid-template-columns:1fr}}

/* ============================================================
   ENQUIRY DRAWER
   ============================================================ */
.scrim{position:fixed;inset:0;z-index:150;background:rgba(8,12,14,.55);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.scrim.is-on{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:160;width:min(468px,100%);background:var(--ground);border-left:1px solid var(--line-2);box-shadow:var(--shadow-3);transform:translateX(101%);transition:transform .5s cubic-bezier(.5,0,.2,1);display:flex;flex-direction:column}
.drawer.is-on{transform:none}
.drawer__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 1.5rem;border-bottom:1px solid var(--line-2);flex:none}
.drawer__head h2{font-size:1.25rem}
.drawer__head p{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-top:.3rem}
.xBtn{width:38px;height:38px;border:1px solid var(--line);border-radius:var(--r);background:none;cursor:pointer;display:grid;place-items:center;flex:none;transition:all .25s}
.xBtn:hover{border-color:var(--brass);color:var(--brass)}
.xBtn svg{width:14px;height:14px}
.drawer__body{overflow-y:auto;padding:1.5rem;flex:1;display:grid;gap:1.5rem;align-content:start}
.drawer__body::-webkit-scrollbar{width:6px}
.drawer__body::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.tagged{display:grid;gap:.85rem}
.titem{display:grid;grid-template-columns:44px 1fr auto;gap:.9rem;align-items:start;padding-bottom:.85rem;border-bottom:1px solid var(--line-2)}
.titem__ic{width:44px;height:44px;border:1px solid var(--line-2);border-radius:2px;display:grid;place-items:center;background:var(--plate)}
.titem__ic svg{width:22px;height:22px;color:var(--brass)}
.titem h4{font-family:var(--font-display);font-weight:400;font-size:.96rem;line-height:1.25}
.titem small{display:block;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;color:var(--brass);margin-top:.28rem}
.qty{display:flex;align-items:center;gap:.15rem;margin-top:.6rem}
.qty button{width:24px;height:24px;border:1px solid var(--line);background:none;cursor:pointer;border-radius:2px;display:grid;place-items:center;font-size:.8rem;line-height:1;transition:all .2s}
.qty button:hover{border-color:var(--brass);color:var(--brass)}
.qty span{min-width:30px;text-align:center;font-family:var(--font-mono);font-size:.72rem;font-variant-numeric:tabular-nums}
.rmBtn{background:none;border:0;cursor:pointer;color:var(--ink-3);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;padding:.2rem;transition:color .2s}
.rmBtn:hover{color:var(--brass)}
.drawer__empty{border:1px dashed var(--line);border-radius:var(--r);padding:2rem 1.2rem;text-align:center;color:var(--ink-3);font-size:.92rem}
.drawer__empty b{display:block;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.5rem;font-weight:400}
.drawer__foot{padding:1.15rem 1.5rem 1.5rem;border-top:1px solid var(--line-2);flex:none;display:grid;gap:.7rem;background:var(--ground)}
.drawer__foot .btn{width:100%}
.drawer__note{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);text-align:center;line-height:1.7}
.sent{display:grid;gap:1.05rem;justify-items:center;text-align:center;padding:2.4rem 0}
.sent__ring{width:56px;height:56px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass)}
.sent__ring svg{width:22px;height:22px}
.sent p{color:var(--ink-2);max-width:34ch;font-size:.95rem}
.sent__ref{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;color:var(--brass);border:1px dashed var(--brass);padding:.6rem 1rem;border-radius:var(--r)}
.sent__to{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);line-height:1.8}
.sent__to b{color:var(--brass);font-weight:400;text-transform:none;letter-spacing:.06em}
.sent__actions{display:flex;flex-wrap:wrap;gap:.6rem;width:100%;justify-content:center}
.sent__actions .btn{flex:1 1 auto;min-width:170px}
.sent__text{
  width:100%;min-height:120px;max-height:210px;resize:vertical;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:.8rem;font-family:var(--font-mono);font-size:.66rem;line-height:1.65;color:var(--ink-2);
  white-space:pre;overflow:auto;
}
.sent__text:focus{border-color:var(--brass);outline:none}
.toast{position:fixed;left:50%;bottom:1.6rem;z-index:170;transform:translate(-50%,140%);background:var(--ink);color:var(--ground);padding:.8rem 1.2rem;border-radius:var(--r);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;transition:transform .45s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-2);max-width:90vw;text-align:center}
.toast.is-on{transform:translate(-50%,0)}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{background:var(--ground-2);border-top:1px solid var(--line-2);padding-block:clamp(3.4rem,7vw,5.4rem) 2rem}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(1.8rem,4vw,3.4rem)}
@media (max-width:900px){.foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot__grid{grid-template-columns:1fr}}
.foot__blurb{color:var(--ink-2);font-size:.94rem;max-width:38ch;margin-top:1.2rem}
.foot h4{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);font-weight:400;margin-bottom:1.1rem}
.foot li{margin-bottom:.6rem}
.foot li a{font-size:.92rem;color:var(--ink-2);transition:color .2s}
.foot li a:hover{color:var(--brass)}
.foot address{font-style:normal;color:var(--ink-2);font-size:.92rem;line-height:1.7}
.foot__bar{margin-top:clamp(2.6rem,5vw,4rem);padding-top:1.5rem;border-top:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:.9rem 1.8rem;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.foot__bar nav{display:flex;flex-wrap:wrap;gap:1.4rem}
.foot__bar a:hover{color:var(--brass)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
  .hero h1 .ln>span{transform:none}
  .callout{opacity:1;transform:none}
  .ticker__track{animation:none}
}
