/* ── RESET + ROOT ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;cursor:none;}
:root{
  --serif:'Cormorant Garamond',Georgia,serif;
  --ink:#10141a;
  --ink-dim:rgba(16,20,26,0.48);
  --ink-faint:rgba(16,20,26,0.08);
  --paper:#eceeed;
  --paper-dim:#d8dcdc;
  --hero:#0c1018;
  --mid:#2a303a;
  --grey:#6a7280;
  --grey-dim:#8a94a0;
  --ochre:#c47828;
  --rule:rgba(16,20,26,0.08);
  --rule-dark:rgba(255,255,255,0.06);
}
html{scroll-behavior:smooth;}
body{
  font-family:'Space Grotesk',system-ui,sans-serif;
  background:linear-gradient(to bottom,
    #0c1018  0%,
    #111820  6%,
    #141c26 12%,
    #1d2736 20%,
    #2e3a4c 32%,
    #3d4e62 40%,
    #4a5a6c 47%,
    #5a6a7c 52%,
    #6a7c8c 57%,
    #7a8c9c 63%,
    #8a9aa8 68%,
    #9aaab8 73%,
    #a2b2be 75%,
    #a8b8c4 77%,
    #b2bfca 80%,
    #bcc8d0 83%,
    #c2cdd6 85%,
    #c8d4da 87%,
    #ced9de 89%,
    #d4dee4 91%,
    #dde6ea 94%,
    #e5ecee 97%,
    #eceeed 100%
  );
  color:var(--ink);
  line-height:1.5;overflow-x:hidden;cursor:none;
  opacity:0;
  transition:opacity .55s ease;
}
body.page-ready{opacity:1;}
body.page-ready{opacity:1;}
a,button{cursor:none;}

/* ── CUSTOM CURSOR ── */
@property --ra{syntax:'<angle>';initial-value:0deg;inherits:false;}
@keyframes radar-trail{to{--ra:360deg;}}
@keyframes radar-arm{
  from{transform:translateY(-50%) rotate(0deg);}
  to{transform:translateY(-50%) rotate(360deg);}
}
.cursor{
  position:fixed;top:0;left:0;
  width:10px;height:10px;background:var(--ochre);
  border-radius:50%;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
  mix-blend-mode:difference;
  transition:width .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1);
}
.cursor.hover{width:56px;height:56px;background:transparent;border:1px solid rgba(196,120,40,.55);}
.c-trail,.c-ring,.c-arm,.c-dot{position:absolute;opacity:0;pointer-events:none;transition:opacity .2s ease;}
.c-trail{
  inset:0;border-radius:50%;--ra:0deg;
  background:conic-gradient(from var(--ra),transparent 0deg,transparent 260deg,rgba(196,120,40,.08) 295deg,rgba(196,120,40,.28) 348deg,rgba(196,120,40,0) 360deg);
  animation:radar-trail 2s linear infinite;
}
.c-ring{inset:15px;border-radius:50%;border:1px solid rgba(196,120,40,.3);}
.c-arm{
  top:50%;left:50%;width:calc(50% - 3px);height:1px;
  background:rgba(196,120,40,.9);transform-origin:left center;
  transform:translateY(-50%) rotate(0deg);animation:radar-arm 2s linear infinite;
}
.c-dot{top:50%;left:50%;width:3px;height:3px;border-radius:50%;background:var(--ochre);transform:translate(-50%,-50%);}
.cursor.hover .c-trail,.cursor.hover .c-ring,.cursor.hover .c-arm,.cursor.hover .c-dot{opacity:1;}

/* ── TOP NAV ── */
.topnav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3rem;
  transition:background .4s ease,border-color .4s ease;
  border-bottom:1px solid transparent;
}
.topnav.scrolled{background:rgba(12,16,24,0.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:rgba(255,255,255,.06);}
.topnav-logo{
  font-size:.82rem;font-weight:700;letter-spacing:.06em;
  color:#fff;text-decoration:none;transition:color .4s;position:relative;z-index:201;
}
.topnav.scrolled .topnav-logo{color:#fff;}
.topnav-logo.ov{color:#fff!important;}

.menu-btn{
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  font-family:'Space Mono',monospace;color:rgba(255,255,255,.55);
  background:none;border:none;padding:0;
  transition:color .3s;position:relative;z-index:201;
  display:flex;align-items:center;gap:.65rem;
}
.topnav.scrolled .menu-btn{color:rgba(255,255,255,.5);}
.menu-btn.open{color:rgba(255,255,255,.9)!important;}
.hbg{display:flex;flex-direction:column;gap:4px;width:18px;}
.hbg span{
  display:block;height:1px;background:currentColor;
  transform-origin:left center;
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .25s ease;
}
.menu-btn.open .hbg span:nth-child(1){transform:rotate(37deg) scaleX(1.1);}
.menu-btn.open .hbg span:nth-child(2){opacity:0;transform:scaleX(0);}
.menu-btn.open .hbg span:nth-child(3){transform:rotate(-37deg) scaleX(1.1);}

/* ── NAV OVERLAY ── */
.nav-overlay{
  position:fixed;inset:0;z-index:200;
  background:var(--hero);
  display:flex;flex-direction:column;justify-content:center;
  padding:4rem 3rem;
  transform:translateY(-100%);
  transition:transform .72s cubic-bezier(.76,0,.24,1);
  pointer-events:none;
}
.nav-overlay.open{transform:translateY(0);pointer-events:all;}

.overlay-eyebrow{
  font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.13);font-family:'Space Mono',monospace;
  margin-bottom:1.75rem;
  transform:translateY(8px);opacity:0;
  transition:transform .5s ease .45s,opacity .4s ease .45s;
}
.nav-overlay.open .overlay-eyebrow{transform:translateY(0);opacity:1;}

.overlay-links{list-style:none;}
.overlay-item{
  display:flex;align-items:baseline;gap:1.5rem;
  border-top:1px solid var(--rule-dark);padding:.5rem 0;overflow:hidden;
}
.overlay-item:last-child{border-bottom:1px solid var(--rule-dark);}
.overlay-num{
  font-size:.53rem;font-family:'Space Mono',monospace;
  color:rgba(255,255,255,.16);width:1.8rem;flex-shrink:0;padding-top:.5rem;
}
.overlay-item a{
  font-size:clamp(2.5rem,5.5vw,5.5rem);
  font-weight:700;letter-spacing:-.05em;line-height:.92;
  color:rgba(255,255,255,.78);text-decoration:none;display:block;
  transform:translateY(100%);
  transition:transform .6s cubic-bezier(.16,1,.3,1),color .25s ease;
}
.nav-overlay.open .overlay-item:nth-child(1) a{transform:translateY(0);transition-delay:.46s;}
.nav-overlay.open .overlay-item:nth-child(2) a{transform:translateY(0);transition-delay:.52s;}
.nav-overlay.open .overlay-item:nth-child(3) a{transform:translateY(0);transition-delay:.58s;}
.nav-overlay.open .overlay-item:nth-child(4) a{transform:translateY(0);transition-delay:.64s;}
.overlay-item a:hover{color:var(--ochre);}
.overlay-item a.active{color:var(--ochre);}

.overlay-bottom{
  margin-top:2.5rem;display:flex;align-items:center;gap:2.5rem;
  transform:translateY(12px);opacity:0;
  transition:transform .55s cubic-bezier(.16,1,.3,1) .72s,opacity .45s ease .72s;
}
.nav-overlay.open .overlay-bottom{transform:translateY(0);opacity:1;}
.overlay-email{
  font-size:.58rem;color:rgba(255,255,255,.18);
  font-family:'Space Mono',monospace;letter-spacing:.06em;
  text-decoration:none;transition:color .3s;
}
.overlay-email:hover{color:rgba(255,255,255,.45);}

/* ── BUTTONS ── */
.btn{
  border:none;color:#fff;background:transparent;
  padding:.72rem 1.65rem;
  font-size:.62rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  font-family:inherit;position:relative;overflow:visible;
  transition:transform .4s cubic-bezier(.16,1,.3,1),color .3s;
  text-decoration:none;display:inline-block;
}
.btn:hover{transform:translateY(-5px);}
.btn span{position:relative;z-index:1;}

.btn-ghost{color:rgba(255,255,255,.4);}
.btn-ghost:hover span{color:rgba(255,255,255,.8);}

.btn-dark{color:var(--ink);}
.btn-dark:hover span{color:var(--ink);}

/* ── HERO (home) ── */
.hero{
  min-height:100vh;background:transparent;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:7rem 3rem 4rem;position:relative;overflow:clip;
}

/* drone backdrop — CSS blur animation, always works */
.hero-backdrop{
  position:absolute;inset:0;
  background:url('drone-hero.avif') center 40% / cover no-repeat;
  transform-origin:center;
  animation:heroDrone 9s cubic-bezier(.16,1,.3,1) .2s both;
  z-index:0;
  -webkit-mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
  mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
}
.hero-backdrop::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to bottom, rgba(12,16,24,.15) 0%, rgba(12,16,24,.5) 45%, rgba(12,16,24,0) 85%),
    linear-gradient(to right,  rgba(12,16,24,.4) 0%, transparent 65%);
}
@keyframes heroDrone{
  0%   { filter:blur(0px);  transform:scale(1.0);  opacity:0; }
  12%  { filter:blur(0px);  transform:scale(1.04); opacity:1; }
  100% { filter:blur(22px); transform:scale(1.14); opacity:1; }
}

