.nav-wrap {
    position: fixed; top: 0; left: 0; right: 0;
    z-index: 100;
    padding: 20px clamp(16px, 2vw, 28px);
    transition: padding 0.4s var(--ease);
  }
  .nav-wrap.scrolled { padding-top: 14px; }
  .nav-inner {
    max-width: 1600px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }
  .nav-logo {
    background: #0E1838;
    color: var(--bg);
    padding: 12px 20px;
    border-radius: var(--r-pill);
    text-decoration: none;
    display: flex;
    align-items: center;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
    transition: transform 0.4s var(--ease);
  }
  .nav-log img {
    display:block;filter:none;
  }
  .nav-logo:hover { transform: translateY(-2px); }
  .nav-links {
    flex: 1;
    display: flex;
    justify-content: center;
  }
  .nav-links-inner {
    background: #0E1838;
    color: var(--bg);
    border-radius: var(--r-pill);
    padding: 8px 8px 8px 24px;
    display: flex;
    align-items: center;
    gap: 4px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  }
  .nav-brand-tag {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.05em;
    padding-right: 16px;
    border-right: 1px solid rgba(255,255,255,0.15);
    margin-right: 4px;
    color: rgba(255,255,255,0.7);
  }
  .nav-brand-tag .reg { opacity: 0.6; }
  .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: var(--r-pill);
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    font-size: 14px;
    letter-spacing: -0.01em;
    transition: color 0.3s, background 0.3s;
    white-space: nowrap;
  }
  .nav-link:hover, .nav-link.active { color: var(--bg); background: rgba(255,255,255,0.06); }
  .nav-link-num {
    font-family: var(--font-mono);
    font-size: 11px;
    color: rgba(255,255,255,0.45);
  }
  .nav-cta {
    background: var(--bg);
    color: var(--ink);
    padding: 10px 22px;
    border-radius: var(--r-pill);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    margin-left: 6px;
    transition: background 0.3s;
  }
  .nav-cta:hover { background: var(--ochre); }
  .nav-right {
    display: flex;
    gap: 10px;
    align-items: center;
  }
  .nav-lang {
    background: #0E1838;
    color: var(--bg);
    border-radius: var(--r-pill);
    padding: 6px;
    display: flex;
    gap: 2px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  }
  .nav-lang-btn {
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.6);
    padding: 8px 10px;
    border-radius: var(--r-pill);
    font-family: var(--font-mono);
    font-size: 11px;
    cursor: pointer;
    transition: color 0.3s, background 0.3s;
    min-width: 34px;
  }
  .nav-lang-btn.active {
    background: var(--bg);
    color: var(--ink);
  }
  .nav-phone {
    background: #0E1838;
    width: 48px;
    height: 48px;
    border-radius: var(--r-pill);
    display: grid;
    place-items: center;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
    text-decoration: none;
    transition: transform 0.3s var(--ease), background 0.3s ease;
  }
  .nav-phone:hover { transform: translateY(-2px); background: var(--blue); }
  .nav-phone img { filter: brightness(0) invert(1); }
  @media (max-width: 960px) {
    .nav-links-inner { padding: 6px 8px 6px 16px; }
    .nav-link { display: none; }
    .nav-cta { margin-left: 0; }
    .nav-brand-tag { border: 0; margin: 0; padding-right: 8px; }
    .nav-lang { display: none; }
    .nav-phone { width: 44px; height: 44px; }
  }

   .ft-sec { padding: 80px 0 32px; }
    .ft-top {
      padding-bottom: 60px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .ft-contact-block {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
    }
    .ft-contact-item {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 32px 40px;
      text-decoration: none;
      border-right: 1px solid rgba(255,255,255,0.08);
      transition: color 0.3s;
    }
    .ft-contact-item:last-child { border-right: none; }
    .ft-no-link { cursor: default; }
    .ft-contact-label {
      font-family: var(--font-mono);
      font-size: 10px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.35);
    }
    .ft-contact-value {
      font-size: clamp(16px, 2vw, 22px);
      font-weight: 500;
      color: rgba(255,255,255,0.9);
      line-height: 1.3;
      letter-spacing: -0.02em;
      transition: color 0.3s;
    }
    .ft-contact-item:hover .ft-contact-value { color: var(--ochre); }
    .ft-no-link:hover .ft-contact-value { color: rgba(255,255,255,0.9); }
    .ft-insta-val { display: flex; align-items: center; gap: 10px; }

    .ft-huge { padding: 80px 0 40px; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .ft-huge-txt {
      font-size: clamp(80px, 16vw, 260px);
      font-weight: 500;
      letter-spacing: -0.05em;
      line-height: 0.88;
    }
    .ft-huge-txt em { font-style: italic; font-weight: 300; color: rgba(255,255,255,0.45); font-family: "Manrope", serif; }

    .ft-bottom {
      display: flex;
      justify-content: space-between;
      padding-top: 32px;
      font-family: var(--font-mono);
      font-size: 11px;
      letter-spacing: 0.05em;
      color: rgba(255,255,255,0.4);
      gap: 16px;
      flex-wrap: wrap;
    }
    .ft-bottom-r { display: flex; gap: 10px; }
    .ft-bottom a { color: rgba(255,255,255,0.5); text-decoration: none; }
    .ft-bottom a:hover { color: var(--bg); }

    @media (max-width: 900px) {
      .ft-contact-block { grid-template-columns: 1fr 1fr; }
      .ft-contact-item { border-right: none; padding-right: 0; }
    }
    @media (max-width: 500px) {
      .ft-contact-block { grid-template-columns: 1fr; }
      .ft-huge-txt { font-size: clamp(44px, 11vw, 80px); text-align: center; }
    }



    /* Brand accent utilities */
.text-gradient {
  background: var(--brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.bg-gradient { background: var(--brand-gradient); }
.bg-gradient-soft { background: var(--brand-gradient-soft); }

.dark-brand {
  background: var(--brand-gradient);
  color: var(--bg);
}
.dark-brand .eyebrow { color: rgba(255,255,255,0.6); }
.dark-brand .body-lg { color: rgba(255,255,255,0.82); }

/* ============== PGS ASTANA — PREMIUM MINIMALISM ============== */

:root {
  /* Palette */
  --bg: #F4F2EE;
  --bg-2: #EBE8E2;
  --ink: #0E0E0F;
  --ink-2: #1A1A1D;
  --ink-soft: #2A2A2E;
  --muted: #8A8782;
  --muted-2: #6B6864;
  --line: #D9D5CD;
  --line-dark: #2A2A2E;

  /* Brand — from logo + map */
  --brand-deep: #0B1F4D;
  --brand: #163A7A;
  --brand-2: #2456B8;
  --brand-light: #4A7FD6;
  --brand-gradient: linear-gradient(135deg, #0B1F4D 0%, #163A7A 50%, #2456B8 100%);
  --brand-gradient-soft: linear-gradient(135deg, #163A7A 0%, #2456B8 50%, #4A7FD6 100%);
  --accent-green: #3E8B54;
  --accent-amber: #E9B93B;

  --blue: #163A7A;
  --blue-soft: #4A7FD6;
  --ochre: #E9B93B;

  /* Radii */
  --r-pill: 9999px;
  --r-xl: 32px;
  --r-lg: 24px;
  --r-md: 16px;

  /* Type */
  --font-display: "Manrope", "Inter", system-ui, sans-serif;
  --font-sans: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;

  /* Easing */
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-fast: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  min-height: 100vh;
  font-feature-settings: "ss01", "cv11";
  text-wrap: pretty;
}

body.lang-kz {
  --font-display: "Inter", system-ui, sans-serif;
  --font-sans: "Inter", system-ui, sans-serif;
  --font-mono: "Inter", system-ui, monospace;  /* ← JetBrains Mono орнына Inter */
}

body.lang-kz .tst2-back-qmark,
body.lang-kz .about-highlight,
body.lang-kz .stats-em,
body.lang-kz .proj-em,
body.lang-kz .geo-em,
body.lang-kz .exp-em,
body.lang-kz .why-em,
body.lang-kz .team-em,
body.lang-kz .part-em,
body.lang-kz .serv-em,
body.lang-kz .tst-em,
body.lang-kz .cnt-em {
  font-family: "Inter", serif;
}

body.lang-kz .nav-brand-tag,
body.lang-kz .nav-link-num,
body.lang-kz .nav-lang-btn,
body.lang-kz .ft-contact-label,
body.lang-kz .ft-bottom,
body.lang-kz .eyebrow,
body.lang-kz .pill,
body.lang-kz .circle-icon,
body.lang-kz .about-card-sm,
body.lang-kz .cert-flip-hint,
body.lang-kz .stat-lbl,
body.lang-kz .proj-hover-lbl,
body.lang-kz .proj-hover-action,
body.lang-kz .proj-year,
body.lang-kz .geo-badge,
body.lang-kz .geo-card-region,
body.lang-kz .cnt-field > span,
body.lang-kz .cnt-fine,
body.lang-kz .tst2-pdf-btn,
body.lang-kz .tst2-num,
body.lang-kz .tst2-place {
  font-family: "Inter", var(--font-mono), monospace;
}

body.lang-kz em,
body.lang-kz .italic-style,
body.lang-kz [style*="italic"] {
  font-family: "Inter", serif;
}

img { display: block; max-width: 100%; height: auto; }

/* Selection */
::selection {
  background: var(--ink);
  color: var(--bg);
}

/* Utilities */
.container {
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 56px);
}

.container-wide {
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: clamp(20px, 3vw, 40px);
}

.section {
  padding-block: clamp(80px, 12vw, 180px);
}

.eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted-2);
  font-weight: 500;
}

.display {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 0.92;
}

.h-xl { font-size: clamp(64px, 9vw, 120px); }
.h-lg { font-size: clamp(48px, 6.5vw, 96px); }
.h-md { font-size: clamp(36px, 5vw, 88px); }
.h-sm { font-size: clamp(28px, 3vw, 48px); }

.body-lg {
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.45;
  color: var(--ink-soft);
  max-width: 56ch;
}

/* Dark section */
.dark {
  background: var(--ink);
  color: var(--bg);
}
.dark .eyebrow { color: rgba(255,255,255,0.5); }
.dark .body-lg { color: rgba(255,255,255,0.72); }

/* Pill */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: var(--r-pill);
  background: rgba(14,14,15,0.04);
  border: 1px solid var(--line);
  font-size: 13px;
  color: var(--ink-soft);
  white-space: nowrap;
}
.dark .pill {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.8);
}

