@layer reset, base, components, utilities;

@layer reset {
  *,
*::before,
*::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd { margin: 0; }
  ul[role="list"],
ol[role="list"] { list-style: none; margin: 0; padding: 0; }
  img,
picture,
video,
canvas,
svg { display: block; max-width: 100%; }
  button,
input,
textarea,
select { font: inherit; }
  button,
a { -webkit-tap-highlight-color: transparent; }
}

@layer base {
  :root {
    color-scheme: dark;
    --bg: #090c0d;
    --bg-elevated: #101416;
    --bg-soft: #151a1c;
    --surface: rgba(24, 30, 32, 0.74);
    --surface-strong: rgba(30, 37, 39, 0.88);
    --surface-light: rgba(255, 255, 255, 0.065);
    --surface-hover: rgba(255, 255, 255, 0.095);
    --glass: rgba(19, 25, 27, 0.64);
    --glass-bright: rgba(31, 39, 41, 0.72);
    --line: rgba(255, 255, 255, 0.12);
    --line-soft: rgba(255, 255, 255, 0.075);
    --line-strong: rgba(255, 255, 255, 0.2);
    --text: #f3f7f5;
    --text-soft: #c5cfcc;
    --muted: #8d9a97;
    --purple: #9557F6;
    --purple-strong: #A66FF8;
    --purple-soft: rgba(149, 87, 246, 0.18);
    --purple-glow: rgba(149, 87, 246, 0.32);
    --purple-gradient-start: #c292ff;
    --purple-gradient-end: #7134d8;
    --purple-gradient: linear-gradient(135deg, #c292ff 0%, #aa70fa 48%, #9557f6 100%);
    --purple-gradient-hover: linear-gradient(135deg, #d2adff 0%, #b980ff 48%, #a365f8 100%);
    --purple-text-gradient: linear-gradient(100deg, #d0a8ff 0%, #aa70ff 48%, #8d49ed 100%);
    --lime: #25d99a;
    --lime-strong: #63edbe;
    --lime-soft: rgba(37, 217, 154, 0.16);
    --lime-glow: rgba(37, 217, 154, 0.28);
    --lime-gradient-start: #7af2c7;
    --lime-gradient-end: #009b6c;
    --lime-gradient: linear-gradient(135deg, #7af2c7 0%, #27d99a 48%, #009b6c 100%);
    --lime-gradient-hover: linear-gradient(135deg, #a2ffdd 0%, #47e9ad 48%, #00b17a 100%);
    --lime-text-gradient: linear-gradient(100deg, #91f7d1 0%, #38dfa3 50%, #08b77c 100%);
    --danger: #ff7a72;
    --success: #75e68b;
    --font: "Manrope", "Avenir Next", "Segoe UI Variable", "Segoe UI", sans-serif;
    --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --max-width: 1480px;
    --content-width: 1180px;
    --gutter: clamp(20px, 4vw, 72px);
    --section-space: clamp(88px, 11vw, 168px);
    --radius-sm: 14px;
    --radius-md: 22px;
    --radius-lg: 34px;
    --radius-xl: 48px;
    --shadow: 0 24px 80px rgba(0, 0, 0, 0.32);
    --blur: 24px;
    --ease: cubic-bezier(.2, .8, .2, 1);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    --arrow-ne-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 17.5 17.5 6.5M8.5 6.5h9v9' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --fast: 220ms;
    --medium: 520ms;
    --slow: 880ms;
    --header-height: 78px;
    --plyr-color-main: var(--purple);
    --plyr-video-background: #080b0c;
    --plyr-menu-background: rgba(15, 20, 22, .92);
    --plyr-menu-color: var(--text);
    --plyr-control-radius: 14px;
    --plyr-video-control-color: #fff;
  }

  html { background: var(--bg); }

  body {
    min-width: 320px;
    min-height: 100vh;
    overflow-x: hidden;
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.65;
    color: var(--text);
    background:
      radial-gradient(circle at 10% 8%, rgba(149, 87, 246, .13), transparent 28rem),
      radial-gradient(circle at 88% 20%, rgba(37,217,154, .11), transparent 30rem),
      var(--bg);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
  }

  body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    opacity: .42;
    background-image:
      linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(to bottom, #000, transparent 82%);
  }

  body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 1000;
    pointer-events: none;
    opacity: .045;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
    mix-blend-mode: soft-light;
  }

  main { position: relative; z-index: 1; }
  a { color: inherit; text-decoration: none; }
  p { color: var(--text-soft); }
  strong { color: var(--text); }
  ::selection { color: #070a0b; background: var(--lime); }
  :focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
}

@layer components {
  .skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 2000;
    padding: 10px 16px;
    color: #080b0c;
    background: var(--lime);
    border-radius: 999px;
    transform: translateY(-150%);
    transition: transform var(--fast) var(--ease);
  }
  .skip-link:focus { transform: translateY(0); }

  .site-header {
    position: fixed;
    z-index: 500;
    top: 16px;
    left: 0;
    right: 0;
    padding-inline: var(--gutter);
    pointer-events: none;
    transition: opacity .18s ease, visibility .18s ease;
  }

  .nav-shell {
    width: min(100%, var(--max-width));
    min-height: var(--header-height);
    margin-inline: auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 28px;
    padding: 10px 12px 10px 18px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(26,33,35,.82), rgba(13,17,19,.67));
    box-shadow: 0 18px 55px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.07);
    backdrop-filter: blur(24px) saturate(130%);
    pointer-events: auto;
  }

  .brand {
    display: inline-flex;
    align-items: center;
    min-width: 78px;
  }
  .brand-logo {
    width: 68px;
    height: 60px;
    flex: none;
    display: block;
    background: url("../media/brand/nash-imaging-events-logo.svg") center / contain no-repeat;
  }

  .site-nav { justify-self: center; }
  .site-nav ul { display: flex; align-items: center; gap: 4px; }
  .site-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 14px;
    border-radius: 12px;
    color: var(--text-soft);
    font-size: 14px;
    font-weight: 700;
    transition: color var(--fast) var(--ease), background var(--fast) var(--ease);
  }
  .site-nav a:hover,
.site-nav a[aria-current="page"] { color: var(--text); background: var(--surface-light); }

  .nav-actions { display: flex; align-items: center; gap: 8px; }
  .menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface-light);
    color: var(--text);
    cursor: pointer;
  }
  .menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
    content: "";
    display: block;
    width: 18px;
    height: 2px;
    margin: 4px auto;
    border-radius: 2px;
    background: currentColor;
    transition: transform var(--fast) var(--ease), opacity var(--fast) var(--ease);
  }
  .menu-toggle[aria-expanded="true"] span { opacity: 0; }
  .menu-toggle[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }

  .container { width: min(100% - (var(--gutter) * 2), var(--max-width)); margin-inline: auto; }
  .content-container { width: min(100% - (var(--gutter) * 2), var(--content-width)); margin-inline: auto; }
  .section { padding-block: var(--section-space); position: relative; }
  .section-tight { padding-block: clamp(64px, 8vw, 112px); }
  .section-topline { border-top: 1px solid var(--line-soft); }

  .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: none;
  }
  .eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 99px; background: var(--purple); box-shadow: 18px 0 0 -1px var(--lime); }
  .eyebrow--lime::before { background: var(--lime); box-shadow: 18px 0 0 -1px var(--purple); }

  .display {
    max-width: 1000px;
    font-size: clamp(42px, 5.2vw, 78px);
    line-height: .98;
    letter-spacing: -.055em;
    font-weight: 780;
  }
  .display .purple { color: var(--purple-strong); }
  .display .lime { color: var(--lime-strong); }
  .section-title {
    max-width: 900px;
    font-size: clamp(34px, 4.2vw, 62px);
    line-height: 1.03;
    letter-spacing: -.045em;
    font-weight: 760;
  }
  .lede { max-width: 720px; font-size: clamp(18px, 1.45vw, 22px); line-height: 1.55; color: var(--text-soft); }
  .meta { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: none; }

  .button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 12px 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    color: var(--text);
    background: var(--surface-light);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -.01em;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    transition: transform var(--fast) var(--ease), border-color var(--fast) var(--ease), background var(--fast) var(--ease);
  }
  .button::after {
    content: "";
    width: 18px;
    height: 18px;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-6-6l6 6l-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
    transition: transform var(--fast) var(--ease);
  }
  .button:hover { transform: translateY(-2px); border-color: var(--line-strong); background: var(--surface-hover); }
  .button:hover::after { transform: translateX(4px); }
  .button--purple { color: #090b0c; border-color: transparent; background: var(--purple); box-shadow: 0 12px 36px var(--purple-glow); }
  .button--purple:hover { background: var(--purple-strong); }
  .button--lime { color: #07100a; border-color: transparent; background: var(--lime); box-shadow: 0 12px 36px var(--lime-glow); }
  .button--lime:hover { background: var(--lime-strong); }
  .button--compact { min-height: 46px; padding-inline: 17px; border-radius: 14px; }
  .button--compact::after { width: 15px; height: 15px; }

  .hero {
    min-height: 900px;
    padding-top: clamp(150px, 15vw, 210px);
    padding-bottom: clamp(90px, 9vw, 130px);
    display: flex;
    align-items: center;
  }
  .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, .78fr);
    gap: clamp(48px, 7vw, 112px);
    align-items: center;
  }
  .hero-copy .lede { margin-top: 28px; }
  .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
  .hero-proof { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 44px; padding-top: 25px; border-top: 1px solid var(--line-soft); }
  .hero-proof span { display: inline-flex; align-items: center; gap: 9px; color: var(--text-soft); font-size: 13px; font-weight: 700; }
  .hero-proof span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 20px var(--lime-glow); }
  .hero-proof span:nth-child(2)::before { background: var(--purple); box-shadow: 0 0 20px var(--purple-glow); }
  .hero-media {
    position: relative;
    aspect-ratio: 4 / 4.6;
    max-height: 690px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: var(--bg-elevated);
    box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.08);
    transform: perspective(1400px) rotateY(-2deg) rotateX(1deg);
  }
  .hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,7,8,.86), transparent 53%); }
  .hero-media img { width: 100%; height: 100%; object-fit: cover; }

  .logo-panel {
    padding: clamp(26px, 4vw, 42px);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, rgba(26,33,35,.67), rgba(12,16,18,.62));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    backdrop-filter: blur(24px);
  }
  .logo-cloud { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-soft); border-left: 1px solid var(--line-soft); }
  .logo-lockup {
    min-height: 104px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border-right: 1px solid var(--line-soft);
    border-bottom: 1px solid var(--line-soft);
    color: #b8c2c0;
    font-size: clamp(13px, 1.25vw, 18px);
    font-weight: 850;
    letter-spacing: -.025em;
    text-align: center;
    filter: grayscale(1);
    opacity: .8;
    transition: color var(--fast) var(--ease), background var(--fast) var(--ease), filter var(--fast) var(--ease), opacity var(--fast) var(--ease);
  }
  .logo-lockup:hover { color: var(--text); background: var(--surface-light); filter: none; opacity: 1; }
  .logo-lockup:nth-child(3n+1):hover { color: var(--purple-strong); }
  .logo-lockup:nth-child(3n+2):hover { color: var(--lime-strong); }
  .service-card {
    position: relative;
    min-height: 440px;
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, rgba(26,32,34,.76), rgba(12,16,18,.72));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    transition: transform var(--medium) var(--ease-out), border-color var(--fast) var(--ease), box-shadow var(--medium) var(--ease-out);
  }
  .service-card:hover { transform: translateY(-7px); border-color: var(--line-strong); box-shadow: 0 30px 80px rgba(0,0,0,.32); }
  .service-card:hover img { transform: scale(1.045); filter: saturate(1.12); }
  .service-row .arrow::before {
    content: "";
    width: 21px;
    height: 21px;
    background: currentColor;
    -webkit-mask: var(--arrow-ne-mask) center / contain no-repeat;
    mask: var(--arrow-ne-mask) center / contain no-repeat;
  }
  .service-card::before { content: ""; position: absolute; z-index: 2; top: 18px; left: 18px; width: 52px; height: 4px; border-radius: 99px; background: var(--lime); box-shadow: 60px 0 0 -1px rgba(37,217,154,.34); }
  .tag-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
  .tag { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-soft); background: var(--surface-light); font-size: 11px; font-weight: 800; text-transform: none; letter-spacing: .08em; }
  .process-card { min-height: 330px; padding: 30px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(26,32,34,.72), rgba(11,15,17,.7)); backdrop-filter: blur(18px); }
  .process-card:nth-child(2) { border-color: rgba(37,217,154,.25); box-shadow: inset 0 0 60px rgba(37,217,154,.055); }
  .process-card:nth-child(3) { border-color: rgba(149,87,246,.26); box-shadow: inset 0 0 60px rgba(149,87,246,.055); }
  .process-card .num { color: var(--muted); font-family: var(--mono); font-size: 12px; }
  .process-card h3 { margin-top: auto; font-size: 28px; letter-spacing: -.03em; }
  .process-card p { margin-top: 14px; font-size: 15px; }

  .cta-panel {
    position: relative;
    overflow: hidden;
    min-height: 440px;
    display: grid;
    place-items: center;
    padding: clamp(48px, 8vw, 110px);
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
      radial-gradient(circle at 16% 30%, rgba(149,87,246,.27), transparent 32%),
      radial-gradient(circle at 84% 70%, rgba(37,217,154,.24), transparent 34%),
      linear-gradient(145deg, rgba(28,35,37,.83), rgba(10,13,15,.9));
    text-align: center;
    box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.08);
  }
  .cta-panel::before,
.cta-panel::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; border: 1px solid rgba(255,255,255,.12); }
  .cta-panel::before { left: -120px; top: -160px; box-shadow: inset 0 0 80px var(--purple-soft); }
  .cta-panel::after { right: -130px; bottom: -170px; box-shadow: inset 0 0 80px var(--lime-soft); }
  .cta-content { position: relative; z-index: 1; max-width: 860px; }
  .cta-content p { max-width: 650px; margin: 22px auto 0; font-size: 19px; }
  .cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

  .site-footer { padding: 30px var(--gutter) 36px; }
  .footer-shell {
    width: min(100%, var(--max-width));
    margin-inline: auto;
    padding: 34px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(16,21,23,.64);
    backdrop-filter: blur(18px);
  }
  .footer-top { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 40px; }
  .footer-intro p { max-width: 420px; margin-top: 18px; font-size: 14px; }
  .footer-nav h3 { color: var(--muted); font-size: 11px; letter-spacing: .12em; text-transform: none; }
  .footer-nav ul { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
  .footer-nav a { color: var(--text-soft); font-size: 14px; }
  .footer-nav a:hover { color: var(--lime); }
  .footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line-soft); color: var(--muted); font-size: 12px; }

  .page-hero { padding-top: clamp(160px, 17vw, 230px); padding-bottom: clamp(78px, 9vw, 130px); }
  .page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .55fr); gap: 70px; align-items: end; }
  .page-hero-grid--single { grid-template-columns: minmax(0, 1fr); }
  .page-hero-grid--single > div { max-width: 980px; }
  .page-hero .lede { margin-top: 30px; }
  .page-summary { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--glass); backdrop-filter: blur(22px); }
  .page-summary dl { display: grid; gap: 18px; }
  .page-summary div { display: grid; grid-template-columns: 110px 1fr; gap: 18px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
  .page-summary div:first-child { padding-top: 0; border-top: 0; }
  .page-summary dt { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: none; }
  .page-summary dd { color: var(--text-soft); font-size: 14px; }
  .service-row { display: grid; grid-template-columns: 90px minmax(0, .8fr) minmax(300px, .55fr) 58px; gap: 30px; align-items: center; min-height: 190px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(26,32,34,.7), rgba(12,16,18,.7)); transition: transform var(--fast), border-color var(--fast), background var(--fast); }
  .service-row:hover { transform: translateX(6px); border-color: var(--line-strong); background: linear-gradient(135deg, rgba(32,39,41,.8), rgba(14,18,20,.76)); }
  .service-row .num { color: var(--muted); font-family: var(--mono); font-size: 12px; }
  .service-row h2 { font-size: clamp(26px, 2.6vw, 42px); line-height: 1.05; letter-spacing: -.04em; }
  .service-row p { font-size: 15px; }
  .service-row .arrow { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: var(--surface-light); border: 1px solid var(--line); }
  .service-row:nth-child(2) .arrow,
