/**
 * index-v2 layout - wireframe / apple_DESIGN.md
 */

:root {
 --v2-primary: #0066cc;
 --v2-primary-focus: #0071e3;
 --v2-primary-on-dark: #2997ff;
 --v2-ink: #1d1d1f;
 --v2-muted: #7a7a7a;
 --v2-muted-dark: #333333;
 --v2-canvas: #ffffff;
 --v2-parchment: #f5f5f7;
 --v2-chip-light-bg: #eeeeee;
 --v2-chip-on-dark-bg: #ffffff14;
 --v2-hero-scrim-navy: #0a1628;
 --v2-hero-scrim-blue: #1e3558;
 --v2-hero-scrim-slate: #2e4468;
 --v2-hero-scrim-bottom: #050818;
 --v2-hairline: #e0e0e0;
 --v2-tile-dark: #272729;
 --v2-tile-dark-2: #2a2a2c;
 --v2-font-display: "SF Pro Display", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
 --v2-font-text: "SF Pro Text", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
 --v2-max: 980px;
 --v2-wide: 1120px;
 --v2-accent-gold: #c5a565;
 --v2-section-y: 80px;
 --v2-nav-glass-blur: 28px;
 --v2-nav-active-top: #3b85e8;
 --v2-nav-active-bottom: #1a69d6;
 --v2-nav-active-edge: #1558b8;
 --v2-nav-active-border: rgba(255, 255, 255, 0.28);
 /* Liquid Glass buttons (DESIGN.md) */
 --v2-glass-tint: rgba(255, 255, 255, 0.7);
 --v2-glass-tint-strong: rgba(255, 255, 255, 0.88);
 --v2-glass-tint-hero: rgba(255, 255, 255, 0.2);
 --v2-glass-tint-blue-top: rgba(0, 122, 255, 0.58);
 --v2-glass-tint-blue-bottom: rgba(0, 102, 204, 0.52);
 --v2-glass-blur: 24px;
 --v2-glass-border: rgba(255, 255, 255, 0.55);
 --v2-glass-border-hero: rgba(255, 255, 255, 0.42);
 --v2-glass-highlight: rgba(255, 255, 255, 0.92);
 --v2-glass-shadow:
 0 2px 10px rgba(0, 0, 0, 0.06),
 0 8px 24px rgba(0, 0, 0, 0.08);
 --v2-glass-shadow-light:
 0 1px 2px rgba(0, 0, 0, 0.06),
 0 4px 14px rgba(0, 0, 0, 0.1);
 --v2-glass-shadow-light-hover:
 0 2px 6px rgba(0, 0, 0, 0.08),
 0 8px 22px rgba(0, 102, 204, 0.16);
 --v2-glass-border-light: rgba(0, 102, 204, 0.28);
 --v2-glass-shadow-hover:
 0 4px 14px rgba(0, 0, 0, 0.1),
 0 14px 36px rgba(0, 102, 204, 0.14);
 --v2-glass-shadow-hero: 0 6px 28px rgba(0, 0, 0, 0.28);
 --v2-spring: cubic-bezier(0.34, 1.12, 0.64, 1);
 --v2-product-shadow: rgba(0, 0, 0, 0.22) 3px 5px 30px;
 --v2-apple-frame-radius: 22px;
 --v2-apple-frame-pad: 12px;
 --v2-nav-tab-size: 17px;
 --v2-nav-tab-pad-y: 11px;
 --v2-nav-tab-pad-x: 22px;
 --v2-nav-shell-pad: 6px;
}

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

html {
 scroll-behavior: smooth;
}

body.v2-page {
 margin: 0;
 font-family: var(--v2-font-text);
 font-size: 17px;
 font-weight: 400;
 line-height: 1.47;
 letter-spacing: -0.374px;
 color: var(--v2-ink);
 background: var(--v2-parchment);
 -webkit-font-smoothing: antialiased;
}

body.v2-page img {
 max-width: 100%;
 height: auto;
 display: block;
}

body.v2-page a {
 color: var(--v2-primary);
 text-decoration: none;
}

body.v2-page a:active {
 transform: scale(0.98);
}

.v2-wrap {
 width: min(100% - 48px, var(--v2-max));
 margin-inline: auto;
}

.v2-wrap--wide {
 width: min(100% - 48px, var(--v2-wide));
}

/* Header */
.v2-header {
 position: fixed;
 top: 16px;
 left: 0;
 right: 0;
 z-index: 100;
 padding: 0 16px;
 background: transparent;
 pointer-events: none;
}

.v2-nav {
 display: flex;
 justify-content: center;
 padding: 0;
 pointer-events: auto;
}

/* Case study back control — liquid glass, left of nav pill */
.v2-nav--with-back {
 align-items: center;
 gap: 12px;
 width: min(100%, 1040px);
 margin-inline: auto;
}

.v2-nav-back {
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 padding: 0;
 margin: 0;
 border-radius: 9999px;
 border: 1px solid var(--v2-glass-border-light);
 color: var(--v2-primary);
 text-decoration: none;
 cursor: pointer;
 background: linear-gradient(
  180deg,
  rgba(255, 255, 255, 0.98) 0%,
  var(--v2-glass-tint) 55%,
  rgba(255, 255, 255, 0.82) 100%
 );
 backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 -webkit-backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 box-shadow: var(--v2-glass-shadow-light);
 transition:
  transform 0.28s var(--v2-spring),
  box-shadow 0.28s var(--v2-spring),
  color 0.28s var(--v2-spring);
 -webkit-font-smoothing: antialiased;
}