/* Button */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 28px;
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-decoration: none;
  border: none;
  cursor: pointer;
  overflow: hidden;
  transition: transform 0.5s var(--ease);
  will-change: transform;
}
.btn > * { position: relative; z-index: 2; }
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--blue);
  transform: translateY(101%);
  transition: transform 0.5s var(--ease);
  z-index: 1;
}
.btn:hover::before { transform: translateY(0); }
.btn-outline {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--ink);
}
.btn-outline::before { background: var(--ink); }
.btn-outline:hover { color: var(--bg); }
.dark .btn {
  background: var(--bg);
  color: var(--ink);
}
.dark .btn::before { background: var(--ochre); }

.btn-arrow {
  width: 28px; height: 28px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.14);
  transition: transform 0.4s var(--ease);
}
.btn:hover .btn-arrow { transform: rotate(-45deg); }

/* Circle icon */
.circle-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid currentColor;
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  transition: transform 0.4s var(--ease), background 0.3s ease, color 0.3s ease;
}
.circle-icon:hover {
  background: var(--ink);
  color: var(--bg);
  transform: rotate(45deg);
}

/* Scroll reveal baseline */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1.2s var(--ease), transform 1.2s var(--ease);
  will-change: opacity, transform;
}
.reveal.in {
  opacity: 1;
  transform: none;
}
.reveal.delay-1 { transition-delay: 0.15s; }
.reveal.delay-2 { transition-delay: 0.30s; }
.reveal.delay-3 { transition-delay: 0.46s; }
.reveal.delay-4 { transition-delay: 0.64s; }

/* Magnetic cursor */
.mag-cursor {
  position: fixed;
  top: 0; left: 0;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--ink);
  mix-blend-mode: difference;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  transition: width 0.3s var(--ease), height 0.3s var(--ease), background 0.3s;
  backdrop-filter: invert(1);
}
.mag-cursor.hover {
  width: 56px; height: 56px;
  background: var(--bg);
}
@media (hover: none) { .mag-cursor { display: none; } }