.service-row:nth-child(4) .arrow { color: #07100a; background: var(--lime); border-color: transparent; }
  .service-row:nth-child(1) .arrow,
.service-row:nth-child(5) .arrow { color: #090b0c; background: var(--purple); border-color: transparent; }

  .service-hero-media { margin-top: 52px; position: relative; aspect-ratio: 16/7.4; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
  .service-hero-media img { width: 100%; height: 100%; object-fit: cover; }
  .service-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,7,8,.46), transparent 54%); }
  .service-columns { display: grid; grid-template-columns: minmax(0,.82fr) minmax(420px,1.18fr); gap: clamp(54px, 9vw, 130px); }
  .sticky-copy { align-self: start; position: sticky; top: 132px; }
  .capability-list { display: grid; gap: 12px; }
  .capability-item { display: grid; grid-template-columns: 44px 1fr; gap: 18px; padding: 22px 0; border-top: 1px solid var(--line-soft); }
  .capability-item .num { color: var(--lime); font-family: var(--mono); font-size: 12px; }
  .capability-item:nth-child(odd) .num { color: var(--purple); }
  .capability-item h3 { font-size: 21px; letter-spacing: -.02em; }
  .capability-item p { margin-top: 6px; font-size: 15px; }
  .work-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(17,22,24,.68); transition: transform var(--medium) var(--ease-out), border-color var(--fast); }
  .work-card:hover { transform: translateY(-7px); border-color: var(--line-strong); }
  .work-card[hidden] { display: none; }
  .work-card:hover img { transform: scale(1.04); }

  .case-hero { padding-top: clamp(150px, 15vw, 210px); }
  .case-hero-media { margin-top: 56px; aspect-ratio: 16/8.2; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
  .case-hero-media img { width: 100%; height: 100%; object-fit: cover; }
  .case-gallery { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-top: 70px; }
  .case-gallery figure { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-elevated); }
  .case-gallery figure:first-child { grid-row: span 2; }
  .case-gallery img { width: 100%; height: 100%; object-fit: cover; }
  .case-gallery figure:first-child img { min-height: 650px; }
  .case-gallery figure:not(:first-child) img { min-height: 315px; }
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  .form-field { display: grid; gap: 8px; }
  .form-field--full { grid-column: 1/-1; }
  .form-field label { color: var(--text-soft); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: none; }
  .form-field input,
.form-field textarea,
.form-field select { width: 100%; border: 1px solid var(--line); border-radius: 15px; background: rgba(8,11,12,.56); color: var(--text); padding: 14px 15px; outline: none; transition: border-color var(--fast), box-shadow var(--fast), background var(--fast); }
  .form-field input { min-height: 52px; }
  .form-field textarea { min-height: 170px; resize: vertical; }
  .form-field input:focus,
.form-field textarea:focus,
.form-field select:focus { border-color: rgba(37,217,154,.65); box-shadow: 0 0 0 4px rgba(37,217,154,.09); background: rgba(8,11,12,.76); }
  .form-field [aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 4px rgba(255,122,114,.08); }
  .field-error { min-height: 18px; color: var(--danger); font-size: 12px; }
  .form-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; }
  .form-footer p { max-width: 390px; font-size: 12px; }
  .form-status { margin-top: 18px; padding: 13px 15px; border: 1px solid rgba(37,217,154,.3); border-radius: 14px; color: var(--success); background: var(--lime-soft); font-size: 13px; }
  .form-status[hidden] { display: none; }
  .dialog-close { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 14px; color: var(--text); background: var(--surface-light); cursor: pointer; }

  .privacy-content { max-width: 880px; }
  .privacy-content h2 { margin-top: 60px; font-size: 30px; letter-spacing: -.03em; }
  .privacy-content h3 { margin-top: 34px; font-size: 21px; }
  .privacy-content p,
.privacy-content li { font-size: 17px; color: var(--text-soft); }
  .privacy-content p { margin-top: 16px; }
  .privacy-content ul { display: grid; gap: 8px; margin-top: 16px; }

  /* Reveal targets stay visible at rest. Motion is applied transiently by JS
     when a target enters the viewport, so off-screen content never becomes
     a permanent blank area in desktop/full-page rendering. */
  .js .word-reveal .word { display: inline-block; opacity: 1; transform: translateY(0); filter: blur(0); }
  .js [data-reveal] { opacity: 1; transform: translateY(0); }
  .reveal-stable-surface {
    opacity: 1 !important;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform-origin: center;
    will-change: transform;
    isolation: isolate;
  }
  .reveal-stable-surface.reveal-complete { will-change: auto; }

  .cursor-glow { position: fixed; z-index: -1; width: 420px; height: 420px; left: -210px; top: -210px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(37,217,154,.075), transparent 68%); transform: translate3d(var(--x, -1000px), var(--y, -1000px), 0); }
}

@layer utilities {
  .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
  .orange { color: var(--purple-strong); }
  .green { color: var(--lime-strong); }
}

@media (max-width: 1180px) {
  .nav-shell { grid-template-columns: auto auto; }
  .site-nav {
    position: absolute;
    top: calc(100% + 10px);
    left: var(--gutter);
    right: var(--gutter);
    display: none;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(15,20,22,.94);
    box-shadow: var(--shadow);
    backdrop-filter: blur(24px);
  }
  .site-nav.is-open { display: block; }
  .site-nav ul { display: grid; }
  .site-nav a { width: 100%; }
  .nav-actions { justify-self: end; }
  .menu-toggle { display: block; }
  .nav-actions .button { display: none; }
  .service-columns { grid-template-columns: .8fr 1.2fr; gap: 64px; }
}

