/* ============================================================
   MERIDIAN INDUSTRIAL
   PREMIUM MANUFACTURING / ENGINEERING DESIGN SYSTEM

   PRIMARY BRAND:
   #001E38
============================================================ */

:root{

  --primary:#001E38;
  --primary-950:#000c18;
  --primary-900:#001326;
  --primary-800:#002744;
  --primary-700:#073958;

  --blue:#3ec8ff;
  --blue-soft:#8be1ff;
  --blue-dark:#0878a8;

  --white:#ffffff;
  --offwhite:#f5f8fa;
  --light:#e9eef2;

  --text:#17212b;
  --muted:#657481;
  --line:#dbe3e8;

  --dark-text:#b5c4cf;
  --dark-line:rgba(255,255,255,.11);

  --font-display:'Archivo',sans-serif;
  --font-body:'Inter',sans-serif;

  --container:1380px;
  --gutter:clamp(1rem,4vw,3.5rem);

  --ease:cubic-bezier(.16,1,.3,1);

  --shadow:0 30px 80px rgba(0,30,56,.15);
  --shadow-dark:0 30px 80px rgba(0,0,0,.3);

}


/* ============================================================
   RESET
============================================================ */

*,
*::before,
*::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

body.nav-open{
  overflow:hidden;
}

img,
video{
  display:block;
  max-width:100%;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

button{
  cursor:pointer;
  border:0;
}

ul{
  list-style:none;
}

h1,
h2,
h3,
h4{
  font-family:var(--font-display);
  line-height:1.04;
}

::selection{
  background:var(--blue);
  color:var(--primary);
}

:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:4px;
}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}


/* ============================================================
   LOADER
============================================================ */

.page-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--primary);
  display:grid;
  place-items:center;
  transition:opacity .7s var(--ease),visibility .7s;
}

.page-loader.is-loaded{
  opacity:0;
  visibility:hidden;
}

.loader-core{
  width:70px;
  height:70px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  display:grid;
  place-items:center;
  position:relative;
}

.loader-core::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(62,200,255,.35);
  border-top-color:var(--blue);
  border-radius:50%;
  animation:spin 1.2s linear infinite;
}

.loader-core span{
  width:4px;
  height:4px;
  background:var(--blue);
  border-radius:50%;
  animation:pulse 1s ease-in-out infinite;
}

.loader-text{
  position:absolute;
  bottom:40px;
  left:0;
  width:100%;
  text-align:center;
  font-size:10px;
  letter-spacing:.22em;
  color:#7890a0;
}

@keyframes spin{
  to{transform:rotate(360deg);}
}

@keyframes pulse{
  50%{transform:scale(2);}
}


/* ============================================================
   CUSTOM CURSOR
============================================================ */

.cursor-dot,
.cursor-ring{
  position:fixed;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
}

.cursor-dot{
  width:5px;
  height:5px;
  background:var(--blue);
  border-radius:50%;
}

.cursor-ring{
  width:32px;
  height:32px;
  border:1px solid rgba(62,200,255,.65);
  border-radius:50%;
  transition:width .2s,height .2s;
}

@media(max-width:900px){
  .cursor-dot,
  .cursor-ring{
    display:none;
  }
}


/* ============================================================
   COMMON
============================================================ */

.section{
  position:relative;
  padding-block:clamp(5rem,9vw,9rem);
  overflow:hidden;
}

.section-code{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--primary);
  margin-bottom:1.3rem;
}

.section-code::before{
  content:"";
  width:30px;
  height:1px;
  background:currentColor;
}

.section-code.light{
  color:var(--blue);
}

.eyebrow{
  display:block;
  font-size:.7rem;
  letter-spacing:.18em;
  font-weight:700;
  color:var(--blue-dark);
  margin-bottom:1rem;
}

.section-heading{
  font-size:clamp(1rem,2vw,2rem);
  letter-spacing:-.02em;
}

.section-heading span,
.mega-title span{
  color:var(--blue-dark);
}

.section-intro-dark{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:end;
  gap:3rem;
  margin-bottom:2.5rem;
  color:var(--white);
}

.section-intro-dark h2{
  font-size:clamp(1.5rem,5vw,3rem);
  letter-spacing:-.045em;
}

.section-intro-dark h2 span{
  color:var(--blue);
}

.section-intro-dark > p{
  color:var(--dark-text);
  max-width:46ch;
}

.section-head-row{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:3rem;
  margin-bottom:4rem;
}

.section-head-row > p{
  max-width:44ch;
  color:var(--muted);
}


/* ============================================================
   BUTTONS
============================================================ */

.btn{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  padding:0 1.5rem;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.05em;
  transition:.35s var(--ease);
}

.btn svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  transition:transform .35s var(--ease);
}

.btn:hover svg{
  transform:translateX(5px);
}

.btn-primary{
  background:var(--blue);
  color:var(--primary);
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);
}

.btn-primary:hover{
  background:var(--white);
  transform:translateY(-3px);
}

.btn-outline{
  border:1px solid rgba(255,255,255,.3);
  color:var(--white);
}

.btn-outline:hover{
  border-color:var(--blue);
  background:rgba(62,200,255,.08);
}


/* ============================================================
   HEADER
============================================================ */

.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  color:var(--white);
  background:linear-gradient(180deg,rgba(0,30,56,.92),transparent);
  transition:.45s var(--ease);
}

.site-header.is-scrolled{
  background:rgba(0,19,38,.94);
  backdrop-filter:blur(20px);
  box-shadow:0 15px 50px rgba(0,0,0,.2);
}

.header-tech-line{
  height:28px;
  padding-inline:var(--gutter);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(1rem,4vw,5rem);
  font-size:12px;
  letter-spacing:.2em;
  color:#8095a5;
  overflow:hidden;
  white-space:nowrap;
}

.header-main{
  min-height:92px;
  display:flex;
  align-items:center;
  gap:2rem;
}

.brand-logo{
  display:flex;
  align-items:center;
  gap:1rem;
  min-width:300px;
  position:relative;
}

.brand-logo img{
  width:auto;
  max-width:175px;
  max-height:58px;
  object-fit:contain;
}

.brand-meta{
  border-left:1px solid rgba(255,255,255,.18);
  padding-left:1rem;
  display:flex;
  flex-direction:column;
  font-size:10px;
  letter-spacing:.16em;
  color:white;
  line-height:1.6;
}

.main-nav{
  flex:1;
  display:flex;
  justify-content:center;
}

.main-nav ul{
  display:flex;
  align-items:center;
  gap:clamp(1rem,2vw,2rem);
}

.nav-link{
  position:relative;
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:1.8rem .15rem;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.04em;
  color:rgba(255,255,255,.82);
}

.nav-number{
  font-size:7px;
  color:#7890a0;
  transition:.3s;
}

.nav-link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:18px;
  height:1px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
}

.nav-link:hover,
.nav-link.active{
  color:var(--white);
}

.nav-link:hover::after,
.nav-link.active::after{
  transform:scaleX(1);
  transform-origin:left;
}

.nav-arrow{
  width:9px;
  height:9px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  transition:.3s;
}

.has-dropdown:hover .nav-arrow{
  transform:rotate(180deg);
}

.header-actions{
  display:flex;
  align-items:center;
  gap:1rem;
}

.header-contact{
  display:flex;
  align-items:center;
  gap:.7rem;
  border:1px solid rgba(255,255,255,.2);
  padding:.75rem 1rem;
  font-size:.7rem;
  font-weight:600;
  transition:.3s;
}

.header-contact svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:var(--blue);
  stroke-width:1.4;
}

.header-contact:hover{
  background:var(--blue);
  color:var(--primary);
  border-color:var(--blue);
}

.header-contact:hover svg{
  stroke:var(--primary);
}


/* ============================================================
   MEGA MENU
============================================================ */

.has-dropdown{
  position:relative;
}

.mega-menu{
  position:absolute;
  top:calc(100% - 1px);
  left:50%;
  transform:translate(-50%,15px);
  width:min(720px,80vw);
  padding:1.5rem;
  background:rgba(245,248,250,.98);
  color:var(--primary);
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:1rem;
  box-shadow:0 30px 80px rgba(0,0,0,.3);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.4s var(--ease);
}

.has-dropdown:hover .mega-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}

.mega-intro{
  padding:1.4rem;
  background:var(--primary);
  color:var(--white);
}

.mega-intro > span{
  font-size:8px;
  letter-spacing:.18em;
  color:var(--blue);
}

.mega-intro h3{
  font-size:2rem;
  margin:1rem 0;
  letter-spacing:-.04em;
}

.mega-intro p{
  font-size:.8rem;
  color:#9eb0bd;
}

.mega-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.4rem;
}

.mega-links a{
  display:flex;
  gap:.8rem;
  padding:1rem;
  border:1px solid #e1e7eb;
  transition:.3s var(--ease);
}

.mega-links a:hover{
  background:var(--primary);
  color:var(--white);
  transform:translateY(-3px);
}

.mega-no{
  color:var(--blue-dark);
  font-size:.7rem;
}

.mega-links strong{
  display:block;
  font-size:.78rem;
  margin-bottom:.2rem;
}

.mega-links small{
  color:#71808b;
  font-size:.68rem;
}

.mega-links a:hover small{
  color:#aab8c1;
}


/* ============================================================
   HAMBURGER
============================================================ */

.hamburger{
  width:48px;
  height:48px;
  display:none;
  position:relative;
  background:transparent;
}

.hamburger span{
  position:absolute;
  width:25px;
  height:1px;
  background:var(--white);
  left:11px;
  transition:.35s var(--ease);
}

.hamburger span:first-child{
  top:19px;
}

.hamburger span:last-child{
  top:28px;
}

.hamburger.is-active span:first-child{
  top:24px;
  transform:rotate(45deg);
}

.hamburger.is-active span:last-child{
  top:24px;
  transform:rotate(-45deg);
}


/* ============================================================
   MOBILE NAV
============================================================ */

.mobile-nav{
  position:fixed;
  inset:0;
  z-index:990;
  background:var(--primary);
  color:var(--white);
  transform:translateX(100%);
  transition:transform .7s var(--ease);
  padding:7rem var(--gutter) 2rem;
  overflow:auto;
}

.mobile-nav.is-open{
  transform:translateX(0);
}

.mobile-nav-top,
.mobile-nav-footer{
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:.18em;
  color:#71899a;
}

.mobile-menu-grid{
  margin-top:2rem;
  border-top:1px solid var(--dark-line);
}

.mobile-menu-grid a{
  display:grid;
  grid-template-columns:45px 1fr 30px;
  align-items:center;
  padding:1.2rem 0;
  border-bottom:1px solid var(--dark-line);
}

.mobile-menu-grid span{
  color:var(--blue);
  font-size:.65rem;
}

.mobile-menu-grid strong{
  font-family:var(--font-display);
  font-size:1.7rem;
  font-weight:700;
}

.mobile-menu-grid i{
  font-style:normal;
  color:var(--blue);
}

.mobile-nav-footer{
  margin-top:2rem;
}


/* ============================================================
   HERO
============================================================ */

.hero{
  min-height:100svh;
  background:var(--primary);
  color:var(--white);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding-top:120px;
}

.hero-grid{
  position:absolute;
  inset:0;
  opacity:.2;
  background-image:
    linear-gradient(rgba(62,200,255,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(62,200,255,.12) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:linear-gradient(to bottom,#000 0%,transparent 85%);
}

.hero-radial{
  position:absolute;
  width:800px;
  height:800px;
  right:-200px;
  top:5%;
  background:radial-gradient(circle,rgba(62,200,255,.14),transparent 65%);
  filter:blur(10px);
}

.hero-noise{
  position:absolute;
  inset:0;
  opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
}

.hero-container{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  align-items:center;
  gap:clamp(2rem,5vw,6rem);
  padding-top:2rem;
  padding-bottom:7rem;
}

.hero-copy{
  position:relative;
  z-index:3;
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  border:1px solid rgba(255,255,255,.16);
  padding:.6rem .85rem;
  color:#a9bbc7;
  font-size:.65rem;
  letter-spacing:.12em;
  margin-bottom:2rem;
  background:rgba(255,255,255,.025);
  backdrop-filter:blur(8px);
}

.status-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--blue);
  box-shadow:0 0 15px var(--blue);
  animation:pulse 1.8s infinite;
}

.hero-heading-wrap{
  display:flex;
  gap:1.3rem;
}

.hero-vertical-label{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:7px;
  letter-spacing:.25em;
  color:#587080;
  padding-top:.5rem;
}

.hero h1{
  font-size:clamp(3rem,6vw,6.3rem);
  letter-spacing:-.065em;
  line-height:.88;
}

.hero-line{
  display:block;
}

.hero-line.accent{
  color:var(--blue);
}

/* ============================================================
   HERO TYPING LETTER ANIMATION
============================================================ */

.hero-typing-heading .typing-line{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  width:0;
  animation:
    heroTyping 1.8s steps(var(--letters), end) forwards;
}

/* Individual line timing */

.hero-typing-heading .typing-line:nth-child(1){
  --letters:10;
  animation-delay:.25s;
}

.hero-typing-heading .typing-line:nth-child(2){
  --letters:9;
  animation-delay:1.25s;
}

.hero-typing-heading .typing-line:nth-child(3){
  --letters:13;
  animation-delay:2.20s;
}

.hero-typing-heading .typing-line:nth-child(4){
  --letters:10;
  animation-delay:3.35s;
}

@keyframes heroTyping{
  from{
    width:0;
  }

  to{
    width:100%;
  }
}

/* Keep the outline styling during typing */

.hero-typing-heading .typing-line.outline{
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.65);
}

/* Small typing cursor effect */

.hero-typing-heading .typing-line::after{
  content:"";
  display:inline-block;
  width:2px;
  height:.78em;
  margin-left:.08em;
  vertical-align:-.04em;
  background:#ffffff;
  opacity:0;
  animation:heroCursor .7s steps(1) infinite;
}

