/* motion.css - Bewegungssystem Deutscher Maserati-Club. Nur transform/opacity/clip-path. Reduced-motion sicher. */
:root{
  --ease-lux:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.22,1,.36,1);
  --ease-ui:cubic-bezier(.33,1,.68,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-loop:cubic-bezier(.37,0,.63,1);
  --dur-micro:.30s;--dur-short:.45s;--dur-med:.70s;--dur-hero:.90s;
  --reveal-y:24px;--stagger:60ms;
}
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto;}
}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s;animation-timing-function:var(--ease-ui);}

/* .js-ready-Gating: Start-States nur wenn JS aktiv ist (Progressive Enhancement) */
html.js-ready [data-animate]{opacity:0;will-change:transform,opacity;}
html.js-ready [data-animate="fade"]{transform:none;}
html.js-ready [data-animate="up"],
html.js-ready [data-animate=""],
html.js-ready [data-animate]:not([data-animate="fade"]):not([data-animate="lines"]):not([data-animate="clip"]):not([data-animate="scale"]){transform:translate3d(0,var(--reveal-y),0);}
html.js-ready [data-animate="scale"]{transform:scale(.96);}
html.js-ready [data-animate="clip"]{clip-path:inset(0 100% 0 0);opacity:1;}

/* CSS/IO-Reveal-Pfad (Fallback ohne GSAP) */
html.js-ready [data-animate].is-inview{
  opacity:1;transform:none;clip-path:inset(0 0 0 0);
  transition:opacity var(--dur-med) var(--ease-lux),transform var(--dur-med) var(--ease-lux),clip-path var(--dur-hero) var(--ease-lux);
  transition-delay:calc(var(--i,0) * var(--stagger));will-change:auto;
}

/* SplitText-Alternative: Zeilenmasken */
.line{display:block;overflow:hidden;}
.line-inner{display:block;will-change:transform;}
html.js-ready [data-animate="lines"]{opacity:1;}
html.js-ready [data-animate="lines"] .line-inner{transform:translate3d(0,110%,0);}
html.js-ready [data-animate="lines"].is-inview .line-inner{
  transform:none;transition:transform var(--dur-hero) var(--ease-lux);
  transition-delay:calc(var(--lineindex,0) * 90ms);
}


/* Header: Shrink-Erscheinung + Hide-on-down / Show-on-up (nur transform + Overlay-Opacity) */
.site-header{transition:transform .5s var(--ease-lux);will-change:transform;}
.site-header.is-hidden{transform:translate3d(0,-100%,0);}
.site-header .brand{transition:transform .4s var(--ease-ui);transform-origin:left center;}
.site-header.is-scrolled .brand{transform:scale(.9);}
.site-header::before{content:"";position:absolute;inset:0;background:var(--bg-2);opacity:0;transition:opacity .4s var(--ease-ui);pointer-events:none;z-index:-1;}
.site-header.is-scrolled::before{opacity:.9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}

/* Mega-Menu Panel + gestaffelte Items */
[data-menu-panel]{opacity:0;visibility:hidden;transform:translate3d(0,-8px,0);pointer-events:none;transition:opacity .35s var(--ease-ui),transform .35s var(--ease-lux),visibility 0s linear .35s;will-change:transform,opacity;}
[data-menu-panel].is-open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s,0s,0s;}
[data-menu-panel] [data-menu-item]{opacity:0;transform:translate3d(0,10px,0);transition:opacity .3s var(--ease-ui),transform .35s var(--ease-lux);}
[data-menu-panel].is-open [data-menu-item]{opacity:1;transform:none;transition-delay:calc(.05s + var(--i,0) * 40ms);}

/* Mobiler Nav-Drawer */
[data-mobile-nav]{transform:translate3d(100%,0,0);transition:transform .5s var(--ease-lux);will-change:transform;}
[data-mobile-nav].is-open{transform:none;}
body.nav-open{overflow:hidden;}

/* Scroll-Progress */
.dmc-progress{position:fixed;top:0;left:0;right:0;height:2px;transform:scaleX(0);transform-origin:0 50%;background:var(--accent);z-index:1000;pointer-events:none;will-change:transform;}

/* Dezenter Cursor (nur pointer:fine, per JS erzeugt) */
.dmc-cursor{position:fixed;top:0;left:0;z-index:1200;pointer-events:none;mix-blend-mode:difference;}
.dmc-cursor__dot{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;transition:transform .25s var(--ease-ui);}
.dmc-cursor__ring{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(255,255,255,.6);border-radius:50%;transition:transform .3s var(--ease-ui),opacity .3s;}
.dmc-cursor.is-hover .dmc-cursor__ring{transform:scale(1.7);}
.dmc-cursor.is-hover .dmc-cursor__dot{transform:scale(.4);}

/* MPA Page-Transition Overlay (Fallback ohne View-Transitions-API) */
.dmc-overlay{position:fixed;inset:0;z-index:1500;background:var(--bg);transform:translate3d(0,100%,0);pointer-events:none;will-change:transform;}
.dmc-overlay.is-active{transform:translate3d(0,0,0);transition:transform .5s var(--ease-lux);pointer-events:auto;}

/* Home Event-Rail: Desktop gepinnt (JS), Mobil natives Scroll-Snap */
[data-rail]{position:relative;}
[data-rail-track]{display:flex;}
@media (max-width:1023px){
  [data-rail-track]{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
  [data-rail-track] > *{scroll-snap-align:start;flex:0 0 auto;}
}

/* Consent-Banner */
.consent{transform:translate3d(0,120%,0);transition:transform .5s var(--ease-lux);will-change:transform;}
.consent.is-visible{transform:none;}

/* Scroll-Cue + Sheen Keyframes */
@keyframes dmc-bob{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,6px,0);}}
.dmc-scroll-cue{animation:dmc-bob 1.6s var(--ease-loop) infinite;}
@keyframes dmc-sheen{from{transform:translate3d(-120%,0,0);}to{transform:translate3d(120%,0,0);}}

/* Reduced-Motion: alles sofort im Zielzustand, keine Loops */
@media (prefers-reduced-motion:reduce){
  html.js-ready [data-animate],
  html.js-ready [data-animate=lines] .line-inner,
  html.js-ready [data-animate=clip],
  html.js-ready [data-animate=scale]{opacity:1 !important;transform:none !important;clip-path:none !important;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .dmc-cursor{display:none !important;}
  .dmc-scroll-cue{animation:none !important;}
}
