/* PULPE: documentary images, soft physical depth, and restrained stage motion. */
.pulpe-hero { overflow: clip; }
.pulpe-hero-inner { perspective: 1400px; }
.pulpe-stage {
  transform: perspective(1100px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transform-style: preserve-3d;
  transition: transform 460ms cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}
.pulpe-stage img { transform: scale(1.018); }
.pulpe-stage .pulpe-caption { transform: translateZ(22px); }
.pulpe-stage .pulpe-live { transform: translateZ(36px) rotate(9deg); }
.pulpe-title span { animation: pulpe-title-enter 780ms both cubic-bezier(.16,1,.3,1); }
.pulpe-title span:nth-child(2) { animation-delay: 110ms; }
.pulpe-title span:nth-child(3) { animation-delay: 210ms; }
.pulpe-stage { animation: pulpe-photo-enter 940ms 180ms both cubic-bezier(.16,1,.3,1); }
@keyframes pulpe-title-enter { from { opacity:0; transform:translate3d(0,32px,0); } to { opacity:1; transform:translate3d(0,0,0); } }
@keyframes pulpe-photo-enter { from { opacity:0; translate:0 36px; } to { opacity:1; translate:0 0; } }

.pulpe-signal-strip { overflow:hidden; border-top:1px solid #62304D; border-bottom:1px solid #62304D; background:#190A16; padding:14px 0 12px; }
.pulpe-signal-track { display:flex; align-items:center; gap:38px; width:max-content; animation:pulpe-signal-roll 36s linear infinite; color:#FF90C4; font:700 11px/1 'Martian Mono',ui-monospace,monospace; letter-spacing:.16em; white-space:nowrap; }
.pulpe-signal-track b { color:#C6FF4F; font:900 21px/1 'Anybody',sans-serif; }
@keyframes pulpe-signal-roll { to { transform:translate3d(-50%,0,0); } }

.pulpe-world { position:relative; isolation:isolate; overflow:hidden; background:#1B0B18; border-block:1px solid #60304D; }
.pulpe-world-inner { max-width:1440px; margin:auto; padding:clamp(72px,8vw,130px) clamp(24px,3.5vw,56px) clamp(66px,7vw,106px); }
.pulpe-world-intro { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr); align-items:end; gap:40px; margin-bottom:44px; }
.pulpe-world-intro h2 { margin:18px 0 0; font-size:clamp(48px,6.8vw,108px); line-height:.92; letter-spacing:-.07em; text-transform:uppercase; }
.pulpe-world-intro h2 span { color:#FF47A4; }
.pulpe-world-intro > p { max-width:36ch; margin:0 0 8px; color:#E4C8D8; font-size:clamp(16px,1.3vw,20px); line-height:1.48; }
.pulpe-world-grid { position:relative; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(12px,2vw,28px); perspective:1400px; }
.pulpe-world-panel { min-width:0; }
.pulpe-world-panel-late { padding-top:clamp(70px,10vw,156px); }
.pulpe-world-card { position:relative; min-height:580px; margin:0; overflow:hidden; border:1px solid rgba(255,241,248,.25); border-radius:24px; background:#12080F; box-shadow:0 25px 65px rgba(0,0,0,.28); transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transform-style:preserve-3d; transition:transform 440ms cubic-bezier(.2,.8,.2,1), border-color 220ms ease; will-change:transform; }
.pulpe-world-panel-late .pulpe-world-card { min-height:490px; }
.pulpe-world-card:hover { border-color:rgba(198,255,79,.7); }
.pulpe-world-card::after { content:''; position:absolute; inset:28% 0 0; background:linear-gradient(180deg,transparent 0%,rgba(18,8,15,.2) 23%,rgba(18,8,15,.93) 100%); pointer-events:none; }
.pulpe-world-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% center; transform:scale(1.045); transition:transform 900ms cubic-bezier(.2,.8,.2,1); }
.pulpe-world-panel-late img { object-position:39% center; }
.pulpe-world-card:hover img { transform:scale(1.09); }
.pulpe-world-corner { position:absolute; z-index:1; left:20px; top:20px; padding:9px 11px; border:1px solid rgba(255,241,248,.48); border-radius:3px; background:rgba(18,8,15,.62); color:#FFF1F8; font:600 10px/1 'Martian Mono',ui-monospace,monospace; letter-spacing:.1em; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.pulpe-world-card figcaption { position:absolute; z-index:1; left:clamp(24px,3vw,43px); right:clamp(24px,3vw,43px); bottom:clamp(25px,3vw,45px); color:#FFF1F8; }
.pulpe-world-index { display:block; margin-bottom:15px; color:#C6FF4F; font:700 11px/1 'Martian Mono',ui-monospace,monospace; letter-spacing:.13em; }
.pulpe-world-card strong { display:block; max-width:14ch; font-size:clamp(32px,3.2vw,53px); line-height:1.02; letter-spacing:-.055em; font-stretch:125%; text-transform:uppercase; }
.pulpe-world-card small { display:block; max-width:40ch; margin-top:16px; color:#F3DCE9; font-size:14px; line-height:1.45; }
.pulpe-world-fluid { position:absolute; z-index:2; width:clamp(96px,13vw,180px); aspect-ratio:1; left:52%; top:10%; pointer-events:none; border-radius:47% 53% 38% 62% / 56% 42% 58% 44%; background:radial-gradient(circle at 28% 20%,#FFE3F0 0%,#FF7CBE 24%,#FF47A4 48%,#A11259 77%,#420B2B 100%); box-shadow:inset 13px 15px 25px rgba(255,255,255,.37), inset -20px -23px 30px rgba(55,0,27,.5), 0 25px 40px rgba(0,0,0,.38); animation:pulpe-world-breathe 7.4s ease-in-out infinite alternate; }
.pulpe-world-fluid::after { content:''; position:absolute; width:32%; height:20%; left:21%; top:14%; border-radius:50%; background:rgba(255,255,255,.35); filter:blur(10px); transform:rotate(-31deg); }
@keyframes pulpe-world-breathe { to { transform:translate3d(-13px,23px,0) rotate(20deg) scale(1.04); border-radius:62% 38% 56% 44% / 41% 61% 39% 59%; } }
.pulpe-world-outro { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid #79445F; margin-top:46px; padding-top:21px; }
.pulpe-world-outro span { color:#BE9BAC; font:600 10px/1.6 'Martian Mono',ui-monospace,monospace; letter-spacing:.1em; }
.pulpe-world-outro a { display:inline-flex; align-items:center; gap:24px; padding:13px 18px; border:1px solid #C6FF4F; border-radius:999px; color:#C6FF4F; font-size:13px; font-weight:800; text-decoration:none; transition:background 180ms ease,color 180ms ease,transform 180ms ease; white-space:nowrap; }
.pulpe-world-outro a:hover { background:#C6FF4F; color:#12080F; transform:translateY(-2px); }

.has-scroll-motion .js-reveal { opacity:0; transform:translate3d(0,35px,0); transition:opacity 700ms ease,transform 850ms cubic-bezier(.16,1,.3,1); }
.has-scroll-motion .js-reveal.is-visible { opacity:1; transform:translate3d(0,0,0); }
.has-scroll-motion .pulpe-world-panel-late.js-reveal { transition-delay:110ms; }

@media (max-width:900px) {
  .pulpe-world-intro { grid-template-columns:1fr; gap:18px; }
  .pulpe-world-intro > p { max-width:52ch; }
  .pulpe-world-card { min-height:470px; }
  .pulpe-world-panel-late .pulpe-world-card { min-height:420px; }
}
@media (max-width:650px) {
  .pulpe-world-intro { margin-bottom:30px; }
  .pulpe-world-intro h2 { font-size:clamp(47px,11vw,70px); }
  .pulpe-world-grid { grid-template-columns:1fr; gap:14px; }
  .pulpe-world-panel-late { padding-top:0; }
  .pulpe-world-card,.pulpe-world-panel-late .pulpe-world-card { min-height:470px; }
  .pulpe-world-card img { object-position:67% center; }
  .pulpe-world-panel-late img { object-position:39% center; }
  .pulpe-world-fluid { top:calc(50% - 65px); left:auto; right:-36px; width:115px; }
  .pulpe-world-outro { align-items:flex-start; flex-direction:column; }
}
@media (hover:none), (pointer:coarse) {
  .pulpe-stage,.pulpe-world-card { transform:none !important; will-change:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .pulpe-title span,.pulpe-stage,.pulpe-signal-track,.pulpe-world-fluid { animation:none !important; }
  .pulpe-stage,.pulpe-world-card,.pulpe-world-card img,.pulpe-world-outro a { transition:none !important; }
  .has-scroll-motion .js-reveal { opacity:1; transform:none; transition:none; }
}
@media (prefers-reduced-transparency:reduce) {
  .pulpe-world-corner { background:#12080F; -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media (prefers-contrast:more) {
  .pulpe-world-card { border-color:#FFF1F8; }
  .pulpe-world-corner { border-color:#FFF1F8; }
}