.hero-typing-heading .typing-line:nth-child(1)::after{
  animation-delay:2.05s;
}

.hero-typing-heading .typing-line:nth-child(2)::after{
  animation-delay:3.10s;
}

.hero-typing-heading .typing-line:nth-child(3)::after{
  animation-delay:4.15s;
}

.hero-typing-heading .typing-line:nth-child(4)::after{
  animation-delay:5.30s;
}

@keyframes heroCursor{
  0%,49%{
    opacity:1;
  }

  50%,100%{
    opacity:0;
  }
}

/* Mobile */

@media (max-width:760px){

  .hero-typing-heading .typing-line{
    animation-duration:1.5s;
  }

}

.hero-animated-label{
  margin-top:2.2rem;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.6rem;
}

.animated-prefix{
  color:#718b9a;
  font-size:.62rem;
  letter-spacing:.16em;
}

.animated-word-wrap{
  height:1.5em;
  min-width:280px;
  overflow:hidden;
  position:relative;
}

.animated-word{
  position:absolute;
  inset:0;
  color:var(--white);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  transform:translateY(100%);
  opacity:0;
  transition:.7s var(--ease);
}

.animated-word.is-active{
  transform:translateY(0);
  opacity:1;
}

.hero-description{
  color:#9dafba;
  max-width:55ch;
  font-size:.95rem;
  margin-top:1.5rem;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:2rem;
}

.play-small{
  font-size:.65rem;
}


/* ============================================================
   HERO VISUAL
============================================================ */

.hero-visual{
  min-width:0;
}

.hero-visual-top,
.hero-visual-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#75909f;
  font-size:8px;
  letter-spacing:.18em;
}

.hero-visual-top{
  margin-bottom:.7rem;
}

.hero-slide-counter{
  display:flex;
  gap:.4rem;
}

.hero-slide-counter strong{
  color:var(--blue);
}

.hero-image-frame{
  position:relative;
  aspect-ratio:1.22/1;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
  background:#00101e;
}

.hero-image-slides,
.hero-slide{
  position:absolute;
  inset:0;
}

.hero-slide{
  opacity:0;
  transform:scale(1.08);
  transition:opacity 1s var(--ease),transform 1.8s var(--ease);
}

.hero-slide.is-active{
  opacity:1;
  transform:scale(1);
}

.hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.8) contrast(1.05);
}

.hero-image-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,30,56,.35),transparent 40%,rgba(0,30,56,.18)),
    linear-gradient(0deg,rgba(0,15,28,.6),transparent 50%);
  pointer-events:none;
}

.scan-line{
  position:absolute;
  left:0;
  right:0;
  height:1px;
  top:0;
  background:linear-gradient(90deg,transparent,var(--blue),transparent);
  z-index:5;
  opacity:.7;
  animation:scan 5s linear infinite;
}

@keyframes scan{
  0%{top:0;}
  100%{top:100%;}
}

.image-corner{
  position:absolute;
  width:30px;
  height:30px;
  z-index:8;
  border-color:var(--blue);
}

.image-corner.tl{
  top:14px;
  left:14px;
  border-top:1px solid;
  border-left:1px solid;
}

.image-corner.tr{
  top:14px;
  right:14px;
  border-top:1px solid;
  border-right:1px solid;
}

.image-corner.bl{
  bottom:14px;
  left:14px;
  border-bottom:1px solid;
  border-left:1px solid;
}

.image-corner.br{
  bottom:14px;
  right:14px;
  border-bottom:1px solid;
  border-right:1px solid;
}

.crosshair{
  position:absolute;
  width:70px;
  height:70px;
  left:45%;
  top:45%;
  z-index:7;
  opacity:.7;
}

.crosshair span,
.crosshair::before,
.crosshair::after{
  content:"";
  position:absolute;
  background:rgba(255,255,255,.65);
}

.crosshair span{
  width:1px;
  height:100%;
  left:50%;
}

.crosshair::before{
  height:1px;
  width:100%;
  top:50%;
}

.crosshair::after{
  inset:30px;
  border:1px solid var(--blue);
  background:none;
  border-radius:50%;
}

.measurement-line{
  position:absolute;
  z-index:7;
  color:#b5cbd6;
  font-size:7px;
  letter-spacing:.15em;
  opacity:.8;
}

.measurement-line.horizontal{
  left:8%;
  right:8%;
  bottom:19%;
}

.measurement-line.vertical{
  right:8%;
  top:15%;
  bottom:15%;
  writing-mode:vertical-rl;
}

.measurement-line b{
  display:block;
  background:rgba(62,200,255,.6);
  position:absolute;
}

.measurement-line.horizontal b{
  left:0;
  right:0;
  top:-5px;
  height:1px;
}

.measurement-line.vertical b{
  left:-5px;
  top:0;
  bottom:0;
  width:1px;
}

.image-tech-card{
  position:absolute;
  z-index:9;
  background:rgba(0,19,38,.82);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(10px);
  padding:.8rem 1rem;
  min-width:130px;
}

.image-tech-card span{
  display:block;
  color:#6d8999;
  font-size:7px;
  letter-spacing:.14em;
  margin-bottom:.4rem;
}

.image-tech-card strong{
  color:var(--white);
  font-family:var(--font-display);
  font-size:.9rem;
  line-height:1;
}

.card-top{
  top:18%;
  left:-20px;
}

.card-bottom{
  right:-20px;
  bottom:18%;
}

.status-value{
  font-size:8px;
  color:var(--blue);
  display:flex;
  align-items:center;
  gap:.4rem;
}

.status-value i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--blue);
}

.hero-visual-bottom{
  margin-top:.7rem;
  gap:1rem;
}

.hero-mini-stat{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  padding-right:1.5rem;
  border-right:1px solid rgba(255,255,255,.1);
}

.hero-mini-stat span{
  font-size:7px;
  color:#617988;
}

.hero-mini-stat strong{
  color:#dce8ee;
  font-size:.65rem;
}

.hero-slider-controls{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:.7rem;
}

.hero-arrow{
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.15);
  color:#9db1bd;
  transition:.3s;
}

.hero-arrow:hover{
  background:var(--blue);
  color:var(--primary);
}

.hero-progress{
  width:90px;
  height:1px;
  background:rgba(255,255,255,.14);
  overflow:hidden;
}

.hero-progress-bar{
  display:block;
  height:100%;
  width:33.33%;
  background:var(--blue);
  transition:width .5s;
}

.hero-bottom-marquee{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.08);
  padding-block:1rem;
}

.marquee-inner{
  display:flex;
  width:max-content;
  align-items:center;
  gap:2rem;
  animation:marquee 30s linear infinite;
  color:#6f8796;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.18em;
}

.marquee-inner i{
  color:var(--blue);
  font-style:normal;
}

@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

.hero-coordinate{
  position:absolute;
  z-index:3;
  color:#5e7787;
  font-size:7px;
  letter-spacing:.15em;
}

.hero-coordinate span{
  color:#9fb3bf;
}

.coordinate-1{
  top:25%;
  left:2%;
  writing-mode:vertical-rl;
}

.coordinate-2{
  top:42%;
  right:2%;
}

.coordinate-3{
  bottom:20%;
  left:35%;
}


/* ============================================================
   TRUST STRIP
============================================================ */

.trust-strip{
  background:#f1f5f7;
  border-bottom:1px solid #dce5e9;
}

.trust-grid{
  display:grid;
  grid-template-columns:1.2fr repeat(4,1fr);
}

.trust-intro,
.trust-item{
  min-height:130px;
  padding:1.5rem;
  border-right:1px solid #dce5e9;
  display:flex;
  align-items:center;
}

.trust-intro{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

.trust-intro span{
  font-size:7px;
  letter-spacing:.18em;
  color:#748692;
  margin-bottom:.5rem;
}

.trust-intro strong{
  font-family:var(--font-display);
  font-size:1rem;
  line-height:1.05;
  color:var(--primary);
}

.trust-item{
  gap:.8rem;
}

.trust-icon{
  color:var(--blue-dark);
  font-size:.65rem;
}

.trust-item strong{
  display:block;
  font-size:.72rem;
  color:var(--primary);
}

.trust-item small{
  display:block;
  color:#7c8c96;
  font-size:.65rem;
}


/* ============================================================
   ABOUT
============================================================ */

.about{
  background:var(--white);
}

.section-watermark{
  position:absolute;
  top:5%;
  right:-2%;
  font-family:var(--font-display);
  font-size:clamp(10rem,25vw,28rem);
  font-weight:900;
  color:#f3f6f8;
  line-height:.8;
  pointer-events:none;
}

.about-top{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:5rem;
  align-items:end;
  margin-bottom:4.5rem;
}

.mega-title{
  font-size:clamp(3rem,6vw,6.5rem);
  letter-spacing:-.065em;
}

.about-intro{
  padding-bottom:.5rem;
}

.about-intro p{
  color:var(--muted);
  max-width:48ch;
}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  margin-top:1.4rem;
  font-size:.75rem;
  font-weight:700;
  color:var(--primary);
  border-bottom:1px solid var(--primary);
  padding-bottom:.3rem;
}

.text-link span{
  color:var(--blue-dark);
}

.about-visual-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.6fr .4fr;
  grid-template-rows:auto auto;
  gap:1rem;
}

.about-main-image{
  grid-row:span 2;
  position:relative;
  min-height:650px;
  overflow:hidden;
  background:var(--primary);
}

.about-main-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1s var(--ease);
}

.about-main-image:hover img{
  transform:scale(1.04);
}

.image-overlay-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:45px 45px;
  mask-image:linear-gradient(to bottom,transparent,black);
}

.about-image-label{
  position:absolute;
  bottom:2rem;
  left:2rem;
  color:var(--white);
}

.about-image-label span{
  display:block;
  font-size:7px;
  letter-spacing:.18em;
  color:var(--blue);
  margin-bottom:.6rem;
}

.about-image-label strong{
  font-size:2rem;
  line-height:.95;
}

.about-side{
  display:grid;
  gap:1rem;
}

.about-year-card,
.about-stat-card{
  min-height:315px;
  padding:2rem;
  background:var(--primary);
  color:var(--white);
  position:relative;
  overflow:hidden;
}

.about-year-card::before,
.about-stat-card::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border:1px solid rgba(62,200,255,.2);
  border-radius:50%;
  right:-80px;
  bottom:-80px;
}

.about-year-card span,
.about-stat-card span{
  display:block;
  color:#6d8796;
  font-size:7px;
  letter-spacing:.18em;
}

.about-year-card strong{
  display:block;
  font-size:4rem;
  color:var(--blue);
  margin:2rem 0;
}

.about-year-card small,
.about-stat-card small{
  color:#9cafba;
  font-size:.62rem;
  letter-spacing:.08em;
}

.year-line{
  position:absolute;
  left:2rem;
  right:2rem;
  bottom:2rem;
  height:1px;
  background:rgba(255,255,255,.12);
}

.about-stat-card{
  background:#edf3f6;
  color:var(--primary);
}

.about-stat-card span{
  color:#69808e;
}

.about-stat-card strong{
  display:block;
  font-size:5rem;
  margin-top:3rem;
}

.about-description{
  padding:2rem;
  border:1px solid #dfe7eb;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.technical-number{
  font-family:var(--font-display);
  font-size:4rem;
  color:#e8eef2;
  font-weight:900;
}

.about-description > p{
  color:var(--muted);
  font-size:.9rem;
}

.about-points{
  margin-top:1.8rem;
}

.about-points > div{
  display:flex;
  gap:.8rem;
  padding:.7rem 0;
  border-top:1px solid #e3e9ed;
  font-size:.72rem;
}

.about-points span{
  color:var(--blue-dark);
}


/* ============================================================
   VISION / MISSION
============================================================ */

.vision-mission{
  background:var(--primary);
  color:var(--white);
  padding-block:clamp(5rem,9vw,9rem);
  overflow:hidden;
}

.vm-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:rgba(255,255,255,.1);
}

.vm-card{
  position:relative;
  min-height:620px;
  padding:2rem;
  overflow:hidden;
  background:#00233f;
}

.vm-card-bg{
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 70% 30%,rgba(62,200,255,.13),transparent 35%);
}

.vm-top{
  position:relative;
  z-index:3;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:.18em;
  color:#7892a1;
}

.vm-top span:first-child{
  color:var(--blue);
}

.vm-graphic{
  position:absolute;
  inset:10% 10% auto auto;
  width:340px;
  height:340px;
  opacity:.7;
}

.orbit{
  position:absolute;
  inset:0;
  border:1px solid rgba(62,200,255,.18);
  border-radius:50%;
}

.orbit-1{
  transform:rotateX(65deg) rotateZ(15deg);
}

.orbit-2{
  transform:rotateY(65deg) rotateZ(30deg);
}

.orbit-3{
  transform:rotateX(65deg) rotateZ(-25deg);
}

.orbit-core{
  position:absolute;
  width:70px;
  height:70px;
  border:1px solid var(--blue);
  border-radius:50%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  color:var(--blue);
  background:rgba(0,30,56,.8);
}

.orbit-core span{
  font-family:var(--font-display);
  font-size:1.5rem;
}

