/* ============================================================
   PERFORMANCE DATA — shared design system
   Dark, cinematic, premium. Serif headlines + technical mono.
   The offset colour bars from the logo are the signature motif.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;1,6..72,400&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  /* brand bar palette (sampled from logo) */
  --bar-maroon:#7a0a43;
  --bar-sky:#6fcdee;
  --bar-orange:#f59412;
  --bar-yellow:#f5cf2e;

  /* surfaces — cool near-black */
  --bg:#0a0c11;
  --bg-2:#0d1017;
  --surface:#10141d;
  --surface-2:#141925;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);

  /* text */
  --text:#eef0f4;
  --muted:#9aa2b1;
  --faint:#6b7382;

  /* functional accent — steel/electric blue from the sky bar */
  --accent:#6fcdee;
  --accent-ink:#06222e;

  /* type */
  --serif:'Spectral',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  /* glow intensity for bars (tweakable) */
  --bar-glow:1;

  --maxw:1180px;
  --gutter:clamp(20px,5vw,64px);
  --radius:3px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-weight:300;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--bar-sky);color:#04161d;}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(72px,10vw,140px);position:relative;}
.section--tight{padding-block:clamp(48px,7vw,84px);}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.04;letter-spacing:-.01em;margin:0;}
.display{
  font-size:clamp(2.6rem,6.4vw,5.3rem);
  font-weight:300;
  letter-spacing:-.022em;
  line-height:.98;
}
h2.h{font-size:clamp(2rem,3.6vw,3.1rem);font-weight:300;letter-spacing:-.02em;}
h3{font-size:clamp(1.3rem,2vw,1.7rem);}
p{margin:0 0 1.1em;}
.lead{font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.55;color:#c7ccd6;font-weight:300;}
.muted{color:var(--muted);}
.serif-it{font-family:var(--serif);font-style:italic;}

.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 1.4rem;
  display:flex;align-items:center;gap:.85rem;
}
.eyebrow::before{
  content:"";width:26px;height:1px;background:var(--accent);opacity:.7;
}
.eyebrow--plain::before{display:none;}

.kicker{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--faint);
}

/* ---------- bars motif ---------- */
.bars{position:relative;width:100%;display:block;}
.bars .bar{
  display:block;
  height:var(--bh,16px);
  margin-bottom:var(--bg-gap,9px);
  border-radius:1px;
  background:var(--c);
  box-shadow:0 0 calc(34px*var(--bar-glow)) -2px var(--c),
             0 0 calc(9px*var(--bar-glow)) -1px var(--c);
  transform-origin:left center;
  animation:barDrift var(--dur,11s) ease-in-out infinite alternate;
  will-change:transform;
}
.bars .bar:last-child{margin-bottom:0;}
@keyframes barDrift{
  from{transform:translateX(var(--from,-2%));}
  to{transform:translateX(var(--to,2%));}
}
/* the logo arrangement, proportional */
.bars--logo .b1{--c:var(--bar-sky);    width:50%; margin-left:47%; --from:-1.5%;--to:1.2%;--dur:13s;}
.bars--logo .b2{--c:var(--bar-maroon); width:55%; margin-left:27%; --from:1.4%;--to:-1%;--dur:10s;}
.bars--logo .b3{--c:var(--bar-orange); width:63%; margin-left:0;   --from:-1.2%;--to:1.6%;--dur:12s;}
.bars--logo .b4{--c:var(--bar-yellow); width:60%; margin-left:18%; --from:1.1%;--to:-1.4%;--dur:9.5s;}
.bars--logo .b5{--c:var(--bar-sky);    width:66%; margin-left:34%; --from:-1.6%;--to:1%;--dur:14s;}
.bars--logo .b6{--c:var(--bar-maroon); width:68%; margin-left:6%;  --from:1.3%;--to:-1.2%;--dur:11s;}

