/* intro v17 — Death Note noir: circuit band, pulse rings, extrude text, duotone media, scroll slide-in */

/* Circuit-board traces — colour via Tailwind text-* on the band, currentColor in the pattern */
.intro-noir__circuit {
    background-image:
        repeating-linear-gradient(0deg, currentColor 0 1px, transparent 1px 32px),
        repeating-linear-gradient(90deg, currentColor 0 1px, transparent 1px 32px);
    opacity: 0.18;
    -webkit-mask: linear-gradient(180deg, black, transparent);
    mask: linear-gradient(180deg, black, transparent);
}

/* Pulse rings from the band centre (size + placement so Bootstrap has no utility gap) */
.intro-noir__ring {
    width: 6rem;
    height: 6rem;
    top: 6rem;
    left: 50%;
    margin-left: -3rem;
    opacity: 0;
    animation: intro-noir-pulse 3.4s ease-out infinite;
}
.intro-noir__ring--2 { animation-delay: 1.7s; }

@keyframes intro-noir-pulse {
    0%   { transform: scale(0.4); opacity: 0.55; }
    100% { transform: scale(3.4); opacity: 0; }
}

/* Emboss seal circle */
.intro-noir__seal {
    width: 7rem;
    height: 7rem;
    font-size: 0.75rem;
    line-height: 1.1;
    padding: 0.75rem;
    transform: rotate(-8deg);
}

/* Extrude — stacked text-shadow depth using the element's own colour */
.intro-noir__extrude {
    text-shadow: 1px 1px 0 currentColor, 2px 2px 0 currentColor, 3px 3px 0 currentColor;
}

/* Duotone media: grayscale image + primary multiply tint (colour is a Tailwind class) */
.intro-noir__img {
    height: 10rem;
    object-fit: cover;
    filter: grayscale(1) contrast(1.05);
}

/* Sticky aside offset (Bootstrap position-sticky has no top-16 utility) */
@media (min-width: 992px) {
    .intro-noir__aside { top: 4rem; }
}
.intro-noir__tint {
    mix-blend-mode: multiply;
    opacity: 0.5;
}

/* Letter-spacing widen on hover */
.intro-noir__ttl { transition: letter-spacing 260ms ease; }
[data-card]:hover .intro-noir__ttl { letter-spacing: 0.08em; }

/* Slide-in entrance — pure CSS on the reliable [data-card] attribute; always ends visible */
@keyframes intro-noir-rise {
    from { opacity: 0; transform: translateY(2rem); }
    to   { opacity: 1; transform: translateY(0); }
}
.intro-noir [data-card] { animation: intro-noir-rise 560ms ease both; }

@media (prefers-reduced-motion: reduce) {
    .intro-noir__ring { animation: none; }
    .intro-noir [data-card] { animation: none; }
}

.content-column__body {
    column-gap: 2.5rem;
}

.content-column__body p {
    break-inside: avoid;
}

@media (min-width: 768px) {
    .content-column__body {
        column-count: 2;
    }
}

@media (min-width: 1200px) {
    .content-column__body {
        column-count: 3;
    }
}

/* faq v24 — luxe slide stage (click nav) */
.luxe-slides__stage {
  min-height: 100vh;
  min-height: 100dvh;
}

.luxe-slides__bg-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.luxe-slides__slide.is-active {
  animation: luxe-slide-fade-in 400ms ease;
}

.luxe-slides__slide.hidden {
  display: none !important;
}

@keyframes luxe-slide-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.luxe-slides__rule {
  width: 1px;
}

.luxe-slides__rule--tall {
  height: 3rem;
}

@media (min-width: 768px) {
  .luxe-slides__rule--tall {
    height: 4rem;
  }
}

.luxe-slides__eyebrow {
  letter-spacing: 0.35em;
}

.luxe-slides__headline {
  max-width: 56rem;
}

.luxe-slides__lead {
  max-width: 42rem;
}

.luxe-slides__section-title {
  width: 100%;
}

/* Sidebar: round only the inner (right) edge */
.luxe-slides__nav-panel {
  height: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

.luxe-slides__step {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  cursor: pointer;
  outline-offset: 2px;
}

.luxe-slides__step-num {
  opacity: 0.7;
  font-size: 1.125rem;
  font-weight: 400;
  transition: opacity 250ms ease, font-size 250ms ease, font-weight 250ms ease;
}

.luxe-slides__step.is-active .luxe-slides__step-num {
  opacity: 1;
  font-size: 1.5rem;
  font-weight: 700;
}

.luxe-slides__step-mark {
  width: 2px;
  height: 2.5rem;
  opacity: 0;
  flex-shrink: 0;
  transition: opacity 250ms ease;
}

@media (min-width: 768px) {
  .luxe-slides__step-mark {
    height: 3rem;
  }
}

.luxe-slides__step.is-active .luxe-slides__step-mark {
  opacity: 1;
}

/* glossary film — strip scrollport: min-width 0 + width 100% so overflow-x shows next card; mobile widths */
.glossary-film__mask {
    max-width: 100%;
    min-width: 0;
}

.glossary-film__strip {
    display: flex;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scroll-snap-type: x mandatory;
}

.glossary-film__cell {
    scroll-snap-align: center;
}

@media (max-width: 767.98px) {
    .glossary-film__strip {
        padding-inline-start: 0.5rem;
        padding-inline-end: max(0.75rem, 5vw);
        scroll-padding-inline-end: max(0.75rem, 5vw);
    }

    .glossary-film__cell {
        scroll-snap-align: start;
        flex: 0 0 min(20rem, 82vw);
        width: min(20rem, 82vw);
        max-width: min(20rem, 82vw);
    }
}

@media (min-width: 768px) {
    .glossary-film__cell {
        flex: 0 0 20rem;
        width: 20rem;
        max-width: none;
    }
}