.mission-graphic{
  background-image:
    linear-gradient(rgba(62,200,255,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(62,200,255,.12) 1px,transparent 1px);
  background-size:35px 35px;
}

.mission-bars{
  position:absolute;
  left:15%;
  right:15%;
  bottom:15%;
  height:70%;
  display:flex;
  align-items:end;
  gap:10px;
}

.mission-bars span{
  flex:1;
  background:linear-gradient(to top,rgba(62,200,255,.05),rgba(62,200,255,.65));
  border-top:1px solid var(--blue);
  animation:barPulse 3s ease-in-out infinite alternate;
}

.mission-bars span:nth-child(1){height:30%;}
.mission-bars span:nth-child(2){height:48%;animation-delay:.2s;}
.mission-bars span:nth-child(3){height:60%;animation-delay:.4s;}
.mission-bars span:nth-child(4){height:78%;animation-delay:.6s;}
.mission-bars span:nth-child(5){height:100%;animation-delay:.8s;}

@keyframes barPulse{
  to{opacity:.45;transform:scaleY(.9);}
}

.mission-axis{
  position:absolute;
  background:rgba(255,255,255,.2);
}

.mission-axis.x{
  left:0;
  right:0;
  bottom:15%;
  height:1px;
}

.mission-axis.y{
  top:0;
  bottom:15%;
  left:15%;
  width:1px;
}

.vm-content{
  position:absolute;
  z-index:4;
  left:2rem;
  right:2rem;
  bottom:2.5rem;
  max-width:580px;
}

.vm-label{
  color:var(--blue);
  font-size:8px;
  letter-spacing:.2em;
}

.vm-content h3{
  font-size:clamp(2rem,3.5vw,3.3rem);
  margin:.8rem 0 1rem;
  letter-spacing:-.04em;
}

.vm-content h3 span{
  color:var(--blue);
}

.vm-content p{
  color:#9db1bd;
  max-width:48ch;
}


/* ============================================================
   PROFILE VIDEO
============================================================ */

.profile-video{
  background:#f5f8fa;
}

.video-frame{
  position:relative;
  aspect-ratio:2/1;
  overflow:hidden;
  background:var(--primary);
  border:1px solid #cdd9df;
}

.video-frame > img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.55);
  transition:transform 1s var(--ease);
}

.video-frame:hover > img{
  transform:scale(1.04);
}

.video-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:50px 50px;
}

.video-top-data,
.video-bottom-data{
  position:absolute;
  z-index:3;
  left:1.5rem;
  right:1.5rem;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:.18em;
  color:#c0d0d9;
}

.video-top-data{
  top:1.5rem;
}

.video-bottom-data{
  bottom:1.5rem;
}

.video-play{
  position:absolute;
  z-index:5;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:110px;
  height:110px;
  display:grid;
  place-items:center;
}

.play-core{
  width:70px;
  height:70px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--blue);
  color:var(--primary);
  padding-left:4px;
  font-size:1rem;
  position:relative;
  z-index:2;
  transition:.35s var(--ease);
}

.video-play:hover .play-core{
  transform:scale(1.1);
  background:var(--white);
}

.play-ring{
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  animation:ringPulse 2.5s ease-out infinite;
}

.ring-2{
  animation-delay:1.2s;
}

@keyframes ringPulse{
  0%{transform:scale(.65);opacity:0;}
  40%{opacity:1;}
  100%{transform:scale(1.35);opacity:0;}
}
/* ============================================================
   CAPABILITIES
   COMPACT / BALANCED SCREEN VIEW
============================================================ */

.capabilities{
  position:relative;
  background:var(--primary);
  color:var(--white);

  overflow:hidden;
}

.capability-glow{
  position:absolute;

  width:600px;
  height:600px;

  right:-280px;
  top:15%;

  background:
    radial-gradient(
      circle,
      rgba(62,200,255,.10),
      transparent 65%
    );

  pointer-events:none;
}


/* ============================================================
   CAPABILITY INTERFACE
============================================================ */

.capability-interface{
  display:grid;

  grid-template-columns:300px 1fr;

  min-height:0;

  height:560px;

  border:1px solid var(--dark-line);

  overflow:hidden;
}


/* ============================================================
   LEFT CAPABILITY LIST
============================================================ */

.capability-list{
  border-right:1px solid var(--dark-line);

  display:flex;
  flex-direction:column;
}


.capability-tab{
  width:100%;

  min-height:0;
  height:92px;

  display:grid;

  grid-template-columns:
    32px 1fr 25px;

  align-items:center;

  text-align:left;

  gap:.7rem;

  padding:
    1rem 1.2rem;

  background:transparent;

  color:var(--white);

  border:0;

  border-bottom:
    1px solid var(--dark-line);

  transition:.4s var(--ease);

  cursor:pointer;
}


.capability-tab:last-child{
  border-bottom:0;
}


.capability-tab span{
  color:#5f7b8c;

  font-size:.6rem;

  line-height:1;
}


.capability-tab strong{
  font-size:.7rem;

  letter-spacing:.035em;

  line-height:1.25;
}


.capability-tab i{
  font-style:normal;

  color:#66818f;

  font-size:.9rem;

  transition:.3s var(--ease);
}


.capability-tab:hover,
.capability-tab.is-active{
  background:
    rgba(62,200,255,.07);
}


.capability-tab:hover i{
  transform:translateX(3px);
}


.capability-tab.is-active{
  box-shadow:
    inset 3px 0 var(--blue);
}


.capability-tab.is-active span,
.capability-tab.is-active i{
  color:var(--blue);
}


/* ============================================================
   RIGHT DISPLAY
============================================================ */

.capability-display{
  position:relative;

  min-width:0;

  height:100%;

  overflow:hidden;
}


.capability-images{
  position:absolute;

  inset:0;
}


.cap-image{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  object-fit:cover;

  opacity:0;

  transform:scale(1.06);

  transition:1s var(--ease);

  filter:
    brightness(.45)
    saturate(.8);
}


.cap-image.is-active{
  opacity:1;

  transform:scale(1);
}


/* ============================================================
   IMAGE OVERLAY
============================================================ */

.cap-overlay{
  position:absolute;

  inset:0;

  background:
    linear-gradient(
      90deg,
      rgba(0,30,56,.94) 0%,
      rgba(0,30,56,.58) 48%,
      rgba(0,30,56,.20) 100%
    ),
    linear-gradient(
      0deg,
      rgba(0,30,56,.78),
      transparent 55%
    );
}


.cap-tech-lines{
  position:absolute;

  inset:0;

  opacity:.22;

  background-image:
    linear-gradient(
      rgba(62,200,255,.12) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(62,200,255,.12) 1px,
      transparent 1px
    );

  background-size:
    45px 45px;

  pointer-events:none;
}


/* ============================================================
   DISPLAY CONTENT
============================================================ */

.cap-display-content{
  position:absolute;

  z-index:4;

  left:clamp(1.8rem,4vw,4rem);

  top:50%;

  transform:translateY(-50%);

  width:min(500px,70%);

  max-width:500px;
}


/* NUMBER */

.cap-number{
  display:block;

  font-family:var(--font-display);

  font-size:
    clamp(3rem,4vw,4.2rem);

  color:transparent;

  -webkit-text-stroke:
    1px rgba(255,255,255,.18);

  line-height:.85;

  margin-bottom:.15rem;
}


/* CATEGORY */

.cap-category{
  display:block;

  color:var(--blue);

  font-size:.58rem;

  letter-spacing:.16em;

  line-height:1.2;

  margin-top:.25rem;
}


/* TITLE */

.cap-display-content h3{
  font-size:
    clamp(2.5rem,4vw,4rem);

  line-height:.92;

  letter-spacing:-.055em;

  margin:.6rem 0 .8rem;

  max-width:430px;
}


/* DESCRIPTION */

.cap-display-content p{
  color:#a9bbc6;

  max-width:40ch;

  font-size:.82rem;

  line-height:1.55;

  margin:0;
}


/* LINK */

.cap-link{
  display:inline-flex;

  gap:.25rem;

  align-items:center;

  color:var(--white);

  margin-top:1rem;

  font-size:.68rem;

  font-weight:700;

  text-decoration:none;
}


.cap-link span{
  color:var(--blue);

  transition:.3s;
}


.cap-link:hover span{
  transform:translateX(5px);
}


/* ============================================================
   DATA PANEL
============================================================ */

.cap-data-panel{
  position:absolute;

  z-index:5;

  right:1.2rem;
  bottom:1.2rem;

  display:flex;

  gap:.7rem;

  padding:.15rem .7rem;

  background:
    rgba(0,19,38,.78);

  backdrop-filter:blur(10px);

  border:
    1px solid rgba(255,255,255,.1);
}


.cap-data-panel > div{
  min-width:105px;

  padding-right:.8rem;

  border-right:
    1px solid rgba(255,255,255,.1);
}


.cap-data-panel > div:last-child{
  border:0;

  padding-right:.2rem;
}


.cap-data-panel span{
  display:block;

  color:#637e8d;

  font-size:6px;

  letter-spacing:.14em;

  margin-bottom:.25rem;
}


.cap-data-panel strong{
  font-size:.58rem;

  color:#d5e1e7;

  white-space:nowrap;
}


.active-status{
  color:var(--blue)!important;
}


.active-status i{
  display:inline-block;

  width:5px;
  height:5px;

  background:var(--blue);

  border-radius:50%;

  margin-right:4px;
}


/* ============================================================
   TABLET
============================================================ */

@media(max-width:1000px){

  .capability-interface{
    grid-template-columns:260px 1fr;

    height:320px;
  }

  .capability-tab{
    height:104px;

    padding:
      .85rem 1rem;
  }

  .cap-display-content{
    left:2rem;

    width:72%;
  }

  .cap-display-content h3{
    font-size:
      clamp(2.4rem,5vw,3.5rem);
  }

  .cap-data-panel{
    right:.8rem;
    bottom:.8rem;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media(max-width:760px){

  .capability-interface{
    display:flex;

    flex-direction:column;

    height:auto;
  }


  .capability-list{
    display:grid;

    grid-template-columns:
      repeat(2,1fr);

    border-right:0;

    border-bottom:
      1px solid var(--dark-line);
  }


  .capability-tab{
    height:75px;

    min-height:75px;

    padding:
      .75rem .8rem;

    grid-template-columns:
      25px 1fr 18px;

    gap:.45rem;

    border-right:
      1px solid var(--dark-line);

    border-bottom:
      1px solid var(--dark-line);
  }


  .capability-tab:nth-child(even){
    border-right:0;
  }


  .capability-tab:last-child{
    border-bottom:0;
  }


  .capability-display{
    height:470px;

    min-height:470px;
  }


  .cap-display-content{
    left:1.5rem;

    top:45%;

    width:calc(100% - 3rem);

    max-width:none;
  }


  .cap-number{
    font-size:3rem;
  }


  .cap-display-content h3{
    font-size:
      clamp(2.3rem,9vw,3.4rem);

    margin:
      .5rem 0 .7rem;
  }


  .cap-display-content p{
    font-size:.78rem;

    max-width:36ch;
  }


  .cap-data-panel{
    left:1rem;
    right:1rem;

    bottom:1rem;

    justify-content:space-between;

    gap:.4rem;
  }


  .cap-data-panel > div{
    min-width:0;

    flex:1;

    padding-right:.5rem;
  }

}


/* ============================================================
   SMALL MOBILE
============================================================ */

@media(max-width:480px){

  .capability-list{
    grid-template-columns:1fr;
  }


  .capability-tab,
  .capability-tab:nth-child(even){
    height:62px;

    min-height:42px;

    border-right:0;

    border-bottom:
      1px solid var(--dark-line);
  }


  .capability-tab:last-child{
    border-bottom:0;
  }


  .capability-display{
    height:330px;

    min-height:330px;
  }


  .cap-display-content{
    left:1.2rem;

    width:
      calc(100% - 2.4rem);
  }


  .cap-display-content h3{
    font-size:2.25rem;
  }


  .cap-display-content p{
    font-size:.74rem;

    line-height:1.5;
  }


  .cap-data-panel{
    padding:.5rem;

    bottom:.7rem;
  }


  .cap-data-panel span{
    font-size:5px;
  }


  .cap-data-panel strong{
    font-size:.52rem;
  }

}
/* ============================================================
   MICRO MOULD
============================================================ */

.micro-mould{
  position:relative;
  background:#f2f6f8;
  overflow:hidden;
  padding-block:clamp(5rem,9vw,10rem);
}

.micro-bg-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(0,30,56,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,30,56,.05) 1px,transparent 1px);
  background-size:50px 50px;
  mask-image:linear-gradient(90deg,black,transparent 80%);
}

.micro-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:clamp(3rem,7vw,8rem);
}

.micro-visual{
  position:relative;
  min-height:550px;
}

.micro-image-wrap{
  position:absolute;
  left:5%;
  top:5%;
  width:80%;
  height:80%;
  overflow:hidden;
  background:var(--primary);
  clip-path:polygon(0 0,calc(100% - 35px) 0,100% 35px,100% 100%,0 100%);
}

.micro-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.05) saturate(.8);
}

.micro-scan{
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:var(--blue);
  opacity:.6;
  box-shadow:0 0 20px var(--blue);
  animation:microScan 4s linear infinite;
}

@keyframes microScan{
  0%{top:0;}
  100%{top:100%;}
}

.micro-crosshair{
  position:absolute;
  width:20px;
  height:20px;
  border:1px solid var(--blue);
}

.mc-1{left:25%;top:35%;}
.mc-2{right:30%;top:52%;}
.mc-3{left:48%;bottom:25%;}

.magnifier{
  position:absolute;
  right:0;
  bottom:0;
  width:180px;
  height:180px;
  border:1px solid var(--blue-dark);
  border-radius:50%;
  background:rgba(0,30,56,.95);
  display:grid;
  place-items:center;
  box-shadow:0 25px 70px rgba(0,30,56,.2);
}

.magnifier-inner{
  width:130px;
  height:130px;
  border:1px dashed rgba(62,200,255,.5);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--blue);
  font-family:var(--font-display);
  font-size:1.4rem;
}

.micro-callout{
  position:absolute;
  background:var(--primary);
  color:var(--white);
  padding:.8rem 1rem;
  display:grid;
  grid-template-columns:28px 1fr;
  column-gap:.6rem;
  box-shadow:0 20px 40px rgba(0,30,56,.15);
}

