/* Cinematic homepage motion: restrained, accessible, desktop-first */
@media (min-width: 801px) and (prefers-reduced-motion: no-preference) {
  .hero .hero-image { animation: aceHeroDrift 24s ease-in-out infinite alternate; transform-origin: 66% 44%; will-change: transform; }
  @keyframes aceHeroDrift { from { transform:scale(1.005) translate3d(0,0,0); } to { transform:scale(1.045) translate3d(-.65%,.45%,0); } }
  .about-photo-inner { transform:translate3d(0,var(--ace-about-offset,0px),0) scale(1.065); will-change:transform; }
  .work-card .work-art { transition:transform .55s cubic-bezier(.2,.75,.2,1),box-shadow .4s ease; }
  .work-card:hover .work-art, .work-card:focus-visible .work-art { transform:translateY(-3px); box-shadow:0 18px 40px rgba(0,0,0,.22); }
  .work-card .work-art::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(135deg,rgba(214,182,107,.11),transparent 55%); opacity:0; transition:opacity .45s ease; }
  .work-card:hover .work-art::after,.work-card:focus-visible .work-art::after { opacity:1; }
  .work-card .work-arrow { transition:transform .35s ease,color .35s ease; }
  .work-card:hover .work-arrow,.work-card:focus-visible .work-arrow { transform:translate(4px,-4px); color:#e7c77e; }
  .ace-reveal { opacity:0; transform:translateY(17px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.2,1); transition-delay:var(--ace-reveal-delay,0ms); }
  .ace-reveal.ace-visible { opacity:1; transform:translateY(0); }
  .contact::after { content:""; position:absolute; width:44vw; height:44vw; max-width:560px; max-height:560px; right:-10%; top:-35%; pointer-events:none; border-radius:50%; background:radial-gradient(circle,rgba(214,182,107,.115),rgba(214,182,107,0) 68%); animation:aceContactGlow 10s ease-in-out infinite alternate; }
  @keyframes aceContactGlow { from { transform:translate3d(0,0,0) scale(.95); opacity:.45; } to { transform:translate3d(-5%,6%,0) scale(1.12); opacity:1; } }
  .contact .gold-btn { position:relative; z-index:1; transition:transform .3s ease,box-shadow .3s ease; }
  .contact .gold-btn:hover,.contact .gold-btn:focus-visible { transform:translateY(-3px); box-shadow:0 12px 30px rgba(214,182,107,.22); }
}
@media (prefers-reduced-motion:reduce) {
 .hero .hero-image,.about-photo-inner,.contact::after { animation:none!important; transform:none!important; }
 .ace-reveal { opacity:1!important; transform:none!important; transition:none!important; }
}

/* Experience intro: double the supporting copy size on desktop. */
@media (min-width: 801px) {
  .experience .section-top > p { font-size: 32.5px !important; line-height: 1.35 !important; max-width: 530px; }
}

/* Align Experience supporting statement with the right-hand experience copy below. */
@media (min-width: 801px) {
  .experience .section-top > p { margin-left: -85px; }
}

/* Align Experience introduction with the content column below on desktop. */
@media (min-width: 1100px) {
  .experience .section-top > p { margin-right: clamp(80px, 10vw, 210px); }
}

/* Fine-tune desktop Experience supporting-copy alignment: +30px right. */
@media (min-width: 1100px) {
  .experience .section-top > p { position:relative; left:30px; }
}

/* Case-study imagery: consistent 50% black overlay, including hover/focus. */
.work .work-card .work-art::after,
.work .work-card:hover .work-art::after,
.work .work-card:focus-visible .work-art::after {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:rgba(0,0,0,.5)!important; opacity:1!important;
}
/* Additional cinematic scroll response without moving the copy or controls. */
@media (min-width:801px) and (prefers-reduced-motion:no-preference) {
  .hero .hero-image { animation:aceHeroParallaxDrift 20s ease-in-out infinite alternate; }
  @keyframes aceHeroParallaxDrift {
    from { transform:translate3d(0,var(--ace-hero-parallax,0px),0) scale(1.015); }
    to { transform:translate3d(-.6%,var(--ace-hero-parallax,0px),0) scale(1.045); }
  }
  .hero-content { transform:translate3d(0,var(--ace-hero-copy-parallax,0px),0); }
  .speaking-feature-image { transform:translate3d(0,var(--ace-speaking-parallax,0px),0) scale(1.035); will-change:transform; }
  .work-card { transition:transform .55s cubic-bezier(.2,.75,.2,1); }
  .work-card:hover,.work-card:focus-visible { transform:translateY(-5px); }
}

