@import url('/assets/design-system/tokens.css');
:root { --tk-motion-ease-out: cubic-bezier(.23,1,.32,1); }
/* Feedback stays lightweight; prices, policies and payment state never move. */
.primary-cta,.select-tier,.primary-action,.organizer-link,.event-bottom a {
  transition: transform var(--tk-motion-fast) var(--tk-motion-ease-out), opacity var(--tk-motion-fast) ease;
}
.primary-cta:active:not(:disabled),.select-tier:active:not(:disabled),.primary-action:active,.organizer-link:active,.event-bottom a:active { transform:scale(.97); }
@media (hover:hover) and (pointer:fine) {
  .event-card { transition:transform var(--tk-motion-default) var(--tk-motion-ease-out),border-color var(--tk-motion-default) ease; }
  .event-card:hover { transform:translateY(-3px); }
  .event-visual .event-poster { transition:transform var(--tk-motion-slow) var(--tk-motion-ease-out); }
  .event-card:hover .event-poster { transform:scale(1.015); }
}
@media (hover:none) { .event-card:hover { transform:none; } }
dialog[open] .checkout-shell { opacity:1; transform:scale(1); transition:opacity var(--tk-motion-slow) var(--tk-motion-ease-out),transform var(--tk-motion-slow) var(--tk-motion-ease-out); }
@starting-style { dialog[open] .checkout-shell { opacity:0; transform:scale(.97); } }
@media (prefers-reduced-motion:reduce) {
  .event-card,.event-visual .event-poster,.primary-cta,.select-tier,.primary-action,.organizer-link,.event-bottom a,dialog[open] .checkout-shell { transition:none; animation:none; transform:none!important; }
}
@media (prefers-reduced-motion:no-preference) {
  .hero h1 { animation:tk-introduce var(--tk-motion-slow) var(--tk-motion-ease-out) both; }
  .hero .primary-action { animation:tk-introduce var(--tk-motion-slow) var(--tk-motion-ease-out) 50ms both; }
  @keyframes tk-introduce { from { opacity:.35; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
}
@media (prefers-reduced-motion:no-preference) {
  .event-grid--intro .event-card { animation:tk-introduce var(--tk-motion-slow) var(--tk-motion-ease-out) both; }
  .event-grid--intro .event-card:nth-child(2) { animation-delay:50ms; }
  .event-grid--intro .event-card:nth-child(3) { animation-delay:100ms; }
}
.navlinks a { position:relative; }
.navlinks a::after { position:absolute; right:0; bottom:-6px; left:0; height:2px; border-radius:2px; background:#2dd8f4; content:""; transform:scaleX(0); transform-origin:left; transition:transform var(--tk-motion-default) var(--tk-motion-ease-out); }
@media (hover:hover) and (pointer:fine) { .navlinks a:hover::after { transform:scaleX(1); } }
@media (prefers-reduced-motion:no-preference) {
  .journey-banner img { animation:tk-banner-intro 500ms var(--tk-motion-ease-out) both; }
  .section-heading { animation:tk-introduce var(--tk-motion-slow) var(--tk-motion-ease-out) both; }
  @keyframes tk-banner-intro { from { opacity:.45; } to { opacity:1; } }
}
@media (prefers-reduced-motion:reduce) { .navlinks a::after { transition:none; } }
@media (prefers-reduced-motion:no-preference) {
  .journey-header img { animation:tk-banner-intro 500ms var(--tk-motion-ease-out) both; }
  .appbar img,.phone-shell>img { animation:tk-brand-arrive 500ms var(--tk-motion-ease-out) both; }
  @keyframes tk-brand-arrive { from { opacity:.35; transform:scale(.98); } to { opacity:1; transform:scale(1); } }
}
