/* DivineChecker — global motion polish (smooth UI) */

html {
  interpolate-size: allow-keywords;
  scroll-behavior: smooth;
  overflow-anchor: none;
}

#oceanDashboard,
#logsOceanDashboard,
#liveScanProgress,
.ocean-details,
.ocean-card-collapsible {
  overflow-anchor: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* —— Check / Status —— */
.terminal-loader {
  transition: border-color 0.35s ease, box-shadow 0.35s ease;
}

.terminal-loader-progress-fill,
.live-scan-progress-fill.terminal-loader-progress-fill {
  transition: width 0.25s linear !important;
}

.terminal-loader-text {
  transition: opacity 0.4s ease, color 0.35s ease !important;
}

.terminal-loader-detail .live-scan-detail-value,
.live-scan-detail-value,
#liveScanStage,
#liveScanFiles,
#liveScanElapsed,
#liveScanUpdated,
#liveScanCurrentFile {
  transition: opacity 0.3s ease, color 0.3s ease;
}

.terminal-loader-log-line {
  animation: dc-log-line-in 0.18s ease-out both;
}

@keyframes dc-log-line-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}

.check-session-chip {
  transition:
    border-color 0.28s ease,
    background 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.28s ease !important;
}

.check-session-chip-time {
  transition: color 0.3s ease, opacity 0.3s ease;
}

.check-step-item {
  transition: color 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.check-step-item.active,
.check-step-item.done {
  transition: color 0.35s ease, opacity 0.35s ease;
}

#checkResult,
#checkFlow,
.player-findings,
.ocean-waiting {
  transition: opacity 0.35s ease;
}

/* —— Ocean results —— */
.ocean-card,
details.ocean-card-collapsible {
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease;
}

.ocean-card-collapsible__summary {
  transition: background 0.25s ease;
}

.ocean-card-collapsible__summary:hover {
  background: rgba(255, 255, 255, 0.03);
}

.ocean-card-collapsible__hint {
  transition: opacity 0.28s ease;
}

details.ocean-card-collapsible[open] > summary .ocean-card-collapsible__hint {
  opacity: 0.55;
}

@supports (interpolate-size: allow-keywords) {
  details.ocean-card-collapsible::details-content {
    transition:
      height 0.38s cubic-bezier(0.22, 0.61, 0.36, 1),
      content-visibility 0.38s allow-discrete,
      opacity 0.28s ease !important;
  }
}

.ocean-mods-chip,
.ocean-activity-chip {
  transition:
    background 0.28s ease,
    border-color 0.28s ease,
    color 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.22s ease !important;
}

.ocean-mods-chip:active,
.ocean-activity-chip:active {
  transform: scale(0.97);
}

.ocean-section-nav-btn,
.ocean-subtab {
  transition:
    color 0.28s ease,
    background 0.28s ease,
    box-shadow 0.28s ease,
    border-color 0.28s ease !important;
}

.ocean-subpanel {
  animation: dc-panel-fade 0.28s ease both;
}

@keyframes dc-panel-fade {
  from { opacity: 0.55; }
  to { opacity: 1; }
}

.ocean-table tbody tr {
  transition: background-color 0.22s ease, opacity 0.22s ease;
}

.ocean-table-wrap,
.ocean-mft-scroll,
.ocean-activity-scroll {
  transition: min-height 0.3s ease;
}

.ocean-tier-chip,
.ocean-badge,
.ocean-card-count {
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.ocean-verdict {
  transition: background 0.35s ease, border-color 0.35s ease, color 0.35s ease;
}

.ocean-compact-status,
.ocean-top {
  transition: opacity 0.3s ease;
}

/* Filter meta line doesn't jump as hard */
.ocean-mods-search-meta,
.ocean-mft-match-hint,
#oceanMftMatchHint,
#oceanActivityMatchHint,
#oceanModsMatchHint {
  min-height: 1.25em;
  transition: opacity 0.25s ease;
}

/* —— Nav / chrome —— */
.card-nav a,
.card-nav button,
.btn,
.ghost-btn,
.sidebar-download-exe,
.status-pill {
  transition:
    background 0.28s ease,
    border-color 0.28s ease,
    color 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.22s ease,
    opacity 0.28s ease;
}

.tab-btn,
.nav-link {
  transition: color 0.28s ease, background 0.28s ease, opacity 0.28s ease;
}

/* Soften skeleton ↔ content */
#oceanDashboard,
.ocean-dashboard {
  transition: opacity 0.18s ease !important;
}

#oceanDashboard.ocean-fade-in {
  animation: dc-ocean-soft-in 0.15s ease-out both !important;
}

@keyframes dc-ocean-soft-in {
  from { opacity: 0.92; }
  to { opacity: 1; }
}

.ocean-card-enter {
  animation: dc-card-soft-in 0.12s ease-out both !important;
}

@keyframes dc-card-soft-in {
  from { opacity: 0.85; }
  to { opacity: 1; }
}
