/* =========================================================
   In-Pipe Logistics — light mode, Kinetic-style
   Rounded geometric type, floating rounded media cards,
   pill buttons, translucent blue slash motif.
   ========================================================= */

:root{
  --bg:#EDF2F3;
  --ink:#0a1a22;
  --ink-2:#586a71;
  --card:#ffffff;
  --blue:#12b5d4;            /* aqua primary (link/arrow) */
  --blue-deep:#0d90ab;
  --blue-ink:#063442;
  --teal:#0e9aa0;
  --marine:#0b4f6c;
  --cyan:#43d7ec;
  --grad-liquid:linear-gradient(135deg,#0e9aa0 0%,#12b5d4 52%,#43d7ec 100%);
  --grad-deep:linear-gradient(135deg,#0b4f6c 0%,#12b5d4 100%);
  --line: rgba(10,26,34,.10);
  --line-2: rgba(10,26,34,.06);

  --r-xl:34px;
  --r-lg:24px;
  --r-md:18px;

  --pad: clamp(1rem, 4vw, 3rem);   /* outer gutter */
  --gap: clamp(.6rem, 1.2vw, 1rem);
  --maxw:1600px;

  --font:"Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-liquid:cubic-bezier(.65,.05,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-weight:500;font-size:clamp(1rem,1.05vw,1.075rem);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,h4{margin:0;font-weight:300;line-height:1.02;letter-spacing:-.015em}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
img{display:block;max-width:100%}

/* headings — light-weight, lowercase-friendly Kinetic style */
.h-lg{font-size:clamp(2.1rem,4.6vw,4rem);font-weight:300}
.h-md{font-size:clamp(1.9rem,3.4vw,3rem);font-weight:300}

/* ---------- pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:.6rem;
  font-weight:600;font-size:.92rem;letter-spacing:.005em;
  padding:.72rem 1.2rem;border-radius:999px;line-height:1;white-space:nowrap;
  transition:background .3s var(--ease),color .3s,border-color .3s,transform .3s var(--ease);
}
.pill{position:relative;overflow:hidden}
.pill--fill{background:var(--grad-liquid);background-size:180% 180%;color:#fff;
  transition:background-position .5s var(--ease),transform .3s var(--ease)}
.pill--fill:hover{background-position:100% 0;transform:translateY(-2px)}
.pill--ghost{border:1.5px solid var(--line);color:var(--ink)}
.pill--ghost:hover{border-color:var(--ink)}
.pill--white{background:#fff;color:var(--ink);box-shadow:0 2px 20px rgba(10,26,34,.10)}
.pill--white:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(18,181,212,.22)}
.pill--lg{padding:.95rem .95rem .95rem 1.5rem;font-size:1rem}

.arw{transition:transform .3s var(--ease);position:relative;z-index:1}
.pill span,.pill i{position:relative;z-index:1}
.pill:hover .arw{transform:translateX(4px)}
.arw-circle{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;
  background:var(--grad-liquid);color:#fff;font-size:.95rem;transition:transform .3s var(--ease)}
.pill:hover .arw-circle{transform:translateX(3px) rotate(0)}
/* click ripple */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);
  transform:scale(0);pointer-events:none;z-index:0}
.pill--white .ripple{background:rgba(18,181,212,.28)}

/* ---------- teardrop logo mark ---------- */
.logo__drop{display:inline-block;width:.52em;height:.52em;margin:0 .06em;
  background:var(--grad-liquid);border-radius:50% 50% 50% 0;transform:rotate(45deg) translateY(-.02em);
  vertical-align:baseline}

/* ---------- fluid motif: light-blobs + water-surface wave ---------- */
.blob{position:absolute;border-radius:50%;filter:blur(34px);z-index:3;pointer-events:none;mix-blend-mode:screen;opacity:.55}
.blob--1{width:clamp(200px,26vw,380px);aspect-ratio:1;left:-4%;top:16%;
  background:radial-gradient(circle at 35% 35%, #43d7ec, transparent 70%)}
.blob--2{width:clamp(240px,32vw,460px);aspect-ratio:1;right:-6%;top:8%;
  background:radial-gradient(circle at 50% 50%, #12b5d4, transparent 70%)}
.blob--3{width:clamp(160px,20vw,300px);aspect-ratio:1;left:42%;bottom:2%;
  background:radial-gradient(circle at 50% 50%, #0e9aa0, transparent 70%)}
.wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:clamp(70px,10vw,140px);z-index:3;pointer-events:none}
.wave path{fill:url(#liquidGrad)}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  padding:clamp(1rem,2.2vw,1.7rem) clamp(1.2rem,4vw,3.4rem);
  color:#fff;transition:padding .4s var(--ease);
}
.nav.is-stuck{padding-top:.8rem;padding-bottom:.8rem}
.nav.is-stuck .nav__inner{}
.logo{font-weight:800;font-size:1.4rem;letter-spacing:.02em;color:#fff}
.logo__slash{color:var(--blue);font-weight:800;margin:0 .02em;
  display:inline-block;transform:skewX(-8deg)}
.nav__links{display:flex;gap:2rem;font-weight:600;font-size:.98rem}
.nav__links a{position:relative;opacity:.92;transition:opacity .25s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:currentColor;transition:width .3s var(--ease)}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{width:100%}
.nav__actions{display:flex;align-items:center;gap:.6rem}
.nav .pill--ghost{border-color:rgba(255,255,255,.4);color:#fff}
.nav .pill--ghost:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.nav .pill--fill{background:#fff;color:var(--ink)}
.nav .pill--fill:hover{background:var(--blue);color:#fff}

/* stuck: dark text on a floating white pill bar */
.nav.is-stuck{color:var(--ink);
  margin:clamp(.6rem,1.4vw,1rem);border-radius:999px;
  background:rgba(255,255,255,.86);backdrop-filter:blur(14px);
  box-shadow:0 6px 30px rgba(8,18,30,.10);
  inset:0 auto auto 0;width:calc(100% - clamp(1.2rem,2.8vw,2rem));}
.nav.is-stuck .logo{color:var(--ink)}
.nav.is-stuck .nav__links a{opacity:.75}
.nav.is-stuck .nav__links a:hover{opacity:1}
.nav.is-stuck .pill--ghost{border-color:var(--line);color:var(--ink)}
.nav.is-stuck .pill--ghost:hover{border-color:var(--ink)}
.nav.is-stuck .pill--fill{background:var(--ink);color:#fff}
.nav.is-stuck .pill--fill:hover{background:var(--blue)}

/* =========================================================
   HERO
   ========================================================= */
.hero{padding:var(--pad);padding-top:0}
.hero__card{
  position:relative;height:calc(100svh - var(--pad));min-height:600px;
  border-radius:var(--r-xl);overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  isolation:isolate;
}
.hero__media,.band__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero__media{transform:scale(1.14);will-change:transform}
.hero__scrim{position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(6,20,32,.55),rgba(6,20,32,.28) 40%,rgba(6,20,32,.6))}
.hero__inner{position:relative;z-index:4;text-align:center;color:#fff;padding:0 1.2rem;max-width:min(1100px,90vw)}
.hero__eyebrow{font-weight:700;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:.9;margin:0 0 1.4rem}
.hero__title{font-size:clamp(2.6rem,7.4vw,6.6rem);font-weight:300;line-height:.98;letter-spacing:-.02em}
.hero__title .ln{display:block}
.hero__sub{max-width:46ch;margin:1.6rem auto 0;font-weight:500;font-size:clamp(1rem,1.4vw,1.2rem);
  color:rgba(255,255,255,.9);line-height:1.55}
.hero__inner .pill{margin-top:2rem}
.hero__scroll{position:absolute;left:50%;bottom:clamp(1.2rem,3vh,2.2rem);transform:translateX(-50%);
  z-index:4;color:#fff;display:flex;flex-direction:column;align-items:center;gap:.35rem;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;opacity:.85}
.hero__scroll i{animation:bob 1.8s var(--ease) infinite;font-style:normal}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* =========================================================
   INTRO + BENTO
   ========================================================= */
.intro{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vh,8rem) var(--pad) 0}
.intro__head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,4vw,4rem);align-items:end;
  margin-bottom:clamp(2rem,5vw,3.5rem)}
.intro__lede{color:var(--ink-2);max-width:52ch}
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.tile{border-radius:var(--r-lg);overflow:hidden;min-height:clamp(180px,20vw,260px)}
.tile--img{background:#dfe6ea}
.tile--img img{width:100%;height:100%;object-fit:cover}
.tile--stat{background:var(--card);padding:clamp(1.3rem,2vw,2rem);display:flex;flex-direction:column;
  justify-content:flex-end;box-shadow:0 1px 0 var(--line-2)}
.tile--blue{background:var(--blue);color:#fff}
.stat__num{font-weight:300;font-size:clamp(2.6rem,4.2vw,4.2rem);line-height:.95;letter-spacing:-.03em}
.tile--blue .stat__num{font-weight:400}
.stat__lab{margin-top:.6rem;font-weight:700;font-size:.98rem}
.stat__sub{margin-top:.2rem;font-weight:500;font-size:.85rem;color:var(--ink-2)}
.tile--blue .stat__sub{color:rgba(255,255,255,.8)}
.intro__foot{max-width:44ch;margin:clamp(2rem,4vw,3rem) 0 0;color:var(--ink-2);font-size:1.05rem}

/* =========================================================
   AREAS
   ========================================================= */
.areas{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vh,8rem) var(--pad) 0;
  display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(1.5rem,4vw,4.5rem);align-items:center}
.areas__img{border-radius:var(--r-xl);overflow:hidden;margin:0}
.areas__img img{width:100%;height:100%;object-fit:cover;aspect-ratio:9/8}
.tabs{display:flex;gap:.4rem;margin-bottom:1.6rem}
.tab{font-family:inherit;font-weight:700;font-size:.82rem;letter-spacing:.04em;
  padding:.5rem 1rem;border-radius:999px;border:1.5px solid var(--line);background:transparent;
  color:var(--ink-2);cursor:pointer;transition:all .25s}
.tab:hover{border-color:var(--ink)}
.tab.is-active{background:var(--blue);border-color:var(--blue);color:#fff}
.areas__body .h-lg{margin:0 0 1.4rem}
.areas__desc{color:var(--ink-2);max-width:48ch;margin:0 0 1.8rem}
.areas__desc.is-hidden{display:none}
.areas__list{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem 1rem;margin:0 0 2rem;max-width:36rem}
.areas__list li{position:relative;padding-left:1.1rem;font-weight:600;color:var(--blue-deep)}
.areas__list li::before{content:"/";position:absolute;left:0;color:var(--blue);font-weight:800}

/* =========================================================
   BAND
   ========================================================= */
.band{padding:clamp(4rem,9vh,8rem) var(--pad) 0}
.band__card{position:relative;max-width:var(--maxw);margin:0 auto;
  height:clamp(360px,52vh,560px);border-radius:var(--r-xl);overflow:hidden;
  display:grid;place-items:center;isolation:isolate}
.band__scrim{position:absolute;inset:0;z-index:2;background:rgba(6,22,34,.5)}
.band__inner{position:relative;z-index:4;text-align:center;color:#fff;padding:1.2rem}
.band__title{font-size:clamp(1.9rem,4.4vw,3.6rem);font-weight:300;line-height:1.04}
.band__inner .pill{margin-top:1.8rem}

/* =========================================================
   ROWS (alternating)
   ========================================================= */
.row{max-width:var(--maxw);margin:0 auto;padding:clamp(3.5rem,7vh,6.5rem) var(--pad) 0;
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4.5rem);align-items:center}
.row--rev .row__img{order:2}
.row__img{border-radius:var(--r-xl);overflow:hidden;margin:0}
.row__img img{width:100%;height:100%;object-fit:cover;aspect-ratio:7/5}
.eyebrow{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.82rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0 0 1.2rem}
.eyebrow i{color:var(--blue);font-style:normal;font-weight:800;font-size:1.1em}
.row__desc{color:var(--ink-2);max-width:44ch;margin:1.2rem 0 1.8rem}

/* =========================================================
   NEWS (dark)
   ========================================================= */
.news{background:var(--ink);color:#fff;margin-top:clamp(4rem,9vh,8rem);
  border-radius:var(--r-xl);padding:clamp(2.5rem,5vw,4.5rem) 0;
  margin-left:var(--pad);margin-right:var(--pad)}
.news__head{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.5rem,4vw,3.5rem) 2rem;
  display:flex;align-items:flex-end;justify-content:space-between}
.news__title{font-size:clamp(1.8rem,3.6vw,3rem);font-weight:300}
.news__ctrl{display:flex;gap:.6rem}
.nudge{width:3rem;height:3rem;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);
  background:transparent;color:#fff;font-size:1.1rem;cursor:pointer;transition:all .25s}
.nudge:hover{background:#fff;color:var(--ink);border-color:#fff}
.news__track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:0 clamp(1.5rem,4vw,3.5rem);scrollbar-width:none;scroll-behavior:smooth}
.news__track::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(280px,32vw,440px);scroll-snap-align:start}
.card__img{border-radius:var(--r-lg);overflow:hidden;margin:0 0 1.2rem;aspect-ratio:3/2;background:#0f2231}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.card:hover .card__img img{transform:scale(1.05)}
.card__tags{display:flex;gap:.5rem;margin-bottom:.8rem;flex-wrap:wrap}
.card__tags span{font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.28rem .7rem;
  border-radius:999px;background:rgba(255,255,255,.12)}
.card__title{font-size:1.25rem;font-weight:400;line-height:1.25}
.card__date{margin:.6rem 0 0;font-size:.85rem;color:rgba(255,255,255,.55);font-weight:500}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{padding:clamp(3rem,6vw,5rem) var(--pad) 2rem;max-width:calc(var(--maxw) + 2 * var(--pad));margin:0 auto}
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  background:var(--blue);color:#fff;border-radius:var(--r-xl);
  padding:clamp(2rem,4vw,3.4rem) clamp(1.6rem,4vw,3.4rem);margin-bottom:clamp(2.5rem,5vw,4rem);
  transition:background .3s}
.cta:hover{background:var(--blue-deep)}
.cta__txt{font-size:clamp(1.8rem,4vw,3.2rem);font-weight:300;letter-spacing:-.02em}
.cta__act{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem;
  background:rgba(255,255,255,.16);padding:.9rem 1.4rem;border-radius:999px}
.cta:hover .cta__act .arw{transform:translateX(4px)}

.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2rem;
  padding-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.foot__brand p{color:var(--ink-2);max-width:34ch;margin:1rem 0 0}
.logo--dark{color:var(--ink);font-size:1.5rem}
.foot__col h4{font-weight:800;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-2);margin-bottom:1rem}
.foot__col a{display:block;padding:.32rem 0;font-weight:600;transition:color .2s}
.foot__col a:hover{color:var(--blue)}
.foot__contact address{font-style:normal;color:var(--ink-2);font-weight:500;margin-top:.8rem;line-height:1.6}
.foot__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;
  padding-top:1.4rem;font-size:.85rem;color:var(--ink-2);font-weight:500}

/* =========================================================
   BRAND LOADER (only when JS + motion — .anim on <html>)
   ========================================================= */
.loader{display:none}
.anim .loader{
  position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.4rem;background:var(--grad-deep);
}
.loader__mark{font-weight:700;font-size:clamp(2.2rem,7vw,4.4rem);color:#fff;letter-spacing:-.01em}
.loader__mark .logo__drop{background:#fff}
.loader__bar{width:min(220px,46vw);height:3px;border-radius:999px;background:rgba(255,255,255,.3);overflow:hidden}
.loader__fill{display:block;width:0;height:100%;background:#fff;border-radius:999px}

/* =========================================================
   WORD-MASK REVEAL (headings)
   ========================================================= */
.line-mask{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.word{display:inline-block;will-change:transform}

/* =========================================================
   CURTAIN IMAGE REVEAL
   ========================================================= */
.reveal-img{position:relative}
.reveal-img img{will-change:transform}
.curtain{position:absolute;inset:-1px;z-index:4;background:var(--blue);will-change:transform}

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{overflow:hidden;margin-top:clamp(3rem,7vh,6rem);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(.9rem,2vw,1.5rem) 0}
.marquee__track{display:flex;align-items:center;gap:2.2rem;width:max-content;white-space:nowrap;will-change:transform}
.marquee__track span{font-size:clamp(1.4rem,3.2vw,2.6rem);font-weight:400;letter-spacing:-.01em;color:var(--ink)}
.marquee__track .drop{display:inline-block;width:.62rem;height:.62rem;flex:none;
  background:var(--grad-liquid);border-radius:50% 50% 50% 0;transform:rotate(45deg)}

/* =========================================================
   REVEAL
   ========================================================= */
.anim .reveal{opacity:0;transform:translateY(26px);will-change:transform,opacity}
.anim [data-hero]{opacity:0}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1000px){
  .nav__links{display:none}
  .intro__head{grid-template-columns:1fr;gap:1.2rem}
  .bento{grid-template-columns:repeat(2,1fr)}
  .areas{grid-template-columns:1fr}
  .areas__img{order:-1;max-height:380px}
  .row,.row--rev{grid-template-columns:1fr;gap:1.2rem}
  .row--rev .row__img{order:-1}
  .row__img,.row--rev .row__img{order:-1}
  .foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .nav .pill--ghost{display:none}
  .bento{grid-template-columns:1fr 1fr}
  .tile{min-height:150px}
  .areas__list{grid-template-columns:1fr 1fr}
  .cta{flex-direction:column;align-items:flex-start}
  .foot__grid{grid-template-columns:1fr;gap:1.6rem}
  .hero__card{height:calc(100svh - var(--pad));min-height:520px}
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto}
  .reveal,.reveal-img,[data-hero]{opacity:1 !important;transform:none !important;clip-path:none !important}
}

a:focus-visible,button:focus-visible,.pill:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:999px}