/* Hero parallax is background-only. Portrait, copy and buttons remain stationary. */
@media (min-width:801px) and (prefers-reduced-motion:no-preference) {
 .hero { background-position:48% calc(50% + var(--ace-hero-bg-shift, 0px))!important; }
 .hero .hero-image { animation:none!important; transform:none!important; will-change:auto!important; }
 .hero .hero-content { transform:none!important; }
}

/* Temporarily disable all hero parallax until the clear-background transition is approved. */
.hero { background-position:48% center!important; }
.hero .hero-image,.hero .hero-content { animation:none!important; transform:none!important; }

/* Clear-background reveal: activates only after hero-desktop-clear.jpg is uploaded. */
@media (min-width:801px) and (prefers-reduced-motion:no-preference) {
 .hero.ace-clear-ready::before { content:"";position:absolute;inset:0;opacity:var(--ace-clear-reveal,0);background:url("hero-desktop-clear.jpg") 48% center/cover no-repeat;mix-blend-mode:normal;pointer-events:none;z-index:0;transition:opacity .08s linear; }
 .hero.ace-clear-ready .hero-image,.hero.ace-clear-ready .hero-content {transform:none!important;animation:none!important;}
}

/* Desktop editorial alignment refinements. */
@media (min-width:1100px) {
 .about .about-text h2 em {white-space:nowrap;}
 .experience .section-top {align-items:flex-end!important;}
 .experience .section-top > p {align-self:flex-end!important;margin-bottom:0!important;}
 .work .section-top > p {font-size:32.5px!important;line-height:1.35!important;max-width:530px!important;}
}
@media (min-width:801px) and (max-width:1099px) {
 .work .section-top > p {font-size:clamp(22px,2.8vw,30px)!important;line-height:1.35!important;}
}

/* Keep the sixth capability subtitle together on one line. */
.capabilities .capability-six-tagline{display:block;white-space:nowrap!important;letter-spacing:0!important;font-size:clamp(7px,.67vw,10px)!important;}
@media(max-width:800px){.capabilities .capability-six-tagline{font-size:clamp(7px,1.5vw,10px)!important;}}

/* Reduce supporting introductions in sections 01 and 03 by 25% on desktop. */
@media (min-width:1100px){
 .work .section-top > p,.experience .section-top > p {font-size:24.375px!important;}
}
@media (min-width:801px) and (max-width:1099px){
 .work .section-top > p,.experience .section-top > p {font-size:clamp(16.5px,2.1vw,22.5px)!important;}
}

/* Section 05: place keynote portrait to the right of the speaking copy. */
@media(min-width:801px){
 .speaking-feature{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;}
 .speaking-feature-image{background-position:center,72% center!important;}
}
/* Section 06: lower the portrait framing to reveal the face. */
@media(min-width:801px){
 .contact{background-position:center 75%,center 28%!important;}
}
@media(max-width:800px){
 .speaking-feature-image{background-position:center,70% center!important;}
 .contact{background-position:center 75%,center 28%!important;}
}

/* Speaking portrait: preserve full transparent PNG instead of cropping the head. */
.speaking-feature-image{
 background-image:linear-gradient(0deg,rgba(0,0,0,.12),transparent 55%),url("ace-speaking-hero.png")!important;
 background-size:100% 100%,contain!important;
 background-position:center center,center bottom!important;
 background-repeat:no-repeat!important;
 background-color:#23201c!important;
 min-height:clamp(440px,39vw,660px)!important;
}
@media(max-width:800px){.speaking-feature-image{min-height:420px!important;background-position:center center,center bottom!important;}}

/* Contact / Next Move: shift the composite portrait right, clear of headline. */
@media(min-width:801px){
 .contact{
  background-size:cover,calc(100% + 360px) auto!important;
  background-position:center center,calc(50% + 160px) 75%!important;
 }
}