#heroGL{display:none;} /* WebGL off — CSS handles it */

#europeMap{
  position:absolute;right:-4%;top:50%;transform:translateY(-56%);
  width:min(64vw,820px);height:auto;aspect-ratio:6/5;
  opacity:0.13;pointer-events:none;z-index:1;
}
.hero>*:not(.hero-backdrop):not(#europeMap){position:relative;z-index:2;}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;}
.hero-eyebrow{
  font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(242,220,180,.35);font-family:'Space Mono',monospace;
}
.hero-index{font-size:.6rem;color:rgba(242,220,180,.18);font-family:'Space Mono',monospace;}
.hero-headline{padding:3rem 0 3.5rem;}
.hero h1{
  font-size:clamp(3.8rem,9vw,9.5rem);font-weight:700;
  line-height:.88;letter-spacing:-.045em;color:#fff;
  max-width:1100px;overflow:hidden;
}
.h1-line{overflow:hidden;display:block;}
.h1-line-inner{
  display:block;transform:translateY(110%);opacity:0;
  transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .5s ease;
}
.h1-line-inner.visible{transform:translateY(0);opacity:1;}
.h1-line .dim{color:rgba(210,185,145,.28);}
.hero-bottom{
  padding-top:2rem;
}
.hero-bottom-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:end;
}
.hero-sub{max-width:480px;}
.hero-desc p{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(.8rem,1vw,.95rem);
  font-weight:300;line-height:1.75;
  color:rgba(210,185,145,.55);
  margin-bottom:1.8rem;
}
/* ── HERO FUSION DIAGRAM ── */
.hs-fusion{
  display:flex;align-items:center;gap:0;
  margin-bottom:2rem;
  opacity:0;transform:translateY(10px);
  transition:opacity .6s ease, transform .6s ease;
}
.hs-fusion.fused{ opacity:1;transform:translateY(0); }

.hs-sources{ display:flex;flex-direction:column;gap:.55rem; }

.hs-src{
  display:flex;align-items:center;gap:0;
  opacity:0;transform:translateX(-12px);
  transition:opacity .5s ease calc(var(--si)*.18s + .1s),
             transform .5s ease calc(var(--si)*.18s + .1s);
}
.hs-fusion.fused .hs-src{ opacity:1;transform:translateX(0); }

.hs-src-label{
  font-family:'Space Mono',monospace;
  font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(210,185,145,.7);
  white-space:nowrap;
  width:5.5rem;
  padding:.38rem .7rem;
  border:1px solid rgba(196,120,40,.38);
  border-radius:0;
  box-shadow:inset 0 0 0 1px rgba(196,120,40,.06);
  transition:color .3s ease, border-color .3s ease, background .3s ease, box-shadow .3s ease;
  cursor:default;
}
.hs-src:hover .hs-src-label{
  color:rgba(220,195,150,1);
  border-color:rgba(196,120,40,.75);
  background:rgba(196,120,40,.07);
  box-shadow:inset 0 0 0 1px rgba(196,120,40,.12), 0 0 10px rgba(196,120,40,.08);
}

.hs-src-wire{
  display:block;
  height:1px;
  width:0;
  background:linear-gradient(to right, rgba(196,120,40,.55), rgba(196,120,40,.18));
  transition:width .55s cubic-bezier(.4,0,.2,1) calc(var(--si)*.18s + .4s);
}
.hs-fusion.fused .hs-src-wire{ width:2.5rem; }

.hs-node{
  position:relative;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--ochre);
  flex-shrink:0;
  opacity:0;
  transition:opacity .4s ease .85s;
}
.hs-fusion.fused .hs-node{ opacity:1; }
.hs-node-ring{
  position:absolute;inset:-4px;
  border-radius:50%;
  border:1px solid rgba(196,120,40,.4);
  animation:node-ping 2.4s ease-out infinite;
}
@keyframes node-ping{
  0%{ transform:scale(1);opacity:.7; }
  100%{ transform:scale(2.8);opacity:0; }
}

.hs-outcome{
  padding-left:clamp(1rem,2vw,1.8rem);
  opacity:0;transform:translateX(8px);
  transition:opacity .55s ease 1s, transform .55s ease 1s;
  display:flex;flex-direction:row;align-items:center;gap:.75rem;
}
.hs-fusion.fused .hs-outcome{ opacity:1;transform:translateX(0); }
.hs-outcome-pre{
  display:block;
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(.65rem,.85vw,.78rem);
  color:rgba(210,185,145,.35);
  letter-spacing:.04em;
  margin-bottom:.25rem;
}
.hs-outcome-key{
  font-family:var(--serif);
  font-size:clamp(1.1rem,1.7vw,1.6rem);
  font-weight:400;line-height:1.3;
  letter-spacing:-.01em;
  color:rgba(220,195,150,.92);
}
.hs-tags{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;
}
.hs-tag{
  font-family:'Space Mono',monospace;
  font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(210,185,145,.5);
}
.hs-dot{color:rgba(210,185,145,.25);font-size:.5rem;}
.hero-actions{display:flex;gap:.75rem;justify-content:flex-end;}

