/* Original app/premium-motion.css; scoped, not redesigned. */
@scope (.platform-ui) {
/* PM01 Header: focus, theme and account controls. */
.headerSearch .search { transition: border-color .18s ease,box-shadow .18s ease; }
.headerSearch .search:focus { border-color: var(--accent-primary); outline: 2px solid var(--ctrl-focus); outline-offset: 1px; }
.iconButton.themeToggle svg { transition: transform .22s ease,opacity .22s ease; }
.themeToggle[aria-pressed="true"] svg { transform: rotate(24deg); }
.themeToggle[aria-pressed="false"] svg { transform: rotate(-12deg); }
.themeToggle:active svg { opacity: .65; }
.headerAuthLogin,.headerAuthSignup { transition: background-color .15s ease,transform .15s ease; }
.headerAuthLogin svg,.hd-header-clock svg { transition: transform .18s ease,color .18s ease; }
.topbar { transition: border-color .2s ease; }

/* PM01-T Theme switching: keep response immediate, but animate colors only. */
@media (prefers-reduced-motion: no-preference) {
  :scope[data-theme-transition="1"] :is(
    :scope,
    .topbar,
    .navDrop,
    .navToggle,
    .headerSearch .search,
    .headerTools .iconButton,
    .headerTools .headerInbox,
    .headerAuthLogin,
    .headerAuthSignup,
    .profileMini,
    .hd-sidebar,
    .hd-nav-link,
    .hd-nav-submenu,
    .nntvCard,
    .pageHero,
    .datePill,
    .field,
    .odd,
    .bcBoard,
    .bcRow,
    .mobileNav,
    .mobileNavTile,
    .mobileNavLink,
    .floatChatPanel,
    .floatChatPanel .chatPanel,
    .floatChatPanel .chatLog,
    .floatChatPanel .chatComposer,
    .floatChatPanel .chatComposer .field,
    .chatPanel,
    .beetalkMount,
    .nvDialog,
    .nenetvModalCard,
    .userCardPanel
  ) {
    transition:
      background-color .16s ease-in-out,
      border-color .16s ease-in-out,
      color .16s ease-in-out,
      fill .16s ease-in-out,
      stroke .16s ease-in-out;
  }
}

/* PM02 Sidebar: decorative motion never changes hidden/menu semantics. */
.hd-nav-link > svg:first-child { transition: transform .18s ease,color .18s ease; }
.hd-nav-submenu:not([hidden]) { animation: pm-reveal .18s ease-out; }
.hd-nav-link.hd-active { transition: background-color .18s ease,border-color .18s ease,color .18s ease; }

/* PM03 Cards and link accents. Absolute point lines reserve no space. */
:is(.analysisCard,.hd-analysis-story,.hd-feature) { position: relative; }
:is(.analysisCard,.hd-analysis-story,.hd-feature:not(.hd-feature-event))::after {
  content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 2px;
  border-radius: 2px; background: var(--accent-primary); opacity: 0;
  transform: scaleY(.65); transition: transform .2s ease,opacity .2s ease; pointer-events: none;
}
.hd-features .hd-feature-event { isolation: isolate; overflow: hidden; }
.hd-features .hd-feature-event::before {
  content: ""; position: absolute; width: 190px; height: 190px; left: 50%; top: 50%;
  border-radius: 50%; background: radial-gradient(circle,color-mix(in srgb,var(--accent-primary) 14%,transparent) 0%,color-mix(in srgb,var(--accent-primary) 7%,transparent) 40%,transparent 72%);
  opacity: 0; transform: translate(-50%,-50%) scale(.3);
  transition: opacity .4s ease,transform .55s ease; pointer-events: none; z-index: 0;
}
.hd-features .hd-feature-event > * { position: relative; z-index: 1; }
.hd-sidebar .hd-nav-partner > .hd-nav-link { position: relative; overflow: hidden; }
.hd-sidebar .hd-nav-partner > .hd-nav-link::after {
  content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px;
  background: linear-gradient(90deg,var(--accent-primary),color-mix(in srgb,var(--accent-primary) 55%,var(--text-primary)));
  transform: scaleX(0); transform-origin: left;
  transition: transform .4s ease-out; pointer-events: none;
}
:is(.analysisCard,.hd-analysis-story,.shopProduct) {
  transition: transform .2s ease,border-color .2s ease,background-color .2s ease;
}
:is(.hd-more,.hd-feature-link,.moreBtn,.linkBtn) svg { transition: transform .18s ease; }
:is(.hd-live-label,.hd-upcoming-label,.analysisBadge,.bcBadge,.odd,.bcOdd) {
  transition: background-color .18s ease,border-color .18s ease,color .18s ease;
}
.hd-rank :is(.rankNo,.rankNpBadge b) { transition: color .18s ease; }

/* PM04 Thumbnails: no new sources, player or team-logo selectors. */
.shopProduct .shopThumb,.giftProductMedia { overflow: hidden; }
.shopProduct .shopThumb img { transition: transform .25s ease; }
.homeHlThumb,.hlThumb { overflow: hidden; }
:is(.homeHlThumb,.hlThumb) img { transition: transform .28s ease; }

/* PM05 Common controls and focus. Native click targets remain unchanged. */
:is(.primaryBtn,.ghostBtn,.uiBtn,.nvBtn,.likeBtn,.slipRemove,.pager a,.pager button,.tab) {
  transition: transform .13s ease,background-color .15s ease,border-color .15s ease,color .15s ease;
}
:is(.primaryBtn,.ghostBtn,.uiBtn,.nvBtn,.likeBtn,.slipRemove,.headerAuthLogin,.headerAuthSignup):active:not(:disabled):not([aria-disabled="true"]) {
  transform: scale(.98);
}
:is(.canonicalBoardSearch,.sportsInjurySearchField input,.analysisSearch,.field,.sportsSelect) {
  transition: border-color .18s ease,outline-color .18s ease;
}
:is(.analysisSearch,.sportsSelect):focus-visible { outline: 2px solid var(--ctrl-focus); outline-offset: 2px; }
.canonicalBoardSearch:focus-within { border-color: var(--accent-primary); }
input[type="checkbox"] { transition: background-color .15s ease,border-color .15s ease; }

/* PM06 Existing mounts only: small dialogs, menus and at most five slip rows. */
:is(.navDrop.open,.headerSearchDrop,.nvDialog,[role="dialog"]:not(.nvDialog),.shopUserMenu) {
  animation: pm-pop .18s ease-out;
}
.predictionSlip .slipItem { animation: pm-reveal .18s ease-out; }
.headerInboxDot { animation: pm-pop .2s ease-out; }
.nvToast.success .nvToastMark { animation: pm-pop .22s ease-out; }
/* Remove legacy unread loops, not the real unread indicator. */
.headerInbox.is-unread,.headerInbox.is-unread .headerInboxIcon,.headerInbox.is-unread .headerInboxPulse { animation: none; }
@keyframes pm-reveal {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pm-pop {
  from { opacity: 0; transform: scale(.96); }
  to { opacity: 1; transform: scale(1); }
}

/* PM07 Pointer-only accents. Touch interaction never gains sticky hover motion. */
@media (hover: hover) and (pointer: fine) {
  .hd-features .hd-feature-event:is(:hover,:focus-within)::before { opacity: 1; transform: translate(-50%,-50%) scale(1.5); }
  .topbar:focus-within,.topbar:hover { border-bottom-color: color-mix(in srgb,var(--accent-primary) 30%,var(--border-soft)); }
  .headerAuthLogin:hover svg,.hd-nav-link:hover > svg:first-child { transform: translateX(2px); }
  .hd-header-clock:hover svg { color: var(--accent-primary); transform: translateY(-1px); }
  :is(.analysisCard,.hd-analysis-story):hover {
    border-color: color-mix(in srgb,var(--accent-primary) 40%,var(--border-soft));
    background-color: color-mix(in srgb,var(--accent-primary) 3%,var(--surface-card));
  }
  :is(.analysisCard,.hd-analysis-story,.hd-feature:not(.hd-feature-event)):hover::after { opacity: 1; transform: scaleY(1); }
  :is(.hd-more,.hd-feature-link:not(.hd-feature-event .hd-feature-link),.moreBtn,.linkBtn):hover svg { transform: translateX(3px); }
  .hd-rank .rankRow:hover :is(.rankNo,.rankNpBadge b) { color: var(--accent-primary); }
  .shopProduct:hover .shopThumb img { transform: scale(1.05); }
  :is(.homeHlThumb,.hlThumb):hover img { transform: scale(1.08); }
  .pager :is(a,button):hover:not(:disabled):not([aria-disabled="true"]) {
    background-color: var(--ctrl-bg-hover); border-color: var(--ctrl-border-hover);
  }
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine) {
  .shopProduct:hover { transform: translateY(-2px); }
  .hd-features .hd-feature-event { border-left-color: var(--accent-primary); }
}
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .hd-sidebar .hd-nav-partner > .hd-nav-link::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
    border-radius: 2px; background: var(--accent-primary); pointer-events: none;
  }
  .hd-sidebar .hd-nav-partner > .hd-nav-link:hover::after { transform: scaleX(1); }
}

