/* Shared motion language. Layout, balances and action hit areas remain stable. */
:root { --rd-ease: cubic-bezier(.2,.7,.2,1); }
.rd-motion-surface { position: relative; }
.rd-pointer-light {
  position:absolute; inset:0; z-index:2; margin:0; padding:0; width:auto; height:auto; border-radius:inherit; pointer-events:none;
  opacity:0; background:radial-gradient(380px circle at var(--rd-mx,50%) var(--rd-my,50%),color-mix(in srgb,var(--rd-red) 12%,transparent),transparent 72%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rd-red) 24%,transparent);
  transition:opacity 320ms var(--rd-ease);
}
.rd-pointer-active > .rd-pointer-light { opacity:1; }
.rd-public-hero > .rd-pointer-light,.auth-scene > .rd-pointer-light,.game-card > .rd-pointer-light {
  background:radial-gradient(650px circle at var(--rd-mx,50%) var(--rd-my,50%),color-mix(in srgb,var(--rd-red) 7%,transparent),transparent 75%);
  box-shadow:none;
}
/* Pointer depth is confined to artwork. Copy and clickable elements never drift. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .rd-public-hero > picture img,.auth-scene__art,.platform-shell .game-card__art {
    transform:translate3d(var(--rd-dx,0px),var(--rd-dy,0px),0) scale(1.035);
    transition:transform 650ms var(--rd-ease);
  }
  .rd-track-gallery figure img { transition:transform 700ms var(--rd-ease); }
  .rd-track-gallery figure:hover img { transform:scale(1.025); }
  .rd-feature-symbol { transition:transform 420ms var(--rd-ease); }
  .rd-public-features article:hover .rd-feature-symbol { transform:translate(3px,-3px); }
  .rd-install-showcase > img,.rd-install > img { transition:transform 450ms var(--rd-ease); }
  .rd-install-showcase:hover > img,.rd-install:hover > img { transform:rotate(-5deg) scale(1.04); }
  .rd-button > span[aria-hidden],.rd-text-link > span[aria-hidden],.roadster-manual > a > span { display:inline-block;transition:transform 220ms var(--rd-ease); }
  .rd-button:hover > span[aria-hidden],.rd-text-link:hover > span[aria-hidden],.roadster-manual > a:hover > span { transform:translateX(4px); }
  .rd-public-brand img,.platform-shell .brand img,.auth-panel__brand img { transition:filter 350ms ease; }
  .rd-public-brand:hover img,.platform-shell .brand:hover img,.auth-panel__brand:hover img { filter:drop-shadow(0 0 13px color-mix(in srgb,var(--rd-red) 35%,transparent)); }
}
/* All interfaces: responsive actions, fields and navigation without moving targets. */
:where(.rd-public,.platform-shell,.auth-shell,.af-layout,.admin-shell,.pu-layout) :where(button,a,summary,input,select,textarea) {
  transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 200ms ease,filter 180ms ease;
}
:where(.rd-button,.auth-submit,.deposit-button,.pu-header-deposit,[data-game-action]):not(:disabled):hover {
  box-shadow:0 5px 24px color-mix(in srgb,var(--rd-red) 20%,transparent);
}
:where(.rd-public,.platform-shell,.auth-shell,.af-layout,.admin-shell,.pu-layout) :where(button,a):not(:disabled):active { filter:brightness(.88); }
:where(.rd-public,.platform-shell,.auth-shell,.af-layout,.admin-shell,.pu-layout) :where(input,select,textarea):focus-visible {
  outline:2px solid color-mix(in srgb,var(--rd-red) 70%,white);outline-offset:3px;
}
:where(.rd-public,.platform-shell,.auth-shell,.af-layout,.admin-shell,.pu-layout) :where(a,button,summary):focus-visible {
  outline:2px solid color-mix(in srgb,var(--rd-red) 70%,white);outline-offset:4px;
}
:where(.af-navigation,.admin-shell .sidebar,.platform-shell .sidebar) a:hover { background-color:color-mix(in srgb,var(--rd-red) 8%,transparent); }
.rd-public-nav a { position:relative; }
.rd-public-nav a:after { content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--rd-red);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--rd-ease); }
.rd-public-nav a:hover:after,.rd-public-nav a:focus-visible:after { transform:scaleX(1); }
.rd-faq-grid summary:after { transition:transform 220ms var(--rd-ease); }
.rd-faq-grid details[open] summary:after { transform:rotate(180deg); }
@keyframes rd-dialog-enter { from { opacity:0;translate:0 10px; } to { opacity:1;translate:0 0; } }
@media(prefers-reduced-motion:no-preference) {
  .rd-install-dialog[open] { animation:rd-dialog-enter 280ms var(--rd-ease); }
  .rd-install-dialog[open]::backdrop { animation:rd-backdrop-enter 240ms ease; }
  .rd-hero-copy h1 em { background-image:linear-gradient(105deg,var(--rd-red) 30%,#ffd4d7 47%,var(--rd-red) 64%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:rd-word-sheen 1500ms 350ms ease-out both; }
}
@keyframes rd-word-sheen { from { background-position:100% 50%; } to { background-position:0% 50%; } }
@keyframes rd-backdrop-enter { from { opacity:0; } to { opacity:1; } }
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce) {
  .rd-pointer-light { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .rd-public-hero > picture img,.auth-scene__art,.platform-shell .game-card__art,.rd-track-gallery figure img { transform:none!important; }
  .rd-hero-copy h1 em { background:none;color:var(--rd-red); }
}
