/* Shared atmosphere: neutral textures and a restrained PL red glow. */
:root {
  --texture-line: rgb(32 32 32 / .035);
  --texture-dot: rgb(var(--gradient-start-rgb) / .10);
  --section-alternate: #f3eeee;
  --cursor-light: rgb(var(--gradient-middle-rgb) / .025);
  --texture-grid: linear-gradient(var(--texture-line) 1px, transparent 1px), linear-gradient(90deg, var(--texture-line) 1px, transparent 1px);
  --texture-dots: radial-gradient(var(--texture-dot) .8px, transparent .8px);
}

:root[data-theme=dark] {
  --texture-line: rgb(255 255 255 / .028);
  --texture-dot: rgb(var(--gradient-start-rgb) / .095);
  --section-alternate: #1c1719;
  --cursor-light: rgb(var(--gradient-middle-rgb) / .035);
}

body {
  background-color: var(--color-bg);
  background-image: var(--texture-grid);
  background-size: 64px 64px;
}

.catalog-layout,
.pl-home,
.product-page {
  background-color: transparent;
}

.pl-home .model-heading {
  padding-block: 12px;
}

.pl-home .model-stage {
  background-color: var(--section-alternate);
  background-image: var(--texture-dots);
  background-size: 18px 18px;
}

/* Scoped section surfaces; product photographs and controls retain their own backgrounds. */
.product-primary-card {
  background-color: var(--color-surface);
  background-image: var(--texture-grid);
  background-size: 64px 64px;
  border-radius: 20px;
}

.pl-cursor-glow {
  position: fixed;
  left: 0;
  top: 0;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--cursor-light), transparent 68%);
  pointer-events: none;
  z-index: 100;
  opacity: 0;
  will-change: transform;
  transition: opacity .25s;
  contain: strict;
}

.pl-cursor-glow.is-visible {
  opacity: 1;
}

@media (hover: none),(pointer: coarse),(prefers-reduced-motion: reduce) {
  .pl-cursor-glow {
    display: none;
  }
}

@media (forced-colors: active) {
  .pl-cursor-glow {
    display: none;
  }

  body,
  .model-stage {
    background-image: none;
  }
}

@media print {
  .pl-cursor-glow {
    display: none;
  }
}
