/* Keep keyboard targets clear without adding motion or hiding source content. */
.hero-foot, .hero-media { animation: none; }
.header { background: var(--paper); backdrop-filter: none; }
.work-image img[src*="/cases/"] { object-fit: contain; background: #3f3f3f; }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #512db8;
  outline-offset: 5px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

/* Home hero: keep the editorial single-column composition compact enough to reveal proof below the fold. */
.home-hero { padding-top: 42px; padding-bottom: 28px; }
.home-hero .eyebrow { margin-bottom: 24px; }
.home-hero h1 { max-width: 1500px; font-size: clamp(60px, 6.5vw, 96px); line-height: .96; }
.home-hero h1 > .motion-line:first-child,
.home-hero h1 > .motion-line:first-child .motion-line__inner { color: var(--ink); }
.motion-line { display: block; overflow: clip; padding-block: .035em; margin-block: -.035em; }
.motion-line__inner { display: block; }
.motion-line--muted,
.motion-line--muted .motion-line__inner { color: var(--muted); }
.home-hero .hero-foot { margin-top: 30px; }
.home-hero + .hero-media { aspect-ratio: 4.35; margin-top: 8px; animation: home-image-reveal 1.05s cubic-bezier(.2,.75,.25,1) .24s both; }
.home-hero + .hero-media .media-label { animation: home-label-in .62s cubic-bezier(.2,.65,.3,1) 1.18s both; }
@keyframes home-image-reveal { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes home-label-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
body[data-page-ready] .header .brand,
body[data-page-ready] .header .nav,
body[data-page-ready] .header .header-actions {
  animation: site-header-item-in .7s cubic-bezier(.16,1,.3,1) both;
}
body[data-page-ready] .header .nav { animation-delay: .08s; }
body[data-page-ready] .header .header-actions { animation-delay: .16s; }
@keyframes site-header-item-in {
  from { opacity: .72; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}
@media(max-width:1100px) {
  .home-hero { padding-top: 38px; }
  .home-hero h1 { font-size: clamp(58px, 8vw, 86px); }
  .home-hero + .hero-media { aspect-ratio: 2.7; }
}
@media(max-width:600px) {
  .home-hero { padding-top: 37px; padding-bottom: 35px; }
  .home-hero h1 { font-size: clamp(44px, 10.5vw, 63px); }
  .home-hero + .hero-media { aspect-ratio: 1.27; animation: none; }
  .home-hero + .hero-media .media-label { animation: none; }
}
@media(prefers-reduced-motion:reduce) {
  .home-hero + .hero-media, .home-hero + .hero-media .media-label { animation: none; }
  body[data-page-ready] .header .brand,
  body[data-page-ready] .header .nav,
  body[data-page-ready] .header .header-actions { animation: none; }
}

/* Editorial motion: progressive enhancement; HTML stays readable without JS. */
.home-hero h1 > .motion-line--muted,
.content-resources .content-hero h1 > .motion-line--muted { color: var(--muted); }
.content-resources .content-hero h1 > .motion-line:first-child,
.content-resources .content-hero h1 > .motion-line:first-child .motion-line__inner { color: var(--ink); }
.sector-hero h1 > .motion-line:first-child,
.sector-hero h1 > .motion-line:first-child .motion-line__inner { color: var(--ink); }

/* Fluid desktop scale: changes continuously from standard desktop toward the 1920px canvas. */
@media (min-width: 1101px) {
  .section { padding-block: clamp(84px, calc(2.92vw + 42px), 98px); }
  .section-top { margin-bottom: clamp(38px, calc(2.08vw + 8px), 48px); }

  .home-hero { padding-top: clamp(36px, calc(1.25vw + 18px), 46px); padding-bottom: clamp(24px, 1.25vw, 28px); }
  .home-hero .eyebrow { margin-bottom: clamp(24px, calc(.63vw + 16px), 28px); }
  .home-hero h1 { font-size: clamp(82px, calc(2.95vw + 45px), 106px); line-height: .98; }
  .home-hero .hero-foot { margin-top: clamp(24px, calc(1.25vw + 8px), 36px); }
  .home-hero + .hero-media { aspect-ratio: 4.35; margin-top: clamp(8px, 1vw, 16px); }
  .ticker { padding-block: clamp(22px, calc(.83vw + 10px), 26px); }

  .sector-hero { padding-top: clamp(48px, calc(1.04vw + 34px), 60px); }
  .sector-hero .eyebrow { margin-bottom: clamp(26px, calc(.63vw + 18px), 30px); }
  .sector-hero h1 { font-size: clamp(80px, calc(3.05vw + 36px), 95px); line-height: 1; }
  .sector-hero .hero-foot { margin-top: clamp(32px, calc(1.46vw + 12px), 42px); margin-bottom: clamp(40px, 2.9vw, 56px); }
  .sector-hero .hero-foot p { font-size: clamp(16px, calc(.21vw + 13px), 17px); line-height: 1.7; }
  .sector-banner,
  .sector-banner figure { min-height: clamp(336px, calc(425px - 4.1vw), 380px); }
  .sector-banner aside { padding: clamp(24px, calc(40px - 1.1vw), 30px); }
  .sector-banner aside h2 { font-size: clamp(29px, calc(36px - .42vw), 34px); margin-top: clamp(10px, calc(16px - .3vw), 14px); }
  .mini-flow { margin-top: clamp(14px, calc(24px - .6vw), 20px); }
  .mini-flow li { padding-block: clamp(7px, calc(10px - .15vw), 9px); }

  .content-hero { padding-block: clamp(46px, calc(1.04vw + 31px), 54px) clamp(60px, calc(1.46vw + 39px), 68px); }
  .content-hero .eyebrow { margin-bottom: clamp(26px, calc(.83vw + 14px), 30px); }
  .content-hero h1 { font-size: clamp(70px, calc(2.15vw + 46px), 90px); line-height: 1; }
  .content-cases .content-hero h1 { font-size: clamp(60px, calc(1.7vw + 42px), 76px); }
  .content-intro { margin-top: clamp(30px, calc(.83vw + 18px), 34px); }

  .resource-hero { padding-bottom: clamp(60px, calc(1.25vw + 42px), 72px); }
  .resource-hero h1 { font-size: clamp(66px, calc(2.2vw + 41px), 84px); line-height: 1; }
  .resource-intro { margin-top: clamp(34px, calc(1.04vw + 19px), 42px); font-size: clamp(18px, calc(.21vw + 15px), 19px); }
  .resource-hero .platform-list { margin-top: clamp(30px, calc(.83vw + 18px), 36px); }

  .case-hero { padding-top: clamp(28px, calc(.83vw + 16px), 36px); }
  .case-hero-grid { gap: clamp(34px, calc(1.46vw + 13px), 48px); }
  .case-intro h1 { font-size: clamp(45px, calc(1.7vw + 25px), 58px); line-height: 1.04; }
  .case-deck { font-size: clamp(16px, calc(.21vw + 13px), 17px); line-height: 1.75; }
}
