
    /* ══════════════════════════════════════
       RESET & TOKENS
    ══════════════════════════════════════ */
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
    a { color: inherit; text-decoration: none; }
    ul, li { list-style: none; }
    button { font-family: inherit; cursor: pointer; border: none; background: none; }

    :root {
      --white: #FFFFFF;
      --off-white: #F4F4F2;
      --dark: #0a0a0a;
      --blue: #306BFF;
      --blue-700: #1a3bcc;
      --blue-glow: rgba(48,107,255,0.40);
      --zinc-300: #d4d4d8;
      --zinc-400: #a1a1aa;
      --zinc-500: #71717a;
      --zinc-700: #3f3f46;
      --zinc-800: #27272a;
      --zinc-900: #18181b;
      --dark-card-border: rgba(255,255,255,0.10);
      --dark-card-border-hover: rgba(255,255,255,0.20);
      --font-heading: 'DM Sans', sans-serif;
      --font-accent: 'Cormorant Garamond', Georgia, serif;
      --font-body: 'Rubik', sans-serif;
      --gm: 196px;
      --mw: 1920px;
      --ease: cubic-bezier(0.16, 1, 0.3, 1);
    }

    body {
      font-family: var(--font-heading);
      font-size: 20px; font-weight: 400; line-height: 1.5;
      color: var(--white); background: var(--dark); overflow-x: hidden;
    }

    /* ══════════════════════════════════════
       UTILITIES
    ══════════════════════════════════════ */
    .inner { max-width: var(--mw); margin: 0 auto; padding-left: var(--gm); padding-right: var(--gm); }
    .sr { opacity: 0; transform: translateY(44px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
    .sr.vis { opacity: 1; transform: translateY(0); }
    .sr-d1 { transition-delay: 0.1s; }
    .sr-d2 { transition-delay: 0.2s; }
    .sr-d3 { transition-delay: 0.3s; }
    .sr-d4 { transition-delay: 0.4s; }
    .sr-d5 { transition-delay: 0.5s; }
    .divider { height: 1px; background: rgba(255,255,255,0.12); width: 100%; }

    /* ══════════════════════════════════════
       HERO — SA-style centered single-column
    ══════════════════════════════════════ */
    #hero-main {
      position: relative;
      /* No bottom padding: .search-wrap owns the space between the hero copy
         and the search field, so that gap and the one below it stay equal. */
      padding: 200px 0 0;
      text-align: center;
      overflow: visible;
    }
    .h2-hero-gradient {
      position: absolute;
      top: calc(40% + 200px); left: 50%;
      transform: translate(-50%, -50%);
      width: 1270px; height: 1270px;
      object-fit: contain;
      pointer-events: none; z-index: 0;
      opacity: 0.8;
    }
    .h2-wrap {
      position: relative; z-index: 1;
      max-width: var(--mw); margin: 0 auto;
      padding: 0 var(--gm);
      display: grid;
      grid-template-columns: 1fr;
    }
    .h2-left {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 28px;
    }
    .h2-title {
      font-family: var(--font-heading);
      font-size: 100px; font-weight: 300;
      text-transform: uppercase; line-height: 1;
      letter-spacing: -0.01em;
    }
    .h2-title em {
      font-family: var(--font-accent);
      font-style: italic; font-weight: 600;
      font-size: 110px; line-height: 1;
    }
    .h2-hero-desc {
      font-size: 20px; font-weight: 400;
      color: var(--white); max-width: 600px;
      line-height: 1.7;
    }
    /* ══════════════════════════════════════
       FILTER TABS
    ══════════════════════════════════════ */
    /* ══════════════════════════════════════
       SEARCH FIELD
    ══════════════════════════════════════ */
    .search-wrap { display: flex; justify-content: center; padding: 48px 0; position: relative; z-index: 1; }
    .search-field {
      display: flex; align-items: center; gap: 14px;
      width: 100%; max-width: 560px; height: 70px;
      padding: 0 12px 0 28px; border-radius: 9999px;
      background: rgba(24,24,27,0.45); backdrop-filter: blur(20px);
      border: 1px solid rgba(255,255,255,0.25);
      cursor: text;
      transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    }
    .search-field:hover { border-color: rgba(255,255,255,0.50); }
    .search-field:focus-within {
      background: rgba(24,24,27,0.65);
      border-color: var(--blue);
      box-shadow: 0 0 0 4px rgba(48,107,255,0.18);
    }
    .search-icon {
      width: 25px; height: 25px; flex-shrink: 0;
      stroke: var(--zinc-400); stroke-width: 2;
      transition: stroke 0.3s ease;
    }
    .search-field:focus-within .search-icon { stroke: var(--blue); }
    .search-input {
      flex: 1; min-width: 0; height: 100%;
      background: none; border: none; outline: none;
      font-family: var(--font-heading); font-weight: 500;
      /* Never drop below 16px: iOS zooms the page in on focus for anything smaller. */
      font-size: 20px;
      color: var(--white); letter-spacing: 0.02em;
    }
    .search-input::placeholder { color: var(--zinc-400); font-weight: 400; }
    /* Suppress the WebKit clear affordance in favour of .search-clear. */
    .search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
    .search-clear {
      display: flex; align-items: center; justify-content: center;
      width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
      background: rgba(255,255,255,0.08);
      transition: background 0.3s ease;
    }
    .search-clear:hover { background: rgba(255,255,255,0.20); }
    .search-clear svg { width: 13px; height: 13px; stroke: var(--white); stroke-width: 2.2; }
    .search-clear[hidden] { display: none; }

    .search-status {
      text-align: center; padding-bottom: 40px;
      font-size: 17px; color: var(--zinc-400);
    }
    .search-status[hidden] { display: none; }
    .search-status-text strong { color: var(--white); font-weight: 600; }
    .search-status-reset {
      margin-left: 8px; color: var(--white);
      font-family: var(--font-heading); font-size: 17px; font-weight: 500;
      text-decoration: underline; text-underline-offset: 3px;
      transition: opacity 0.3s ease;
    }
    .search-status-reset:hover { opacity: 0.65; }
    .search-status-reset[hidden] { display: none; }

    .filter-bar {
      display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
      padding-bottom: 60px;
      position: relative; z-index: 1;
    }
    .filter-btn {
      height: 70px; padding: 0 34px; border-radius: 9999px;
      font-family: var(--font-heading); font-size: 16px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.05em;
      background: transparent; color: var(--white);
      border: 1px solid rgba(255,255,255,0.25);
      cursor: pointer; transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
      overflow: hidden;
    }
    .filter-btn span {
      display: block;
      transition: transform 0.4s var(--ease), opacity 0.4s var(--ease);
    }
    .filter-btn:hover span { animation: filter-label-fwd 0.4s var(--ease) forwards; }
    @keyframes why-marquee-scroll {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }
    @keyframes filter-label-fwd {
      0%   { transform: translateY(0);     opacity: 1; }
      18%  { transform: translateY(115%);  opacity: 0; }
      21%  { transform: translateY(-115%); opacity: 0; }
      100% { transform: translateY(0);     opacity: 1; }
    }
    .filter-btn:hover { border-color: rgba(255,255,255,0.50); }
    .filter-btn.active {
      background: var(--white); color: #0a0a0a;
      border-color: var(--white);
    }

    /* ══════════════════════════════════════
       ARTICLE CARDS — dark glass
    ══════════════════════════════════════ */
    .articles-section {
      position: relative; z-index: 1;
      padding: 0 0 80px;
    }
    .articles-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    .article-card {
      border-radius: 20px;
      background: rgba(24,24,27,0.45);
      border: 1px solid var(--dark-card-border);
      backdrop-filter: blur(20px);
      overflow: hidden;
      display: flex; flex-direction: column;
      transition: all 0.5s var(--ease);
      cursor: pointer;
    }
    .article-card:hover {
      border-color: var(--dark-card-border-hover);
      background: rgba(28,28,32,0.60);
      transform: translateY(-4px);
    }

    /* Cover */
    .article-cover {
      height: 220px; position: relative; overflow: hidden;
    }
    .article-cover-bg {
      width: 100%; height: 100%;
      background-size: cover; background-position: center;
      transition: transform 0.6s var(--ease);
    }
    .article-card:hover .article-cover-bg { transform: scale(1.06); }

    /* Category badge */
    .article-category {
      position: absolute; top: 16px; left: 16px;
      padding: 8px 18px; border-radius: 9999px;
      font-size: 13px; font-weight: 700; text-transform: uppercase;
      letter-spacing: 0.5px;
      background: #ffffff; color: #0a0a0a; border: none;
    }
    .badge-new {
      position: absolute; top: 16px; right: 16px;
      padding: 4px 12px; border-radius: 9999px;
      background: rgba(164,232,200,0.12); border: 1px solid rgba(164,232,200,0.25);
      font-size: 11px; font-weight: 700; color: #A4E8C8;
      backdrop-filter: blur(8px); text-transform: uppercase; letter-spacing: 0.5px;
    }

    /* Body */
    .article-body { padding: 28px 28px 32px; flex: 1; display: flex; flex-direction: column; }
    .article-meta {
      display: flex; align-items: center; justify-content: space-between;
      font-size: 16px; font-weight: 400; text-transform: uppercase; letter-spacing: 0.05em; color: var(--white);
      margin-bottom: 16px;
    }
    .article-meta span { display: flex; align-items: center; gap: 5px; }
    .article-body h3 {
      font-family: var(--font-heading);
      font-size: 30px; font-weight: 500; line-height: 1.15;
      margin-bottom: 12px; color: var(--white);
    }
    .article-body h3 .title-arrow {
      display: inline-flex; align-items: center; justify-content: center;
      width: 32px; height: 32px; border-radius: 50%;
      border: 1.5px solid rgba(255,255,255,0.30);
      margin-left: 10px; vertical-align: middle;
      position: relative; top: -2px;
      opacity: 0;
      transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
      flex-shrink: 0;
    }
    .article-card:hover .article-body h3 .title-arrow { opacity: 1; }
    .article-body h3 .title-arrow svg {
      width: 14px; height: 14px; stroke: var(--white);
      transition: stroke 0.3s ease;
    }
    .article-card:hover .article-body h3 .title-arrow {
      background: var(--white); border-color: var(--white);
    }
    .article-card:hover .article-body h3 .title-arrow svg { stroke: #0a0a0a; }
    .article-body > p { display: none; }

    /* Footer */
    .article-footer {
      display: flex; align-items: center; justify-content: space-between;
      margin-top: auto; padding-top: 24px;
      border-top: none;
    }
    .article-author { display: flex; align-items: center; gap: 10px; }
    .article-avatar {
      width: 36px; height: 36px; border-radius: 50%;
      object-fit: cover; flex-shrink: 0;
    }
    .article-author-name { font-size: 17px; font-weight: 400; color: var(--white); }
    .article-read-more { display: none; }

    /* ══════════════════════════════════════
       NEWSLETTER — Blue CTA stacked panel
    ══════════════════════════════════════ */
    .cta-section { padding: 80px 0; }
    .cta-panel-stack { position: relative; padding-top: 24px; }
    .cta-panel-stack::before {
      content: ''; position: absolute;
      top: 0; left: 40px; right: 40px; height: 100%;
      border-radius: 24px;
      background: rgba(48,107,255,0.12); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(48,107,255,0.15);
    }
    .cta-panel-stack::after {
      content: ''; position: absolute;
      top: 12px; left: 20px; right: 20px; height: calc(100% - 12px);
      border-radius: 24px;
      background: rgba(48,107,255,0.18); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(48,107,255,0.20);
    }
    .cta-panel {
      position: relative; z-index: 1;
      background: linear-gradient(135deg, #3061F6, #1E2DAF);
      border-radius: 24px; overflow: hidden;
      padding: 100px 48px 80px; text-align: center;
    }
    /* Dot lattice behind the panel copy. On ::before so it paints above the panel
       background but below .cta-content, which carries z-index 2. The mask is
       symmetric because the copy is centred: faint through the middle, full
       strength out at both edges. */
    .cta-panel::before {
      content: '';
      position: absolute; inset: 0;
      background-image: radial-gradient(rgba(255,255,255,0.14) 1px, transparent 1.6px);
      background-size: 22px 22px;
      pointer-events: none;
      -webkit-mask-image: linear-gradient(to right, #000 0%, rgba(0,0,0,0.16) 50%, #000 100%);
              mask-image: linear-gradient(to right, #000 0%, rgba(0,0,0,0.16) 50%, #000 100%);
    }
    .cta-marquee {
      background: transparent; padding: 18px 0; overflow: hidden;
      margin: -100px -48px 60px -48px;
      border-bottom: 1px solid rgba(255,255,255,0.12);
    }
    .cta-marquee-track {
      display: flex; gap: 40px;
      animation: why-marquee-scroll 28s linear infinite; width: max-content;
    }
    .cta-marquee-item {
      font-family: var(--font-heading); font-size: 16px; font-weight: 600;
      color: rgba(255,255,255,0.55); white-space: nowrap;
      text-transform: uppercase; letter-spacing: 2px;
    }
    .cta-marquee-dot { color: rgba(255,255,255,0.35); }
    .cta-panel-glow {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      width: 700px; height: 700px;
      background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 60%);
      pointer-events: none; filter: blur(80px);
    }
    .cta-content { position: relative; z-index: 2; }
    .cta-title {
      font-family: var(--font-heading); font-size: 85px; font-weight: 400;
      color: var(--white); margin-bottom: 20px; line-height: 1;
      text-transform: uppercase; max-width: 1200px; margin-left: auto; margin-right: auto;
    }
    .cta-title em {
      font-family: var(--font-accent); font-style: italic; font-weight: 600;
      font-size: 95px; line-height: 1;
    }
    .cta-desc {
      font-family: var(--font-heading); font-size: 20px; font-weight: 400;
      color: var(--white); max-width: 680px; margin: 0 auto 40px; line-height: 1.5;
    }
    .h2-left .btn-cta { align-self: center; }

    /* ══════════════════════════════════════
       RESPONSIVE
    ══════════════════════════════════════ */
    @media (max-width: 1800px) {
      .filter-btn { padding: 0 28px; }
      :root { --gm: 140px; }
      .h2-title { font-size: 100px; }
      .h2-title em { font-size: 110px; }
      .h2-hero-gradient { width: 1100px; height: 1100px; }
    }
    @media (max-width: 1600px) {
      :root { --gm: 100px; }
      .filter-btn { padding: 0 22px; }
      .h2-title { font-size: 88px; }
      .h2-title em { font-size: 98px; }
      .h2-hero-gradient { width: 1000px; height: 1000px; }
      .cta-title { font-size: 60px; }
      .cta-title em { font-size: 66px; }
    }
    @media (max-width: 1440px) {
      .filter-btn { height: 62px; padding: 0 20px; font-size: 14px; letter-spacing: 0.03em; }
      .search-field { height: 62px; }
      .h2-title { font-size: 80px; }
      .h2-title em { font-size: 90px; }
      .h2-hero-gradient { width: 1000px; height: 1000px; }
      .cta-title { font-size: 56px; }
      .cta-title em { font-size: 62px; }
    }
    @media (max-width: 1280px) {
      :root { --gm: 60px; }
      /* The row stays on one line and scrolls once it no longer fits (below
         roughly 1176px), rather than wrapping and stranding a single pill.
         .is-scrollable is toggled by the page script, so the pills stay
         centred while they fit and left-align only once scrolling starts. */
      .filter-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
      .filter-bar::-webkit-scrollbar { display: none; }
      .filter-bar.is-scrollable { justify-content: flex-start; }
      .filter-btn { height: 60px; padding: 0 20px; white-space: nowrap; flex-shrink: 0; }
      .search-field { height: 60px; }
      /* Right-edge fade signalling the horizontal overflow */
      .filter-bar.is-scrollable {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent 100%);
                mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent 100%);
      }
      .filter-bar.is-scrollable.at-end {
        -webkit-mask-image: none;
                mask-image: none;
      }
      .h2-title { font-size: 72px; }
      .h2-title em { font-size: 82px; }
      .h2-hero-gradient { width: 800px; height: 800px; }
      .cta-title { font-size: 48px; }
      .cta-title em { font-size: 54px; }
    }
    @media (max-width: 1024px) {
      :root { --gm: 40px; }
      .h2-title { font-size: 64px; }
      .h2-title em { font-size: 74px; }
      .h2-hero-gradient { width: 700px; height: 700px; }
      .articles-grid { grid-template-columns: repeat(2, 1fr); }
      .cta-title { font-size: 44px; }
      .cta-title em { font-size: 50px; }
      #hero-main { padding: 180px 0 0; }
    }
    @media (max-width: 768px) {
      :root { --gm: 24px; }
      .h2-title { font-size: 68px; }
      .h2-title em { font-size: 78px; }
      .h2-hero-gradient { width: 500px; height: 500px; }
      .articles-grid { grid-template-columns: 1fr; }
      .search-wrap { padding: 40px 0; }
      .cta-title { font-size: 40px; }
      .cta-title em { font-size: 46px; }
      .cta-panel { padding: 80px var(--gm); }
      .newsletter-form { flex-direction: column; }
      #hero-main { padding: 180px 0 0; }
    }
    @media (max-width: 640px) {
      .h2-title { font-size: 63px; }
      .h2-title em { font-size: 73px; }
      .filter-bar { padding-bottom: 30px; }
      .filter-btn { padding: 0 24px; }
    }
    @media (max-width: 480px) {
      :root { --gm: 16px; }
      .h2-title { font-size: 58px; }
      .h2-title em { font-size: 68px; }
      .h2-hero-gradient { width: 380px; height: 380px; }
      body { font-size: 16px; }
      .articles-section { padding-bottom: 0; }
      .cta-section { padding-bottom: 60px; }
      .article-body > p, .h2-hero-desc { font-size: 16px; }
      .cta-panel { padding: 60px var(--gm); }
      .cta-title { font-size: 36px; }
      .cta-title em { font-size: 40px; }
      .cta-desc { font-size: 16px; }
      #hero-main { padding: 180px 0 0; }
      .article-cover { height: 180px; }
      .article-body h3 { font-size: 25px; }
      .filter-btn { height: 50px; }
      .search-field { height: 54px; padding: 0 8px 0 20px; gap: 10px; }
      .search-wrap { padding: 32px 0; }
      .search-status { font-size: 16px; }
      .search-status-reset { font-size: 16px; }
    }

  

/* Breadcrumbs — top-left of the hero (matches case study) */
.breadcrumbs { align-self: flex-start; display: flex; align-items: center; flex-wrap: nowrap; gap: 10px; font-family: var(--font-heading); font-size: 16px; font-weight: 500; color: var(--zinc-400); margin: 0 0 66px 0; position: relative; z-index: 2; text-align: left; min-width: 0; max-width: 100%; }
.breadcrumbs a { color: var(--zinc-400); transition: color 0.3s ease; flex-shrink: 0; white-space: nowrap; }
.breadcrumbs a:hover { color: var(--white); }
.breadcrumb-sep { color: rgba(255,255,255,0.30); flex-shrink: 0; }
.breadcrumb-current { color: var(--white); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 480px) { .breadcrumbs { font-size: 14px; gap: 8px; margin-bottom: 40px; } }