.micro-callout span{
  grid-row:span 2;
  color:var(--blue);
  font-size:.65rem;
}

.micro-callout strong{
  font-size:.65rem;
}

.micro-callout small{
  color:#8ea3af;
  font-size:.55rem;
}

.callout-1{
  top:18%;
  right:3%;
}

.callout-2{
  bottom:28%;
  left:0;
}

.callout-3{
  bottom:8%;
  left:25%;
}
.micro-content h2{
  font-size:clamp(4rem,7vw,4rem);
  letter-spacing:-.07em;
  line-height:.82;
  color:var(--primary);
  margin:1.3rem 0;
}

.micro-content h2 span{
rgba(0,19,38,.94)
}


/* ============================================================
   MICRO TITLE — LETTER BY LETTER TYPING
============================================================ */

.micro-typing-title .typing-line{
  display:inline-block;
  white-space:nowrap;
  overflow:hidden;
  width:0;
  animation:microType 1.2s steps(7,end) forwards;
}

.micro-typing-title .typing-line.accent{
  animation-delay:1.25s;
  animation-duration:1.8s;
}

@keyframes microType{
  from{
    width:0;
  }

  to{
    width:100%;
  }
}

.micro-label{
  display:block;
  font-size:.55rem;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--blue-dark);
}

.micro-lead{
  color:black);
  max-width:60ch;
}

.micro-features{
  margin-top:2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:#d6e0e5;
}

.micro-features > div{
  background:#f2f6f8;
  padding:1.1rem;
}

.micro-features span{
  display:block;
  color:var(--blue-dark);
  font-size:.8rem;
  margin-bottom:.6rem;
}

.micro-features strong{
  font-size:.9rem;
}

.micro-features p{
  margin-top:.4rem;
  font-size:.8rem;
  color:black;
}


/* ============================================================
   ENGINEERING PROCESS
============================================================ */

.engineering-process{
  background:var(--white);
}

.process-visual{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1.5rem;
}

.process-line,
.process-progress{
  position:absolute;
  top:27px;
  left:5%;
  right:5%;
  height:1px;
}

.process-line{
  background:#d9e2e7;
}

.process-progress{
  right:auto;
  width:0;
  background:var(--blue-dark);
  transition:width .5s;
}

.process-step{
  position:relative;
}

.process-node{
  position:relative;
  z-index:2;
  width:55px;
  height:55px;
  border:1px solid #cfdbe1;
  background:var(--white);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-size:.75rem;
  color:#80909a;
  transition:.35s;
}

.process-step.is-active .process-node{
  background:var(--primary);
  color:var(--blue);
  border-color:var(--primary);
}

.process-content{
  padding-top:1.4rem;
}

.process-content span{
  color:var(--blue-dark);
  font-size:.6rem;
  letter-spacing:.15em;
}

.process-content h3{
  font-size:1.2rem;
  margin:.4rem 0;
}

.process-content p{
  color:var(--muted);
  font-size:.75rem;
  max-width:22ch;
}


/* ============================================================
   GROWTH
============================================================ */

.growth{
  background:var(--primary);
  color:var(--white);
}

.growth-background{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 80% 50%,rgba(62,200,255,.08),transparent 35%),
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:auto,50px 50px;
}

.growth-chart{
  position:relative;
  z-index:2;
  border:1px solid var(--dark-line);
  padding:1rem 1rem 1rem;
  background:rgba(0,19,38,.5);
}

.chart-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:8px;
  letter-spacing:.18em;
  color:#7891a0;
}

.chart-legend{
  display:flex;
  align-items:center;
  gap:.5rem;
}

.chart-legend i{
  width:20px;
  height:1px;
  background:var(--blue);
}

.chart-area{
  height:420px;
  position:relative;
  margin-top:1rem;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:100% 25%,16.66% 100%;
}

.growth-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
}

.growth-area{
  fill:url(#growthFill);
}

.growth-line{
  fill:none;
  stroke:var(--blue);
  stroke-width:3;
  filter:url(#glow);
  stroke-dasharray:1600;
  stroke-dashoffset:1600;
  transition:stroke-dashoffset 2s var(--ease);
}

.growth-chart.is-visible .growth-line{
  stroke-dashoffset:0;
}

.growth-points circle{
  fill:var(--primary);
  stroke:var(--blue);
  stroke-width:2;
}

.chart-y-label{
  position:absolute;
  left:0;
  transform:translateY(-50%);
  color:#516b7a;
  font-size:6px;
  letter-spacing:.14em;
}

.y1{top:12%;}
.y2{top:38%;}
.y3{top:64%;}
.y4{top:90%;}

.growth-tooltip{
  position:absolute;
  background:rgba(0,30,56,.9);
  border:1px solid rgba(62,200,255,.25);
  padding:.5rem .7rem;
  display:flex;
  flex-direction:column;
  gap:.1rem;
}

.growth-tooltip strong{
  color:var(--blue);
  font-family:var(--font-display);
  font-size:.75rem;
}

.growth-tooltip span{
  color:#849ba8;
  font-size:6px;
  letter-spacing:.1em;
}

.tooltip-2008{left:1%;bottom:7%;}
.tooltip-2012{left:18%;bottom:15%;}
.tooltip-2016{left:34%;bottom:27%;}
.tooltip-2020{left:50%;bottom:40%;}
.tooltip-2024{left:67%;bottom:56%;}
.tooltip-2026{right:1%;top:4%;}

.growth-years{
  display:flex;
  justify-content:space-between;
  color:#728997;
  font-size:.65rem;
  margin-top:.8rem;
  padding-inline:1rem;
}

.growth-story-grid{
  margin-top:3rem;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--dark-line);
  border-bottom:1px solid var(--dark-line);
}

.growth-story{
  padding:1.5rem;
  display:grid;
  grid-template-columns:70px 1fr;
  gap:1rem;
  border-right:1px solid var(--dark-line);
}

.growth-story:last-child{
  border-right:0;
}

.growth-story > span{
  font-family:var(--font-display);
  font-size:1.8rem;
  color:var(--blue);
}

.growth-story small{
  color:#637d8b;
  font-size:7px;
  letter-spacing:.15em;
}

.growth-story h3{
  font-size:1rem;
  margin:.3rem 0;
}

.growth-story p{
  color:#8ea3af;
  font-size:.7rem;
}

.placeholder-note{
  margin-top:1rem;
  color:#526c7b;
  font-size:.65rem;
}


/* ============================================================
   DATA VISUALIZATION
============================================================ */

.data-section{
  background:#f4f7f9;
}

.data-interface{
  display:grid;
  grid-template-columns:1fr 1.3fr .7fr;
  gap:1px;
  background:#dce4e8;
  border:1px solid #dce4e8;
}

.data-card{
  background:#fff;
  min-height:440px;
  padding:1.5rem;
}

.data-card-head{
  display:flex;
  justify-content:space-between;
  color:#788994;
  font-size:7px;
  letter-spacing:.16em;
}

.radar-graphic{
  width:300px;
  height:300px;
  max-width:100%;
  margin:3rem auto 0;
  position:relative;
}

.radar-circle{
  position:absolute;
  border:1px solid #dce5e9;
  border-radius:50%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}

.c1{width:100%;height:100%;}
.c2{width:70%;height:70%;}
.c3{width:40%;height:40%;}

.radar-axis{
  position:absolute;
  background:#dce5e9;
  left:50%;
  top:0;
}

.ax1{
  width:1px;
  height:100%;
}

.ax2{
  width:100%;
  height:1px;
  top:50%;
  left:0;
}

.radar-shape{
  position:absolute;
  left:50%;
  top:50%;
  width:120px;
  height:120px;
  transform:translate(-50%,-50%) rotate(45deg);
  background:rgba(62,200,255,.15);
  border:1px solid var(--blue-dark);
  clip-path:polygon(50% 0,100% 35%,78% 100%,20% 85%,0 35%);
}

.radar-label{
  position:absolute;
  font-size:6px;
  color:#617580;
  letter-spacing:.1em;
}

.l1{top:-10px;left:50%;transform:translateX(-50%);}
.l2{right:-20px;top:50%;}
.l3{bottom:-15px;left:50%;transform:translateX(-50%);}
.l4{left:-25px;top:50%;}

.metrics-card{
  display:flex;
  flex-direction:column;
}

.metric-row{
  margin-top:2rem;
}

.metric-title{
  display:flex;
  justify-content:space-between;
  font-size:.65rem;
}

.metric-title span{
  color:#697c87;
}

.metric-title strong{
  color:var(--blue-dark);
}

.metric-track{
  height:4px;
  background:#e6edf0;
  margin-top:.6rem;
  overflow:hidden;
}

.metric-track span{
  display:block;
  height:100%;
  background:linear-gradient(90deg,var(--primary),var(--blue));
  transform-origin:left;
  animation:metricGrow 1.5s var(--ease) both;
}

@keyframes metricGrow{
  from{transform:scaleX(0);}
}

.data-note{
  margin-top:auto;
  padding-top:1rem;
  color:#8a9aa3;
  font-size:.6rem;
}

.number-card{
  background:var(--primary);
  color:var(--white);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.number-card > span,
.number-card small{
  color:#718b9a;
  font-size:7px;
  letter-spacing:.15em;
}

.number-card > strong{
  font-size:4rem;
  color:var(--blue);
  margin:1rem 0 .5rem;
}

.number-current{
  color:var(--white)!important;
  margin-top:2rem!important;
}

.number-line{
  height:1px;
  background:rgba(255,255,255,.15);
  position:relative;
}

.number-line span{
  position:absolute;
  width:65%;
  height:1px;
  background:var(--blue);
}


/* ============================================================
   PROJECTS
============================================================ */

.projects{
  background:#fff;
}

.projects-showcase{
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr;
  grid-template-rows:300px 300px;
  gap:1rem;
}

.project-card{
  position:relative;
  overflow:hidden;
  background:var(--primary);
  color:var(--white);
}

.project-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:1s var(--ease);
}

.project-card:hover img{
  transform:scale(1.07);
}

.project-large{
  grid-row:span 2;
}

.project-wide{
  grid-column:span 2;
}

.project-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 25%,rgba(0,15,28,.95));
}

.project-grid-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:40px 40px;
}

.project-content{
  position:absolute;
  z-index:3;
  left:1.5rem;
  right:1.5rem;
  bottom:1.5rem;
}

.project-content > span{
  color:var(--blue);
  font-size:7px;
  letter-spacing:.15em;
}

.project-content h3{
  font-size:clamp(1.4rem,3vw,2.5rem);
  letter-spacing:-.04em;
  margin:.4rem 0;
}

.project-small .project-content h3{
  font-size:1.4rem;
}

.project-content p{
  color:#aab9c2;
  font-size:.7rem;
}

.project-content a{
  display:inline-block;
  margin-top:.8rem;
  font-size:.65rem;
  font-weight:700;
  border-bottom:1px solid var(--blue);
  padding-bottom:.2rem;
}


/* ============================================================
   INDUSTRIES
============================================================ */

.industries{
  background:#f3f6f8;
}

.industry-interface{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  min-height:300px;
  background:var(--primary);
}

.industry-feature{
  position:relative;
  overflow:hidden;
}

.industry-feature img{
  width:100%;
  height:80%;
  object-fit:cover;
  filter:brightness(.65);
  transition:1s var(--ease);
}

.industry-feature:hover img{
  transform:scale(1.05);
}

.industry-feature-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,30,56,.2),rgba(0,30,56,.8));
}

.industry-feature-content{
  position:absolute;
  left:2rem;
  bottom:2rem;
  color:var(--white);
  max-width:450px;
}

.industry-feature-content span{
  color:var(--blue);
  font-size:7px;
  letter-spacing:.18em;
}

.industry-feature-content h3{
  font-size:4rem;
  letter-spacing:-.06em;
  margin:.5rem 0;
}

.industry-feature-content p{
  color:#a7bac5;
  font-size:.8rem;
}

.industry-list{
  background:var(--primary);
  color:var(--white);
}

.industry-row{
  min-height:100px;
  padding:1.5rem;
  display:grid;
  grid-template-columns:40px 1fr 30px;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:.35s var(--ease);
}

.industry-row span{
  color:#5f7c8b;
  font-size:.65rem;
}

.industry-row strong{
  font-size:.75rem;
}

.industry-row i{
  font-style:normal;
  color:#668493;
}

.industry-row:hover,
.industry-row.is-active{
  background:rgba(62,200,255,.08);
  padding-left:2rem;
}

.industry-row:hover i,
.industry-row.is-active i{
  color:var(--blue);
}


/* ============================================================
   QUALITY
============================================================ */

.quality-section{
  position:relative;
  background:var(--primary);
  color:var(--white);
  padding-block:clamp(5rem,9vw,10rem);
  overflow:hidden;
}

.quality-grid-bg{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(62,200,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(62,200,255,.08) 1px,transparent 1px);
  background-size:60px 60px;
  opacity:.3;
}

.quality-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  align-items:center;
  gap:4rem;
}

.quality-content h2{
  font-size:clamp(3rem,6vw,6rem);
  letter-spacing:-.06em;
}

.quality-content h2 span{
  color:var(--blue);
}

.quality-content p{
  color:#9db0bc;
  max-width:45ch;
  margin:1.5rem 0 2rem;
}

.quality-visual{
  width:min(550px,100%);
  aspect-ratio:1;
  margin-inline:auto;
  position:relative;
  display:grid;
  place-items:center;
}

.quality-circle{
  position:absolute;
  border:1px solid rgba(62,200,255,.25);
  border-radius:50%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  animation:qualityRotate 20s linear infinite;
}

.q1{
  width:85%;
  height:85%;
}

.q2{
  width:65%;
  height:65%;
  border-style:dashed;
  animation-direction:reverse;
  animation-duration:15s;
}

