/*
 * Profesor Nowak — spokojniejsza warstwa wizualna 1.1.
 * Zachowuje treść, zdjęcia i układ. Usuwa generyczne kratki oraz poprawia
 * zachowanie interfejsu na ekranach dotykowych i przy ograniczonym ruchu.
 */

/* Motyw oka i światła zastępuje notebookowe kratki, kropki i paski. */
.msn-root .redlight__wave,
.msn-root .journal-orbit::before,
.msn-root .journal-orbit::after,
.msn-root .decision-shell::before {
  display: none !important;
}

.msn-root .hero > .hero__grid {
  display: block !important;
  background-image: url("./optical-field.svg");
  background-size: cover;
  background-position: center;
  mask-image: linear-gradient(90deg, transparent 4%, #000 36%, #000 100%);
  opacity: .82;
}

/* Duży ślad optyczny zamiast regularnej kratki. */
.msn-root .section--deep.dotgrid {
  isolation: isolate;
  overflow: hidden;
}

.msn-root .section--deep.dotgrid::before {
  content: "";
  display: block !important;
  position: absolute;
  z-index: 0;
  width: min(76vw, 980px);
  aspect-ratio: 1;
  right: clamp(-520px, -25vw, -250px);
  top: 50%;
  transform: translateY(-50%) rotate(-8deg);
  border-radius: 50%;
  pointer-events: none;
  opacity: .78;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 21%, rgba(116, 176, 255, .16) 21.1% 21.25%, transparent 21.4% 31%, rgba(116, 176, 255, .11) 31.1% 31.28%, transparent 31.45% 43%, rgba(116, 176, 255, .075) 43.1% 43.24%, transparent 43.4% 57%, rgba(116, 176, 255, .045) 57.1% 57.24%, transparent 57.4%),
    radial-gradient(ellipse at 48% 48%, rgba(44, 111, 209, .15), transparent 58%);
  mask-image: linear-gradient(90deg, transparent 2%, #000 32%, #000 72%, transparent 100%);
}

.msn-root .section--deep.dotgrid:nth-of-type(even)::before {
  right: auto;
  left: clamp(-520px, -25vw, -250px);
  transform: translateY(-50%) rotate(11deg);
}

.msn-root .section--deep.dotgrid::after {
  width: min(46vw, 620px);
  height: min(46vw, 620px);
  right: -18%;
  top: 8%;
  opacity: .32;
  background:
    radial-gradient(circle, transparent 0 54%, rgba(122, 184, 255, .15) 54.2% 54.4%, transparent 54.7%),
    radial-gradient(circle, rgba(37, 103, 203, .12), transparent 66%);
  mask-image: radial-gradient(circle, #000 0 52%, transparent 76%);
}

.msn-root .punkt-hero,
.msn-root .punkt-centers {
  background-image: none !important;
  background-size: auto !important;
}

.msn-root .section--deep {
  background-image:
    linear-gradient(112deg, transparent 0 46%, rgba(68, 137, 231, .035) 52%, transparent 60%),
    radial-gradient(ellipse at 84% 18%, rgba(47, 123, 240, .12), transparent 42%),
    radial-gradient(ellipse at 12% 88%, rgba(81, 145, 235, .07), transparent 38%);
}

.msn-root .stats {
  background-image:
    radial-gradient(circle at 104% 45%, transparent 0 18%, rgba(105, 170, 255, .10) 18.15% 18.32%, transparent 18.5% 26%, rgba(105, 170, 255, .065) 26.15% 26.3%, transparent 26.5% 37%, rgba(105, 170, 255, .035) 37.15% 37.3%, transparent 37.5%),
    linear-gradient(118deg, transparent 0 56%, rgba(48, 116, 214, .055) 70%, transparent 88%);
}

[data-theme="light"] .msn-root .section--deep {
  background-image:
    linear-gradient(112deg, transparent 0 46%, rgba(47, 123, 240, .04) 52%, transparent 60%),
    radial-gradient(ellipse at 84% 18%, rgba(47, 123, 240, .09), transparent 42%),
    radial-gradient(ellipse at 12% 88%, rgba(81, 145, 235, .055), transparent 38%);
}

[data-theme="light"] .msn-root .section--deep.dotgrid::before {
  opacity: .48;
}

.msn-root .mcard__ph,
.msn-root .redlight__deviceph {
  background: var(--surface-2) !important;
}

/* Mniej neonowego interfejsu: światło zostaje w fotografii i anatomii oka. */
.msn-root .btn--primary,
.msn-root .btn--red {
  box-shadow: 0 16px 34px -25px rgba(0, 0, 0, .85) !important;
}

.msn-root .tnode__dot,
.msn-root .press-slider__dots .dot,
.msn-root .press-video__signal i,
.msn-root .press-copy__status span,
.msn-root .diagnostic-flow__top b i,
.msn-root .who-alert__signal span,
.msn-root .punkt-forecast__line,
.msn-root .punkt-forecast__pulse,
.msn-root .center-card__status i {
  box-shadow: none !important;
}

.msn-root .eye-stage,
.msn-root .eye-stage:hover {
  filter: none !important;
}

.msn-root .hotspot,
.msn-root .hotspot:hover,
.msn-root .hotspot.active,
.msn-root .engine-node--core,
.msn-root .clinical-node--decision,
.msn-root .decision-core--red,
.msn-root .evidence-node:hover {
  box-shadow: none !important;
}

.msn-root .punkt-evidence::before,
.msn-root .punkt-evidence::after,
.msn-root .punkt-six-card::before,
.msn-root .punkt-six-card::after,
.msn-root .press-copy::before {
  display: none !important;
}

.msn-root .punkt-warning {
  border-left-width: 1px !important;
}

/* Elementy przeglądarki i klawiatury należą do tego samego systemu. */
.msn-root ::selection {
  color: #fff;
  background: var(--blue);
}

.msn-root :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--blue-2) !important;
  outline-offset: 4px !important;
}