.v2-nav-back:hover {
 color: var(--v2-primary-focus, #0071e3);
 box-shadow: var(--v2-glass-shadow-light-hover);
 text-decoration: none;
}

.v2-nav-back:active {
 transform: scale(0.96);
}

.v2-nav-back:focus-visible {
 outline: 2px solid var(--v2-primary-focus, #0071e3);
 outline-offset: 2px;
}

.v2-nav-back-icon {
 display: block;
 flex-shrink: 0;
}

/* Mobile menu toggle — hidden on desktop */
.v2-nav-toggle {
 display: none;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 padding: 0;
 margin: 0;
 border: 1px solid var(--v2-glass-border-light);
 border-radius: 9999px;
 color: var(--v2-primary);
 background: linear-gradient(
  180deg,
  rgba(255, 255, 255, 0.98) 0%,
  var(--v2-glass-tint) 55%,
  rgba(255, 255, 255, 0.82) 100%
 );
 backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 -webkit-backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 box-shadow: var(--v2-glass-shadow-light);
 cursor: pointer;
 font-family: inherit;
 transition:
  transform 0.28s var(--v2-spring),
  box-shadow 0.28s var(--v2-spring),
  color 0.28s var(--v2-spring);
 -webkit-font-smoothing: antialiased;
}

.v2-nav-toggle:hover {
 color: var(--v2-primary-focus, #0071e3);
 box-shadow: var(--v2-glass-shadow-light-hover);
}

.v2-nav-toggle:active {
 transform: scale(0.96);
}

.v2-nav-toggle:focus-visible {
 outline: 2px solid var(--v2-primary-focus, #0071e3);
 outline-offset: 2px;
}

.v2-nav-toggle-icon {
 display: block;
 flex-shrink: 0;
}

.v2-nav-backdrop {
 display: none;
}

/* Mobile expand group — shell + toggle (toggle injected by v2-nav.js) */
.v2-nav-expand {
 display: contents;
}

/* Case study detail — centered page title */
.v2-case-hero {
 text-align: center;
}

.v2-case-title {
 display: block;
 max-width: 920px;
 margin: 0 auto;
 text-align: center;
 line-height: 1.15;
}

.v2-case-lead {
 display: block;
 max-width: 720px;
 margin-inline: auto;
 text-align: center;
 color: var(--medium-gray, #7a7a83);
}

/* Project hub pages (my-bell, canada-post) */
body.v2-hub-page .v2-hub-intro {
 padding-top: 32px;
 padding-bottom: 24px;
}

body.v2-hub-page .v2-hub-meta {
 padding-top: 8px;
 padding-bottom: 32px;
}

body.v2-hub-page .v2-hub-meta-item {
 padding: 20px 16px;
}

body.v2-hub-page .v2-hub-video {
 padding-top: 8px;
 padding-bottom: 40px;
}

body.v2-hub-page .v2-hub-video-frame {
 background: #f5f5f7;
 padding: 12px;
}

body.v2-hub-page .v2-hub-video-embed {
 position: relative;
 width: 100%;
 padding-top: 56.25%;
}

body.v2-hub-page .v2-hub-video-embed iframe {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 border: 0;
 border-radius: 6px;
}

/* My Bell hub — video lead replaces top hero banner */
body.has-v2-nav.v2-hub-page--my-bell .v2-hub-video--lead {
 padding-top: 184px;
 padding-bottom: 0 !important;
 margin-bottom: 0 !important;
 overflow: visible;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-intro {
 padding-top: 48px;
 padding-bottom: 40px;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-case-title {
 margin-bottom: 28px !important;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-case-lead {
 margin-bottom: 0;
 max-width: 780px;
 line-height: 1.55;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta {
 padding-top: 48px;
 padding-bottom: 48px;
 text-align: center;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta .row {
 justify-content: center;
 max-width: 960px;
 margin-left: auto;
 margin-right: auto;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta .row > .col {
 flex: 0 0 auto;
 width: auto;
 max-width: none;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta-item {
 padding: 24px 28px;
}

body.has-v2-nav.v2-hub-page--my-bell #mybell-projects {
 padding-top: 0 !important;
}

@media (max-width: 900px) {
 body.has-v2-nav.v2-hub-page--my-bell .v2-hub-video--lead {
 padding-top: 168px;
 }

 body.has-v2-nav.v2-hub-page--my-bell .v2-hub-intro {
 padding-top: 36px;
 padding-bottom: 32px;
 }

 body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta {
 padding-top: 40px;
 padding-bottom: 36px;
 }

 body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta .row {
 max-width: 100%;
 }

 body.has-v2-nav.v2-hub-page--my-bell .v2-hub-meta .row > .col {
 flex: 0 0 100%;
 width: 100%;
 }

}

/* Hub highlights carousel — Apple “Get the highlights” pattern */
.v2-hub-highlights {
 --v2-hub-container-max: 1320px;
 --v2-hub-container-pad: 15px;
 --v2-hub-highlight-inset: calc(
  (100vw - min(100vw, var(--v2-hub-container-max))) / 2 + var(--v2-hub-container-pad)
 );
 --v2-hub-highlight-card-width: min(980px, calc(100vw - 32px));
 --v2-hub-highlight-card-height: 630px;
 --v2-hub-highlight-gap: 20px;
 --v2-hub-highlight-scroll-pad-end: max(
  var(--v2-hub-highlight-inset),
  calc(50vw - var(--v2-hub-highlight-card-width) / 2)
 );
 padding: 16px 0 72px;
 overflow-x: clip;
}

.v2-hub-highlights__header {
 max-width: var(--v2-wide);
 margin: 0 auto 40px;
 padding-inline: var(--v2-hub-highlight-inset);
}

.v2-hub-highlights__title {
 margin: 0;
 font-family: var(--v2-font-display);
 font-size: clamp(2rem, 4.8vw, 3rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.08;
 color: var(--v2-ink);
}

.v2-hub-highlights__viewport {
 width: 100%;
 overflow: visible;
}

.v2-hub-highlights__track {
 display: flex;
 gap: var(--v2-hub-highlight-gap);
 width: 100vw;
 max-width: 100vw;
 margin-left: calc(50% - 50vw);
 padding-left: var(--v2-hub-highlight-inset);
 padding-right: var(--v2-hub-highlight-scroll-pad-end);
 padding-bottom: 4px;
 overflow-x: auto;
 overflow-y: visible;
 overscroll-behavior-x: contain;
 scroll-snap-type: x mandatory;
 scroll-padding-inline: calc(50vw - var(--v2-hub-highlight-card-width) / 2);
 -webkit-overflow-scrolling: touch;
 scrollbar-width: none;
 list-style: none;
 margin-top: 0;
 margin-bottom: 0;
}

.v2-hub-highlights__track::-webkit-scrollbar {
 display: none;
}

.v2-hub-highlight-card {
 flex: 0 0 var(--v2-hub-highlight-card-width);
 scroll-snap-align: center;
 scroll-snap-stop: always;
 min-width: 0;
}

.v2-hub-highlight-card__link {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
 align-items: stretch;
 min-height: var(--v2-hub-highlight-card-height);
 border-radius: 28px;
 background: #f5f9fa;
 color: var(--v2-ink);
 text-decoration: none;
 overflow: hidden;
 transition: transform 0.35s var(--v2-spring);
}

.v2-hub-highlight-card__link:hover {
 transform: scale(1.01);
}

.v2-hub-highlight-card__copy {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 justify-content: center;
 gap: 24px;
 padding: 48px 40px 48px 48px;
}

.v2-hub-highlight-card__title {
 margin: 0;
 font-family: var(--v2-font-display);
 font-size: clamp(1.5rem, 2.6vw, 2.125rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.12;
 color: var(--v2-ink);
 text-align: left;
}

.v2-hub-highlight-card__cta {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 isolation: isolate;
 padding: 11px 22px;
 border-radius: 9999px;
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.98) 0%,
 var(--v2-glass-tint) 55%,
 rgba(255, 255, 255, 0.82) 100%
 );
 border: 1px solid var(--v2-glass-border-light);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light);
 color: var(--v2-primary);
 font-size: 17px;
 font-weight: 400;
 letter-spacing: -0.374px;
 line-height: 1.29;
 white-space: nowrap;
 -webkit-font-smoothing: antialiased;
 backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 -webkit-backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 transition:
 transform 0.35s var(--v2-spring),
 box-shadow 0.35s var(--v2-spring),
 background 0.35s var(--v2-spring),
 border-color 0.35s var(--v2-spring);
}

.v2-hub-highlight-card__link:hover .v2-hub-highlight-card__cta {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.98) 0%,
 var(--v2-glass-tint) 55%,
 rgba(255, 255, 255, 0.82) 100%
 );
 border-color: var(--v2-glass-border-light);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light-hover);
 color: var(--v2-primary-focus);
 transform: scale(1.03);
}

.v2-hub-highlight-card__visual {
 position: relative;
 display: flex;
 align-items: flex-end;
 justify-content: center;
 min-height: 0;
 overflow: hidden;
 background: #f5f9fa;
}

.v2-hub-highlight-card__visual img {
 display: block;
 width: 100%;
 height: 100%;
 max-height: var(--v2-hub-highlight-card-height);
 object-fit: contain;
 object-position: center bottom;
}

/* First card — larger billing preview (reference layout) */
.v2-hub-highlight-card:first-child .v2-hub-highlight-card__link {
 grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
}

.v2-hub-highlight-card:first-child .v2-hub-highlight-card__visual img {
 width: 110%;
 max-width: none;
 max-height: calc(var(--v2-hub-highlight-card-height) * 1.067);
 margin-right: -7%;
 transform: translateX(10%);
}

/* Second card — narrower card, larger chatbot preview */
.v2-hub-highlight-card:nth-child(2) {
 flex: 0 0 calc(var(--v2-hub-highlight-card-width) * 0.88);
}

.v2-hub-highlight-card:nth-child(2) .v2-hub-highlight-card__link {
 grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.v2-hub-highlight-card:nth-child(2) .v2-hub-highlight-card__visual img {
 width: 144%;
 max-width: none;
 max-height: calc(var(--v2-hub-highlight-card-height) * 1.44);
 transform: translateX(20%);
}

/* Third card — image size matches card 1 */
.v2-hub-highlight-card:nth-child(3) .v2-hub-highlight-card__link {
 grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
}

.v2-hub-highlight-card:nth-child(3) .v2-hub-highlight-card__visual img {
 width: 110%;
 max-width: none;
 max-height: calc(var(--v2-hub-highlight-card-height) * 1.067);
 margin-right: -7%;
 transform: translateX(10%);
}

/* Fourth card — image size matches card 1 */
.v2-hub-highlight-card:nth-child(4) .v2-hub-highlight-card__link {
 grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
}

.v2-hub-highlight-card:nth-child(4) .v2-hub-highlight-card__visual img {
 width: 110%;
 max-width: none;
 max-height: calc(var(--v2-hub-highlight-card-height) * 1.067);
 margin-right: -7%;
 transform: translateX(10%);
}

/* Fifth card — same size and image treatment as card 2 */
.v2-hub-highlight-card:nth-child(5) {
 flex: 0 0 calc(var(--v2-hub-highlight-card-width) * 0.88);
}

.v2-hub-highlight-card:nth-child(5) .v2-hub-highlight-card__link {
 grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.v2-hub-highlight-card:nth-child(5) .v2-hub-highlight-card__visual img {
 width: 144%;
 max-width: none;
 max-height: calc(var(--v2-hub-highlight-card-height) * 1.44);
 transform: translateX(20%);
}

.v2-hub-highlights__controls {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 16px;
 margin-top: 32px;
}

.v2-hub-highlights__play-pause {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 48px;
 height: 48px;
 padding: 0;
 border: 1px solid rgba(0, 0, 0, 0.08);
 border-radius: 9999px;
 background: rgba(0, 0, 0, 0.06);
 color: var(--v2-ink);
 cursor: pointer;
 transition: background 0.2s ease;
}

.v2-hub-highlights__play-pause:hover {
 background: rgba(0, 0, 0, 0.1);
}

.v2-hub-highlights__play-pause:focus-visible {
 outline: 2px solid var(--v2-primary-focus);
 outline-offset: 2px;
}

.v2-hub-highlights__icon {
 width: 18px;
 height: 18px;
 fill: currentColor;
}

.v2-hub-highlights__icon--play {
 display: none;
}

.v2-hub-highlights__play-pause.is-paused .v2-hub-highlights__icon--pause {
 display: none;
}

.v2-hub-highlights__play-pause.is-paused .v2-hub-highlights__icon--play {
 display: block;
}

.v2-hub-highlights__pager {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 min-height: 48px;
 padding: 12px 22px;
 border: 1px solid rgba(0, 0, 0, 0.08);
 border-radius: 9999px;
 background: rgba(0, 0, 0, 0.06);
}

.v2-hub-highlights__dot {
 width: 10px;
 height: 10px;
 padding: 0;
 border: 0;
 border-radius: 9999px;
 background: rgba(0, 0, 0, 0.28);
 cursor: pointer;
 transition:
 width 0.3s var(--v2-spring),
 background 0.2s ease;
}

.v2-hub-highlights__dot.is-active {
 width: 40px;
 background: rgba(0, 0, 0, 0.55);
}

.v2-hub-highlights__dot:focus-visible {
 outline: 2px solid var(--v2-primary-focus);
 outline-offset: 2px;
}

body.has-v2-nav.v2-hub-page--my-bell .v2-hub-highlights,
body.has-v2-nav.v2-hub-page--canada-post .v2-hub-highlights {
 padding-top: 8px;
}

/* Canada Post hub — hero banner offset below floating nav */
body.has-v2-nav.v2-hub-page--canada-post .big-section.top-space-margin {
 padding-top: 96px;
}

/* Canada Post hub — carousel spacing below meta */
body.has-v2-nav.v2-hub-page--canada-post #cppost-projects {
 padding-top: 0 !important;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-hub-intro {
 padding-top: 48px;
 padding-bottom: 40px;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-case-title {
 margin-bottom: 28px !important;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-case-lead {
 margin-bottom: 0;
 max-width: 780px;
 line-height: 1.55;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta {
 padding-top: 48px;
 padding-bottom: 48px;
 text-align: center;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta .row {
 justify-content: center;
 max-width: 960px;
 margin-left: auto;
 margin-right: auto;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta .row > .col {
 flex: 0 0 auto;
 width: auto;
 max-width: none;
}

body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta-item {
 padding: 24px 28px;
}

@media (max-width: 900px) {
 body.has-v2-nav.v2-hub-page--canada-post .big-section.top-space-margin {
 padding-top: 96px;
 }

 body.has-v2-nav.v2-hub-page--canada-post .v2-hub-intro {
 padding-top: 36px;
 padding-bottom: 32px;
 }

 body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta {
 padding-top: 40px;
 padding-bottom: 36px;
 }

 body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta .row {
 max-width: 100%;
 }

 body.has-v2-nav.v2-hub-page--canada-post .v2-hub-meta .row > .col {
 flex: 0 0 100%;
 width: 100%;
 }
}

/* Match Bootstrap .container breakpoints (same left edge as video) */
@media (max-width: 1399.98px) {
 .v2-hub-highlights {
 --v2-hub-container-max: 1140px;
 }
}

@media (max-width: 1199.98px) {
 .v2-hub-highlights {
 --v2-hub-container-max: 960px;
 }
}

@media (max-width: 991.98px) {
 .v2-hub-highlights {
 --v2-hub-container-max: 720px;
 }
}

@media (max-width: 767.98px) {
 .v2-hub-highlights {
 --v2-hub-container-max: 540px;
 }
}

@media (max-width: 900px) {
 .v2-hub-highlights {
 --v2-hub-highlight-card-width: calc(100vw - 32px);
 padding-bottom: 56px;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-highlights {
 /* Hub pages: .container is min(100% - 32px) centered */
 --v2-hub-highlight-inset: calc(16px + var(--v2-hub-container-pad));
 }

 .v2-hub-highlights__header {
 margin-bottom: 28px;
 }

 .v2-hub-highlight-card__link {
 grid-template-columns: 1fr;
 grid-template-rows: auto 1fr;
 min-height: 0;
 }

 .v2-hub-highlight-card__copy {
 order: 1;
 padding: 32px 24px 20px;
 gap: 20px;
 }

 .v2-hub-highlight-card__visual {
 order: 2;
 min-height: 360px;
 }

 .v2-hub-highlight-card__visual img {
 max-height: 420px;
 }

 .v2-hub-highlight-card:first-child .v2-hub-highlight-card__visual {
 min-height: 340px;
 }

 .v2-hub-highlight-card:first-child .v2-hub-highlight-card__visual img {
 width: 105%;
 max-height: 449px;
 margin-right: -3%;
 transform: translateX(10%);
 }

 .v2-hub-highlight-card:nth-child(2) {
 flex: 0 0 calc(var(--v2-hub-highlight-card-width) * 0.92);
 }

 .v2-hub-highlight-card:nth-child(2) .v2-hub-highlight-card__visual {
 min-height: 400px;
 }

 .v2-hub-highlight-card:nth-child(2) .v2-hub-highlight-card__visual img {
 width: 144%;
 max-height: 605px;
 transform: translateX(20%);
 }

 .v2-hub-highlight-card:nth-child(3) .v2-hub-highlight-card__visual {
 min-height: 340px;
 }

 .v2-hub-highlight-card:nth-child(3) .v2-hub-highlight-card__visual img {
 width: 105%;
 max-height: 449px;
 margin-right: -3%;
 transform: translateX(10%);
 }

 .v2-hub-highlight-card:nth-child(4) .v2-hub-highlight-card__visual {
 min-height: 340px;
 }

 .v2-hub-highlight-card:nth-child(4) .v2-hub-highlight-card__visual img {
 width: 105%;
 max-height: 449px;
 margin-right: -3%;
 transform: translateX(10%);
 }

 .v2-hub-highlight-card:nth-child(5) {
 flex: 0 0 calc(var(--v2-hub-highlight-card-width) * 0.92);
 }

 .v2-hub-highlight-card:nth-child(5) .v2-hub-highlight-card__visual {
 min-height: 400px;
 }

 .v2-hub-highlight-card:nth-child(5) .v2-hub-highlight-card__visual img {
 width: 144%;
 max-height: 605px;
 transform: translateX(20%);
 }
}

body.v2-hub-page .big-section.top-space-margin {
 padding-top: 24px;
 padding-bottom: 0;
}

body.v2-hub-page .atropos {
 position: relative;
 width: 100%;
 overflow: visible;
}

body.v2-hub-page .atropos-scale,
body.v2-hub-page .atropos-rotate {
 width: 100%;
}

body.v2-hub-page .atropos-inner {
 width: 100%;
 height: auto;
}

.v2-scroll-anchor,
[id^="mybell-"],
[id^="cppost-"],
#work,
#about,
#photography,
#films,
#process,
#contact {
 scroll-margin-top: 88px;
}

@media (max-width: 900px) {
 .v2-scroll-anchor,
 [id^="mybell-"],
 [id^="cppost-"],
 #work,
 #about,
 #photography,
 #films,
 #process,
 #contact {
 scroll-margin-top: 24px;
 }
}

/* Nav shell — ultra-thin liquid glass (DESIGN.md floating toolbar) */
.v2-nav-shell {
 display: inline-flex;
 align-items: center;
 gap: 4px;
 padding: var(--v2-nav-shell-pad);
 max-width: min(100%, 960px);
 border-radius: 9999px;
 isolation: isolate;
 -webkit-font-smoothing: antialiased;
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.96) 0%,
 var(--v2-glass-tint) 48%,
 rgba(255, 255, 255, 0.62) 100%
 );
 backdrop-filter: blur(var(--v2-nav-glass-blur)) saturate(185%);
 -webkit-backdrop-filter: blur(var(--v2-nav-glass-blur)) saturate(185%);
 border: 1px solid var(--v2-glass-border-light);
 box-shadow:
 inset 0 1px 0 var(--v2-glass-highlight),
 var(--v2-glass-shadow-light);
 transition:
 box-shadow 0.38s var(--v2-spring),
 background 0.38s var(--v2-spring),
 border-color 0.38s var(--v2-spring);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
 .v2-nav-shell {
 background: rgba(245, 245, 247, 0.96);
 border-color: var(--v2-hairline);
 }

 .v2-nav-indicator,
 .v2-nav-tab.is-active {
 background: linear-gradient(180deg, var(--v2-nav-active-top) 0%, var(--v2-nav-active-bottom) 100%);
 border-color: var(--v2-nav-active-border);
 box-shadow: none;
 }
}

@media (prefers-reduced-transparency: reduce) {
 .v2-nav-shell {
 background: rgba(245, 245, 247, 0.97);
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 border-color: var(--v2-hairline);
 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
 }

 .v2-nav-indicator {
 background: linear-gradient(180deg, var(--v2-nav-active-top) 0%, var(--v2-nav-active-bottom) 100%) !important;
 border-color: var(--v2-nav-active-border) !important;
 box-shadow: none !important;
 }
}

.v2-header.is-scrolled .v2-nav-shell {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.99) 0%,
 var(--v2-glass-tint-strong) 52%,
 rgba(255, 255, 255, 0.78) 100%
 );
 border-color: rgba(0, 102, 204, 0.2);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light-hover);
}

.v2-brand {
 font-family: var(--v2-font-display);
 font-size: 14px;
 font-weight: 600;
 letter-spacing: -0.224px;
 color: var(--v2-ink);
 white-space: nowrap;
 padding: 8px 12px 8px 16px;
}

.v2-brand:hover {
 color: var(--v2-ink);
}

.v2-nav-center {
 display: flex;
 align-items: center;
 gap: 4px;
 min-width: 0;
 position: relative;
}

.v2-nav-indicator {
 position: absolute;
 top: 0;
 left: 0;
 z-index: 0;
 border-radius: 9999px;
 pointer-events: none;
 opacity: 0;
 background: linear-gradient(
 180deg,
 var(--v2-nav-active-top) 0%,
 var(--v2-nav-active-bottom) 52%,
 var(--v2-nav-active-edge) 100%
 );
 border: 1px solid var(--v2-nav-active-border);
 box-shadow: none;
 transition:
 transform 0.42s var(--v2-spring),
 width 0.42s var(--v2-spring),
 height 0.42s var(--v2-spring),
 opacity 0.25s ease;
 will-change: transform, width, height;
}

.v2-nav-center.is-indicator-ready .v2-nav-indicator {
 opacity: 1;
}

.v2-nav-center.is-indicator-ready .v2-nav-tab {
 position: relative;
 z-index: 1;
 background: transparent !important;
}

body.v2-nav-loading {
 cursor: wait;
}

body.v2-nav-loading > :not(#v2-header) {
 pointer-events: none;
}

.v2-nav-center.is-indicator-ready .v2-nav-tab.is-active {
 color: #ffffff;
}

header.v2-header a.v2-nav-tab.is-active,
header.v2-header a.v2-nav-tab.is-active:hover,
body.has-v2-nav .v2-nav-center.is-indicator-ready a.v2-nav-tab.is-active {
 color: #ffffff;
}

.v2-nav-tab {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: var(--v2-nav-tab-pad-y) var(--v2-nav-tab-pad-x);
 border-radius: 9999px;
 font-size: var(--v2-nav-tab-size);
 font-weight: 500;
 letter-spacing: -0.374px;
 line-height: 1.29;
 color: var(--v2-ink);
 white-space: nowrap;
 transform-origin: center;
 border: 1px solid transparent;
 background: transparent;
 transition:
 color 0.32s var(--v2-spring),
 background 0.32s var(--v2-spring),
 border-color 0.32s var(--v2-spring),
 box-shadow 0.32s var(--v2-spring),
 transform 0.28s var(--v2-spring);
}

.v2-nav-tab:hover:not(.is-active) {
 color: var(--v2-primary);
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.72) 0%,
 rgba(255, 255, 255, 0.38) 100%
 );
 border-color: rgba(0, 102, 204, 0.12);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.v2-nav-center.is-indicator-ready .v2-nav-tab:hover:not(.is-active) {
 color: var(--v2-primary);
}

/* Fallback before indicator mounts */
.v2-nav-tab.is-active {
 background: linear-gradient(
 180deg,
 var(--v2-nav-active-top) 0%,
 var(--v2-nav-active-bottom) 52%,
 var(--v2-nav-active-edge) 100%
 );
 border-color: var(--v2-nav-active-border);
 box-shadow: none;
 color: #ffffff;
}

.v2-nav-center.is-indicator-ready .v2-nav-tab.is-active {
 background: transparent;
}

.v2-nav-tab:active {
 transform: scale(0.94);
}

.v2-nav-tab.is-tapped {
 animation: v2-nav-tap 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes v2-nav-tap {
 0% {
 transform: scale(1);
 }
 40% {
 transform: scale(0.9);
 }
 72% {
 transform: scale(1.03);
 }
 100% {
 transform: scale(1);
 }
}

.v2-nav-label--short {
 display: none;
}

.v2-nav-tab-icon {
 display: none;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 line-height: 0;
 color: inherit;
}

.v2-nav-tab-icon svg {
 display: block;
 width: 22px;
 height: 22px;
}

/* Legacy pages sharing v2 nav (index.html, etc.) */
header.v2-header {
 background: transparent !important;
 box-shadow: none !important;
 height: auto !important;
 min-height: 0 !important;
}

header.v2-header .v2-nav-tab {
 font-family: var(--v2-font-text);
 text-transform: none;
}

header.v2-header .v2-nav-tab:not(.is-active):not(:hover) {
 color: var(--v2-ink);
}

/* No top gap - floating nav overlays hero (legacy + v2 pages) */
body.has-v2-nav,
body.v2-page {
 margin-top: 0;
}

body.has-v2-nav .ipad-top-space-margin,
body.has-v2-nav .top-space-margin,
body.has-v2-nav .header-with-topbar + .top-space-margin {
 margin-top: 0 !important;
}

body.has-v2-nav .full-screen.ipad-top-space-margin,
body.has-v2-nav .full-screen.top-space-margin {
 height: 100vh !important;
 min-height: 100vh !important;
}

/* Liquid Glass pills & case CTAs (DESIGN.md — ultra-thin material, capsule) */
.v2-btn-pill,
.v2-btn-case {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 isolation: isolate;
 border-radius: 9999px;
 font-weight: 400;
 text-decoration: none;
 cursor: pointer;
 white-space: nowrap;
 -webkit-font-smoothing: antialiased;
 backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 -webkit-backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 transition:
 transform 0.35s var(--v2-spring),
 box-shadow 0.35s var(--v2-spring),
 background 0.35s var(--v2-spring),
 border-color 0.35s var(--v2-spring);
}

/* Light surfaces (parchment, white) — frosted white glass + blue label */
.v2-btn-pill:not(.v2-btn-pill--ghost):not(.v2-btn-pill--outline),
.v2-btn-case:not(.v2-btn-case--on-brand):not(.v2-btn-case--disabled) {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.98) 0%,
 var(--v2-glass-tint) 55%,
 rgba(255, 255, 255, 0.82) 100%
 );
 border: 1px solid var(--v2-glass-border-light);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light);
 color: var(--v2-primary) !important;
}

/* Dark project bands — blue liquid glass + white label */
.v2-project--dark .v2-btn-case:not(.v2-btn-case--disabled),
.v2-project--dark-2 .v2-btn-case:not(.v2-btn-case--disabled) {
 background: linear-gradient(
 165deg,
 rgba(255, 255, 255, 0.5) 0%,
 var(--v2-glass-tint-blue-top) 42%,
 var(--v2-glass-tint-blue-bottom) 100%
 );
 border: 1px solid var(--v2-glass-border);
 box-shadow:
 inset 0 1px 0 var(--v2-glass-highlight),
 var(--v2-glass-shadow);
 color: #ffffff !important;
}

.v2-btn-pill {
 padding: 8px 18px;
 font-size: 14px;
 letter-spacing: -0.224px;
 line-height: 1.29;
}

.v2-btn-case {
 padding: 11px 22px;
 margin: 0;
 font-size: 17px;
 letter-spacing: -0.374px;
 line-height: 1.29;
}

.v2-btn-pill:hover,
.v2-btn-case:hover {
 transform: scale(1.03);
}

.v2-btn-pill:not(.v2-btn-pill--ghost):not(.v2-btn-pill--outline):hover,
.v2-btn-case:not(.v2-btn-case--on-brand):not(.v2-btn-case--disabled):hover {
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light-hover);
}

.v2-project--dark .v2-btn-case:not(.v2-btn-case--disabled):hover,
.v2-project--dark-2 .v2-btn-case:not(.v2-btn-case--disabled):hover {
 box-shadow:
 inset 0 1px 0 var(--v2-glass-highlight),
 var(--v2-glass-shadow-hover);
}

.v2-btn-pill:active,
.v2-btn-case:active {
 transform: scale(0.96);
}

.v2-btn-pill:focus-visible,
.v2-btn-case:focus-visible {
 outline: 2px solid var(--v2-primary-focus, #0071e3);
 outline-offset: 2px;
}

.v2-btn-pill--ghost,
.v2-btn-case.v2-btn-pill--ghost {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.62) 0%,
 var(--v2-glass-tint) 100%
 );
 color: var(--v2-primary) !important;
 border: 1px solid rgba(0, 102, 204, 0.28);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 0.75),
 0 2px 8px rgba(0, 0, 0, 0.05);
}

.v2-btn-pill--ghost:hover {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.78) 0%,
 rgba(255, 255, 255, 0.55) 100%
 );
 border-color: rgba(0, 102, 204, 0.38);
}

