/* 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; }
}

/* About v10 — tab visibility and active state (no palette in CSS) */

.guide-sq-8  { width: 2rem;   height: 2rem;   flex-shrink: 0; }
.guide-sq-12 { width: 3rem;   height: 3rem;   flex-shrink: 0; }
.guide-sq-16 { width: 4rem;   height: 4rem;   flex-shrink: 0; }
.guide-sq-20 { width: 5rem;   height: 5rem;   flex-shrink: 0; }

.guide-ab10-tab-panel.guide-ab10-tab-panel-hidden {
    display: none;
}

.guide-ab10-tab-btn.guide-ab10-tab-active {
    font-weight: 700;
    transform: translateY(-1px);
}

.guide-ab10-tab-btn.guide-ab10-tab-inactive {
    font-weight: 500;
    opacity: 0.9;
}

.values-orb-card__thumb {
    width: 5rem;
    height: 5rem;
    z-index: 10;
}

.accordion-playstation-timeline__chevron--open {
    transform: rotate(180deg);
}

.accordion-playstation-timeline__panel {
    max-height: 400px;
    transition: max-height 0.35s ease;
}

.accordion-playstation-timeline__panel[aria-hidden="true"],
.accordion-playstation-timeline__panel.is-closed {
    max-height: 0 !important;
}

.accordion-playstation-timeline__decor-tr {
    clip-path: polygon(100% 0, 100% 60%, 40% 0);
    top: 0;
    right: 0;
    width: 16rem;
    height: 16rem;
}

.accordion-playstation-timeline__decor-bl {
    clip-path: polygon(0 40%, 60% 100%, 0 100%);
    bottom: 0;
    left: 0;
    width: 12rem;
    height: 12rem;
}

.accordion-playstation-timeline__badge-size {
    width: 3.5rem;
    height: 2.5rem;
}

.accordion-playstation-timeline__panel--closed {
    max-height: 0;
}

.accordion-playstation-timeline__min-shrink {
  min-width: 0;
}

/* team v25 — compact grid + animated background */
.team-catalog__scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.team-catalog__blob {
  border-radius: 35% 65% 60% 40% / 45% 35% 65% 55%;
  animation: team-catalog-blob-morph 10s ease-in-out infinite;
  transform-origin: center;
}

.team-catalog__blob--tl {
  top: -5rem;
  left: -4rem;
  width: 16rem;
  height: 16rem;
}

.team-catalog__blob--br {
  bottom: -6rem;
  right: -5rem;
  width: 20rem;
  height: 20rem;
  animation-duration: 12s;
  animation-delay: 1.5s;
}

.team-catalog__glow {
  top: 50%;
  left: 50%;
  width: 24rem;
  height: 24rem;
  animation: team-catalog-glow-pulse 8s ease-in-out infinite;
  transform-origin: center;
}

.team-catalog__ring--1 {
  top: 2rem;
  right: 2.5rem;
  width: 8rem;
  height: 8rem;
  animation: team-catalog-spin 26s linear infinite;
  transform-origin: center;
}

.team-catalog__ring--2 {
  bottom: 3rem;
  left: 1.5rem;
  width: 6rem;
  height: 6rem;
  animation: team-catalog-pulse-ring 6s ease-in-out infinite;
  transform-origin: center;
}

.team-catalog__spark {
  animation: team-catalog-spark-float 4s ease-in-out infinite;
}

.team-catalog__spark--1 {
  top: 20%;
  left: 15%;
  width: 0.5rem;
  height: 0.5rem;
  animation-delay: 0s;
}

.team-catalog__spark--2 {
  top: 35%;
  right: 20%;
  width: 0.75rem;
  height: 0.75rem;
  animation-delay: 0.6s;
}

.team-catalog__spark--3 {
  bottom: 30%;
  left: 40%;
  width: 0.5rem;
  height: 0.5rem;
  animation-delay: 1.2s;
}

.team-catalog__grid-dots {
  background-image: radial-gradient(circle, var(--bs-primary) 1px, transparent 1px);
  background-size: 1.75rem 1.75rem;
  animation: team-catalog-dots-drift 18s linear infinite;
}

.team-catalog__card-media {
  height: 7rem;
}

@media (min-width: 768px) {
  .team-catalog__card-media {
    height: 8rem;
  }
}

.team-catalog__card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.team-catalog__card:hover .team-catalog__card-img {
  transform: scale(1.08);
}

@keyframes team-catalog-blob-morph {
  0%,
  100% {
    border-radius: 35% 65% 60% 40% / 45% 35% 65% 55%;
    transform: scale(1);
  }
  50% {
    border-radius: 55% 45% 40% 60% / 50% 60% 40% 50%;
    transform: scale(1.06);
  }
}

@keyframes team-catalog-glow-pulse {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.5;
  }
  50% {
    transform: translate(-50%, -50%) scale(1.1);
    opacity: 1;
  }
}

@keyframes team-catalog-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes team-catalog-pulse-ring {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.4;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}

@keyframes team-catalog-spark-float {
  0%,
  100% {
    transform: translateY(0);
    opacity: 0.35;
  }
  50% {
    transform: translateY(-0.5rem);
    opacity: 1;
  }
}

@keyframes team-catalog-dots-drift {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 1.75rem 1.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .team-catalog__blob,
  .team-catalog__glow,
  .team-catalog__ring--1,
  .team-catalog__ring--2,
  .team-catalog__spark,
  .team-catalog__grid-dots {
    animation: none;
  }
}

.rounded-stack-quote__portrait {
    width: 5rem;
    height: 5rem;
}