.q3{
  width:45%;
  height:45%;
}

@keyframes qualityRotate{
  to{transform:translate(-50%,-50%) rotate(360deg);}
}

.quality-core{
  position:relative;
  z-index:3;
  width:180px;
  height:180px;
  border:1px solid var(--blue);
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:rgba(0,30,56,.85);
  box-shadow:0 0 70px rgba(62,200,255,.1);
}

.quality-core span{
  font-size:2rem;
  color:var(--blue);
}

.quality-core strong{
  font-size:.75rem;
}

.quality-core small{
  font-size:6px;
  color:#6d8796;
  letter-spacing:.15em;
  margin-top:.3rem;
}

.quality-point{
  position:absolute;
  display:flex;
  align-items:center;
  gap:.4rem;
  color:#91a8b5;
  font-size:7px;
  letter-spacing:.1em;
}

.quality-point i{
  width:6px;
  height:6px;
  background:var(--blue);
  border-radius:50%;
}

.qp1{top:15%;left:12%;}
.qp2{top:22%;right:5%;}
.qp3{bottom:18%;right:8%;}
.qp4{bottom:13%;left:10%;}


/* ============================================================
   TESTIMONIALS
============================================================ */

.testimonials{
  background:#fff;
}

.testimonial-interface{
  position:relative;
  border-top:1px solid #dbe4e9;
  border-bottom:1px solid #dbe4e9;
  padding:4rem 8rem;
  min-height:430px;
}

.testimonial-number{
  position:absolute;
  left:0;
  top:2rem;
  font-family:var(--font-display);
  font-size:6rem;
  color:#edf2f4;
  font-weight:900;
}

.testimonial-content{
  max-width:900px;
  margin:auto;
}

.quote-mark{
  font-family:Georgia,serif;
  font-size:6rem;
  color:var(--blue-dark);
  line-height:.5;
}

.testimonial-slide{
  display:none;
}

.testimonial-slide.is-active{
  display:block;
  animation:fadeSlide .7s var(--ease);
}

@keyframes fadeSlide{
  from{opacity:0;transform:translateY(20px);}
  to{opacity:1;transform:none;}
}

.testimonial-slide p{
  font-family:var(--font-display);
  font-size:clamp(1.7rem,3vw,3rem);
  line-height:1.15;
  letter-spacing:-.04em;
  margin:1.5rem 0 2rem;
}

.testimonial-person{
  display:flex;
  align-items:center;
  gap:.8rem;
}

.person-avatar{
  width:45px;
  height:45px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--primary);
  color:var(--blue);
  font-size:.7rem;
  font-weight:700;
}

.testimonial-person strong,
.testimonial-person span{
  display:block;
}

.testimonial-person strong{
  font-size:.75rem;
}

.testimonial-person span{
  color:#71818b;
  font-size:.65rem;
}

.testimonial-controls{
  position:absolute;
  right:2rem;
  bottom:2rem;
  display:flex;
  align-items:center;
  gap:.7rem;
}

.testimonial-controls button{
  width:40px;
  height:40px;
  border:1px solid #dce4e8;
  color:var(--primary);
  transition:.3s;
}

.testimonial-controls button:hover{
  background:var(--primary);
  color:var(--blue);
}

#testiDots{
  display:flex;
  gap:5px;
}

#testiDots button{
  width:7px;
  height:7px;
  border-radius:50%;
  padding:0;
  background:#dce4e8;
  border:0;
}

#testiDots button.is-active{
  width:20px;
  border-radius:5px;
  background:var(--blue-dark);
}


/* ============================================================
   FINAL CTA
============================================================ */

.final-cta{
  background:var(--primary);
  color:var(--white);
  padding-block:clamp(5rem,10vw,10rem);
  position:relative;
  overflow:hidden;
}

.cta-grid-bg{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(62,200,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(62,200,255,.08) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:radial-gradient(circle at center,#000,transparent 80%);
}

.cta-top,
.cta-bottom{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  color:#678392;
  font-size:7px;
  letter-spacing:.18em;
}

.cta-content{
  position:relative;
  z-index:2;
  max-width:1000px;
  margin:5rem auto;
  text-align:center;
}

.cta-content h2{
  font-size:clamp(4rem,9vw,9rem);
  line-height:.82;
  letter-spacing:-.07em;
}

.cta-content p{
  color:#9eb1bd;
  max-width:48ch;
  margin:2rem auto;
}

.cta-button{
  display:inline-flex;
  align-items:center;
  gap:2rem;
  border:1px solid rgba(255,255,255,.2);
  padding:1.2rem 1.4rem;
  color:var(--white);
  font-size:.7rem;
  font-weight:700;
  transition:.4s var(--ease);
}

.cta-button i{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  background:var(--blue);
  color:var(--primary);
  font-style:normal;
}

.cta-button:hover{
  background:rgba(62,200,255,.08);
  border-color:var(--blue);
}


/* ============================================================
   CONTACT
============================================================ */

.contact{
  background:#f3f6f8;
}

.contact-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:5rem;
  align-items:start;
}

.contact-copy h2{
  font-size:clamp(3rem,5.5vw,6rem);
  letter-spacing:-.065em;
}

.contact-copy h2 span{
  color:var(--blue-dark);
}

.contact-copy > p{
  color:var(--muted);
  max-width:48ch;
  margin:1.5rem 0 3rem;
}

.contact-details{
  display:grid;
  gap:1.2rem;
}

.contact-details div{
  padding-top:1rem;
  border-top:1px solid #d9e2e7;
}

.contact-details span{
  display:block;
  color:#758793;
  font-size:7px;
  letter-spacing:.16em;
  margin-bottom:.3rem;
}

.contact-details strong{
  font-size:.78rem;
}

.premium-form{
  background:var(--primary);
  color:var(--white);
  padding:clamp(1.5rem,4vw,3rem);
  box-shadow:var(--shadow-dark);
}

.form-top{
  display:flex;
  justify-content:space-between;
  font-size:7px;
  letter-spacing:.18em;
  color:#76909f;
  margin-bottom:2rem;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.4rem;
}

.field{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.field.full{
  grid-column:1/-1;
}

.field label{
  color:#78909f;
  font-size:7px;
  letter-spacing:.14em;
}

.field input,
.field select,
.field textarea{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.16);
  background:transparent;
  color:var(--white);
  padding:.8rem 0;
  outline:0;
  border-radius:0;
  transition:.3s;
}

.field input::placeholder,
.field textarea::placeholder{
  color:#637b8a;
}

.field select option{
  color:var(--primary);
}

.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--blue);
}

.field textarea{
  min-height:120px;
  resize:vertical;
}

.form-submit{
  margin-top:2rem;
  width:100%;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 1.3rem;
  background:var(--blue);
  color:var(--primary);
  font-size:.7rem;
  font-weight:800;
  transition:.35s var(--ease);
}

.form-submit svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
}

.form-submit:hover{
  background:var(--white);
}

.form-note{
  text-align:center;
  margin-top:1rem;
  color:#647d8c;
  font-size:7px;
}


/* ============================================================
   FOOTER
====================/* ============================================================
   HMH TOOLS — PREMIUM FOOTER
============================================================ */

.site-footer{
  position:relative;
  background:var(--primary, #001E38);
  color:#fff;
  overflow:hidden;
  padding:80px 0 0;
}


/* ============================================================
   TECHNICAL BACKGROUND
============================================================ */

.footer-grid-background{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.08;

  background-image:
    linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px);

  background-size:50px 50px;

  mask-image:linear-gradient(
    to bottom,
    transparent,
    black 20%,
    black 80%,
    transparent
  );
}


/* subtle engineering glow */

.site-footer::before{
  content:"";
  position:absolute;
  width:500px;
  height:500px;
  right:-180px;
  top:-250px;

  border-radius:50%;

  background:radial-gradient(
    circle,
    rgba(214,175,69,.14),
    transparent 65%
  );

  pointer-events:none;
}


/* ============================================================
   MAIN FOOTER
============================================================ */

.footer-main{
  position:relative;
  z-index:2;

  display:grid;

  grid-template-columns:
    1.5fr
    1fr
    1.2fr
    1.4fr;

  gap:60px;

  padding-bottom:60px;
}


/* ============================================================
   BRAND
============================================================ */

.footer-brand{
  max-width:360px;
}

.footer-logo{
  display:inline-flex;
  align-items:center;
  margin-bottom:18px;
}


/* Logo outer glow */

.footer-logo img{
  width:180px;
  max-width:100%;
  height:auto;

  filter:
    drop-shadow(0 0 5px rgba(255,255,255,.8))
    drop-shadow(0 0 14px rgba(255,255,255,.35))
    drop-shadow(0 0 28px rgba(214,175,69,.18));

  transition:.4s ease;
}

.footer-logo:hover img{
  transform:translateY(-3px);

  filter:
    drop-shadow(0 0 7px rgba(255,255,255,1))
    drop-shadow(0 0 20px rgba(255,255,255,.45))
    drop-shadow(0 0 32px rgba(214,175,69,.3));
}


.footer-brand h3{
  margin:8px 0 14px;

  font-size:1.15rem;
  font-weight:700;
  letter-spacing:.14em;

  color:#D6AF45;
}


.footer-brand p{
  margin:0;

  max-width:330px;

  color:rgba(255,255,255,.75);

  font-size:.9rem;
  line-height:1.8;
}


.footer-brand-line{
  width:55px;
  height:2px;

  margin:25px 0 13px;

  background:#D6AF45;
}


.footer-established{
  display:block;

  font-size:.68rem;
  font-weight:700;

  letter-spacing:.18em;

  color:rgba(255,255,255,.55);
}

/* ============================================================
   FOOTER QR CODE
============================================================ */

.footer-qr{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:12px;

  background:#fff;

  border:1px solid rgba(214,175,69,.55);

  border-radius:4px;

  box-shadow:
    0 8px 25px rgba(0,0,0,.18);

  transition:
    transform .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.footer-qr img{
  display:block;

  width:90px;
  height:90px;

  max-width:100%;

  object-fit:contain;

  /* NO GLOW */
  filter:none;

  background:#fff;
}

.footer-qr:hover{
  transform:translateY(-3px);

  border-color:#D6AF45;

  box-shadow:
    0 12px 30px rgba(0,0,0,.25);
}
/* ============================================================
   FOOTER COLUMNS
============================================================ */

.footer-column,
.footer-contact{
  position:relative;
}


.footer-heading{
  display:block;

  margin-bottom:24px;

  color:#D6AF45;

  font-size:.72rem;
  font-weight:800;

  letter-spacing:.16em;
}


/* Links */

.footer-column a{
  display:flex;
  align-items:center;
  gap:11px;

  width:max-content;
  max-width:100%;

  margin-bottom:14px;

  color:rgba(255,255,255,.78);

  font-size:.88rem;
  text-decoration:none;

  transition:
    color .3s ease,
    transform .3s ease;
}


/* respective icons */

.footer-column a i{
  width:16px;

  color:#D6AF45;

  font-size:.7rem;

  transition:transform .3s ease;
}


.footer-column a:hover{
  color:#fff;
  transform:translateX(5px);
}


.footer-column a:hover i{
  transform:translateX(3px);
}


/* ============================================================
   CONTACT
============================================================ */

.footer-contact-item{
  display:flex;
  align-items:flex-start;
  gap:14px;

  margin-bottom:18px;
}


.footer-contact-item > i{
  flex:0 0 18px;

  margin-top:4px;

  color:#D6AF45;

  font-size:.9rem;
}


.footer-contact-item p{
  margin:0;

  color:rgba(255,255,255,.78);

  font-size:.88rem;
  line-height:1.7;
}


.footer-contact-item a{
  color:rgba(255,255,255,.82);

  font-size:.88rem;
  text-decoration:none;

  line-height:1.6;

  transition:color .3s ease;
}


.footer-contact-item a:hover{
  color:#D6AF45;
}


/* ============================================================
   SOCIAL
============================================================ */

.footer-social{
  display:flex;
  gap:9px;

  margin-top:24px;
}


.footer-social a{
  width:36px;
  height:36px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(255,255,255,.22);

  color:#fff;

  text-decoration:none;

  transition:
    background .3s ease,
    border-color .3s ease,
    color .3s ease,
    transform .3s ease;
}


.footer-social a:hover{
  background:#D6AF45;
  border-color:#D6AF45;

  color:#001E38;

  transform:translateY(-3px);
}


/* ============================================================
   BOTTOM BAR
============================================================ */

.footer-bottom{
  position:relative;
  z-index:2;

  display:grid;

  grid-template-columns:1fr auto 1fr;

  align-items:center;

  gap:25px;

  min-height:70px;

  border-top:1px solid rgba(255,255,255,.13);

  color:rgba(255,255,255,.5);

  font-size:.68rem;

  letter-spacing:.04em;
}


.footer-bottom > div{
  display:flex;
  justify-content:flex-end;
  gap:22px;
}


.footer-bottom a{
  color:rgba(255,255,255,.55);

  text-decoration:none;

  transition:color .3s ease;
}


.footer-bottom a:hover{
  color:#D6AF45;
}


.footer-tagline{
  color:#D6AF45;

  font-size:.75rem;
  font-weight:700;

  letter-spacing:.15em;
}


/* ============================================================
   TABLET
============================================================ */

@media(max-width:1000px){

  .footer-main{
    grid-template-columns:1.4fr 1fr 1fr;
    gap:45px;
  }

  .footer-brand{
    grid-row:span 2;
  }

  .footer-contact{
    grid-column:2 / -1;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media(max-width:700px){

  .site-footer{
    padding-top:60px;
  }

  .footer-main{
    grid-template-columns:1fr 1fr;
    gap:40px 25px;

    padding-bottom:40px;
  }

  .footer-brand{
    grid-column:1 / -1;
    grid-row:auto;

    max-width:100%;
  }

  .footer-logo img{
    width:155px;
  }

  .footer-column a{
    font-size:.82rem;
  }

  .footer-contact{
    grid-column:1 / -1;
  }

  .footer-bottom{
    grid-template-columns:1fr;

    gap:12px;

    padding:22px 0;

    text-align:center;
  }

  .footer-bottom > div{
    justify-content:center;
    flex-wrap:wrap;
  }

}


/* ============================================================
   SMALL MOBILE
============================================================ */

@media(max-width:480px){

  .footer-main{
    grid-template-columns:1fr;
  }

  .footer-column,
  .footer-contact{
    grid-column:auto;
  }

  .footer-heading{
    margin-bottom:18px;
  }

  .footer-bottom{
    font-size:.62rem;
  }

  .footer-tagline{
    font-size:.78rem;
  }

}

/* ============================================================
   DESIGNED & DEVELOPED
============================================================ */

.footer-developed{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  white-space:nowrap;
}

.footer-developed span{
  color:rgba(255,255,255,.5);
}

.footer-developed a{
  color:#D6AF45;
  font-weight:800;
  text-decoration:none;
  letter-spacing:.02em;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}

.footer-developed a:hover{
  color:#fff;

  text-shadow:
    0 0 8px rgba(214,175,69,.6);
}	

/* ============================================================
   VIDEO MODAL
============================================================ */

.video-modal{
  position:fixed;
  inset:0;
  z-index:9997;
  display:none;
  place-items:center;
  padding:2rem;
}

.video-modal.is-open{
  display:grid;
}

.video-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,10,18,.9);
  backdrop-filter:blur(12px);
}

.video-modal-inner{
  position:relative;
  z-index:2;
  width:min(1100px,100%);
  background:#000;
  box-shadow:0 40px 100px rgba(0,0,0,.5);
}

.video-modal-inner video{
  width:100%;
  display:block;
}

.video-close{
  position:absolute;
  right:-45px;
  top:-45px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.2);
  color:white;
  font-size:1.5rem;
  z-index:3;
}