/* ── PAGE HERO (inner pages) ── */
.page-hero{
  min-height:54vh;background:var(--hero);
  background-image:radial-gradient(ellipse 60% 50% at 65% 55%,rgba(196,120,40,.07) 0%,transparent 70%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:7rem 3rem 4rem;border-bottom:1px solid var(--rule-dark);
}
.page-hero-label{
  font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.17);font-family:'Space Mono',monospace;margin-bottom:1.5rem;
}
.page-hero h1{
  font-size:clamp(2.8rem,7vw,7rem);font-weight:700;
  letter-spacing:-.045em;line-height:.88;color:#fff;
}
.page-hero h1 .dim{color:rgba(210,185,145,.22);}
.page-hero-sub{
  font-size:.92rem;color:rgba(210,195,165,.42);
  line-height:1.75;max-width:480px;margin-top:1.75rem;
}

/* ── OVERSIZE HERO (use cases) ── */
.oversize-hero{
  background:var(--hero);padding:7rem 3rem 5rem;
  border-bottom:1px solid var(--rule-dark);overflow:hidden;
}
.oversize-hero-label{
  font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.15);font-family:'Space Mono',monospace;margin-bottom:3rem;
}
.oversize-hero h1{
  font-size:clamp(4.5rem,13vw,13rem);font-weight:700;
  letter-spacing:-.05em;line-height:.82;color:#fff;
  white-space:nowrap;margin-left:-.03em;
}
.oversize-hero h1 .dim{color:rgba(255,255,255,.09);}
.oversize-hero-sub{
  font-size:.92rem;color:rgba(210,195,165,.42);
  line-height:1.75;max-width:440px;margin-top:2.5rem;
}

/* ── STATS SECTION ── */
.stats-section{
  background:var(--ink);
  position:relative;overflow:hidden;
  padding:5rem 3rem 4.5rem;
}
.stats-section::before{
  content:'';position:absolute;inset:0;
  background:url('img-blacksand.jpg') center 40% / cover no-repeat;
  opacity:.07;filter:grayscale(1) contrast(1.3);
  pointer-events:none;z-index:0;
}
.stats-row{
  position:relative;z-index:1;width:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center;
  max-width:1300px;
  margin:0 auto;
}
.stat-rule{
  width:1px;height:110px;
  background:rgba(255,255,255,0.07);
  margin:0 2.5rem;
}
.stat-block{
  text-align:center;
  padding:1.5rem 1rem;
}
.stat-eyebrow{
  font-family:'Space Mono',monospace;
  font-size:.48rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,0.28);margin-bottom:.9rem;
}
.stat-big{
  font-family:var(--serif);
  font-size:clamp(5rem,8.5vw,9rem);
  font-weight:400;line-height:.88;
  color:var(--ochre);margin-bottom:1.1rem;
  will-change:transform;
}
.stat-pct{
  font-size:.42em;vertical-align:super;line-height:1;
  color:rgba(196,120,40,0.55);
}
.stat-desc{
  font-size:.68rem;color:rgba(255,255,255,0.32);
  letter-spacing:.03em;line-height:1.55;
  font-family:'Space Grotesk',sans-serif;font-weight:400;
}

/* ── LETTER WAVE HOVER ── */
.lw-ready{display:inline-block;}
.lw{
  display:inline-block;
  transition:transform .35s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--li) * 0.018s);
}
.lw-sp{display:inline-block;width:.28em;}
.lw-ready:hover .lw{transform:translateY(-5px);}

/* Overlay nav: bigger lift */
.overlay-links a.lw-ready:hover .lw{transform:translateY(-8px);}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(44px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,1,.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d1{transition-delay:.12s;}
.reveal-d2{transition-delay:.24s;}
.reveal-d3{transition-delay:.36s;}
.reveal-d4{transition-delay:.48s;}
.reveal-d5{transition-delay:.60s;}

/* ── SECTION LABEL ── */
.section-label{font-size:.57rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);font-family:'Space Mono',monospace;margin-bottom:5rem;}

/* ── IMAGE STRIP ── */
.img-strip{
  position:relative;height:260px;overflow:hidden;
  border-top:1px solid rgba(255,255,255,0.04);
}
.img-strip-inner{
  position:absolute;inset:0;
  background:url('img-cliff.jpg') center 50% / cover no-repeat;
  filter:grayscale(1) contrast(1.1) brightness(0.38);
  transform:scale(1.04);
  transition:transform 8s ease;
}
.img-strip:hover .img-strip-inner{transform:scale(1.0);}
.img-strip::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to right, var(--ink) 0%, transparent 18%, transparent 82%, var(--ink) 100%),
    linear-gradient(to bottom, var(--ink) 0%, transparent 35%, transparent 65%, var(--paper) 100%);
}
.img-strip-label{
  position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);
  font-family:'Space Mono',monospace;font-size:.46rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.22);white-space:nowrap;z-index:1;
}

/* ── PLATFORM VISUAL ── */
.platform{
  background:var(--greige);padding:9rem 3rem;
  position:relative;overflow:hidden;
  perspective:1200px;
}
.platform::before{
  content:'';position:absolute;inset:0;
  background:url('img-mist.jpg') center 60% / cover no-repeat;
  opacity:.06;filter:grayscale(1);
  pointer-events:none;z-index:0;
}
.platform-inner{position:relative;z-index:1;}
}
.platform-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr 480px 1fr;
  gap:3rem;align-items:center;min-height:560px;
}
.platform-annotations{display:flex;flex-direction:column;gap:3.5rem;}
.platform-annotations.right{align-items:flex-end;text-align:right;}
.annotation{max-width:220px;}
.annotation-title{font-size:1rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-bottom:.4rem;line-height:1.2;}
.annotation-body{font-size:.82rem;color:var(--grey);line-height:1.6;}
.annotation-line{
  width:0;height:1px;background:var(--greige-dark);margin:.75rem 0;
  transition:width .7s cubic-bezier(.16,1,.3,1);
}
.right .annotation-line{margin-left:auto;}
.platform-annotations.visible .annotation-line{width:40px;}

.platform-photo{
  position:relative;aspect-ratio:4/5;max-height:480px;
  background:linear-gradient(160deg,#d4c8b0 0%,#c4b498 100%);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  transition:transform .1s ease;transform-style:preserve-3d;will-change:transform;
}
.platform-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(25%) saturate(85%) brightness(.97) contrast(.95);}
.platform-label{
  position:absolute;bottom:1.25rem;left:1.25rem;
  font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;
  font-family:'Space Mono',monospace;color:rgba(28,24,18,.3);
}
.platform-cta{max-width:1200px;margin:3rem auto 0;display:flex;justify-content:flex-end;}

/* ── CAPABILITIES (platform page vertical layout) ── */
.capabilities{background:var(--paper);border-bottom:1px solid var(--rule);}

.cap-header{
  display:grid;grid-template-columns:1fr 1fr;
  align-items:end;gap:3rem;
  padding:5rem 3rem 4rem;
  border-bottom:1px solid var(--rule);
}
.cap-intro{
  font-size:1.05rem;color:var(--grey);line-height:1.7;
  max-width:380px;margin-top:1.5rem;
}
.cap-header-img{
  height:260px;overflow:hidden;
}
.cap-header-img img{
  width:100%;height:100%;object-fit:cover;
  object-position:center 30%;
  filter:sepia(18%) saturate(80%) contrast(.95);
  transition:transform 1.2s cubic-bezier(.16,1,.3,1);
}
.cap-header-img:hover img{transform:scale(1.04);}