.v2-btn-pill--outline {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.98) 0%,
 var(--v2-glass-tint) 55%,
 rgba(255, 255, 255, 0.82) 100%
 );
 border: 1px solid var(--v2-glass-border-light);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light);
 color: var(--v2-primary) !important;
 text-decoration: none;
}

.v2-btn-pill--outline:hover,
.v2-btn-pill--outline:focus-visible {
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-light-hover);
 border-color: var(--v2-glass-border-light);
 color: var(--v2-primary) !important;
 text-decoration: none;
}

/* Frosted white glass on brand-color tiles (Bell, Copilot, etc.) */
.v2-btn-case--on-brand {
 background: linear-gradient(
 180deg,
 var(--v2-glass-tint-strong) 0%,
 var(--v2-glass-tint) 100%
 );
 color: var(--v2-btn-on-brand-text, var(--v2-primary)) !important;
 border: 1px solid rgba(255, 255, 255, 0.72);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 0 4px 18px rgba(0, 0, 0, 0.12);
}

.v2-btn-case--on-brand:focus-visible {
 outline-color: var(--v2-btn-on-brand-text, var(--v2-primary-focus, #0071e3));
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
 .v2-btn-pill:not(.v2-btn-pill--ghost):not(.v2-btn-pill--outline),
 .v2-btn-case:not(.v2-btn-case--on-brand):not(.v2-btn-case--disabled) {
 background: var(--v2-primary);
 color: #ffffff !important;
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 }

 .v2-project--dark .v2-btn-case:not(.v2-btn-case--disabled),
 .v2-project--dark-2 .v2-btn-case:not(.v2-btn-case--disabled) {
 color: #ffffff !important;
 }

 .v2-btn-pill--ghost {
 background: transparent;
 color: var(--v2-primary) !important;
 box-shadow: inset 0 0 0 1px var(--v2-primary);
 }

 .v2-btn-pill--outline {
 background: #ffffff;
 color: var(--v2-primary) !important;
 border: 1px solid rgba(0, 102, 204, 0.28);
 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
 }

 .v2-btn-case--on-brand {
 background: #ffffff;
 color: var(--v2-btn-on-brand-text, var(--v2-primary)) !important;
 }
}

@media (prefers-reduced-transparency: reduce) {
 .v2-btn-pill,
 .v2-btn-case {
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 }

 .v2-btn-pill:not(.v2-btn-pill--ghost):not(.v2-btn-pill--outline),
 .v2-btn-case:not(.v2-btn-case--on-brand):not(.v2-btn-case--disabled) {
 background: var(--v2-primary);
 color: #ffffff !important;
 border-color: transparent;
 box-shadow: none;
 }

 .v2-btn-pill--outline {
 background: #ffffff;
 color: var(--v2-primary) !important;
 border: 1px solid rgba(0, 102, 204, 0.28);
 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
 }

 .v2-project--dark .v2-btn-case:not(.v2-btn-case--disabled),
 .v2-project--dark-2 .v2-btn-case:not(.v2-btn-case--disabled) {
 color: #ffffff !important;
 }

 .v2-btn-pill--ghost {
 background: transparent;
 color: var(--v2-primary) !important;
 box-shadow: inset 0 0 0 1px var(--v2-primary);
 }

 .v2-btn-case--on-brand {
 background: #ffffff;
 color: var(--v2-btn-on-brand-text, var(--v2-primary)) !important;
 }
}

/* Hero */
.v2-hero {
 position: relative;
 display: flex;
 align-items: center;
 justify-content: center;
 min-height: calc(100svh - 64px);
 padding: 120px 0 100px;
 text-align: center;
 background:
 radial-gradient(ellipse 70% 50% at 50% 18%, rgba(0, 102, 204, 0.06), transparent 70%),
 var(--v2-parchment);
 box-sizing: border-box;
 overflow: hidden;
}

.v2-hero--video {
 background: #000000;
 color: #ffffff;
}

.v2-hero-media {
 position: absolute;
 inset: 0;
 z-index: 0;
 overflow: hidden;
}

.v2-hero-video {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
}

.v2-hero-scrim {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 radial-gradient(
 ellipse 95% 75% at 50% 38%,
 rgba(46, 68, 104, 0.48) 0%,
 rgba(30, 53, 88, 0.32) 48%,
 transparent 72%
 ),
 linear-gradient(
 180deg,
 rgba(10, 22, 40, 0.76) 0%,
 rgba(30, 53, 88, 0.62) 40%,
 rgba(46, 68, 104, 0.54) 55%,
 rgba(18, 32, 58, 0.8) 78%,
 rgba(5, 8, 24, 0.88) 100%
 );
}

.v2-hero .v2-wrap {
 position: relative;
 z-index: 2;
 width: 100%;
}

.v2-hero--video .v2-hero-hello {
 color: rgba(255, 255, 255, 0.78);
}

.v2-hero--video .v2-hero-title-line {
 color: #ffffff;
}

.v2-hero--video .v2-hero-lead {
 color: rgba(255, 255, 255, 0.9);
}

.v2-hero--video .v2-hero-highlight {
 color: #ffffff;
 font-weight: 600;
}

.v2-hero--video .v2-hero-meta {
 color: rgba(255, 255, 255, 0.68);
}

/* Hero video — accented clear glass (white glyphs on frosted capsules) */
.v2-hero--video .v2-btn-pill:not(.v2-btn-pill--ghost) {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.88) 0%,
 rgba(255, 255, 255, 0.68) 100%
 );
 color: var(--v2-primary) !important;
 border-color: rgba(255, 255, 255, 0.75);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 var(--v2-glass-shadow-hero);
}

.v2-hero--video .v2-btn-pill:not(.v2-btn-pill--ghost):hover {
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 1),
 0 8px 32px rgba(0, 0, 0, 0.32);
}

.v2-hero--video .v2-btn-pill--ghost {
 color: #ffffff !important;
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.28) 0%,
 var(--v2-glass-tint-hero) 100%
 );
 border: 1px solid var(--v2-glass-border-hero);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 0.35),
 0 4px 16px rgba(0, 0, 0, 0.2);
}

/* Hero audio toggle — circular frosted control above hero name */
.v2-hero-audio-toggle {
 position: relative;
 z-index: 3;
 display: inline-flex;
 margin: 0 auto 24px;
 align-items: center;
 justify-content: center;
 width: 48px;
 height: 48px;
 padding: 0;
 border: 1px solid rgba(255, 255, 255, 0.38);
 border-radius: 9999px;
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.24) 0%,
 rgba(255, 255, 255, 0.1) 100%
 );
 color: #ffffff;
 cursor: pointer;
 backdrop-filter: blur(14px) saturate(1.35);
 -webkit-backdrop-filter: blur(14px) saturate(1.35);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 0.45),
 0 4px 18px rgba(0, 0, 0, 0.22);
 transition: background 0.2s ease, border-color 0.2s ease;
}

.v2-hero-audio-toggle:hover {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.34) 0%,
 rgba(255, 255, 255, 0.16) 100%
 );
 border-color: rgba(255, 255, 255, 0.55);
}

.v2-hero-audio-toggle:focus-visible {
 outline: 2px solid rgba(255, 255, 255, 0.85);
 outline-offset: 2px;
}

.v2-hero-audio-toggle__icon {
 display: none;
 width: 20px;
 height: 20px;
 fill: currentColor;
 flex-shrink: 0;
}

.v2-hero-audio-toggle.is-muted .v2-hero-audio-toggle__icon--off {
 display: block;
}

.v2-hero-audio-toggle.is-unmuted .v2-hero-audio-toggle__icon--on {
 display: block;
}

.v2-hero--video .v2-btn-pill--ghost:hover {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.38) 0%,
 rgba(255, 255, 255, 0.22) 100%
 );
 border-color: rgba(255, 255, 255, 0.55);
}

.v2-hero--audio:not(.is-playing) .v2-hero-media {
 background: url("../images/landing-loading-image.png") center / cover no-repeat;
}

.v2-hero--audio:not(.is-playing) .v2-hero-video--audio {
 opacity: 0;
}

.v2-hero--audio.is-playing .v2-hero-video--audio {
 opacity: 1;
}

.v2-hero--audio .v2-wrap {
 display: flex;
 flex-direction: column;
 align-items: center;
}

.v2-hero-audio-prompt {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 8px;
 margin-bottom: 12px;
 color: rgba(255, 255, 255, 0.9);
 transition: opacity 0.35s ease, visibility 0.35s ease;
}

.v2-hero-audio-prompt__text {
 margin: 0;
 font-size: 13px;
 font-weight: 500;
 letter-spacing: 0.03em;
 line-height: 1.3;
 text-transform: none;
 color: rgba(255, 255, 255, 0.92);
}

.v2-hero-audio-prompt__arrow {
 display: inline-flex;
 flex: 0 0 auto;
 align-items: center;
 justify-content: center;
 width: 18px;
 height: 18px;
 max-width: 18px;
 max-height: 18px;
 overflow: hidden;
 line-height: 0;
 color: rgba(255, 255, 255, 0.85);
 -webkit-animation: v2-hero-audio-arrow-bounce 1.25s ease-in-out infinite;
 animation: v2-hero-audio-arrow-bounce 1.25s ease-in-out infinite;
 will-change: transform;
}

.v2-hero-audio-prompt__arrow svg {
 display: block;
 flex: 0 0 auto;
 width: 18px !important;
 height: 18px !important;
 min-width: 18px;
 min-height: 18px;
 max-width: 18px;
 max-height: 18px;
}

@-webkit-keyframes v2-hero-audio-arrow-bounce {
 0%,
 100% {
 -webkit-transform: translate3d(0, 0, 0);
 transform: translate3d(0, 0, 0);
 opacity: 0.85;
 }

 50% {
 -webkit-transform: translate3d(0, 7px, 0);
 transform: translate3d(0, 7px, 0);
 opacity: 1;
 }
}

@keyframes v2-hero-audio-arrow-bounce {
 0%,
 100% {
 -webkit-transform: translate3d(0, 0, 0);
 transform: translate3d(0, 0, 0);
 opacity: 0.85;
 }

 50% {
 -webkit-transform: translate3d(0, 7px, 0);
 transform: translate3d(0, 7px, 0);
 opacity: 1;
 }
}

.v2-hero--audio.is-playing .v2-hero-audio-prompt {
 opacity: 0 !important;
 visibility: hidden;
 pointer-events: none;
}

.v2-hero--audio .v2-hero-audio-prompt {
 opacity: 1 !important;
}

.v2-hero--audio .v2-hero-audio-prompt__text,
.v2-hero--audio .v2-hero-audio-toggle {
 opacity: 1 !important;
 transform: none !important;
}

.v2-hero--audio .v2-hero-audio-prompt__arrow {
 -webkit-animation: v2-hero-audio-arrow-bounce 1.25s ease-in-out infinite !important;
 animation: v2-hero-audio-arrow-bounce 1.25s ease-in-out infinite !important;
}

.v2-hero-hello {
 font-size: 16px;
 letter-spacing: -0.224px;
 color: var(--v2-muted);
 margin: 0 0 20px;
}

.v2-hero-title {
 display: contents;
}

.v2-hero-title-line {
 display: block;
 font-family: var(--v2-font-display);
 font-size: clamp(40px, 6.5vw, 64px);
 font-weight: 600;
 line-height: 1.05;
 letter-spacing: -0.32px;
 margin: 0 0 6px;
 color: var(--v2-ink);
}

.v2-hero-title-line:last-of-type {
 margin-bottom: 24px;
}

.v2-hero-lead {
 font-family: var(--v2-font-display);
 font-size: clamp(22px, 3.2vw, 32px);
 font-weight: 400;
 line-height: 1.16;
 letter-spacing: 0.12px;
 color: var(--v2-muted-dark);
 margin: 0 auto 28px;
 max-width: 780px;
}

.v2-hero-highlight {
 color: var(--v2-ink);
 font-weight: 500;
}

.v2-hero-meta {
 font-size: 16px;
 color: var(--v2-muted);
 margin: 0 0 24px;
}

