:root{
  --ui-ease:cubic-bezier(.2,.8,.2,1);
  --ui-fast:160ms;
  --ui-normal:240ms;
  --ui-focus:0 0 0 4px rgba(23,92,167,.18);
  --ui-shadow:0 8px 20px rgba(0,21,50,.12);
  --ui-shadow-hover:0 12px 28px rgba(0,21,50,.17);
}

/* Remove harsh mobile tap flash while keeping accessible focus states. */
a,button,[role="button"]{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

/* Shared interactive feel */
.ih-global-tab,
.ih-global-admin,
.ih-tab-btn,
.ih-btn,
.ih-quick button,
.ih-option,
.ih-ghost-btn,
.ih-next-btn,
.ih-secondary-btn,
.ih-assistant-toggle,
.ih-assistant-panel button,
.ih-assistant-panel a,
.ih-modal-close,
.ih-bookmark,
.ih-countdown-banner>a,
.ih-saved-item,
.ih-saved-item button,
.admin-btn,
.nav-link,
.chip,
.filter-toggle,
.reset-btn,
.watch-btn,
.thumb,
.modal-close,
.series-toggle,
.need-item,
.reset-back,
.portal-btn{
  transition:
    transform var(--ui-fast) var(--ui-ease),
    box-shadow var(--ui-normal) var(--ui-ease),
    background-color var(--ui-normal) var(--ui-ease),
    border-color var(--ui-normal) var(--ui-ease),
    color var(--ui-normal) var(--ui-ease),
    opacity var(--ui-fast) ease!important;
  will-change:transform;
}

/* Primary buttons */
.ih-global-admin,
.ih-btn,
.ih-next-btn,
.ih-assistant-toggle,
.ih-countdown-banner>a,
.admin-btn,
.reset-btn:not(.secondary),
.portal-btn:not(.secondary){
  box-shadow:0 7px 18px rgba(23,92,167,.2)!important;
}

/* Secondary / outlined buttons */
.ih-secondary-btn,
.ih-ghost-btn,
.reset-btn.secondary,
.portal-btn.secondary,
.reset-back,
.filter-toggle,
.chip,
.ih-quick button{
  box-shadow:0 2px 8px rgba(0,21,50,.045);
}

/* Soft selected state */
.ih-global-tab.active,
.ih-global-tab[aria-current="page"],
.ih-tab-btn.active,
.chip.active{
  transform:none!important;
  box-shadow:0 5px 14px rgba(23,92,167,.12)!important;
}

/* Hover only on devices that truly support hover */
@media(hover:hover) and (pointer:fine){
  .ih-global-tab:hover,
  .ih-tab-btn:hover,
  .ih-quick button:hover,
  .chip:hover,
  .nav-link:hover,
  .reset-back:hover,
  .need-item:hover{
    transform:translateY(-1px);
  }

  .ih-global-admin:hover,
  .ih-btn:hover,
  .ih-next-btn:hover:not(:disabled),
  .ih-secondary-btn:hover,
  .ih-ghost-btn:hover:not(:disabled),
  .ih-countdown-banner>a:hover,
  .admin-btn:hover,
  .reset-btn:hover,
  .portal-btn:hover,
  .filter-toggle:hover{
    transform:translateY(-2px);
    box-shadow:var(--ui-shadow-hover)!important;
  }

  .ih-option:hover,
  .ih-saved-item:hover,
  .watch-btn:hover,
  .thumb:hover,
  .series-toggle:hover,
  .ih-bookmark:hover,
  .ih-assistant-toggle:hover{
    transform:translateY(-2px) scale(1.015);
  }

  .ih-featured,
  .ih-card,
  .video-card,
  .series-card{
    transition:transform var(--ui-normal) var(--ui-ease),box-shadow var(--ui-normal) var(--ui-ease),border-color var(--ui-normal) var(--ui-ease)!important;
  }
}

/* Tactile press feedback */
.ih-global-tab:active,
.ih-global-admin:active,
.ih-tab-btn:active,
.ih-btn:active,
.ih-quick button:active,
.ih-option:active,
.ih-ghost-btn:active,
.ih-next-btn:active,
.ih-secondary-btn:active,
.ih-assistant-toggle:active,
.ih-assistant-panel button:active,
.ih-assistant-panel a:active,
.ih-modal-close:active,
.ih-bookmark:active,
.ih-countdown-banner>a:active,
.ih-saved-item:active,
.ih-saved-item button:active,
.admin-btn:active,
.nav-link:active,
.chip:active,
.filter-toggle:active,
.reset-btn:active,
.watch-btn:active,
.thumb:active,
.modal-close:active,
.series-toggle:active,
.need-item:active,
.reset-back:active,
.portal-btn:active{
  transform:translateY(1px) scale(.975)!important;
  box-shadow:0 3px 9px rgba(0,21,50,.11)!important;
  transition-duration:80ms!important;
}

/* Keyboard accessibility */
.ih-global-tab:focus-visible,
.ih-global-admin:focus-visible,
.ih-tab-btn:focus-visible,
.ih-btn:focus-visible,
.ih-quick button:focus-visible,
.ih-option:focus-visible,
.ih-ghost-btn:focus-visible,
.ih-next-btn:focus-visible,
.ih-secondary-btn:focus-visible,
.ih-assistant-toggle:focus-visible,
.ih-assistant-panel button:focus-visible,
.ih-assistant-panel a:focus-visible,
.ih-modal-close:focus-visible,
.ih-bookmark:focus-visible,
.ih-countdown-banner>a:focus-visible,
.ih-saved-item:focus-visible,
.admin-btn:focus-visible,
.nav-link:focus-visible,
.chip:focus-visible,
.filter-toggle:focus-visible,
.reset-btn:focus-visible,
.watch-btn:focus-visible,
.thumb:focus-visible,
.modal-close:focus-visible,
.series-toggle:focus-visible,
.need-item:focus-visible,
.reset-back:focus-visible,
.portal-btn:focus-visible{
  outline:none!important;
  box-shadow:var(--ui-focus)!important;
}

/* Disabled buttons should feel intentionally inactive */
button:disabled,
[aria-disabled="true"]{
  cursor:not-allowed!important;
  transform:none!important;
  box-shadow:none!important;
  filter:saturate(.55);
}

/* Smoother control and modal transitions */
.ih-tab-panel,
.ih-assistant-panel,
.ih-modal,
.modal,
.series-detail,
.filters-panel{
  transition:opacity var(--ui-normal) var(--ui-ease),transform var(--ui-normal) var(--ui-ease)!important;
}

/* Mobile: stronger but shorter tactile response */
@media(max-width:760px){
  .ih-global-tab,
  .ih-global-admin,
  .ih-tab-btn,
  .ih-btn,
  .ih-quick button,
  .ih-option,
  .ih-next-btn,
  .ih-secondary-btn,
  .chip,
  .filter-toggle,
  .reset-btn,
  .portal-btn{
    min-height:44px;
  }

  .ih-option,
  .ih-quick button,
  .chip{
    transition-duration:140ms!important;
  }
}

/* Respect users who prefer less motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