.cap-block{
  display:grid;
  grid-template-columns:60px 1fr 1fr;
  gap:3rem;
  padding:3.5rem 3rem;
  border-bottom:1px solid var(--rule);
  align-items:start;
}
.cap-block:last-child{border-bottom:none;}
.cap-num{
  font-family:'Space Mono',monospace;
  font-size:.5rem;letter-spacing:.1em;
  color:var(--grey-dim);padding-top:.5rem;
}
.cap-title{
  font-family:var(--serif);
  font-size:clamp(1.6rem,2.8vw,2.6rem);
  font-weight:500;letter-spacing:-.025em;
  line-height:1.05;color:var(--ink);
}
.cap-body{
  font-size:.88rem;line-height:1.85;
  color:var(--ink-dim);
}

/* ── FEATURES ── */
.features{padding:8rem 3rem;border-bottom:1px solid var(--rule);background:var(--paper);}
.features-inner{max-width:1200px;margin:0 auto;}
.feat-row{
  display:grid;grid-template-columns:200px 1fr;gap:5rem;padding:2.5rem 0;
  border-top:1px solid var(--rule);align-items:start;
  transition:background .25s ease;
  margin:0 -3rem;padding-left:3rem;padding-right:3rem;
}
.feat-row:hover{background:var(--greige);}
.feat-num{font-size:.55rem;color:var(--grey-dim);font-family:'Space Mono',monospace;margin-bottom:.6rem;display:inline-block;}
.feat-key{font-size:.9rem;font-weight:600;color:var(--ink);letter-spacing:-.015em;line-height:1.3;}
.feat-val{font-size:1rem;color:var(--grey);line-height:1.85;}
.feat-val strong{color:var(--ink);font-weight:500;}

/* ── HIGHLIGHT FILL SWEEP ── */
.hl{display:inline;position:relative;white-space:nowrap;}
.hl::before{content:'';position:absolute;left:-2px;right:-2px;top:0;bottom:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1);z-index:-1;}
.hl:hover::before{transform:scaleX(1);}
.hl:hover{color:var(--paper);}

/* ── USE CASES SECTION (home) ── */
.usecases{background:var(--greige);padding:8rem 3rem;border-bottom:1px solid var(--rule);}
.usecases-inner{max-width:1200px;margin:0 auto;}
.usecases-header{display:grid;grid-template-columns:1fr 1fr;gap:6rem;margin-bottom:6rem;align-items:end;}
.usecases h2{font-size:clamp(2.8rem,5vw,5rem);font-weight:700;line-height:.9;letter-spacing:-.04em;color:var(--ink);}
.usecases-sub{font-size:.95rem;color:var(--grey);line-height:1.85;max-width:400px;}
.cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.case-card{
  background:var(--greige);padding:2.5rem 2rem;
  position:relative;overflow:hidden;
  min-height:320px;display:flex;flex-direction:column;justify-content:flex-end;
}
.case-card::before{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(to top,rgba(30,26,20,.65) 0%,rgba(30,26,20,.2) 60%,transparent 100%);transition:opacity .4s ease;}
.case-card-overlay{position:absolute;inset:0;background:rgba(28,24,18,.92);transform:translateY(100%);transition:transform .55s cubic-bezier(.16,1,.3,1);z-index:1;}
.case-card:hover .case-card-overlay{transform:translateY(0);}
.case-card-content{position:relative;z-index:2;}
.case-num{font-size:.55rem;color:rgba(255,255,255,.4);font-family:'Space Mono',monospace;margin-bottom:2.5rem;display:block;transition:color .3s;}
.case-card:hover .case-num{color:rgba(255,255,255,.25);}
.case-title{font-size:1.05rem;font-weight:600;color:#fff;letter-spacing:-.02em;margin-bottom:.65rem;transition:color .3s;}
.case-body{font-size:.82rem;color:rgba(255,255,255,.6);line-height:1.7;transition:color .3s;}
.case-card:hover .case-body{color:rgba(255,255,255,.45);}
.cases-footer{display:flex;justify-content:flex-end;margin-top:2.5rem;}

/* ── USE CASE DETAILS (usecases page) ── */
.uc-detail{padding:8rem 3rem;border-bottom:1px solid var(--rule);}
.uc-detail:nth-child(odd){background:var(--paper);}
.uc-detail:nth-child(even){background:var(--greige);}
.uc-detail-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:center;}
.uc-detail:nth-child(even) .uc-detail-inner{direction:rtl;}
.uc-detail:nth-child(even) .uc-detail-inner > *{direction:ltr;}
.uc-detail-label{font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-dim);font-family:'Space Mono',monospace;margin-bottom:1rem;}
.uc-detail h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:700;letter-spacing:-.04em;line-height:.9;color:var(--ink);margin-bottom:1.25rem;}
.uc-detail-body{font-size:.95rem;color:var(--grey);line-height:1.85;margin-bottom:2rem;}
.uc-caps{list-style:none;display:flex;flex-direction:column;}
.uc-cap{font-size:.8rem;color:var(--ink);padding:.55rem 0;border-top:1px solid var(--rule);display:flex;align-items:center;gap:.75rem;}
.uc-cap::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--ochre);flex-shrink:0;}
.uc-photo{aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--greige-dark),var(--greige));}
.uc-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(20%) saturate(80%) brightness(.96) contrast(.95);transition:transform .8s cubic-bezier(.16,1,.3,1);}
.uc-photo:hover img{transform:scale(1.04);}

/* ── PILOT ── */
.pilot{
  border-bottom:1px solid var(--rule);background:var(--paper);
  position:relative;overflow:hidden;
}
.pilot::before{
  content:'';position:absolute;inset:0;
  background:url('img-airship.jpg') center 65% / cover no-repeat;
  opacity:.06;filter:grayscale(1) contrast(1.1);
  pointer-events:none;
}
.pilot-col{padding:6rem 4rem;max-width:680px;position:relative;z-index:1;}
.pilot-col.light{background:var(--paper);}
.pilot-col-label{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;font-family:'Space Mono',monospace;margin-bottom:2rem;}
.pilot-col.light .pilot-col-label{color:var(--grey-dim);}
.pilot-col.dark .pilot-col-label{color:rgba(255,255,255,.2);}
.pilot-col h3{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700;letter-spacing:-.035em;line-height:.95;margin-bottom:1rem;}
.pilot-col.light h3{color:var(--ink);}
.pilot-col.dark h3{color:#fff;}
.pilot-col p{font-size:.9rem;line-height:1.8;max-width:360px;margin-bottom:2.5rem;}
.pilot-col.light p{color:var(--grey);}
.pilot-col.dark p{color:rgba(255,255,255,.32);}

/* ── STATS BAND ── */
.stats-band{
  background:transparent;
  padding:6rem 3rem 8rem;
  position:relative;overflow:clip;
}
/* video ghost removed — replaced by section-video */
.stats-band-inner{
  position:relative;z-index:1;
  max-width:1300px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1px 1fr 1px 1fr 1px 1fr;
  align-items:center;
}
/* ── SECTION VIDEO BACKGROUNDS ── */
.section-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:.14;
  filter:grayscale(0.7) brightness(0.45) contrast(1.0);
  pointer-events:none;
  mask-image:linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 14%, black 86%, transparent 100%);
}
.ucb-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  filter:grayscale(0.5) brightness(.32) contrast(1.1);
  transition:filter .7s ease;
  pointer-events:none;
}
.ucb:hover .ucb-video{
  filter:grayscale(.2) brightness(.46) contrast(1.05);
}