.msn-root :where(input, textarea, select) {
  accent-color: var(--blue);
}

/* Ograniczenie przypadkowej „aplikacyjności” kart. */
.msn-root .journal-card,
.msn-root .research-card,
.msn-root .center-card,
.msn-root .punkt-six-card {
  border-radius: 14px;
}

@media (max-width: 900px) {
  .msn-root .nav__links.open .nav__link,
  .msn-root .nav__links.open .nav__campaign {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .msn-root .nav__burger,
  .msn-root .icon-btn,
  .msn-root .pub-filter,
  .msn-root .preview-navigation button {
    min-width: 44px;
    min-height: 44px;
  }
}

@media (min-width: 721px) and (max-width: 1280px) {
  .msn-root #heroImg {
    object-position: 92% 22% !important;
  }

  .msn-root .hero > .hero__grid {
    background-position: 64% center;
  }
}

@media (max-width: 620px) {
  .msn-root .section--deep.dotgrid::before {
    width: 720px;
    right: -520px;
    opacity: .58;
  }

  .msn-root .section--deep.dotgrid:nth-of-type(even)::before {
    left: -520px;
  }

  .msn-root .hero__cta {
    align-items: stretch;
  }

  .msn-root .hero__cta .btn {
    min-height: 48px;
  }

  .msn-root .section {
    padding-top: clamp(68px, 18vw, 92px);
    padding-bottom: clamp(68px, 18vw, 92px);
  }

  .msn-root .pub-filters {
    gap: 8px;
  }

  .msn-root .pub-filter {
    padding-inline: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .msn-root {
    scroll-behavior: auto;
  }

  .msn-root .reveal,
  .msn-root .hero__scroll .bar,
  .msn-root .ocular-canvas,
  .msn-root .punkt-evidence::before,
  .msn-root .punkt-evidence::after,
  .msn-root .manifest-continue i {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}