/* ---------- logo lockup ---------- */
.logo{display:inline-flex;align-items:center;gap:14px;}
.logo .mark{width:46px;flex:0 0 auto;}
.logo .mark .bar{--bh:5px;--bg-gap:3px;animation:none;box-shadow:none;}
.logo .word{
  font-family:var(--sans);font-weight:600;letter-spacing:.12em;
  font-size:.82rem;line-height:1.05;text-transform:uppercase;color:var(--text);
}
.logo .word b{display:block;font-weight:600;}
.logo .word span{display:block;color:var(--muted);font-weight:400;letter-spacing:.34em;}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:18px var(--gutter);
  transition:background .35s ease,border-color .35s ease,padding .35s ease;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(10,12,17,.82);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  padding-block:13px;
}
.nav{display:flex;align-items:center;gap:6px;}
.nav a{
  font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);padding:9px 14px;border-radius:var(--radius);position:relative;
  transition:color .2s ease;
}
.nav a:hover{color:var(--text);}
.nav a.active{color:var(--text);}
.nav a.active::after{
  content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;background:var(--accent);
}
.header-cta{display:flex;align-items:center;gap:18px;}
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.85em 1.5em;border-radius:var(--radius);border:1px solid var(--line-strong);
  color:var(--text);background:transparent;cursor:pointer;transition:all .22s ease;white-space:nowrap;
}
.btn:hover{border-color:var(--accent);color:var(--accent);}
.btn--solid{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:500;}
.btn--solid:hover{background:#8fd9f2;color:var(--accent-ink);border-color:#8fd9f2;filter:none;}
.btn--lg{padding:1.05em 1.9em;font-size:.82rem;}
.btn .arr{transition:transform .22s ease;}
.btn:hover .arr{transform:translateX(3px);}

.menu-toggle{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:8px;}
.menu-toggle svg{width:24px;height:24px;}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:90;background:rgba(8,10,14,.97);backdrop-filter:blur(8px);
  display:flex;flex-direction:column;padding:26px var(--gutter);
  transform:translateY(-100%);transition:transform .4s cubic-bezier(.6,.05,.2,1);
  visibility:hidden;pointer-events:none;
}
.drawer.open{transform:translateY(0);visibility:visible;pointer-events:auto;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;}
.drawer nav{display:flex;flex-direction:column;gap:4px;}
.drawer nav a{
  font-family:var(--serif);font-size:2rem;color:var(--text);padding:12px 0;
  border-bottom:1px solid var(--line);
}
.drawer nav a .n{font-family:var(--mono);font-size:.8rem;color:var(--faint);margin-right:18px;}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);background:var(--bg-2);padding-block:64px 40px;position:relative;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;}
.footer-col h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);font-weight:500;margin-bottom:18px;}
.footer-col a{display:block;color:var(--muted);padding:6px 0;font-size:.95rem;transition:color .2s;}
.footer-col a:hover{color:var(--text);}
.footer-tag{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--text);margin:18px 0 22px;max-width:22ch;line-height:1.2;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-top:54px;padding-top:26px;border-top:1px solid var(--line);}
.footer-bottom p{margin:0;font-size:.82rem;color:var(--faint);}
.footer-addr{font-style:normal;color:var(--muted);font-size:.9rem;line-height:1.7;}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-top:120px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-glow{
  position:absolute;top:18%;right:2%;width:min(56vw,720px);opacity:1;
}
.hero-glow .bars .bar{--bh:clamp(22px,2.6vw,38px);--bg-gap:clamp(13px,1.6vw,22px);--bar-glow:1.5;}
.hero::after{ /* vignette to keep text legible */
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,12,17,.96) 18%,rgba(10,12,17,.55) 46%,rgba(10,12,17,.12) 72%,transparent 100%);
}
.hero .wrap{position:relative;z-index:2;width:100%;}
.hero-inner{max-width:46ch;}
.hero .display{margin:0 0 1.4rem;}
.hero-sub{max-width:52ch;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:2.4rem;}
.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- generic helpers ---------- */
.divider-bars{display:flex;flex-direction:column;gap:2px;width:120px;}
.divider-bars i{height:3px;border-radius:1px;display:block;}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;}
.tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);
  border:1px solid var(--line);padding:.5em .85em;border-radius:100px;}

.grid{display:grid;gap:clamp(16px,2vw,26px);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}

/* service / content cards */
.card{
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,2.4vw,36px);position:relative;overflow:hidden;
  transition:border-color .3s ease,transform .3s ease,background .3s ease;
}
.card::before{ /* top accent bar */
  content:"";position:absolute;top:0;left:0;height:3px;width:46px;background:var(--c,var(--accent));
  box-shadow:0 0 18px -2px var(--c,var(--accent));transition:width .35s ease;
}
.card:hover{border-color:var(--line-strong);transform:translateY(-3px);}
.card:hover::before{width:88px;}
.card .idx{font-family:var(--mono);font-size:.72rem;color:var(--faint);letter-spacing:.1em;}
.card h3{margin:.9rem 0 .55rem;}
.card p{color:var(--muted);font-size:.96rem;margin:0;}
.card .more{display:inline-flex;gap:.5em;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);margin-top:1.4rem;opacity:.85;}