.sb-div{width:1px;height:90px;background:rgba(255,255,255,0.08);}
.sb-item{text-align:center;padding:2rem 1.5rem;}
.sb-eyebrow{
  font-family:'Space Mono',monospace;
  font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ochre);margin-bottom:.9rem;
  white-space:nowrap;
}
.sb-num{
  font-family:var(--serif);
  font-size:clamp(5rem,8.5vw,9.5rem);
  font-weight:400;line-height:.88;
  color:var(--ochre);margin-bottom:1rem;
}
.sb-pct{font-size:.42em;vertical-align:super;line-height:1;color:rgba(196,120,40,0.55);}
.sb-sub{font-size:.68rem;color:rgba(200,215,225,0.38);letter-spacing:.03em;line-height:1.5;}
.sb-title{font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:400;color:rgba(220,232,238,0.88);line-height:1.35;}

/* ── STATEMENT ── */
.statement{background:transparent;padding:0;/* height set by JS */}
.stmt-inner{
  position:sticky;top:0;
  max-width:820px;margin:0 auto 0 max(3rem,10vw);
  padding:5rem 3rem 5rem;
}
/* stmt-tag hidden until scroll reveals it */
.stmt-tag{
  opacity:0;transform:translateY(14px);
  transition:opacity .6s ease, transform .8s cubic-bezier(.16,1,.3,1);
}
.stmt-tag.stmt-lit{opacity:1;transform:none;}
.stmt-rule{opacity:0;transition:opacity .5s ease;}
.stmt-rule.stmt-lit{opacity:1;}

.stmt-tag{
  font-family:'Space Mono',monospace;font-size:.54rem;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(200,215,225,.22);margin-bottom:1.2rem;
}
.stmt-lines{display:flex;flex-direction:column;gap:0;}
.stmt-rule{width:32px;height:1px;background:rgba(200,215,225,.18);margin:.75rem 0;}

/* block-level reveal (kept for fallback) */
.sw-block{opacity:1;transform:none;}

/* word-by-word reveal */
.sw-word{
  display:inline-block;
  opacity:0;transform:translateY(12px);
  transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
}
.sw-word.sw-lit{opacity:1;transform:translateY(0);}

/* statement: words must NOT be individually hidden — parent .sl controls visibility */
.stmt-lines .sw-word{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
  display:inline;
}

/* statement section: line-by-line reveal */
.stmt-lines .sl{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s ease, transform .95s cubic-bezier(.16,1,.3,1);
}
.stmt-lines .sl.sl-display{
  transform:translateX(-64px);
  letter-spacing:.04em;
  transition:opacity .75s ease, transform 1.05s cubic-bezier(.16,1,.3,1), letter-spacing 1.3s cubic-bezier(.16,1,.3,1);
}
.stmt-lines .sl.sl-display:nth-of-type(2){transition-delay:0s,0s,0s;}
.stmt-lines .sl.sl-display + .sl.sl-display{transition-delay:.08s,.08s,.08s;}
.stmt-lines .sl.sl-display + .sl.sl-display + .sl.sl-display{transition-delay:.16s,.16s,.16s;}
.stmt-lines .sl.sl-em{
  transform:translateY(28px);
  transition:opacity .9s ease, transform 1.1s cubic-bezier(.16,1,.3,1);
}
.stmt-lines .sl.stmt-lit{
  opacity:1;
  transform:none;
  letter-spacing:inherit;
}

.sl-headline{
  font-family:var(--serif);
  font-size:clamp(2rem,3vw,2.8rem);
  font-weight:400;line-height:1.18;letter-spacing:-.025em;
  color:rgba(220,232,238,.88);
  margin-bottom:.2rem;
}
.sl-display{
  font-family:var(--serif);
  font-size:clamp(1.6rem,2.6vw,3rem);
  font-weight:400;line-height:1.15;letter-spacing:-.025em;
  color:rgba(220,232,238,.88);
  padding:.15rem 0;
}
.sl-em{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.6rem,2.4vw,2.2rem);
  font-weight:400;line-height:1.2;letter-spacing:-.02em;
  color:var(--ochre);
}
.sl-em em{font-style:inherit;}
.sl-body{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(.85rem,1vw,.98rem);
  font-weight:300;line-height:1.9;
  color:rgba(220,232,238,.55);
  padding:.15rem 0;
  cursor:default;
  transition:color .3s ease, opacity .8s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.sl-body:hover{color:rgba(220,232,238,.88);}
.sl-close{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(.9rem,1.1vw,1.05rem);
  font-weight:500;line-height:1.75;
  color:rgba(220,232,238,.75);
  padding:.6rem 0;
  letter-spacing:.01em;
}

/* ── CAPABILITY ROWS ── */
.cap-rows{background:transparent;}
.cap-rows-body{min-width:0;}
.cap-rows-header{
  padding:2.5rem 3rem 2rem;
  display:flex;justify-content:space-between;align-items:flex-end;
}
.cap-rows-header .section-label{margin-bottom:0;}
.cap-rows-header p{font-size:.9rem;color:rgba(220,232,238,0.45);line-height:1.6;max-width:260px;text-align:right;}

.cr-row{
  display:grid;
  grid-template-columns:56px 1fr 1fr;
  padding:1.8rem 3rem;
  transition:background .35s ease, opacity .65s ease, transform .8s cubic-bezier(.16,1,.3,1);
  align-items:start;
  gap:0 2rem;
  opacity:0;
  transform:translateY(18px);
}
.cr-row.cr-in{
  opacity:1;
  transform:none;
}
.cr-row:hover{
  background:rgba(255,255,255,.03);
  border-left-color:var(--ochre);
}
.cr-num{
  font-size:.48rem;font-family:'Space Mono',monospace;
  color:rgba(196,120,40,.35);
  grid-column:1;
  padding-top:.35rem;
  transition:color .35s;
}
.cr-row:hover .cr-num{color:rgba(196,120,40,.75);}
.cr-title{
  font-family:var(--serif);
  font-size:clamp(1.3rem,2vw,2rem);
  letter-spacing:.06em;
  transition:color .35s ease, letter-spacing .9s cubic-bezier(.16,1,.3,1);
  font-weight:500;letter-spacing:-.025em;
  color:rgba(230,240,245,.72);
  grid-column:2;
  transition:color .35s ease;
}
.cr-row.cr-in .cr-title{letter-spacing:-.02em;}
.cr-row:hover .cr-title{color:rgba(230,240,245,.96);}
.cr-body{
  grid-column:3;
  font-size:.83rem;color:rgba(220,232,238,0.28);line-height:1.85;
  transition:color .35s ease;
}
.cr-row:hover .cr-body{color:rgba(220,232,238,.65);}
.cap-rows-footer{
  padding:3rem 3rem;
  display:flex;justify-content:flex-end;
}

/* ── USE CASE BANDS — sticky vertical→horizontal scroll ── */
.uc-bands-wrapper{/* height set by JS */}
.uc-bands-sticky{
  position:sticky;top:0;
  overflow:clip;
  padding:.75rem 0 1.5rem;
}
.uc-bands-header{padding:0 3rem .5rem;}
.uc-bands{
  display:flex;
  flex-direction:row;
  overflow:hidden;
  padding:0 3rem;
  gap:2px;
}
.ucb{
  position:relative;
  flex:0 0 min(50vw,560px);
  height:36vh;min-height:220px;
  display:flex;align-items:flex-start;
  overflow:hidden;
  will-change:transform;
}
.ucb-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  filter:grayscale(1) brightness(.22) contrast(1.1);
  transition:filter .6s ease;
  transform:scale(1.0);
  mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
}
/* spotlight overlay — follows cursor via JS */
.ucb-spotlight{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(circle 38% at var(--sx,50%) var(--sy,50%), rgba(255,255,255,.11) 0%, transparent 70%);
  opacity:0;transition:opacity .4s ease;
}
.ucb:hover .ucb-spotlight{opacity:1;}
.ucb:hover .ucb-bg{filter:grayscale(.5) brightness(.38) contrast(1.05);}
.ucb-content{
  position:relative;z-index:1;
  width:100%;padding:1.5rem 2rem 2rem;
  display:grid;
  grid-template-columns:60px 1fr 1fr;
  align-items:end;gap:2rem;
}
.ucb-num{
  font-size:.5rem;font-family:'Space Mono',monospace;
  color:rgba(255,255,255,.22);padding-bottom:.3rem;
}
.ucb-title{
  font-family:var(--serif);
  font-size:clamp(1.6rem,2.8vw,2.8rem);
  font-weight:500;letter-spacing:-.02em;
  color:#fff;line-height:1.05;
  transition:letter-spacing .6s cubic-bezier(.16,1,.3,1), color .4s ease;
}
.ucb:hover .ucb-title{letter-spacing:-.01em;color:rgba(255,255,255,.95);}
.ucb-body{
  font-size:.85rem;color:rgba(255,255,255,0);
  line-height:1.75;
  transition:color .5s ease .08s;
}
.ucb:hover .ucb-body{color:rgba(255,255,255,.42);}