.v2-hero-links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 14px 18px;
 margin-bottom: 0;
}

.v2-hero-links .v2-btn-pill {
 padding: 10px 22px;
 font-size: 16px;
}

.v2-clients {
 padding: 48px 0 64px;
 background: #000000;
}

.v2-clients .v2-wrap {
 text-align: center;
}

.v2-clients img {
 margin-inline: auto;
 opacity: 1;
 filter: none;
}

.v2-clients .logo-bar-img-mobile {
 display: none;
}

.v2-clients .logo-bar-img-desktop {
 max-width: 100%;
 height: auto;
}

@media (max-width: 767px) {
 .v2-clients .logo-bar-img-desktop {
 display: none;
 }

 .v2-clients .logo-bar-img-mobile {
 display: block;
 margin-inline: auto;
 }
}

.v2-clients-caption {
 margin: 16px 0 0;
 font-size: 14px;
 line-height: 1.45;
 color: rgba(255, 255, 255, 0.65);
 letter-spacing: -0.14px;
}

/* What you're hiring — two-column intro under hero */
.v2-hiring {
 background: #ffffff;
 padding: clamp(64px, 8vw, 96px) 0;
}

.v2-hiring-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
 grid-template-rows: auto auto;
 column-gap: clamp(40px, 5vw, 72px);
 row-gap: 28px;
 align-items: start;
}

.v2-hiring-eyebrow {
 grid-column: 1;
 grid-row: 1;
 margin: 0;
 padding-top: 4px;
 font-size: 12px;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: #7a7a7a;
}

.v2-hiring-main {
 grid-column: 1;
 grid-row: 2;
 display: flex;
 flex-direction: column;
 gap: 28px;
 min-width: 0;
}

.v2-hiring-title {
 margin: 0;
 max-width: 18ch;
 font-size: clamp(32px, 4.2vw, 44px);
 font-weight: 600;
 line-height: 1.12;
 letter-spacing: -0.03em;
 color: #1d1d1f;
}

.v2-hiring-stats {
 grid-column: 2;
 grid-row: 2;
 align-self: start;
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 gap: 12px;
 margin: 0;
}

.v2-hiring-body p {
 margin: 0 0 20px;
 font-size: 17px;
 line-height: 1.55;
 color: #333333;
}

.v2-hiring-body p:last-child {
 margin-bottom: 0;
}

.v2-hiring-body strong {
 color: #1d1d1f;
 font-weight: 600;
}

.v2-hiring-stats .v2-essential-card {
 min-height: 0;
 flex: 0 0 auto;
 width: 100%;
 padding: 24px 20px 28px;
}

.v2-hiring-stats .v2-essential-card__text {
 font-size: clamp(17px, 1.65vw, 19px);
 line-height: 1.4;
}

@media (max-width: 900px) {
 .v2-hiring-grid {
 grid-template-columns: 1fr;
 grid-template-rows: auto;
 row-gap: 28px;
 }

 .v2-hiring-eyebrow,
 .v2-hiring-main,
 .v2-hiring-stats {
 grid-column: 1;
 grid-row: auto;
 }

 .v2-hiring-stats {
 align-self: auto;
 justify-content: flex-start;
 max-width: 520px;
 }

 .v2-hiring-title {
 max-width: none;
 }
}

/* Selected work — centered intro before case studies */
.v2-selected-work {
 background: #ffffff;
 padding: clamp(64px, 8vw, 96px) 0;
 text-align: center;
}

.v2-selected-work-inner {
 max-width: 920px;
 margin: 0 auto;
}

.v2-selected-work .v2-hiring-eyebrow {
 display: block;
 margin: 0 0 20px;
 padding-top: 4px;
}

.v2-selected-work .v2-hiring-title {
 max-width: 22ch;
 margin: 0 auto;
}

@media (max-width: 900px) {
 .v2-selected-work .v2-hiring-title {
 max-width: none;
 }
}

/* How I work — light band after case studies */
.v2-how-work {
 background: #ffffff;
 padding: clamp(72px, 9vw, 112px) 0;
 color: var(--v2-ink);
}

.v2-how-work-eyebrow {
 margin: 0 0 28px;
 padding-top: 4px;
 font-size: 12px;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: #7a7a7a;
}

.v2-how-work-title {
 margin: 0 0 20px;
 max-width: 22ch;
 font-family: var(--v2-font-display);
 font-size: clamp(30px, 3.8vw, 44px);
 font-weight: 600;
 line-height: 1.12;
 letter-spacing: -0.02em;
 color: var(--v2-ink);
}

.v2-how-work-title span {
 display: block;
}

.v2-how-work-lead {
 margin: 0 0 clamp(40px, 5vw, 56px);
 max-width: 44ch;
 font-size: 17px;
 line-height: 1.5;
 color: var(--v2-muted-dark);
}

.v2-how-work-panel {
 border: 1px solid var(--v2-hairline);
 border-radius: 16px;
 background: var(--v2-parchment);
 overflow: hidden;
}

.v2-how-work-steps {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 margin: 0;
 padding: 0;
 list-style: none;
}

.v2-how-work-step {
 padding: clamp(28px, 3vw, 40px) clamp(20px, 2.4vw, 32px);
 border-right: 1px solid var(--v2-hairline);
}

.v2-how-work-step:last-child {
 border-right: none;
}

.v2-how-work-step-num {
 display: block;
 margin: 0 0 20px;
 font-family: var(--v2-font-display);
 font-size: clamp(52px, 5.5vw, 76px);
 font-weight: 600;
 line-height: 1;
 letter-spacing: -0.03em;
 color: rgba(0, 0, 0, 0.08);
}

.v2-how-work-step-title {
 margin: 0 0 14px;
 font-size: 17px;
 font-weight: 600;
 line-height: 1.3;
 letter-spacing: -0.02em;
 color: var(--v2-ink);
}

.v2-how-work-step-text {
 margin: 0;
 font-size: 14px;
 line-height: 1.55;
 color: var(--v2-muted-dark);
}