/* Marquee */
.marquee {
  display: flex;
  overflow: hidden;
  gap: 24px;
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.marquee-track {
  display: flex;
  gap: 24px;
  flex-shrink: 0;
  animation: marquee 40s linear infinite;
}
@keyframes marquee {
  to { transform: translateX(calc(-100% - 24px)); }
}

/* Hide scrollbar for marquee */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { scrollbar-width: none; }

/* Images placeholder */
.img-ph {
  background: linear-gradient(135deg, #d9d5cd 0%, #c8c4bc 100%);
  background-size: 12px 12px;
  background-image:
    repeating-linear-gradient(45deg, rgba(0,0,0,0.04) 0 1px, transparent 1px 12px),
    linear-gradient(135deg, #e2ded6 0%, #cfcac1 100%);
  color: var(--muted-2);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 20px;
}
.img-ph.dark-ph {
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 12px),
    linear-gradient(135deg, #2a2a2e 0%, #1a1a1d 100%);
  color: rgba(255,255,255,0.4);
}

/* Splitter line */
.rule {
  height: 1px;
  background: var(--line);
  border: 0;
  margin: 0;
}
.dark .rule { background: rgba(255,255,255,0.1); }

/* Animated counter pulse */
.count-pulse {
  font-variant-numeric: tabular-nums;
}

/* Focus */
:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

/* ============== PAGE LOADER ============== */
#page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #0B1F4D;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 1.1s cubic-bezier(0.76, 0, 0.24, 1), opacity 0.4s ease 0.9s;
  will-change: transform, opacity;
  overflow: hidden;
}
#page-loader::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0B1F4D 0%, #163A7A 50%, #2456B8 100%);
  opacity: 0.6;
}
#page-loader.done {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.loader-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  animation: loaderFadeIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  opacity: 0;
}
.loader-logo {
  display: block;
  width: auto;
  height: 72px;
  filter: brightness(0) invert(1);
}
.loader-bar-wrap {
  width: 160px;
  height: 1.5px;
  background: rgba(255,255,255,0.15);
  border-radius: 2px;
  overflow: hidden;
}
.loader-bar {
  height: 100%;
  width: 0%;
  background: rgba(255,255,255,0.7);
  border-radius: 2px;
  animation: loaderBarFill 1.5s cubic-bezier(0.76, 0, 0.24, 1) 0.15s forwards;
}
@keyframes loaderFadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
@keyframes loaderBarFill {
  from { width: 0%; }
  to   { width: 100%; }
}