/* ── PILOT CTA ── */
.pilot-cta{
  background:transparent;
  padding:9rem 3rem;
  text-align:center;
  position:relative;overflow:clip;
}
.pilot-cta-inner{max-width:680px;margin:0 auto;position:relative;z-index:1;}
.pilot-cta .btn{color:var(--ink);}
.pilot-cta .section-label{color:var(--ochre);margin-bottom:2.5rem;display:block;}
.pilot-cta h2{
  font-size:clamp(1.5rem,2.4vw,2.6rem);
  font-weight:600;letter-spacing:-.02em;line-height:1.25;
  color:rgba(16,20,26,.88);margin-bottom:1.75rem;
}
.pilot-cta p{
  font-size:.92rem;color:rgba(16,20,26,.45);
  line-height:1.85;max-width:420px;margin:0 auto 3rem;
}

/* ── CONTACT FULL ── */
.contact{
  background:transparent;
  position:relative;overflow:clip;
  max-height:0;
  padding:0 3rem;
  opacity:0;
  pointer-events:none;
  transition:max-height 1.4s cubic-bezier(.16,1,.3,1), opacity .7s ease, padding .8s ease;
}
.contact.open{
  max-height:1600px;
  padding:10rem 3rem;
  opacity:1;
  pointer-events:all;
}
.contact-bg{
  position:absolute;inset:0;pointer-events:none;z-index:0;
}
@keyframes drone-drift{
  0%  { transform:scale(1.08) translate(0px, 0px); }
  33% { transform:scale(1.12) translate(-18px, 12px); }
  66% { transform:scale(1.06) translate(12px, -8px); }
  100%{ transform:scale(1.08) translate(0px, 0px); }
}
.contact-bg video{
  position:absolute;right:-5%;top:-5%;height:110%;width:65%;
  object-fit:cover;object-position:center;
  opacity:.18;
  filter:grayscale(1) brightness(0.85) contrast(1.05);
  mask-image:
    linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%),
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.4) 18%, black 55%);
  -webkit-mask-image:
    linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%),
    linear-gradient(to right, transparent 0%, rgba(0,0,0,0.4) 18%, black 55%);
  mask-composite: intersect;
  -webkit-mask-composite: source-in;
  transform-origin:center center;
}
.contact-inner{position:relative;z-index:1;}
.contact-inner{max-width:1100px;margin:0 auto;}
.contact-label{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);font-family:'Space Mono',monospace;margin-bottom:2rem;}
.contact h2{font-size:clamp(2.5rem,6vw,6.5rem);font-weight:700;line-height:.88;letter-spacing:-.045em;color:var(--ink);max-width:850px;margin-bottom:1.5rem;}
.contact-body{font-size:.95rem;color:rgba(16,20,26,.45);line-height:1.85;max-width:460px;margin-bottom:5rem;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(16,20,26,.08);max-width:660px;margin-bottom:1px;}
.form-cell{background:rgba(236,238,237,0.65);}
.form-cell label{font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(26,18,8,.3);font-family:'Space Mono',monospace;display:block;padding:.85rem 1.1rem .2rem;}
.form-cell input,.form-cell textarea{width:100%;background:transparent;border:none;color:var(--ink);padding:.2rem 1.1rem .85rem;font-size:.9rem;font-family:'Space Grotesk',sans-serif;outline:none;}
.form-cell input::placeholder,.form-cell textarea::placeholder{color:rgba(26,18,8,.25);}
.form-cell.has-error{background:rgba(196,40,40,.06);}
.form-cell.has-error label{color:rgba(160,30,30,.6);}
.form-cell.has-error input,.form-cell.has-error textarea{color:rgba(160,30,30,.7);}
.form-cell.has-error input::placeholder,.form-cell.has-error textarea::placeholder{color:rgba(160,30,30,.35);}
.form-cell.full{grid-column:1/3;}
.form-cell textarea{resize:none;height:90px;}
.form-submit{display:block;width:100%;max-width:660px;padding:1.15rem;background:transparent;border:1px solid rgba(26,18,8,.25);color:rgba(26,18,8,.6);font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-family:inherit;margin-top:1px;position:relative;overflow:hidden;transition:color .3s;}
.form-submit::before{content:'';position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .35s cubic-bezier(.16,1,.3,1);}
.form-submit:hover::before{transform:translateY(0);}
.form-submit span{position:relative;z-index:1;}
.form-submit:hover span{color:var(--paper);}
.form-success{display:none;padding:2.5rem;border:1px solid rgba(26,18,8,.1);max-width:660px;margin-top:1rem;}
.form-success p:first-child{font-size:.9rem;font-weight:600;color:var(--ink);margin-bottom:.5rem;}
.form-success p:last-child{font-size:.82rem;color:rgba(26,18,8,.4);}