@media (max-width: 920px) {
  .hero { min-height: auto; }
  .hero-grid,
.page-hero-grid { grid-template-columns: 1fr; }
  .hero-media { aspect-ratio: 16/11; max-height: none; transform: none; }
  .logo-cloud { grid-template-columns: repeat(2, 1fr); }
  .service-card { grid-column: span 1; }
  .service-card:last-child { grid-column: 1/-1; }
  .process-card { min-height: 240px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-intro { grid-column: 1/-1; }
  .service-columns { grid-template-columns: 1fr; }
  .sticky-copy { position: static; }
  .case-gallery { grid-template-columns: 1fr 1fr; }
  .case-gallery figure:first-child { grid-column: 1/-1; grid-row: auto; }
  .case-gallery figure:first-child img { min-height: 500px; }
}

@media (max-width: 640px) {
  :root { --gutter: 18px; --radius-xl: 34px; --radius-lg: 28px; }
  .nav-shell { padding: 8px 8px 8px 13px; border-radius: 19px; }
  .brand { min-width: 0; }
  .brand-logo { width: 58px; height: 52px; }
  .menu-toggle { width: 44px; height: 44px; }
  .hero { padding-top: 128px; padding-bottom: 72px; }
  .hero-actions,
.cta-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button,
.cta-actions .button { width: 100%; }
  .hero-proof { display: grid; gap: 10px; }
  .hero-media { aspect-ratio: 4/5; border-radius: 30px; }
  .logo-panel { padding: 22px; }
  .logo-lockup { font-size: 12px; }
  .service-card,
.service-card:last-child { grid-column: auto; }
  .cta-panel { min-height: 480px; padding: 46px 24px; border-radius: 30px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-intro { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .page-summary div { grid-template-columns: 1fr; gap: 6px; }
  .service-row p { grid-column: 1/-1; }
  .case-gallery { grid-template-columns: 1fr; }
  .case-gallery figure:first-child { grid-column: auto; }
  .case-gallery figure:first-child img,
.case-gallery figure:not(:first-child) img { min-height: 320px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .form-footer { align-items: stretch; flex-direction: column; }
  .form-footer .button { width: 100%; }
}

/* --------------------------------------------------------------------------
   v2 refinement pass — compact rhythm, useful content, real-media treatment
   -------------------------------------------------------------------------- */

:root {
  --header-height: 70px;
}

.site-header { top: 12px; }
.nav-shell {
  min-height: var(--header-height);
  padding: 8px 10px 8px 16px;
  border-radius: 22px;
}

.section { padding-block: var(--section-space); }
.section-tight { padding-block: clamp(34px, 4.5vw, 62px); }
.section--cta { padding-top: clamp(42px, 5vw, 72px); padding-bottom: clamp(54px, 6vw, 88px); }

.eyebrow {
  gap: 0;
  margin-bottom: 14px;
}
.eyebrow::before,
.eyebrow--lime::before { content: none; display: none; }

.display {
  font-size: clamp(40px, 4.55vw, 70px);
}
.section-title {
  font-size: clamp(31px, 3.45vw, 52px);
}
.lede { font-size: clamp(17px, 1.25vw, 20px); line-height: 1.52; }

/* Homepage hero */
.hero,
.hero--compact {
  min-height: 0;
  align-items: start;
}
.hero-grid {
  grid-template-columns: minmax(0, .83fr) minmax(520px, 1.17fr);
  gap: clamp(38px, 5vw, 74px);
  align-items: center;
}
.hero-copy .lede { margin-top: 20px; }
.hero-actions { margin-top: 25px; }
.hero-proof {
  gap: 10px 22px;
  margin-top: 28px;
  padding-top: 18px;
}
.hero-proof span { font-size: 12px; }

.hero-slider {
  min-width: 0;
  outline: none;
}
.hero-slider-poster,
.hero-slider canvas {
  position: absolute;
  inset: 0;
}
.hero-slider-poster { z-index: 1; }
.hero-slider canvas { z-index: 2; }
.hero-slider-controls {
  position: absolute;
  z-index: 5;
  right: 20px;
  bottom: 20px;
  display: flex;
  gap: 7px;
}
.hero-slider-controls button {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 15px;
  color: var(--text);
  background: rgba(12,17,18,.72);
  backdrop-filter: blur(14px);
  cursor: pointer;
  transition: transform var(--fast) var(--ease), background var(--fast), border-color var(--fast), color var(--fast);
  -webkit-tap-highlight-color: transparent;
}
.hero-slider-arrow,
.image-lightbox-arrow {
  width: 21px;
  height: 21px;
  display: block;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hero-slider-arrow--previous,
.image-lightbox-arrow--previous { transform: rotate(180deg); }
.hero-slider-controls button:hover {
  transform: translateY(-2px);
  color: #07100a;
  border-color: transparent;
  background: var(--lime);
  box-shadow: 0 10px 28px var(--lime-glow);
}
.hero-slider-controls button:first-child:hover {
  color: #090b0c;
  background: var(--purple);
  box-shadow: 0 10px 28px var(--purple-glow);
}
.hero-slider.is-webgl-ready .hero-slider-poster { visibility: hidden; }
.hero-slider:not(.is-webgl-ready) .hero-slider-controls button { opacity: .55; }

/* Brand strip */
.brand-strip { padding: 0 0 clamp(48px, 5vw, 72px); }
.logo-panel { padding: 0; overflow: hidden; }
.logo-cloud {
  grid-template-columns: repeat(8, minmax(0, 1fr));
  border: 0;
}
.logo-lockup {
  min-height: 82px;
  padding: 16px 18px;
  border-bottom: 0;
  border-right: 1px solid var(--line-soft);
  opacity: .72;
  filter: none;
}
.logo-lockup:last-child { border-right: 0; }
.logo-lockup img {
  width: min(100%, 142px);
  height: 42px;
  object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1);
  opacity: .82;
  transition: filter var(--medium) var(--ease), opacity var(--fast), transform var(--medium) var(--ease-out);
}
.logo-lockup:hover {
  color: inherit;
  background: rgba(247,249,248,.96);
  filter: none;
  opacity: 1;
}
.logo-lockup:hover img { filter: none; opacity: 1; transform: scale(1.035); }

/* Services */
.service-card::before { content: none; display: none; }

/* Compact CTA */
.cta-panel { min-height: 330px; padding: clamp(42px, 6vw, 78px); }
.cta-panel::before,
.cta-panel::after { display: none; }
.cta-panel--compact {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  place-items: center stretch;
  gap: clamp(30px, 5vw, 76px);
  text-align: left;
}
.cta-panel--compact .cta-content { max-width: 850px; }
.cta-panel--compact .cta-content p { max-width: 690px; margin: 16px 0 0; }
.cta-panel--compact .cta-actions { margin-top: 0; justify-content: flex-end; min-width: 230px; }

/* Footer */
.site-footer { padding-top: 18px; padding-bottom: 24px; }
.footer-shell { padding: 28px; }
.footer-top { gap: 30px; }
.footer-bottom { margin-top: 26px; padding-top: 18px; }

/* Internal page rhythm */
.page-hero {
  padding-top: clamp(124px, 11vw, 162px);
}
.page-hero--compact { padding-bottom: clamp(36px, 4vw, 52px); }
.page-hero-grid { gap: 52px; }
.page-summary { padding: 22px; }
.page-summary dl { gap: 14px; }
.page-summary div { padding-top: 13px; }
.service-row {
  gap: 26px;
  min-height: 148px;
  padding: 24px;
}
.service-row p { font-size: 14px; }
.service-row .arrow { width: 46px; height: 46px; }

.service-hero-media { margin-top: 36px; }
.sticky-copy { top: 110px; }
.capability-list { gap: 0; }
.capability-item {
  grid-template-columns: 1fr;
  gap: 0;
  padding: 18px 0;
}
.capability-item h3 { font-size: 20px; }
.capability-item p { margin-top: 5px; font-size: 14px; }

/* Work */
.work-card { border-radius: 24px; }
.work-card .tag-list { margin-top: 16px; }

/* Process, cases and forms */
.process-card { padding: 26px; }
.process-card h3 { font-size: 25px; }
.case-hero { padding-top: clamp(124px, 11vw, 162px); }
.case-hero-media { margin-top: 38px; aspect-ratio: 16 / 8.7; }

@media (max-width: 1180px) {
  .hero-grid { grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr); gap: 42px; }
  .logo-cloud { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .logo-lockup:nth-child(4n) { border-right: 0; }
  .logo-lockup:nth-child(-n+4) { border-bottom: 1px solid var(--line-soft); }
}

@media (max-width: 920px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-slider { width: min(100%, 760px); margin-top: 8px; }
  .service-card { min-height: 390px; }
  .cta-panel--compact { grid-template-columns: 1fr; }
  .cta-panel--compact .cta-actions { justify-content: flex-start; min-width: 0; }
}

@media (max-width: 640px) {
  :root { --header-height: 64px; }
  .site-header { top: 8px; }
  .nav-shell { min-height: 64px; }
  .hero,
.hero--compact { padding-bottom: 24px; }
  .display { font-size: clamp(37px, 11vw, 52px); }
  .section-title { font-size: clamp(29px, 9vw, 42px); }
  .hero-copy .lede { margin-top: 17px; }
  .hero-actions { margin-top: 21px; }
  .hero-proof { margin-top: 22px; padding-top: 15px; }
  .hero-slider-stage { aspect-ratio: 4 / 3; border-radius: 25px; }
  .hero-slider-controls { right: 14px; bottom: 14px; }
  .hero-slider-controls button { width: 43px; height: 43px; border-radius: 13px; }
  .brand-strip { padding-bottom: 42px; }
  .logo-panel { border-radius: 24px; }
  .logo-cloud { grid-template-columns: repeat(2, 1fr); }
  .logo-lockup { min-height: 72px; border-bottom: 1px solid var(--line-soft); }
  .logo-lockup:nth-child(2n) { border-right: 0; }
  .logo-lockup:nth-last-child(-n+2) { border-bottom: 0; }
  .logo-lockup img { height: 34px; }
  .service-card,
.service-card:last-child { min-height: 365px; }
  .cta-panel,
.cta-panel--compact { min-height: 0; padding: 34px 22px; border-radius: 26px; }
  .cta-panel--compact .cta-actions { width: 100%; }
  .site-footer { padding-top: 10px; }
  .footer-shell { padding: 22px; }
  .page-hero { padding-top: 108px; padding-bottom: 38px; }
  .service-row { min-height: 0; }
  .service-hero-media,
.case-hero-media { margin-top: 28px; aspect-ratio: 4 / 3; border-radius: 26px; }
}

.hero,
.hero--compact {
  padding-top: clamp(104px, 7.5vw, 124px);
  padding-bottom: clamp(24px, 2.5vw, 36px);
}

.brand-strip { padding-bottom: clamp(38px, 4vw, 58px); }

.hero-slider-stage {
  touch-action: pan-y;
  user-select: none;
}

.hero-slider:focus-visible .hero-slider-stage {
  outline: 2px solid var(--lime);
  outline-offset: 4px;
}

.hero-slider-controls button:disabled:hover {
  color: var(--text);
  border-color: var(--line-strong);
  background: rgba(12,17,18,.72);
  transform: none;
  box-shadow: none;
}

.page-hero,
.case-hero {
  padding-top: clamp(112px, 8vw, 138px);
  padding-bottom: clamp(34px, 4vw, 54px);
}

.service-card {
  min-height: 0;
}

.process-card { min-height: 230px; }

@media (max-width: 920px) {
  :root { --section-space: clamp(46px, 7vw, 64px); }
  .hero,
.hero--compact { padding-top: 104px; }
}

@media (max-width: 640px) {
  :root { --section-space: 46px; }
  .hero,
.hero--compact { padding-top: 92px; }
  .page-hero,
.case-hero { padding-top: 98px; padding-bottom: 32px; }
}
.inline-ne-arrow {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  display: inline-block;
  background: currentColor;
  -webkit-mask: var(--arrow-ne-mask) center / contain no-repeat;
  mask: var(--arrow-ne-mask) center / contain no-repeat;
}
.hero-slider-controls button:disabled { cursor: default; opacity: .45; transform: none; box-shadow: none; }

.logo-lockup { display: grid; place-items: center; }
.logo-lockup img { display: block; }
.logo-lockup:nth-child(3) img,
.logo-lockup:nth-child(6) img,
.logo-lockup:nth-child(7) img { max-height: 36px; }
.logo-lockup:nth-child(4) img { max-height: 30px; }

.service-row h2 { margin: 0; }
.section--capabilities { padding-top: clamp(44px, 4.4vw, 66px); }

.logo-lockup--mountain-dew:hover img,
.logo-lockup--american-airlines:hover img,
.logo-lockup--cox:hover img,
.logo-lockup--samsung:hover img { filter: none; }

.logo-lockup--pepsi:hover img,
.logo-lockup--chase:hover img {
  filter: invert(22%) sepia(98%) saturate(2168%) hue-rotate(205deg) brightness(82%) contrast(111%);
}

.logo-lockup--seatgeek:hover img {
  filter: invert(43%) sepia(94%) saturate(1695%) hue-rotate(162deg) brightness(95%) contrast(103%);
}

.logo-lockup--abbott:hover img {
  filter: invert(68%) sepia(75%) saturate(492%) hue-rotate(70deg) brightness(96%) contrast(93%);
}
.hero-slider-stage {
  background: var(--bg-elevated);
  box-shadow: var(--shadow);
}
.hero-slider-stage::after {
  content: "";
  position: absolute;
  z-index: 6;
  inset: 0;
  border: 1px solid var(--line);
  pointer-events: none;
}
.hero-slider-poster,
.hero-slider canvas {
  display: block;
}
.hero-slider {
  --hero-slider-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
  border-radius: var(--hero-slider-radius);
  clip-path: inset(0 round var(--hero-slider-radius));
  -webkit-clip-path: inset(0 round var(--hero-slider-radius));
}

.hero-slider-stage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
  border-radius: inherit;
  clip-path: inset(0 round var(--hero-slider-radius));
  -webkit-clip-path: inset(0 round var(--hero-slider-radius));
  transform: none;
}

.hero-slider-poster,
.hero-slider canvas {
  clip-path: inset(0 round var(--hero-slider-radius));
  -webkit-clip-path: inset(0 round var(--hero-slider-radius));
  backface-visibility: hidden;
}

.hero-slider canvas {
  overflow: hidden;
}

.hero-slider-stage::after {
  border-radius: var(--hero-slider-radius);
}

@media (max-width: 640px) {
  .hero-slider { --hero-slider-radius: 25px; }
}
.hero-slider,
.hero-slider-stage {
  background: transparent !important;
  box-shadow: none;
}

.hero-slider-stage {
  border: 0;
}

.hero-slider-poster,
.hero-slider canvas {
  overflow: hidden;
  border-radius: var(--hero-slider-radius);
}

/* Keep the border as an overlay following the same rounded silhouette,
   rather than as a rectangular background-bearing wrapper. */
.hero-slider-stage::after {
  background: transparent;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 112px;
}

/* Harmonious multiline heading rhythm */
h1,
h2,
h3 {
  text-wrap: balance;
}

.display {
  line-height: 1.08;
  letter-spacing: -.05em;
}

.section-title {
  line-height: 1.12;
  letter-spacing: -.04em;
}

.service-row h2,
.process-card h3 {
  line-height: 1.16;
}

.capability-item h3 {
  line-height: 1.22;
}

/* Primary navigation: larger text and a clear active state */
.site-nav ul {
  gap: 6px;
}

.site-nav a {
  min-height: 44px;
  padding: 9px 15px;
  font-size: 15px;
  font-weight: 760;
}

.site-nav a[aria-current="page"] {
  color: var(--text);
  background: rgba(149, 87, 246, .16);
  box-shadow: inset 0 0 0 1px rgba(149, 87, 246, .34), 0 8px 24px rgba(149, 87, 246, .08);
}

.site-nav a[aria-current="page"]::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 13px var(--lime-glow);
}

/* Visible page context on every internal page */

.page-context {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 14px;
  font-weight: 760;
}

.page-context-home {
  display: inline-flex;
  align-items: center;
  line-height: 1.25;
  gap: 9px;
  transition: transform var(--fast) var(--ease), border-color var(--fast), background var(--fast);
}

.page-context-arrow {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.page-context-home:hover {
  transform: translateX(-2px);
  border-color: var(--line-strong);
}

.page-context-current {
  color: var(--text-soft);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: none;
}

/* Footer return control */
.footer-bottom {
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 22px;
}

.back-to-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 42px;
  margin-left: auto;
  padding: 9px 12px 9px 15px;
  border: 1px solid var(--line);
  border-radius: 13px;
  color: var(--text-soft);
  background: var(--surface-light);
  font-size: 13px;
  font-weight: 800;
  transition: transform var(--fast) var(--ease), color var(--fast), border-color var(--fast), background var(--fast);
}

.back-to-top:hover {
  transform: translateY(-2px);
  color: var(--text);
  border-color: rgba(37,217,154, .42);
  background: var(--surface-hover);
}

.back-to-top-icon {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #07100a;
  background: var(--lime);
  box-shadow: 0 7px 18px var(--lime-glow);
  font-size: 16px;
  line-height: 1;
}

/* Contact forms: compact, balanced and consistent */

.form-grid--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "name email"
    "company phone"
    "message message";
  column-gap: 16px;
  row-gap: 14px;
}

.form-field--name { grid-area: name; }
.form-field--email { grid-area: email; }
.form-field--company { grid-area: company; }
.form-field--phone { grid-area: phone; }
.form-field--message { grid-area: message; }

.form-field {
  min-width: 0;
  gap: 6px;
}

.form-field label {
  line-height: 1.25;
}

.required-mark {
  color: var(--lime);
}

.field-optional {
  margin-left: 3px;
  color: var(--muted);
  font-size: .86em;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

.form-field input,
.form-field textarea,
.form-field select {
  padding: 11px 13px;
  border-radius: 13px;
  line-height: 1.45;
}

.form-field input {
  min-height: 48px;
}

.form-field textarea {
  min-height: 132px;
  max-height: 280px;
}

.field-error {
  min-height: 0;
  margin-top: 1px;
  font-size: 11.5px;
  line-height: 1.35;
}

.field-error:empty {
  display: none;
}

.form-footer {
  gap: 16px;
  margin-top: 18px;
}

.form-footer p {
  line-height: 1.45;
}

.form-status {
  margin-top: 14px;
  line-height: 1.45;
}

.autofill-decoy {
  position: fixed;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Compact dialog geometry with one unified scroll surface. */

.dialog-close {
  width: 42px;
  height: 42px;
  border-radius: 13px;
}

@media (max-width: 1180px) {
  .site-nav a {
    min-height: 48px;
    padding: 12px 15px;
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  html {
    scroll-padding-top: 90px;
  }

  .display {
    line-height: 1.09;
    letter-spacing: -.045em;
  }

  .section-title {
    line-height: 1.13;
    letter-spacing: -.035em;
  }

  .service-row h2,
.process-card h3 {
    line-height: 1.18;
  }

  .page-context-wrap {
    margin-bottom: 14px;
  }

  .page-context {
    gap: 8px;
    font-size: 14px;
  }

  .page-context-home {
    min-height: 42px;
    padding: 9px 12px;
  }

  .page-context-current {
    font-size: 11.5px;
  }

  .footer-bottom {
    align-items: stretch;
  }

  .back-to-top {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
    min-height: 46px;
    font-size: 14px;
  }

  .form-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "name name"
      "email email"
      "company phone"
      "message message";
    column-gap: 10px;
    row-gap: 11px;
  }

  .form-field label {
    font-size: 10.5px;
    letter-spacing: .035em;
  }

  .form-field input,
.form-field textarea,
.form-field select {
    padding: 10px 12px;
    border-radius: 12px;
  }

  .form-field input {
    min-height: 46px;
  }

  .form-field textarea {
    min-height: 108px;
  }

  .form-footer {
    gap: 10px;
    margin-top: 14px;
  }

  .form-footer p {
    font-size: 11.5px;
  }

  .dialog-close {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }
}

@media (max-width: 360px) {
  .form-grid--compact {
    grid-template-columns: 1fr;
    grid-template-areas:
      "name"
      "email"
      "company"
      "phone"
      "message";
  }
}

/* Compact, universal next step in the existing footer */
.footer-project-link {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  margin-top: 18px;
  padding: 9px 13px;
  border: 1px solid rgba(149, 87, 246, .36);
  border-radius: 13px;
  color: var(--text);
  background: rgba(149, 87, 246, .11);
  font-size: 13px;
  font-weight: 800;
  transition: transform var(--fast) var(--ease), border-color var(--fast), background var(--fast);
}

.footer-project-link span:last-child {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  display: inline-block;
  color: var(--lime);
  background: currentColor;
  -webkit-mask: var(--arrow-ne-mask) center / contain no-repeat;
  mask: var(--arrow-ne-mask) center / contain no-repeat;
}

.footer-project-link:hover {
  transform: translateY(-2px);
  border-color: rgba(149, 87, 246, .62);
  background: rgba(149, 87, 246, .17);
}
.site-nav a[aria-current="page"] {
  column-gap: 10px;
}

@media (max-width: 1180px) {
  .site-nav a[aria-current="page"] {
    column-gap: 12px;
  }
}

/* The WebGL hero slider intentionally remains a stable 4:3 viewport.
   All standard content imagery below preserves its source aspect ratio. */
.service-hero-media,
.case-hero-media {
  aspect-ratio: auto !important;
}

.service-hero-media img,
.case-hero-media img,
.case-gallery img {
  display: block;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
}

.case-gallery {
  align-items: start;
}

.case-gallery figure:first-child {
  grid-row: auto !important;
}

.service-hero-media,
.case-hero-media,
.case-gallery figure {
  background: rgba(13, 17, 19, .54);
}

/* Keep the slider itself uniform. Only landscape 4:3 images are supplied to it. */
.hero-slider-stage {
  aspect-ratio: 4 / 3 !important;
}

.hero-slider-poster,
.hero-slider canvas {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* On narrow screens images still fill the available width,
   while their height follows the original media proportions. */
@media (max-width: 640px) {
  .service-hero-media img,
.case-hero-media img,
.case-gallery img {
    width: 100%;
    height: auto !important;
  }
}

/* Full-size image viewer */
.lightbox-enabled-media,
.lightbox-enabled-slider {
  cursor: zoom-in;
}

.image-lightbox {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(5, 7, 8, .88);
  color: var(--text);
}

.image-lightbox::backdrop {
  background: rgba(5, 7, 8, .82);
  backdrop-filter: blur(10px);
}

.image-lightbox-shell {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  padding: clamp(22px, 4vw, 54px);
}

.image-lightbox-figure {
  width: min(94vw, 1680px);
  height: min(88dvh, 1080px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
  gap: 12px;
}

.image-lightbox-figure img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 82dvh;
  object-fit: contain;
  border-radius: clamp(16px, 2vw, 28px);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .52);
}

.image-lightbox-figure figcaption {
  max-width: min(880px, 88vw);
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.45;
  text-align: center;
}

.image-lightbox-close {
  position: fixed;
  z-index: 3;
  top: max(18px, env(safe-area-inset-top));
  right: max(18px, env(safe-area-inset-right));
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  color: var(--text);
  background: rgba(15, 20, 22, .72);
  box-shadow: 0 16px 44px rgba(0, 0, 0, .3);
  backdrop-filter: blur(18px);
  font-size: 31px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}

.image-lightbox-close:hover {
  border-color: rgba(37,217,154, .42);
  background: rgba(37,217,154, .11);
}

.image-lightbox-nav {
  position: fixed;
  z-index: 3;
  top: 50%;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  color: var(--text);
  background: rgba(15,20,22,.76);
  box-shadow: 0 18px 44px rgba(0,0,0,.34);
  backdrop-filter: blur(18px);
  cursor: pointer;
  transition: color var(--fast), border-color var(--fast), background var(--fast), transform var(--fast);
}

.image-lightbox-nav--previous { left: max(18px, env(safe-area-inset-left)); }
.image-lightbox-nav--next { right: max(18px, env(safe-area-inset-right)); }

.image-lightbox-nav:hover,
.image-lightbox-nav:focus-visible {
  color: #08100c;
  border-color: transparent;
  background: var(--lime);
  outline: none;
}

.image-lightbox-nav:hover { transform: translateY(-50%) scale(1.04); }

.image-lightbox-nav[hidden] { display: none; }

@media (max-width: 640px) {
  .image-lightbox-shell {
    padding: 58px 12px 20px;
  }

  .image-lightbox-figure {
    width: 100%;
    height: calc(100dvh - 78px);
  }

  .image-lightbox-figure img {
    max-width: 100%;
    max-height: calc(100dvh - 118px);
    border-radius: 18px;
  }

  .image-lightbox-close {
    width: 46px;
    height: 46px;
    top: max(10px, env(safe-area-inset-top));
    right: max(10px, env(safe-area-inset-right));
    border-radius: 14px;
  }

  .image-lightbox-nav {
    top: auto;
    bottom: max(16px, env(safe-area-inset-bottom));
    width: 50px;
    height: 50px;
    transform: none;
    border-radius: 15px;
  }

  .image-lightbox-nav--previous { left: calc(50% - 58px); }
  .image-lightbox-nav--next { right: calc(50% - 58px); }

  .image-lightbox-nav:hover { transform: none; }

  .image-lightbox-figure {
    padding-bottom: 60px;
  }
}

/* Internal pages retain the useful legal/location row without repeating the
   long capability and company link directories already available in the nav. */
.site-footer--compact .footer-top {
  display: none;
}

.site-footer--compact .footer-shell {
  padding-block: 20px;
}

.site-footer--compact .footer-bottom {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

/* Brand logos keep deliberate hover/tap feedback without an idle sequence. */

@media (max-width: 760px) {
  body.mobile-nav-open {
    overflow: hidden;
  }

  .site-header {
    z-index: 1200;
  }

  .brand,
.nav-actions {
    position: relative;
    z-index: 3;
  }

  .site-nav {
    position: fixed;
    z-index: 1;
    inset: 0;
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(5,8,9,.74);
    box-shadow: none;
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .26s ease, visibility .26s ease;
  }

  .site-nav.is-open {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .site-nav ul {
    position: absolute;
    left: 50%;
    top: calc(50% + 22px);
    width: min(350px, calc(100vw - 22px));
    aspect-ratio: 1;
    display: block;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 50%;
    background:
      radial-gradient(circle at 50% 50%, rgba(37,217,154,.08) 0 18%, transparent 19%),
      radial-gradient(circle at 36% 30%, rgba(149,87,246,.22), transparent 52%),
      linear-gradient(145deg, rgba(25,32,34,.96), rgba(10,14,16,.94));
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 32px 90px rgba(0,0,0,.54),
      0 0 54px rgba(149,87,246,.12);
  }

  .site-nav ul::before,
.site-nav ul::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    pointer-events: none;
  }

  .site-nav ul::before {
    width: 102px;
    height: 102px;
    border: 1px solid rgba(37,217,154,.24);
    background: rgba(10,14,16,.68);
    box-shadow: 0 0 34px rgba(37,217,154,.09), inset 0 1px 0 rgba(255,255,255,.08);
  }

  .site-nav ul::after {
    width: 8px;
    height: 8px;
    background: var(--lime);
    box-shadow: 0 0 18px var(--lime-glow);
  }

  .site-nav li {
    position: absolute;
    inset: 0;
  }

  .site-nav a {
    position: absolute;
    left: 50%;
    top: 50%;
    width: auto;
    min-width: 88px;
    min-height: 50px;
    justify-content: center;
    padding: 12px 16px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 999px;
    color: var(--text);
    background: rgba(22,28,30,.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 12px 30px rgba(0,0,0,.30);
    font-size: 14px;
    font-weight: 780;
    line-height: 1;
    text-align: center;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.72);
    transition:
      opacity .24s ease,
      transform .42s cubic-bezier(.16,1,.3,1),
      color .18s ease,
      border-color .18s ease,
      background .18s ease,
      box-shadow .18s ease;
  }

  .site-nav li:nth-child(1) a { left: 50%; top: 13%; }
  .site-nav li:nth-child(2) a { left: 82%; top: 36%; }
  .site-nav li:nth-child(3) a { left: 70%; top: 76%; }
  .site-nav li:nth-child(4) a { left: 30%; top: 76%; }
  .site-nav li:nth-child(5) a { left: 18%; top: 36%; }

  .site-nav.is-open a {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .site-nav.is-open li:nth-child(1) a { transition-delay: .03s; }
  .site-nav.is-open li:nth-child(2) a { transition-delay: .07s; }
  .site-nav.is-open li:nth-child(3) a { transition-delay: .11s; }
  .site-nav.is-open li:nth-child(4) a { transition-delay: .15s; }
  .site-nav.is-open li:nth-child(5) a { transition-delay: .19s; }

  .site-nav a:active,
.site-nav a:focus-visible,
.site-nav a[aria-current="page"] {
    color: #090c0d;
    border-color: rgba(37,217,154,.78);
    background: var(--lime);
    box-shadow: 0 0 0 5px rgba(37,217,154,.10), 0 0 28px rgba(37,217,154,.26);
  }

  .site-nav a[aria-current="page"]::before {
    display: none;
  }
}

@media (max-width: 380px), (max-height: 650px) and (max-width: 760px) {
  .site-nav ul {
    width: min(310px, calc(100vw - 18px));
  }

  .site-nav a {
    min-width: 80px;
    min-height: 46px;
    padding: 11px 13px;
    font-size: 13px;
  }
}

.radial-menu {
  display: none;
}

@media (min-width: 0px) {
  body.mobile-nav-open {
    overflow: hidden;
  }

  .site-header {
    z-index: 1200;
  }

  .nav-shell {
    grid-template-columns: auto 1fr;
  }

  .nav-actions {
    grid-column: 2;
    justify-self: end;
  }

  .menu-toggle {
    display: block;
  }

  .site-nav {
    display: none !important;
  }

  .radial-menu {
    position: fixed;
    z-index: 1300;
    inset: 0;
    display: block;
    min-height: 100dvh;
    background: rgba(5,8,9,.74);
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
    opacity: 0;
    visibility: hidden;
    transition: opacity .24s ease, visibility .24s ease;
    pointer-events: none;
  }

  .radial-menu.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  body.mobile-nav-open .site-header {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .radial-menu__stage {
    position: fixed;
    left: var(--radial-center-x, 50vw);
    top: var(--radial-center-y, 50dvh);
    width: min(370px, calc(100vw - 18px));
    aspect-ratio: 1;
    transform: translate(-50%, -50%) scale(.72) rotate(-8deg);
    transform-origin: center;
    filter: blur(5px);
    transition:
      transform .5s cubic-bezier(.16,1,.3,1),
      filter .3s ease;
  }

  .radial-menu.is-open .radial-menu__stage {
    transform: translate(-50%, -50%) scale(1) rotate(0);
    filter: blur(0);
  }

  .radial-menu__svg {
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 30px 55px rgba(0,0,0,.48));
  }

  .radial-menu__inner-ring,
.radial-menu__outer-ring {
    fill: none;
    stroke: rgba(255,255,255,.16);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
    pointer-events: none;
  }

  .radial-menu__separator {
    stroke: rgba(255,255,255,.16);
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
    pointer-events: none;
  }

  .radial-menu__sector {
    position: static;
    width: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    transform: none;
    transition: none;
    outline: none;
    cursor: pointer;
  }

  .radial-menu__sector[aria-current="page"] {
    color: inherit;
    background: transparent;
    box-shadow: none;
  }

  .radial-menu__sector > path {
    fill: color-mix(in srgb, var(--radial-item-color, var(--lime)) 12%, rgba(24,31,34,.92) 88%);
    stroke: none;
    transition: fill .2s ease, filter .2s ease;
  }

  .radial-menu__bullet {
    fill: var(--radial-item-color, var(--lime));
    filter: drop-shadow(0 0 7px color-mix(in srgb, var(--radial-item-color, var(--lime)) 52%, transparent));
    pointer-events: none;
    transition: fill .2s ease, filter .2s ease;
  }

  .radial-menu__icon {
    fill: none;
    stroke: var(--radial-item-color, var(--lime));
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
    transition: stroke .2s ease, filter .2s ease;
    filter: drop-shadow(0 0 6px color-mix(in srgb, var(--radial-item-color, var(--lime)) 32%, transparent));
  }

  .radial-menu__label {
    fill: var(--text);
    font-family: var(--font);
    font-size: 14px;
    font-weight: 780;
    letter-spacing: -.01em;
    pointer-events: none;
    transition: fill .2s ease;
  }

  .radial-menu__sector:is(:hover, :focus-visible, :active) > path,
.radial-menu__sector.is-current > path {
    fill: color-mix(in srgb, var(--radial-item-color, var(--lime)) 38%, #151d1f 62%);
    filter: drop-shadow(0 0 16px color-mix(in srgb, var(--radial-item-color, var(--lime)) 30%, transparent));
  }

  .radial-menu__sector:is(:hover, :focus-visible, :active) .radial-menu__label,
.radial-menu__sector.is-current .radial-menu__label {
    fill: #ffffff;
  }

  .radial-menu__sector:is(:hover, :focus-visible, :active) .radial-menu__bullet,
.radial-menu__sector.is-current .radial-menu__bullet {
    fill: var(--radial-item-color, var(--lime));
    filter: drop-shadow(0 0 10px color-mix(in srgb, var(--radial-item-color, var(--lime)) 64%, transparent));
  }

  .radial-menu__sector:is(:hover, :focus-visible, :active) .radial-menu__icon,
.radial-menu__sector.is-current .radial-menu__icon {
    stroke: var(--radial-item-color, var(--lime));
    filter: drop-shadow(0 0 11px color-mix(in srgb, var(--radial-item-color, var(--lime)) 68%, transparent));
  }

  .radial-menu__close {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: 50%;
    width: 104px;
    height: 104px;
    display: grid;
    place-items: center;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    color: var(--text);
    background:
      radial-gradient(circle at 38% 30%, rgba(149,87,246,.22), transparent 58%),
      rgba(10,14,16,.96);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 0 0 5px rgba(5,8,9,.38),
      0 0 36px rgba(149,87,246,.16);
    font-size: 46px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, transform .18s ease, background .18s ease;
  }

  .radial-menu__brand {
    position: absolute;
    z-index: 4;
    left: 50%;
    top: -15px;
    width: 74px;
    height: 66px;
    display: block;
    transform: translate(-50%, -100%);
    background: url("../media/brand/nash-imaging-events-logo.svg") center / contain no-repeat;
    filter: drop-shadow(0 12px 24px rgba(0,0,0,.44));
    pointer-events: none;
  }

  .radial-menu__brand::after {
    content: none;
    display: none;
  }

  .radial-menu__close:active,
.radial-menu__close:focus-visible {
    color: #090c0d;
    border-color: var(--lime);
    background: var(--lime);
    transform: translate(-50%, -50%) scale(.94);
    outline: none;
  }
}

@media (min-width: 761px) {
  .radial-menu {
    background: rgba(5,8,9,.66);
    backdrop-filter: blur(22px) saturate(125%);
    -webkit-backdrop-filter: blur(22px) saturate(125%);
  }

  .radial-menu__stage {
    width: min(520px, calc(100vw - 64px), calc(100dvh - 64px));
  }

  .radial-menu__svg {
    filter: drop-shadow(0 40px 80px rgba(0,0,0,.54));
  }

  .radial-menu__label {
    font-size: 15.5px;
    font-weight: 800;
  }

  .radial-menu__close {
    width: 148px;
    height: 148px;
    font-size: 54px;
  }

  .radial-menu__brand {
    top: -18px;
    width: 94px;
    height: 83px;
  }

  .radial-menu__close:hover {
    color: #090c0d;
    border-color: var(--lime);
    background: var(--lime);
    transform: translate(-50%, -50%) scale(.97);
  }
}

@media (max-width: 380px), (max-height: 650px) and (max-width: 760px) {
  .radial-menu__stage {
    width: min(326px, calc(100vw - 14px));
  }

  .radial-menu__label {
    font-size: 13px;
  }

  .radial-menu__close {
    width: 92px;
    height: 92px;
    font-size: 40px;
  }

  .radial-menu__brand {
    top: -10px;
    width: 64px;
    height: 57px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .radial-menu__stage,
.radial-menu.is-open .radial-menu__stage {
    transition: none;
    transform: translate(-50%, -50%);
    filter: none;
  }
}

/* Slider controls keep identical geometry in every pointer and touch state.
   Color remains the only press feedback. */
.hero-slider-controls button,
.hero-slider-controls button:hover,
.hero-slider-controls button:focus-visible,
.hero-slider-controls button:active {
  transform: none;
}

.hero-slider-controls button:active {
  color: #07100a;
  border-color: transparent;
  background: var(--lime);
  box-shadow: 0 8px 24px var(--lime-glow);
}

.hero-slider-controls button:first-child:active {
  color: #090b0c;
  background: var(--purple);
  box-shadow: 0 8px 24px var(--purple-glow);
}

.hero-slider-controls button .hero-slider-arrow {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
}

/* Semantic icon system: concentrated in navigation and scannable lists. */
.semantic-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  border-radius: 11px;
  color: var(--lime-strong);
  background: color-mix(in srgb, currentColor 9%, rgba(15,20,22,.82));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.semantic-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.service-row h2,
.capability-item h3 {
  display: flex;
  gap: 14px;
}

.service-row h2 .semantic-icon {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  border-radius: 16px;
}

.service-row:nth-child(odd) .semantic-icon,
.capability-item:nth-child(odd) .semantic-icon {
  color: var(--purple-strong);
}

.service-row:nth-child(even) .semantic-icon,
.capability-item:nth-child(even) .semantic-icon {
  color: var(--lime-strong);
}

.capability-item h3 .semantic-icon {
  margin: -4px 0;
  border-radius: 14px;
}

.theme-toggle {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--text);
  background: var(--surface-light);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  cursor: pointer;
  transition: color var(--fast) var(--ease), border-color var(--fast) var(--ease), background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}

.theme-toggle:hover {
  color: var(--lime);
  border-color: var(--line-strong);
  background: var(--surface-hover);
}

.theme-toggle:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 3px;
}

.theme-toggle svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.theme-toggle__moon { display: none; }
html[data-theme="light"] .theme-toggle__sun { display: none; }
html[data-theme="light"] .theme-toggle__moon { display: block; }

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f5f4f1;
  --bg-elevated: #ffffff;
  --bg-soft: #eceae5;
  --surface: rgba(255, 255, 255, .76);
  --surface-strong: rgba(255, 255, 255, .94);
  --surface-light: rgba(28, 35, 48, .055);
  --surface-hover: rgba(111, 45, 204, .09);
  --glass: rgba(255, 255, 255, .78);
  --glass-bright: rgba(255, 255, 255, .92);
  --line: rgba(28, 35, 48, .14);
  --line-soft: rgba(28, 35, 48, .09);
  --line-strong: rgba(28, 35, 48, .25);
  --text: #181b21;
  --text-soft: #4f555e;
  --muted: #707780;
  --purple: #6f2dcc;
  --purple-strong: #5120aa;
  --purple-soft: rgba(111, 45, 204, .12);
  --purple-glow: rgba(111, 45, 204, .23);
  --purple-gradient-start: #8d4de5;
  --purple-gradient-end: #4d1d9e;
  --purple-gradient: linear-gradient(135deg, #8d4de5 0%, #6f2dcc 50%, #4d1d9e 100%);
  --purple-gradient-hover: linear-gradient(135deg, #7f40d8 0%, #6023ba 50%, #411783 100%);
  --purple-text-gradient: linear-gradient(100deg, #8d4de5 0%, #6b29c7 48%, #4d1d9e 100%);
  --lime: #007b52;
  --lime-strong: #006441;
  --lime-soft: rgba(0, 123, 82, .11);
  --lime-glow: rgba(0, 168, 111, .22);
  --lime-gradient-start: #00a86f;
  --lime-gradient-end: #006847;
  --lime-gradient: linear-gradient(135deg, #2acf92 0%, #00a86f 48%, #00895d 100%);
  --lime-gradient-hover: linear-gradient(135deg, #43dca2 0%, #10b97d 48%, #00865b 100%);
  --lime-text-gradient: linear-gradient(100deg, #00a56d 0%, #00885b 48%, #006847 100%);
  --danger: #bd342e;
  --success: #237a3d;
  --shadow: 0 24px 70px rgba(46, 36, 58, .13);
  --plyr-menu-background: rgba(255, 255, 255, .94);
  --plyr-menu-color: var(--text);
}

html[data-theme="light"] body {
  background:
    radial-gradient(circle at 8% 7%, rgba(111, 45, 204, .11), transparent 29rem),
    radial-gradient(circle at 90% 18%, rgba(0, 168, 111, .10), transparent 31rem),
    linear-gradient(180deg, #faf9f6 0%, var(--bg) 58%, #f0efeb 100%);
}

html[data-theme="light"] body::before {
  opacity: .58;
  background-image:
    linear-gradient(rgba(40,30,52,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(40,30,52,.028) 1px, transparent 1px);
}

html[data-theme="light"] body::after {
  opacity: .026;
  mix-blend-mode: multiply;
}

html[data-theme="light"] ::selection {
  color: #17131f;
  background: var(--lime);
}

html[data-theme="light"] .brand-logo,
html[data-theme="light"] .radial-menu__brand {
  filter: brightness(0) saturate(100%) drop-shadow(0 10px 22px rgba(36,28,48,.14));
}

html[data-theme="light"] .nav-shell {
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,247,244,.88));
  box-shadow: 0 16px 48px rgba(46,36,58,.12), inset 0 1px 0 rgba(255,255,255,.94);
}

html[data-theme="light"] .theme-toggle,
html[data-theme="light"] .menu-toggle,
html[data-theme="light"] .button,
html[data-theme="light"] .service-row .arrow,
html[data-theme="light"] .dialog-close,
html[data-theme="light"] .page-context-home,
html[data-theme="light"] .back-to-top {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88);
}

html[data-theme="light"] .button--lime,
html[data-theme="light"] .service-row:nth-child(2) .arrow,
html[data-theme="light"] .service-row:nth-child(4) .arrow {
  color: #17131f;
  box-shadow: none;
}

html[data-theme="light"] .button--purple,
html[data-theme="light"] .service-row:nth-child(1) .arrow,
html[data-theme="light"] .service-row:nth-child(5) .arrow {
  color: #ffffff;
  box-shadow: none;
}

html[data-theme="light"] .display .lime,
html[data-theme="light"] .green,
html[data-theme="light"] .capability-item .num,
html[data-theme="light"] .footer-nav a:hover {
  color: var(--lime);
}

html[data-theme="light"] .logo-panel,
html[data-theme="light"] .service-card,
html[data-theme="light"] .process-card,
html[data-theme="light"] .footer-shell,
html[data-theme="light"] .service-row,
html[data-theme="light"] .work-card {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(244,245,247,.90));
  box-shadow: 0 18px 48px rgba(46,36,58,.085), inset 0 1px 0 rgba(255,255,255,.96);
}

html[data-theme="light"] .service-card:hover,
html[data-theme="light"] .work-card:hover,
html[data-theme="light"] .service-row:hover {
  background: linear-gradient(145deg, #ffffff, #f1f4fa);
  box-shadow: 0 24px 64px rgba(46,36,58,.14);
}

html[data-theme="light"] .page-summary {
  background: rgba(255,255,255,.78);
  box-shadow: 0 16px 42px rgba(46,36,58,.075);
}

html[data-theme="light"] .service-hero-media,
html[data-theme="light"] .case-hero-media,
html[data-theme="light"] .case-gallery figure {
  background: #e9e8e4;
}

html[data-theme="light"] .logo-lockup {
  color: #4d4655;
  opacity: .72;
}

html[data-theme="light"] .logo-lockup:hover {
  background: rgba(255,255,255,.92);
  opacity: 1;
}

html[data-theme="light"] .semantic-icon {
  background: color-mix(in srgb, currentColor 8%, #ffffff);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
}

html[data-theme="light"] .service-row:nth-child(even) .semantic-icon,
html[data-theme="light"] .capability-item:nth-child(even) .semantic-icon {
  color: var(--lime);
}

html[data-theme="light"] .cta-panel {
  background:
    radial-gradient(circle at 13% 22%, rgba(111,45,204,.18), transparent 34%),
    radial-gradient(circle at 87% 76%, rgba(0,168,111,.16), transparent 36%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(242,243,245,.96));
  box-shadow: 0 24px 70px rgba(46,36,58,.12), inset 0 1px 0 #ffffff;
}

html[data-theme="light"] .cta-panel::before,
html[data-theme="light"] .cta-panel::after {
  border-color: rgba(31,24,42,.10);
}

html[data-theme="light"] .form-field input,
html[data-theme="light"] .form-field textarea,
html[data-theme="light"] .form-field select {
  color: var(--text);
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 1px 2px rgba(46,36,58,.035);
}

html[data-theme="light"] .form-field input:focus,
html[data-theme="light"] .form-field textarea:focus,
html[data-theme="light"] .form-field select:focus {
  border-color: rgba(111,45,204,.62);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(111,45,204,.11);
}

html[data-theme="light"] .form-status {
  border-color: rgba(0,123,82,.28);
  background: rgba(0,123,82,.10);
}

html[data-theme="light"] .cursor-glow {
  background: radial-gradient(circle, rgba(111,45,204,.10), transparent 68%);
}

html[data-theme="light"] .radial-menu {
  backdrop-filter: blur(22px) saturate(112%);
  -webkit-backdrop-filter: blur(22px) saturate(112%);
}

html[data-theme="light"] .radial-menu__svg {
  filter: drop-shadow(0 30px 60px rgba(44,34,54,.23));
}

html[data-theme="light"] .radial-menu__inner-ring,
html[data-theme="light"] .radial-menu__outer-ring,
html[data-theme="light"] .radial-menu__separator {
  stroke: rgba(42,32,52,.18);
}

html[data-theme="light"] .radial-menu__sector > path {
  fill: color-mix(in srgb, var(--radial-item-color, var(--lime)) 16%, rgba(255,255,255,.96) 84%);
}

html[data-theme="light"] .radial-menu__sector:is(:hover, :focus-visible, :active) > path,
html[data-theme="light"] .radial-menu__sector.is-current > path {
  fill: color-mix(in srgb, var(--radial-item-color, var(--lime)) 36%, #ffffff 64%);
}

html[data-theme="light"] .radial-menu__label,
html[data-theme="light"] .radial-menu__sector:is(:hover, :focus-visible, :active) .radial-menu__label,
html[data-theme="light"] .radial-menu__sector.is-current .radial-menu__label {
  fill: #211a28;
}

html[data-theme="light"] .radial-menu__sector:nth-child(even) .radial-menu__icon {
  stroke: var(--lime);
}

html[data-theme="light"] .radial-menu__close {
  color: #ffffff;
  border-color: rgba(90,43,166,.48);
  background:
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.24), transparent 44%),
    var(--purple-gradient);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 0 0 5px rgba(255,255,255,.55),
    0 18px 42px rgba(103,52,180,.28);
}

html[data-theme="light"] .radial-menu__close:is(:hover, :active, :focus-visible) {
  color: #17131f;
  border-color: var(--lime);
  background: var(--lime);
}

@media (max-width: 640px) {
  .theme-toggle {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }
}

@media (max-width: 640px) {
  .service-row h2,
.capability-item h3 {
    gap: 11px;
  }
}

/* Static photography enters decisively, then keeps a controlled cinematic drift
   while it remains visible. The slider and lightbox have their own motion systems. */
.cinematic-media {
  position: relative;
  overflow: hidden;
  transform-origin: center;
  will-change: transform, opacity, filter, clip-path;
}

.cinematic-media__image {
  backface-visibility: hidden;
  transform-origin: center;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .cinematic-media,
.cinematic-media__image {
    animation: none !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
  }
}

/* Light-theme contrast completion: image overlays, controls and brand marks. */

html[data-theme="light"] .hero-slider-controls button,
html[data-theme="light"] .hero-slider-controls button:disabled,
html[data-theme="light"] .hero-slider-controls button:disabled:hover {
  color: #202630;
  border-color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.90);
  box-shadow: 0 8px 24px rgba(7,12,22,.22), inset 0 1px 0 #ffffff;
}

html[data-theme="light"] .hero-slider-controls button:hover,
html[data-theme="light"] .hero-slider-controls button:focus-visible,
html[data-theme="light"] .hero-slider-controls button:active {
  color: #181b21;
  border-color: transparent;
  background: var(--lime);
  box-shadow: 0 9px 24px var(--lime-glow);
}

html[data-theme="light"] .hero-slider-controls button:first-child:hover,
html[data-theme="light"] .hero-slider-controls button:first-child:focus-visible,
html[data-theme="light"] .hero-slider-controls button:first-child:active {
  color: #ffffff;
  background: var(--purple);
  box-shadow: 0 9px 24px var(--purple-glow);
}

html[data-theme="light"] .button--purple:hover {
  color: #ffffff;
  background: var(--purple-strong);
}

html[data-theme="light"] .button--lime:hover {
  color: #181b21;
  background: var(--lime-strong);
}

html[data-theme="light"] .service-card::before {
  box-shadow: 60px 0 0 -1px rgba(0,123,82,.30);
}

html[data-theme="light"] .capability-item:nth-child(odd) .num {
  color: var(--purple);
}

html[data-theme="light"] .footer-project-link,
html[data-theme="light"] .site-nav a[aria-current="page"] {
  border-color: rgba(111,45,204,.30);
  background: rgba(111,45,204,.09);
}

html[data-theme="light"] .footer-project-link:hover,
html[data-theme="light"] .site-nav a[aria-current="page"]:hover {
  border-color: rgba(111,45,204,.52);
  background: rgba(111,45,204,.14);
}

html[data-theme="light"] .image-lightbox {
  color: #ffffff;
  --text: #ffffff;
  --text-soft: #d9dfdd;
  --line-strong: rgba(255,255,255,.24);
}

html[data-theme="light"] .image-lightbox-close,
html[data-theme="light"] .image-lightbox-nav {
  color: #ffffff;
}

/* Gemstone accent system: two clean jewel families, balanced per theme. */
.orange {
  color: transparent;
  background: var(--purple-text-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.green {
  color: transparent;
  background: var(--lime-text-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Word-reveal text owns its gradient per word. This avoids Android/WebKit
   dropping a transparent parent background after the reveal animation. */
.word-reveal .purple,
.word-reveal .orange {
  color: var(--purple);
  background: none;
  -webkit-text-fill-color: currentColor;
}

.word-reveal .lime,
.word-reveal .green {
  color: var(--lime);
  background: none;
  -webkit-text-fill-color: currentColor;
}

.word-reveal :is(.purple, .orange) > .word {
  color: transparent;
  background: var(--purple-text-gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.word-reveal :is(.lime, .green) > .word {
  color: transparent;
  background: var(--lime-text-gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Give gradient-clipped glyphs room for descenders (g, p, q, y) without
   changing the heading's baseline rhythm. */
.word-reveal .word {
  padding-bottom: .11em;
  margin-bottom: -.11em;
  overflow: visible;
  vertical-align: baseline;
}

/* Keep the secondary hero action clearly legible on the light canvas while
   preserving the colored Start a project button as the primary CTA. */
html[data-theme="light"] .hero-actions .button:not(.button--purple):not(.button--lime) {
  color: #181b21;
  border-color: rgba(24, 27, 33, .28);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 28px rgba(46, 36, 58, .1), inset 0 1px 0 #fff;
}

html[data-theme="light"] .hero-actions .button:not(.button--purple):not(.button--lime):hover {
  color: var(--purple-strong);
  border-color: color-mix(in srgb, var(--purple) 48%, rgba(24, 27, 33, .24));
  background: #fff;
  box-shadow: 0 12px 32px rgba(68, 37, 110, .14), inset 0 1px 0 #fff;
}

.button--purple,
.service-row:nth-child(1) .arrow,
.service-row:nth-child(5) .arrow,
.hero-slider-controls button:first-child:active,
.hero-slider-controls button:first-child:hover,
.hero-slider-controls button:first-child:focus-visible {
  background: var(--purple-gradient);
}

.button--purple:hover {
  background: var(--purple-gradient-hover);
}

.button--lime,
.service-row:nth-child(2) .arrow,
.service-row:nth-child(4) .arrow,
.hero-slider-controls button:active,
.hero-slider-controls button:hover,
.hero-slider-controls button:focus-visible {
  background: var(--lime-gradient);
}

.button--lime:hover {
  background: var(--lime-gradient-hover);
}

.hero-proof span::before,
.site-nav a[aria-current="page"]::before {
  background: var(--lime-gradient);
}

.hero-proof span:nth-child(2)::before {
  background: var(--purple-gradient);
}

.eyebrow::before {
  background: var(--purple-gradient);
}

.eyebrow--lime::before,
.service-card::before {
  background: var(--lime-gradient);
}

.skip-link,
.back-to-top-icon,
.image-lightbox-nav:is(:hover, :focus-visible) {
  color: #07100a;
  background: var(--lime-gradient);
}

/* The radial sectors read as alternating purple and emerald facets. */
.radial-menu__sector > path,
html[data-theme="light"] .radial-menu__sector > path {
  fill: var(--radial-item-gradient);
  opacity: .17;
  filter: saturate(1.08);
}

.radial-menu__sector:is(:hover, :focus-visible, :active) > path,
.radial-menu__sector.is-current > path,
html[data-theme="light"] .radial-menu__sector:is(:hover, :focus-visible, :active) > path,
html[data-theme="light"] .radial-menu__sector.is-current > path {
  fill: var(--radial-item-gradient);
  opacity: .48;
  filter: saturate(1.12) drop-shadow(0 0 18px color-mix(in srgb, var(--radial-item-color) 32%, transparent));
}

html[data-theme="light"] .radial-menu__sector > path {
  opacity: .14;
}

html[data-theme="light"] .radial-menu__sector:is(:hover, :focus-visible, :active) > path,
html[data-theme="light"] .radial-menu__sector.is-current > path {
  opacity: .31;
}

.radial-menu__close,
html[data-theme="light"] .radial-menu__close {
  color: #ffffff;
  border-color: color-mix(in srgb, var(--purple) 58%, rgba(255,255,255,.24));
  background:
    radial-gradient(circle at 30% 22%, rgba(255,255,255,.28), transparent 38%),
    var(--purple-gradient);
}

.radial-menu__close:is(:hover, :active, :focus-visible),
html[data-theme="light"] .radial-menu__close:is(:hover, :active, :focus-visible) {
  color: #ffffff;
  border-color: color-mix(in srgb, var(--purple) 74%, #ffffff 26%);
  background:
    radial-gradient(circle at 30% 22%, rgba(255,255,255,.32), transparent 40%),
    var(--purple-gradient-hover);
  transform: translate(-50%, -50%);
}

html[data-theme="light"] .button--purple,
html[data-theme="light"] .service-row:nth-child(1) .arrow,
html[data-theme="light"] .service-row:nth-child(5) .arrow,
html[data-theme="light"] .hero-slider-controls button:first-child:is(:hover, :focus-visible, :active) {
  color: #ffffff;
}

html[data-theme="light"] .button--lime,
html[data-theme="light"] .service-row:nth-child(2) .arrow,
html[data-theme="light"] .service-row:nth-child(4) .arrow,
html[data-theme="light"] .hero-slider-controls button:is(:hover, :focus-visible, :active) {
  color: #07100a;
}

/* Secondary editorial headings use the same gemstone language as the hero,
   while card titles remain neutral for fast scanning. */
.section-title {
  color: transparent;
  background: var(--purple-text-gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.eyebrow--lime + .section-title {
  background-image: var(--lime-text-gradient);
}

/* Animated headings clip their gradient per word to stay stable on Android. */
.word-reveal.section-title {
  color: var(--purple);
  background: none;
  -webkit-text-fill-color: currentColor;
}

.word-reveal.section-title > .word {
  color: transparent;
  background: var(--purple-text-gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.eyebrow--lime + .word-reveal.section-title > .word {
  background-image: var(--lime-text-gradient);
}

/* Android Chromium clips descenders on multiline background-clipped text.
   Use the exact gemstone midpoint there; other platforms retain gradients. */
html.is-android .section-title {
  padding-bottom: .08em;
  color: var(--purple-strong);
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  overflow: visible;
}

html.is-android .eyebrow--lime + .section-title {
  color: var(--lime-strong);
}

/* The burger keeps its three-line geometry while opening and while pressed. */
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:active,
.menu-toggle:focus-visible,
.menu-toggle[aria-expanded="true"] {
  min-width: 46px;
  min-height: 46px;
  flex: 0 0 46px;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  transform: none !important;
}

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after,
.menu-toggle[aria-expanded="true"] span,
.menu-toggle[aria-expanded="true"]::before,
.menu-toggle[aria-expanded="true"]::after {
  width: 18px;
  height: 2px;
  opacity: 1;
  transform: none !important;
}

@media (max-width: 640px) {
  .menu-toggle,
.menu-toggle:hover,
.menu-toggle:active,
.menu-toggle:focus-visible,
.menu-toggle[aria-expanded="true"] {
    min-width: 44px;
    min-height: 44px;
    flex-basis: 44px;
  }
}

/* Custom Software card — portrait PLYR framed by the video's ruby + gold light. */

@media (min-width: 641px) and (max-width: 920px) {

  .section--capabilities .service-card:nth-child(n + 3) {
    grid-column: span 3;
  }

  .section--capabilities .service-card:last-child {
    grid-column: 1 / -1;
  }
}

.service-row {
  grid-template-columns: minmax(0, .9fr) minmax(280px, .62fr) auto;
}

.work-feed-section {
  padding-bottom: clamp(72px, 9vw, 128px);
}

.work-context {
  padding-top: clamp(118px, 11vw, 152px);
}

.work-title {
  margin-top: clamp(24px, 3vw, 40px);
}

.work-feed-section--direct {
  padding-top: clamp(24px, 3vw, 38px);
}

.work-feed {
  display: grid;
  gap: clamp(42px, 7vw, 88px);
  max-width: 1040px;
}

.work-feed-project {
  scroll-margin-top: 128px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: clamp(26px, 3vw, 40px);
  background: linear-gradient(150deg, rgba(24,30,32,.88), rgba(10,14,15,.96));
  box-shadow: 0 26px 74px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.045);
}

.work-feed-gallery {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 16% 18%, color-mix(in srgb, var(--purple) 18%, transparent), transparent 44%),
    radial-gradient(circle at 86% 82%, color-mix(in srgb, var(--lime) 15%, transparent), transparent 46%),
    #070a0b;
  border-bottom: 1px solid var(--line);
}

.work-feed-gallery__track {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
  touch-action: pan-x pan-y;
}

.work-feed-gallery__track::-webkit-scrollbar { display: none; }

.work-feed-gallery__slide {
  flex: 0 0 100%;
  display: grid;
  place-items: center;
  min-width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.work-feed-gallery__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.work-feed-gallery--portrait .work-feed-gallery__slide {
  aspect-ratio: 4 / 3;
  padding: clamp(18px, 4vw, 44px);
}

.work-feed-gallery--portrait .work-feed-gallery__slide img {
  width: auto;
  max-width: 100%;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.34);
}

.work-feed-gallery__controls {
  position: absolute;
  z-index: 4;
  left: 20px;
  right: 20px;
  bottom: 18px;
  display: grid;
  grid-template-columns: 44px 1fr auto 44px;
  align-items: center;
  gap: 11px;
  pointer-events: none;
}

.work-feed-gallery__arrow,
.work-feed-gallery__dots button {
  pointer-events: auto;
}

.work-feed-gallery__arrow {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 14px;
  color: #0a0c0d;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 32px rgba(0,0,0,.26);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
}

.work-feed-gallery__arrow span {
  width: 17px;
  height: 17px;
  display: block;
  background: currentColor;
  -webkit-mask: var(--arrow-ne-mask) center / contain no-repeat;
  mask: var(--arrow-ne-mask) center / contain no-repeat;
  transform: rotate(45deg);
}

.work-feed-gallery__arrow--previous span { transform: rotate(-135deg); }

.work-feed-gallery__arrow:hover,
.work-feed-gallery__arrow:focus-visible {
  background: var(--lime-gradient);
}

.work-feed-gallery__dots {
  justify-self: center;
  display: flex;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(5,8,9,.58);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.work-feed-gallery__dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
  cursor: pointer;
}

.work-feed-gallery__dots button.is-active { background: #fff; transform: scale(1.25); }

.work-feed-gallery__count {
  min-width: 48px;
  padding: 7px 9px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  color: #fff;
  background: rgba(5,8,9,.58);
  font: 700 11px/1 var(--mono);
  text-align: center;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.work-feed-copy {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .72fr);
}

.work-feed-heading .meta {
  color: var(--lime-strong);
}

.work-feed-project:nth-child(even) .work-feed-heading .meta {
  color: var(--purple-strong);
}

.work-feed-heading h2 {
  max-width: 760px;
  margin: 9px 0 0;
  padding-bottom: .08em;
  overflow: visible;
  font-size: clamp(32px, 5vw, 62px);
  line-height: .99;
  letter-spacing: -.052em;
}

.work-feed-copy > p {
  align-self: end;
  margin: 0;
  color: var(--text-soft);
  font-size: clamp(15px, 1.65vw, 18px);
  line-height: 1.65;
}

.work-feed-copy .tag-list {
  grid-column: 1 / -1;
  margin-top: 0;
}

html[data-theme="light"] .work-feed-project {
  border-color: rgba(23,28,35,.18);
  background: linear-gradient(150deg, rgba(255,255,255,.98), rgba(240,243,247,.96));
  box-shadow: 0 24px 62px rgba(31,39,52,.12), inset 0 1px 0 #fff;
}

html[data-theme="light"] .work-feed-gallery {
  border-color: rgba(23,28,35,.16);
  background:
    radial-gradient(circle at 16% 18%, rgba(103,52,187,.18), transparent 44%),
    radial-gradient(circle at 86% 82%, rgba(0,151,99,.16), transparent 46%),
    #e9edf1;
}

@media (max-width: 920px) {
  .service-row {
    grid-template-columns: 1fr auto;
  }

  .service-row p { grid-column: 1 / -1; }
  .work-feed { max-width: 760px; }
  .work-feed-copy { grid-template-columns: 1fr; gap: 18px; }
  .work-feed-copy .tag-list { grid-column: auto; }
}

@media (max-width: 640px) {

  .service-row {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px;
  }

  .service-row h2,
.service-row p {
    grid-column: 1;
    grid-row: auto;
  }

  .work-feed {
    width: calc(100% + 2px);
    gap: 34px;
  }

  .work-context {
    padding-top: 104px;
  }

  .work-title {
    margin-top: 22px;
  }

  .work-feed-section--direct {
    padding-top: 22px;
  }

  .work-feed-project {
    scroll-margin-top: 104px;
    border-radius: 27px;
  }

  .work-feed-gallery__controls {
    left: 12px;
    right: 12px;
    bottom: 12px;
    grid-template-columns: 42px 1fr auto 42px;
    gap: 7px;
  }

  .work-feed-gallery__arrow {
    width: 42px;
    height: 42px;
  }

  .work-feed-gallery__slide { aspect-ratio: 4 / 3; }
  .work-feed-gallery--portrait .work-feed-gallery__slide { padding: 14px; }
  .work-feed-copy { padding: 24px 22px 27px; }
  .work-feed-heading h2 { font-size: clamp(31px, 10vw, 46px); line-height: 1.02; }
  .work-feed-copy > p { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .work-feed-gallery__track { scroll-behavior: auto; }
}
.service-row h2 .semantic-icon,
.capability-item h3 .semantic-icon {
  width: 64px;
  height: 48px;
  flex: 0 0 64px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.service-row h2 {
  align-items: flex-start;
  gap: 16px;
}

.service-row h2 .semantic-icon svg {
  width: 44px;
  height: 44px;
  stroke-width: 1.8;
}

.capability-item h3 .semantic-icon {
  width: 46px;
  height: 1lh;
  flex-basis: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.capability-item h3 {
  align-items: flex-start;
}

.capability-item h3 .semantic-icon svg {
  width: 34px;
  height: 34px;
  stroke-width: 1.8;
}

html[data-theme="light"] .service-row h2 .semantic-icon,
html[data-theme="light"] .capability-item h3 .semantic-icon {
  background: transparent;
  box-shadow: none;
}

@media (max-width: 640px) {
  .service-row h2 {
    gap: 14px;
  }

  .service-row h2 .semantic-icon {
    width: 58px;
    height: 44px;
    flex-basis: 58px;
    margin: 0;
    border-radius: 0;
  }

  .service-row h2 .semantic-icon svg {
    width: 42px;
    height: 42px;
  }

  .capability-item h3 .semantic-icon {
    width: 44px;
    height: 1lh;
    flex-basis: 44px;
    margin: 0;
    border-radius: 0;
  }

  .capability-item h3 .semantic-icon svg {
    width: 32px;
    height: 32px;
  }
}
.radial-menu,
html[data-theme="light"] .radial-menu {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  will-change: opacity;
  transition: opacity .2s ease, visibility .2s ease;
}

.radial-menu {
  background: #050809;
}

html[data-theme="light"] .radial-menu {
  background: #f2f1ee;
}

.radial-menu__stage,
.radial-menu.is-open .radial-menu__stage {
  filter: none;
}

.radial-menu__stage {
  opacity: 0;
  transform: translate(-50%, -50%) scale(.86) rotate(-3deg);
  will-change: transform, opacity;
  transition: transform .34s cubic-bezier(.16,1,.3,1), opacity .18s ease;
}

.radial-menu.is-open .radial-menu__stage {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1) rotate(0);
}

.radial-menu__svg,
html[data-theme="light"] .radial-menu__svg {
  filter: none;
}

body.mobile-nav-open .cursor-glow {
  display: none;
}

@media (min-width: 761px) {
  .radial-menu__stage {
    transform: translate(-50%, -50%) scale(.9) rotate(-2deg);
  }
}
+
/* v2.11 — poster-led homepage: animated star statistics and cinematic
   WebGL Core Capabilities. Manrope remains the interface face; Anton is used
   only where the composition needs a true poster voice. */
:root {
  --font-poster: "Anton", "Arial Narrow", Impact, sans-serif;
}

.hero--poster {
  position: relative;
  overflow: clip;
  padding-top: clamp(122px, 10vw, 154px);
  padding-bottom: clamp(52px, 5vw, 80px);
}

.hero--poster::before {
  content: "";
  position: absolute;
  right: -12vw;
  top: 10%;
  width: min(62vw, 900px);
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, color-mix(in srgb, var(--purple) 16%, transparent), transparent 68%);
  filter: blur(10px);
}

.section--capabilities-poster {
  position: relative;
  padding-top: clamp(72px, 7vw, 108px);
  overflow: clip;
}

.section--capabilities-poster::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-strong), transparent);
}

.capabilities-poster-slider {
  --hero-slider-radius: clamp(28px, 3vw, 46px);
  width: 100%;
}

.capabilities-poster-stage {
  aspect-ratio: 16 / 8.5;
  min-height: 590px;
  border-color: color-mix(in srgb, var(--line-strong) 72%, transparent);
  background: #050708;
  box-shadow: 0 34px 90px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.14);
}

.capabilities-poster-slider .hero-slider-controls {
  right: clamp(24px, 4vw, 56px);
  bottom: clamp(28px, 4vw, 52px);
}

.capabilities-poster-slider .hero-slider-controls button {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  color: #fff;
}

html[data-theme="light"] .hero--poster::before {
  background: radial-gradient(circle, rgba(119,61,203,.13), transparent 68%);
}
html[data-theme="light"] .capabilities-poster-stage { border-color: rgba(34,28,42,.22); box-shadow: 0 32px 70px rgba(55,42,68,.18); }

@media (max-width: 1100px) {
  .capabilities-poster-stage { min-height: 540px; }
}

@media (max-width: 920px) {
  .hero-copy { max-width: 780px; }
  .capabilities-poster-stage { aspect-ratio: 4 / 3; min-height: 0; }
}

@media (max-width: 640px) {
  .hero--poster { padding-top: 104px; padding-bottom: 48px; }

  .section--capabilities-poster { padding-top: 64px; }
  .capabilities-poster-slider { --hero-slider-radius: 27px; }
  .capabilities-poster-stage {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .capabilities-poster-slider .hero-slider-arrow { width: 18px; height: 18px; }
}
.hero-grid--signal {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 1.22fr) minmax(340px, .58fr);
  gap: clamp(28px, 4vw, 70px);
  align-items: center;
}

.hero-grid--signal .hero-copy {
  max-width: 900px;
}

.hero-hex-stat {
  position: relative;
  min-width: 0;
  display: grid;
  place-items: center;
  isolation: isolate;
}

.hero-hex-stage {
  position: relative;
  width: min(100%, 480px);
  aspect-ratio: 1.14 / 1;
  overflow: hidden;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
  background: linear-gradient(135deg, #b878ff 0%, #7241df 46%, #20e3a2 100%);
  filter: drop-shadow(0 28px 42px rgba(0,0,0,.28)) drop-shadow(0 0 32px color-mix(in srgb, var(--purple) 20%, transparent));
}

.hero-hex__field {
  position: absolute;
  inset: 2px;
  overflow: hidden;
  clip-path: inherit;
  background: #090c0d;
}

.hero-hex__segments,
.hero-hex__segment {
  position: absolute;
  inset: 0;
}

.hero-hex__segment {
  opacity: .94;
  will-change: filter, opacity;
  box-shadow: inset -1px 0 rgba(255,255,255,.14);
}

.hero-hex__segment:nth-child(1) {
  clip-path: polygon(0 0, 28% 0, 12% 100%, 0 100%);
  background: linear-gradient(155deg, #40226f, #6c36c5);
}

.hero-hex__segment:nth-child(2) {
  clip-path: polygon(28% 0, 46% 0, 30% 100%, 12% 100%);
  background: linear-gradient(155deg, #56308f, #8046dd);
}

.hero-hex__segment:nth-child(3) {
  clip-path: polygon(46% 0, 64% 0, 48% 100%, 30% 100%);
  background: linear-gradient(155deg, #7040b9, #9b5ef1);
}

.hero-hex__segment:nth-child(4) {
  clip-path: polygon(64% 0, 82% 0, 66% 100%, 48% 100%);
  background: linear-gradient(155deg, #135e49, #138c68);
}

.hero-hex__segment:nth-child(5) {
  clip-path: polygon(82% 0, 100% 0, 100% 100%, 66% 100%);
  background: linear-gradient(155deg, #0b7d5b, #20d99d);
}

.hero-hex-stat.is-armed .hero-hex__segment {
  opacity: .5;
  filter: saturate(.36) brightness(.48);
}

.hero-hex-stat.is-signaling .hero-hex__segment {
  animation: hero-hex-signal .56s cubic-bezier(.16, 1, .3, 1) forwards;
  animation-delay: calc(var(--segment-index) * 110ms);
}

.hero-hex__copy {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  padding: clamp(18px, 2.4vw, 30px) 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -50%);
  text-align: center;
  text-shadow: 0 2px 10px rgba(0,0,0,.42);
  transition: opacity .18s ease, transform .22s cubic-bezier(.16, 1, .3, 1), filter .18s ease;
}

.hero-hex__copy.is-changing {
  opacity: 0;
  filter: blur(4px);
  transform: translate(-50%, -46%) scale(.97);
}

.hero-hex__value {
  max-width: 100%;
  font: 400 clamp(58px, 6vw, 92px)/.9 var(--font-poster);
  text-wrap: balance;
}

.hero-hex-stat[data-fact-index="2"] .hero-hex__value,
.hero-hex-stat[data-fact-index="3"] .hero-hex__value {
  font-size: clamp(46px, 4.8vw, 70px);
}

.hero-hex__label {
  font: 700 clamp(10px, .95vw, 13px)/1.2 var(--font-sans);
  letter-spacing: .015em;
  text-wrap: balance;
}

@keyframes hero-hex-signal {
  0% { opacity: .5; filter: saturate(.36) brightness(.48); }
  58% { opacity: 1; filter: saturate(1.2) brightness(1.42); }
  100% { opacity: .94; filter: saturate(1) brightness(1); }
}

.capabilities-poster-stage {
  isolation: isolate;
}

.capabilities-poster-slider .hero-slider-controls button {
  border-color: rgba(255,255,255,.58);
  background: rgba(4,7,8,.22);
  backdrop-filter: none;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.capabilities-progress {
  width: 100%;
  height: 4px;
  margin-top: clamp(14px, 1.8vw, 22px);
  display: block;
  overflow: visible;
}

.capabilities-progress__track {
  width: 100%;
  height: 4px;
  overflow: visible;
}

.capabilities-progress__segment {
  fill: color-mix(in srgb, var(--line-strong) 72%, transparent);
  shape-rendering: crispEdges;
  transition: fill .32s ease;
}

.capabilities-progress__segment.is-active {
  fill: #20d99d;
  shape-rendering: crispEdges;
}

html[data-theme="light"] .hero-hex-stage {
  filter: drop-shadow(0 24px 38px rgba(69,45,88,.2)) drop-shadow(0 0 26px rgba(119,61,203,.12));
}

html[data-theme="light"] .capabilities-progress__segment {
  fill: rgba(33,28,39,.2);
}

html[data-theme="light"] .capabilities-progress__segment.is-active {
  fill: #009b6c;
}

@media (max-width: 1100px) {
  .hero-grid--signal {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .58fr);
    gap: 26px;
  }
  .hero-hex-stage { width: min(100%, 410px); }
}

@media (max-width: 860px) {
  .hero-grid--signal {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hero-grid--signal .hero-copy { max-width: 100%; }
  .hero-hex-stat { width: min(100%, 560px); margin-inline: auto; }
  .hero-hex-stage { width: min(88%, 470px); }
}

@media (max-width: 640px) {
  .hero-grid--signal { gap: 24px; }
  .hero-hex-stat { width: 100%; }
  .hero-hex-stage { width: min(92vw, 390px); }
  .hero-hex__copy { gap: 4px; }
  .hero-hex-stat[data-fact-index="2"] .hero-hex__value,
.hero-hex-stat[data-fact-index="3"] .hero-hex__value { font-size: clamp(40px, 12.8vw, 54px); }
  .capabilities-poster-slider .hero-slider-controls { right: 12px; top: 12px; bottom: auto; }
  .capabilities-poster-slider .hero-slider-controls button { width: 37px; height: 37px; }
  .capabilities-progress { margin-top: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-hex-stat.is-signaling .hero-hex__segment { animation: none !important; }
  .hero-hex__copy { transition: none; }
}
:root {
  --font-editorial: "Righteous", "Arial Rounded MT Bold", var(--font);
  --editorial-gradient: linear-gradient(100deg, #c592ff 0%, #9d64f7 29%, #7450e4 47%, #25dfa0 76%, #08af79 100%);
}
body {
  text-transform: none;
}

.contact-form :is(input, textarea) {
  text-transform: none;
}

.hero-hex-stat {
  cursor: pointer;
  border-radius: 28px;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

.hero-hex-stat:focus-visible {
  box-shadow: 0 0 0 3px var(--bg), 0 0 0 6px color-mix(in srgb, var(--lime) 72%, white);
}

.hero-hex-stat.is-manual.is-signaling .hero-hex__segment {
  animation-duration: .28s;
  animation-delay: calc(var(--segment-index) * 55ms);
}

.hero-hex-stat.is-manual .hero-hex__copy {
  transition-duration: .09s, .11s, .09s;
}

.hero-hex-stat.is-manual.is-signaling[data-direction="-1"] .hero-hex__segment {
  animation-delay: calc((4 - var(--segment-index)) * 55ms);
}

.hero-hex__copy {
  width: min(62%, 292px);
  min-height: 50%;
  gap: 8px;
  color: #fff;
}

.hero-hex__value {
  color: #fff;
  font-family: var(--font);
  font-size: clamp(72px, 7.4vw, 112px);
  font-weight: 800;
  line-height: .88;
  letter-spacing: -.065em;
  text-transform: none;
}

.hero-hex-stat[data-fact-index="1"] .hero-hex__value {
  font-size: clamp(68px, 6.8vw, 102px);
}

.hero-hex-stat[data-fact-index="4"] .hero-hex__value {
  max-width: 270px;
  font-size: clamp(46px, 4.6vw, 68px);
  line-height: .96;
  text-wrap: balance;
}

.hero-hex__label {
  max-width: 250px;
  color: #fff;
  font-size: clamp(13px, 1.15vw, 17px);
  font-weight: 700;
  line-height: 1.16;
}

.capabilities-editorial {
  position: relative;
  width: 100%;
}

.capabilities-editorial .eyebrow {
  margin-bottom: clamp(16px, 2vw, 26px);
}

.capabilities-editorial__title {
  position: relative;
  width: 100%;
  margin: 0;
  padding-inline: 0;
  overflow: visible;
  color: var(--purple);
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  font: 400 clamp(78px, 12.5vw, 188px)/.86 var(--font-editorial);
  text-transform: none;
  white-space: nowrap;
}

.capability-title__char {
  display: inline-block;
  padding-inline: .045em;
  margin-inline: -.045em;
  overflow: visible;
  color: transparent;
  background-image: linear-gradient(108deg, transparent 35%, rgba(255,255,255,.8) 50%, transparent 65%), var(--editorial-gradient);
  background-repeat: no-repeat;
  background-size: var(--title-gradient-width, 100%) 100%, var(--title-gradient-width, 100%) 100%;
  background-position: calc(var(--char-gradient-position, 0px) + var(--title-shine-x)) 50%, var(--char-gradient-position, 0px) 50%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  will-change: opacity, filter, transform;
}

.capabilities-editorial__title.is-preparing .capability-title__char {
  opacity: 0;
}

.capabilities-editorial__title.is-drawing .capability-title__char {
  animation: capability-laser-letter .52s cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: calc(var(--char-index) * 42ms);
}

@property --title-shine-x {
  syntax: '<length>';
  inherits: true;
  initial-value: -2000px;
}
.capabilities-editorial__title {
  --title-shine-x: -2000px;
}
.capabilities-editorial__title.is-drawing {
  animation: capability-title-shimmer .78s ease-in-out var(--title-shine-delay, 1s) both;
}

.capabilities-editorial__details {
  display: grid;
  justify-content: space-between;
  gap: 22px;
}

.capabilities-editorial__details p {
  color: var(--text-soft);
}

.capabilities-editorial__details a {
  position: relative;
  min-height: 46px;
  padding: 12px 18px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--text);
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: var(--surface-light);
  box-shadow: 0 10px 28px rgba(0,0,0,.14);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: none;
  transition: border-color .25s var(--ease-out), background-color .25s var(--ease-out), transform .25s var(--ease-out);
}

.capabilities-editorial__details a::after {
  content: none;
}

.capabilities-editorial__details a:hover {
  border-color: color-mix(in srgb, var(--lime) 58%, var(--line-strong));
  background: color-mix(in srgb, var(--lime) 11%, var(--surface-light));
  transform: translateY(-2px);
}

html[data-theme="light"] .capabilities-editorial__details p {
  color: #303438;
}

html[data-theme="light"] .capabilities-editorial__details a {
  color: #202329;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 26px rgba(51,42,61,.09);
}

@keyframes capability-laser-letter {
  0% {
    opacity: 0;
    filter: blur(7px) brightness(2.1);
    transform: translate3d(0, 15px, 0) scale(.965);
    text-shadow: 0 0 26px rgba(87,245,190,.9);
  }
  42% {
    opacity: 1;
    filter: blur(.8px) brightness(1.38);
    text-shadow: 0 0 17px rgba(181,116,255,.72);
  }
  100% {
    opacity: 1;
    filter: blur(0) brightness(1);
    transform: translate3d(0, 0, 0) scale(1);
    text-shadow: 0 0 0 transparent;
  }
}

@keyframes capability-title-shimmer {
  from { --title-shine-x: calc(-1 * var(--title-gradient-width)); }
  to { --title-shine-x: var(--title-gradient-width); }
}

.section--locations {
  padding-top: 0;
  padding-bottom: clamp(72px, 8vw, 124px);
}

.locations-panel {
  position: relative;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(34px, 4.5vw, 64px);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background:
    radial-gradient(circle at 78% 42%, color-mix(in srgb, var(--lime) 13%, transparent), transparent 38%),
    radial-gradient(circle at 22% 64%, color-mix(in srgb, var(--purple) 14%, transparent), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.locations-intro {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(320px, 1.2fr);
  column-gap: clamp(34px, 7vw, 110px);
  align-items: end;
}

.locations-intro .eyebrow {
  grid-column: 1 / -1;
}

.locations-intro .section-title {
  max-width: 620px;
  margin-top: 15px;
}

.locations-intro p {
  max-width: 620px;
  margin-top: 15px;
  color: var(--text-soft);
  line-height: 1.58;
}

.locations-map {
  position: relative;
  width: 100%;
  min-height: 0;
  aspect-ratio: 1000 / 520;
  overflow: hidden;
  border: 1px solid var(--line-soft);
  border-radius: clamp(24px, 3vw, 38px);
  background:
    rgba(5,8,9,.38);
  background-size: 52px 52px;
}

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

.locations-map__outline {
  fill: color-mix(in srgb, var(--purple) 10%, transparent);
  stroke: color-mix(in srgb, var(--text-soft) 38%, transparent);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.locations-map__pin-halo {
  fill: rgba(169,108,255,.2);
}

.locations-map__pin-dot {
  fill: #9557f6;
  stroke: #fff;
  stroke-width: 4;
  vector-effect: non-scaling-stroke;
}

.locations-map__pin--ohio .locations-map__pin-halo {
  fill: rgba(32,217,157,.2);
}

.locations-map__pin--ohio .locations-map__pin-dot {
  fill: #20d99d;
}

.location-marker {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  transform: translate(18px, -50%);
  color: #fff;
  text-shadow: 0 2px 9px rgba(0,0,0,.7);
}

.location-marker--ohio { left: 68.07%; top: 43.35%; }

.location-marker strong,
.location-marker small {
  display: block;
  white-space: nowrap;
}

.location-marker strong { font-size: clamp(15px, 1.35vw, 19px); font-weight: 800; }
.location-marker small { margin-top: 3px; font-size: clamp(10px, .88vw, 12px); font-weight: 700; letter-spacing: .12em; text-transform: none; opacity: .8; }

html[data-theme="light"] .locations-panel {
  background:
    radial-gradient(circle at 78% 42%, rgba(0,168,111,.13), transparent 38%),
    radial-gradient(circle at 22% 64%, rgba(141,77,229,.13), transparent 42%),
    rgba(255,255,255,.76);
}

html[data-theme="light"] .locations-map {
  background:
    rgba(247,247,245,.72);
  background-size: 52px 52px;
}

html[data-theme="light"] .locations-map__outline {
  fill: rgba(141,77,229,.08);
  stroke: rgba(40,34,49,.3);
}

html[data-theme="light"] .location-marker {
  color: #17131d;
  text-shadow: 0 1px 8px rgba(255,255,255,.82);
}

@media (max-width: 860px) {
  .capabilities-editorial__title { font-size: clamp(68px, 15vw, 128px); }
  .locations-intro { grid-template-columns: 1fr; }
  .locations-intro .section-title { max-width: 720px; }
  .locations-map { min-height: 0; }
}

@media (max-width: 640px) {
  .hero-hex__copy { width: 63%; min-height: 48%; padding-block: 12px; }
  .hero-hex__value { font-size: clamp(66px, 20vw, 84px); }
  .hero-hex-stat[data-fact-index="1"] .hero-hex__value { font-size: clamp(60px, 18vw, 76px); }
  .hero-hex-stat[data-fact-index="2"] .hero-hex__value { font-size: clamp(40px, 12.5vw, 52px); }
  .hero-hex-stat[data-fact-index="3"] .hero-hex__value { font-size: clamp(34px, 10.8vw, 45px); }
  .hero-hex-stat[data-fact-index="4"] .hero-hex__value { font-size: clamp(38px, 11.8vw, 50px); }
  .hero-hex__label { max-width: 192px; font-size: 12px; font-weight: 700; }

  .capabilities-editorial { margin-bottom: 24px; }
  .capabilities-editorial .eyebrow { margin-bottom: 13px; }
  .capabilities-editorial__title {
    min-height: .98em;
    font-size: clamp(51px, 15.7vw, 78px);
    line-height: .9;
    letter-spacing: -.055em;
  }
  .capabilities-editorial__details {
    margin-top: 16px;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 16px;
  }
  .capabilities-editorial__details p { font-size: clamp(17px, 4.9vw, 21px); line-height: 1.42; }
  .capabilities-editorial__details a { width: max-content; min-height: 44px; padding: 11px 16px; font-size: 11px; }

  .section--locations { padding-bottom: 72px; }
  .locations-panel { padding: 24px 20px; gap: 26px; border-radius: 30px; }
  .locations-intro p { margin-top: 15px; font-size: 14px; }
  .locations-map { min-height: 0; border-radius: 24px; background-size: 36px 36px; }
  .locations-map__svg { inset: 0; width: 100%; height: 100%; }
  .location-marker--ohio { left: 68.07%; top: 43.35%; }
  .location-marker { gap: 7px; }
  .location-marker { transform: translate(10px, -50%); }
  .location-marker strong { font-size: 13px; }
  .location-marker small { font-size: 9px; }
}

/* One Ohio base, a nationwide signal. */
.hero-hex-stat { container-type: inline-size; }
.hero-hex-stat .hero-hex__copy { width: 62%; max-width: 292px; gap: 10px; }
.hero-hex-stat .hero-hex__value,
.hero-hex-stat[data-fact-index="1"] .hero-hex__value {
  max-width: 100%; font-size: clamp(44px, 22cqw, 104px); line-height: 1.04;
  letter-spacing: -.045em; white-space: nowrap;
}
.hero-hex-stat[data-fact-index="2"] .hero-hex__value { font-size: clamp(24px, 9.5cqw, 45px); }
.hero-hex-stat[data-fact-index="3"] .hero-hex__value { font-size: clamp(35px, 17cqw, 78px); }
.hero-hex-stat[data-fact-index="4"] .hero-hex__value,
.hero-hex-stat[data-fact-index="5"] .hero-hex__value { font-size: clamp(24px, 10cqw, 45px); }
.hero-hex-stat .hero-hex__label { font-size: clamp(14px, 3.5cqw, 17px); line-height: 1.3; max-width: 100%; }
.hero-hex-stat[data-fact-index="0"] .hero-hex__label { order: -1; }
.reach-map-wrap { min-width: 0; }
.locations-map--reach { isolation: isolate; }
.locations-map--reach .locations-map__outline { fill: color-mix(in srgb, var(--purple) 14%, transparent); }
.reach-wave {
  fill: rgba(169,108,255,.035); stroke: #a96cff; stroke-width: 8;
  transform-origin: 0 0; opacity: 0; animation: reach-expand 7.2s linear infinite;
  animation-delay: var(--wave-delay); animation-play-state: paused;
}
.reach-wave:nth-child(even) { stroke: #20d99d; fill: rgba(32,217,157,.04); }
.is-running .reach-wave { animation-play-state: running; }
@keyframes reach-expand {
  0% { transform: scale(.02); opacity: 0; }
  8% { opacity: .8; }
  65% { opacity: .5; }
  100% { transform: scale(1); opacity: 0; }
}
.locations-map--reach .location-marker { transform: translate(-50%, 30px); text-align: center; }
.locations-map--reach .location-marker strong { font-size: clamp(14px, 1.5vw, 20px); }
.locations-map--reach .location-marker small { font-size: 14px; }
.locations-intro p { font-size: 16px; }
.contact-page-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(32px,6vw,88px); align-items: start; }
.contact-details,
.contact-page-form { min-width: 0; }
.contact-details .section-title { font-size: clamp(28px,3vw,44px); }
.contact-details dl { margin-block: 34px; }
.contact-details dl > div { padding-block: 22px; border-bottom: 1px solid var(--line-soft); }
.contact-details dt { color: var(--text-soft); font-size: 14px; letter-spacing: .12em; font-weight: 700; margin-bottom: 10px; }
.contact-details dd { margin: 0; line-height: 1.6; font-weight: 650; overflow-wrap: anywhere; }
.contact-details address { font-style: normal; }
.contact-details a { color: var(--text); text-decoration: none; }
.contact-details a:hover { color: var(--purple); }
.contact-details p { color: var(--text-soft); font-size: 16px; line-height: 1.65; }
.contact-page-form { border: 1px solid var(--line-soft); padding: clamp(22px,3vw,40px); background: color-mix(in srgb, var(--purple) 4%, transparent); }
.contact-page-form h2 { margin: 0 0 28px; font-size: clamp(24px,2.5vw,34px); line-height: 1.2; }
.contact-page-form .form-grid--compact { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: "name email" "company phone" "message message"; }
.contact-page-form input,
.contact-page-form textarea { width: 100%; min-width: 0; max-width: 100%; font-size: 16px; text-transform: none; }
.contact-page-form textarea { min-height: 190px; resize: vertical; }
.contact-page-form label { font-size: 16px; }
.contact-page-form .field-error { font-size: 14px; }
.contact-page-form .form-footer { margin-top: 20px; }
.contact-page-form .form-footer .button { max-width: 100%; white-space: normal; }
.form-delivery-note { margin-top: 20px; color: var(--text-soft); font-size: 14px; line-height: 1.65; text-transform: none; }
.contact-page-form .form-status { margin-top: 16px; font-size: 16px; line-height: 1.6; overflow-wrap: anywhere; }
.about-story { display: grid; gap: clamp(48px,7vw,96px); }
.about-story__prose { min-width: 0; max-width: 64ch; }
.about-story__prose p { margin: 0 0 24px; font-size: clamp(16px,1.45vw,20px); line-height: 1.85; color: var(--text-soft); }
.about-story__prose .button { margin-top: 8px; }
@media (max-width: 860px) {
  .contact-page-grid { grid-template-columns: minmax(0,1fr); }
  .contact-details dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .contact-details dl > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .contact-details dl { grid-template-columns: minmax(0,1fr); }
  .contact-page-form .form-grid--compact { grid-template-columns: minmax(0,1fr); grid-template-areas: "name" "email" "company" "phone" "message"; }
  .contact-page-form { padding: 22px 18px; }
  .locations-map--reach .location-marker { transform: translate(-50%, 20px); }
}

/* Clear hierarchy, shared page grid, and one Services destination. */
h1,
h2,
h1 *,
h2 * { text-transform: uppercase; }
.button,
.eyebrow,
.meta,
.tag,
.footer-nav h3,
.form-field label { letter-spacing: .02em; }
.capabilities-poster-slider { overflow: visible; contain: none; clip-path: none; -webkit-clip-path: none; border-radius: 0; margin-inline: 0; }
.capabilities-editorial { padding: 0; margin-inline: 0; text-align: left; }
.capabilities-editorial__details { grid-template-columns: minmax(0, 1fr); }
.capabilities-editorial__details p { max-width: 64ch; }
.services-overview-action { margin-top: clamp(26px, 3vw, 40px); }
.page-context { gap: 12px; }
.page-context-home { min-height: 44px; padding: 6px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 14px; font-weight: 600; color: var(--text-soft); }
.page-context-home:hover { background: transparent; }
.page-context-current { display: none; }
.locations-map,
html[data-theme="light"] .locations-map { background-size: auto; }
.services-jump-nav { display: flex; flex-wrap: wrap; }
.services-jump-nav a { display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--text); font-weight: 700; }
.services-jump-nav a:hover { border-color: var(--purple); background: var(--surface-light); }
.service-section { scroll-margin-top: 130px; }
.service-section__intro { display: grid; align-items: center; }
.service-section__intro .section-title { font-size: clamp(30px,4vw,58px); line-height: 1.12; overflow-wrap: break-word; }
.service-section__intro .service-hero-media { margin: 0; width: 100%; }
.about-story--short { display: block; }
.contact-google-map { position: relative; width: 100%; height: clamp(340px,50vw,580px); margin-top: 30px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 28px; background: var(--surface-light); }
.contact-google-map__canvas { height: 100%; width: 100%; }
.contact-google-map__canvas[hidden],
.contact-google-map__fallback[hidden] { display: none; }
.contact-google-map__fallback { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; text-align: center; padding: 28px; }
.contact-google-map__fallback p { font-size: 20px; color: var(--text-soft); }
.google-somerset-pin { position: absolute; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; color: #152323; text-align: center; font: 700 14px/1.3 Manrope,sans-serif; white-space: nowrap; }
.google-somerset-pin span { padding: 8px 12px; background: #fff; border: 2px solid #9557f6; border-radius: 10px; box-shadow: 0 3px 14px #0002; }
.google-somerset-pin svg { width: 28px; height: 38px; }
@media (max-width: 760px) { .service-section { scroll-margin-top: 100px; } }

/* Disciplined hierarchy: identity, section, supporting line, reading text, controls. */
:root {
  --type-page: clamp(3rem, 6.5vw, 5.25rem);
  --type-section: clamp(1.75rem, 3.1vw, 2.75rem);
  --type-support: clamp(1.125rem, 1.8vw, 1.5rem);
  --type-description: clamp(1.0625rem, 1.3vw, 1.1875rem);
  --section-space: clamp(48px, 6vw, 88px);
}
body::before { content: none; }
.page-hero .page-title,
.work-title.page-title { font-size: var(--type-page); font-weight: 800; line-height: 1.04; letter-spacing: -.045em; max-width: 100%; }
.hero-copy .display { font-size: clamp(2.5rem, 5.6vw, 4.75rem); line-height: 1.08; }
.page-hero .supporting-headline { max-width: 40ch; margin-top: 24px; font-size: var(--type-support); line-height: 1.4; font-weight: 700; letter-spacing: -.015em; color: var(--text); text-transform: uppercase; text-wrap: balance; }
.page-hero .lede { max-width: 64ch; margin-top: 16px; font-size: var(--type-description); line-height: 1.65; }
.page-hero { padding-bottom: clamp(32px,4vw,48px); }
.page-context-wrap { margin-bottom: 16px; }
.section-title,
.service-section__intro .section-title,
.locations-intro .section-title,
.contact-details .section-title,
.work-feed-heading h2 { font-size: var(--type-section); line-height: 1.16; letter-spacing: -.03em; }
.capabilities-editorial__title { font-size: clamp(2rem, 5vw, 4rem); line-height: 1.12; letter-spacing: -.025em; }
.capabilities-editorial { margin-bottom: 28px; }
.capabilities-editorial__details { margin-top: 16px; }
.capabilities-editorial__details p { font-size: var(--type-description); line-height: 1.6; font-weight: 500; }
.lede,
.hero-copy .lede { font-size: var(--type-description); line-height: 1.65; }
.capability-item h3,
.contact-page-form h2 { font-size: clamp(1.125rem,1.6vw,1.375rem); line-height: 1.4; letter-spacing: -.015em; }
.capability-item p,
.work-feed-copy > p,
.about-story__prose p { font-size: 1rem; line-height: 1.75; }
.eyebrow,
.meta,
.tag,
.footer-nav h3 { font-size: .8125rem; line-height: 1.5; letter-spacing: .035em; }
.button,
.services-jump-nav a,
.page-context-home,
.footer-nav a,
.back-to-top { font-size: .875rem; line-height: 1.4; font-weight: 650; letter-spacing: .015em; }
.footer-intro p,
.footer-bottom,
.form-delivery-note { font-size: .875rem; line-height: 1.65; }
.button { min-height: 46px; padding: 12px 20px; border-radius: 12px; }
.cta-panel--compact { padding: clamp(24px,4vw,48px); border-radius: 24px; box-shadow: none; }
.cta-panel::before,
.cta-panel::after { content: none; }
.cta-panel .section-title { max-width: 28ch; font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.22; }
.cta-panel--compact .cta-content p { margin-top: 12px; font-size: 1rem; line-height: 1.65; }
.cta-panel .eyebrow { margin-bottom: 12px; }
html[data-theme="light"] .page-context-home { box-shadow: none; }
.services-jump-nav { margin-bottom: 0; gap: 8px; }
.services-jump-nav a { min-height: 44px; padding: 10px 16px; background: transparent; }
.service-section { --service-accent: var(--purple-strong); --service-heading: var(--purple-text-gradient); padding-block: clamp(36px,5vw,64px); }
.service-section--emerald { --service-accent: var(--lime-strong); --service-heading: var(--lime-text-gradient); }
.service-section + .service-section { border-top: 1px solid var(--line-soft); }
.service-section__intro { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(24px,4vw,56px); margin-bottom: 24px; }
.service-section__intro .section-title { max-width: 22ch; text-wrap: balance; background: var(--service-heading); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--service-accent); }
.service-section__intro .lede { margin-top: 16px; font-size: var(--type-description); line-height: 1.65; max-width: 46ch; }
.service-section__intro .service-hero-media { aspect-ratio: 4 / 3; max-height: 350px; border-radius: 20px; box-shadow: none; }
.service-section__intro .service-hero-media::after { content: none; }
.service-section__intro .service-hero-media--portrait { width: min(100%, 420px); max-height: none; justify-self: center; }
.service-key-points { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 40px; list-style: none; margin: 0; padding: 0; }
.service-key-points li { position: relative; margin: 0; padding-left: 16px; color: var(--text-soft); font-size: 1rem; line-height: 1.65; }
.service-key-points li::before { content: ''; width: 4px; height: 4px; position: absolute; left: 0; top: .72em; background: var(--service-accent); }
.about-story--short .about-story__prose { max-width: 72ch; }
.service-columns { gap: clamp(32px,5vw,72px); }
.work-feed-copy { padding: clamp(22px,3vw,36px); gap: 20px 40px; }
.work-feed-heading h2 { margin-top: 8px; }
.locations-panel { padding: clamp(24px,4vw,48px); border-radius: 24px; }
.contact-details dd { font-size: var(--type-description); }
.contact-page-form { box-shadow: none; border-radius: 20px; }
.privacy-content h2 { font-size: clamp(1.5rem,2.2vw,1.75rem); line-height: 1.3; letter-spacing: -.02em; text-wrap: pretty; margin: 32px 0 12px; }
.privacy-content h2:first-child { margin-top: 0; }
.privacy-content p,
.privacy-content li { font-size: 1rem; line-height: 1.75; }

/* A single continuous brand line. Only the mark crossing the centre gains color. */
html[data-theme] .logo-panel.logo-panel--marquee { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; overflow: hidden; }
.logo-cloud.logo-marquee { display: flex; position: relative; width: 100%; overflow: hidden; border: 0; mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.logo-marquee__track { display: flex; flex: none; width: max-content; will-change: transform; }
.logo-marquee .logo-lockup,
html[data-theme] .logo-marquee .logo-lockup:hover {
  flex: 0 0 clamp(140px,15vw,200px); width: clamp(140px,15vw,200px); height: 112px; min-height: 0;
  position: relative; padding: 0; border: 0; opacity: 1; filter: none; background: none; transition: none;
}
html .logo-marquee .logo-lockup img {
  position: absolute; inset: 0; width: 72%; height: 52px; max-width: 150px; max-height: 52px; margin: auto;
  object-fit: contain; transform: none; transition: none;
}
html[data-theme] .logo-cloud.logo-marquee .logo-lockup img.logo-mono { filter: grayscale(1) brightness(0) invert(1); opacity: .58; }
html[data-theme="light"] .logo-cloud.logo-marquee .logo-lockup img.logo-mono { filter: grayscale(1) brightness(0); opacity: .55; }
html[data-theme] .logo-cloud.logo-marquee .logo-lockup img.logo-color { filter: var(--logo-color-filter, none); opacity: var(--logo-color-opacity, 0); }
.logo-marquee .logo-lockup--pepsi,
.logo-marquee .logo-lockup--chase { --logo-color-filter: invert(22%) sepia(98%) saturate(2168%) hue-rotate(205deg) brightness(110%) contrast(111%); }
.logo-marquee .logo-lockup--abbott { --logo-color-filter: invert(48%) sepia(99%) saturate(1894%) hue-rotate(162deg) brightness(102%) contrast(101%); }
@media (max-width: 640px) { .logo-marquee .logo-lockup,
html[data-theme] .logo-marquee .logo-lockup:hover { height: 88px; } }
@media (max-width: 760px) {
  .service-section__intro { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .service-section__intro .section-title,
.service-section__intro .lede { max-width: 100%; }
  .service-section__intro .service-hero-media { max-height: none; }
  .service-key-points { grid-template-columns: minmax(0,1fr); gap: 7px; }
  .page-hero .supporting-headline { margin-top: 20px; }
  .capabilities-editorial { margin-bottom: 22px; }
  .cta-panel .section-title { max-width: 100%; }
}

/* Stable copy geometry across every capability, independent of fitted type. */
.capabilities-editorial__title {
  height: clamp(2.24rem, 5.6vw, 4.48rem);
  min-height: clamp(2.24rem, 5.6vw, 4.48rem);
}
.capabilities-editorial__details { align-items: start; }
.capabilities-editorial__details > p { grid-area: 1 / 1; margin: 0; }
.capabilities-editorial__reserve { visibility: hidden; pointer-events: none; }
.footer-phone { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Each fact uses one shared type scale for both lines. */
.hero-hex-stat { --hex-type-size: clamp(24px, 8.6cqw, 38px); }
.hero-hex-stat[data-fact="2007"] { --hex-type-size: clamp(30px, 12cqw, 48px); }
.hero-hex-stat[data-fact="ar/vr"] { --hex-type-size: clamp(26px, 10cqw, 42px); }
.hero-hex-stat[data-fact="turnkey event"] { --hex-type-size: clamp(21px, 7.6cqw, 34px); }
.hero-hex-stat[data-fact] :is(.hero-hex__value, .hero-hex__label) {
  max-width: 100%;
  color: #fff;
  font: 750 var(--hex-type-size)/1.12 var(--font);
  letter-spacing: -.025em;
  text-transform: none;
  white-space: nowrap;
}
.mobile-hex-slot { display: none; }
@media (max-width: 700px) {
  .mobile-hex-slot { display: block; margin-top: 40px; }
  .mobile-hex-slot .hero-hex-stat { width: min(100%, 390px); margin-inline: auto; }
  .mobile-hex-slot .hero-hex-stage { width: 100%; }
  .hero-grid--signal { grid-template-columns: minmax(0, 1fr); }
}
.capabilities-poster-stage { cursor: pointer; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
.capabilities-poster-stage::after {
  content: ''; position: absolute; inset: 0 auto 0 0; width: 50%;
  background: rgba(255,255,255,.14); opacity: 0; pointer-events: none; z-index: 3;
}
.capabilities-poster-stage[data-tap-side="right"]::after { left: 50%; }
.capabilities-poster-stage.is-tap-feedback::after { animation: slider-half-feedback .26s ease-out; }
@keyframes slider-half-feedback { 0% { opacity: 0; } 20% { opacity: 1; } 100% { opacity: 0; } }

/* Keep the optional arrow implementation available without displaying it. */
.capabilities-poster-slider .hero-slider-controls[hidden] { display: none; }

/* Desktop close control stays legible over both bright and dark photography. */
@media (min-width: 701px) {
  .image-lightbox-close {
    color: #fff;
    background: #13191c;
    border-color: rgba(255,255,255,.65);
    box-shadow: 0 2px 12px rgba(0,0,0,.6);
    z-index: 5;
  }
  .image-lightbox-close:hover,
.image-lightbox-close:focus-visible {
    color: #fff;
    background: #303b40;
    border-color: #fff;
    outline: 2px solid #fff;
    outline-offset: 3px;
  }
}
