/* Motion follows the existing editorial composition and orange brand accents. */
section[id] { scroll-margin-top: 86px; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 6px; }
.reveal { opacity: 1; transform: none; }
.motion-enabled .reveal { opacity: 0; transform: translateY(32px); transition: opacity .8s ease, transform .9s cubic-bezier(.16,1,.3,1); transition-delay: var(--reveal-delay, 0ms); }
.motion-enabled .reveal.visible { opacity: 1; transform: none; }
.hero-content { animation: none; }
.hero-content h1 { line-height: .94; }
.hero-content h1 > * { animation: title-arrive 1.15s cubic-bezier(.16,1,.3,1) both; }
.hero-content h1 > :nth-child(1) { animation-delay: .3s; }
.hero-content h1 > :nth-child(2) { animation-delay: .44s; }
.hero-content h1 > :nth-child(3) { animation-delay: .58s; }
.hero-shutter { pointer-events: none; animation-duration: .8s; }
.hero-accent-top { animation: none; }
.hero-intro, .hero-actions, .hero-signature { animation: title-arrive 1s cubic-bezier(.16,1,.3,1) .65s both; }
@keyframes title-arrive { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
.motion-word { display: inline-block; }
.motion-heading .motion-word { opacity: 0; translate: 0 22px; transition: opacity .65s ease, translate .85s cubic-bezier(.16,1,.3,1); transition-delay: var(--word-delay,0ms); }
.motion-heading.in-view .motion-word { opacity: 1; translate: 0 0; }
.reading-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 120; background: var(--orange); transform: scaleX(var(--reading,0)); transform-origin: left; pointer-events: none; }
.chapter-nav { position: fixed; bottom: 22px; left: 50%; translate: -50% 0; z-index: 90; display: flex; align-items: center; gap: 5px; padding: 5px 10px 5px 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 40px; background: rgba(15,15,15,.88); color: white; backdrop-filter: blur(16px); box-shadow: 0 6px 24px #0002; }
.chapter-label { width: 104px; font-size: 12px; letter-spacing: .06em; }
.chapter-nav a { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; font-size: 12px; color: #aaa; transition: background .3s, color .3s; }
.chapter-nav a:hover, .chapter-nav a[aria-current] { background: var(--orange); color: #111; }
.section-kicker span { transform-origin: left; }
.motion-enabled .section-kicker.visible span { animation: line-arrive .8s cubic-bezier(.16,1,.3,1) both; }
@keyframes line-arrive { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.service-card { overflow: hidden; isolation: isolate; }
.service-card::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: 0; background: radial-gradient(260px circle at var(--pointer-x,50%) var(--pointer-y,50%),#ff6b0033,transparent 75%); transition: opacity .35s; pointer-events: none; }
.service-card:hover::before { opacity: 1; }
.service-card .corner { transition: rotate .5s cubic-bezier(.16,1,.3,1); }
.service-card:hover .corner { rotate: 90deg; }
.case-visual { isolation: isolate; }
.project-cursor { display: none; }
.process-list li { position: relative; transition: background .5s ease; }
.process-list li::after { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .7s cubic-bezier(.16,1,.3,1); }
.process-list li.is-current { background: #ffffff08; }
.process-list li.is-current::after { transform: scaleX(1); }
.contact::before { background: radial-gradient(circle at var(--glow-x,80%) var(--glow-y,80%),rgba(255,107,0,.21),transparent 45%); }
.main-nav a[aria-current]::after { transform: scaleX(1); }
.site-footer { padding-bottom: 92px; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .hero-media { translate: 0 var(--hero-depth,0px); scale: 1.035; }
  .hero-watermark { translate: var(--watermark-x,0px) 0; }
  .about-photo img { transform: translateY(var(--photo-depth,0px)) scale(1.09); transition: none; }
  .case-main { transform: scale(1.055) translate(var(--image-x,0px),var(--image-y,0px)); transition: transform .6s cubic-bezier(.16,1,.3,1); }
  .case-visual:hover .case-main { transform: scale(1.08) translate(var(--image-x,0px),var(--image-y,0px)); }
  .case-detail { translate: var(--detail-x,0px) var(--detail-y,0px); transition: translate .5s cubic-bezier(.16,1,.3,1), transform .5s; }
  .case-visual:hover::after { opacity: 0; }
  .project-cursor { position: absolute; display: grid; place-content: center; left: var(--pointer-x,50%); top: var(--pointer-y,50%); width: 86px; height: 86px; translate: -50% -50%; border-radius: 50%; background: var(--orange); color: #111; font-size: 12px; font-weight: 700; text-align: center; line-height: 1.5; opacity: 0; scale: .7; transition: opacity .2s,scale .3s; pointer-events: none; }
  .case-visual:hover .project-cursor { opacity: 1; scale: 1; }
  .hero-actions a, .contact-actions a, .nav-cta { translate: var(--magnet-x,0px) var(--magnet-y,0px); transition: translate .3s cubic-bezier(.16,1,.3,1),background .25s,color .25s; }
}
@media (max-width:760px) {
  .chapter-nav { display: none; }
  .site-footer { padding-bottom: 26px; }
  .hero-content { position: relative; left: auto; right: auto; bottom: auto; top: auto; padding: 260px 17px 34px; }
  .hero-media { height: 420px; }
  .hero-kicker { font-size: 12px; line-height: 1.6; max-width: 310px; }
  .hero-intro { font-size: 16px; }
  .hero-content h1 { font-size: clamp(3.8rem,18vw,5.4rem); line-height: .96; }
  .main-nav { visibility: hidden; }
  .main-nav.open { visibility: visible; }
  .motion-enabled .reveal { transition-delay: 0ms; transform: translateY(18px); }
  .motion-enabled .reveal.visible { transform: none; }
}
@media (prefers-reduced-motion:reduce) {
  .motion-heading .motion-word, .motion-enabled .reveal { opacity: 1; translate: none; transform: none; }
  .hero-content h1 > *, .hero-intro, .hero-actions, .hero-signature { animation: none; }
  .project-cursor { display: none; }
}