/* ── MINI CONTACT CTA (home, platform) ── */
.mini-cta{background:var(--hero);padding:7rem 3rem;display:flex;flex-direction:column;gap:2.5rem;}
.mini-cta h2{font-size:clamp(2rem,5vw,5rem);font-weight:700;letter-spacing:-.045em;line-height:.88;color:#fff;max-width:720px;}
.mini-cta p{font-size:.9rem;color:rgba(255,255,255,.28);line-height:1.75;max-width:420px;}

/* ── FOOTER ── */
footer{background:#2a1c0c;display:flex;justify-content:space-between;align-items:center;padding:2rem 3rem;border-top:1px solid rgba(255,255,255,.06);}
.foot-logo{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:#fff;text-decoration:none;}
.foot-links{display:flex;gap:2rem;}
.foot-links a{font-size:.54rem;color:rgba(255,255,255,.18);font-family:'Space Mono',monospace;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:color .3s;}
.foot-links a:hover{color:rgba(255,255,255,.42);}
.foot-right{font-size:.54rem;color:rgba(255,255,255,.16);font-family:'Space Mono',monospace;letter-spacing:.06em;text-transform:uppercase;}

/* ── SOUND TOGGLE ── */
.sound-btn{
  position:fixed;bottom:2rem;right:2.5rem;z-index:500;
  background:rgba(14,8,4,.7);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.45);
  font-family:'Space Mono',monospace;font-size:.52rem;
  letter-spacing:.14em;text-transform:uppercase;
  padding:.6rem 1.2rem;
  transition:color .3s,border-color .3s;
  backdrop-filter:blur(12px);
}
.sound-btn:hover{color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.25);}
.sound-btn.active{color:var(--ochre);border-color:rgba(196,120,40,.5);}
.sound-btn .snd-on{display:none;}
.sound-btn.active .snd-off{display:none;}
.sound-btn.active .snd-on{display:inline;}

/* ── WILL-CHANGE PERF HINT ── */
.btn,.form-submit{will-change:transform;}

/* ── TOUCH DEVICES — restore cursor, kill grain + map ── */
@media(hover:none){
  *{cursor:auto;}
  a,button{cursor:pointer;}
  .cursor{display:none;}
  body::after{display:none;}
  #europeMap{display:none;}
}

/* ── TABLET ── */
@media(max-width:1024px){
  .stats-row{grid-template-columns:1fr auto 1fr;row-gap:0;}
  .stat-rule:nth-of-type(2){display:none;}
  .stat-block:nth-child(7){grid-column:1/4;border-top:1px solid rgba(255,255,255,0.06);padding-top:3rem;margin-top:1rem;}
  .platform-inner{grid-template-columns:1fr 320px 1fr;gap:2rem;}
  .annotation-body{font-size:.82rem;}
}

/* ── MOBILE ── */
@media(max-width:768px){
  .topnav{padding:1rem 1.25rem;}
  .nav-overlay{padding:4rem 1.25rem;}
  .overlay-item a{font-size:clamp(2.2rem,10vw,3.8rem);}

  /* hero */
  .hero{padding:5.5rem 1.25rem 2.5rem;}
  .hero h1{font-size:clamp(2.4rem,9vw,9.5rem);}
  .hero-bottom-grid{grid-template-columns:1fr;gap:2.5rem;}
  .hero-sub{max-width:100%;}
  .hero-actions{justify-content:flex-start;}
  #europeMap{display:none;}
  #heroGL{opacity:.4;}

  /* hero fusion diagram — stack vertically */
  .hs-fusion{flex-direction:column;align-items:flex-start;gap:1.5rem;}
  .hs-sources{flex-direction:row;flex-wrap:wrap;gap:.5rem;}
  .hs-src-wire{display:none;}
  .hs-node{display:none;}
  .hs-outcome{padding-left:0;}
  .hs-outcome-key{font-size:clamp(1rem,5vw,1.4rem);}
  .hs-tags{gap:.4rem .6rem;}
  .hero-desc p{font-size:.82rem;}

  /* inner page heroes */
  .page-hero{padding:5.5rem 1.25rem 3rem;}
  .page-hero h1{font-size:clamp(2.2rem,9vw,7rem);}
  .oversize-hero{padding:5.5rem 1.25rem 3.5rem;}
  .oversize-hero h1{white-space:normal;font-size:clamp(2.8rem,11vw,7rem);}

  /* stats band — 2x2 grid */
  .stats-band{padding:4rem 1.25rem 5rem;}
  .stats-band-inner{
    grid-template-columns:1fr 1px 1fr;
    grid-template-rows:auto 1px auto;
    gap:0;
  }
  .sb-item{padding:2rem 1rem;}
  .sb-eyebrow{white-space:normal;font-size:.5rem;}
  .sb-title{font-size:clamp(.9rem,3.5vw,1.2rem);}
  /* hide 2nd and 4th vertical dividers, show horizontal one */
  .sb-div:nth-child(2){display:none;}
  .sb-div:nth-child(4){grid-column:1/4;width:auto;height:1px;}
  .sb-div:nth-child(6){display:none;}

  /* statement */
  .statement{padding:2.5rem 1.25rem 3rem;}
  .stmt-inner{margin:0 auto;max-width:100%;}
  .sl-headline{font-size:clamp(1.7rem,6vw,2.4rem);}
  .stmt-image-panel{display:none;}
  .sl-em{font-size:clamp(1.4rem,5vw,1.9rem);}

  /* capability rows */
  .cap-rows{padding:0 1.25rem;}
  .cap-rows-header{grid-template-columns:1fr;gap:1rem;padding:3.5rem 0 2.5rem;}
  .cap-rows-header p{text-align:left;max-width:100%;}
  .cr-row{padding:1.5rem 0;grid-template-columns:2rem 1fr 1.5rem;}
  .cr-body{grid-column:1/4;padding-top:.75rem;}

  /* UCB bands */
  .uc-bands{padding:0 1.25rem;gap:2px;}
  .ucb{flex:0 0 88vw;height:55vw;min-height:240px;}
  .ucb-title{font-size:clamp(1.6rem,7vw,2.5rem);}
  .ucb-body{font-size:.78rem;max-width:100%;}

  /* pilot cta */
  .pilot-cta{padding:5rem 1.25rem;}
  .pilot-cta h2{font-size:clamp(2rem,8vw,3.5rem);}

  /* contact / request access */
  .contact{padding:5rem 1.25rem;}
  .contact h2{font-size:clamp(2rem,7vw,3.5rem);}
  .contact-bg img{width:100%;opacity:.1;}
  .form-grid{grid-template-columns:1fr;}
  .form-cell.full{grid-column:1;}
  .form-submit{width:100%;}

  /* sound button */
  .sound-btn{bottom:1.25rem;right:1.25rem;font-size:.45rem;padding:.5rem 1rem;}

  /* footer */
  footer{flex-direction:column;gap:1.25rem;text-align:center;padding:2rem 1.25rem;}
  .foot-links{justify-content:center;flex-wrap:wrap;}

  .mini-cta{padding:4rem 1.25rem;}
  .platform-cta{justify-content:flex-start;}
  .cases-footer{justify-content:flex-start;}
}

/* ── FLOAT ANIMATION (platform photo drifts like a hovering drone) ── */
@keyframes drone-float{
  0%,100%{transform:translateY(0) rotate(0deg);}
  30%{transform:translateY(-12px) rotate(.3deg);}
  70%{transform:translateY(-8px) rotate(-.2deg);}
}
.platform-photo-float{
  animation:drone-float 8s ease-in-out infinite;
}

/* ── OLD MARQUEE BAND (platform pages) ── */
.marquee-band{
  background:var(--ink);overflow:hidden;padding:1.1rem 0;white-space:nowrap;
}
.marquee-band:hover .marquee-track{animation-play-state:paused;}
.marquee-track{
  display:inline-flex;align-items:center;gap:0;
  animation:marquee 32s linear infinite;
}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.marquee-item{
  font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  font-family:'Space Mono',monospace;color:rgba(255,255,255,0.22);
  flex-shrink:0;padding:0 2rem;
}
.marquee-dot{
  font-size:.6rem;color:var(--ochre);opacity:.5;
  font-family:'Space Mono',monospace;flex-shrink:0;
}

/* ── SONAR CLICK PING ── */
.ping{
  position:fixed;width:6px;height:6px;border-radius:50%;
  border:1.5px solid rgba(28,24,18,.45);
  transform:translate(-50%,-50%) scale(0);
  pointer-events:none;z-index:9997;
}
@keyframes sonar-ping{
  0%{transform:translate(-50%,-50%) scale(0);opacity:1;border-color:rgba(28,24,18,.5);}
  60%{opacity:.4;}
  100%{transform:translate(-50%,-50%) scale(10);opacity:0;}
}
.ping.fire{animation:sonar-ping .7s cubic-bezier(.16,1,.3,1) forwards;}

/* ── SECTION FADE TRANSITIONS ── */
/* continuous gradient — no hard edges */
.stats-band::before,.stats-band::after{display:none;}
.cap-rows{position:relative;}

/* ── DRIFTING SHAPE ── */
@keyframes drift-a{
  0%  {transform:translate(0,0) rotate(0deg);
       border-radius:62% 38% 46% 54% / 60% 44% 56% 40%;}
  25% {transform:translate(4%,-6%) rotate(6deg);
       border-radius:40% 60% 54% 46% / 48% 62% 38% 52%;}
  50% {transform:translate(-5%,4%) rotate(-4deg);
       border-radius:55% 45% 38% 62% / 52% 40% 60% 48%;}
  75% {transform:translate(6%,6%) rotate(8deg);
       border-radius:38% 62% 60% 40% / 40% 55% 45% 60%;}
  100%{transform:translate(0,0) rotate(0deg);
       border-radius:62% 38% 46% 54% / 60% 44% 56% 40%;}
}
@keyframes drift-b{
  0%  {transform:translate(0,0) rotate(0deg);
       border-radius:45% 55% 60% 40% / 55% 40% 60% 45%;}
  33% {transform:translate(-6%,5%) rotate(-7deg);
       border-radius:60% 40% 42% 58% / 38% 60% 40% 62%;}
  66% {transform:translate(5%,-4%) rotate(5deg);
       border-radius:38% 62% 55% 45% / 60% 42% 58% 40%;}
  100%{transform:translate(0,0) rotate(0deg);
       border-radius:45% 55% 60% 40% / 55% 40% 60% 45%;}
}
.drift-shape{
  position:absolute;pointer-events:none;
  width:min(55vw,680px);height:min(55vw,680px);
}
.drift-shape--warm{
  background:radial-gradient(ellipse at 50% 50%,rgba(196,120,40,0.10) 0%,transparent 68%);
  top:-15%;left:-8%;
  animation:drift-a 18s ease-in-out infinite;
}
.drift-shape--spice{
  background:radial-gradient(ellipse at 50% 50%,rgba(196,120,40,0.14) 0%,transparent 65%);
  bottom:-20%;right:-10%;
  animation:drift-b 22s ease-in-out infinite;
}
.statement{position:relative;}
.pilot-cta{position:relative;overflow:hidden;}

/* ── FILM GRAIN OVERLAY ── */
@keyframes grain{
  0%,100%{transform:translate(0,0)}
  10%{transform:translate(-4%,-6%)}
  20%{transform:translate(6%,3%)}
  30%{transform:translate(-2%,7%)}
  40%{transform:translate(7%,-3%)}
  50%{transform:translate(-6%,4%)}
  60%{transform:translate(3%,-7%)}
  70%{transform:translate(-7%,2%)}
  80%{transform:translate(4%,6%)}
  90%{transform:translate(-3%,-4%)}
}
body::after{
  content:'';position:fixed;
  inset:-10%;width:120%;height:120%;
  pointer-events:none;z-index:9990;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
  mix-blend-mode:overlay;
  animation:grain .65s steps(1) infinite;
}

/* ── TYPOGRAPHIC SYSTEM ─────────────────────────────────────────────
   Cormorant Garamond  editorial headlines, section titles
   Space Grotesk       body copy, nav, descriptions, buttons
   Space Mono          labels, data, numbers, eyebrows
─────────────────────────────────────────────────────────────────── */

/* Display headlines — all h1 */
.hero h1,
.page-hero h1,
.oversize-hero h1{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-.028em;
}
/* Dim / echo lines within h1 — italic contrast */
.hero h1 .dim,
.page-hero h1 .dim,
.oversize-hero h1 .dim{
  font-style:italic;
  font-weight:500;
}

/* Section headings — h2 */
.contact h2,
.usecases h2{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-.022em;
}
.uc-detail h2{
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.02em;
  line-height:.92;
}

/* Sub-headings — h3 */
.pilot-col h3{
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.018em;
  line-height:.95;
}

/* Sticky feature key */
.feat-sticky-key{
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.015em;
}

/* Platform annotations — editorial caption voice */
.annotation-title{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  letter-spacing:0;
  font-size:1.08rem;
}

/* Overlay nav — large refined serif, light weight */
.overlay-item a{
  font-family:var(--serif);
  font-weight:300;
  letter-spacing:-.03em;
}
.overlay-item a.active{
  font-style:italic;
}
.overlay-item a:hover{
  font-style:italic;
}

/* ── SECTION WIPE LINE ── */
.sec-wipe{position:relative;}

/* ── STICKY FEATURES ── */
.feat-sticky-wrap{
  display:grid;grid-template-columns:240px 1fr;gap:6rem;align-items:start;
}
.feat-sticky-left{
  position:sticky;top:32vh;height:fit-content;overflow:hidden;
  padding-bottom:2rem;
}
.feat-sticky-num{
  font-size:clamp(7rem,13vw,12rem);font-weight:700;letter-spacing:-.05em;
  line-height:.88;color:var(--ochre);opacity:.1;
  font-family:'Space Mono',monospace;display:block;
  margin-bottom:-.55em;
  transition:opacity .25s ease;
}
.feat-sticky-key{
  font-size:clamp(.95rem,1.7vw,1.5rem);font-weight:700;
  letter-spacing:-.025em;line-height:1.15;color:var(--ink);
  position:relative;z-index:1;
  transition:opacity .22s ease,transform .22s cubic-bezier(.16,1,.3,1);
}
.feat-sticky-left.switching .feat-sticky-key{opacity:0;transform:translateY(-8px);}
.feat-sticky-left.switching .feat-sticky-num{opacity:.05;}
.feat-item{
  padding:3.5rem 0;border-top:1px solid var(--rule);
}
.feat-item:last-child{border-bottom:1px solid var(--rule);}
.feat-item-num{
  font-size:.55rem;color:var(--grey-dim);font-family:'Space Mono',monospace;
  margin-bottom:1rem;display:none;
}

/* ── HORIZONTAL SCROLL CASES ── */
.cases-h-wrap{position:relative;}
.cases-h-wrap::after{
  content:'';position:absolute;top:0;right:0;bottom:0;
  width:90px;pointer-events:none;z-index:4;
  background:linear-gradient(to right,transparent,var(--greige));
  transition:opacity .4s ease;
}
.cases-h-wrap.at-end::after{opacity:0;}
.cases-h-scroll{
  display:flex;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
  border:1px solid var(--rule);gap:1px;background:var(--rule);
  cursor:grab;
}
.cases-h-scroll::-webkit-scrollbar{display:none;}
.cases-h-scroll.grabbing{cursor:grabbing;}
.cases-h-scroll .case-card{min-width:max(360px,30vw);flex-shrink:0;}
.cases-drag-hint{
  font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;
  font-family:'Space Mono',monospace;color:var(--grey-dim);
  margin-top:.85rem;
}