/* PM08 Accessibility: state colors remain, motion does not. */
@media (prefers-reduced-motion: reduce) {
  .iconButton.themeToggle svg,.iconButton.themeToggle:hover svg,
  .pageWrap .shopProduct,.shopDesk.is-gift .shopProduct,.shopDesk.is-gift .shopProduct:hover {
    transition: none; animation: none; transform: none;
  }
  :is(.headerSearch .search,.themeToggle svg,.headerAuthLogin,.headerAuthSignup,.headerAuthLogin svg,.hd-header-clock svg,.topbar,
  .hd-nav-link,.hd-nav-link > svg:first-child,.hd-nav-submenu,.analysisCard,.hd-analysis-story,.shopProduct,
  .hd-more svg,.hd-feature-link svg,.moreBtn svg,.linkBtn svg,.hd-live-label,.hd-upcoming-label,.analysisBadge,.bcBadge,.odd,.bcOdd,
  .rankNo,.rankNpBadge b,.shopProduct .shopThumb img,.homeHlThumb img,.hlThumb img,.primaryBtn,.ghostBtn,.uiBtn,.nvBtn,.likeBtn,.slipRemove,
  .pager a,.pager button,.tab,.canonicalBoardSearch,.sportsInjurySearchField input,.analysisSearch,.field,.sportsSelect,
  .navDrop.open,.headerSearchDrop,.nvDialog,[role="dialog"],.shopUserMenu,.slipItem,.headerInboxDot,.nvToast.success .nvToastMark) {
    transition: none; animation: none;
  }
  :is(.analysisCard,.hd-analysis-story,.hd-feature:not(.hd-feature-event))::after { transition: none; }
  .hd-features .hd-feature-event::before { transition: none; }
  .hd-sidebar .hd-nav-partner > .hd-nav-link::after { transition: none; }
  :is(.headerAuthLogin svg,.hd-header-clock svg,.hd-nav-link > svg:first-child,.hd-more svg,.hd-feature-link svg,.moreBtn svg,.linkBtn svg,
  .shopProduct,.shopProduct .shopThumb img,.homeHlThumb img,.hlThumb img,.primaryBtn,.ghostBtn,.uiBtn,.nvBtn,.likeBtn,.slipRemove,
  .headerAuthLogin,.headerAuthSignup) { transform: none; }
}
@media (hover: none), (pointer: coarse) {
  .iconButton.themeToggle:hover svg,
  .pageWrap .shopProduct:hover,.shopDesk.is-gift .shopProduct:hover {
    transform: none;
  }
}

}