@media (max-width: 1024px) {
 .v2-how-work-steps {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .v2-how-work-step:nth-child(2) {
 border-right: none;
 }

 .v2-how-work-step:nth-child(1),
 .v2-how-work-step:nth-child(2) {
 border-bottom: 1px solid var(--v2-hairline);
 }
}

@media (max-width: 640px) {
 .v2-how-work-title {
 max-width: none;
 }

 .v2-how-work-steps {
 grid-template-columns: 1fr;
 }

 .v2-how-work-step {
 border-right: none;
 border-bottom: 1px solid var(--v2-hairline);
 }

 .v2-how-work-step:last-child {
 border-bottom: none;
 }
}

/* Project blocks */
.v2-project {
 padding: var(--v2-section-y) 0;
}

.v2-project--dark {
 background: var(--v2-tile-dark);
 color: #fff;
}

.v2-project--dark-2 {
 background: var(--v2-tile-dark-2);
}

.v2-project--bell {
 --v2-btn-on-brand-text: #0066cc;
 background: #0066cc;
 color: #ffffff;
}

.v2-project--bell .v2-metric-label {
 color: rgba(255, 255, 255, 0.75);
}

.v2-project--bell .v2-project-desc {
 color: rgba(255, 255, 255, 0.85);
}

.v2-project--bell .v2-project-title,
.v2-project--bell .v2-metric-value {
 color: #ffffff;
}

.v2-metrics--cards {
 --v2-metric-card-bg: rgba(255, 255, 255, 0.92);
 --v2-metric-card-highlight: rgba(255, 255, 255, 1);
 --v2-metric-card-shadow:
 0 2px 6px rgba(0, 0, 0, 0.04),
 0 8px 20px rgba(0, 0, 0, 0.06);
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 12px;
 margin: 0 0 32px;
}

.v2-metrics--cards li {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 padding: 20px 18px 22px;
 border-radius: 16px;
 background: var(--v2-metric-card-bg);
 box-shadow: var(--v2-metric-card-shadow);
}

.v2-metrics--cards .v2-metric-value {
 font-family: var(--v2-font-display);
 font-size: clamp(24px, 2.4vw, 28px);
 font-weight: 600;
 line-height: 1.1;
 letter-spacing: -0.28px;
 margin: 0 0 8px;
}

.v2-metrics--cards .v2-metric-label {
 font-family: var(--v2-font-text);
 font-size: 13px;
 line-height: 1.35;
 letter-spacing: -0.224px;
}

/* Frosted cards on brand / dark bands */
.v2-project--bell .v2-metrics--cards,
.v2-project--copilot .v2-metrics--cards,
.v2-project--lucky .v2-metrics--cards,
.v2-project--dark .v2-metrics--cards {
 --v2-metric-card-bg: rgba(255, 255, 255, 0.12);
 --v2-metric-card-highlight: rgba(255, 255, 255, 0.16);
 --v2-metric-card-shadow: inset 0 1px 0 var(--v2-metric-card-highlight);
}

/* Canada Post — match tag / badge blue tint */
.v2-project--canada-post .v2-metrics--cards {
 --v2-metric-card-bg: var(--v2-chip-on-dark-bg, rgba(255, 255, 255, 0.08));
 --v2-metric-card-highlight: rgba(255, 255, 255, 0.14);
 --v2-metric-card-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.v2-project--bell .v2-metrics--cards .v2-metric-label,
.v2-project--canada-post .v2-metrics--cards .v2-metric-label,
.v2-project--copilot .v2-metrics--cards .v2-metric-label,
.v2-project--lucky .v2-metrics--cards .v2-metric-label,
.v2-project--dark .v2-metrics--cards .v2-metric-label {
 color: rgba(255, 255, 255, 0.72);
}

/* Soft white cards on light / parchment bands */
.v2-project--virgin .v2-metrics--cards,
.v2-project--light .v2-metrics--cards,
.v2-project--parchment .v2-metrics--cards {
 --v2-metric-card-bg: rgba(255, 255, 255, 0.92);
 --v2-metric-card-highlight: rgba(255, 255, 255, 1);
 --v2-metric-card-shadow:
 0 2px 6px rgba(0, 0, 0, 0.04),
 0 8px 20px rgba(0, 0, 0, 0.06);
}

.v2-project--virgin .v2-metrics--cards .v2-metric-label,
.v2-project--light .v2-metrics--cards .v2-metric-label,
.v2-project--parchment .v2-metrics--cards .v2-metric-label {
 color: var(--v2-muted);
}

@media (max-width: 900px) {
 .v2-metrics--cards {
 grid-template-columns: repeat(4, minmax(132px, 1fr));
 overflow-x: auto;
 overflow-y: visible;
 overscroll-behavior-x: contain;
 -webkit-overflow-scrolling: touch;
 scrollbar-width: none;
 padding-bottom: 12px;
 }

 /* Drop-shadow cards on light bands — room inside scrollport so shadows aren't clipped */
 .v2-project--virgin .v2-metrics--cards,
 .v2-project--light .v2-metrics--cards,
 .v2-project--parchment .v2-metrics--cards {
 padding-bottom: 28px;
 margin-bottom: -16px;
 }

 .v2-metrics--cards::-webkit-scrollbar {
 display: none;
 }

 .v2-metrics--cards li {
 min-width: 132px;
 }
}

/* Bell — Apple Music-style expandable feature card */
.v2-project--bell-preview {
 background: #ffffff;
 color: var(--v2-ink);
}

.v2-project--bell-preview .v2-tag {
 background: var(--v2-chip-light-bg);
 color: var(--v2-ink);
}

.v2-am-feature {
 --v2-am-fade-duration: 0.28s;
 --v2-am-fade-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.v2-am-feature__tags {
 margin: 0 0 16px;
}

.v2-am-feature__proof {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 20px 24px;
 margin: 0 0 20px;
}

.v2-am-feature__proof .v2-proof-rating,
.v2-am-feature__proof .v2-proof-text {
 color: var(--v2-ink);
}

.v2-am-feature__proof .v2-proof-highlight {
 color: #0066cc;
}

.v2-am-feature__card {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 box-sizing: border-box;
 height: 715px;
 min-height: 715px;
 border-radius: 28px;
 background: #f5f5f7;
 padding: 48px;
 padding-bottom: 64px;
 overflow: hidden;
 transition: background var(--v2-am-fade-duration) var(--v2-am-fade-ease);
}

.v2-am-feature.is-expanded .v2-am-feature__card {
 --v2-btn-on-brand-text: #0066cc;
 background: #0066cc;
 justify-content: stretch;
 padding-bottom: 0;
}

.v2-am-feature.is-expanded .v2-am-feature__layout {
 flex: 1;
 align-items: stretch;
 min-height: 0;
}

.v2-am-feature.is-expanded .v2-am-feature__body {
 color: #ffffff;
}

.v2-am-feature.is-expanded .v2-am-feature__accent {
 color: #93c5fd;
}

.v2-am-feature.is-expanded .v2-am-feature__tags .v2-tag {
 background: rgba(255, 255, 255, 0.14);
 color: rgba(255, 255, 255, 0.92);
}

.v2-am-feature.is-expanded .v2-am-feature__proof .v2-proof-rating,
.v2-am-feature.is-expanded .v2-am-feature__proof .v2-proof-text {
 color: #ffffff;
}

.v2-am-feature.is-expanded .v2-am-feature__proof .v2-proof-highlight {
 color: #93c5fd;
}

.v2-am-feature.is-expanded .v2-am-feature__proof .v2-proof-icon {
 filter: brightness(0) invert(1);
 opacity: 1;
}

.v2-am-feature.is-expanded .v2-am-feature__toggle {
 background: rgba(255, 255, 255, 0.16);
 color: #ffffff;
}

.v2-am-feature.is-expanded .v2-am-feature__toggle:hover {
 background: rgba(255, 255, 255, 0.24);
}

.v2-am-feature.is-expanded .v2-am-feature__toggle:focus-visible {
 outline-color: #ffffff;
}

.v2-am-feature__layout {
 display: grid;
 grid-template-columns: minmax(200px, 34%) minmax(0, 1fr);
 gap: clamp(24px, 4vw, 56px);
 align-items: center;
 flex: 1;
 min-height: 0;
 height: 100%;
}

.v2-am-feature__lead {
 display: flex;
 align-items: center;
 justify-content: center;
 height: 100%;
 min-height: 0;
}

.v2-am-feature__frame {
 position: relative;
 width: 100%;
 max-width: 360px;
 max-height: 100%;
 padding: 14px;
 border-radius: 24px;
 background: #ffffff;
 box-shadow:
 0 2px 8px rgba(0, 0, 0, 0.08),
 0 18px 40px rgba(0, 0, 0, 0.12);
 transition:
 background var(--v2-am-fade-duration) var(--v2-am-fade-ease),
 padding var(--v2-am-fade-duration) var(--v2-am-fade-ease),
 box-shadow var(--v2-am-fade-duration) var(--v2-am-fade-ease);
}

.v2-am-feature.is-expanded .v2-am-feature__frame {
 padding: 0;
 background: transparent;
 box-shadow: none;
}

.v2-am-feature__media {
 display: block;
 width: 100%;
 height: auto;
 max-height: 520px;
 object-fit: contain;
 border-radius: 16px;
 transition: opacity var(--v2-am-fade-duration) var(--v2-am-fade-ease);
}

.v2-am-feature__media--preview {
 opacity: 1;
 visibility: visible;
}

.v2-am-feature__media--expanded {
 position: absolute;
 inset: 0;
 margin: auto;
 max-height: 560px;
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 border-radius: 0;
}

.v2-am-feature.is-expanded .v2-am-feature__lead {
 position: relative;
 align-self: stretch;
 height: auto;
 min-height: 0;
 margin-bottom: 0;
}

.v2-am-feature.is-expanded .v2-am-feature__frame {
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 display: block;
 width: 100%;
 height: auto;
 max-width: min(460px, 42vw);
 max-height: none;
}

.v2-am-feature.is-expanded .v2-am-feature__media--preview {
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 width: 100%;
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
}

.v2-am-feature.is-expanded .v2-am-feature__media--expanded {
 position: relative;
 inset: auto;
 display: block;
 width: 100%;
 height: auto;
 max-height: min(720px, calc(715px - 48px));
 margin: 0;
 object-fit: contain;
 object-position: bottom center;
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
}

.v2-am-feature--fading-out:not(.is-expanded) .v2-am-feature__summary,
.v2-am-feature--fading-out:not(.is-expanded) .v2-am-feature__media--preview {
 opacity: 0;
 pointer-events: none;
}

.v2-am-feature--fading-out.is-expanded .v2-am-feature__detail,
.v2-am-feature--fading-out.is-expanded .v2-am-feature__media--expanded {
 opacity: 0;
 pointer-events: none;
}

.v2-am-feature--fading-in.is-expanded .v2-am-feature__detail,
.v2-am-feature--fading-in.is-expanded .v2-am-feature__media--expanded {
 opacity: 0;
 pointer-events: none;
}

.v2-am-feature--fading-in:not(.is-expanded) .v2-am-feature__summary,
.v2-am-feature--fading-in:not(.is-expanded) .v2-am-feature__media--preview {
 opacity: 0;
 pointer-events: none;
}

.v2-am-feature__copy {
 position: relative;
 align-self: stretch;
 width: 100%;
 height: 100%;
 min-height: 0;
 padding-right: 44px;
}

.v2-am-feature__summary,
.v2-am-feature__detail {
 position: absolute;
 inset: 0 44px 0 0;
 transition: opacity var(--v2-am-fade-duration) var(--v2-am-fade-ease);
}

.v2-am-feature__summary {
 opacity: 1;
 visibility: visible;
 display: flex;
 flex-direction: column;
 justify-content: center;
}

.v2-am-feature__detail {
 opacity: 0;
 visibility: hidden;
 overflow: hidden;
 pointer-events: none;
 display: flex;
 flex-direction: column;
 justify-content: center;
}

.v2-am-feature.is-expanded .v2-am-feature__summary {
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
}

.v2-am-feature.is-expanded .v2-am-feature__detail {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
}

.v2-am-feature__eyebrow {
 margin: 0 0 8px;
 font-size: 17px;
 line-height: 1.35;
 letter-spacing: -0.022em;
 color: #6e6e73;
}

.v2-am-feature__title {
 margin: 0;
 font-size: clamp(28px, 3.6vw, 40px);
 font-weight: 600;
 line-height: 1.08;
 letter-spacing: -0.03em;
 color: var(--v2-ink);
}

.v2-am-feature__title-accent {
 color: #0066cc;
}

.v2-am-feature__body {
 margin: 0 0 16px;
 font-size: clamp(16px, 1.8vw, 19px);
 font-weight: 600;
 line-height: 1.45;
 letter-spacing: -0.022em;
 color: var(--v2-ink);
}

.v2-am-feature__accent {
 color: #0066cc;
}

.v2-am-feature__detail .v2-btn-case {
 align-self: flex-start;
 margin-top: 4px;
}

.v2-am-feature__toggle {
 position: absolute;
 right: clamp(18px, 2.5vw, 24px);
 bottom: clamp(18px, 2.5vw, 24px);
 z-index: 2;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 32px;
 height: 32px;
 margin: 0;
 padding: 0;
 border: none;
 border-radius: 50%;
 background: rgba(0, 0, 0, 0.08);
 color: var(--v2-ink);
 cursor: pointer;
 transition:
 background 0.25s ease,
 transform 0.25s var(--v2-spring);
}

.v2-am-feature__toggle:hover {
 background: rgba(0, 0, 0, 0.12);
}

.v2-am-feature__toggle:focus-visible {
 outline: 2px solid var(--v2-primary-focus, #0071e3);
 outline-offset: 2px;
}

.v2-am-feature__toggle:active {
 transform: scale(0.94);
}

.v2-am-feature__toggle-icon {
 width: 16px;
 height: 16px;
}

.v2-am-feature__toggle-icon--close {
 display: none;
}

.v2-am-feature.is-expanded .v2-am-feature__toggle-icon--plus {
 display: none;
}

.v2-am-feature.is-expanded .v2-am-feature__toggle-icon--close {
 display: block;
}

.v2-am-feature__toggle-label {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

@media (prefers-reduced-motion: reduce) {
 .v2-am-feature__card,
 .v2-am-feature__copy,
 .v2-am-feature__summary,
 .v2-am-feature__detail,
 .v2-am-feature__media,
 .v2-am-feature__frame {
 transition: none;
 }
}

@media (max-width: 900px) {
 .v2-am-feature__card {
 height: auto;
 min-height: 715px;
 padding: 32px;
 padding-bottom: 64px;
 }

 .v2-am-feature.is-expanded .v2-am-feature__card {
 padding-bottom: 0;
 }

 .v2-am-feature.is-expanded .v2-am-feature__media--expanded {
 max-height: min(480px, calc(715px - 32px));
 }

 .v2-am-feature__layout {
 grid-template-columns: 1fr;
 gap: 24px;
 height: auto;
 }

 .v2-am-feature__copy {
 min-height: 280px;
 height: auto;
 padding-right: 0;
 }

 .v2-am-feature__media {
 max-height: 360px;
 }

 .v2-am-feature__media--expanded {
 max-height: 400px;
 }

 .v2-am-feature__proof {
 flex-direction: column;
 align-items: flex-start;
 gap: 16px;
 }

 .v2-am-feature__summary,
 .v2-am-feature__detail {
 inset: 0;
 right: 0;
 }
}

/* Case study product shots — frameless on index-v2/work */
.v2-project .v2-project-visual:not(.v2-project-visual--placeholder) {
 padding: 0;
 background: transparent;
 border-radius: 0;
 box-shadow: none;
}

.v2-project .v2-project-visual:not(.v2-project-visual--placeholder) img {
 width: 100%;
 border-radius: 0;
 box-shadow: none;
 border: none;
 display: block;
}

/* Apple-style white frame — only where v2-apple-product-frame is used (e.g. case study pages) */
.v2-apple-product-frame {
 box-sizing: border-box;
 padding: var(--v2-apple-frame-pad);
 background: #ffffff;
 border-radius: var(--v2-apple-frame-radius);
 box-shadow:
  0 2px 8px rgba(0, 0, 0, 0.1),
  0 20px 44px rgba(0, 0, 0, 0.2);
}

.v2-apple-product-frame img {
 width: 100%;
 border-radius: calc(var(--v2-apple-frame-radius) - 6px);
 box-shadow: none;
 border: none;
 display: block;
}

/* Case studies — desktop keeps image above proof; mobile image sits below CTA */
.v2-project--bell .v2-wrap,
.v2-project--canada-post .v2-wrap,
.v2-project--virgin .v2-wrap,
.v2-project--tangerine-mobile .v2-wrap {
 display: flex;
 flex-direction: column;
}

@media (min-width: 901px) {
 .v2-project--bell .v2-project-visual--bell,
 .v2-project--canada-post .v2-project-visual--canada-post,
 .v2-project--virgin .v2-project-visual--virgin,
 .v2-project--tangerine-mobile .v2-project-visual--tangerine-mobile {
 order: 5;
 margin-top: 8px;
 }

 .v2-project--bell .v2-project-proof,
 .v2-project--canada-post .v2-project-proof,
 .v2-project--virgin .v2-project-proof,
 .v2-project--tangerine-mobile .v2-project-proof {
 order: 6;
 }
}

@media (max-width: 900px) {
 html,
 body.v2-page {
 overflow-x: hidden;
 max-width: 100%;
 }

 #v2-outlet,
 #v2-outlet main,
 #work {
 max-width: 100%;
 overflow-x: clip;
 }

 .v2-project {
 width: 100%;
 max-width: 100%;
 overflow-x: clip;
 box-sizing: border-box;
 }

 .v2-project .v2-wrap,
 .v2-project .v2-wrap--wide {
 min-width: 0;
 width: min(100% - 32px, var(--v2-wide));
 max-width: min(100% - 32px, var(--v2-wide));
 box-sizing: border-box;
 }

 .v2-project .v2-wrap > * {
 min-width: 0;
 max-width: 100%;
 box-sizing: border-box;
 }

 /* Metrics carousel — 16px left inset at rest; full-bleed scroll left + right peek */
 .v2-project .v2-wrap > .v2-metrics--cards {
 min-width: 0;
 width: 100vw;
 max-width: 100vw;
 margin-left: calc(50% - 50vw);
 padding-left: 16px;
 padding-right: 0;
 box-sizing: border-box;
 overflow-y: visible;
 }

 .v2-project--bell,
 .v2-project--canada-post,
 .v2-project--virgin,
 .v2-project--tangerine-mobile {
 padding: 48px 0 0 !important;
 }

 .v2-project--bell .v2-wrap,
 .v2-project--canada-post .v2-wrap,
 .v2-project--virgin .v2-wrap,
 .v2-project--tangerine-mobile .v2-wrap {
 padding-bottom: 0;
 }

 .v2-project--bell .v2-project-proof,
 .v2-project--canada-post .v2-project-proof,
 .v2-project--virgin .v2-project-proof,
 .v2-project--tangerine-mobile .v2-project-proof {
 margin-bottom: 0;
 }

 .v2-project--bell .v2-project-visual--bell,
 .v2-project--canada-post .v2-project-visual--canada-post,
 .v2-project--virgin .v2-project-visual--virgin,
 .v2-project--tangerine-mobile .v2-project-visual--tangerine-mobile {
 margin-top: 28px;
 margin-bottom: 0;
 margin-inline: -16px;
 width: calc(100% + 32px);
 max-width: calc(100% + 32px);
 overflow: hidden;
 line-height: 0;
 }

 .v2-project--bell .v2-project-visual--bell picture,
 .v2-project--canada-post .v2-project-visual--canada-post picture,
 .v2-project--virgin .v2-project-visual--virgin picture,
 .v2-project--tangerine-mobile .v2-project-visual--tangerine-mobile picture {
 display: block;
 }

 .v2-project--bell .v2-project-visual--bell img,
 .v2-project--canada-post .v2-project-visual--canada-post img,
 .v2-project--virgin .v2-project-visual--virgin img,
 .v2-project--tangerine-mobile .v2-project-visual--tangerine-mobile img {
 display: block;
 width: 100%;
 height: auto;
 /* Trim transparent padding baked into 828px-wide mobile preview PNGs */
 margin-bottom: -19.81%;
 }
}

.v2-project-proof {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 20px 24px;
 margin-top: 28px;
 padding: 0;
 background: none;
 border: none;
 border-radius: 0;
}

.v2-project-proof-main {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 28px;
 flex: 1 1 auto;
 min-width: min(100%, 280px);
}

.v2-project-proof-cta {
 display: flex;
 align-items: center;
 align-self: center;
 flex: 0 0 auto;
 margin-left: auto;
}

.v2-project--bell .v2-proof-rating,
.v2-project--bell .v2-proof-text,
.v2-project--canada-post .v2-proof-rating,
.v2-project--canada-post .v2-proof-text,
.v2-project--copilot .v2-proof-rating,
.v2-project--copilot .v2-proof-text,
.v2-project--lucky .v2-proof-rating,
.v2-project--lucky .v2-proof-text,
.v2-project--dark .v2-proof-rating,
.v2-project--dark .v2-proof-text {
 color: #ffffff;
}

.v2-project--bell .v2-proof-highlight { color: #93c5fd; }
.v2-project--canada-post .v2-proof-highlight,
.v2-project--canada-post .v2-proof-highlight--cp { color: #fca5a5; }
.v2-project--copilot .v2-proof-highlight,
.v2-project--copilot .v2-proof-highlight--copilot { color: #ffffff; }
.v2-project--lucky .v2-proof-highlight--lucky { color: #ffffff; }

.v2-project--dark .v2-proof-highlight--goto { color: #6ee7a0; }
.v2-project--dark .v2-proof-highlight--copilot { color: #7dd3fc; }

.v2-project--bell .v2-proof-icon,
.v2-project--canada-post .v2-proof-icon,
.v2-project--copilot .v2-proof-icon,
.v2-project--lucky .v2-proof-icon,
.v2-project--dark .v2-proof-icon,
.v2-proof-icon--on-dark {
 filter: brightness(0) invert(1);
 -webkit-filter: brightness(0) invert(1);
 opacity: 1;
}

.v2-proof-item {
 display: flex;
 align-items: center;
 gap: 12px;
}

.v2-proof-app-icon {
 width: 44px;
 height: 44px;
 border-radius: 10px;
 flex-shrink: 0;
}

.v2-proof-icon {
 display: block;
 width: 30px;
 height: 30px;
 flex-shrink: 0;
 object-fit: contain;
 object-position: center;
}

.v2-proof-rating,
.v2-proof-text {
 font-size: 17px;
 font-weight: 600;
 letter-spacing: -0.374px;
 color: var(--v2-ink);
 white-space: nowrap;
}

.v2-proof-highlight {
 color: #0f59c9;
 font-weight: 600;
}

.v2-proof-highlight--virgin { color: #e1080b; }
.v2-proof-highlight--cp { color: #ea2736; }
.v2-proof-highlight--tng { color: #f58525; }
.v2-proof-highlight--goto { color: #198754; }
.v2-proof-highlight--copilot { color: #0f98c9; }
.v2-proof-highlight--sandvik { color: #097f66; }
.v2-proof-highlight--lucky { color: #0f98c9; }

.v2-proof-app-icon--lg {
 width: 48px;
 height: 48px;
}

.v2-proof-item--wide .v2-proof-text {
 white-space: normal;
 max-width: 480px;
 line-height: 1.35;
}

.v2-project--virgin {
 background: var(--v2-parchment);
 color: var(--v2-ink);
}

.v2-project--virgin .v2-metric-label {
 color: var(--v2-muted);
}

.v2-project--virgin .v2-project-desc {
 color: var(--v2-ink);
}

.v2-project--virgin .v2-project-title,
.v2-project--virgin .v2-metric-value {
 color: var(--v2-ink);
}

.v2-project--canada-post {
 --v2-btn-on-brand-text: #004b8d;
 background: #004b8d;
 color: #ffffff;
}

.v2-project--canada-post .v2-metric-label {
 color: rgba(255, 255, 255, 0.75);
}

.v2-project--canada-post .v2-project-desc {
 color: rgba(255, 255, 255, 0.85);
}

.v2-project--canada-post .v2-project-title,
.v2-project--canada-post .v2-metric-value {
 color: #ffffff;
}

.v2-project--copilot {
 --v2-copilot-brand: #1fb5c4;
 --v2-btn-on-brand-text: #0066cc;
 background: var(--v2-copilot-brand);
 color: #ffffff;
}

.v2-project--copilot .v2-metric-label {
 color: rgba(255, 255, 255, 0.75);
}

.v2-project--copilot .v2-project-desc {
 color: rgba(255, 255, 255, 0.85);
}

.v2-project--copilot .v2-project-title,
.v2-project--copilot .v2-metric-value {
 color: #ffffff;
}

.v2-project--lucky {
 --v2-lucky-brand: #2e9fd4;
 background: linear-gradient(
 145deg,
 #4daee6 0%,
 var(--v2-lucky-brand) 45%,
 #1a7fb8 100%
 );
 color: #ffffff;
}

.v2-project--lucky .v2-metric-label {
 color: rgba(255, 255, 255, 0.75);
}

.v2-project--lucky .v2-project-desc {
 color: rgba(255, 255, 255, 0.85);
}

.v2-project--lucky .v2-project-title,
.v2-project--lucky .v2-metric-value {
 color: #ffffff;
}

.v2-project--light {
 background: var(--v2-parchment);
 color: var(--v2-ink);
}

.v2-project--parchment {
 background: var(--v2-parchment);
}

.v2-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin: 0 0 20px;
}

.v2-tag {
 display: inline-block;
 font-size: 11px;
 font-weight: 700;
 line-height: 1;
 letter-spacing: 0.04em;
 padding: 9px 14px;
 border-radius: 9999px;
 border: none;
 background: #ffffff;
 color: var(--v2-ink);
 white-space: nowrap;
}

.v2-project--light .v2-tag,
.v2-project--parchment .v2-tag,
.v2-project--virgin .v2-tag {
 background: var(--v2-chip-light-bg);
 color: var(--v2-ink);
}

/* Colored case-study bands — frosted chips (partial fade over brand color) */
.v2-project--bell .v2-tag,
.v2-project--canada-post .v2-tag,
.v2-project--copilot .v2-tag,
.v2-project--lucky .v2-tag,
.v2-project--dark .v2-tag,
.v2-project--dark-2 .v2-tag {
 background: var(--v2-chip-on-dark-bg, #ffffff14);
 color: rgba(255, 255, 255, 0.9);
 box-shadow: none;
}

.v2-project-visual {
 margin-top: 8px;
}

.v2-project-visual img {
 width: 100%;
 display: block;
}

.v2-project-title {
 font-family: var(--v2-font-display);
 font-size: 40px;
 font-weight: 600;
 line-height: 1.1;
 letter-spacing: 0;
 margin: 0 0 20px;
 max-width: none;
}

.v2-project-desc {
 font-size: 17px;
 line-height: 1.47;
 margin: 0 0 40px;
 max-width: none;
 color: inherit;
}

.v2-project--dark .v2-project-desc {
 color: #cccccc;
}

.v2-metrics {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 24px;
 margin: 0 0 32px;
 padding: 0;
 list-style: none;
}

.v2-metric-value {
 font-family: var(--v2-font-display);
 font-size: 28px;
 font-weight: 600;
 line-height: 1.1;
 letter-spacing: -0.28px;
 margin: 0 0 6px;
}

.v2-metric-label {
 font-size: 14px;
 line-height: 1.43;
 letter-spacing: -0.224px;
 color: var(--v2-muted);
 margin: 0;
}

.v2-project--dark .v2-metric-label {
 color: #cccccc;
}

.v2-btn-case--disabled {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.35) 0%,
 rgba(120, 120, 128, 0.45) 100%
 ) !important;
 color: rgba(255, 255, 255, 0.85) !important;
 border-color: rgba(255, 255, 255, 0.25) !important;
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
 pointer-events: none;
 opacity: 0.72;
 backdrop-filter: blur(12px) saturate(120%);
 -webkit-backdrop-filter: blur(12px) saturate(120%);
 cursor: not-allowed;
}

.v2-project--parchment .v2-btn-case--disabled,
.v2-project--light .v2-btn-case--disabled,
.v2-project--bell .v2-btn-case--disabled,
.v2-project--virgin .v2-btn-case--disabled,
.v2-project--canada-post .v2-btn-case--disabled,
.v2-project--copilot .v2-btn-case--disabled {
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.92) 0%,
 rgba(210, 210, 215, 0.75) 100%
 ) !important;
 color: rgba(60, 60, 67, 0.55) !important;
 border-color: rgba(0, 0, 0, 0.08) !important;
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}

.v2-project-visual--placeholder {
 aspect-ratio: 16 / 9;
 background: #d2d2d7;
 border-radius: 8px;
}

.v2-project--dark .v2-project-visual--placeholder {
 background: #3a3a3c;
}

/* CTA */
.v2-cta {
 padding: 96px 24px;
 text-align: center;
 background: var(--v2-parchment);
}

.v2-cta h2 {
 font-family: var(--v2-font-display);
 font-size: 40px;
 font-weight: 600;
 line-height: 1.1;
 margin: 0 0 24px;
 letter-spacing: 0;
}

.v2-cta-lead {
 margin: 0 auto 32px;
 max-width: 720px;
 font-size: 19px;
 line-height: 1.5;
 color: #333333;
}

.v2-cta-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 16px 28px;
}

.v2-cta .v2-btn-pill {
 padding: 14px 28px;
 font-size: 18px;
 font-weight: 400;
}

.v2-cta-actions .v2-btn-pill--outline {
 padding: 14px 28px;
 font-size: 18px;
}

/* Hide legacy vertical SCROLL indicator (theme scroll-progress) */
.scroll-progress,
a.scroll-top {
 display: none !important;
 visibility: hidden !important;
 pointer-events: none !important;
}

/* Back to top — liquid glass floating control */
.v2-back-to-top {
 position: fixed;
 z-index: 95;
 right: 20px;
 bottom: 24px;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 padding: 0;
 margin: 0;
 border-radius: 9999px;
 border: 1px solid var(--v2-glass-border-light);
 color: var(--v2-primary);
 cursor: pointer;
 pointer-events: none;
 opacity: 0;
 visibility: hidden;
 transform: translateY(10px) scale(0.94);
 background: linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.98) 0%,
 var(--v2-glass-tint) 55%,
 rgba(255, 255, 255, 0.82) 100%
 );
 backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 -webkit-backdrop-filter: blur(var(--v2-glass-blur)) saturate(180%);
 box-shadow: var(--v2-glass-shadow-light);
 transition:
 opacity 0.35s var(--v2-spring),
 visibility 0.35s var(--v2-spring),
 transform 0.35s var(--v2-spring),
 box-shadow 0.35s var(--v2-spring);
 -webkit-font-smoothing: antialiased;
}

.v2-back-to-top.is-visible {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transform: translateY(0) scale(1);
}

.v2-back-to-top:hover {
 box-shadow: var(--v2-glass-shadow-light-hover);
 color: var(--v2-primary-focus, #0071e3);
}

.v2-back-to-top:active {
 transform: translateY(0) scale(0.96);
}

.v2-back-to-top:focus-visible {
 outline: 2px solid var(--v2-primary-focus, #0071e3);
 outline-offset: 2px;
}

.v2-back-to-top-icon {
 display: block;
 flex-shrink: 0;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
 .v2-back-to-top {
 background: #ffffff;
 }
}

@media (prefers-reduced-transparency: reduce) {
 .v2-back-to-top {
 background: #ffffff;
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 }
}

/* Footer — always visible (no scroll-reveal fade) */
.v2-footer .v2-footer-inner,
.v2-footer .v2-footer-inner > * {
 opacity: 1 !important;
 transform: none !important;
}

.v2-footer {
 padding: 40px 0 48px;
 background: #000000;
 border-top: 1px solid #333333;
 color: #ffffff;
}

.v2-footer .v2-wrap {
 width: min(100% - 48px, var(--v2-wide));
}

.v2-footer-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 20px 32px;
}

.v2-footer-note {
 margin: 0;
 flex: 1 1 auto;
 min-width: 0;
 font-family: var(--v2-font-display);
 font-size: 15px;
 font-style: italic;
 font-weight: 400;
 line-height: 1.35;
 letter-spacing: 0;
 color: #ffffff !important;
}

.v2-footer-end {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: flex-end;
 gap: 24px 28px;
 margin-left: auto;
 flex-shrink: 0;
}

.v2-footer-copy {
 margin: 0;
 font-size: 14px;
 font-weight: 500;
 letter-spacing: -0.14px;
 color: #ffffff !important;
 white-space: nowrap;
}

.v2-footer-links {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 24px;
 margin: 0;
}

body.v2-page .v2-footer .v2-footer-links a,
body.v2-page .v2-footer .v2-footer-links a:link,
body.v2-page .v2-footer .v2-footer-links a:visited,
body.v2-page .v2-footer .v2-footer-links a:hover,
body.v2-page .v2-footer .v2-footer-links a:focus,
body.v2-page .v2-footer .v2-footer-links a:active,
.v2-footer .v2-footer-links a,
.v2-footer .v2-footer-links a:link,
.v2-footer .v2-footer-links a:visited,
.v2-footer .v2-footer-links a:hover,
.v2-footer .v2-footer-links a:focus,
.v2-footer .v2-footer-links a:active {
 font-size: 14px;
 font-weight: 500;
 letter-spacing: -0.14px;
 color: #ffffff;
 text-decoration: none;
 transform: none;
}

body.v2-page .v2-footer .v2-footer-links a:active {
 transform: none;
}

@media (max-width: 768px) {
 .v2-footer {
 padding: 32px 0 40px;
 }

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

 .v2-footer-end {
 margin-left: 0;
 width: 100%;
 justify-content: flex-start;
 gap: 20px;
 }
}

/* - - Mobile nav - - Apple Music–style floating tab bar + menu button */
@media (max-width: 900px) {
 :root {
 --v2-nav-tab-size: 10px;
 --v2-nav-tab-pad-y: 6px;
 --v2-nav-tab-pad-x: 4px;
 --v2-nav-shell-pad: 3px;
 --v2-nav-bar-height: 54px;
 --v2-nav-icon-btn-size: 54px;
 --v2-nav-bottom-inset: 34px;
 --v2-nav-screen-margin: 16px;
 --v2-nav-mobile-toggle: 54px;
 --v2-nav-mobile-expand-gap: 10px;
 --v2-nav-mobile-back: 54px;
 --v2-nav-mobile-inline-gap: 8px;
 /* header 16px margins; shell fills space left of menu button */
 --v2-nav-mobile-shell-max: calc(
  100vw - (2 * var(--v2-nav-screen-margin)) - var(--v2-nav-mobile-toggle) -
   var(--v2-nav-mobile-expand-gap)
 );
 --v2-nav-mobile-shell-max-with-back: calc(
  100vw - (2 * var(--v2-nav-screen-margin)) - var(--v2-nav-mobile-back) -
   var(--v2-nav-mobile-inline-gap) - var(--v2-nav-mobile-toggle) -
   var(--v2-nav-mobile-expand-gap)
 );
 }

 body.v2-page,
 body.has-v2-nav {
 padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
 }

 /* Hub pages — spacing, stacking, no 3D overlap */
 body.has-v2-nav.v2-hub-page {
 padding-bottom: calc(124px + env(safe-area-inset-bottom, 0px));
 }

 body.has-v2-nav.v2-hub-page section {
 padding-top: 40px;
 padding-bottom: 40px;
 }

 body.has-v2-nav.v2-hub-page section.big-section,
 body.has-v2-nav.v2-hub-page section.pb-0,
 body.has-v2-nav.v2-hub-page section.pt-0 {
 padding-top: 24px;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-intro {
 padding-top: 28px;
 padding-bottom: 20px;
 }

 body.has-v2-nav.v2-hub-page .v2-case-title {
 font-size: clamp(1.75rem, 7.5vw, 2.5rem);
 line-height: 1.12;
 margin-bottom: 16px;
 }

 body.has-v2-nav.v2-hub-page .v2-case-lead {
 font-size: 16px;
 line-height: 1.5;
 max-width: none;
 padding-inline: 0;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-meta {
 padding-bottom: 24px;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-meta .row > .col {
 flex: 0 0 100%;
 max-width: 100%;
 width: 100%;
 border: none !important;
 border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
 margin-bottom: 0;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-meta .row > .col:last-child {
 border-bottom: none !important;
 }

 body.has-v2-nav.v2-hub-page .v2-hub-video {
 padding-bottom: 32px;
 }

 body.has-v2-nav.v2-hub-page .container,
 body.has-v2-nav.v2-hub-page .container-fluid {
 width: min(100% - 32px, 100%);
 max-width: 100%;
 }

 body.has-v2-nav.v2-hub-page #mybell-projects,
 body.has-v2-nav.v2-hub-page #cppost-projects {
 padding-top: 0;
 }

 .v2-header {
 position: fixed;
 top: auto;
 bottom: 0;
 left: 0;
 right: 0;
 z-index: 100;
 padding:
 0 var(--v2-nav-screen-margin)
 calc(var(--v2-nav-bottom-inset) + env(safe-area-inset-bottom, 0px));
 background: transparent;
 pointer-events: none;
 isolation: isolate;
 }

 /* Scroll-edge veil behind bottom nav — iOS 26 ultra-thin material (blur-led, not milky fade) */
 .v2-header::before {
 content: "";
 position: fixed;
 left: 0;
 right: 0;
 bottom: 0;
 height: calc(108px + env(safe-area-inset-bottom, 0px));
 pointer-events: none;
 z-index: 0;
 opacity: 0;
 visibility: hidden;
 transform: translateZ(0);
 -webkit-transform: translateZ(0);
 transition:
  opacity 0.45s ease,
  visibility 0.45s ease;
 background: linear-gradient(
  to top,
  rgba(255, 255, 255, 0.2) 0%,
  rgba(255, 255, 255, 0.08) 28%,
  rgba(255, 255, 255, 0.02) 48%,
  transparent 68%
 );
 backdrop-filter: blur(10px) saturate(125%);
 -webkit-backdrop-filter: blur(10px) saturate(125%);
 -webkit-mask-image: linear-gradient(
  to top,
  #000 0%,
  #000 18%,
  rgba(0, 0, 0, 0.55) 42%,
  rgba(0, 0, 0, 0.2) 62%,
  transparent 82%
 );
 mask-image: linear-gradient(
  to top,
  #000 0%,
  #000 18%,
  rgba(0, 0, 0, 0.55) 42%,
  rgba(0, 0, 0, 0.2) 62%,
  transparent 82%
 );
 -webkit-mask-repeat: no-repeat;
 mask-repeat: no-repeat;
 -webkit-mask-size: 100% 100%;
 mask-size: 100% 100%;
 }

 .v2-header.is-scrolled::before,
 body.v2-nav-menu-open .v2-header::before {
 opacity: 1;
 visibility: visible;
}

 .v2-nav {
 position: relative;
 z-index: 1;
 justify-content: center;
 gap: 8px;
 align-items: center;
 min-height: var(--v2-nav-bar-height);
 height: var(--v2-nav-bar-height);
 }

 .v2-nav--with-back {
 justify-content: flex-start;
 width: 100%;
 max-width: none;
 padding-inline: 0;
 gap: var(--v2-nav-mobile-inline-gap);
 }

 /* [shell pill] + gap + [menu circle] — two separate glass controls */
 .v2-nav-expand {
 display: inline-flex;
 align-items: center;
 justify-content: flex-end;
 gap: 10px;
 flex: 1 1 auto;
 min-width: 0;
 max-width: 100%;
 min-height: var(--v2-nav-bar-height);
 height: var(--v2-nav-bar-height);
 background: none;
 border: none;
 box-shadow: none;
 padding: 0;
 }

 .v2-nav:not(.v2-nav--with-back) {
 justify-content: flex-end;
 width: 100%;
 padding-inline: 0;
 }

 body.v2-nav-menu-open .v2-nav:not(.v2-nav--with-back) .v2-nav-expand,
 body.v2-nav-menu-open .v2-nav--with-back .v2-nav-expand {
 flex: 1 1 auto;
 width: 100%;
 max-width: 100%;
 }

 /* Round icon controls — Apple 44×44pt touch target */
 .v2-nav-back,
 .v2-nav-toggle,
 .v2-back-to-top {
 box-sizing: border-box;
 width: var(--v2-nav-icon-btn-size);
 height: var(--v2-nav-icon-btn-size);
 min-width: var(--v2-nav-icon-btn-size);
 min-height: var(--v2-nav-icon-btn-size);
 max-width: var(--v2-nav-icon-btn-size);
 max-height: var(--v2-nav-icon-btn-size);
 flex: 0 0 var(--v2-nav-icon-btn-size);
 padding: 0;
 }

 .v2-nav-toggle {
 display: inline-flex;
 }

 .v2-am-feature__toggle {
 width: var(--v2-nav-icon-btn-size);
 height: var(--v2-nav-icon-btn-size);
 min-width: var(--v2-nav-icon-btn-size);
 min-height: var(--v2-nav-icon-btn-size);
 box-sizing: border-box;
 }

 .v2-am-feature__toggle-icon {
 width: 18px;
 height: 18px;
 }

 .v2-nav-backdrop {
 display: none !important;
 }

 /* Tab bar pill — hidden until open, grows left from menu button */
 .v2-nav-shell {
 flex: 0 1 auto;
 min-width: 0;
 max-width: 0;
 overflow: hidden;
 margin: 0;
 padding: 0;
 border: none;
 background: transparent;
 box-shadow: none;
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 opacity: 0;
 pointer-events: none;
 transform-origin: right center;
 transition:
  max-width 0.48s cubic-bezier(0.32, 0.72, 0, 1),
  opacity 0.32s ease,
  padding 0.48s cubic-bezier(0.32, 0.72, 0, 1),
  border-color 0.35s ease;
}

 body.v2-nav-menu-open .v2-nav-shell {
 flex: 1 1 auto;
 max-width: var(--v2-nav-mobile-shell-max);
 height: var(--v2-nav-bar-height);
 min-height: var(--v2-nav-bar-height);
 max-height: var(--v2-nav-bar-height);
 box-sizing: border-box;
 opacity: 1;
 padding: var(--v2-nav-shell-pad) 5px;
 pointer-events: auto;
 border-color: var(--v2-glass-border-light);
 background: linear-gradient(
  180deg,
  rgba(255, 255, 255, 0.96) 0%,
  var(--v2-glass-tint) 48%,
  rgba(255, 255, 255, 0.62) 100%
 );
 backdrop-filter: blur(var(--v2-nav-glass-blur)) saturate(185%);
 -webkit-backdrop-filter: blur(var(--v2-nav-glass-blur)) saturate(185%);
 box-shadow:
  inset 0 1px 0 var(--v2-glass-highlight),
  var(--v2-glass-shadow-light);
}

 body.v2-nav-menu-open .v2-nav--with-back .v2-nav-shell {
 max-width: var(--v2-nav-mobile-shell-max-with-back);
}

 body.v2-nav-menu-open .v2-header.is-scrolled .v2-nav-shell {
 border-color: rgba(0, 102, 204, 0.2);
 box-shadow:
  inset 0 1px 0 rgba(255, 255, 255, 1),
  var(--v2-glass-shadow-light-hover);
}

 .v2-nav-center {
 flex-direction: row;
 flex-wrap: nowrap;
 align-items: stretch;
 width: 100%;
 min-width: 0;
 gap: 2px;
 overflow: hidden;
 position: relative;
}

 body.v2-nav-menu-open .v2-nav-center {
 justify-content: space-between;
}

 .v2-nav-center::-webkit-scrollbar {
 display: none;
}

 /* iOS 26 tab bar — sliding gray pill indicator (not circular per-tab fill) */
 .v2-nav-indicator {
 display: block !important;
 background: rgba(120, 120, 128, 0.16);
 border: none;
 box-shadow: none;
 border-radius: 9999px;
 }

 .v2-nav-tab-icon {
 display: flex;
 flex-shrink: 0;
}

 .v2-nav-tab.v2-nav-tab--stacked {
 flex: 1 1 0;
 flex-direction: row;
 align-items: center;
 justify-content: center;
 gap: 0;
 min-width: 0;
 max-width: none;
 height: calc(var(--v2-nav-bar-height) - (2 * var(--v2-nav-shell-pad)) - 2px);
 min-height: calc(var(--v2-nav-bar-height) - (2 * var(--v2-nav-shell-pad)) - 2px);
 max-height: calc(var(--v2-nav-bar-height) - (2 * var(--v2-nav-shell-pad)) - 2px);
 padding: 0 6px;
 font-size: 0;
 line-height: 0;
 border-radius: 9999px;
 box-sizing: border-box;
}

 .v2-nav-tab.v2-nav-tab--stacked .v2-nav-tab-icon svg,
 .v2-nav-tab.v2-nav-tab--stacked .v2-nav-mdi-icon {
 width: 24px;
 height: 24px;
}

 .v2-nav-tab.v2-nav-tab--stacked .v2-nav-label--full,
 .v2-nav-tab.v2-nav-tab--stacked .v2-nav-label--short {
 display: none !important;
}

 .v2-nav-center.is-indicator-ready .v2-nav-tab.v2-nav-tab--stacked {
 position: relative;
 z-index: 1;
 background: transparent !important;
 border-color: transparent !important;
 color: var(--v2-ink) !important;
 box-shadow: none !important;
}

 .v2-nav-center.is-indicator-ready .v2-nav-tab.v2-nav-tab--stacked.is-active {
 background: transparent !important;
 border-color: transparent !important;
 box-shadow: none !important;
 color: var(--v2-primary) !important;
}

 header.v2-header a.v2-nav-tab.v2-nav-tab--stacked.is-active,
 body.has-v2-nav .v2-nav-center.is-indicator-ready a.v2-nav-tab.v2-nav-tab--stacked.is-active {
 color: var(--v2-primary) !important;
}

 .v2-hero {
 min-height: calc(100svh - 160px);
 padding: 72px 0 96px;
 }

 .v2-hero > .v2-wrap {
 width: min(100% - 48px, var(--v2-wide));
 max-width: min(100% - 48px, var(--v2-wide));
 box-sizing: border-box;
 }

 /* Mobile: back-to-top only on case study detail pages (has-v2-nav-back) */
 body:not(.has-v2-nav-back) .v2-back-to-top {
 display: none !important;
 pointer-events: none !important;
 visibility: hidden !important;
 opacity: 0 !important;
 }

 body.has-v2-nav-back .v2-back-to-top {
 right: 16px;
 bottom: calc(108px + env(safe-area-inset-bottom, 0px));
 }

 /* index-v2 SPA — full-width buttons (hero & CTA action pills stay compact) */
 body.v2-spa .v2-btn-case,
 body.v2-spa .v2-btn-case--disabled,
 body.v2-spa .v2-photo-more-btn,
 body.v2-spa .v2-contact-intro .v2-btn-pill,
 body.v2-spa .v2-contact-card .v2-btn-pill {
 display: flex;
 width: 100%;
 max-width: 100%;
 box-sizing: border-box;
 white-space: normal;
 text-align: center;
 }

 body.v2-spa .v2-cta-actions {
 display: flex;
 flex-direction: row;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 14px 20px;
 }

 body.v2-spa .v2-cta-actions .v2-btn-pill {
 display: inline-flex;
 width: auto;
 max-width: none;
 white-space: nowrap;
 text-decoration: none;
 }

 body.v2-spa .v2-hero-links {
 display: flex;
 flex-direction: row;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 14px 18px;
 width: auto;
 }

 body.v2-spa .v2-hero-links .v2-btn-pill {
 display: inline-flex;
 width: auto;
 max-width: none;
 white-space: nowrap;
 }

 body.v2-spa .v2-project-proof {
 flex-direction: column;
 align-items: stretch;
 }

 body.v2-spa .v2-project-proof-main {
 width: 100%;
 min-width: 0;
 }

 body.v2-spa .v2-project-proof-cta {
 width: 100%;
 margin-left: 0;
 justify-content: stretch;
 }
}

@media (max-width: 380px) {
 :root {
 --v2-nav-tab-size: 11px;
 --v2-nav-tab-pad-y: 7px;
 --v2-nav-tab-pad-x: 10px;
 }
}

@media (max-width: 768px) {
 .v2-hero-lead {
 max-width: 100%;
 }

 .v2-project-title {
 font-size: 34px;
 }

 .v2-metrics {
 grid-template-columns: 1fr;
 gap: 16px;
 }

 .v2-metrics--cards {
 grid-template-columns: repeat(4, minmax(132px, 1fr));
 gap: 12px;
 }

 .v2-project {
 padding: 48px 0;
 }

 .v2-project--bell,
 .v2-project--canada-post,
 .v2-project--virgin,
 .v2-project--tangerine-mobile {
 padding-bottom: 0 !important;
 }

 .v2-project-proof {
 align-items: center;
 }

 .v2-project-proof-cta {
 width: 100%;
 margin-left: 0;
 align-self: stretch;
 justify-content: stretch;
 }

 body.v2-spa .v2-project-proof-cta .v2-btn-case,
 body.v2-spa .v2-project-proof-cta .v2-btn-case--disabled {
 width: 100%;
 }

 .v2-wrap,
 .v2-wrap--wide {
 width: min(100% - 32px, var(--v2-wide));
 }

 .v2-hero > .v2-wrap {
 width: min(100% - 48px, var(--v2-wide));
 max-width: min(100% - 48px, var(--v2-wide));
 }
}

@media (max-width: 419px) {
 .v2-hero-hello {
 font-size: 15px;
 }

 .v2-hero-meta {
 font-size: 15px;
 }
}

/* Motion */
.v2-reveal-stagger > * {
 opacity: 0;
 transform: translateY(22px);
 transition:
 opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
 transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.v2-reveal-stagger.is-visible > * {
 opacity: 1;
 transform: translateY(0);
}

.v2-reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.v2-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 70ms; }
.v2-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 140ms; }
.v2-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 210ms; }
.v2-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 280ms; }
.v2-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 350ms; }
.v2-reveal-stagger.is-visible > *:nth-child(7) { transition-delay: 420ms; }
.v2-reveal-stagger.is-visible > *:nth-child(8) { transition-delay: 490ms; }
.v2-reveal-stagger.is-visible > *:nth-child(9) { transition-delay: 560ms; }

.v2-hero .v2-reveal-stagger > .v2-hero-title-line {
 transform: translateY(26px) scale(0.98);
 transition-duration: 0.85s;
}

.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-title-line {
 transform: translateY(0) scale(1);
}

.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-hello { transition-delay: 0ms; }
.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-title-line:nth-of-type(1) { transition-delay: 90ms; }
.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-title-line:nth-of-type(2) { transition-delay: 190ms; }
.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-lead { transition-delay: 300ms; }
.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-meta { transition-delay: 390ms; }
.v2-hero .v2-reveal-stagger.is-visible > .v2-hero-links { transition-delay: 480ms; }

.v2-reveal-stagger.is-visible .v2-project-visual img {
 animation: v2-visual-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

@keyframes v2-visual-in {
 from {
 opacity: 0;
 transform: translateY(20px) scale(1.015);
 }
 to {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
}

.v2-reveal-stagger.is-visible .v2-metrics li {
 animation: v2-metric-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.v2-reveal-stagger.is-visible .v2-metrics li:nth-child(1) { animation-delay: 0.25s; }
.v2-reveal-stagger.is-visible .v2-metrics li:nth-child(2) { animation-delay: 0.32s; }
.v2-reveal-stagger.is-visible .v2-metrics li:nth-child(3) { animation-delay: 0.39s; }
.v2-reveal-stagger.is-visible .v2-metrics li:nth-child(4) { animation-delay: 0.46s; }

@keyframes v2-metric-in {
 from {
 opacity: 0;
 transform: translateY(12px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

.v2-reveal-stagger.is-visible .v2-proof-item {
 animation: v2-metric-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.v2-reveal-stagger.is-visible .v2-proof-item:nth-child(1) { animation-delay: 0.35s; }
.v2-reveal-stagger.is-visible .v2-proof-item:nth-child(2) { animation-delay: 0.42s; }
.v2-reveal-stagger.is-visible .v2-proof-item:nth-child(3) { animation-delay: 0.49s; }

.v2-header {
 animation: v2-nav-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes v2-nav-in {
 from {
 opacity: 0;
 transform: translateY(-8px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@keyframes v2-nav-in-mobile {
 from {
 opacity: 0;
 transform: translateY(12px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

@media (max-width: 900px) {
 .v2-header {
 animation: v2-nav-in-mobile 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
 }
}

/* Button motion defined in Liquid Glass block above */

.v2-brand {
 transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.v2-clients img {
 transition: opacity 0.6s ease, filter 0.6s ease;
}

.v2-reveal-stagger.is-visible .logo-bar-img-desktop,
.v2-reveal-stagger.is-visible .logo-bar-img-mobile {
 animation: v2-visual-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

@media (prefers-reduced-motion: reduce) {
 .v2-reveal-stagger > *,
 .v2-header {
 opacity: 1;
 transform: none;
 animation: none;
 transition: none;
 }

 .v2-reveal-stagger.is-visible > * {
 transition-delay: 0ms !important;
 }

 .v2-reveal-stagger.is-visible .v2-project-visual img,
 .v2-reveal-stagger.is-visible .v2-metrics li,
 .v2-reveal-stagger.is-visible .v2-proof-item,
 .v2-reveal-stagger.is-visible .logo-bar-img-desktop,
 .v2-reveal-stagger.is-visible .logo-bar-img-mobile {
 animation: none;
 }

 .v2-hero-audio-prompt__arrow {
 animation: none;
 }

 .v2-hero-video {
 display: none;
 }

 .v2-hero--video .v2-hero-media {
 background: var(--v2-hero-scrim-bottom) url("../images/landing-hero-section-img-7.jpg") center / cover no-repeat;
 }

 .v2-hero--video .v2-hero-scrim,
 .v2-sub-hero--video .v2-hero-scrim {
 background:
 radial-gradient(
 ellipse 95% 75% at 50% 38%,
 rgba(46, 68, 104, 0.56) 0%,
 rgba(30, 53, 88, 0.38) 48%,
 transparent 72%
 ),
 linear-gradient(
 180deg,
 rgba(10, 22, 40, 0.82) 0%,
 rgba(30, 53, 88, 0.68) 40%,
 rgba(46, 68, 104, 0.6) 55%,
 rgba(18, 32, 58, 0.84) 78%,
 rgba(5, 8, 24, 0.92) 100%
 );
 }

 .v2-sub-hero--about.v2-sub-hero--video .v2-hero-media,
 .v2-sub-hero--photo.v2-sub-hero--video .v2-hero-media {
 background: var(--v2-hero-scrim-bottom) url("../images/about-1.jpg") center / cover no-repeat;
 }

 .v2-sub-hero--film.v2-sub-hero--video .v2-hero-media {
 background: var(--v2-hero-scrim-bottom) url("../images/hero-films.jpg") center / cover no-repeat;
 }

 .v2-sub-hero--process.v2-sub-hero--video .v2-hero-media {
 background: var(--v2-hero-scrim-bottom) url("../images/hero-process.jpg") center / cover no-repeat;
 }

 .v2-sub-hero--contact.v2-sub-hero--video .v2-hero-media {
 background: var(--v2-hero-scrim-bottom) url("../images/hero-films.jpg") center / cover no-repeat;
 }

 .v2-btn-case:hover,
 .v2-btn-pill:hover,
 .v2-nav-tab:active,
 .v2-back-to-top,
 .v2-back-to-top:active {
 transform: none;
 }

 .v2-back-to-top.is-visible {
 transform: none;
 }

 .v2-nav-tab.is-tapped {
 animation: none;
 }

 .v2-nav-indicator {
 transition: none !important;
 }

 .v2-nav-shell,
 .v2-nav-center,
 .v2-nav-expand {
 transition: none !important;
 }

 .v2-header::before {
 transition: none;
 }
}

@media (max-width: 900px) and (prefers-reduced-transparency: reduce) {
 .v2-header::before {
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 -webkit-mask-image: none;
 mask-image: none;
 background: linear-gradient(
  to top,
  rgba(255, 255, 255, 0.94) 0%,
  rgba(255, 255, 255, 0.55) 35%,
  rgba(255, 255, 255, 0.12) 62%,
  transparent 100%
 );
}
}

/* ── SPA outlet ── */

#v2-outlet {
 min-height: calc(100vh - 80px);
}

body.v2-spa.v2-nav-loading #v2-outlet {
 opacity: 0.72;
 transition: opacity 0.2s ease;
}

/* ── v2 subpages ── */

.v2-wrap--narrow {
 max-width: 720px;
}

.v2-wrap--wide {
 max-width: 1200px;
}

.v2-sub-hero {
 position: relative;
 min-height: 52vh;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 120px 0;
 background-color: #000000;
 background-size: cover;
 background-position: center;
 overflow: hidden;
}

.v2-sub-hero .v2-wrap {
 position: relative;
 z-index: 2;
 width: 100%;
 text-align: center;
}

.v2-sub-hero--video {
 background-image: none;
}

.v2-sub-hero--about:not(.v2-sub-hero--video) {
 background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)), url('../images/about-1.jpg');
}
.v2-sub-hero--contact:not(.v2-sub-hero--video) {
 background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)), url('../images/hero-films.jpg');
}
.v2-sub-hero--process:not(.v2-sub-hero--video) {
 background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)), url('../images/hero-process.jpg');
}
.v2-sub-hero--photo:not(.v2-sub-hero--video) {
 background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)), url('../images/about-1.jpg');
}
.v2-sub-hero--film:not(.v2-sub-hero--video) {
 background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)), url('../images/hero-films.jpg');
}

.v2-sub-eyebrow {
 margin: 0 0 12px;
 font-size: 12px;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.72);
}

.v2-sub-eyebrow--dark {
 color: #7a7a7a;
}

.v2-sub-eyebrow--center {
 text-align: center;
}

.v2-sub-title {
 margin: 0;
 font-size: clamp(40px, 6vw, 56px);
 font-weight: 600;
 line-height: 1.07;
 letter-spacing: -0.28px;
 color: #ffffff;
}

.v2-sub-section {
 padding: 80px 0;
 background: #ffffff;
}

.v2-sub-section--parchment {
 background: #f5f5f7;
}

.v2-sub-heading {
 margin: 0 0 24px;
 font-size: clamp(28px, 4vw, 40px);
 font-weight: 600;
 line-height: 1.1;
 letter-spacing: -0.02em;
 color: #1d1d1f;
}

.v2-sub-heading--center {
 text-align: center;
}

.v2-sub-lead {
 margin: 0 0 20px;
 font-size: 19px;
 line-height: 1.5;
 color: #333333;
}

.v2-sub-lead--center {
 text-align: center;
}

.v2-work-intro .v2-wrap,
.v2-about-intro .v2-wrap,
.v2-about-beyond .v2-wrap,
.v2-photo-intro .v2-wrap,
.v2-film-intro .v2-wrap,
.v2-process-section .v2-wrap,
.v2-project .v2-wrap {
 width: min(100% - 48px, var(--v2-wide));
}

@media (max-width: 900px) {
 .v2-project .v2-wrap,
 .v2-project .v2-wrap--wide {
 width: min(100% - 32px, var(--v2-wide));
 max-width: min(100% - 32px, var(--v2-wide));
 }
}

.v2-work-intro .v2-sub-heading,
.v2-work-intro .v2-sub-lead,
.v2-about-intro .v2-sub-heading,
.v2-about-intro .v2-sub-lead,
.v2-about-beyond .v2-sub-heading,
.v2-about-beyond .v2-sub-lead,
.v2-photo-intro .v2-sub-heading,
.v2-photo-intro .v2-sub-lead,
.v2-film-intro .v2-sub-heading,
.v2-film-intro .v2-sub-lead,
.v2-process-section .v2-sub-heading,
.v2-process-section .v2-sub-lead {
 max-width: none;
}

.v2-work-intro .v2-sub-lead:last-child {
 margin-bottom: 0;
}

.v2-sub-cta {
 margin-top: 40px;
 text-align: center;
}

.v2-about-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 16px;
 margin-top: 48px;
}

.v2-about-grid img {
 width: 100%;
 height: 100%;
 min-height: 220px;
 object-fit: cover;
 border-radius: 12px;
}

/* The Essentials — Apple store utility cards (About) */
.v2-sub-section--essentials {
 background: var(--v2-parchment);
}

.v2-essentials-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 16px;
 margin-top: 40px;
}

.v2-essential-card {
 --v2-essential-accent: var(--v2-primary);
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 min-height: 100%;
 padding: 28px 24px 32px;
 border-radius: 22px;
 background: #ffffff;
 box-shadow:
 0 2px 6px rgba(0, 0, 0, 0.04),
 0 10px 28px rgba(0, 0, 0, 0.08);
 transition:
 transform 0.35s var(--v2-spring),
 box-shadow 0.35s var(--v2-spring);
}

.v2-essential-card:hover {
 transform: translateY(-3px);
 box-shadow:
 0 4px 10px rgba(0, 0, 0, 0.06),
 0 16px 36px rgba(0, 0, 0, 0.12);
}

.v2-essential-card__icon {
 display: inline-flex;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 32px;
 height: 32px;
 margin-bottom: 20px;
 color: var(--v2-essential-accent);
}

.v2-essential-card__icon svg,
.v2-essential-card__icon img {
 display: block;
 width: 28px;
 height: 28px;
 object-fit: contain;
}

.v2-essential-card__text {
 margin: 0;
 font-family: var(--v2-font-display);
 font-size: 21px;
 font-weight: 600;
 line-height: 1.35;
 letter-spacing: -0.374px;
 color: var(--v2-ink);
}

.v2-essential-card__accent {
 color: var(--v2-essential-accent);
}

.v2-essential-card--research {
 --v2-essential-accent: #007aff;
}

.v2-essential-card--strategy {
 --v2-essential-accent: #34c759;
}

.v2-essential-card--design {
 --v2-essential-accent: #5856d6;
}

.v2-essential-card--validation {
 --v2-essential-accent: #30b0c7;
}

.v2-essential-card--claude {
 --v2-essential-accent: #d97757;
}

.v2-essential-card--cursor {
 --v2-essential-accent: #0066cc;
}

.v2-essential-card--years {
 --v2-essential-accent: #007aff;
}

.v2-essential-card--users {
 --v2-essential-accent: #34c759;
}

.v2-essential-card--industries {
 --v2-essential-accent: #5856d6;
}

/* Awards & recognition (About) */
.v2-sub-section--awards {
 background: #f5f5f7;
}

.v2-awards-header {
 margin-bottom: 48px;
}

.v2-sub-section--awards .v2-sub-heading {
 max-width: none;
}

.v2-awards-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 20px;
 margin-bottom: 40px;
}

.v2-award-card {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 min-height: 100%;
 padding: 32px;
 border-radius: 20px;
 background: #ffffff;
 box-shadow:
 0 4px 24px rgba(0, 0, 0, 0.06),
 0 1px 2px rgba(0, 0, 0, 0.04);
 text-align: left;
}

.v2-award-card-brand {
 display: flex;
 align-items: center;
 justify-content: flex-start;
 flex-wrap: wrap;
 gap: 16px;
 min-height: 48px;
 margin-bottom: 20px;
}

.v2-award-card-brand img {
 max-height: 40px;
 width: auto;
}

.v2-award-card-title {
 margin: 0 0 12px;
 font-size: 21px;
 font-weight: 600;
 line-height: 1.25;
 letter-spacing: -0.02em;
 color: #1d1d1f;
}

.v2-award-card-body {
 margin: 0 0 24px;
 flex: 1;
 font-size: 17px;
 line-height: 1.47;
 letter-spacing: -0.022em;
 color: #1d1d1f;
}

.v2-award-card-link,
body.v2-page .v2-award-card-link {
 margin-top: auto;
 display: inline-flex;
 align-items: center;
 gap: 2px;
 font-size: 17px;
 font-weight: 400;
 line-height: 1.47;
 letter-spacing: -0.022em;
 color: var(--v2-primary);
 text-decoration: none;
}

.v2-award-card-link:hover,
.v2-award-card-link:focus,
body.v2-page .v2-award-card-link:hover,
body.v2-page .v2-award-card-link:focus {
 color: var(--v2-primary);
 text-decoration: none;
}

.v2-award-card-link-mark {
 font-size: 1.15em;
 line-height: 1;
}

.v2-awards-outro {
 margin: 0;
 max-width: none;
 font-size: 17px;
 line-height: 1.47;
 color: #333333;
}

.v2-contact-grid {
 display: grid;
 grid-template-columns: 1.2fr 0.8fr;
 gap: 40px;
 align-items: start;
}

.v2-contact-card {
 padding: 32px;
 border-radius: 20px;
 background: #f5f5f7;
}

.v2-contact-photo {
 display: block;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 margin-bottom: 12px;
 object-fit: cover;
 object-position: center top;
}

.v2-contact-name {
 margin: 0 0 8px;
 font-size: 24px;
 font-weight: 600;
 color: #1d1d1f;
}

.v2-contact-meta {
 margin: 0 0 8px;
 font-size: 17px;
 color: #333333;
}

.v2-contact-meta a {
 color: inherit;
 text-decoration: none;
}

.v2-contact-meta a:hover {
 color: #0066cc;
}

.v2-contact-social {
 margin-top: 20px;
 font-size: 17px;
 font-weight: 600;
}

.v2-contact-social a {
 color: #0066cc;
 text-decoration: none;
}

.v2-sub-section--map {
 padding: 0;
}

.v2-sub-section--map iframe {
 display: block;
 width: 100%;
 height: 420px;
 border: 0;
}

.v2-process-steps-nav {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 12px;
 margin: 0 0 48px;
 padding: 0;
 list-style: none;
}

.v2-process-steps-nav li {
 margin: 0;
 padding: 10px 18px;
 font-size: 14px;
 font-weight: 600;
 letter-spacing: 0.04em;
 color: #1d1d1f;
 background: #f5f5f7;
 border-radius: 100px;
}

.v2-process-step {
 padding-bottom: 16px;
}

.v2-process-num {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 56px;
 height: 56px;
 margin: 0 auto 20px;
 border-radius: 50%;
 background: #1d1d1f;
 font-size: 15px;
 font-weight: 600;
 letter-spacing: 0.06em;
 color: #ffffff;
}

.v2-sub-section--parchment .v2-process-num {
 background: #ffffff;
 color: #1d1d1f;
 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.v2-process-list {
 margin: 0 0 20px;
 padding: 0;
 list-style: none;
 text-align: left;
}

.v2-process-list li {
 position: relative;
 margin: 0 0 10px;
 padding-left: 1.25rem;
 font-size: 19px;
 line-height: 1.5;
 color: #333333;
}

.v2-process-list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.65em;
 width: 6px;
 height: 6px;
 border-radius: 50%;
 background: #0071e3;
 transform: translateY(-50%);
}

.v2-process-ai-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 20px;
 margin-top: 8px;
 text-align: left;
}

.v2-process-ai-card {
 padding: 24px;
 background: #ffffff;
 border-radius: 12px;
 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.v2-sub-section--parchment .v2-process-ai-card {
 background: #f5f5f7;
 box-shadow: none;
}

.v2-process-ai-card h3 {
 margin: 0 0 8px;
 font-size: 17px;
 font-weight: 600;
 color: #1d1d1f;
}

.v2-process-ai-card p {
 margin: 0;
 font-size: 16px;
 line-height: 1.5;
 color: #333333;
}

.v2-process-section .v2-process-step .v2-sub-lead:last-child,
.v2-process-section .v2-process-step .v2-process-list:last-child {
 margin-bottom: 0;
}

@media (max-width: 720px) {
 .v2-process-ai-grid {
 grid-template-columns: 1fr;
 }
}

.v2-process-img {
 width: 100%;
 margin-top: 32px;
 border-radius: 12px;
}

/* Pinterest-style masonry (columns filled by v2-photo-gallery.js) */
.v2-photo-gallery .v2-photo-grid {
 display: flex;
 gap: 16px;
 align-items: flex-start;
}

.v2-photo-masonry-col {
 flex: 1;
 min-width: 0;
 display: flex;
 flex-direction: column;
 gap: 16px;
}

.v2-photo-item {
 display: block;
 width: 100%;
 margin: 0;
 overflow: hidden;
 border-radius: 12px;
}

.v2-photo-grid-stash {
 display: none;
}

.v2-photo-item img {
 display: block;
 width: 100%;
 height: auto;
 vertical-align: bottom;
 transition: transform 0.4s ease;
}

.v2-photo-item:hover img {
 transform: scale(1.03);
}

.v2-photo-gallery-actions {
 margin-top: 32px;
 text-align: center;
}

.v2-photo-more-btn {
 border: none;
 cursor: pointer;
 font-family: inherit;
}

.v2-film-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 20px;
 margin-top: 32px;
}

.v2-film-item {
 margin: 0;
 display: flex;
 flex-direction: column;
 gap: 12px;
}

.v2-film-item iframe {
 display: block;
 width: 100%;
 aspect-ratio: 16 / 9;
 border: 0;
 border-radius: 12px;
 background: #000000;
}

.v2-film-caption {
 margin: 0;
 font-size: 15px;
 font-weight: 600;
 line-height: 1.4;
 color: #1d1d1f;
 text-align: center;
}


@media (max-width: 900px) {
 .v2-sub-hero {
 min-height: 44vh;
 padding: 100px 0;
 }

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

 /* Mobile: all card grids stack in one column */
 .v2-metrics {
 grid-template-columns: 1fr;
 gap: 16px;
 }

 .v2-metrics--cards {
 grid-template-columns: repeat(4, minmax(132px, 1fr));
 gap: 12px;
 }

 .v2-essentials-grid,
 .v2-awards-grid,
 .v2-contact-grid,
 .v2-film-grid,
 .v2-process-ai-grid {
 grid-template-columns: 1fr;
 gap: 16px;
 }

 .v2-essential-card {
 padding: 24px 20px 28px;
 }

 .v2-essential-card__text {
 font-size: 19px;
 }

 /* Hub / case study portfolio cards */
 body.has-v2-nav .portfolio-wrapper.grid > li.grid-item,
 body.v2-page .portfolio-wrapper.grid > li.grid-item {
 width: 100% !important;
 max-width: 100% !important;
 }

 /* Bootstrap card rows on v2 + case study pages */
 body.has-v2-nav .row.g-4 > [class*="col-"],
 body.has-v2-nav .row.g-3 > [class*="col-"],
 body.v2-page .row.g-4 > [class*="col-"],
 body.v2-page .row.g-3 > [class*="col-"] {
 flex: 0 0 100%;
 max-width: 100%;
 width: 100%;
 }

}

@media (max-width: 520px) {
 .v2-photo-gallery .v2-photo-grid {
 flex-direction: column;
 }
}

/* Case study sub-project grid — full card links, no hover overlay */
.portfolio-boxed .portfolio-card-link {
 display: block;
 color: inherit;
 text-decoration: none;
 cursor: pointer;
}

.portfolio-boxed .portfolio-card-link:hover,
.portfolio-boxed .portfolio-card-link:focus-visible {
 color: inherit;
 text-decoration: none;
}

.portfolio-boxed .portfolio-card-link .portfolio-hover,
.portfolio-boxed .portfolio-card-link .portfolio-overlay {
 display: none !important;
}

.portfolio-boxed .portfolio-card-link:hover {
 transform: translateY(-2px);
 box-shadow: 0 12px 36px rgba(0, 0, 0, 0.1);
}

.portfolio-boxed .portfolio-card-link:hover .portfolio-image img {
 opacity: 1 !important;
}

.portfolio-boxed .portfolio-card-link:focus-visible {
 outline: 2px solid var(--v2-primary, #0066cc);
 outline-offset: 4px;
}

.portfolio-boxed .portfolio-card-link .portfolio-caption {
 text-align: center;
}
