/* Flex motion: progressive enhancement, no scroll interception. */
.hero { border-bottom: 1px solid var(--line); }
.hero-image { inset: -22px; }
.hero-image img { transform: translate3d(var(--scene-x, 0px), var(--scene-y, 0px), 0) scale(1.035); }
.hero-content { z-index: 1; }
.hero-content > .eyebrow { display: flex; align-items: center; gap: 14px; }
.hero-content > .eyebrow::before { content: ""; width: 32px; height: 2px; background: var(--red); flex-shrink: 0; }
.hero h1 { font-weight: 600; }
.hero h1 .headline-line { display: block; color: var(--paper); }
.hero h1 .headline-accent { color: var(--red); margin-left: .31em; }
.hero-caption { z-index: 2; align-items: center; gap: 28px; padding-top: 20px; border-top: 1px solid #ffffff4d; }
.hero-caption a { padding: 8px 0; transition: color .2s; }
.hero-caption a:hover { color: #ff6a89; }
.hero-caption a::after { content: " ↗"; margin-left: 8px; }
.hero-light { position: absolute; width: 650px; height: 650px; left: var(--light-x, 70%); top: var(--light-y, 44%); transform: translate(-50%, -50%); pointer-events: none; background: radial-gradient(circle, #dc1c451c, #dc1c4509 40%, transparent 68%); z-index: 0; opacity: .7; transition: opacity .4s; }
.hero.is-pointer-active .hero-light { opacity: 1; }
.hero-bottom .circle { width: 62px; height: 62px; }
.work-grid { column-gap: clamp(24px, 3vw, 54px); }
.work-card { min-width: 0; perspective: 1000px; }
.artwork { transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); overflow: hidden; }
.artwork img { transform: scale(1.015); }
.artwork:hover img { transform: scale(1.055); }
.artwork::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at var(--light-x, 50%) var(--light-y, 50%), #ffffff25, transparent 55%); opacity: 0; transition: opacity .35s; }
.artwork.is-pointer-active::after { opacity: 1; }
.artwork-zoom { z-index: 1; }
.work-info { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 24px; }
.work-info h3 { transition: color .25s; }
.work-card:hover .work-info h3 { color: #ff6a89; }
.service-group summary { position: relative; transition: color .25s, padding .25s; }
.service-group summary:hover { color: var(--red); padding-left: 10px; }
.service-group summary span { color: var(--red); }
.text-link span, .service-overview-link span { transition: transform .3s; }
.text-link:hover span, .service-overview-link:hover span { transform: translate(4px, -4px); }
.contact { position: relative; isolation: isolate; overflow: hidden; }
.contact::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1; background: radial-gradient(ellipse at var(--light-x, 70%) var(--light-y, 60%), #ff496d80 0%, transparent 65%); opacity: .7; }
.contact-arrow { transform: translate(var(--arrow-x, 0px), var(--arrow-y, 0px)); }
.contact-link:hover .contact-arrow { transform: translate(calc(var(--arrow-x, 0px) + 6px), calc(var(--arrow-y, 0px) - 6px)); }
.services-hero { position: relative; isolation: isolate; overflow: hidden; }
.services-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; opacity: .6; background: radial-gradient(ellipse at var(--light-x, 78%) var(--light-y, 36%), #dc1c4526 0%, transparent 60%); }
.services-heading h1 { transform: translate3d(var(--title-x, 0px), var(--title-y, 0px), 0); }
.service-paths>a { position: relative; isolation: isolate; }
.service-paths>a::before { content: ""; position: absolute; inset: 0; background: #ffffff07; transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2,.7,.2,1); z-index: -1; }
.service-paths>a:hover::before { transform: scaleX(1); }
.service-paths>a>span:last-child { transition: transform .3s, color .3s; }
.service-paths>a:hover>span:last-child { color: #ff6a89; transform: translateY(5px); }
.service-index-nav a { transition: color .25s, padding .25s; }
.service-index-nav a[aria-current="location"] { color: var(--red); font-weight: 700; padding-left: 8px; border-color: var(--red); }
.dark .service-index-nav a[aria-current="location"] { color: #ff6a89; border-color: #ff6a89; }
.service-article-number { transition: transform .35s; }
.service-article:hover .service-article-number { transform: translateY(-3px); }
.service-article h3 { transition: color .25s; }
.service-article:hover h3 { color: var(--red); }
.service-area.dark .service-article:hover h3 { color: #ff6a89; }
.motion-cursor { position: fixed; z-index: 80; top: 0; left: 0; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 1px solid #ff607f; border-radius: 50%; pointer-events: none; opacity: 0; display: none; align-items: center; justify-content: center; color: white; background: transparent; font-size: 12px; font-weight: 600; transition: width .25s, height .25s, margin .25s, background .25s, opacity .2s, border-color .25s; }
.motion-cursor.is-visible { opacity: .8; }
.motion-cursor.is-link { width: 42px; height: 42px; margin: -21px 0 0 -21px; background: #dc1c4510; }
.motion-cursor.is-artwork { width: 76px; height: 76px; margin: -38px 0 0 -38px; background: var(--red); border-color: var(--red); opacity: 1; }
.dialog-open .motion-cursor { opacity: 0!important; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .motion-enabled .motion-cursor { display: flex; }
  .magnetic-target { translate: var(--magnet-x, 0px) var(--magnet-y, 0px); }
  .motion-enabled .hero-image img { will-change: transform; }
  .artwork.is-pointer-active { will-change: transform; }
}
@media(max-width:700px) {
  .hero-image { inset: 0; }
  .hero h1 .headline-accent { margin-left: .15em; }
  .hero-bottom .circle { width: 46px; height: 46px; }
  .hero-light { display: none; }
  .service-index-nav a[aria-current="location"] { padding-left: 12px; }
  .work-grid { row-gap: 48px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-image img,.services-heading h1,.artwork,.artwork:hover img,.contact-arrow,.contact-link:hover .contact-arrow { transform: none; }
  .magnetic-target { translate: none; }
  .motion-cursor { display: none!important; }
}