/* ─── HERO INTRO ANIMATIONS (triggered by body.hero-entered) ─── */
@keyframes navEnter {
  from { opacity: 0; transform: translateY(-110%); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes bgUnblur {
  from { filter: blur(22px); transform: scale(1.07); }
  to   { filter: blur(0px); transform: scale(1); }
}
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: none; }
}
.hero-bg-el{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.hero-bg-el1{position:absolute;inset:0;z-index:1;background:rgba(7,16,28,0.85);pointer-events:none}
/* Nav slides down from top */
.hero-entered .nav-wrap {
  animation: navEnter 1.0s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Background photo unblurs */
.hero-entered .hero-bg-el {
  animation: bgUnblur 1.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Hero text cascades in after bg starts clearing */
.hero-entered .hero-eyebrow {
  animation: heroFadeUp 1.0s cubic-bezier(0.16, 1, 0.3, 1) 0.50s both;
}
.hero-entered .hero-title {
  animation: heroFadeUp 1.1s cubic-bezier(0.16, 1, 0.3, 1) 0.75s both;
}
.hero-entered .hero-body {
  animation: heroFadeUp 1.0s cubic-bezier(0.16, 1, 0.3, 1) 1.0s both;
}
.hero-entered .hero-ctas {
  animation: heroFadeUp 1.0s cubic-bezier(0.16, 1, 0.3, 1) 1.2s both;
}

/* ── Mobile: centre h2 headings + section eyebrows ── */
@media (max-width: 768px) {
  h2.display { text-align: center; }
  .about-eyebrow .eyebrow,
  .stats-head .eyebrow,
  .projects-head .eyebrow,
  .geo-head-l .eyebrow,
  .exp-head .eyebrow,
  .why-head .eyebrow,
  .team-head .eyebrow,
  .partners-head .eyebrow,
  .serv-head .eyebrow,
  .tst-head .eyebrow,
  .cnt-left .eyebrow {
    display: block;
    text-align: center;
  }
}




.hero{position:relative;min-height:100vh;min-height:100svh;padding-top:clamp(80px,10svh,140px);padding-bottom:clamp(40px,5vw,80px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#07101C}
.hero-top-bar,.hero-title-zone,.hero-bottom-bar,.hero-container{padding-inline:clamp(24px,4vw,64px);position:relative;z-index:2}
.hero-title-zone{flex:1;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(20px,3vw,48px);position:relative;z-index:3}
.hero-eyebrow{align-self:flex-start;margin-bottom:clamp(24px,3vw,40px);font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-pill);color:rgba(255,255,255,.45);background:rgba(255,255,255,.04);backdrop-filter:blur(16px)}
.hero-dot{width:6px;height:6px;border-radius:50%;background:var(--ochre);box-shadow:0 0 0 4px rgba(233,185,59,.15);animation:heroPulse 2.5s ease-in-out infinite}
@keyframes heroPulse{50%{box-shadow:0 0 0 8px rgba(233,185,59,.04)}}
.hero-title{width:100%;font-family:var(--font-display);font-weight:500;font-size:clamp(56px,8vw,160px);letter-spacing:-.04em;line-height:1.0;color:#F0EDE8;display:block}
.hero-line-1{display:block}
.hero-line-2{display:inline-flex;align-items:flex-end;gap:.055em;white-space:nowrap;line-height:1}
.hero-static-word{display:inline-flex;align-items:flex-end;line-height:1;padding-bottom:.01em}
.rt-wrap{--rt-italic-bleed:28px;display:inline-flex;align-items:flex-end;position:relative;width:220px;min-height:1.16em;padding-top:.06em;padding-bottom:.03em;line-height:1;vertical-align:bottom;top:0;overflow:visible;perspective:800px;transform-style:preserve-3d;flex:0 0 auto}
.rt-word{position:absolute;left:var(--rt-italic-bleed);top:auto;bottom:.03em;display:block;width:max-content;white-space:nowrap;opacity:0;overflow:visible;line-height:1}
.rt-word-visible{opacity:1}
.rt-word-abs{position:absolute;left:var(--rt-italic-bleed);top:auto;bottom:0}
.rt-letter{display:inline-block;position:relative;float:left;line-height:1;vertical-align:baseline;padding-left:.1em;padding-right:.1em;transform:translateZ(25px);transform-origin:50% 50% 25px;will-change:transform;background:linear-gradient(100deg,#E9B93B 0%,#6B9EE8 55%,#4A7FD6 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-style:italic;font-weight:300}
.rt-behind{transform:rotateX(-90deg)}
.rt-out{transform:rotateX(90deg);transition:transform .32s cubic-bezier(.55,.055,.675,.19)}
.rt-in{transform:rotateX(0deg);transition:transform .38s cubic-bezier(.175,.885,.32,1.275)}
.hero-bottom-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(24px,4vw,64px);flex-shrink:0;flex-wrap:wrap;position:relative;z-index:3}
.hero-body{font-size:clamp(15px,1.2vw,19px);line-height:1.55;color:rgba(255,255,255,.5);max-width:44ch}
.hero-ctas{display:flex;gap:16px;align-items:center;flex-shrink:0}
.hero-btn-primary{background:#F0EDE8!important;color:#07101C!important}
.hero-btn-primary::before{background:var(--ochre)!important}
.hero-link-txt{color:rgba(255,255,255,.55);text-decoration:none;font-size:14px;display:inline-flex;gap:8px;align-items:center;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.18);transition:gap .3s var(--ease),color .3s ease}
.hero-link-txt:hover{gap:14px;color:rgba(255,255,255,.9)}
@media(max-width:1024px){.hero-title{font-size:clamp(56px,11vw,120px)}}
@media(max-width:640px){.hero-title{font-size:clamp(44px,12vw,80px);text-align:center}.hero-bottom-bar{flex-direction:column;align-items:center;text-align:center}.hero-eyebrow{align-self:center;font-size:10px}.hero-line-1{display:block;text-align:center}.hero-line-2{display:block;white-space:normal;text-align:center}.hero-static-word{display:block;text-align:center}.rt-wrap{display:block!important;width:100%!important;position:relative;overflow:hidden;min-height:1.16em}.rt-word,.rt-word-abs{left:0!important;right:0;width:100%;text-align:center}.rt-letter{float:none}.hero-ctas{justify-content:center}.hero-body{text-align:center;max-width:100%}}

/* ── FeaturedProject ── */
.fp-section{background:var(--bg);padding-top:clamp(80px,12vw,180px);padding-bottom:clamp(48px,6vw,80px)}
.fp-marquee-wrap{padding-top:32px;margin-top:clamp(48px,6vw,80px);border-top:1px solid var(--line);max-width:1600px;margin-inline:auto;width:100%;padding-inline:clamp(20px,3vw,40px);box-sizing:border-box}
.fp-marquee-item{display:inline-flex;align-items:center;gap:12px;padding:8px 20px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:14px;color:var(--ink-soft);white-space:nowrap}
.fp-container{max-width:1600px;margin-inline:auto;padding-inline:clamp(20px,3vw,40px)}
.fp-photo{position:relative;border-radius:var(--r-xl);overflow:visible}
.fp-photo-inner{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:16/8;background:#1a1a1d}
.fp-photo-inner>img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fp-photo-inner:hover>img{transform:scale(1.03)}
.fp-mission{position:absolute;top:28px;left:28px;width:min(460px,calc(100% - 56px));display:grid;grid-template-columns:136px 1fr;align-items:start}
.fp-msv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.fp-mission-tag{font-family:'Inter',var(--font-sans),sans-serif;font-size:15px;font-weight:400;line-height:1.5;color:#fff;padding:14px 14px 14px 16px;position:relative;z-index:1}
.fp-mission-text{font-family:'Inter',var(--font-sans),sans-serif;font-size:18px;font-weight:400;line-height:1.45;color:#fff;margin:0;padding:14px 20px 14px 24px;position:relative;z-index:1}
.fp-stat{position:absolute;background:var(--ink);color:var(--bg);padding:24px 28px 20px;border-radius:var(--r-lg);min-width:min(300px,calc(50% - 56px));max-width:calc(50% - 56px);box-shadow:0 24px 64px rgba(0,0,0,.3)}
.fp-stat-1{left:40px;bottom:28px}.fp-stat-2{right:40px;bottom:28px}
.fp-stat-value{font-family:var(--font-display);font-size:clamp(44px,4.8vw,72px);font-weight:400;letter-spacing:-.04em;line-height:1;display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.fp-stat-value sup{font-size:clamp(22px,2vw,32px);color:var(--ochre)}
.fp-stat-unit{font-size:clamp(18px,1.8vw,26px);color:rgba(255,255,255,.45);margin-left:4px}
.fp-stat-lbl{margin-top:14px;font-size:13px;color:rgba(255,255,255,.6);line-height:1.4;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.fp-stat-icon{width:32px;height:32px;border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.65);flex-shrink:0}
.fp-stats-row{display:none}
@media(max-width:900px){.fp-photo-inner{aspect-ratio:4/3}.fp-mission{display:none}.fp-stat-desktop{display:none}.fp-stats-row{display:flex;flex-direction:column;gap:16px;margin-top:16px}.fp-stats-row .fp-stat{position:static!important;min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box}}

/* ── About ── */
.about-sec{background:var(--bg)}
.about-top{display:grid;grid-template-columns:1fr 2fr;gap:60px;margin-bottom:100px}
.about-eyebrow{padding-top:18px}
.about-highlight{font-style:italic;font-weight:300;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.about-intro em{font-family:"Manrope",serif;font-style:italic;font-weight:300;color:var(--muted-2)}
.about-grid{display:grid;grid-template-columns:1fr 1fr 1fr 2fr;grid-template-rows:auto auto;gap:20px}
.about-card{background:#fff;border-radius:var(--r-xl);padding:32px 32px 28px;display:flex;flex-direction:column;justify-content:space-between;min-height:280px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.about-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.08)}
.about-card-wide{grid-column:1/span 2;grid-row:1;min-height:280px}
.about-card-wide-2{grid-column:4;grid-row:2}
.about-card-dark{background:var(--brand-gradient);color:var(--bg);position:relative;overflow:hidden;cursor:pointer;grid-column:4;grid-row:1}
.about-card-dark::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 400px 300px at 100% 0%,rgba(74,127,214,.4),transparent 70%);pointer-events:none}
.about-card-dark>*{position:relative;z-index:1}
.about-card-dark .eyebrow{color:rgba(255,255,255,0.6)}
.about-card-dark .circle-icon{border-color:rgba(255,255,255,0.3);color:rgba(255,255,255,0.9)}
.about-card-dark .about-card-big{color:var(--bg)}
.about-card-dark .about-card-sm{color:rgba(255,255,255,0.7)}
.about-card-label{display:flex;justify-content:space-between;align-items:center}
.about-card-big{font-family:var(--font-display);font-size:96px;font-weight:400;letter-spacing:-.04em;line-height:1;margin-top:48px}
.about-card-sm{font-size:13px;color:var(--muted-2);margin-top:14px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}
.about-card-txt{font-size:clamp(18px,1.6vw,24px);line-height:1.4;color:var(--ink-soft);margin-top:48px;letter-spacing:-.01em;max-width:44ch}
.license-show-overlay{position:absolute;inset:0;background:rgba(0,0,20,.65);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;transition:opacity .3s ease;border-radius:inherit;color:#fff;font-size:14px;font-weight:500;letter-spacing:.02em;z-index:10}
.about-card-dark:hover .license-show-overlay{opacity:1}
.cert-flip-card{height:100%;perspective:1200px;cursor:pointer}
.cert-flip-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,0,.2,1)}
.cert-flip-card:hover .cert-flip-inner{transform:rotateY(180deg)}
.cert-flip-front,.cert-flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r-xl);overflow:hidden}
.cert-flip-front{background:#fff;padding:26px 24px 22px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 4px 24px rgba(0,0,0,.06);transition:box-shadow .4s ease}
.cert-flip-card:hover .cert-flip-front{box-shadow:0 16px 48px rgba(0,0,0,.12)}
.cert-flip-back{transform:rotateY(180deg);background:#0d0d14}
.cert-flip-label{display:flex;justify-content:space-between;align-items:center}
.cert-flip-icon{width:26px;height:26px;border:1px solid #e8e8e8;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--brand)}
.cert-flip-title{font-size:14px;font-weight:500;line-height:1.4;color:var(--ink);letter-spacing:-.01em;margin:0}
.cert-flip-hint{font-size:10px;color:var(--muted-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.cert-pdf-preview{width:100%;height:100%;border:none;pointer-events:none;display:block}
.cert-zoom-overlay{position:absolute;inset:0;background:rgba(0,0,0,.52);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.cert-zoom-btn{width:50px;height:50px;border:1.5px solid rgba(255,255,255,.7);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.cert-flip-card:hover .cert-zoom-btn{background:rgba(255,255,255,.12);border-color:#fff}
.cert-zoom-lbl{font-size:10px;color:rgba(255,255,255,.85);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em}
.pdf-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(6px);animation:pdfFadeIn .22s ease both}
.pdf-modal-box{position:relative;width:100%;max-width:960px;height:88vh;background:#fff;border-radius:var(--r-xl);overflow:hidden;animation:pdfScaleIn .3s cubic-bezier(.4,0,.2,1) both;box-shadow:0 40px 100px rgba(0,0,0,.5)}
.pdf-modal-close{position:absolute;top:14px;right:14px;z-index:10;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.08);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;color:var(--ink)}
.pdf-modal-close:hover{background:rgba(0,0,0,.16);transform:scale(1.06)}
.pdf-modal-iframe{width:100%;height:100%;border:none;display:block}
@keyframes pdfFadeIn{from{opacity:0}to{opacity:1}}
@keyframes pdfScaleIn{from{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.about-grid{grid-template-columns:1fr 1fr 1fr 1.5fr}}
@media(max-width:900px){.about-top{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr 1fr;gap:14px}.about-card-wide{grid-column:1/span 2!important;grid-row:auto!important}.about-card-dark{grid-column:auto!important;grid-row:auto!important}.about-card-wide-2{grid-column:1/span 2!important;grid-row:auto!important}.cert-flip-card{grid-column:auto!important;grid-row:auto!important}.about-card-big{font-size:72px}}
@media(max-width:540px){.about-grid{grid-template-columns:1fr}.about-card-wide{grid-column:1!important}.about-card-wide-2{grid-column:1!important}.cert-flip-card{height:100%;min-height:180px}.pdf-modal-box{height:92vh;border-radius:16px}}

/* ── Stats ── */
#stats-canvas-container{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.stats-sec{position:relative;padding-block:clamp(100px,14vw,200px);color:var(--bg);overflow:hidden}
.stats-sec .container{position:relative;z-index:2}
.stats-bg{position:absolute;inset:0;background:var(--brand-gradient)}
.stats-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 800px 400px at 20% 30%,rgba(74,127,214,.35),transparent 60%),radial-gradient(ellipse 600px 400px at 85% 80%,rgba(11,31,77,.6),transparent 60%)}
.stats-bg::after{content:"";position:absolute;inset:0;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:80px 80px;mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%)}
.stats-sec .eyebrow{color:rgba(255,255,255,.6)}
.stats-head{max-width:720px;margin-bottom:100px}
.stats-em{font-style:italic;font-weight:300;color:rgba(255,255,255,.5);font-family:"Manrope",serif}
.stats-grid{display:grid;grid-template-columns:minmax(160px,.72fr) minmax(320px,1.45fr) minmax(300px,1.28fr) minmax(170px,.78fr);gap:0;border-top:1px solid rgba(255,255,255,.12)}
.stat-item{padding:42px 24px 28px;border-right:1px solid rgba(255,255,255,.08);position:relative;min-width:0}
.stat-item:first-child{padding-left:0}
.stat-item:last-child{padding-right:0;border-right:none}
.stat-value{display:flex;align-items:flex-start;gap:8px;min-width:0}
.stat-num{font-family:var(--font-display);font-size:clamp(42px,4.2vw,84px);font-weight:400;letter-spacing:-.03em;line-height:.92;display:inline-block;white-space:nowrap}
.stat-plus,.stat-unit,.stat-pct{font-family:var(--font-display);font-size:clamp(22px,2.2vw,36px);color:#E9B93B;vertical-align:top;display:inline-block;line-height:1}
.stat-unit{color:rgba(255,255,255,.5)}
.stat-lbl{margin-top:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);line-height:1.5}
@media(max-width:1200px){.stats-head{margin-bottom:72px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-item{padding:34px 18px 24px}.stat-item:first-child,.stat-item:nth-child(odd){padding-left:0}.stat-item:nth-child(even){padding-right:0;border-right:none}}
@media(max-width:640px){.stats-head{margin-bottom:48px;text-align:center}.stats-grid{grid-template-columns:1fr}.stat-item{padding:26px 0 20px;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);text-align:center}.stat-value{justify-content:center}.stat-item:last-child{border-bottom:none}.stat-num{font-size:clamp(42px,14vw,72px)}.stat-lbl{margin-top:14px}}

/* ── Projects ── */
.projects-sec{background:var(--bg)}
.projects-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:80px;align-items:end}
.proj-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.projects-head-right{display:flex;flex-direction:column;gap:32px;align-items:flex-start}
.projects-head-ctrl{display:flex;align-items:center;gap:16px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--r-pill)}
.proj-counter{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;min-width:60px;text-align:center}
.proj-nav{cursor:pointer;background:transparent;border-color:var(--ink)}
.proj-grid-asym{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.proj-card-1{grid-column:span 7}.proj-card-2{grid-column:span 5}.proj-card-3{grid-column:span 4}.proj-card-4{grid-column:span 8}.proj-card-5{grid-column:span 6}.proj-card-6{grid-column:span 6}
.proj-card{background:#fff;border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;transition:transform .6s var(--ease),box-shadow .6s var(--ease);cursor:pointer}
.proj-card:hover{transform:translateY(-6px);box-shadow:0 30px 80px rgba(0,0,0,.12)}
.proj-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#1a1a1d}
.proj-card-2 .proj-media,.proj-card-3 .proj-media{aspect-ratio:4/3}
.proj-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.proj-card:hover .proj-media img{transform:scale(1.08)}
.proj-num{position:absolute;top:20px;right:24px;font-family:var(--font-mono);font-size:12px;color:rgba(255,255,255,.8);letter-spacing:.1em;background:rgba(0,0,0,.3);backdrop-filter:blur(8px);padding:6px 12px;border-radius:var(--r-pill)}
.proj-hover{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(14,14,15,.92) 100%);opacity:0;transition:opacity .5s var(--ease);display:flex;align-items:flex-end}
.proj-card:hover .proj-hover{opacity:1}
.proj-hover-inner{padding:28px;width:100%}
.proj-hover-stats{display:flex;gap:32px;color:var(--bg);transform:translateY(20px);transition:transform .6s var(--ease)}
.proj-card:hover .proj-hover-stats{transform:none}
.proj-hover-num{font-family:var(--font-display);font-size:32px;font-weight:400;letter-spacing:-.03em}
.proj-hover-u{font-size:14px;color:rgba(255,255,255,.6);margin-left:4px}
.proj-hover-lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:6px}
.proj-hover-action{margin-top:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ochre);transform:translateY(20px);opacity:0;transition:all .6s var(--ease) .1s}
.proj-card:hover .proj-hover-action{transform:none;opacity:1}
.proj-info{padding:28px 32px 32px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.proj-year{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.proj-name{margin-top:10px;font-family:var(--font-display);font-size:clamp(22px,2vw,32px);font-weight:500;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.proj-open{width:44px;height:44px;color:var(--ink);flex-shrink:0}
.gallery-overlay{position:fixed;inset:0;background:rgba(10,10,11,.98);backdrop-filter:blur(20px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:40px;cursor:zoom-out}
.gallery-close{position:absolute;top:40px;right:40px;width:60px;height:60px;display:grid;place-items:center;color:#fff;cursor:pointer;opacity:.5;transition:opacity .3s;z-index:10}
.gallery-close:hover{opacity:1}
.gallery-content{position:relative;width:100%;max-width:1400px;height:100%;display:flex;align-items:center;gap:40px;cursor:default}
.gallery-main{flex:1;height:100%;display:flex;flex-direction:column;justify-content:center;position:relative}
.gallery-img{width:100%;height:auto;max-height:80vh;object-fit:contain;border-radius:4px;animation:galleryFade .6s var(--ease)}
@keyframes galleryFade{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
.gallery-info{margin-top:24px;display:flex;justify-content:space-between;align-items:baseline;color:#fff}
.gallery-title{font-family:var(--font-display);font-size:24px;font-weight:400}
.gallery-counter{font-family:var(--font-mono);font-size:14px;opacity:.5}
.gallery-nav{width:64px;height:64px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#fff;cursor:pointer;display:grid;place-items:center;transition:all .3s;flex-shrink:0}
.gallery-nav:hover{background:#fff;color:#000}
@media(max-width:900px){.projects-head{grid-template-columns:1fr}.proj-grid-asym,.proj-grid-reg{grid-template-columns:1fr}.proj-grid-asym>*{grid-column:1/-1}.gallery-overlay{padding:20px}.gallery-content{gap:10px}.gallery-nav{width:44px;height:44px}.gallery-close{top:10px;right:10px}.gallery-title{font-size:18px}}

/* ── Geography ── */
.geo-sec{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(100px,12vw,180px);overflow:hidden;background:var(--bg)}
.geo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:64px;flex-wrap:wrap}
.geo-head-l{display:flex;flex-direction:column;gap:20px}
.geo-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.geo-head-r{display:flex;align-items:flex-end;gap:40px;flex-shrink:0}
.geo-stat{display:flex;flex-direction:column;gap:4px}
.geo-stat-num{font-family:var(--font-display);font-size:clamp(48px,6vw,80px);font-weight:400;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.geo-stat-lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);line-height:1.4}
.geo-slider-wrap{overflow:visible;padding-top:16px;margin-top:-16px}
.geo-track{display:flex;gap:20px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
.geo-track::-webkit-scrollbar{display:none}
.geo-card{flex:0 0 360px;border-radius:var(--r-xl);overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;transition:border-color .25s ease}
.geo-card:hover{border-color:rgba(0,0,0,.85)}
.geo-card-photo{position:relative;aspect-ratio:16/9;overflow:hidden}
.geo-card-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.geo-card:hover .geo-card-photo img{transform:scale(1.05)}
.geo-card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.55) 100%)}
.geo-card-badges{position:absolute;bottom:14px;left:14px;display:flex;gap:6px;flex-wrap:wrap}
.geo-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;backdrop-filter:blur(8px)}
.geo-badge-done{background:rgba(22,163,74,.25);color:#fff;border:1px solid rgba(22,163,74,.4)}
.geo-badge-active{background:rgba(217,119,6,.25);color:#fff;border:1px solid rgba(217,119,6,.4)}
.geo-badge-dot{width:6px;height:6px;border-radius:50%}
.geo-badge-done .geo-badge-dot{background:#16A34A}
.geo-badge-active .geo-badge-dot{background:#D97706}
.geo-card-body{padding:24px 28px 28px;display:flex;flex-direction:column;gap:6px;flex:1}
.geo-card-region{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.geo-card-city{font-family:var(--font-display);font-size:clamp(28px,3vw,36px);font-weight:400;letter-spacing:-.03em;line-height:1;color:var(--ink);margin:6px 0 16px}
.geo-card-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.geo-card-item{display:flex;align-items:flex-start;gap:10px}
.geo-card-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px}
.geo-card-dot-done{background:#16A34A}
.geo-card-dot-active{background:#D97706}
.geo-card-item-lbl{font-size:13px;color:var(--ink-soft);line-height:1.45}
@media(max-width:768px){.geo-head{flex-direction:column;align-items:center;text-align:center}.geo-head-l{align-items:center}.geo-head-r{width:100%;justify-content:center;flex-wrap:wrap;gap:24px}.geo-stat{align-items:center}.geo-card{flex:0 0 300px}}

/* ── Experience ── */
#exp-canvas-container{position:sticky; top:0; height:100vh; margin-bottom:-100vh; z-index:1; pointer-events:none}
.exp-sec{position:relative;overflow:clip;color:var(--bg);padding-top:clamp(60px,8vw,110px);padding-bottom:60px}
.exp-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#0B1F4D 0%,#0E1838 100%);pointer-events:none}
.exp-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 900px 500px at 75% 20%,rgba(36,86,184,.35),transparent 60%)}
.exp-outer{position:relative;z-index:2;max-width:1440px;margin-inline:auto;padding-inline:clamp(20px,4vw,56px);display:flex;align-items:flex-start;gap:clamp(32px,5vw,80px)}
.exp-head{flex:1;position:sticky;top:100px;padding-bottom:40px}
.exp-sec .eyebrow{color:rgba(255,255,255,.55)}
.exp-sec .body-lg{color:rgba(255,255,255,.75)}
.exp-em{font-style:italic;font-weight:300;color:rgba(255,255,255,.88);font-family:"Manrope",serif}
.exp-stack{flex:1.2;display:flex;flex-direction:column}
.exp-card{position:sticky;background:rgba(22,40,92,.97);border:1px solid rgba(255,255,255,.09);border-top-color:rgba(255,255,255,.16);border-radius:20px;box-shadow:0 2px 0 0 rgba(255,255,255,.06) inset,0 24px 56px -8px rgba(2,6,20,.85),0 4px 12px -4px rgba(2,6,20,.4);backdrop-filter:blur(12px);overflow:hidden;will-change:transform;transition:border-color .3s ease,box-shadow .3s ease}
.exp-card:hover{border-color:rgba(255,255,255,.22);box-shadow:0 2px 0 0 rgba(255,255,255,.08) inset,0 28px 64px -8px rgba(2,6,20,.92),0 4px 16px -4px rgba(2,6,20,.5)}
.exp-card-inner{position:relative;z-index:1;padding:32px 36px;display:flex;flex-direction:column;justify-content:space-between;min-height:160px}
.exp-card-top{display:flex;justify-content:space-between;align-items:flex-start}
.exp-card-name{font-family:var(--font-display);font-size:clamp(18px,1.8vw,26px);font-weight:500;letter-spacing:-.02em;line-height:1.2;color:var(--bg);margin:0}
.exp-card-num{font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;color:rgba(255,255,255,.32);flex-shrink:0;margin-left:16px;padding-top:4px}
.exp-card-meta{margin-top:24px;font-size:14px;color:rgba(255,255,255,.48)}
@media(max-width:1100px){.exp-outer{flex-direction:column}.exp-head{position:relative;top:auto;padding-bottom:0;margin-bottom:32px}.exp-card{position:relative!important;top:auto!important;margin-bottom:12px!important}}

/* ── WhyUs ── */
.why-sec{background:var(--bg-2)}
.why-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.why-head{max-width:800px;margin-bottom:80px}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.why-card{background:#fff;border-radius:var(--r-xl);padding:32px 28px 24px;display:flex;flex-direction:column;min-height:340px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .9s var(--ease)}
.why-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,.08)}
.why-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:60px}
.why-num{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--muted-2)}
.why-ico{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:background .4s,color .4s,transform .5s var(--ease)}
.why-ico-img{width:20px;height:20px;object-fit:contain;display:block}
.why-card:hover .why-ico{background:var(--ink);color:var(--bg);transform:rotate(-8deg)}
.why-title{font-family:var(--font-display);font-size:24px;font-weight:500;letter-spacing:-.02em;color:var(--ink)}
.why-desc{margin-top:12px;font-size:14px;line-height:1.5;color:var(--ink-soft);flex:1}
.why-line{height:1px;background:var(--line);margin:20px 0 16px}
.why-foot{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink)}
@media(max-width:900px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.why-grid{grid-template-columns:1fr}}

/* ── Team ── */
.team-sec{background:var(--bg);overflow:hidden}
.team-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.team-head{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end;margin-bottom:80px}
.team-slider-wrap{overflow:visible;padding-top:16px;margin-top:-16px}
.team-track{display:flex;gap:20px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
.team-track::-webkit-scrollbar{display:none}
.team-card{flex:0 0 300px;border-radius:var(--r-xl);transition:transform .3s ease}
.team-card:hover{transform:translateY(-4px)}
.team-photo{position:relative;aspect-ratio:3/4;background:var(--bg-2);border-radius:var(--r-xl);overflow:hidden}
.team-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%);transition:transform 1s var(--ease),filter .6s ease}
.team-card:hover .team-photo img{transform:scale(1.05);filter:grayscale(0%)}
.team-info{padding:20px 4px 0;overflow:visible}
.team-name{font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.team-role{margin-top:6px;font-size:13px;color:var(--muted-2)}
.team-email{margin-top:8px;font-size:11px;color:var(--muted);font-family:var(--font-mono)}
@media(max-width:900px){.team-head{grid-template-columns:1fr}.team-card{flex:0 0 260px}}

/* ── Partners ── */
.partners-sec{padding-top:0;padding-bottom:clamp(80px,10vw,140px);background:var(--bg);overflow:hidden}
.partners-head{max-width:640px;margin-bottom:60px}
.part-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.partners-marquee{gap:16px}
.partners-marquee .marquee-track{gap:16px;animation-duration:50s}
.partner-item{flex-shrink:0;height:120px;min-width:260px;background:#fff;border-radius:var(--r-xl);display:grid;place-items:center;padding:32px 40px;transition:transform .5s var(--ease),background .5s}
.partner-item:hover{transform:translateY(-4px);background:var(--bg-2)}
.partner-item img{max-height:60px;max-width:180px;width:auto;object-fit:contain;filter:grayscale(100%) opacity(.7);transition:filter .5s ease}
.partner-item:hover img{filter:grayscale(0%) opacity(1)}

/* ── Services ── */
.serv-sec{background:var(--bg-2)}
.serv-em{font-style:italic;font-weight:300;color:var(--muted-2);font-family:"Manrope",serif}
.serv-head{max-width:760px;margin-bottom:80px}
.serv-grid{display:grid;grid-template-columns:1fr 1fr 1fr 2fr;gap:16px;align-items:stretch}
.serv-card{background:#fff;border-radius:var(--r-xl);padding:28px 28px 24px;display:flex;flex-direction:column;min-height:420px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .9s var(--ease)}
.serv-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,.08)}
.serv-card-feat{background:var(--ink);color:var(--bg)}
.serv-card-feat .serv-tag{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:rgba(255,255,255,.8)}
.serv-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px}
.serv-tag{font-size:11px;padding:6px 14px}
.serv-num{font-family:var(--font-mono);font-size:12px;color:var(--muted-2);letter-spacing:.08em}
.serv-card-feat .serv-num{color:rgba(255,255,255,.4)}
.serv-title{font-family:var(--font-display);font-size:clamp(22px,2vw,30px);font-weight:500;letter-spacing:-.02em;line-height:1.15}
.serv-desc{margin-top:12px;font-size:14px;line-height:1.5;color:var(--ink-soft);flex:1}
.serv-card-feat .serv-desc{color:rgba(255,255,255,.7)}
.serv-feat-img{margin-top:20px;height:160px;border-radius:var(--r-lg);overflow:hidden}
.serv-feat-photo{width:100%;height:100%;object-fit:cover;display:block}
.serv-foot{margin-top:20px}
.serv-link{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:14px}
.serv-link .circle-icon{width:36px;height:36px}
.serv-card-feat .serv-link .circle-icon{border-color:rgba(255,255,255,.3)}
@media(max-width:1000px){.serv-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.serv-grid{grid-template-columns:1fr}}

/* ── Testimonials ── */
.tst-em{font-style:italic;font-weight:300;color:rgba(255,255,255,.5);font-family:"Manrope",serif}
.tst-head{max-width:560px;margin-bottom:60px}
.tst2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tst2-wrap{perspective:1400px;height:360px}
.tst2-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.4,0,.2,1);cursor:pointer}
.tst2-wrap:hover .tst2-inner{transform:rotateY(180deg)}
.tst2-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r-xl);border:1px solid rgba(255,255,255,.08);padding:28px 28px 24px;display:flex;flex-direction:column;overflow:hidden}
.tst2-front{background:var(--ink-2)}
.tst2-toprow{display:flex;justify-content:space-between;align-items:flex-start}
.tst2-logo-ring{width:72px;height:72px;background:rgba(255,255,255,.96);border-radius:50%;display:grid;place-items:center;padding:12px;flex-shrink:0}
.tst2-logo-ring img{max-width:100%;max-height:100%;object-fit:contain}
.tst2-num{font-family:var(--font-mono);font-size:12px;color:rgba(255,255,255,.3);letter-spacing:.05em}
.tst2-excerpt{font-size:14px;line-height:1.55;color:rgba(255,255,255,.65);margin-bottom:20px}
.tst2-bottom{display:flex;justify-content:space-between;align-items:flex-end;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.tst2-who{font-size:14px;font-weight:500;color:rgba(255,255,255,.9)}
.tst2-place{font-size:11px;font-family:var(--font-mono);color:rgba(255,255,255,.4);letter-spacing:.05em;margin-top:3px}
.tst2-plus-btn{width:34px;height:34px;border-radius:50%;border:1px solid rgba(195,163,100,.5);background:transparent;color:var(--accent-amber);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s}
.tst2-plus-btn:hover{background:rgba(195,163,100,.15);border-color:var(--accent-amber)}
.tst2-back{background:#1F1E22;border-color:rgba(195,163,100,.2);transform:rotateY(180deg)}
.tst2-back-qmark{font-family:"Manrope",serif;font-size:96px;font-weight:300;color:rgba(195,163,100,.15);line-height:.8;margin-bottom:8px;user-select:none}
.tst2-full-q{font-family:var(--font-display);font-size:clamp(14px,1.4vw,17px);font-weight:400;line-height:1.55;letter-spacing:-.01em;color:rgba(255,255,255,.85)}
.tst2-back-bottom{display:flex;justify-content:space-between;align-items:flex-end;padding-top:16px;border-top:1px solid rgba(195,163,100,.15)}
.tst2-pdf-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-pill);border:1px solid rgba(195,163,100,.5);background:transparent;color:var(--accent-amber);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s;flex-shrink:0}
.tst2-pdf-btn:hover{background:rgba(195,163,100,.15);border-color:var(--accent-amber)}
@media(max-width:900px){.tst2-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tst2-grid{grid-template-columns:1fr}}

/* ── Contact ── */
.cnt-sec{background:var(--bg)}
.cnt-em{font-style:italic;font-weight:300;color:var(--blue);font-family:"Manrope",serif}
.cnt-wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.cnt-info{margin-top:60px;display:flex;flex-direction:column;gap:20px;padding-top:32px;border-top:1px solid var(--line)}
.cnt-info-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;text-decoration:none;color:var(--ink);padding:8px 0;border-bottom:1px dashed var(--line)}
.cnt-info-val{font-family:var(--font-display);font-size:18px;font-weight:500;text-align:right}
a.cnt-info-row:hover .cnt-info-val{color:var(--blue)}
.cnt-form{background:#fff;border-radius:var(--r-xl);padding:40px;display:flex;flex-direction:column;gap:24px}
.cnt-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cnt-field{display:flex;flex-direction:column;gap:8px}
.cnt-field>span{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.cnt-field input,.cnt-field textarea{background:var(--bg);border:1px solid transparent;border-radius:var(--r-lg);padding:16px 20px;font-family:inherit;font-size:15px;color:var(--ink);outline:none;transition:border-color .3s,background .3s;resize:vertical}
.cnt-field input:focus,.cnt-field textarea:focus{border-color:var(--ink);background:#fff}
.cnt-chips{display:flex;flex-wrap:wrap;gap:8px}
.cnt-chip{background:var(--bg);border:1px solid transparent;padding:10px 18px;border-radius:var(--r-pill);cursor:pointer;font-size:13px;color:var(--ink-soft);transition:all .3s;font-family:inherit}
.cnt-chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.cnt-chip:hover:not(.on){border-color:var(--ink)}
.cnt-submit{align-self:flex-start;margin-top:8px}
.cnt-fine{font-size:11px;color:var(--muted-2);margin-top:-8px}
@media(max-width:900px){.cnt-wrap{grid-template-columns:1fr;gap:40px}.cnt-row{grid-template-columns:1fr}.cnt-form{padding:24px}}
body.preloader-active{overflow:hidden!important;height:100vh!important}


@media(max-width:480px){.btn {
    padding: 12px 13px;
    gap: 5px;
}

.nav-cta {
    padding: 9px 14px;
}
}