/* ============================================================
   SCROLL REVEAL
============================================================ */

.reveal{
  opacity:0;
  transform:translateY(35px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}

.reveal.is-visible{
  opacity:1;
  transform:none;
}


/* ============================================================
   RESPONSIVE
============================================================ */

@media(max-width:1200px){

  .main-nav ul{
    gap:1rem;
  }

  .brand-logo{
    min-width:180px;
  }

  .brand-meta{
    display:none;
  }

  .hero-container{
    gap:2rem;
  }

  .capability-interface{
    grid-template-columns:270px 1fr;
  }

  .footer-main{
    grid-template-columns:1.4fr 1fr 1fr 1fr;
  }

  .footer-contact{
    grid-column:span 2;
  }

}


@media(max-width:1000px){

  .header-contact{
    display:none;
  }

  .main-nav{
    display:none;
  }

  .hamburger{
    display:block;
  }

  .hero-container{
    grid-template-columns:1fr;
    padding-top:3rem;
  }

  .hero-copy{
    max-width:800px;
  }

  .hero-visual{
    max-width:850px;
    width:100%;
    margin-inline:auto;
  }

  .about-top,
  .section-intro-dark,
  .micro-grid,
  .quality-grid,
  .contact-layout{
    grid-template-columns:1fr;
  }

  .about-top{
    gap:2rem;
  }

  .about-visual-grid{
    grid-template-columns:1fr;
  }

  .about-main-image{
    grid-row:auto;
    min-height:600px;
  }

  .about-side{
    grid-template-columns:1fr 1fr;
  }

  .vm-grid{
    grid-template-columns:1fr;
  }

  .vm-card{
    min-height:550px;
  }

  .micro-visual{
    min-height:580px;
  }

  .quality-content{
    text-align:center;
  }

  .quality-content p{
    margin-inline:auto;
  }

  .quality-visual{
    max-width:500px;
  }

  .data-interface{
    grid-template-columns:1fr 1fr;
  }

  .number-card{
    grid-column:1/-1;
    min-height:250px;
  }

  .industry-interface{
    grid-template-columns:1fr;
  }

  .industry-feature{
    min-height:500px;
  }

  .footer-main{
    grid-template-columns:1fr 1fr 1fr;
  }

  .footer-brand{
    grid-column:1/-1;
  }

}


@media(max-width:760px){

  .section{
    padding-block:5rem;
  }

  .header-tech-line{
    justify-content:flex-start;
    gap:2rem;
  }

  .header-tech-line span:nth-child(n+3){
    display:none;
  }

  .header-main{
    min-height:76px;
  }

  .brand-logo img{
    max-width:145px;
    max-height:48px;
  }

  .hero{
    padding-top:105px;
  }

  .hero-container{
    padding-bottom:6rem;
  }

  .hero h1{
    font-size:clamp(2.7rem,12vw,4.8rem);
  }

  .hero-vertical-label{
    display:none;
  }

  .hero-description{
    font-size:.85rem;
  }

  .hero-visual-top,
  .hero-visual-bottom{
    font-size:7px;
  }

  .hero-image-frame{
    aspect-ratio:1/1.05;
  }

  .card-top{
    left:10px;
  }

  .card-bottom{
    right:10px;
  }

  .hero-mini-stat{
    display:none;
  }

  .hero-slider-controls{
    margin-left:auto;
  }

  .hero-coordinate{
    display:none;
  }

  .trust-grid{
    grid-template-columns:1fr 1fr;
  }

  .trust-intro{
    grid-column:1/-1;
    min-height:100px;
  }

  .trust-item{
    min-height:100px;
  }

  .trust-item:nth-child(odd){
    border-right:0;
  }

  .about-top{
    margin-bottom:3rem;
  }

  .mega-title{
    font-size:clamp(3rem,14vw,5rem);
  }

  .about-main-image{
    min-height:450px;
  }

  .about-side{
    grid-template-columns:1fr 1fr;
  }

  .about-year-card,
  .about-stat-card{
    min-height:230px;
    padding:1.3rem;
  }

  .about-year-card strong{
    font-size:3rem;
    margin:1.5rem 0;
  }

  .about-stat-card strong{
    font-size:3.5rem;
    margin-top:2rem;
  }

  .section-head-row{
    display:block;
  }

  .section-head-row > p{
    margin-top:1.3rem;
  }

  .vm-card{
    min-height:500px;
  }

  .vm-graphic{
    width:260px;
    height:260px;
    right:-30px;
  }

  .vm-content h3{
    font-size:1.8rem;
  }

  .video-frame{
    aspect-ratio:1/1;
  }

  .video-bottom-data{
    gap:.7rem;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .capability-interface{
    grid-template-columns:1fr;
  }

  .capability-list{
    border-right:0;
  }

  .capability-tab{
    min-height:72px;
  }

  .capability-display{
    min-height:520px;
  }

  .cap-data-panel{
    left:1rem;
    right:1rem;
    bottom:1rem;
    overflow:auto;
  }

  .cap-data-panel > div{
    min-width:100px;
  }

  .cap-display-content{
    left:1.5rem;
    right:1.5rem;
  }

  .cap-display-content h3{
    font-size:3.5rem;
  }

  .micro-visual{
    min-height:480px;
  }

  .micro-image-wrap{
    width:88%;
    height:78%;
  }

  .magnifier{
    width:130px;
    height:130px;
  }

  .magnifier-inner{
    width:95px;
    height:95px;
  }

  .micro-callout{
    transform:scale(.85);
  }

  .micro-content h2{
    font-size:4.2rem;
  }

  .micro-features{
    grid-template-columns:1fr;
  }

  .process-visual{
    grid-template-columns:1fr;
    gap:2rem;
  }

  .process-line,
  .process-progress{
    top:0;
    bottom:0;
    left:27px;
    right:auto;
    width:1px;
    height:auto;
  }

  .process-progress{
    height:0;
    width:2px;
  }

  .process-step{
    display:grid;
    grid-template-columns:55px 1fr;
    gap:1rem;
  }

  .process-content{
    padding-top:.5rem;
  }

  .growth-chart{
    padding:.8rem;
  }

  .chart-area{
    height:300px;
  }

  .growth-tooltip{
    display:none;
  }

  .growth-years{
    font-size:.55rem;
    padding:0;
  }

  .growth-story-grid{
    grid-template-columns:1fr;
  }

  .growth-story{
    border-right:0;
    border-bottom:1px solid var(--dark-line);
  }

  .growth-story:last-child{
    border-bottom:0;
  }

  .data-interface{
    grid-template-columns:1fr;
  }

  .number-card{
    grid-column:auto;
  }

  .projects-showcase{
    grid-template-columns:1fr 1fr;
    grid-template-rows:250px 250px 250px;
  }

  .project-large{
    grid-column:1/-1;
    grid-row:auto;
  }

  .project-wide{
    grid-column:1/-1;
  }

  .testimonial-interface{
    padding:3rem 1rem 5rem;
  }

  .testimonial-number{
    font-size:4rem;
  }

  .testimonial-controls{
    right:1rem;
  }

  .cta-content{
    margin:4rem auto;
  }

  .cta-content h2{
    font-size:clamp(3.5rem,15vw,7rem);
  }

  .footer-main{
    grid-template-columns:1fr 1fr;
  }

  .footer-brand{
    grid-column:1/-1;
  }

  .footer-contact{
    grid-column:1/-1;
  }

  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }

}


@media(max-width:480px){

  .container{
    padding-inline:1rem;
  }

  .mobile-nav{
    padding-inline:1rem;
  }

  .brand-logo img{
    max-width:130px;
  }

  .hero-kicker{
    font-size:6px;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .hero-actions .btn{
    width:100%;
  }

  .hero-image-frame{
    aspect-ratio:1/1.1;
  }

  .image-tech-card{
    transform:scale(.8);
    transform-origin:center;
  }

  .card-top{
    left:-5px;
  }

  .card-bottom{
    right:-5px;
  }

  .hero-progress{
    width:55px;
  }

  .trust-grid{
    grid-template-columns:1fr;
  }

  .trust-intro{
    grid-column:auto;
  }

  .trust-item{
    border-right:0!important;
    border-bottom:1px solid #dce5e9;
  }

  .about-main-image{
    min-height:380px;
  }

  .about-side{
    grid-template-columns:1fr;
  }

  .about-description{
    padding:1.3rem;
  }

  .vm-card{
    min-height:570px;
    padding:1.3rem;
  }

  .vm-graphic{
    width:220px;
    height:220px;
    opacity:.5;
  }

  .vm-content{
    left:1.3rem;
    right:1.3rem;
    bottom:1.5rem;
  }

  .video-frame{
    aspect-ratio:4/5;
  }

  .video-top-data,
  .video-bottom-data{
    left:1rem;
    right:1rem;
    font-size:6px;
  }

  .video-play{
    width:90px;
    height:90px;
  }

  .play-core{
    width:58px;
    height:58px;
  }

  .capability-tab{
    grid-template-columns:30px 1fr 20px;
    padding:1rem;
  }

  .capability-tab strong{
    font-size:.62rem;
  }

  .capability-display{
    min-height:560px;
  }

  .cap-display-content h3{
    font-size:3rem;
  }

  .cap-number{
    font-size:3.5rem;
  }

  .cap-data-panel{
    gap:.5rem;
  }

  .cap-data-panel > div{
    min-width:85px;
    padding-right:.5rem;
  }

  .cap-data-panel strong{
    font-size:.55rem;
  }

  .micro-visual{
    min-height:400px;
  }

  .micro-image-wrap{
    left:0;
    width:88%;
    height:72%;
  }

  .magnifier{
    width:100px;
    height:100px;
  }

  .magnifier-inner{
    width:72px;
    height:72px;
    font-size:.9rem;
  }

  .micro-callout{
    padding:.55rem .7rem;
  }

  .callout-1{
    right:-5px;
  }

  .callout-2{
    left:-5px;
  }

  .callout-3{
    left:15%;
  }

  .micro-content h2{
    font-size:3.4rem;
  }

  .process-step{
    grid-template-columns:48px 1fr;
  }

  .process-node{
    width:48px;
    height:48px;
  }

  .process-line,
  .process-progress{
    left:24px;
  }

  .chart-area{
    height:240px;
  }

  .growth-years{
    gap:.5rem;
  }

  .growth-years span{
    font-size:6px;
  }

  .projects-showcase{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }

  .project-large,
  .project-small,
  .project-wide{
    grid-column:auto;
    grid-row:auto;
    min-height:330px;
  }

  .industry-feature{
    min-height:400px;
  }

  .industry-feature-content h3{
    font-size:3rem;
  }

  .quality-visual{
    width:100%;
  }

  .quality-core{
    width:140px;
    height:140px;
  }

  .quality-point{
    font-size:6px;
  }

  .testimonial-slide p{
    font-size:1.45rem;
  }

  .testimonial-controls{
    position:static;
    justify-content:center;
    margin-top:2rem;
  }

  .cta-top,
  .cta-bottom{
    flex-direction:column;
    gap:.6rem;
  }

  .cta-button{
    width:100%;
    justify-content:space-between;
  }

  .contact-copy h2{
    font-size:3.5rem;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .field.full{
    grid-column:auto;
  }

  .footer-main{
    grid-template-columns:1fr;
  }

  .footer-brand,
  .footer-contact{
    grid-column:auto;
  }

  .video-close{
    right:0;
    top:-45px;
  }

}


/* ============================================================
   REDUCED MOTION
============================================================ */

@media(prefers-reduced-motion:reduce){

  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }

}

/* ============================================================
   FINAL HEADER / HERO POLISH OVERRIDES
   Requested visual refinements
============================================================ */

:root{
  --gold:#D7B15A;
  --gold-bright:#F0CC72;
  --gold-soft:rgba(215,177,90,.58);
}

/* Header top technical strip - stronger visibility */
.header-tech-line{
  height:32px;
  gap:clamp(1.4rem,3.2vw,4.5rem);
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
  color:rgba(255,255,255,.96);
  text-shadow:0 1px 10px rgba(255,255,255,.18);
}

.header-tech-line .header-tech-item{
  color:#fff;
  font-weight:800;
  opacity:1;
}

/* Larger, cleaner and more visible HMH logo */
.header-main{
  gap:clamp(1.5rem,2.5vw,3rem);
}

.brand-logo{
  min-width:245px;
  gap:1.15rem;
}

.brand-logo-image,
.brand-logo img.logo-enhanced{
  max-width:225px;
  max-height:72px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:
    drop-shadow(0 0 2px rgba(255,255,255,.98))
    drop-shadow(0 0 7px rgba(255,255,255,.82))
    drop-shadow(0 0 16px rgba(255,255,255,.42))
    drop-shadow(0 5px 18px rgba(0,0,0,.32));
  transform:translateZ(0);
}

/* Give the navigation breathing room */
.main-nav ul{
  gap:clamp(1.35rem,2.25vw,2.55rem);
}

.nav-link{
  font-size:.78rem;
  white-space:nowrap;
}

.header-actions{
  gap:1rem;
  flex-shrink:0;
}

/* Replace Discuss Project with round WhatsApp button */
.header-whatsapp{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.06);
  color:#fff;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08),
    0 0 18px rgba(255,255,255,.20);
  transition:
    transform .35s var(--ease),
    background .35s var(--ease),
    border-color .35s var(--ease),
    box-shadow .35s var(--ease);
}

.header-whatsapp svg{
  width:22px;
  height:22px;
  fill:currentColor;
}

.header-whatsapp:hover{
  transform:translateY(-2px) scale(1.06);
  background:#25D366;
  border-color:#25D366;
  color:#fff;
  box-shadow:
    0 0 0 4px rgba(37,211,102,.13),
    0 0 26px rgba(37,211,102,.42);
}

/* Hide any legacy Discuss Project button if it remains in an older HTML copy */
.header-contact{
  display:none!important;
}

/* Advanced Manufacturing / 2008—2026 hero badge:
   gold typography + full white outer glow */
.hero-kicker-glow{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  min-height:42px;
  padding:.65rem 1rem;
  border:1px solid rgba(255,255,255,.92);
  border-radius:999px;
  color:var(--gold-bright);
  background:rgba(255,255,255,.035);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.15),
    0 0 10px rgba(255,255,255,.62),
    0 0 28px rgba(255,255,255,.42),
    0 0 58px rgba(255,255,255,.20),
    inset 0 0 18px rgba(255,255,255,.08);
  text-shadow:
    0 0 8px rgba(240,204,114,.72),
    0 0 20px rgba(240,204,114,.32);
  animation:goldBadgeGlow 3.2s ease-in-out infinite;
}