/* section header block */
.sec-head{max-width:62ch;margin-bottom:clamp(36px,5vw,64px);}
.sec-head .h{margin-bottom:1rem;}

/* split layout */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,90px);align-items:start;}
.split--center{align-items:center;}

/* list of services */
.svc-list{list-style:none;margin:0;padding:0;columns:2;column-gap:40px;}
.svc-list li{break-inside:avoid;padding:11px 0 11px 22px;position:relative;color:var(--muted);font-size:.95rem;border-bottom:1px solid var(--line);}
.svc-list li::before{content:"";position:absolute;left:0;top:19px;width:9px;height:2px;background:var(--c,var(--accent));}

/* method steps */
.method-step{display:grid;grid-template-columns:120px 1fr;gap:clamp(20px,4vw,60px);
  padding:clamp(28px,4vw,46px) 0;border-top:1px solid var(--line);align-items:start;}
.method-step:last-child{border-bottom:1px solid var(--line);}
.method-step .num{font-family:var(--mono);font-size:.8rem;color:var(--accent);letter-spacing:.1em;}
.method-step .num b{display:block;font-family:var(--serif);font-size:3rem;color:var(--text);font-weight:300;margin-top:8px;line-height:1;}
.method-step h3{font-size:clamp(1.5rem,2.4vw,2.1rem);margin-bottom:.5rem;}
.method-step p{color:var(--muted);max-width:60ch;margin:0;}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stat{padding:clamp(28px,3vw,44px) 0;}
.stat .v{font-family:var(--serif);font-size:clamp(2.4rem,4vw,3.4rem);font-weight:300;line-height:1;}
.stat .l{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:12px;}

/* method mini list (home) */
.method-mini{list-style:none;margin:0;padding:0;counter-reset:m;}
.method-mini li{counter-increment:m;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;
  padding:18px 0;border-top:1px solid var(--line);}
.method-mini li:last-child{border-bottom:1px solid var(--line);}
.method-mini li::before{content:"0" counter(m);font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.08em;}
.method-mini h3{font-size:1.25rem;margin:0;}
.method-mini span{display:block;color:var(--muted);font-size:.92rem;margin-top:4px;font-family:var(--sans);}

/* big CTA band */
.cta-band{position:relative;overflow:hidden;border-top:1px solid var(--line);}
.cta-band .bars-deco{position:absolute;right:-4%;top:50%;transform:translateY(-50%);width:min(40vw,520px);opacity:.5;z-index:0;}
.cta-band .wrap{position:relative;z-index:2;}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* forms */
.field{margin-bottom:22px;}
.field label{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.field input,.field textarea,.field select{
  width:100%;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);
  color:var(--text);font-family:var(--sans);font-size:1rem;padding:14px 16px;transition:border-color .2s;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent);}
.field textarea{resize:vertical;min-height:130px;}

/* breadcrumb / page hero */
.page-hero{padding-top:clamp(150px,18vh,210px);padding-bottom:clamp(40px,6vw,72px);position:relative;overflow:hidden;}
.page-hero .bars-deco{position:absolute;right:-3%;top:34%;width:min(42vw,460px);opacity:.42;z-index:0;}
.page-hero .wrap{position:relative;z-index:2;}
.page-hero .display{max-width:18ch;}

/* ---------- services page ---------- */
.svc-index{display:flex;flex-wrap:wrap;gap:8px;}
.svc-index a{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.74rem;
  letter-spacing:.05em;color:var(--muted);border:1px solid var(--line);padding:.65em 1.05em;border-radius:100px;transition:all .22s;}
.svc-index a span{color:var(--c);font-weight:500;}
.svc-index a:hover{border-color:var(--c);color:var(--text);}
.svc-block{display:grid;grid-template-columns:140px 1fr;gap:clamp(24px,5vw,72px);
  padding:clamp(40px,6vw,80px) 0;border-top:1px solid var(--line);scroll-margin-top:100px;}
.svc-block:first-child{border-top:0;padding-top:0;}
.svc-num{font-family:var(--mono);font-size:.85rem;color:var(--c);letter-spacing:.1em;}
.bars-tab{margin-top:18px;display:flex;flex-direction:column;gap:5px;width:78px;}
.bars-tab::before,.bars-tab::after{content:"";height:6px;border-radius:1px;background:var(--c);
  box-shadow:0 0 16px -3px var(--c);}
