

    /* ── TOKENS ──
       Dark is the default theme. Adding [data-theme="light"] on <html>
       (see JS) swaps these same variables for their light-mode values —
       everything below that reads from var(--x) updates automatically.
    ── */
    :root {
      --navy:   #0A0F17;
      --slate:  #1A1F28;
      --blue:   #2563FF;
      --green:  #00E676;
      --stone:  #E6E8EB;
      --white:  #FFFFFF;
      --muted:  #8892A0;
      --border: rgba(255,255,255,0.08);
      --border-strong: rgba(255,255,255,0.2);
      --nav-bg: rgba(10,15,23,.92);
      --surface-hover: rgba(255,255,255,.05);
      --grid-line: rgba(255,255,255,.025);
      --font: 'Poppins', system-ui, sans-serif;
      --font-display: 'Barlow Condensed', system-ui, sans-serif;
      --ease: cubic-bezier(.22,.68,0,1.2);
    }

    :root[data-theme="light"] {
      --navy:   #FFFFFF;
      --slate:  #F3F4F7;
      --blue:   #2563FF;
      --green:  #00A85C;
      --stone:  #1A1F28;
      --white:  #0A0F17;
      --muted:  #5B6472;
      --border: rgba(10,15,23,0.10);
      --border-strong: rgba(10,15,23,0.18);
      --nav-bg: rgba(255,255,255,.86);
      --surface-hover: rgba(10,15,23,.045);
      --grid-line: rgba(10,15,23,.035);
    }

    /* ── RESET ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--font);
      background: var(--navy);
      color: var(--white);
      line-height: 1.6;
      overflow-x: hidden;
    }
    a { color: inherit; text-decoration: none; }
    img { display: block; max-width: 100%; }
    button { cursor: pointer; font-family: inherit; }

    /* ── UTILITY ── */
    .container { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
    .label {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--muted);
    }
    .green { color: var(--green); }
    .blue  { color: var(--blue); text-shadow: 0 0 10px rgba(37,99,255,.55), 0 0 24px rgba(37,99,255,.25); }
    .pill {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 6px 14px; border-radius: 100px;
      border: 1px solid var(--border);
      font-size: 11px; font-weight: 600;
      letter-spacing: .14em; text-transform: uppercase; color: var(--muted);
    }
    .pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }

    /* ── BUTTONS ── */
    .btn {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 14px 28px; border-radius: 4px;
      font-size: 13px; font-weight: 600;
      letter-spacing: .04em; text-transform: uppercase;
      transition: all .2s ease; border: none;
    }
    .btn-primary {
      background: var(--blue); color: #FFFFFF;
    }
    .btn-primary:hover { background: #1d4fd8; transform: translateY(-1px); }
    .btn-outline {
      background: transparent; color: var(--white);
      border: 1px solid var(--border-strong);
    }
    .btn-outline:hover { border-color: var(--white); }
    .btn-green {
      background: var(--green); color: #0A0F17;
    }
    .btn-green:hover { background: #00c863; transform: translateY(-1px); }
    .arrow { display: inline-block; transition: transform .2s ease; }
    .btn:hover .arrow { transform: translateX(4px); }

    /* ── NAV ── */
    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      border-bottom: 1px solid var(--border);
      background: var(--nav-bg);
      backdrop-filter: blur(16px);
      transition: background-color .3s ease, border-color .3s ease;
    }
    .nav-inner {
      max-width: 1200px; margin: 0 auto; padding: 0 32px;
      height: 68px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .nav-logo {
      display: flex; flex-direction: row; align-items: center; gap: 9px;
    }
    .nav-logo-mark {
      height: 30px; width: auto; display: block; flex-shrink: 0;
    }
    .nav-logo-text {
      display: flex; flex-direction: column; line-height: 1;
    }
    .nav-logo .wordmark {
      font-size: 17px; font-weight: 700; letter-spacing: .01em;
      color: var(--white);
    }
    .nav-logo .sub {
      font-size: 8.5px; font-weight: 500; letter-spacing: .18em;
      text-transform: uppercase; color: var(--muted); margin-top: 2px;
    }
    .nav-links {
      display: flex; align-items: center; gap: 36px;
      list-style: none;
    }
    .nav-links a {
      font-size: 13px; font-weight: 500; color: var(--muted);
      transition: color .2s;
      position: relative;
    }
    .nav-links a:hover { color: var(--white); }
    .nav-links .has-dropdown { position: relative; }
    .dropdown {
      position: absolute; top: calc(100% + 16px); left: 50%;
      transform: translateX(-50%);
      background: var(--slate); border: 1px solid var(--border);
      border-radius: 8px; padding: 8px; min-width: 200px;
      opacity: 0; visibility: hidden; pointer-events: none;
      transition: opacity .2s, transform .2s;
      transform-origin: top center;
    }
    .has-dropdown:hover .dropdown {
      opacity: 1; visibility: visible; pointer-events: all;
      transform: translateX(-50%) translateY(0);
    }
    .dropdown a {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 14px; border-radius: 4px;
      font-size: 13px; color: var(--stone);
    }
    .dropdown a:hover { background: var(--surface-hover); color: var(--white); }
    .dropdown-label { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding: 8px 14px 4px; }
    .nav-cta { display: flex; align-items: center; gap: 14px; }
    .nav-cta .btn { padding: 10px 20px; font-size: 12px; }
    .hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; padding: 4px; }
    .hamburger span { display: block; width: 22px; height: 1.5px; background: var(--white); transition: all .2s; }

    /* ── SECTIONS ── */
    section { padding: 120px 0; }
    section.tight { padding: 80px 0; }

    /* ── PAGE ROUTING ── */
    .page { display: none; }
    .page.active { display: block; }

    /* ══ HOME PAGE ══ */
    /* Hero */
    .hero {
      min-height: 100vh;
      display: flex; align-items: center;
      position: relative; overflow: hidden;
      padding-top: 68px;
    }
    .hero-bg {
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 80% 60% at 60% 40%, rgba(37,99,255,.12) 0%, transparent 60%),
                  radial-gradient(ellipse 50% 40% at 80% 80%, rgba(0,230,118,.06) 0%, transparent 50%);
    }
    .hero-grid {
      position: absolute; inset: 0;
      background-image:
        linear-gradient(var(--grid-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
      background-size: 80px 80px;
      mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 0%, transparent 100%);
    }
    .hero-crest {
      position: absolute; z-index: 0; pointer-events: none;
      top: 50%; right: -4%;
      transform: translateY(-48%);
      width: min(48vw, 640px);
      opacity: .9;
      filter: drop-shadow(0 0 55px rgba(37,99,255,.22)) drop-shadow(0 0 110px rgba(0,230,118,.10));
      mask-image: radial-gradient(ellipse 75% 78% at 62% 45%, black 0%, black 50%, transparent 100%);
    }
    .hero-crest svg { width: 100%; height: auto; display: block; }
    @media (max-width: 900px) { .hero-crest { display: none; } }

    .hero-content {
      position: relative; z-index: 1;
      max-width: 1200px; margin: 0 auto; padding: 0 32px;
      display:flex;
      align-items: center;
      justify-content: center;
    }
    .hero-eyebrow { margin-bottom: 28px; }
    .hero-title {
      font-family: var(--font-display);
      font-size: clamp(68px, 9vw, 100px);
      font-weight: 800; line-height: .96; letter-spacing: -.01em;
      text-transform: uppercase;
      margin-bottom: 28px;
  
    }
    .hero-title em {
      font-style: normal; color: var(--blue);
      text-shadow: 0 0 18px rgba(37,99,255,.65), 0 0 46px rgba(37,99,255,.35), 0 0 80px rgba(37,99,255,.18);
      animation: blue-glow-pulse 3.2s ease-in-out infinite;
    }
    @keyframes blue-glow-pulse {
      0%, 100% { text-shadow: 0 0 18px rgba(37,99,255,.65), 0 0 46px rgba(37,99,255,.35), 0 0 80px rgba(37,99,255,.18); }
      50%      { text-shadow: 0 0 26px rgba(37,99,255,.85), 0 0 60px rgba(37,99,255,.45), 0 0 100px rgba(37,99,255,.25); }
    }
    .hero-body {
      font-size: 17px; color: var(--muted); line-height: 1.75;
      max-width: 100%; margin-bottom: 40px;
    }
    .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
    .hero-right {
      display: flex; flex-direction: column; gap: 16px;
    }
    .metric-card {
      background: var(--slate);
      border: 1px solid var(--border);
      border-radius: 12px; padding: 28px;
      transition: border-color .2s;
    }
    .metric-card:hover { border-color: rgba(37,99,255,.3); }
    .metric-card .m-label { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .metric-card .m-value { font-size: 36px; font-weight: 700; line-height: 1; }
    .metric-card .m-desc  { font-size: 13px; color: var(--muted); margin-top: 4px; }
    .metric-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .metric-sm { padding: 20px; }
    .metric-sm .m-value { font-size: 26px; }
    .arch-tag {
      font-size: 11px; font-weight: 700; letter-spacing: .16em;
      text-transform: uppercase; color: var(--blue);
      text-shadow: 0 0 10px rgba(37,99,255,.5), 0 0 22px rgba(37,99,255,.22);
    }

    .intro-img-wrap { position: relative; }

    /* Intro */
    .intro-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
      align-items: center;
    }
    .intro-title {
      font-family: var(--font-display);
      font-size: clamp(40px, 4.5vw, 60px);
      font-weight: 800; line-height: 1.0; letter-spacing: -.005em;
      text-transform: uppercase;
      margin-bottom: 20px;
    }
    .intro-body { font-size: 16px; color: var(--muted); line-height: 1.75; }
    .intro-body p + p { margin-top: 16px; }
    .divider-line {
      width: 48px; height: 2px; background: var(--blue); margin-bottom: 24px;
    }

    /* BBG System */
    .bbg-section { background: var(--slate); }
    .bbg-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
      margin-top: 60px;
    }
    .bbg-card {
      padding: 48px 40px;
      background: var(--navy);
      position: relative; overflow: hidden;
      transition: background .25s;
    }
    .bbg-card:hover { background: rgba(26,31,40,.8); }
    .bbg-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0;
      height: 2px;
    }
    .bbg-brand::before { background: var(--blue); }
    .bbg-build::before { background: var(--green); }
    .bbg-grow::before  { background: linear-gradient(90deg, var(--blue), var(--green)); }
    .bbg-number {
      font-size: 11px; font-weight: 700; letter-spacing: .18em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 32px;
    }
    .bbg-icon {
      width: 44px; height: 44px; border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 20px; font-size: 20px;
    }
    .bbg-brand .bbg-icon { background: rgba(37,99,255,.12); }
    .bbg-build .bbg-icon { background: rgba(0,230,118,.12); }
    .bbg-grow  .bbg-icon { background: rgba(37,99,255,.08); }
    .bbg-head { font-family: var(--font-display); font-size: 28px; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; margin-bottom: 12px; }
    .bbg-sub  { font-size: 13px; color: var(--muted); margin-bottom: 20px; line-height: 1.6; }
    .bbg-list { list-style: none; }
    .bbg-list li {
      font-size: 13px; color: var(--muted); padding: 8px 0;
      border-bottom: 1px solid var(--border);
      display: flex; align-items: center; gap: 10px;
    }
    .bbg-list li::before { content: '—'; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.5); flex-shrink: 0; }
    .bbg-arrow {
      position: absolute; bottom: 40px; right: 40px;
      width: 36px; height: 36px; border-radius: 50%;
      border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; color: var(--muted);
      transition: all .2s; cursor: pointer;
    }
    .bbg-card:hover .bbg-arrow { border-color: var(--blue); color: var(--blue); text-shadow: 0 0 10px rgba(37,99,255,.55); }

    /* Who We Work With */
    .wwww-section {}
    .wwww-grid {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
      margin-top: 60px;
    }
    .wwww-card {
      border: 1px solid var(--border); border-radius: 8px;
      padding: 32px 28px;
      transition: border-color .2s, transform .2s;
    }
    .wwww-card:hover { border-color: rgba(37,99,255,.4); transform: translateY(-4px); }
    .wwww-card .w-icon { font-size: 28px; margin-bottom: 20px; }
    .wwww-card .w-head { font-size: 15px; font-weight: 600; margin-bottom: 10px; }
    .wwww-card .w-body { font-size: 13px; color: var(--muted); line-height: 1.65; }

    /* Why */
    .why-grid {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px;
      margin-top: 60px;
    }
    .why-item {
      padding: 40px;
      border: 1px solid var(--border);
      transition: background .2s;
    }
    .why-item:hover { background: var(--slate); }
    .why-item .wi-head { font-size: 17px; font-weight: 600; margin-bottom: 10px; }
    .wi-line { width: 32px; height: 2px; background: var(--green); margin-bottom: 16px; }
    .why-item .wi-body { font-size: 14px; color: var(--muted); line-height: 1.7; }

    /* Final CTA */
    .cta-section {
      background: linear-gradient(135deg, var(--slate) 0%, rgba(37,99,255,.08) 100%);
      border-top: 1px solid var(--border);
    }
    .cta-inner { text-align: center; }
    .cta-title {
      font-family: var(--font-display);
      font-size: clamp(44px, 5.5vw, 72px);
      font-weight: 800; line-height: 1.0; letter-spacing: -.005em;
      text-transform: uppercase;
      margin-bottom: 20px;
    }
    .cta-body { font-size: 17px; color: var(--muted); max-width: 520px; margin: 0 auto 40px; line-height: 1.7; }

    /* Section header */
    .section-header { margin-bottom: 60px; }
    .section-header.centered { text-align: center; }
    .section-header .sh-label { margin-bottom: 16px; }
    .section-header .sh-title {
      font-family: var(--font-display);
      font-size: clamp(38px, 4.5vw, 58px);
      font-weight: 800; line-height: 1.0; letter-spacing: -.005em;
      text-transform: uppercase;
      margin-bottom: 16px;
    }
    .section-header .sh-body {
      font-size: 16px; color: var(--muted); line-height: 1.75;
      max-width: 560px;
    }
    .section-header.centered .sh-body { margin: 0 auto; }

    /* ══ ABOUT PAGE ══ */
    .page-hero {
      min-height: 60vh;
      display: flex; align-items: center;
      padding: 140px 0 80px;
      position: relative; overflow: hidden;
    }
    .page-hero-bg {
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 60% at 30% 50%, rgba(37,99,255,.09) 0%, transparent 60%);
    }
    .page-hero-content { position: relative; z-index: 1; }
    .page-hero .ph-eyebrow { margin-bottom: 20px; }
    .page-hero .ph-title {
      font-family: var(--font-display);
      font-size: clamp(52px, 7vw, 96px);
      font-weight: 800; line-height: .96; letter-spacing: -.01em;
      text-transform: uppercase;
      max-width: 900px; margin-bottom: 20px;
    }
    .page-hero .ph-body {
      font-size: 17px; color: var(--muted); max-width: 520px; line-height: 1.75;
    }

    .principles-list { list-style: none; margin-top: 48px; }
    .principles-list li {
      display: grid; grid-template-columns: 60px 1fr;
      gap: 24px; padding: 28px 0;
      border-bottom: 1px solid var(--border);
    }
    .p-num { font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.5); padding-top: 3px; }
    .p-text { font-size: 16px; color: var(--stone); line-height: 1.6; }

    .approach-row {
      display: flex; align-items: center; gap: 0;
      margin-top: 48px; overflow: hidden; border: 1px solid var(--border); border-radius: 8px;
    }
    .approach-step {
      flex: 1; padding: 28px 20px; text-align: center;
      border-right: 1px solid var(--border);
      position: relative;
    }
    .approach-step:last-child { border-right: none; }
    .approach-step .as-label { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
    .approach-step .as-name { font-size: 14px; font-weight: 600; }
    .approach-step::after {
      content: '→'; position: absolute; right: -12px; top: 50%;
      transform: translateY(-50%); color: var(--muted); font-size: 12px; z-index: 1;
    }
    .approach-step:last-child::after { display: none; }

    /* ══ SERVICES PAGE ══ */
    .services-grid { margin-top: 60px; display: flex; flex-direction: column; gap: 2px; }
    .service-block {
      display: grid; grid-template-columns: 280px 1fr; gap: 0;
      background: var(--slate); border: 1px solid var(--border);
      border-radius: 4px; overflow: hidden;
      transition: border-color .2s;
    }
    .service-block:hover { border-color: rgba(37,99,255,.3); }
    .service-left {
      padding: 48px 40px; border-right: 1px solid var(--border);
      display: flex; flex-direction: column; justify-content: space-between;
    }
    .service-right { padding: 48px 48px; }
    .s-tag { font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 16px; }
    .s-head { font-family: var(--font-display); font-size: 36px; font-weight: 800; line-height: 1.0; text-transform: uppercase; letter-spacing: .01em; margin-bottom: 10px; }
    .s-sub { font-size: 14px; color: var(--muted); line-height: 1.6; margin-bottom: 28px; }
    .service-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
    .service-tag {
      font-size: 11px; font-weight: 500; padding: 5px 12px;
      border: 1px solid var(--border); border-radius: 100px; color: var(--muted);
    }
    .s-price { font-size: 13px; color: var(--muted); }
    .s-price strong { color: var(--white); }

    /* ══ WORK PAGE ══ */
    .work-filters {
      display: flex; gap: 8px; margin-bottom: 48px; flex-wrap: wrap;
    }
    .filter-btn {
      padding: 8px 20px; border-radius: 100px;
      border: 1px solid var(--border);
      font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
      color: var(--muted); background: transparent;
      transition: all .2s; cursor: pointer;
    }
    .filter-btn.active, .filter-btn:hover {
      background: var(--blue); border-color: var(--blue); color: #FFFFFF;
    }
    .work-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
    }
    .case-card {
      border: 1px solid var(--border); border-radius: 8px; overflow: hidden;
      transition: transform .25s, border-color .25s;
    }
    .case-card:hover { transform: translateY(-6px); border-color: rgba(37,99,255,.4); }
    .case-thumb {
      aspect-ratio: 16/9;
      background: var(--slate);
      display: flex; align-items: center; justify-content: center;
      font-size: 36px; position: relative; overflow: hidden;
    }
    .case-thumb img {
      position: absolute; inset: 0;
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .5s ease;
      filter: brightness(.7) saturate(.85);
    }
    .case-card:hover .case-thumb img { transform: scale(1.04); }
    .case-thumb-bg {
      position: absolute; inset: 0;
      opacity: .55; z-index: 1;
    }
    .case-thumb-icon { position: relative; z-index: 2; }
    .case-body { padding: 24px; }
    .case-cat { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.45); margin-bottom: 10px; }
    .case-title { font-size: 17px; font-weight: 600; margin-bottom: 8px; }
    .case-excerpt { font-size: 13px; color: var(--muted); line-height: 1.65; }
    .case-link { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.45); margin-top: 16px; letter-spacing: .04em; text-transform: uppercase; }

    /* Case study structure */
    .cs-structure {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 60px;
    }
    .cs-step {
      padding: 32px; background: var(--slate); border: 1px solid var(--border);
    }
    .cs-step-n { font-size: 10px; font-weight: 700; letter-spacing: .2em; color: var(--muted); margin-bottom: 12px; }
    .cs-step-head { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
    .cs-step-body { font-size: 13px; color: var(--muted); line-height: 1.6; }

    /* ══ CONTACT PAGE ══ */
    .contact-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
      margin-top: 60px;
    }
    .contact-info .ci-item { margin-bottom: 36px; }
    .contact-info .ci-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .contact-info .ci-value { font-size: 15px; color: var(--stone); }
    .form-field { margin-bottom: 20px; }
    .form-field label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .form-field input,
    .form-field select,
    .form-field textarea {
      width: 100%; padding: 14px 16px;
      background: var(--slate); border: 1px solid var(--border);
      border-radius: 4px; color: var(--white); font-family: inherit; font-size: 14px;
      transition: border-color .2s; outline: none;
    }
    .form-field input::placeholder,
    .form-field textarea::placeholder { color: var(--muted); }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus { border-color: var(--blue); }
    .form-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238892A0' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
    .form-field textarea { resize: vertical; min-height: 120px; }
    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .form-note { font-size: 13px; color: var(--muted); margin-top: 16px; line-height: 1.6; }

    /* ══ PACKAGE PAGES ══ */
    .pkg-hero {
      padding: 140px 0 80px; position: relative;
    }
    .pkg-hero-bg {
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 70% at 70% 30%, rgba(37,99,255,.1) 0%, transparent 60%);
    }
    .pkg-content { position: relative; z-index: 1; }
    .pkg-eyebrow { margin-bottom: 20px; display: flex; align-items: center; gap: 12px; }
    .pkg-title {
      font-family: var(--font-display);
      font-size: clamp(52px, 6.5vw, 88px);
      font-weight: 800; line-height: .96; letter-spacing: -.01em;
      text-transform: uppercase;
      max-width: 900px; margin-bottom: 20px;
    }
    .pkg-sub { font-size: 17px; color: var(--muted); max-width: 560px; line-height: 1.75; }
    .pkg-meta {
      display: flex; gap: 48px; margin-top: 48px; flex-wrap: wrap;
    }
    .pkg-meta-item .pm-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
    .pkg-meta-item .pm-value { font-size: 24px; font-weight: 700; }
    .pkg-meta-item .pm-sub { font-size: 13px; color: var(--muted); }

    .included-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px;
    }
    .included-card {
      background: var(--slate); border: 1px solid var(--border);
      border-radius: 8px; padding: 28px;
    }
    .included-card .ic-head { font-size: 14px; font-weight: 600; margin-bottom: 16px; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.45); text-transform: uppercase; letter-spacing: .08em; font-size: 11px; }
    .included-card ul { list-style: none; }
    .included-card ul li { font-size: 13px; color: var(--muted); padding: 7px 0; border-bottom: 1px solid var(--border); display: flex; gap: 10px; }
    .included-card ul li::before { content: '✓'; color: var(--green); flex-shrink: 0; }

    /* ══ FOOTER ══ */
    footer {
      border-top: 1px solid var(--border);
      padding: 64px 0 40px;
    }
    .footer-grid {
      display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px;
      margin-bottom: 48px;
    }
    .footer-brand .fb-logo { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
    .footer-brand .fb-sub { font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
    .footer-brand .fb-body { font-size: 13px; color: var(--muted); line-height: 1.7; margin-top: 16px; max-width: 260px; }
    .footer-col h4 { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 20px; }
    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
    .footer-col ul a { font-size: 13px; color: var(--muted); transition: color .2s; }
    .footer-col ul a:hover { color: var(--white); }
    .footer-bottom {
      border-top: 1px solid var(--border); padding-top: 28px;
      display: flex; justify-content: space-between; align-items: center;
    }
    .footer-bottom .fb-copy { font-size: 12px; color: var(--muted); }
    .footer-arch {
      font-size: 11px; font-weight: 700; letter-spacing: .16em;
      text-transform: uppercase; color: var(--blue);
      text-shadow: 0 0 10px rgba(37,99,255,.5), 0 0 22px rgba(37,99,255,.22);
    }

    /* ── MOBILE NAV ── */
    .mobile-menu {
      display: none; position: fixed; inset: 0; z-index: 99;
      background: var(--navy);
      flex-direction: column;
      padding: 100px 32px 40px;
      gap: 8px;
    }
    .mobile-menu.open { display: flex; }
    .mobile-menu a {
      font-size: 22px; font-weight: 600; padding: 16px 0;
      border-bottom: 1px solid var(--border); color: var(--stone);
    }
    .mobile-menu a:hover { color: var(--white); }
    .mobile-menu-close {
      position: absolute; top: 24px; right: 28px;
      width: 44px; height: 44px;
      background: var(--slate); border: 1px solid var(--border);
      border-radius: 50%; color: var(--white);
      font-size: 18px; line-height: 1;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-family: inherit;
      transition: background .2s, border-color .2s;
    }
    .mobile-menu-close:hover { background: var(--surface-hover); border-color: var(--border-strong); }

    /* ── RESPONSIVE ── */
    @media (max-width: 1024px) {
      .hero-content { grid-template-columns: 1fr; gap: 48px; }
      .hero-right { display: none; }
      .intro-grid { grid-template-columns: 1fr; gap: 48px; }
      .bbg-grid { grid-template-columns: 1fr; }
      .wwww-grid { grid-template-columns: repeat(2, 1fr); }
      .why-grid { grid-template-columns: 1fr; }
      .work-grid { grid-template-columns: repeat(2, 1fr); }
      .cs-structure { grid-template-columns: 1fr; }
      .contact-grid { grid-template-columns: 1fr; gap: 48px; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
      .service-block { grid-template-columns: 1fr; }
      .service-left { border-right: none; border-bottom: 1px solid var(--border); }
      .pkg-meta { gap: 32px; }
      .included-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 768px) {
      .nav-links, .nav-cta { display: none; }
      .hamburger { display: flex; }
      section { padding: 80px 0; }
      .wwww-grid { grid-template-columns: 1fr; }
      .work-grid { grid-template-columns: 1fr; }
      .form-row { grid-template-columns: 1fr; }
      .footer-grid { grid-template-columns: 1fr; gap: 32px; }
      .approach-row { flex-direction: column; }
      .approach-step { border-right: none; border-bottom: 1px solid var(--border); }
      .approach-step::after { content: '↓'; top: auto; bottom: -14px; right: 50%; }
      .footer-bottom { flex-direction: column; gap: 16px; text-align: center; }
      .container { padding: 0 20px; }
      .hero-content { padding: 0 20px; }
    }

    /* ── GLOBAL BG CANVAS ── */
    #bg-canvas {
      position: fixed; inset: 0; z-index: 0;
      pointer-events: none;
    }

    /* ── NOISE TEXTURE OVERLAY ── */
    body::before {
      content: '';
      position: fixed; inset: 0; z-index: 1;
      pointer-events: none;
      opacity: .028;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
      background-size: 180px 180px;
    }

    /* ── CURSOR ORB ── */
    #cursor-orb {
      position: fixed;
      width: 600px; height: 600px;
      border-radius: 50%;
      pointer-events: none;
      z-index: 0;
      transform: translate(-50%, -50%);
      background: radial-gradient(circle, rgba(37,99,255,.13) 0%, rgba(0,230,118,.05) 45%, transparent 70%);
      transition: opacity .4s ease;
      will-change: transform;
    }

    /* Make sure all page content sits above canvas/orb */
    nav, .page, footer { position: relative; z-index: 2; }
    #mobile-menu { z-index: 101; }

    /* ── SCROLL ANIMATIONS ── */
    .fade-up {
      opacity: 0; transform: translateY(28px);
      transition: opacity .7s cubic-bezier(.22,.68,0,1), transform .7s cubic-bezier(.22,.68,0,1);
    }
    .fade-up.visible { opacity: 1; transform: translateY(0); }

    /* Stagger children inside a fade-up parent */
    .fade-up.visible > * { animation: none; }

    /* Heading reveal — clip from bottom */
    .reveal-heading {
      overflow: hidden;
    }
    .reveal-heading span {
      display: block;
      transform: translateY(110%);
      transition: transform .75s cubic-bezier(.22,.68,0,1.1);
    }
    .reveal-heading.visible span {
      transform: translateY(0);
    }

    /* Word-by-word stagger on body text */
    .reveal-words .word {
      display: inline-block;
      opacity: 0;
      transform: translateY(12px);
      transition: opacity .5s ease, transform .5s ease;
    }
    .reveal-words.visible .word {
      opacity: 1; transform: translateY(0);
    }

    /* Label slide-in */
    .reveal-label {
      opacity: 0; transform: translateX(-12px);
      transition: opacity .5s ease, transform .5s ease;
    }
    .reveal-label.visible { opacity: 1; transform: translateX(0); }

    /* Card pop-in with stagger via CSS delay */
    .stagger-children > * {
      opacity: 0; transform: translateY(20px);
      transition: opacity .55s ease, transform .55s ease;
    }
    .stagger-children.visible > *:nth-child(1) { opacity:1; transform:none; transition-delay:.05s }
    .stagger-children.visible > *:nth-child(2) { opacity:1; transform:none; transition-delay:.15s }
    .stagger-children.visible > *:nth-child(3) { opacity:1; transform:none; transition-delay:.25s }
    .stagger-children.visible > *:nth-child(4) { opacity:1; transform:none; transition-delay:.35s }
    .stagger-children.visible > *:nth-child(5) { opacity:1; transform:none; transition-delay:.45s }
    .stagger-children.visible > *:nth-child(6) { opacity:1; transform:none; transition-delay:.55s }

    /* Horizontal rule accent animation */
    .divider-line {
      width: 0 !important;
      transition: width .8s cubic-bezier(.22,.68,0,1) !important;
    }
    .divider-line.visible { width: 48px !important; }

    /* Green accent line on active nav */
    .nav-links a.active-link { color: var(--white); }
    .nav-links a.active-link::after {
      content: ''; position: absolute; bottom: -4px; left: 0; right: 0;
      height: 1.5px; background: var(--green);
    }

    /* ══════════════════════════════════════
       FLOATING WHATSAPP CTA
    ══════════════════════════════════════ */
    .wa-float {
      position: fixed; right: 24px; bottom: 24px; z-index: 90;
      width: 56px; height: 56px; border-radius: 50%;
      background: #25D366; color: #0A0F17;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 8px 28px rgba(0,0,0,.35), 0 0 0 0 rgba(37,211,102,.5);
      transition: transform .25s ease, box-shadow .25s ease;
      animation: wa-pulse 2.6s ease-out infinite;
    }
    .wa-float:hover { transform: translateY(-3px) scale(1.05); }
    @keyframes wa-pulse {
      0%   { box-shadow: 0 8px 28px rgba(0,0,0,.35), 0 0 0 0 rgba(37,211,102,.45); }
      70%  { box-shadow: 0 8px 28px rgba(0,0,0,.35), 0 0 0 14px rgba(37,211,102,0); }
      100% { box-shadow: 0 8px 28px rgba(0,0,0,.35), 0 0 0 0 rgba(37,211,102,0); }
    }
    @media (max-width: 640px) {
      .wa-float { right: 16px; bottom: 16px; width: 50px; height: 50px; }
    }

    /* ══════════════════════════════════════
       TESTIMONIALS — slider (desktop) / stacked (mobile)
    ══════════════════════════════════════ */
    .testi-slide { flex: 0 0 100%; padding: 0 4px; }
    .testi-card {
      background: var(--slate); border: 1px solid var(--border); border-radius: 10px;
      padding: 32px 28px; display: flex; flex-direction: column; gap: 20px;
      height: 100%;
    }
    .testi-quote { font-size: 15px; line-height: 1.75; color: var(--white); }
    .testi-quote::before { content: '“'; color: var(--blue); text-shadow: 0 0 12px rgba(37,99,255,.5); font-size: 28px; line-height:0; display:inline-block; vertical-align:-8px; margin-right:2px; }
    .testi-person { display: flex; align-items: center; gap: 12px; margin-top: auto; }
    .testi-avatar {
      width: 40px; height: 40px; border-radius: 50%;
      background: linear-gradient(135deg, var(--blue), var(--green));
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-display); font-weight: 800; font-size: 14px; color: #0A0F17;
      flex-shrink: 0;
    }
    .testi-name { font-size: 13px; font-weight: 600; color: var(--white); }
    .testi-role { font-size: 12px; color: var(--muted); }

    /* Desktop: true 1-at-a-time slider */
    .testi-viewport { overflow: hidden; }
    .testi-track {
      display: flex;
      transition: transform .5s cubic-bezier(.22,.68,0,1);
    }
    .testi-slider { max-width: 640px; margin: 0 auto; }
    .testi-nav {
      display: flex; align-items: center; justify-content: center; gap: 20px;
      margin-top: 28px;
    }
    .testi-arrow {
      width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
      background: transparent; border: 1px solid var(--border); color: var(--white);
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      font-size: 15px; transition: border-color .2s ease, transform .2s ease;
    }
    .testi-arrow:hover { border-color: var(--white); transform: translateY(-1px); }
    .testi-dots { display: flex; align-items: center; gap: 8px; }
    .testi-dot {
      width: 7px; height: 7px; border-radius: 50%; background: var(--border);
      border: none; cursor: pointer; padding: 0; transition: background .2s ease, transform .2s ease;
    }
    .testi-dot.active { background: var(--green); transform: scale(1.3); }

    /* Mobile: stacked layout — no slider mechanics */
    @media (max-width: 900px) {
      .testi-slider { max-width: none; }
      .testi-viewport { overflow: visible; }
      .testi-track {
        display: flex; flex-direction: column; gap: 24px;
        transform: none !important; transition: none !important;
      }
      .testi-slide { flex: none; padding: 0; }
      .testi-nav { display: none; }
    }

    /* ══════════════════════════════════════
       CLIENT LOGO STRIP
    ══════════════════════════════════════ */
    .logo-strip-label {
      text-align: center; font-size: 11px; font-weight: 600; letter-spacing: .14em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 28px;
    }
    .logo-strip {
      display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
      gap: 56px; opacity: .6;
    }
    .logo-strip-item {
      height: 34px; width: auto; max-width: 160px;
      display: block; object-fit: contain;
      filter: grayscale(1) brightness(0) invert(1);
      transition: opacity .2s ease, filter .3s ease;
    }
    .logo-strip-item:hover { opacity: .85; }
    [data-theme="light"] .logo-strip-item { filter: grayscale(1) brightness(0) invert(0); }
    @media (max-width: 640px) {
      .logo-strip { gap: 34px 40px; }
      .logo-strip-item { height: 26px; max-width: 120px; }
    }

    /* ══════════════════════════════════════
       FAQ ACCORDION
    ══════════════════════════════════════ */
    .faq-list { max-width: 780px; margin: 0 auto; }
    .faq-item { border-bottom: 1px solid var(--border); }
    .faq-q {
      width: 100%; background: none; border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: space-between; gap: 16px;
      padding: 22px 4px; text-align: left;
      font-family: var(--font-body, inherit); font-size: 16px; font-weight: 600; color: var(--white);
    }
    .faq-q-icon {
      flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
      border: 1px solid var(--border); display: flex; align-items: center; justify-content: center;
      font-size: 14px; color: var(--muted); transition: transform .25s ease;
    }
    .faq-item.open .faq-q-icon { transform: rotate(45deg); color: var(--green); border-color: rgba(0,230,118,.4); }
    .faq-a {
      max-height: 0; overflow: hidden; transition: max-height .3s ease;
    }
    .faq-a-inner { padding: 0 4px 22px; font-size: 14px; color: var(--muted); line-height: 1.75; }
    .faq-item.open .faq-a { max-height: 400px; }

    /* ══════════════════════════════════════
       ACCESSIBILITY: 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;
      }
      .fade-up, .reveal-heading, .reveal-words .word, .reveal-label,
      .stagger-children > *, .divider-line {
        opacity: 1 !important; transform: none !important; width: auto !important;
      }
    }

    /* Optional field hint in the contact form */
    .field-optional { color: var(--muted); font-weight: 400; font-size: 11px; text-transform: none; letter-spacing: 0; margin-left: 4px; }

    /* ══════════════════════════════════════
       CASE STUDY — SINGLE PAGE
    ══════════════════════════════════════ */
    .case-card[onclick] { cursor: pointer; }

    .case-hero { padding: 140px 0 0; position: relative; overflow: hidden; }
    .case-hero-bg {
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 60% at 25% 20%, rgba(37,99,255,.1) 0%, transparent 60%);
    }
    .case-hero-content { position: relative; z-index: 1; }
    .case-crumb {
      display: inline-flex; align-items: center; gap: 8px;
      font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 28px; cursor: pointer; transition: color .2s;
      background: none; border: none; font-family: inherit; padding: 0;
    }
    .case-crumb:hover { color: var(--white); }
    .case-crumb .arrow-back { display: inline-block; transform: scaleX(-1); transition: transform .2s; }
    .case-crumb:hover .arrow-back { transform: scaleX(-1) translateX(4px); }
    .case-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
    .case-hero-title {
      font-family: var(--font-display);
      font-size: clamp(38px, 5.2vw, 66px);
      font-weight: 800; line-height: 1.04; letter-spacing: -.005em;
      text-transform: uppercase;
      max-width: 880px; margin-bottom: 22px;
    }
    .case-hero-sub { font-size: 17px; color: var(--muted); max-width: 620px; line-height: 1.75; }

    .case-meta-bar {
      display: flex; gap: 44px; flex-wrap: wrap;
      margin-top: 48px; padding: 32px 0; border-top: 1px solid var(--border);
    }
    .case-meta-item .cm-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
    .case-meta-item .cm-value { font-size: 15px; font-weight: 600; color: var(--white); }

    .case-hero-media {
      margin-top: 0; border-radius: 12px; overflow: hidden;
      aspect-ratio: 16/7.5; position: relative; border: 1px solid var(--border);
      background: var(--slate);
    }
    .case-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
    .case-hero-media::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(180deg, transparent 40%, rgba(10,15,23,.5) 100%);
    }

    .case-stats-row {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
    }
    .case-stats-row .metric-card { text-align: left; }

    .case-narrative { margin-top: 20px; }
    .case-block {
      display: grid; grid-template-columns: 140px 1fr; gap: 40px;
      padding: 44px 0; border-bottom: 1px solid var(--border);
    }
    .case-block:first-child { padding-top: 0; }
    .case-block:last-child { border-bottom: none; }
    .case-block-tag { padding-top: 2px; }
    .case-block-n { font-size: 11px; font-weight: 700; letter-spacing: .2em; color: var(--muted); margin-bottom: 10px; }
    .case-block-label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); text-shadow: 0 0 8px rgba(37,99,255,.45); }
    .case-block-title { font-size: 22px; font-weight: 700; margin-bottom: 14px; letter-spacing: -.01em; }
    .case-block-body { font-size: 15px; color: var(--muted); line-height: 1.85; max-width: 680px; }
    .case-block-body p + p { margin-top: 14px; }

    .case-quote-block {
      background: var(--slate); border: 1px solid var(--border); border-radius: 12px;
      padding: 48px; margin: 64px 0; position: relative;
    }
    .case-quote-block .testi-quote { font-size: 19px; line-height: 1.7; }
    .case-quote-block .testi-person { margin-top: 24px; }

    .case-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 60px 0; }
    .case-gallery img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); filter: saturate(.9); }

    .case-cta-nav {
      display: flex; justify-content: space-between; align-items: center;
      margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--border);
      flex-wrap: wrap; gap: 20px;
    }
    .case-cta-nav .ccn-next { text-align: right; }
    .case-cta-next-link {
      display: flex; align-items: center; gap: 16px; cursor: pointer;
      transition: opacity .2s;
    }
    .case-cta-nav .ccn-next .case-cta-next-link { flex-direction: row-reverse; }
    .case-cta-next-link:hover { opacity: .75; }
    .case-cta-next-thumb {
      width: 64px; height: 64px; border-radius: 8px; overflow: hidden;
      border: 1px solid var(--border); flex-shrink: 0;
    }
    .case-cta-next-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .case-cta-next-label { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
    .case-cta-next-title { font-size: 14px; font-weight: 600; }

    @media (max-width: 900px) {
      .case-stats-row { grid-template-columns: repeat(2, 1fr); }
      .case-block { grid-template-columns: 1fr; gap: 10px; }
      .case-gallery { grid-template-columns: 1fr; }
      .case-meta-bar { gap: 28px; }
      .case-quote-block { padding: 32px 24px; }
      .case-cta-nav { flex-direction: column; align-items: flex-start; }
      .ccn-next { text-align: left; }
      .case-cta-nav .ccn-next .case-cta-next-link { flex-direction: row; }
    }

    /* ══════════════════════════════════════
       LIGHT / DARK MODE TOGGLE
       Dark is the default theme (no data-theme attribute,
       or data-theme="dark"). Adding data-theme="light" on
       <html> — set by cresthubb.js and persisted in
       localStorage — swaps the tokens defined above.
    ══════════════════════════════════════ */
    .theme-toggle {
      display: inline-flex; align-items: center; justify-content: center;
      width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
      background: transparent; border: 1px solid var(--border); color: var(--white);
      cursor: pointer; padding: 0;
      transition: border-color .2s ease, color .2s ease, transform .2s ease, background-color .2s ease;
    }
    .theme-toggle:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-1px); }
    .theme-toggle .theme-icon { width: 18px; height: 18px; display: block; }
    .theme-toggle .theme-icon-moon { display: none; }
    [data-theme="light"] .theme-toggle .theme-icon-sun { display: none; }
    [data-theme="light"] .theme-toggle .theme-icon-moon { display: block; }

    /* Mobile menu variant — full-width pill with a label, matches the other menu rows */
    .mobile-theme-toggle {
      width: 100%; height: auto; border-radius: 100px;
      justify-content: flex-start; gap: 12px;
      padding: 14px 20px; margin: 4px 0 20px;
      font-size: 15px; font-weight: 600; color: var(--stone);
      font-family: inherit;
    }
    .mobile-theme-toggle:hover { color: var(--white); transform: none; }
    .mobile-theme-toggle .theme-icon { width: 19px; height: 19px; }

    /* Smooth cross-fade for the chrome that changes color when the theme
       switches. Deliberately narrow — NOT applied to .case-card, .testi-card,
       .metric-card etc, because those already own a `transition` shorthand
       for their scroll-reveal (.fade-up) and hover effects, and a second
       `transition` declaration here would replace theirs instead of merging,
       killing those animations. */
    body, nav, footer, #mobile-menu, .mobile-menu-close,
    input, select, textarea, .theme-toggle {
      transition: background-color .3s ease, color .3s ease, border-color .3s ease;
    }