.hero-kicker-glow .status-dot{
  background:var(--gold-bright);
  box-shadow:
    0 0 5px var(--gold-bright),
    0 0 14px rgba(240,204,114,.9);
}

.hero-kicker-glow > span:last-child{
  color:var(--gold-bright);
  font-weight:800;
  letter-spacing:.16em;
}

@keyframes goldBadgeGlow{
  0%,100%{
    box-shadow:
      0 0 0 1px rgba(255,255,255,.15),
      0 0 10px rgba(255,255,255,.58),
      0 0 28px rgba(255,255,255,.38),
      0 0 58px rgba(255,255,255,.16),
      inset 0 0 18px rgba(255,255,255,.07);
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(255,255,255,.28),
      0 0 14px rgba(255,255,255,.78),
      0 0 38px rgba(255,255,255,.52),
      0 0 72px rgba(255,255,255,.25),
      inset 0 0 22px rgba(255,255,255,.11);
  }
}

/* Make the hero slider noticeably larger while preserving its existing design */
.hero-image-frame-large.hero-slider-larger{
  aspect-ratio:1.04/1;
  min-height:clamp(560px,60vh,720px);
  border-color:rgba(255,255,255,.22);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.06),
    0 24px 70px rgba(0,0,0,.30);
}

/* Keep the larger frame comfortable on medium screens */
@media(max-width:1200px){
  .brand-logo{
    min-width:215px;
  }

  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:195px;
    max-height:66px;
  }

  .main-nav ul{
    gap:1.05rem;
  }

  .nav-link{
    font-size:.72rem;
  }

  .hero-image-frame-large.hero-slider-larger{
    min-height:520px;
  }
}

/* Mobile/tablet */
@media(max-width:1000px){
  .header-tech-line{
    justify-content:flex-start;
    gap:1.8rem;
    padding-inline:1rem;
    font-size:8px;
  }

  .header-main{
    min-height:82px;
  }

  .brand-logo{
    min-width:0;
  }

  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:180px;
    max-height:62px;
  }

  .brand-meta{
    display:none;
  }

  .hero-image-frame-large.hero-slider-larger{
    min-height:0;
    aspect-ratio:1/1.02;
  }
}

@media(max-width:480px){
  .header-tech-line{
    height:28px;
    gap:1.2rem;
    font-size:7px;
    letter-spacing:.11em;
  }

  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:150px;
    max-height:58px;
  }

  .header-whatsapp{
    width:42px;
    height:42px;
  }

  .header-whatsapp svg{
    width:20px;
    height:20px;
  }

  .hero-kicker-glow{
    min-height:38px;
    padding:.55rem .75rem;
    gap:.5rem;
  }

  .hero-kicker-glow > span:last-child{
    font-size:6.5px;
    letter-spacing:.11em;
  }

  .hero-image-frame-large.hero-slider-larger{
    aspect-ratio:1/1.08;
  }
}


/* ============================================================
   HERO REFINEMENT — BALANCED CONTAINER / COMPACT TYPOGRAPHY
============================================================ */
.hero-container{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(2.5rem,5vw,5.5rem);
  padding-top:2.5rem;
  padding-bottom:7rem;
}

.hero-copy{
  max-width:650px;
  justify-self:start;
  width:100%;
}

.hero h1{
  font-size:clamp(2.75rem,4.8vw,5.15rem);
  letter-spacing:-.055em;
  line-height:.9;
  max-width:760px;
}

.hero-line{
  white-space:nowrap;
}

.hero-heading-wrap{
  gap:1rem;
}

.hero-vertical-label{
  font-size:6px;
  letter-spacing:.2em;
}

.hero-animated-label{
  margin-top:1.7rem;
  gap:.55rem;
}

.animated-prefix{
  font-size:.58rem;
}

.animated-word-wrap{
  min-width:250px;
  height:1.4em;
}

.animated-word{
  font-size:.76rem;
}

.hero-description{
  max-width:52ch;
  font-size:.88rem;
  line-height:1.7;
  margin-top:1.25rem;
}

.hero-actions{
  margin-top:1.6rem;
}

/* Gold square panel below the rotating/scroller text */
.hero-gold-square{
  width:clamp(220px,19vw,285px);
  aspect-ratio:1/1;
  margin-top:1.6rem;
  padding:1.35rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:.55rem;
  background:var(--gold-bright);
  color:var(--primary);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.16),
    0 12px 35px rgba(0,0,0,.2),
    0 0 28px rgba(240,204,114,.18);
  position:relative;
  overflow:hidden;
}

.hero-gold-square::before,
.hero-gold-square::after{
  content:"";
  position:absolute;
  pointer-events:none;
}

.hero-gold-square::before{
  inset:12px;
  border:1px solid rgba(0,30,56,.22);
}

.hero-gold-square::after{
  width:70px;
  height:1px;
  top:22px;
  left:22px;
  background:var(--primary);
}

.hero-gold-square span{
  position:relative;
  z-index:1;
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.16em;
}

.hero-gold-square strong{
  position:relative;
  z-index:1;
  font-family:var(--font-display);
  font-size:clamp(1.35rem,2vw,2rem);
  line-height:.95;
  letter-spacing:-.035em;
}

.hero-gold-square small{
  position:relative;
  z-index:1;
  max-width:23ch;
  font-size:.52rem;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.1em;
}

/* Right visual: true square, centered inside the same container */
.hero-visual{
  width:100%;
  max-width:620px;
  justify-self:end;
  min-width:0;
}

.hero-image-frame-large.hero-slider-larger,
.hero-image-frame{
  width:100%;
  aspect-ratio:1/1;
  min-height:0;
  height:auto;
}

@media(max-width:1200px){
  .hero-container{
    gap:3rem;
  }

  .hero-copy{
    max-width:610px;
  }

  .hero h1{
    font-size:clamp(2.55rem,5vw,4.5rem);
  }

  .main-nav ul{
    gap:clamp(1rem,1.6vw,1.7rem);
  }
}

@media(max-width:1000px){
  .hero-container{
    grid-template-columns:1fr;
    gap:2.5rem;
    padding-top:3rem;
  }

  .hero-copy,
  .hero-visual{
    max-width:760px;
    justify-self:center;
  }

  .hero-gold-square{
    width:min(260px,58vw);
  }

  .hero-image-frame-large.hero-slider-larger,
  .hero-image-frame{
    aspect-ratio:1/1;
  }
}

@media(max-width:760px){
  .hero h1{
    font-size:clamp(2.35rem,10.5vw,4.2rem);
    line-height:.91;
  }

  .hero-line{
    white-space:normal;
  }

  .hero-animated-label{
    margin-top:1.45rem;
  }

  .hero-description{
    font-size:.84rem;
  }

  .hero-gold-square{
    width:min(230px,62vw);
    padding:1.15rem;
  }
}

@media(max-width:480px){
  .hero-container{
    gap:2rem;
  }

  .hero h1{
    font-size:clamp(2.1rem,11vw,3.35rem);
  }

  .hero-gold-square{
    width:min(210px,68vw);
  }
}


/* ============================================================
   FINAL HERO / HEADER REFINEMENT
   ============================================================ */

/* Header logo: larger, clearer and more visible without changing the source logo */
.brand-logo{
  min-width:270px;
  gap:1.25rem;
}

.brand-logo-image,
.brand-logo img.logo-enhanced{
  width:auto;
  max-width:260px;
  max-height:88px;
  object-fit:contain;
  filter:
    drop-shadow(0 0 2px rgba(255,255,255,1))
    drop-shadow(0 0 9px rgba(255,255,255,.95))
    drop-shadow(0 0 20px rgba(255,255,255,.52))
    drop-shadow(0 5px 18px rgba(0,0,0,.35));
}

/* Attention-grabbing WhatsApp button */
.header-whatsapp{
  position:relative;
  isolation:isolate;
  width:48px;
  height:48px;
  border-radius:50%;
  color:#fff;
  border:1px solid rgba(255,255,255,.82);
  background:rgba(37,211,102,.06);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.12),
    0 0 16px rgba(255,255,255,.18),
    0 0 24px rgba(37,211,102,.12);
  animation:whatsappAttention 1.8s ease-in-out infinite;
}

.header-whatsapp::before{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  border:2px solid rgba(37,211,102,.82);
  opacity:.85;
  z-index:-1;
  animation:whatsappRing 1.8s ease-out infinite;
}

.header-whatsapp svg{
  position:relative;
  z-index:2;
  width:23px;
  height:23px;
  fill:#fff;
  filter:drop-shadow(0 0 5px rgba(37,211,102,.75));
}

.header-whatsapp:hover{
  background:#25D366;
  border-color:#fff;
  color:#fff;
  transform:scale(1.08);
  box-shadow:
    0 0 0 4px rgba(37,211,102,.16),
    0 0 30px rgba(37,211,102,.55);
}

@keyframes whatsappAttention{
  0%,100%{
    background:rgba(37,211,102,.06);
    box-shadow:
      0 0 0 1px rgba(255,255,255,.12),
      0 0 16px rgba(255,255,255,.18),
      0 0 24px rgba(37,211,102,.12);
  }
  45%{
    background:rgba(37,211,102,.22);
    box-shadow:
      0 0 0 2px rgba(37,211,102,.32),
      0 0 20px rgba(37,211,102,.62),
      0 0 36px rgba(37,211,102,.38);
  }
  55%{
    background:rgba(37,211,102,.08);
  }
}

@keyframes whatsappRing{
  0%{transform:scale(.82);opacity:.9;}
  70%{transform:scale(1.25);opacity:0;}
  100%{transform:scale(1.25);opacity:0;}
}

/* Balanced hero: medium typography, equal left/right container breathing room */
.hero-container{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(3rem,5vw,5.5rem);
  padding-top:2.5rem;
  padding-bottom:7rem;
}

.hero-copy{
  width:100%;
  max-width:590px;
  justify-self:start;
}

.hero-heading-wrap{
  gap:.85rem;
}

.hero h1{
  width:100%;
  max-width:650px;
  font-size:clamp(2.55rem,4.25vw,4.35rem);
  line-height:.92;
  letter-spacing:-.055em;
}

.hero-line{
  white-space:nowrap;
}

.hero-animated-label{
  margin-top:1.55rem;
  gap:.55rem;
}

.animated-prefix{
  font-size:.57rem;
}

.animated-word-wrap{
  min-width:245px;
}

.animated-word{
  font-size:.73rem;
}

.hero-description{
  max-width:54ch;
  margin-top:1.2rem;
  font-size:.86rem;
  line-height:1.65;
}

.hero-actions{
  margin-top:1.5rem;
}

/* The visual stays completely inside the same centered container */
.hero-visual{
  width:100%;
  max-width:590px;
  justify-self:end;
  min-width:0;
}

.hero-image-frame-large.hero-slider-larger,
.hero-image-frame{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:1 / 1;
}

/* Scrolling strip from the attached reference: ONLY its colours change.
   Animation, spacing and movement remain intact. */