.bars-tab::before{width:78px;}.bars-tab::after{width:52px;margin-left:14px;}
.svc-tag{font-size:clamp(1.15rem,2vw,1.5rem);color:var(--text);margin:.6rem 0 1.2rem;max-width:30ch;}
.svc-desc{max-width:62ch;margin-bottom:1.8rem;}

/* ---------- industries page ---------- */
.ind-row{display:grid;grid-template-columns:140px 1fr;gap:clamp(24px,5vw,72px);
  padding:clamp(36px,5vw,64px) 0;border-top:1px solid var(--line);align-items:start;}
.ind-row:first-child{border-top:0;padding-top:0;}
.ind-row:last-child{border-bottom:1px solid var(--line);}
.ind-num{font-family:var(--mono);font-size:.85rem;color:var(--c);letter-spacing:.1em;}
.ind-body h2.h{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:.7rem;}
.ind-row .bars-tab{margin-top:16px;}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(40px,6vw,90px);align-items:start;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.form-note{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--faint);margin:18px 0 0;max-width:46ch;line-height:1.6;}
.contact-aside{position:relative;}
.contact-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:16px;background:var(--surface);}
.contact-card h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);font-weight:500;margin:0 0 14px;}
.contact-line{display:block;font-family:var(--sans);font-size:1.05rem;color:var(--text);padding:5px 0;transition:color .2s;}
.contact-line:hover{color:var(--accent);}
.contact-bars{margin-top:8px;opacity:.6;width:80%;}
.form-done{padding:30px 0;}
.form-done h3{margin:18px 0 .5rem;font-size:1.8rem;}

/* ---------- tweaks panel ---------- */
#pd-tweaks{
  position:fixed;right:18px;bottom:18px;z-index:200;width:262px;
  background:rgba(13,16,23,.96);backdrop-filter:blur(14px);
  border:1px solid var(--line-strong);border-radius:8px;padding:16px 18px 18px;
  font-family:var(--sans);box-shadow:0 24px 60px -20px rgba(0,0,0,.8);
  transform:translateY(14px) scale(.98);opacity:0;pointer-events:none;transition:all .25s ease;
}
#pd-tweaks.open{transform:none;opacity:1;pointer-events:auto;}
#pd-tweaks .tw-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
#pd-tweaks .tw-head span{font-family:var(--mono);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text);}
#pd-tweaks .tw-x{background:none;border:0;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px;}
#pd-tweaks .tw-x:hover{color:var(--text);}
#pd-tweaks .tw-sec{margin-bottom:15px;}
#pd-tweaks label{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:9px;}
#pd-tweaks .tw-val{color:var(--accent);}
#pd-tweaks .tw-swatches{display:flex;gap:9px;}
#pd-tweaks .tw-swatches button{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s;}
#pd-tweaks .tw-swatches button:hover{transform:scale(1.1);}
#pd-tweaks .tw-swatches button.on{border-color:#fff;}
#pd-tweaks .tw-seg{display:flex;gap:5px;}
#pd-tweaks .tw-seg button{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--muted);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.03em;padding:8px 4px;border-radius:4px;cursor:pointer;transition:all .18s;}
#pd-tweaks .tw-seg button:hover{color:var(--text);border-color:var(--line-strong);}
#pd-tweaks .tw-seg button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
#pd-tweaks input[type=range]{width:100%;accent-color:var(--accent);}
@media(max-width:560px){#pd-tweaks{right:10px;left:10px;width:auto;bottom:10px;}}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .nav,.header-cta .btn{display:none;}
  .menu-toggle{display:inline-flex;}
  .header-cta{gap:0;}
  .footer-grid{grid-template-columns:1fr;gap:36px;}
  .split{grid-template-columns:1fr;gap:40px;}
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .svc-list{columns:1;}
  .method-step{grid-template-columns:1fr;gap:14px;}
  .svc-block{grid-template-columns:1fr;gap:20px;}
  .ind-row{grid-template-columns:1fr;gap:16px;}
  .contact-grid{grid-template-columns:1fr;gap:44px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  .hero-glow{opacity:.55;right:-20%;top:auto;bottom:8%;width:90vw;}
  .hero::after{background:radial-gradient(140% 90% at 50% 40%,rgba(10,12,17,.78),rgba(10,12,17,.94));}
}
@media(prefers-reduced-motion:reduce){
  .bars .bar{animation:none!important;}
  .reveal{transition:none;}
  html{scroll-behavior:auto;}
}