.hero-bottom-marquee{
  background:var(--gold-bright);
  border-top:1px solid rgba(0,30,56,.20);
  border-bottom:1px solid rgba(0,30,56,.20);
  padding-block:.95rem;
  box-shadow:0 -8px 25px rgba(0,0,0,.10);
}

.marquee-inner{
  color:var(--primary);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.18em;
}

.marquee-inner i{
  color:var(--primary);
}

@media(max-width:1200px){
  .brand-logo{
    min-width:225px;
  }

  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:215px;
    max-height:76px;
  }

  .hero-container{
    gap:3rem;
  }

  .hero-copy{
    max-width:560px;
  }

  .hero h1{
    font-size:clamp(2.35rem,4.5vw,3.8rem);
  }

  .hero-visual{
    max-width:550px;
  }
}

@media(max-width:1000px){
  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:195px;
    max-height:68px;
  }

  .hero-container{
    grid-template-columns:1fr;
    gap:2.5rem;
    padding-top:3rem;
  }

  .hero-copy,
  .hero-visual{
    width:100%;
    max-width:720px;
    justify-self:center;
  }

  .hero h1{
    max-width:none;
    font-size:clamp(2.7rem,7vw,4.5rem);
  }

  .hero-image-frame-large.hero-slider-larger,
  .hero-image-frame{
    aspect-ratio:1 / 1;
  }
}

@media(max-width:760px){
  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:175px;
    max-height:62px;
  }

  .header-whatsapp{
    width:44px;
    height:44px;
  }

  .hero h1{
    font-size:clamp(2.25rem,9vw,3.7rem);
    line-height:.93;
  }

  .hero-line{
    white-space:normal;
  }

  .hero-bottom-marquee{
    padding-block:.8rem;
  }
}

@media(max-width:480px){
  .brand-logo-image,
  .brand-logo img.logo-enhanced{
    max-width:150px;
    max-height:56px;
  }

  .header-whatsapp{
    width:42px;
    height:42px;
  }

  .hero h1{
    font-size:clamp(2rem,10.5vw,3.15rem);
  }
}

@media(prefers-reduced-motion:reduce){
  .header-whatsapp,
  .header-whatsapp::before{
    animation:none;
  }
}


/* ============================================================
   HMH PROFILE / ABOUT
   WHITE PREMIUM ENGINEERING SECTION
============================================================ */

.hmh-profile-section{
  position:relative;
  overflow:hidden;

  background:#ffffff;
  color:#001E38;

  padding:
    clamp(75px,8vw,125px)
    0;
}


/* ============================================================
   MAIN CONTAINER
============================================================ */

.hmh-profile-grid{
  width:min(1380px,92%);
  margin:0 auto;

  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);

  gap:clamp(55px,7vw,105px);

  align-items:center;
}


/* ============================================================
   LEFT IMAGE
============================================================ */

.hmh-profile-visual{
  position:relative;
  min-width:0;
}


.hmh-profile-image-frame{
  position:relative;

  width:100%;

  aspect-ratio:1.18 / 1;

  overflow:hidden;

  background:#eef1f3;

  border:
    1px solid rgba(0,30,56,.16);

  box-shadow:
    0 18px 55px rgba(0,30,56,.12);
}


/* IMAGE */

.hmh-profile-image{
  width:100%;
  height:100%;

  display:block;

  object-fit:cover;

  transform:scale(1.04);

  transition:
    transform 1.4s cubic-bezier(.16,1,.3,1);

  animation:
    hmhImageFloat 8s ease-in-out infinite;
}


.hmh-profile-image-frame:hover
.hmh-profile-image{
  transform:
    scale(1.09)
    translateY(-4px);
}


@keyframes hmhImageFloat{

  0%,100%{
    transform:scale(1.04)
              translateY(0);
  }

  50%{
    transform:scale(1.065)
              translateY(-4px);
  }

}


/* ============================================================
   IMAGE OVERLAY
============================================================ */

.hmh-profile-image-frame::after{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(0,30,56,.02),
      rgba(0,30,56,.08) 60%,
      rgba(0,30,56,.38)
    );

  pointer-events:none;
}


/* ============================================================
   TECHNICAL GRID
============================================================ */

.hmh-image-grid{
  position:absolute;
  inset:0;

  z-index:2;

  opacity:.16;

  background-image:
    linear-gradient(
      rgba(0,30,56,.25) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(0,30,56,.25) 1px,
      transparent 1px
    );

  background-size:55px 55px;

  pointer-events:none;
}


/* ============================================================
   MOVING GOLD SCAN
============================================================ */

.hmh-image-scan{
  position:absolute;

  top:-10%;
  left:0;

  width:100%;
  height:2px;

  z-index:6;

  background:
    linear-gradient(
      90deg,
      transparent,
      #D6AF45,
      transparent
    );

  box-shadow:
    0 0 12px rgba(214,175,69,.55);

  animation:
    hmhScan 5s linear infinite;
}


@keyframes hmhScan{

  0%{
    top:-10%;
    opacity:0;
  }

  10%{
    opacity:1;
  }

  90%{
    opacity:1;
  }

  100%{
    top:110%;
    opacity:0;
  }

}


/* ============================================================
   CORNERS
============================================================ */

.hmh-corner{
  position:absolute;

  width:27px;
  height:27px;

  z-index:7;

  border-color:#ffffff;

  border-style:solid;

  filter:
    drop-shadow(0 1px 2px rgba(0,30,56,.4));
}


.hmh-corner-tl{
  top:17px;
  left:17px;

  border-width:2px 0 0 2px;
}


.hmh-corner-tr{
  top:17px;
  right:17px;

  border-width:2px 2px 0 0;
}


.hmh-corner-bl{
  bottom:17px;
  left:17px;

  border-width:0 0 2px 2px;
}


.hmh-corner-br{
  bottom:17px;
  right:17px;

  border-width:0 2px 2px 0;
}


/* ============================================================
   CROSSHAIR
============================================================ */

.hmh-crosshair{
  position:absolute;

  top:50%;
  left:50%;

  width:62px;
  height:62px;

  transform:
    translate(-50%,-50%);

  z-index:6;

  opacity:.8;
}


.hmh-crosshair::before,
.hmh-crosshair::after{
  content:"";

  position:absolute;

  background:#ffffff;
}


.hmh-crosshair::before{
  width:100%;
  height:1px;

  top:50%;
  left:0;
}


.hmh-crosshair::after{
  width:1px;
  height:100%;

  left:50%;
  top:0;
}


.hmh-crosshair span{
  position:absolute;

  width:10px;
  height:10px;

  left:50%;
  top:50%;

  transform:
    translate(-50%,-50%);

  border:
    1px solid #D6AF45;

  border-radius:50%;

  box-shadow:
    0 0 12px rgba(214,175,69,.65);
}


.hmh-crosshair i{
  position:absolute;

  width:4px;
  height:4px;

  left:50%;
  top:50%;

  transform:
    translate(-50%,-50%);

  background:#D6AF45;

  border-radius:50%;
}


/* ============================================================
   IMAGE LABEL
============================================================ */

.hmh-image-label{
  position:absolute;

  left:24px;
  bottom:22px;

  z-index:8;

  display:flex;
  align-items:center;

  gap:15px;

  font-size:8px;

  letter-spacing:.18em;

  color:#ffffff;

  text-shadow:
    0 1px 4px rgba(0,0,0,.6);
}


.hmh-image-label strong{
  color:#D6AF45;
}


/* ============================================================
   IMAGE BOTTOM DATA
============================================================ */

.hmh-image-bottom-line{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:15px;

  padding:
    14px 2px 0;

  border-bottom:
    1px solid rgba(0,30,56,.12);

  padding-bottom:12px;
}


.hmh-image-bottom-line span{
  font-size:7px;

  font-weight:700;

  letter-spacing:.16em;

  color:
    rgba(0,30,56,.55);
}


.hmh-image-bottom-line span:nth-child(2){
  color:#D6AF45;
}


/* ============================================================
   RIGHT CONTENT
============================================================ */

.hmh-profile-content{
  min-width:0;

  max-width:680px;
}


/* ============================================================
   SECTION CODE
============================================================ */

.hmh-section-code{
  display:flex;

  justify-content:space-between;

  gap:20px;

  padding-bottom:17px;

  margin-bottom:25px;

  border-bottom:
    1px solid rgba(0,30,56,.12);

  font-size:11px;

  font-weight:700;

  letter-spacing:.18em;

  color:
    BLACK;
}


.hmh-section-code span:last-child{
  color:#D6AF45;
}


/* ============================================================
   GOLD LINE
============================================================ */

.hmh-gold-line{
  position:relative;

  width:75px;
  height:2px;

  margin-bottom:18px;

  overflow:hidden;

  background:
    rgba(214,175,69,.22);
}


.hmh-gold-line::after{
  content:"";

  position:absolute;

  top:0;
  left:-100%;

  width:100%;
  height:100%;

  background:#D6AF45;

  animation:
    hmhGoldMove 2.8s ease-in-out infinite;
}


@keyframes hmhGoldMove{

  0%{
    left:-100%;
  }

  50%{
    left:100%;
  }

  100%{
    left:100%;
  }

}


/* ============================================================
   KICKER
============================================================ */

.hmh-profile-kicker{
  display:block;

  margin-bottom:20px;

  font-size:12px;

  font-weight:700;

  letter-spacing:.17em;

  color:
    black;
}


/* ============================================================
   TYPING TITLE
============================================================ */

.hmh-profile-heading{
  margin:0 0 22px;

  font-family:'Archivo',sans-serif;

  font-size:
    clamp(1.35rem,3.2vw,3.0rem);

  line-height:.98;

  font-weight:800;

  letter-spacing:-.045em;

  color:#001E38;

  overflow:hidden;
}


.hmh-type-line{
  display:block;

  width:0;

  max-width:max-content;

  white-space:nowrap;

  overflow:hidden;

  animation:
    hmhTyping 1.45s
    steps(24,end)
    forwards;
}


.hmh-type-line.line-1{
  animation-delay:.25s;
}


.hmh-type-line.line-2{
  animation-delay:1.55s;
}


@keyframes hmhTyping{

  from{
    width:0;
  }

  to{
    width:100%;
  }

}


/* ============================================================
   GOLD HEADING ACCENT
============================================================ */

.hmh-heading-accent{
  display:flex;

  align-items:center;

  gap:8px;

  margin-bottom:27px;
}


.hmh-heading-accent span{
  display:block;

  width:32px;
  height:2px;

  background:#D6AF45;
}


.hmh-heading-accent span:last-child{
  width:8px;
}


.hmh-heading-accent i{
  display:block;

  width:6px;
  height:6px;

  background:#D6AF45;

  transform:rotate(45deg);

  animation:
    hmhAccentPulse 1.8s ease-in-out infinite;
}


@keyframes hmhAccentPulse{

  0%,100%{
    transform:
      rotate(45deg)
      scale(.75);

    opacity:.5;
  }

  50%{
    transform:
      rotate(45deg)
      scale(1);

    opacity:1;
  }

}


/* ============================================================
   THREE PARAGRAPHS
============================================================ */

.hmh-profile-text{
  max-width:650px;
}


.hmh-profile-text p{
  margin:0 0 17px;

  font-family:'Inter',sans-serif;

  font-size:14px;

  line-height:1.78;

  text-align:justify;

  color:
    BLACK;
}


.hmh-profile-text p:last-child{
  margin-bottom:0;
}


/* ============================================================
   BOTTOM TECHNICAL LINE
============================================================ */

.hmh-content-footer{
  display:flex;

  align-items:center;

  gap:13px;

  margin-top:30px;

  padding-top:18px;

  border-top:
    1px solid rgba(0,30,56,.12);
}


.hmh-content-footer > span{
  font-size:15px;

  font-weight:700;

  letter-spacing:.16em;

  color:
    BLACK;
}


.hmh-content-footer > span:last-child{
  color:#D6AF45;
}


.hmh-footer-line{
  position:relative;

  width:45px;
  height:1px;

  overflow:hidden;

  background:
    rgba(214,175,69,.25);
}


.hmh-footer-line i{
  position:absolute;

  left:-30px;
  top:0;

  width:20px;
  height:1px;

  background:#D6AF45;

  animation:
    hmhFooterMove 2.5s linear infinite;
}


@keyframes hmhFooterMove{

  from{
    left:-25px;
  }

  to{
    left:55px;
  }

}


/* ============================================================
   TABLET
============================================================ */

@media(max-width:1000px){

  .hmh-profile-grid{
    grid-template-columns:1fr;

    gap:55px;
  }

  .hmh-profile-content{
    max-width:800px;
  }

  .hmh-profile-image-frame{
    aspect-ratio:1.45 / 1;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media(max-width:760px){

  .hmh-profile-section{
    padding:70px 0;
  }

  .hmh-profile-grid{
    width:min(92%,650px);

    gap:45px;
  }

  .hmh-section-code{
    flex-direction:column;

    align-items:flex-start;

    gap:8px;
  }

  .hmh-profile-heading{
    font-size:
      clamp(2.25rem,9vw,3.6rem);
  }

  .hmh-profile-text p{
    font-size:13px;

    line-height:1.75;
  }

}


@media(max-width:480px){

  .hmh-profile-image-frame{
    aspect-ratio:1 / 1;
  }

  .hmh-image-bottom-line{
    flex-wrap:wrap;
  }

  .hmh-content-footer{
    flex-wrap:wrap;

    gap:10px;
  }

}


/* ============================================================
   REDUCED MOTION
============================================================ */

@media(prefers-reduced-motion:reduce){

  .hmh-profile-image,
  .hmh-image-scan,
  .hmh-gold-line::after,
  .hmh-heading-accent i,
  .hmh-footer-line i,
  .hmh-type-line{
    animation:none;
  }

  .hmh-type-line{
    width:auto;
  }

}