/* =============================================================
   RETRO PULSE R36S — main.css
   Dark, cinematic, glassmorphic. Parallax-ready.
   ============================================================= */

/* ---------- 0. Tokens ---------- */
:root {
    --rpr-bg-0: #05060a;
    --rpr-bg-1: #0a0c14;
    --rpr-bg-2: #11141f;
    --rpr-bg-3: #1a1e2c;

    --rpr-fg: #f4f5fb;
    --rpr-fg-mute: #9aa0b4;
    --rpr-fg-dim: #5e6478;

    --rpr-accent-pink: #ff2d6f;
    --rpr-accent-purple: #a45cff;
    --rpr-accent-cyan: #00e5ff;
    --rpr-accent-amber: #ffb547;

    --rpr-border: rgba(255,255,255,0.08);
    --rpr-border-strong: rgba(255,255,255,0.16);
    --rpr-glass: rgba(255,255,255,0.04);
    --rpr-glass-strong: rgba(255,255,255,0.07);

    --rpr-grad-accent: linear-gradient(135deg, #ff2d6f 0%, #a45cff 50%, #00e5ff 100%);
    --rpr-grad-accent-soft: linear-gradient(135deg, rgba(255,45,111,0.18) 0%, rgba(164,92,255,0.18) 50%, rgba(0,229,255,0.18) 100%);
    --rpr-grad-text: linear-gradient(135deg, #fff 0%, #fff 40%, #a45cff 100%);

    --rpr-font-display: 'Bebas Neue', 'Space Grotesk', system-ui, sans-serif;
    --rpr-font-sans: 'Space Grotesk', system-ui, -apple-system, sans-serif;
    --rpr-font-mono: 'JetBrains Mono', 'Menlo', monospace;

    --rpr-radius: 14px;
    --rpr-radius-lg: 22px;

    --rpr-shadow-glow: 0 0 80px rgba(164,92,255,0.25), 0 0 30px rgba(255,45,111,0.15);
    --rpr-shadow-card: 0 20px 60px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.3);

    --rpr-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --rpr-ease-bounce: cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

/* ---------- 1. Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--rpr-font-sans);
    background: var(--rpr-bg-0);
    color: var(--rpr-fg);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
ul { padding: 0; margin: 0; list-style: none; }

::selection { background: var(--rpr-accent-pink); color: white; }
.screen-reader-text {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ---------- 2. Background texture (grain + noise) ---------- */
.rpr-grain, .rpr-noise {
    position: fixed; inset: 0; pointer-events: none; z-index: 1;
}
.rpr-grain {
    background:
        radial-gradient(circle at 20% 10%, rgba(164,92,255,0.12) 0%, transparent 40%),
        radial-gradient(circle at 80% 90%, rgba(255,45,111,0.10) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(0,229,255,0.05) 0%, transparent 55%);
    mix-blend-mode: screen;
    opacity: 0.85;
}
.rpr-noise {
    opacity: 0.04;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

/* ---------- 3. Buttons ---------- */
.rpr-btn {
    position: relative;
    display: inline-flex; align-items: center; gap: 0.6em;
    padding: 0.85em 1.6em;
    font-family: var(--rpr-font-sans);
    font-weight: 600; font-size: 14px; letter-spacing: 0.02em;
    border-radius: 999px;
    transition: transform 0.3s var(--rpr-ease), box-shadow 0.3s var(--rpr-ease), background 0.3s var(--rpr-ease);
    overflow: hidden;
    z-index: 1;
}
.rpr-btn--sm { padding: 0.6em 1.2em; font-size: 13px; }
.rpr-btn--lg { padding: 1em 1.8em; font-size: 15px; }
.rpr-btn--xl { padding: 1.15em 2em; font-size: 16px; }

.rpr-btn--accent {
    background: var(--rpr-grad-accent);
    color: white;
    box-shadow: 0 8px 24px rgba(255,45,111,0.35), 0 4px 12px rgba(164,92,255,0.25);
}
.rpr-btn--accent::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: var(--rpr-grad-accent);
    background-size: 200% 200%;
    animation: rpr-grad-shift 4s linear infinite;
}
.rpr-btn--accent:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 14px 32px rgba(255,45,111,0.5), 0 6px 18px rgba(164,92,255,0.4);
}
@keyframes rpr-grad-shift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.rpr-btn--ghost {
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    color: var(--rpr-fg);
    backdrop-filter: blur(20px);
}
.rpr-btn--ghost:hover {
    background: var(--rpr-glass-strong);
    border-color: var(--rpr-border-strong);
    transform: translateY(-2px);
}

/* ---------- 4. Header ---------- */
.rpr-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    padding: 1rem 0;
    transition: padding 0.3s var(--rpr-ease), background 0.3s var(--rpr-ease), backdrop-filter 0.3s var(--rpr-ease);
}
.rpr-header.is-scrolled {
    padding: 0.5rem 0;
    background: rgba(5,6,10,0.7);
    backdrop-filter: blur(20px) saturate(140%);
    border-bottom: 1px solid var(--rpr-border);
}
.rpr-header__inner {
    max-width: 1400px; margin: 0 auto;
    padding: 0 2rem;
    display: flex; align-items: center; justify-content: space-between;
    gap: 2rem;
}
.rpr-header__progress {
    position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
    background: rgba(255,255,255,0.04);
}
.rpr-header__progress span {
    display: block; height: 100%;
    background: var(--rpr-grad-accent);
    width: 0%;
    transition: width 0.1s linear;
    box-shadow: 0 0 12px var(--rpr-accent-pink);
}

.rpr-logo {
    display: inline-flex; align-items: center; gap: 0.6em;
    font-family: var(--rpr-font-display); font-size: 22px; letter-spacing: 0.04em;
}
.rpr-logo__mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px;
    background: var(--rpr-glass); border: 1px solid var(--rpr-border);
    border-radius: 10px;
    transition: transform 0.5s var(--rpr-ease);
}
.rpr-logo:hover .rpr-logo__mark { transform: rotate(-8deg) scale(1.05); }
.rpr-logo__text strong {
    font-weight: 700;
    color: var(--rpr-ink, #14101f); /* dark text over the light hero at top */
    transition: color 0.3s ease;
}
/* When the header goes dark (scrolled) or menu is open, flip RETRO to light */
.rpr-header.is-scrolled .rpr-logo__text strong,
.rpr-header.is-menu-open .rpr-logo__text strong {
    color: #fff;
}
.rpr-logo__text span {
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
}

.rpr-nav__list {
    display: flex; gap: 2rem;
    font-size: 14px; font-weight: 500;
}
.rpr-nav__list a {
    position: relative;
    color: var(--rpr-fg-mute);
    transition: color 0.2s var(--rpr-ease);
}
.rpr-nav__list a::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px;
    background: var(--rpr-grad-accent);
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.3s var(--rpr-ease);
}
.rpr-nav__list a:hover { color: var(--rpr-fg); }
.rpr-nav__list a:hover::after { transform: scaleX(1); }

.rpr-header__actions { display: flex; align-items: center; gap: 1rem; }
.rpr-cart {
    position: relative;
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rpr-glass); border: 1px solid var(--rpr-border); border-radius: 10px;
    color: var(--rpr-fg);
    transition: background 0.2s, transform 0.2s;
}
.rpr-cart:hover { background: var(--rpr-glass-strong); transform: translateY(-2px); }
.rpr-cart__count {
    position: absolute; top: -6px; right: -6px;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9px;
    background: var(--rpr-accent-pink);
    color: white; font-size: 10px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}

.rpr-burger { display: none; width: 38px; height: 38px; flex-direction: column; gap: 4px; align-items: center; justify-content: center; background: var(--rpr-glass); border: 1px solid var(--rpr-border); border-radius: 10px; }
.rpr-burger span { width: 18px; height: 2px; background: var(--rpr-fg); border-radius: 1px; transition: 0.3s; }

/* ---------- 5. Section heads ---------- */
.rpr-section__container {
    max-width: 1400px; margin: 0 auto; padding: 0 2rem;
    position: relative; z-index: 2;
}
.rpr-section__container--narrow { max-width: 880px; }
.rpr-section__head { max-width: 720px; margin-bottom: 4rem; }
.rpr-section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.rpr-section__head h2 {
    font-family: var(--rpr-font-display);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: 1.05; letter-spacing: 0.005em;
    margin: 0.5rem 0 1.2rem;
    font-weight: 400;
}
.rpr-section__head h2 em {
    font-style: normal;
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
}
.rpr-section__head p {
    color: var(--rpr-fg-mute); font-size: 1.1rem;
    margin: 0;
}

.rpr-eyebrow {
    display: inline-flex; align-items: center; gap: 0.6em;
    font-family: var(--rpr-font-mono); font-size: 12px;
    text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--rpr-fg-mute);
    padding: 0.4em 1em;
    border: 1px solid var(--rpr-border);
    border-radius: 999px;
    background: var(--rpr-glass);
    backdrop-filter: blur(10px);
}
.rpr-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--rpr-accent-pink);
    box-shadow: 0 0 12px var(--rpr-accent-pink);
    animation: rpr-pulse 2s ease-in-out infinite;
}
@keyframes rpr-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.6; }
}

/* ---------- 6. HERO ---------- */
.rpr-hero {
    position: relative;
    min-height: 100vh;
    padding: 9rem 2rem 6rem;
    display: flex; align-items: center;
    overflow: hidden;
    z-index: 2;
}
.rpr-hero__bg {
    position: absolute; inset: 0; z-index: -1; pointer-events: none;
}
.rpr-hero__orb {
    position: absolute; border-radius: 50%;
    filter: blur(80px);
    opacity: 0.5;
    animation: rpr-float-orb 16s ease-in-out infinite;
}
.rpr-hero__orb--1 {
    width: 600px; height: 600px;
    background: var(--rpr-accent-pink);
    top: -10%; left: -10%;
}
.rpr-hero__orb--2 {
    width: 500px; height: 500px;
    background: var(--rpr-accent-purple);
    bottom: -15%; right: -5%;
    animation-delay: -5s;
}
.rpr-hero__orb--3 {
    width: 400px; height: 400px;
    background: var(--rpr-accent-cyan);
    top: 40%; right: 30%;
    opacity: 0.3;
    animation-delay: -10s;
}
@keyframes rpr-float-orb {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(60px, -40px) scale(1.1); }
    66% { transform: translate(-40px, 40px) scale(0.95); }
}
.rpr-hero__grid {
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black, transparent);
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black, transparent);
}
.rpr-hero__scanline {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(0,229,255,0.06) 50%, transparent 100%);
    background-size: 100% 4px;
    opacity: 0.3;
    animation: rpr-scanline 8s linear infinite;
}
@keyframes rpr-scanline {
    0% { background-position: 0 0; }
    100% { background-position: 0 100%; }
}
.rpr-hero__mouse {
    position: absolute;
    width: 600px; height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(164,92,255,0.18) 0%, transparent 70%);
    transform: translate(-50%, -50%);
    pointer-events: none;
    transition: transform 0.2s var(--rpr-ease);
    will-change: transform;
}

.rpr-hero__inner {
    max-width: 1400px; margin: 0 auto; width: 100%;
    display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
    position: relative; z-index: 1;
}

.rpr-hero__title {
    font-family: var(--rpr-font-display);
    font-size: clamp(3.2rem, 7vw, 6rem);
    line-height: 0.95; letter-spacing: 0.005em;
    margin: 1.5rem 0 1.5rem;
    font-weight: 400;
}
.rpr-line {
    display: block;
    overflow: hidden;
}
.rpr-line--accent {
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
    background-size: 200% 200%;
    animation: rpr-grad-shift 5s linear infinite;
}
.rpr-hero__lede {
    font-size: 1.15rem;
    color: var(--rpr-fg-mute);
    max-width: 32em;
    margin: 0 0 2rem;
}
.rpr-hero__lede strong { color: var(--rpr-fg); font-weight: 600; }
.rpr-hero__cta {
    display: flex; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 2.5rem;
}
.rpr-hero__trust {
    display: flex; gap: 2.5rem;
    padding-top: 2rem; border-top: 1px solid var(--rpr-border);
}
.rpr-hero__trust li {
    display: flex; flex-direction: column; gap: 0.2em;
    font-size: 13px; color: var(--rpr-fg-mute);
}
.rpr-hero__trust strong {
    font-family: var(--rpr-font-display);
    font-size: 1.8rem; font-weight: 400;
    color: var(--rpr-fg);
    letter-spacing: 0.01em;
}

/* Hero visual / console */
.rpr-hero__visual {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    min-height: 540px;
    will-change: transform;
}

/* ---------- 7. CONSOLE (the R36S itself) ---------- */
.rpr-console {
    position: relative;
    width: 380px; height: 480px;
    transition: transform 0.4s var(--rpr-ease);
    transform-style: preserve-3d;
    will-change: transform;
}
.rpr-console--lg { width: 460px; height: 580px; }
.rpr-console__shadow {
    position: absolute; bottom: -40px; left: 10%; right: 10%;
    height: 80px;
    background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
    filter: blur(20px);
    z-index: -1;
}
.rpr-console__body {
    position: relative;
    width: 100%; height: 100%;
    background: linear-gradient(145deg, #2a2d3a 0%, #1a1c26 50%, #0d0f17 100%);
    border-radius: 32px;
    border: 1px solid rgba(255,255,255,0.06);
    box-shadow:
        inset 0 1px 1px rgba(255,255,255,0.1),
        inset 0 -2px 10px rgba(0,0,0,0.5),
        0 30px 80px rgba(0,0,0,0.6),
        0 0 60px rgba(164,92,255,0.15);
    padding: 24px;
    display: flex; flex-direction: column;
}
.rpr-console__bezel {
    position: relative;
    background: #050609;
    border-radius: 14px;
    padding: 14px;
    box-shadow: inset 0 0 24px rgba(0,0,0,0.8);
    flex: 1;
    display: flex; flex-direction: column; align-items: center;
}
.rpr-console__screen {
    position: relative;
    width: 100%; aspect-ratio: 4/3;
    background: #000;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: inset 0 0 16px rgba(0,0,0,0.9), 0 0 8px rgba(0,229,255,0.15);
}
.rpr-console__game {
    position: absolute; inset: 0;
}
.rpr-console__game-frame {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 8px;
    opacity: 0;
    transition: opacity 0.6s var(--rpr-ease);
    background: #000;
}
.rpr-console__game-frame.is-active,
.rpr-console__game-frame--active { opacity: 1; }
.rpr-console__title {
    font-family: var(--rpr-font-mono); font-size: 9px;
    color: var(--rpr-accent-cyan);
    letter-spacing: 0.2em;
    text-shadow: 0 0 8px var(--rpr-accent-cyan);
    animation: rpr-blink 1.5s ease-in-out infinite;
}
@keyframes rpr-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}
.rpr-console__scanlines {
    position: absolute; inset: 0;
    background: repeating-linear-gradient(0deg, rgba(0,0,0,0.18) 0px, rgba(0,0,0,0.18) 1px, transparent 1px, transparent 3px);
    pointer-events: none;
}
.rpr-console__glare {
    position: absolute; top: 0; left: 0; right: 50%; bottom: 50%;
    background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, transparent 50%);
    border-radius: 6px 0 0 0;
    pointer-events: none;
}
.rpr-console__brand {
    margin-top: 10px;
    font-family: var(--rpr-font-display); font-size: 14px;
    color: var(--rpr-fg-dim);
    letter-spacing: 0.15em;
}
.rpr-console__brand span {
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
}
.rpr-console__controls {
    margin-top: 18px;
    display: flex; justify-content: space-between; align-items: center;
    padding: 0 8px;
}

.rpr-dpad {
    position: relative;
    width: 70px; height: 70px;
}
.rpr-dpad__up, .rpr-dpad__down, .rpr-dpad__left, .rpr-dpad__right {
    position: absolute;
    background: linear-gradient(145deg, #1c1f2a, #0a0c12);
    border: 1px solid rgba(255,255,255,0.05);
    box-shadow: inset 0 1px 1px rgba(255,255,255,0.05);
}
.rpr-dpad__up    { top: 0;    left: 26px;  width: 18px; height: 26px; border-radius: 4px 4px 0 0; }
.rpr-dpad__down  { bottom: 0; left: 26px;  width: 18px; height: 26px; border-radius: 0 0 4px 4px; }
.rpr-dpad__left  { left: 0;   top: 26px;   width: 26px; height: 18px; border-radius: 4px 0 0 4px; }
.rpr-dpad__right { right: 0;  top: 26px;   width: 26px; height: 18px; border-radius: 0 4px 4px 0; }
.rpr-dpad__center {
    position: absolute; top: 26px; left: 26px;
    width: 18px; height: 18px;
    background: #0a0c12;
    border-radius: 2px;
}

.rpr-buttons {
    position: relative;
    width: 80px; height: 80px;
}
.rpr-buttons span {
    position: absolute;
    width: 26px; height: 26px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--rpr-font-mono); font-size: 11px; font-weight: 700;
    color: white;
    box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5), 0 0 8px currentColor;
}
.rpr-btn-x { top: 0;    left: 27px;  background: linear-gradient(135deg, #00b4d8, #0077b6); color: #b3ecff; }
.rpr-btn-y { top: 27px; left: 0;     background: linear-gradient(135deg, #f1c40f, #c79c00); color: #fff5b3; }
.rpr-btn-a { top: 27px; right: 0;    background: linear-gradient(135deg, #2ecc71, #1e8449); color: #b3ffd3; }
.rpr-btn-b { bottom: 0; left: 27px;  background: linear-gradient(135deg, #e74c3c, #a93226); color: #ffc4be; }

.rpr-console__menu {
    margin-top: 14px;
    display: flex; gap: 8px; justify-content: center;
}
.rpr-console__menu span {
    width: 24px; height: 6px; border-radius: 3px;
    background: linear-gradient(145deg, #1c1f2a, #0a0c12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

/* Floating chips */
.rpr-float {
    position: absolute;
    display: inline-flex; align-items: center; gap: 0.5em;
    padding: 0.6em 1em;
    background: rgba(10,12,20,0.7);
    backdrop-filter: blur(20px);
    border: 1px solid var(--rpr-border-strong);
    border-radius: 999px;
    font-family: var(--rpr-font-mono); font-size: 12px;
    color: var(--rpr-fg);
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    animation: rpr-float-y 5s ease-in-out infinite;
    will-change: transform;
}
.rpr-float--1 { top: 6%;   left: -8%;  animation-delay: 0s; }
.rpr-float--2 { top: 38%;  right: -10%; animation-delay: -1.5s; }
.rpr-float--3 { bottom: 12%; left: -4%; animation-delay: -3s; }
@keyframes rpr-float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}
.rpr-float__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rpr-accent-pink); box-shadow: 0 0 8px currentColor; }
.rpr-float__dot--alt { background: var(--rpr-accent-purple); }
.rpr-float__dot--cyan { background: var(--rpr-accent-cyan); }

.rpr-hero__scroll {
    position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; gap: 0.6em;
    font-family: var(--rpr-font-mono); font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.3em;
    color: var(--rpr-fg-mute);
}
.rpr-hero__scroll-line {
    width: 1px; height: 40px;
    background: linear-gradient(to bottom, var(--rpr-fg-mute), transparent);
    position: relative;
    overflow: hidden;
}
.rpr-hero__scroll-line::after {
    content: ''; position: absolute; top: -40px; left: 0; right: 0;
    height: 40px;
    background: linear-gradient(to bottom, transparent, var(--rpr-accent-pink));
    animation: rpr-scroll-cue 2s ease-in-out infinite;
}
@keyframes rpr-scroll-cue {
    0% { top: -40px; }
    100% { top: 40px; }
}

/* ---------- 8. MARQUEE ---------- */
.rpr-marquee-systems {
    position: relative;
    padding: 2.5rem 0;
    border-top: 1px solid var(--rpr-border);
    border-bottom: 1px solid var(--rpr-border);
    background: var(--rpr-bg-1);
    overflow: hidden;
    z-index: 2;
}
.rpr-marquee {
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}
.rpr-marquee__track {
    display: inline-flex; align-items: center; gap: 2rem;
    white-space: nowrap;
    animation: rpr-marquee 40s linear infinite;
}
.rpr-marquee__item {
    font-family: var(--rpr-font-display); font-size: 1.8rem;
    letter-spacing: 0.15em;
    color: var(--rpr-fg-dim);
    transition: color 0.3s var(--rpr-ease);
}
.rpr-marquee__item:hover { color: var(--rpr-fg); }
.rpr-marquee__sep { color: var(--rpr-accent-pink); }
@keyframes rpr-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-33.333%); }
}

/* ---------- 9. PRODUCT (sticky scroll) ---------- */
.rpr-product {
    position: relative;
    padding: 8rem 2rem;
    z-index: 2;
}
.rpr-product__inner {
    max-width: 1400px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 6rem;
    align-items: flex-start;
}
.rpr-product__sticky {
    position: sticky; top: 100px;
    height: calc(100vh - 140px);
    display: flex; align-items: center; justify-content: center;
}
.rpr-product__visual {
    position: relative;
    will-change: transform;
}
.rpr-product__halo {
    position: absolute;
    width: 540px; height: 540px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(164,92,255,0.4) 0%, transparent 60%);
    filter: blur(40px);
    top: 50%; left: 50%; transform: translate(-50%, -50%);
    z-index: -1;
    animation: rpr-pulse-glow 4s ease-in-out infinite;
}
@keyframes rpr-pulse-glow {
    0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}
.rpr-product__feature-screen {
    position: absolute; inset: 0;
}
.rpr-product__feature-content {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity 0.6s var(--rpr-ease);
    display: flex; align-items: center; justify-content: center;
    background: #000;
}
.rpr-product__feature-content.is-active { opacity: 1; }

.rpr-product__features {
    display: flex; flex-direction: column;
    gap: 6rem;
}

.rpr-feature {
    padding: 2.5rem;
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius-lg);
    backdrop-filter: blur(10px);
    transition: border-color 0.4s var(--rpr-ease), transform 0.4s var(--rpr-ease);
    position: relative;
    overflow: hidden;
}
.rpr-feature::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 1px;
    background: var(--rpr-grad-accent);
    opacity: 0;
    transition: opacity 0.4s var(--rpr-ease);
}
.rpr-feature:hover {
    border-color: var(--rpr-border-strong);
    transform: translateY(-4px);
}
.rpr-feature:hover::before { opacity: 1; }
.rpr-feature__num {
    font-family: var(--rpr-font-mono); font-size: 12px;
    color: var(--rpr-fg-dim);
    letter-spacing: 0.2em;
    margin-bottom: 1rem;
}
.rpr-feature h3 {
    font-family: var(--rpr-font-sans);
    font-size: 1.6rem; line-height: 1.2;
    margin: 0 0 1rem;
    font-weight: 600;
}
.rpr-feature p { color: var(--rpr-fg-mute); margin: 0 0 1.5rem; }
.rpr-feature__bullets {
    display: flex; flex-direction: column; gap: 0.5rem;
    color: var(--rpr-fg-mute); font-size: 0.95rem;
}
.rpr-feature__bullets li { padding-left: 1.5em; position: relative; }
.rpr-feature__bullets li::before {
    content: ''; position: absolute; left: 0; top: 0.7em;
    width: 8px; height: 1px;
    background: var(--rpr-accent-pink);
}

/* ---------- 10. SPECS ---------- */
.rpr-specs {
    position: relative;
    padding: 8rem 2rem;
    background: linear-gradient(180deg, var(--rpr-bg-0) 0%, var(--rpr-bg-1) 100%);
    z-index: 2;
}
.rpr-specs__bg {
    position: absolute; inset: 0; pointer-events: none;
}
.rpr-specs__glow {
    position: absolute;
    width: 800px; height: 800px;
    background: radial-gradient(circle, rgba(255,45,111,0.12) 0%, transparent 60%);
    top: 50%; left: 50%; transform: translate(-50%, -50%);
    filter: blur(60px);
}
.rpr-specs__grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.rpr-spec {
    position: relative;
    padding: 2rem;
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius);
    backdrop-filter: blur(10px);
    overflow: hidden;
    transition: transform 0.4s var(--rpr-ease), border-color 0.4s var(--rpr-ease);
    will-change: transform;
}
.rpr-spec__bg {
    position: absolute; inset: 0;
    background: var(--rpr-grad-accent-soft);
    opacity: 0;
    transition: opacity 0.4s var(--rpr-ease);
    z-index: -1;
}
.rpr-spec:hover {
    transform: translateY(-6px);
    border-color: var(--rpr-border-strong);
}
.rpr-spec:hover .rpr-spec__bg { opacity: 1; }

.rpr-spec__label {
    font-family: var(--rpr-font-mono); font-size: 11px;
    text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--rpr-fg-dim);
    display: block;
    margin-bottom: 1rem;
}
.rpr-spec__value {
    display: flex; align-items: baseline; gap: 0.4em;
    margin-bottom: 0.5rem;
}
.rpr-spec__value strong {
    font-family: var(--rpr-font-display);
    font-size: 3.2rem; line-height: 1;
    font-weight: 400;
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
    letter-spacing: 0.005em;
}
.rpr-spec__value span {
    font-family: var(--rpr-font-mono); font-size: 13px;
    color: var(--rpr-fg-mute);
}
.rpr-spec__detail {
    font-size: 13px; color: var(--rpr-fg-mute);
    display: block;
}

/* ---------- 11. LIBRARY ---------- */
.rpr-library {
    position: relative;
    padding: 8rem 2rem;
    z-index: 2;
}
.rpr-library__grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.rpr-game {
    position: relative;
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius);
    overflow: hidden;
    transition: transform 0.4s var(--rpr-ease), border-color 0.4s var(--rpr-ease);
    cursor: pointer;
}
.rpr-game:hover {
    transform: translateY(-6px);
    border-color: var(--rpr-border-strong);
}
.rpr-game__art {
    position: relative;
    aspect-ratio: 4/3;
    background: #000;
    overflow: hidden;
}
.rpr-game__scanlines {
    position: absolute; inset: 0;
    background: repeating-linear-gradient(0deg, rgba(0,0,0,0.2) 0px, rgba(0,0,0,0.2) 1px, transparent 1px, transparent 3px);
    pointer-events: none;
}
.rpr-game__overlay {
    position: absolute; inset: 0;
    background: rgba(5,6,10,0.6);
    backdrop-filter: blur(4px);
    opacity: 0;
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.3s var(--rpr-ease);
}
.rpr-game:hover .rpr-game__overlay { opacity: 1; }
.rpr-game__play {
    font-family: var(--rpr-font-mono); font-size: 14px;
    letter-spacing: 0.2em;
    color: white;
    padding: 0.6em 1.2em;
    border: 1px solid white;
    border-radius: 999px;
    transform: scale(0.8);
    transition: transform 0.3s var(--rpr-ease-bounce);
}
.rpr-game:hover .rpr-game__play { transform: scale(1); }
.rpr-game__meta { padding: 1rem 1.2rem 1.2rem; }
.rpr-game__system {
    font-family: var(--rpr-font-mono); font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--rpr-fg-dim);
}
.rpr-game__title {
    font-size: 1.05rem;
    margin: 0.4em 0 0;
    font-weight: 600;
}
.rpr-library__more { text-align: center; margin-top: 4rem; color: var(--rpr-fg-mute); font-family: var(--rpr-font-mono); font-size: 14px; }

/* ---------- 12. PIXEL ART (CSS-only sprites) ---------- */
.rpr-pixel-art {
    width: 80%; aspect-ratio: 1; position: relative;
    image-rendering: pixelated;
    background-size: contain; background-repeat: no-repeat; background-position: center;
}
.rpr-pixel-art--mario {
    background-image: linear-gradient(#000 0 0);
    background: 
        radial-gradient(circle at 50% 30%, #e74c3c 0 25%, transparent 25%),
        radial-gradient(circle at 50% 65%, #3498db 0 30%, transparent 30%),
        linear-gradient(135deg, #1a3a5c 0%, #0a1a2e 100%);
}
.rpr-pixel-art--mario::before {
    content: '🍄';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(231,76,60,0.6));
}
.rpr-pixel-art--zelda {
    background: linear-gradient(135deg, #1a3d2e 0%, #0a1a14 100%);
}
.rpr-pixel-art--zelda::before {
    content: '⚔️';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(46,204,113,0.6));
}
.rpr-pixel-art--metroid {
    background: linear-gradient(135deg, #2a1a3d 0%, #0a0418 100%);
}
.rpr-pixel-art--metroid::before {
    content: '👾';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(164,92,255,0.7));
}
.rpr-pixel-art--pkmn {
    background: linear-gradient(135deg, #3d3a1a 0%, #18170a 100%);
}
.rpr-pixel-art--pkmn::before {
    content: '⚡';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(241,196,15,0.7));
}
.rpr-pixel-art--sonic {
    background: linear-gradient(135deg, #1a2a3d 0%, #08101e 100%);
}
.rpr-pixel-art--sonic::before {
    content: '💨';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(0,180,216,0.6));
}
.rpr-pixel-art--ff {
    background: linear-gradient(135deg, #3d2a1a 0%, #1e1408 100%);
}
.rpr-pixel-art--ff::before {
    content: '🗡️';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(255,181,71,0.6));
}
.rpr-pixel-art--kof {
    background: linear-gradient(135deg, #3d1a2a 0%, #1e081a 100%);
}
.rpr-pixel-art--kof::before {
    content: '🥋';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem;
    filter: drop-shadow(0 0 20px rgba(255,45,111,0.6));
}

/* ---------- 13. COMPARE ---------- */
.rpr-compare {
    position: relative;
    padding: 8rem 2rem;
    background: var(--rpr-bg-1);
    z-index: 2;
}
.rpr-compare__table {
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius-lg);
    overflow: hidden;
    backdrop-filter: blur(10px);
}
.rpr-compare__head, .rpr-compare__row {
    display: grid; grid-template-columns: 1.4fr repeat(4, 1fr);
    align-items: center;
}
.rpr-compare__head {
    padding: 1.5rem 2rem;
    border-bottom: 1px solid var(--rpr-border);
    background: rgba(255,255,255,0.02);
    font-family: var(--rpr-font-mono); font-size: 12px;
    text-transform: uppercase; letter-spacing: 0.15em;
    color: var(--rpr-fg-mute);
}
.rpr-compare__head .rpr-compare__us {
    color: var(--rpr-fg);
    display: flex; flex-direction: column; gap: 0.2em;
}
.rpr-compare__head .rpr-compare__us span {
    font-size: 10px; color: var(--rpr-accent-pink);
    letter-spacing: 0.2em;
}
.rpr-compare__row {
    padding: 1.2rem 2rem;
    border-bottom: 1px solid var(--rpr-border);
    transition: background 0.3s var(--rpr-ease);
}
.rpr-compare__row:last-child { border-bottom: none; }
.rpr-compare__row:hover { background: rgba(255,255,255,0.02); }
.rpr-compare__feat { color: var(--rpr-fg-mute); font-size: 14px; }
.rpr-compare__cell {
    color: var(--rpr-fg);
    font-family: var(--rpr-font-mono); font-size: 14px;
}
.rpr-compare__cell--us {
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
    font-weight: 700;
}

/* ---------- 14. REVIEWS ---------- */
.rpr-reviews { position: relative; padding: 8rem 2rem; z-index: 2; }
.rpr-reviews__grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.rpr-review {
    padding: 2rem;
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius);
    backdrop-filter: blur(10px);
    transition: transform 0.4s var(--rpr-ease), border-color 0.4s var(--rpr-ease);
}
.rpr-review:hover {
    transform: translateY(-4px);
    border-color: var(--rpr-border-strong);
}
.rpr-review__stars { font-size: 16px; color: var(--rpr-fg-dim); margin-bottom: 1rem; letter-spacing: 0.1em; }
.rpr-review__stars .on { color: var(--rpr-accent-amber); text-shadow: 0 0 8px var(--rpr-accent-amber); }
.rpr-review blockquote {
    margin: 0 0 1.5rem; padding: 0;
    font-size: 1.05rem; line-height: 1.5;
    color: var(--rpr-fg);
}
.rpr-review footer { display: flex; flex-direction: column; gap: 0.2em; }
.rpr-review footer strong { font-weight: 600; }
.rpr-review footer span { font-size: 13px; color: var(--rpr-fg-mute); }

/* ---------- 15. FAQ ---------- */
.rpr-faq { padding: 8rem 2rem; position: relative; z-index: 2; }
.rpr-faq__list { display: flex; flex-direction: column; gap: 0.8rem; }
.rpr-faq__item {
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: var(--rpr-radius);
    overflow: hidden;
    transition: border-color 0.3s var(--rpr-ease);
}
.rpr-faq__item:hover { border-color: var(--rpr-border-strong); }
.rpr-faq__item[open] { border-color: var(--rpr-border-strong); }
.rpr-faq__item summary {
    list-style: none;
    padding: 1.4rem 1.8rem;
    display: flex; justify-content: space-between; align-items: center; gap: 1rem;
    cursor: pointer;
    font-size: 1.05rem; font-weight: 500;
}
.rpr-faq__item summary::-webkit-details-marker { display: none; }
.rpr-faq__icon {
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--rpr-border-strong);
    border-radius: 50%;
    font-size: 18px;
    transition: transform 0.3s var(--rpr-ease), background 0.3s var(--rpr-ease);
    flex-shrink: 0;
}
.rpr-faq__item[open] .rpr-faq__icon {
    transform: rotate(45deg);
    background: var(--rpr-grad-accent);
    border-color: transparent;
}
.rpr-faq__a {
    padding: 0 1.8rem 1.6rem;
    color: var(--rpr-fg-mute);
    line-height: 1.6;
}

/* ---------- 16. BUY (final CTA) ---------- */
.rpr-buy {
    position: relative;
    padding: 8rem 2rem;
    overflow: hidden;
    z-index: 2;
}
.rpr-buy__bg { position: absolute; inset: 0; pointer-events: none; }
.rpr-buy__orb {
    position: absolute; border-radius: 50%;
    filter: blur(100px);
}
.rpr-buy__orb--1 {
    width: 700px; height: 700px;
    background: var(--rpr-accent-purple);
    top: -20%; left: -10%; opacity: 0.3;
}
.rpr-buy__orb--2 {
    width: 600px; height: 600px;
    background: var(--rpr-accent-pink);
    bottom: -20%; right: -10%; opacity: 0.25;
}
.rpr-buy__inner {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
    background: rgba(10,12,20,0.6);
    border: 1px solid var(--rpr-border-strong);
    border-radius: var(--rpr-radius-lg);
    backdrop-filter: blur(20px);
    padding: 4rem;
}
.rpr-buy__copy h2 {
    font-family: var(--rpr-font-display);
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1.05;
    margin: 0.5rem 0 1rem;
    font-weight: 400;
}
.rpr-buy__copy p { color: var(--rpr-fg-mute); margin: 0 0 2rem; }
.rpr-buy__price {
    display: flex; align-items: baseline; gap: 1rem;
    margin-bottom: 2rem;
}
.rpr-buy__price-now {
    font-family: var(--rpr-font-display);
    font-size: 3.5rem; line-height: 1;
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
}
.rpr-buy__price-now .amount { font-family: inherit; }
.rpr-buy__price-was {
    color: var(--rpr-fg-dim);
    text-decoration: line-through;
    font-size: 1.5rem;
}
.rpr-buy__price-tag {
    padding: 0.4em 0.9em;
    background: rgba(255,45,111,0.15);
    border: 1px solid rgba(255,45,111,0.3);
    border-radius: 999px;
    font-family: var(--rpr-font-mono); font-size: 11px;
    text-transform: uppercase; letter-spacing: 0.15em;
    color: var(--rpr-accent-pink);
}
.rpr-buy__bullets {
    display: flex; flex-direction: column; gap: 0.6em;
    margin-top: 2rem;
    color: var(--rpr-fg-mute); font-size: 0.95rem;
}
.rpr-buy__visual {
    display: flex; align-items: center; justify-content: center;
}

/* ---------- 17. FOOTER ---------- */
.rpr-footer {
    position: relative;
    padding: 5rem 2rem 2rem;
    background: var(--rpr-bg-1);
    border-top: 1px solid var(--rpr-border);
    overflow: hidden;
    z-index: 2;
}
.rpr-footer__bg { position: absolute; inset: 0; pointer-events: none; }
.rpr-footer__glow {
    position: absolute;
    width: 100%; height: 1px;
    top: 0; left: 0;
    background: var(--rpr-grad-accent);
    opacity: 0.6;
}
.rpr-footer__inner { max-width: 1400px; margin: 0 auto; position: relative; }
.rpr-footer__top {
    display: grid; grid-template-columns: 1.5fr 2fr; gap: 4rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid var(--rpr-border);
}
.rpr-footer__tag { color: var(--rpr-fg-mute); margin: 1rem 0 1.5rem; max-width: 30em; }

.rpr-newsletter {
    display: flex; gap: 0.5rem;
    background: var(--rpr-glass);
    border: 1px solid var(--rpr-border);
    border-radius: 999px;
    padding: 0.4rem 0.4rem 0.4rem 1.2rem;
    max-width: 380px;
    position: relative;
}
.rpr-newsletter input {
    flex: 1; background: none; border: 0; color: var(--rpr-fg);
    font: inherit; outline: none;
    min-width: 0;
}
.rpr-newsletter input::placeholder { color: var(--rpr-fg-dim); }
.rpr-newsletter__msg {
    position: absolute; left: 1.2rem; bottom: -1.6rem;
    font-size: 12px; color: var(--rpr-accent-cyan);
}

.rpr-footer__cols {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
}
.rpr-footer__col h4 {
    font-family: var(--rpr-font-mono); font-size: 11px;
    text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--rpr-fg-dim);
    margin: 0 0 1rem;
}
.rpr-footer__col ul li { padding: 0.3em 0; }
.rpr-footer__col a {
    color: var(--rpr-fg-mute);
    transition: color 0.2s var(--rpr-ease);
    font-size: 14px;
}
.rpr-footer__col a:hover { color: var(--rpr-fg); }

.rpr-footer__bottom {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 2rem;
    color: var(--rpr-fg-dim); font-size: 13px;
}
.rpr-socials { display: flex; gap: 0.6rem; }
.rpr-socials a {
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rpr-glass); border: 1px solid var(--rpr-border);
    border-radius: 10px;
    color: var(--rpr-fg-mute);
    transition: all 0.2s var(--rpr-ease);
}
.rpr-socials a:hover {
    color: var(--rpr-fg);
    border-color: var(--rpr-border-strong);
    transform: translateY(-2px);
}

/* ---------- 18. REVEAL ANIMATIONS ---------- */
[data-rpr-reveal] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s var(--rpr-ease), transform 0.8s var(--rpr-ease);
}
[data-rpr-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
}
.rpr-line {
    transform: translateY(100%);
    transition: transform 0.8s var(--rpr-ease);
}
[data-rpr-reveal].is-revealed .rpr-line { transform: translateY(0); }

/* ---------- 19. RESPONSIVE ---------- */
@media (max-width: 1100px) {
    .rpr-hero__inner { grid-template-columns: 1fr; }
    .rpr-hero__visual { order: -1; min-height: 460px; }
    .rpr-product__inner { grid-template-columns: 1fr; gap: 4rem; }
    .rpr-product__sticky { position: relative; top: 0; height: auto; }
    .rpr-specs__grid { grid-template-columns: repeat(2, 1fr); }
    .rpr-library__grid { grid-template-columns: repeat(2, 1fr); }
    .rpr-reviews__grid { grid-template-columns: repeat(2, 1fr); }
    .rpr-compare__head, .rpr-compare__row { grid-template-columns: 1fr 1fr 1fr; }
    .rpr-compare__head > div:nth-child(4),
    .rpr-compare__head > div:nth-child(5),
    .rpr-compare__row > div:nth-child(4),
    .rpr-compare__row > div:nth-child(5) { display: none; }
    .rpr-buy__inner { grid-template-columns: 1fr; padding: 2.5rem; }
    .rpr-footer__top { grid-template-columns: 1fr; gap: 3rem; }
}
@media (max-width: 720px) {
    .rpr-nav { display: none; }
    .rpr-burger { display: flex; }
    .rpr-header__inner { padding: 0 1.2rem; }
    .rpr-hero { padding: 7rem 1.2rem 4rem; }
    .rpr-hero__title { font-size: 2.6rem; }
    .rpr-hero__cta { flex-direction: column; }
    .rpr-hero__cta .rpr-btn { width: 100%; justify-content: center; }
    .rpr-hero__trust { flex-wrap: wrap; gap: 1.2rem; }
    .rpr-product, .rpr-specs, .rpr-library, .rpr-compare, .rpr-reviews, .rpr-faq, .rpr-buy { padding: 5rem 1.2rem; }
    .rpr-product__features { gap: 2rem; }
    .rpr-feature { padding: 1.6rem; }
    .rpr-specs__grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .rpr-spec { padding: 1.4rem; }
    .rpr-spec__value strong { font-size: 2.4rem; }
    .rpr-library__grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .rpr-reviews__grid { grid-template-columns: 1fr; }
    .rpr-section__head h2 { font-size: 2.2rem; }
    .rpr-console { width: 280px; height: 360px; }
    .rpr-console--lg { width: 320px; height: 420px; }
    .rpr-float { display: none; }
    .rpr-footer__bottom { flex-direction: column; gap: 1rem; }
    .rpr-footer__cols { grid-template-columns: 1fr 1fr; }
    .rpr-buy__inner { padding: 2rem 1.4rem; }
    .rpr-buy__price { flex-wrap: wrap; gap: 0.6rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
    [data-rpr-reveal] { opacity: 1; transform: none; }
    .rpr-line { transform: none; }
}

/* =============================================================
   v1.1 — Advanced animations + new sections
   ============================================================= */

/* ---------- Hero video background ---------- */
.rpr-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0.35;
    filter: saturate(1.3) contrast(1.05);
}
.rpr-hero__video-veil {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(5,6,10,0.4) 0%, rgba(5,6,10,0.85) 70%, var(--rpr-bg-0) 100%);
    z-index: 1;
}
.rpr-hero__noise {
    position: absolute;
    inset: 0;
    z-index: 2;
    opacity: 0.04;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
}

/* ---------- Real product image (hero & buy) ---------- */
.rpr-hero__product,
.rpr-buy__product {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    transform-style: preserve-3d;
    transition: transform 0.6s cubic-bezier(.22,1,.36,1);
    transform: rotateX(var(--rpr-tilt-x, 0deg)) rotateY(var(--rpr-tilt-y, 0deg));
    will-change: transform;
}
.rpr-hero__product img,
.rpr-buy__product img {
    width: 100%;
    height: auto;
    display: block;
    filter: drop-shadow(0 30px 60px rgba(255,45,111,0.25)) drop-shadow(0 50px 100px rgba(0,229,255,0.18));
    position: relative;
    z-index: 2;
}
.rpr-hero__product-glow,
.rpr-buy__product-glow {
    position: absolute;
    inset: 10% 10% -5%;
    background: radial-gradient(ellipse at center, rgba(255,45,111,0.45) 0%, rgba(164,92,255,0.25) 35%, transparent 70%);
    filter: blur(50px);
    z-index: 1;
    animation: rpr-product-pulse 4s ease-in-out infinite;
}
.rpr-hero__product-shadow {
    position: absolute;
    bottom: -8%;
    left: 10%;
    right: 10%;
    height: 40px;
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.55) 0%, transparent 70%);
    filter: blur(12px);
    z-index: 0;
}
@keyframes rpr-product-pulse {
    0%, 100% { opacity: 0.85; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.08); }
}

/* ---------- Split-text reveals ---------- */
.rpr-split-ready { display: inline-block; }
.rpr-char {
    display: inline-block;
    transform: translateY(110%) rotateX(-60deg);
    opacity: 0;
    transition: transform 0.8s cubic-bezier(.22,1,.36,1), opacity 0.6s ease;
    transition-delay: calc(var(--rpr-char-i, 0) * 22ms);
    transform-origin: 50% 100%;
    will-change: transform, opacity;
}
[data-rpr-reveal].is-revealed .rpr-char {
    transform: translateY(0) rotateX(0);
    opacity: 1;
}

/* ---------- Magnetic button base styling ---------- */
[data-rpr-magnetic] {
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), box-shadow 0.4s ease;
    will-change: transform;
}

/* ---------- Card cursor halo ---------- */
.rpr-spec, .rpr-card-info, .rpr-glass-card, .rpr-game, .rpr-review, .rpr-faq__item {
    position: relative;
}
.rpr-spec::before, .rpr-card-info::before, .rpr-glass-card::before,
.rpr-game::before, .rpr-review::before, .rpr-faq__item::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(circle 280px at var(--rpr-mx, 50%) var(--rpr-my, 50%), rgba(255,45,111,0.14), rgba(164,92,255,0.08) 40%, transparent 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 0;
}
.rpr-spec:hover::before, .rpr-card-info:hover::before, .rpr-glass-card:hover::before,
.rpr-game:hover::before, .rpr-review:hover::before, .rpr-faq__item:hover::before {
    opacity: 1;
}
.rpr-spec > *, .rpr-card-info > *, .rpr-glass-card > *, .rpr-review > *, .rpr-faq__item > * { position: relative; z-index: 1; }

/* ---------- Custom cursor ---------- */
.rpr-cursor {
    position: fixed;
    top: 0; left: 0;
    pointer-events: none;
    z-index: 99999;
    mix-blend-mode: difference;
}
.rpr-cursor__dot {
    position: fixed;
    top: -3px; left: -3px;
    width: 6px; height: 6px;
    background: white;
    border-radius: 50%;
    transition: width 0.2s ease, height 0.2s ease;
    will-change: transform;
}
.rpr-cursor__ring {
    position: fixed;
    top: -16px; left: -16px;
    width: 32px; height: 32px;
    border: 1.5px solid rgba(255,255,255,0.5);
    border-radius: 50%;
    transition: width 0.25s cubic-bezier(.22,1,.36,1), height 0.25s, top 0.25s, left 0.25s, border-color 0.25s;
    will-change: transform;
}
.rpr-cursor.is-hover .rpr-cursor__ring {
    width: 56px; height: 56px;
    top: -28px; left: -28px;
    border-color: rgba(255,255,255,1);
}
.rpr-cursor.is-hover .rpr-cursor__dot { width: 0; height: 0; }
@media (max-width: 720px), (pointer: coarse) { .rpr-cursor { display: none !important; } }

/* ---------- Video showcase section ---------- */
.rpr-video {
    padding: 6rem 0;
    position: relative;
}
.rpr-video__frame {
    max-width: 1100px;
    margin: 3rem auto 0;
    position: relative;
    aspect-ratio: 16 / 9;
    transform-style: preserve-3d;
}
.rpr-video__glow {
    position: absolute;
    inset: -20% -10% -10%;
    background: radial-gradient(ellipse at center, rgba(255,45,111,0.4), rgba(0,229,255,0.25) 40%, transparent 70%);
    filter: blur(60px);
    z-index: -1;
    animation: rpr-product-pulse 6s ease-in-out infinite;
}
.rpr-video__bezel {
    position: absolute;
    inset: 0;
    border-radius: 18px;
    padding: 14px;
    background: linear-gradient(140deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
    border: 1px solid rgba(255,255,255,0.1);
    backdrop-filter: blur(14px);
    box-shadow: 0 30px 60px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.1);
}
.rpr-video__player {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: #000;
}
.rpr-video__poster {
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(0.7);
    transition: filter 0.4s ease, transform 0.6s cubic-bezier(.22,1,.36,1);
}
.rpr-video__poster--default {
    background: linear-gradient(135deg, #1a1e2c 0%, #05060a 100%) center/cover;
}
.rpr-video__player:hover .rpr-video__poster {
    filter: brightness(0.55);
    transform: scale(1.02);
}
.rpr-video__play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 96px; height: 96px;
    border-radius: 50%;
    background: var(--rpr-grad-accent);
    border: 0;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), box-shadow 0.4s ease;
    box-shadow: 0 0 0 0 rgba(255,45,111,0.6);
}
.rpr-video__play-ring {
    position: absolute;
    inset: -8px;
    border: 2px solid rgba(255,45,111,0.4);
    border-radius: 50%;
    animation: rpr-ring 2s ease-out infinite;
}
@keyframes rpr-ring {
    0% { transform: scale(1); opacity: 0.8; }
    100% { transform: scale(1.5); opacity: 0; }
}
.rpr-video__player:hover .rpr-video__play {
    transform: translate(-50%, -50%) scale(1.1);
    box-shadow: 0 20px 60px rgba(255,45,111,0.5);
}
.rpr-video__scanlines {
    position: absolute; inset: 0; pointer-events: none;
    background: repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(0,0,0,0.18) 2px, rgba(0,0,0,0.18) 3px);
    opacity: 0.4;
    mix-blend-mode: overlay;
}
.rpr-video__player.is-playing .rpr-video__scanlines { display: none; }
.rpr-video__caption {
    text-align: center;
    color: var(--rpr-text-dim);
    font-size: 0.95rem;
    margin-top: 1.5rem;
    letter-spacing: 0.02em;
}

/* ---------- Gallery section ---------- */
.rpr-gallery {
    padding: 6rem 0;
    position: relative;
}
.rpr-gallery__grid {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 240px;
    gap: 1rem;
}
.rpr-gallery__cell {
    margin: 0;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    transition: transform 0.4s cubic-bezier(.22,1,.36,1);
    grid-column: span 1;
    grid-row: span 1;
}
.rpr-gallery__cell--lg { grid-column: span 2; grid-row: span 2; }
.rpr-gallery__cell--md { grid-column: span 2; grid-row: span 1; }
.rpr-gallery__zoom {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    cursor: zoom-in;
    overflow: hidden;
    border-radius: inherit;
}
.rpr-gallery__zoom img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(.22,1,.36,1), filter 0.4s ease;
    filter: brightness(0.85) saturate(1.05);
}
.rpr-gallery__cell:hover .rpr-gallery__zoom img {
    transform: scale(1.08);
    filter: brightness(1) saturate(1.15);
}
.rpr-gallery__shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.18) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform 0.8s cubic-bezier(.22,1,.36,1);
    pointer-events: none;
}
.rpr-gallery__cell:hover .rpr-gallery__shine { transform: translateX(100%); }
@media (max-width: 900px) {
    .rpr-gallery__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
    .rpr-gallery__cell--lg { grid-column: span 2; grid-row: span 2; }
    .rpr-gallery__cell--md { grid-column: span 2; }
}

/* ---------- Lightbox ---------- */
.rpr-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(5,6,10,0.92);
    backdrop-filter: blur(20px);
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5vh 5vw;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    cursor: zoom-out;
}
.rpr-lightbox.is-open { opacity: 1; visibility: visible; }
.rpr-lightbox__img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 12px;
    box-shadow: 0 50px 100px rgba(0,0,0,0.8), 0 0 0 1px rgba(255,255,255,0.05);
    transform: scale(0.94);
    transition: transform 0.4s cubic-bezier(.22,1,.36,1);
}
.rpr-lightbox.is-open .rpr-lightbox__img { transform: scale(1); }
.rpr-lightbox__close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.15);
    color: white;
    font-size: 1.6rem;
    cursor: pointer;
    transition: all 0.3s ease;
}
.rpr-lightbox__close:hover { background: rgba(255,45,111,0.4); transform: scale(1.1); }

/* ---------- Page hero (policy/info pages) ---------- */
.rpr-page-hero {
    position: relative;
    padding: 7rem 0 4rem;
    text-align: center;
    overflow: hidden;
}
.rpr-page-hero__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.rpr-page-hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.5;
}
.rpr-page-hero__orb--1 {
    top: -10%; left: 10%;
    width: 380px; height: 380px;
    background: radial-gradient(circle, var(--rpr-pink), transparent 70%);
}
.rpr-page-hero__orb--2 {
    bottom: -20%; right: 5%;
    width: 480px; height: 480px;
    background: radial-gradient(circle, var(--rpr-purple), transparent 70%);
}
.rpr-page-hero .rpr-section__container { position: relative; z-index: 2; }
.rpr-page-hero__title {
    font-family: var(--rpr-font-display);
    font-size: clamp(2.8rem, 6vw, 5rem);
    line-height: 1;
    margin: 1rem 0 1.5rem;
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    letter-spacing: -0.02em;
}
.rpr-page-hero__sub {
    color: var(--rpr-text-dim);
    font-size: 1.1rem;
    max-width: 640px;
    margin: 0 auto;
}

.rpr-main--page { background: var(--rpr-bg-0); }
.rpr-page-body { padding: 3rem 0 6rem; }
.rpr-section__container--narrow {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* ---------- Prose styling for policy/about pages ---------- */
.rpr-prose {
    color: var(--rpr-text);
    font-size: 1.05rem;
    line-height: 1.75;
}
.rpr-prose .rpr-lead {
    font-size: 1.25rem;
    line-height: 1.6;
    color: var(--rpr-text);
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--rpr-border);
}
.rpr-prose h2 {
    font-family: var(--rpr-font-display);
    font-size: 1.8rem;
    margin: 2.5rem 0 1rem;
    color: var(--rpr-text);
    letter-spacing: -0.01em;
}
.rpr-prose h3 {
    font-size: 1.25rem;
    margin: 2rem 0 0.75rem;
    color: var(--rpr-text);
}
.rpr-prose p { margin: 0 0 1.25rem; color: var(--rpr-text-dim); }
.rpr-prose ul, .rpr-prose ol { margin: 1rem 0 1.5rem; padding-left: 1.5rem; color: var(--rpr-text-dim); }
.rpr-prose li { margin-bottom: 0.5rem; }
.rpr-prose a {
    color: var(--rpr-cyan);
    text-decoration: none;
    border-bottom: 1px solid rgba(0,229,255,0.3);
    transition: all 0.3s ease;
}
.rpr-prose a:hover {
    color: var(--rpr-pink);
    border-bottom-color: var(--rpr-pink);
}
.rpr-prose strong { color: var(--rpr-text); }

/* ---------- Info cards (shipping/contact) ---------- */
.rpr-shipping__grid, .rpr-contact__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
    margin-bottom: 4rem;
}
.rpr-contact__grid {
    grid-template-columns: 1fr 1.4fr;
    gap: 2rem;
    align-items: start;
}
@media (max-width: 900px) {
    .rpr-contact__grid { grid-template-columns: 1fr; }
}
.rpr-contact__channels { display: grid; gap: 1rem; }
.rpr-card-info {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    padding: 1.75rem;
    backdrop-filter: blur(12px);
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), border-color 0.3s ease;
}
.rpr-card-info:hover {
    border-color: rgba(255,45,111,0.3);
}
.rpr-card-info__icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rpr-grad-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    margin-bottom: 1rem;
}
.rpr-card-info h3 {
    font-size: 1.15rem;
    margin: 0 0 0.5rem;
    color: var(--rpr-text);
}
.rpr-card-info p {
    margin: 0 0 0.5rem;
    color: var(--rpr-text-dim);
    line-height: 1.55;
}
.rpr-card-info__small {
    font-size: 0.85rem;
    color: var(--rpr-text-dimmer, rgba(255,255,255,0.45));
}
.rpr-card-info a {
    color: var(--rpr-cyan);
    text-decoration: none;
}
.rpr-shipping__details { margin-top: 3rem; }

/* ---------- Glass card (forms) ---------- */
.rpr-glass-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 18px;
    padding: 2rem;
    backdrop-filter: blur(14px);
    box-shadow: 0 20px 50px rgba(0,0,0,0.4);
}
.rpr-glass-card h2 {
    font-family: var(--rpr-font-display);
    font-size: 1.6rem;
    margin: 0 0 0.5rem;
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.rpr-glass-card > p {
    color: var(--rpr-text-dim);
    margin: 0 0 1.5rem;
}

/* ---------- Form ---------- */
.rpr-form__row { margin-bottom: 1.25rem; }
.rpr-form label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--rpr-text);
    letter-spacing: 0.02em;
}
.rpr-form input, .rpr-form textarea, .rpr-form select {
    width: 100%;
    padding: 0.85rem 1rem;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 10px;
    color: var(--rpr-text);
    font-family: inherit;
    font-size: 1rem;
    transition: border-color 0.3s ease, background 0.3s ease;
}
.rpr-form input:focus, .rpr-form textarea:focus, .rpr-form select:focus {
    outline: none;
    border-color: var(--rpr-pink);
    background: rgba(0,0,0,0.45);
    box-shadow: 0 0 0 3px rgba(255,45,111,0.15);
}
.rpr-form textarea { resize: vertical; min-height: 140px; }

/* ---------- Banner (contact form result) ---------- */
.rpr-banner {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(120%);
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,0.12);
    color: white;
    padding: 1rem 2rem;
    border-radius: 999px;
    z-index: 9999;
    transition: transform 0.5s cubic-bezier(.22,1,.36,1);
    font-size: 0.95rem;
    max-width: 90vw;
}
.rpr-banner.is-success { border-color: rgba(0,229,255,0.4); }
.rpr-banner.is-error { border-color: rgba(255,45,111,0.5); }
.rpr-banner.is-visible { transform: translateX(-50%) translateY(0); }

/* ---------- Marquee scroll-velocity skew ---------- */
.rpr-marquee__track {
    transform: skewY(calc(var(--rpr-scroll-vel, 0px) * 0.05));
    transition: transform 0.4s ease-out;
}

/* ---------- Cart count fragment ---------- */
.rpr-cart-count {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: var(--rpr-grad-accent);
    color: white;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 99px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* ---------- Text gradient utility ---------- */
.rpr-text-grad {
    background: var(--rpr-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* =============================================================
   v1.1 — WooCommerce single-product, archive, cart, checkout
   ============================================================= */

/* Hide the default Woo gallery — we render our own */
.rpr-main--woo .woocommerce-product-gallery { display: none; }
.rpr-main--woo .product .summary { display: none; }
.rpr-main--woo .single-product .product .images { display: none; }

/* Style the inline add-to-cart on hero */
.rpr-product-cta form.cart {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 0;
}
.rpr-product-cta form.cart .quantity {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 0.4rem 0.6rem;
    backdrop-filter: blur(8px);
}
.rpr-product-cta form.cart .qty {
    width: 60px;
    background: transparent;
    border: 0;
    color: var(--rpr-text);
    font-size: 1rem;
    text-align: center;
    -moz-appearance: textfield;
}
.rpr-product-cta form.cart .qty::-webkit-outer-spin-button,
.rpr-product-cta form.cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rpr-product-cta form.cart button.single_add_to_cart_button,
.rpr-product-cta form.cart button[type="submit"] {
    background: var(--rpr-grad-accent);
    color: white;
    border: 0;
    padding: 1rem 2rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    box-shadow: 0 14px 40px rgba(255,45,111,0.35);
    transition: transform 0.3s cubic-bezier(.22,1,.36,1), box-shadow 0.3s ease;
    will-change: transform;
}
.rpr-product-cta form.cart button.single_add_to_cart_button:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 50px rgba(255,45,111,0.5);
}

/* Variations table (variable products) */
.rpr-product-cta table.variations {
    width: 100%;
    margin-bottom: 1rem;
    border: 0;
}
.rpr-product-cta table.variations td,
.rpr-product-cta table.variations th {
    padding: 0.5rem;
    border: 0;
    color: var(--rpr-text);
}
.rpr-product-cta table.variations select {
    padding: 0.7rem 1rem;
    background: rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--rpr-text);
    border-radius: 10px;
    font-family: inherit;
    width: 100%;
}

.rpr-product__sku {
    font-family: var(--rpr-font-mono, monospace);
    font-size: 0.8rem;
    color: var(--rpr-text-dim);
    letter-spacing: 0.06em;
    margin-top: 1.5rem;
    opacity: 0.6;
}

/* ---------- Product tabs (Woo default skin) ---------- */
.rpr-product-tabs { padding: 4rem 0 5rem; }
.woocommerce-tabs.wc-tabs-wrapper { margin: 0; }
.woocommerce-tabs ul.tabs.wc-tabs {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0 0 1rem;
    display: flex;
    gap: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.woocommerce-tabs ul.tabs.wc-tabs::before,
.woocommerce-tabs ul.tabs.wc-tabs::after { display: none; }
.woocommerce-tabs ul.tabs.wc-tabs li {
    background: transparent;
    border: 0;
    margin: 0;
    padding: 0;
}
.woocommerce-tabs ul.tabs.wc-tabs li a {
    color: var(--rpr-text-dim);
    text-decoration: none;
    padding: 0.85rem 1.5rem;
    display: inline-block;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 500;
    border-bottom: 2px solid transparent;
    transition: color 0.3s ease, border-color 0.3s ease;
}
.woocommerce-tabs ul.tabs.wc-tabs li.active a,
.woocommerce-tabs ul.tabs.wc-tabs li a:hover {
    color: var(--rpr-text);
    border-bottom-color: var(--rpr-pink);
}
.woocommerce-tabs .panel {
    color: var(--rpr-text-dim);
    line-height: 1.7;
    padding: 1rem 0;
}
.woocommerce-tabs .panel h2 {
    font-family: var(--rpr-font-display);
    font-size: 1.6rem;
    color: var(--rpr-text);
    margin: 0 0 1.25rem;
    letter-spacing: -0.01em;
}
.woocommerce-tabs .panel p { margin: 0 0 1rem; }
.woocommerce-tabs .shop_attributes {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}
.woocommerce-tabs .shop_attributes th,
.woocommerce-tabs .shop_attributes td {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    text-align: left;
    color: var(--rpr-text-dim);
}
.woocommerce-tabs .shop_attributes th {
    color: var(--rpr-text);
    font-weight: 500;
    width: 35%;
}

/* Reviews tab */
#reviews .commentlist {
    list-style: none;
    margin: 0;
    padding: 0;
}
#reviews .commentlist li {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 1rem;
}
#reviews .star-rating { color: #ffb547; }
#reviews #respond input[type="text"],
#reviews #respond input[type="email"],
#reviews #respond textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--rpr-text);
    border-radius: 10px;
    margin-bottom: 1rem;
    font-family: inherit;
}
#reviews #respond .submit {
    background: var(--rpr-grad-accent);
    color: white;
    border: 0;
    padding: 0.85rem 2rem;
    border-radius: 999px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 12px 30px rgba(255,45,111,0.3);
}

/* ---------- Sticky buy bar (mobile checkout-friendly) ---------- */
.rpr-sticky-buy {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(5,6,10,0.85);
    backdrop-filter: blur(20px);
    border-top: 1px solid rgba(255,255,255,0.1);
    padding: 0.85rem 1rem;
    z-index: 9000;
    transform: translateY(120%);
    transition: transform 0.4s cubic-bezier(.22,1,.36,1);
    box-shadow: 0 -10px 40px rgba(0,0,0,0.4);
}
.rpr-sticky-buy.is-visible { transform: translateY(0); }
.rpr-sticky-buy__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.rpr-sticky-buy__info {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}
.rpr-sticky-buy__info strong {
    color: var(--rpr-text);
    font-size: 0.95rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rpr-sticky-buy__info span {
    color: var(--rpr-text-dim);
    font-size: 0.85rem;
}
.rpr-sticky-buy .rpr-btn {
    flex-shrink: 0;
}

/* ---------- Related products ---------- */
.rpr-related { padding: 5rem 0 7rem; }
.rpr-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 2.5rem;
}
.rpr-related__card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: var(--rpr-text);
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), border-color 0.3s ease;
    display: block;
    position: relative;
}
.rpr-related__card:hover {
    border-color: rgba(255,45,111,0.3);
    transform: translateY(-4px);
}
.rpr-related__art {
    aspect-ratio: 1;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255,45,111,0.08), rgba(0,229,255,0.05));
}
.rpr-related__art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(.22,1,.36,1);
}
.rpr-related__card:hover .rpr-related__art img { transform: scale(1.06); }
.rpr-related__meta { padding: 1.25rem; }
.rpr-related__meta h3 {
    font-size: 1rem;
    margin: 0 0 0.4rem;
    color: var(--rpr-text);
}
.rpr-related__price {
    color: var(--rpr-cyan);
    font-weight: 600;
}

/* ---------- Shop archive ---------- */
.rpr-shop-body { padding: 4rem 0 8rem; }
.rpr-main--woo ul.products {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}
.rpr-main--woo ul.products::before,
.rpr-main--woo ul.products::after { display: none; }
.rpr-main--woo ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), border-color 0.3s ease;
    text-align: left;
}
.rpr-main--woo ul.products li.product:hover {
    border-color: rgba(255,45,111,0.3);
    transform: translateY(-4px);
}
.rpr-main--woo ul.products li.product a {
    text-decoration: none;
    color: var(--rpr-text);
    display: block;
}
.rpr-main--woo ul.products li.product img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0;
    transition: transform 0.6s cubic-bezier(.22,1,.36,1);
}
.rpr-main--woo ul.products li.product:hover img { transform: scale(1.05); }
.rpr-main--woo ul.products li.product .woocommerce-loop-product__title {
    padding: 1rem 1.25rem 0.5rem;
    font-size: 1.05rem;
    color: var(--rpr-text);
    margin: 0;
    font-weight: 500;
}
.rpr-main--woo ul.products li.product .price {
    padding: 0 1.25rem 1.25rem;
    color: var(--rpr-cyan);
    font-weight: 600;
    display: block;
}
.rpr-main--woo ul.products li.product .price del { color: var(--rpr-text-dim); margin-right: 0.5rem; opacity: 0.6; }
.rpr-main--woo ul.products li.product .button {
    margin: 0 1.25rem 1.25rem;
    background: var(--rpr-grad-accent) !important;
    color: white !important;
    border: 0 !important;
    padding: 0.7rem 1.25rem !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    box-shadow: 0 8px 20px rgba(255,45,111,0.25);
    display: inline-block;
}
.rpr-main--woo ul.products li.product .onsale {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--rpr-grad-accent);
    color: white;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    z-index: 2;
    margin: 0;
    line-height: 1;
}

.rpr-shop-empty {
    text-align: center;
    padding: 6rem 1rem;
    color: var(--rpr-text-dim);
}
.rpr-shop-empty h2 {
    font-family: var(--rpr-font-display);
    font-size: 2.2rem;
    color: var(--rpr-text);
    margin-bottom: 1rem;
}
.rpr-shop-empty a { color: var(--rpr-cyan); }

/* ---------- Cart, Checkout, My Account pages ---------- */
.rpr-main--woo .woocommerce-cart-form,
.rpr-main--woo .woocommerce-checkout,
.rpr-main--woo .woocommerce-account {
    color: var(--rpr-text);
}
.rpr-main--woo table.cart,
.rpr-main--woo table.shop_table {
    width: 100%;
    border-collapse: collapse;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    overflow: hidden;
}
.rpr-main--woo table.cart th,
.rpr-main--woo table.shop_table th {
    background: rgba(255,255,255,0.04);
    color: var(--rpr-text);
    padding: 1rem;
    text-align: left;
    font-weight: 500;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rpr-main--woo table.cart td,
.rpr-main--woo table.shop_table td {
    padding: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    color: var(--rpr-text-dim);
}
.rpr-main--woo table.cart .product-thumbnail img {
    max-width: 80px;
    border-radius: 8px;
}
.rpr-main--woo table.cart a {
    color: var(--rpr-text);
    text-decoration: none;
}
.rpr-main--woo .quantity input {
    width: 70px;
    padding: 0.5rem;
    background: rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--rpr-text);
    border-radius: 8px;
    text-align: center;
}
.rpr-main--woo .button,
.rpr-main--woo .wc-block-button,
.rpr-main--woo .checkout-button,
.rpr-main--woo button[type="submit"] {
    background: var(--rpr-grad-accent) !important;
    color: white !important;
    border: 0 !important;
    padding: 0.85rem 1.75rem !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-shadow: 0 12px 30px rgba(255,45,111,0.3);
    transition: transform 0.3s cubic-bezier(.22,1,.36,1), box-shadow 0.3s ease;
}
.rpr-main--woo .button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 40px rgba(255,45,111,0.5);
}
.rpr-main--woo .cart_totals {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    padding: 1.5rem;
    margin-top: 2rem;
}
.rpr-main--woo .cart_totals h2 {
    font-family: var(--rpr-font-display);
    font-size: 1.4rem;
    color: var(--rpr-text);
    margin-bottom: 1rem;
}

/* Checkout form fields */
.rpr-main--woo .woocommerce-checkout input[type="text"],
.rpr-main--woo .woocommerce-checkout input[type="email"],
.rpr-main--woo .woocommerce-checkout input[type="tel"],
.rpr-main--woo .woocommerce-checkout input[type="password"],
.rpr-main--woo .woocommerce-checkout input[type="number"],
.rpr-main--woo .woocommerce-checkout textarea,
.rpr-main--woo .woocommerce-checkout select,
.rpr-main--woo .woocommerce-account input[type="text"],
.rpr-main--woo .woocommerce-account input[type="email"],
.rpr-main--woo .woocommerce-account input[type="password"],
.rpr-main--woo .select2-container--default .select2-selection--single {
    width: 100% !important;
    padding: 0.85rem 1rem !important;
    background: rgba(0,0,0,0.3) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 10px !important;
    color: var(--rpr-text) !important;
    font-family: inherit !important;
    font-size: 1rem !important;
    height: auto !important;
}
.rpr-main--woo .woocommerce-checkout label,
.rpr-main--woo .woocommerce-account label {
    color: var(--rpr-text);
    font-size: 0.9rem;
    margin-bottom: 0.4rem;
    display: block;
}
.rpr-main--woo .woocommerce-info,
.rpr-main--woo .woocommerce-message,
.rpr-main--woo .woocommerce-error {
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-left: 3px solid var(--rpr-cyan) !important;
    color: var(--rpr-text) !important;
    border-radius: 8px !important;
    padding: 1rem 1.25rem !important;
    margin: 1rem 0 !important;
}
.rpr-main--woo .woocommerce-error { border-left-color: var(--rpr-pink) !important; }
.rpr-main--woo .woocommerce-message { border-left-color: #4ade80 !important; }

/* Notices a tags */
.rpr-main--woo .woocommerce-info a,
.rpr-main--woo .woocommerce-message a {
    color: var(--rpr-cyan);
    text-decoration: none;
    border-bottom: 1px solid rgba(0,229,255,0.3);
}

/* =============================================================
   v1.1 — Mini-cart drawer
   ============================================================= */
.rpr-drawer {
    position: fixed;
    inset: 0;
    z-index: 99000;
    pointer-events: none;
    visibility: hidden;
    transition: visibility 0s linear 0.4s;
}
.rpr-drawer.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }

.rpr-drawer__veil {
    position: absolute;
    inset: 0;
    background: rgba(5,6,10,0.6);
    backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 0.4s ease;
}
.rpr-drawer.is-open .rpr-drawer__veil { opacity: 1; }

.rpr-drawer__panel {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: min(420px, 92vw);
    background: linear-gradient(180deg, #0a0c14 0%, #05060a 100%);
    border-left: 1px solid rgba(255,255,255,0.08);
    box-shadow: -30px 0 80px rgba(0,0,0,0.6);
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(.22,1,.36,1);
    display: flex;
    flex-direction: column;
}
.rpr-drawer.is-open .rpr-drawer__panel { transform: translateX(0); }

.rpr-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.rpr-drawer__head h2 {
    margin: 0;
    font-family: var(--rpr-font-display, 'Bebas Neue', sans-serif);
    font-size: 1.6rem;
    color: var(--rpr-text);
    letter-spacing: 0.04em;
}
.rpr-drawer__close {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--rpr-text);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}
.rpr-drawer__close:hover {
    background: rgba(255,45,111,0.2);
    border-color: rgba(255,45,111,0.4);
    transform: rotate(90deg);
}

.rpr-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.5rem;
}

/* Style the WooCommerce mini-cart inside the drawer */
.rpr-drawer__body .widget_shopping_cart_content { color: var(--rpr-text); }
.rpr-drawer__body .woocommerce-mini-cart {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rpr-drawer__body .woocommerce-mini-cart__item,
.rpr-drawer__body li.mini_cart_item {
    display: flex;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    position: relative;
}
.rpr-drawer__body .woocommerce-mini-cart__item img,
.rpr-drawer__body li.mini_cart_item img {
    width: 70px !important;
    height: 70px !important;
    object-fit: cover;
    border-radius: 8px;
    margin: 0 !important;
    float: none !important;
}
.rpr-drawer__body .woocommerce-mini-cart__item a,
.rpr-drawer__body li.mini_cart_item a {
    color: var(--rpr-text);
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.4;
}
.rpr-drawer__body .quantity {
    color: var(--rpr-text-dim);
    font-size: 0.85rem;
}
.rpr-drawer__body .amount,
.rpr-drawer__body .woocommerce-Price-amount {
    color: var(--rpr-cyan);
    font-weight: 600;
}
.rpr-drawer__body a.remove,
.rpr-drawer__body .woocommerce-mini-cart__item .remove_from_cart_button {
    position: absolute !important;
    top: 1rem;
    right: 0;
    width: 22px !important;
    height: 22px !important;
    line-height: 20px !important;
    border-radius: 50%;
    background: rgba(255,45,111,0.15) !important;
    color: var(--rpr-pink) !important;
    text-align: center;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: all 0.3s ease;
}
.rpr-drawer__body a.remove:hover {
    background: var(--rpr-pink) !important;
    color: white !important;
}
.rpr-drawer__body .woocommerce-mini-cart__total,
.rpr-drawer__body .total {
    padding: 1.25rem 0;
    border-top: 1px solid rgba(255,255,255,0.08);
    border-bottom: none;
    font-size: 1.05rem;
    color: var(--rpr-text);
}
.rpr-drawer__body .woocommerce-mini-cart__total strong { color: var(--rpr-text); }
.rpr-drawer__body .woocommerce-mini-cart__buttons,
.rpr-drawer__body .buttons {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-bottom: 1rem;
    margin: 0;
}
.rpr-drawer__body .woocommerce-mini-cart__buttons .button,
.rpr-drawer__body .buttons .button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 0.85rem 1rem !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
.rpr-drawer__body .woocommerce-mini-cart__buttons .checkout,
.rpr-drawer__body .buttons .checkout {
    background: var(--rpr-grad-accent) !important;
    color: white !important;
    border: 0 !important;
    box-shadow: 0 12px 30px rgba(255,45,111,0.3);
}
.rpr-drawer__body .woocommerce-mini-cart__buttons .wc-forward:not(.checkout),
.rpr-drawer__body .buttons .wc-forward:not(.checkout) {
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    color: var(--rpr-text) !important;
}
.rpr-drawer__body .woocommerce-mini-cart__empty-message {
    color: var(--rpr-text-dim);
    text-align: center;
    padding: 3rem 1rem;
    font-size: 0.95rem;
}

/* Pulse the cart badge when count changes (added by JS) */
.rpr-cart-count.is-bumped {
    animation: rpr-cart-bump 0.5s cubic-bezier(.36,1.6,.5,1);
}
@keyframes rpr-cart-bump {
    0% { transform: scale(1); }
    50% { transform: scale(1.4); }
    100% { transform: scale(1); }
}

body.rpr-drawer-open { overflow: hidden; }

/* =============================================================
   v1.2 — Hover-play game videos
   ============================================================= */

/* Game card hover-video — crossfade pixel art → video */
.rpr-game__art {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.rpr-game__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.04);
    transition: opacity 0.35s ease, transform 0.6s cubic-bezier(.22,1,.36,1);
    pointer-events: none;
    z-index: 2;
    filter: saturate(1.1) contrast(1.05);
    background: #000;
}

.rpr-game.is-playing .rpr-game__video {
    opacity: 1;
    transform: scale(1);
}

.rpr-game.is-playing .rpr-pixel-art {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.35s ease, transform 0.6s cubic-bezier(.22,1,.36,1);
}

/* Keep scanlines over the video for the CRT aesthetic */
.rpr-game__scanlines {
    z-index: 3;
}

.rpr-game__overlay {
    z-index: 4;
}

/* When playing, hide the "▶ PLAY" overlay (because it IS playing) */
.rpr-game.is-playing .rpr-game__overlay {
    opacity: 0;
}

/* Card lift on hover (existing hover state, just reinforced) */
.rpr-game {
    cursor: pointer;
    transition: transform 0.4s cubic-bezier(.22,1,.36,1), box-shadow 0.4s ease;
}

.rpr-game:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 50px rgba(255,45,111,0.18), 0 0 0 1px rgba(255,45,111,0.25);
}

.rpr-game.is-playing {
    box-shadow: 0 25px 60px rgba(255,45,111,0.3), 0 0 0 1px rgba(255,45,111,0.4);
}

/* Slight glow border pulse while playing */
.rpr-game.is-playing::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid var(--rpr-pink);
    opacity: 0.6;
    animation: rpr-game-pulse 2.4s ease-in-out infinite;
    pointer-events: none;
    z-index: 5;
}
@keyframes rpr-game-pulse {
    0%, 100% { opacity: 0.4; box-shadow: 0 0 0 0 rgba(255,45,111,0.4); }
    50%      { opacity: 0.9; box-shadow: 0 0 0 4px rgba(255,45,111,0); }
}

/* Hero console game-video — fills the screen */
.rpr-console__game-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    filter: saturate(1.15) contrast(1.05);
}

.rpr-console__game-frame {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
}
.rpr-console__game-frame.is-active {
    opacity: 1;
}
.rpr-console__title {
    position: absolute;
    bottom: 0.5rem;
    left: 0.5rem;
    z-index: 3;
    font-family: var(--rpr-font-mono, monospace);
    font-size: 0.65rem;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.1em;
    text-shadow: 0 0 8px rgba(0,0,0,0.8), 0 0 2px rgba(0,0,0,1);
}

/* =============================================================
   v1.3 — Real product photo floating accent + bundled media
   ============================================================= */

.rpr-hero__photo {
    position: absolute;
    bottom: -8%;
    right: -6%;
    width: 42%;
    max-width: 240px;
    z-index: 5;
    filter: drop-shadow(0 30px 50px rgba(0,0,0,0.6)) drop-shadow(0 0 40px rgba(34,85,211,0.25));
    animation: rpr-photo-float 6s ease-in-out infinite;
    pointer-events: none;
}
.rpr-hero__photo img {
    width: 100%;
    height: auto;
    display: block;
}
@keyframes rpr-photo-float {
    0%, 100% { transform: translateY(0) rotate(-4deg); }
    50%      { transform: translateY(-14px) rotate(-2deg); }
}
@media (max-width: 900px) {
    .rpr-hero__photo { display: none; }
}

/* Game card videos — make sure object-fit covers and respects the screen aspect */
.rpr-game__video {
    background: #0a0a12;
}

/* When a game card has a poster, show it even before hover (subtle) */
.rpr-game__video[poster] {
    opacity: 0;
}
.rpr-game:hover .rpr-game__video[poster],
.rpr-game.is-playing .rpr-game__video {
    opacity: 1;
}

/* Hero console video frames — real footage fills the screen nicely */
.rpr-console__game-video {
    image-rendering: auto;
}

/* "Real footage" badge for sections using actual product media */
.rpr-real-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rpr-cyan, #00e5ff);
    background: rgba(0,229,255,0.08);
    border: 1px solid rgba(0,229,255,0.25);
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
}
.rpr-real-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rpr-cyan, #00e5ff);
    box-shadow: 0 0 8px var(--rpr-cyan, #00e5ff);
    animation: rpr-rec-blink 1.6s ease-in-out infinite;
}
@keyframes rpr-rec-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* =============================================================
   v1.4 — Real footage everywhere. Death to fake CSS consoles.
   ============================================================= */

/* ---- Shared: cinematic video "screen" frame ---- */
.rpr-hero__reel,
.rpr-product__reel,
.rpr-buy__reel {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    background: #05060a;
    box-shadow:
        0 40px 90px -20px rgba(0,0,0,0.8),
        0 0 0 1px rgba(255,255,255,0.06),
        inset 0 0 0 1px rgba(255,255,255,0.04);
    will-change: transform;
}

.rpr-hero__reel { aspect-ratio: 4 / 5; max-width: 420px; margin-inline: auto; }
.rpr-product__reel { aspect-ratio: 1 / 1; width: 100%; }
.rpr-buy__reel { aspect-ratio: 4 / 5; max-width: 380px; margin-inline: auto; }

.rpr-hero__reel-video,
.rpr-buy__reel-video,
.rpr-product__feature-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Glow bloom behind reels */
.rpr-hero__reel-glow,
.rpr-product__reel-glow,
.rpr-buy__reel-glow {
    position: absolute;
    inset: -30%;
    z-index: -1;
    background: radial-gradient(circle at 50% 45%,
        rgba(124,77,255,0.45) 0%,
        rgba(0,200,255,0.22) 35%,
        transparent 70%);
    filter: blur(40px);
    animation: rpr-reel-pulse 5s ease-in-out infinite;
    pointer-events: none;
}
@keyframes rpr-reel-pulse {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.08); }
}

/* Scanline + vignette overlays for CRT feel */
.rpr-hero__reel-scanlines,
.rpr-product__reel-scanlines,
.rpr-buy__reel-scanlines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(0,0,0,0) 0px,
            rgba(0,0,0,0) 2px,
            rgba(0,0,0,0.12) 3px,
            rgba(0,0,0,0) 4px
        ),
        radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,0.45) 100%);
}

/* Inner bezel frame line */
.rpr-hero__reel-frame,
.rpr-product__reel-frame {
    position: absolute;
    inset: 10px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
    pointer-events: none;
    z-index: 2;
}

/* ---- Product sticky section: feature videos crossfade ---- */
.rpr-product__feature-screen {
    position: relative;
    width: 100%;
    height: 100%;
}
.rpr-product__feature-content {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.03);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.rpr-product__feature-content.is-active {
    opacity: 1;
    transform: scale(1);
}

/* ---- "In Action" reels grid (replaces fake game cards) ---- */
.rpr-reels__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 220px;
    gap: 1.25rem;
    margin-top: 3.5rem;
}
.rpr-reel {
    position: relative;
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    background: #0a0b10;
    box-shadow: 0 20px 50px -15px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.05);
    display: flex;
    flex-direction: column;
    cursor: default;
    will-change: transform;
    transition: transform 0.4s cubic-bezier(.2,.7,.3,1), box-shadow 0.4s ease;
}
.rpr-reel:hover {
    box-shadow: 0 30px 70px -15px rgba(0,0,0,0.85), 0 0 0 1px rgba(124,77,255,0.35);
}
.rpr-reel--lg { grid-column: span 4; grid-row: span 2; }
.rpr-reel--md { grid-column: span 2; grid-row: span 2; }
.rpr-reel--sm { grid-column: span 2; grid-row: span 1; }

.rpr-reel__screen {
    position: relative;
    flex: 1;
    overflow: hidden;
    background: #05060a;
}
.rpr-reel__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(.2,.7,.3,1);
}
.rpr-reel:hover .rpr-reel__video { transform: scale(1.05); }

.rpr-reel__scanlines {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        repeating-linear-gradient(to bottom,
            rgba(0,0,0,0) 0, rgba(0,0,0,0) 2px,
            rgba(0,0,0,0.10) 3px, rgba(0,0,0,0) 4px);
}
.rpr-reel__glow {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse at 50% 30%, rgba(124,77,255,0.18), transparent 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
}
.rpr-reel:hover .rpr-reel__glow { opacity: 1; }

.rpr-reel__caption {
    position: relative;
    z-index: 3;
    padding: 1rem 1.15rem 1.15rem;
    background: linear-gradient(to top, #0a0b10 70%, rgba(10,11,16,0.85));
}
.rpr-reel__tag {
    display: inline-block;
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    font-weight: 700;
    color: #7c4dff;
    margin-bottom: 0.4rem;
}
.rpr-reel--sm .rpr-reel__tag { margin-bottom: 0.15rem; }
.rpr-reel__title {
    font-size: 1.05rem;
    line-height: 1.25;
    margin: 0 0 0.35rem;
    color: #fff;
    font-weight: 600;
}
.rpr-reel--sm .rpr-reel__title { font-size: 0.92rem; margin-bottom: 0.15rem; }
.rpr-reel__desc {
    font-size: 0.82rem;
    line-height: 1.45;
    color: rgba(255,255,255,0.55);
    margin: 0;
}
.rpr-reel--sm .rpr-reel__desc { display: none; }

@media (max-width: 860px) {
    .rpr-reels__grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 200px;
    }
    .rpr-reel--lg { grid-column: span 2; grid-row: span 2; }
    .rpr-reel--md { grid-column: span 1; grid-row: span 2; }
    .rpr-reel--sm { grid-column: span 1; grid-row: span 1; }
    .rpr-reel--sm .rpr-reel__desc { display: block; }
}
@media (max-width: 520px) {
    .rpr-reels__grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
    .rpr-reel--lg, .rpr-reel--md, .rpr-reel--sm {
        grid-column: span 1; grid-row: span 1;
    }
}

.rpr-library__more {
    text-align: center;
    margin-top: 2.5rem;
    color: rgba(255,255,255,0.5);
    font-size: 0.95rem;
}
.rpr-library__more strong { color: rgba(255,255,255,0.9); }

/* ---- Streamlined buy section ---- */
.rpr-buy__copy h2 {
    font-size: clamp(2.2rem, 5vw, 3.4rem);
    margin: 0.5rem 0 1.25rem;
}
.rpr-buy__cta {
    margin: 0.5rem 0 1.5rem;
    font-size: 1.15rem !important;
    padding: 1.15rem 2.75rem !important;
}
.rpr-buy__assurances {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1.4rem;
}
.rpr-buy__assurance {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: rgba(255,255,255,0.6);
}
.rpr-buy__assurance svg { color: #00c8ff; flex-shrink: 0; }

@media (max-width: 860px) {
    .rpr-hero__reel, .rpr-buy__reel { max-width: 320px; }
}

/* =============================================================
   v1.5 — Hero: busy chrome around real video. Less empty.
   ============================================================= */

/* Hero visual container is the positioning canvas */
.rpr-hero__visual {
    position: relative;
    min-height: 600px;
    color: rgba(0,200,255,0.45);  /* used as currentColor for SVG lines */
    aspect-ratio: auto;
}

/* Ambient backdrop — dots + concentric rings */
.rpr-hero__ambient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}
.rpr-hero__ring {
    position: absolute;
    top: 50%; left: 50%;
    width: 580px; height: 580px;
    margin-left: -290px; margin-top: -290px;
    color: rgba(124,77,255,0.4);
    animation: rpr-ring-rot 60s linear infinite;
}
.rpr-hero__ring--2 {
    width: 380px; height: 380px;
    margin-left: -190px; margin-top: -190px;
    color: rgba(0,200,255,0.4);
    animation: rpr-ring-rot 40s linear infinite reverse;
}
@keyframes rpr-ring-rot {
    to { transform: rotate(360deg); }
}

.rpr-hero__dot {
    position: absolute;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: rgba(0,200,255,0.6);
    box-shadow: 0 0 10px currentColor;
    color: rgba(0,200,255,0.7);
    animation: rpr-dot-pulse 2.4s ease-in-out infinite;
}
.rpr-hero__dot--a { top: 8%;  left: 12%; }
.rpr-hero__dot--b { top: 22%; right: 8%; background: #7c4dff; color: #7c4dff; animation-delay: 0.4s; }
.rpr-hero__dot--c { top: 60%; left: 4%;  background: #ff4b8a; color: #ff4b8a; animation-delay: 0.8s; }
.rpr-hero__dot--d { bottom: 14%; right: 14%; animation-delay: 1.2s; }
.rpr-hero__dot--e { bottom: 28%; left: 22%; background: #7c4dff; color: #7c4dff; animation-delay: 1.6s; }
.rpr-hero__dot--f { top: 40%; right: 22%; animation-delay: 2.0s; }
@keyframes rpr-dot-pulse {
    0%, 100% { opacity: 0.3; transform: scale(0.85); }
    50%      { opacity: 1;   transform: scale(1.2); }
}

/* Ghosted companion clip behind */
.rpr-hero__companion {
    position: absolute;
    top: 12%; right: 4%;
    width: 38%; max-width: 220px;
    aspect-ratio: 4/5;
    border-radius: 14px;
    overflow: hidden;
    opacity: 0.4;
    filter: blur(0.5px) saturate(0.8);
    transform: rotate(6deg);
    z-index: 1;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}
.rpr-hero__companion video {
    width: 100%; height: 100%; object-fit: cover;
}
.rpr-hero__companion::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, rgba(124,77,255,0.3), rgba(0,200,255,0.2)),
        repeating-linear-gradient(to bottom,
            rgba(0,0,0,0) 0, rgba(0,0,0,0) 2px,
            rgba(0,0,0,0.18) 3px, rgba(0,0,0,0) 4px);
    mix-blend-mode: overlay;
}
@media (max-width: 1100px) {
    .rpr-hero__companion { display: none; }
}

/* The main "console" — chunky chrome wrapper */
.rpr-hero__console {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
    will-change: transform;
}
.rpr-hero__console-shadow {
    position: absolute;
    inset: 8% 4% -8%;
    background: radial-gradient(ellipse at center, rgba(124,77,255,0.5), transparent 65%);
    filter: blur(40px);
    z-index: -1;
    animation: rpr-shadow-breathe 4s ease-in-out infinite;
}
@keyframes rpr-shadow-breathe {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.05); }
}

.rpr-hero__console-body {
    position: relative;
    background: linear-gradient(180deg, #1a1d2e 0%, #0e1020 100%);
    border-radius: 28px;
    padding: 14px 14px 18px;
    box-shadow:
        0 30px 80px -10px rgba(0,0,0,0.8),
        0 0 0 1px rgba(255,255,255,0.06),
        inset 0 1px 0 rgba(255,255,255,0.08),
        inset 0 -2px 0 rgba(0,0,0,0.4);
}

/* Top bar with LED + brand + signal bars */
.rpr-hero__console-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    margin-bottom: 12px;
}
.rpr-hero__led {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #00ff88;
    box-shadow: 0 0 8px #00ff88, 0 0 14px #00ff88;
    animation: rpr-led-blink 2s ease-in-out infinite;
}
@keyframes rpr-led-blink {
    0%, 90%, 100% { opacity: 1; }
    95% { opacity: 0.3; }
}
.rpr-hero__brand {
    font-family: 'Bebas Neue', system-ui, sans-serif;
    font-size: 1.4rem;
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.85);
    line-height: 1;
}
.rpr-hero__brand span {
    background: linear-gradient(135deg, #7c4dff, #00c8ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.rpr-hero__signal {
    display: inline-flex;
    align-items: flex-end;
    gap: 2px;
    height: 14px;
}
.rpr-hero__signal span {
    width: 3px;
    background: rgba(0,200,255,0.7);
    border-radius: 1px;
}
.rpr-hero__signal span:nth-child(1) { height: 4px; }
.rpr-hero__signal span:nth-child(2) { height: 8px; }
.rpr-hero__signal span:nth-child(3) { height: 12px; }

/* The screen — holds the real video */
.rpr-hero__console-screen {
    position: relative;
    aspect-ratio: 4/3;
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    box-shadow:
        inset 0 0 0 2px rgba(0,0,0,0.8),
        inset 0 0 0 3px rgba(255,255,255,0.05),
        inset 0 0 60px rgba(0,0,0,0.7);
}
.rpr-hero__reel-glow {
    position: absolute;
    inset: -20%;
    background: radial-gradient(circle, rgba(124,77,255,0.4), transparent 60%);
    filter: blur(20px);
    z-index: 0;
    animation: rpr-screen-glow 3s ease-in-out infinite;
}
@keyframes rpr-screen-glow {
    0%, 100% { opacity: 0.5; }
    50%      { opacity: 1; }
}
.rpr-hero__reel-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}
.rpr-hero__reel-scanlines {
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background:
        repeating-linear-gradient(to bottom,
            rgba(0,0,0,0) 0, rgba(0,0,0,0) 2px,
            rgba(0,0,0,0.14) 3px, rgba(0,0,0,0) 4px),
        radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,0.5) 100%);
}
.rpr-hero__reel-glare {
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, transparent 30%, transparent 70%, rgba(255,255,255,0.04) 100%);
}
.rpr-hero__screen-tag {
    position: absolute;
    top: 8px; left: 10px;
    z-index: 3;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    color: #ff4b8a;
    text-shadow: 0 0 8px rgba(255,75,138,0.6);
    animation: rpr-rec-blink 1.5s ease-in-out infinite;
}
@keyframes rpr-rec-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Console controls — decorative D-pad + ABXY */
.rpr-hero__console-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 14px 8px;
}
.rpr-hero__dpad {
    position: relative;
    width: 56px; height: 56px;
}
.rpr-hero__dpad > span {
    position: absolute;
    background: linear-gradient(180deg, #2a2e44, #15182a);
    border-radius: 3px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.1),
        0 1px 2px rgba(0,0,0,0.6);
}
.rpr-hero__dpad-up    { top: 0; left: 18px; width: 20px; height: 20px; }
.rpr-hero__dpad-down  { bottom: 0; left: 18px; width: 20px; height: 20px; }
.rpr-hero__dpad-left  { top: 18px; left: 0; width: 20px; height: 20px; }
.rpr-hero__dpad-right { top: 18px; right: 0; width: 20px; height: 20px; }
.rpr-hero__dpad-center {
    top: 18px; left: 18px; width: 20px; height: 20px;
    background: linear-gradient(135deg, #1a1d2e, #0e1020) !important;
    border-radius: 2px;
}
.rpr-hero__abxy {
    position: relative;
    width: 64px; height: 64px;
}
.rpr-hero__btn {
    position: absolute;
    width: 20px; height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    font-weight: 700;
    color: rgba(255,255,255,0.95);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.25),
        inset 0 -2px 0 rgba(0,0,0,0.3),
        0 1px 2px rgba(0,0,0,0.6);
}
.rpr-hero__btn--x { top: 0; left: 22px; background: linear-gradient(180deg, #4a8fff, #2563eb); }
.rpr-hero__btn--y { top: 22px; left: 0; background: linear-gradient(180deg, #ffd54a, #e6a200); color: #1a1d2e; }
.rpr-hero__btn--a { top: 22px; right: 0; background: linear-gradient(180deg, #ff4b8a, #d61f5e); }
.rpr-hero__btn--b { bottom: 0; left: 22px; background: linear-gradient(180deg, #4ade80, #16a34a); }

.rpr-hero__console-base {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px 0;
    border-top: 1px solid rgba(255,255,255,0.04);
    margin-top: 8px;
}
.rpr-hero__base-dots {
    font-family: monospace;
    font-size: 0.55rem;
    color: rgba(255,255,255,0.15);
    letter-spacing: 2px;
}
.rpr-hero__base-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 0.6rem;
    color: rgba(0,200,255,0.5);
    letter-spacing: 0.1em;
}

/* SVG annotation lines from console toward float chips */
.rpr-hero__lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
    color: rgba(0,200,255,0.5);
}

/* 4th float chip */
.rpr-float--4 {
    position: absolute;
    bottom: 8%;
    right: 4%;
    z-index: 4;
}

/* Re-position the float chips so they sit at the corners (annotated layout) */
.rpr-float--1 { position: absolute; top: 18%;  left: 2%;  z-index: 4; }
.rpr-float--2 { position: absolute; top: 22%;  right: 2%; z-index: 4; }
.rpr-float--3 { position: absolute; bottom: 18%; left: 2%; z-index: 4; }

/* Hide old hero__photo since console chrome fills the space now */
.rpr-hero__photo {
    position: absolute;
    bottom: -4%;
    left: -2%;
    width: 30%;
    max-width: 160px;
    z-index: 1;
    opacity: 0.85;
    filter: drop-shadow(0 20px 30px rgba(0,0,0,0.8));
}
@media (max-width: 900px) {
    .rpr-hero__visual { min-height: 480px; }
    .rpr-hero__console { max-width: 280px; }
    .rpr-hero__lines, .rpr-hero__photo, .rpr-float--4 { display: none; }
    .rpr-float--1, .rpr-float--2, .rpr-float--3 {
        position: static;
        display: inline-flex;
        margin: 0.25rem;
    }
}

/* =============================================================
   v1.5 — Reels grid: tighter, denser, with overlay captions
   ============================================================= */

.rpr-reels__grid {
    grid-template-columns: repeat(3, 1fr) !important;
    grid-auto-rows: 240px !important;
    gap: 0.85rem !important;
    margin-top: 3rem;
}
.rpr-reel--lg { grid-column: span 2 !important; grid-row: span 2 !important; }
.rpr-reel--md { grid-column: span 1 !important; grid-row: span 2 !important; }
.rpr-reel--sm { grid-column: span 1 !important; grid-row: span 1 !important; }

/* Caption overlays the video at the bottom — denser */
.rpr-reel {
    position: relative;
}
.rpr-reel__screen {
    position: absolute !important;
    inset: 0;
}
.rpr-reel__caption {
    position: absolute !important;
    left: 0; right: 0; bottom: 0;
    z-index: 4;
    padding: 1rem 1rem 0.85rem !important;
    background: linear-gradient(to top, rgba(5,6,10,0.95) 30%, rgba(5,6,10,0.5) 70%, transparent 100%) !important;
}
.rpr-reel--sm .rpr-reel__caption {
    padding: 0.7rem 0.85rem !important;
}
.rpr-reel--sm .rpr-reel__title {
    font-size: 0.85rem !important;
}
.rpr-reel__tag {
    font-size: 0.58rem !important;
    color: #00c8ff !important;
    letter-spacing: 0.2em !important;
}
.rpr-reel__desc {
    font-size: 0.78rem !important;
    color: rgba(255,255,255,0.7) !important;
    line-height: 1.4 !important;
}
.rpr-reel--sm .rpr-reel__desc { display: none; }

/* Animated stat overlay on the "lg" tile */
.rpr-reel--lg::before {
    content: '15,000+';
    position: absolute;
    top: 1rem;
    right: 1.25rem;
    z-index: 5;
    font-family: 'Bebas Neue', system-ui, sans-serif;
    font-size: 2.4rem;
    letter-spacing: 0.04em;
    background: linear-gradient(135deg, #7c4dff, #00c8ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    pointer-events: none;
    text-shadow: 0 4px 20px rgba(124,77,255,0.5);
}

/* Pulse dot on every tile to indicate "live" */
.rpr-reel::after {
    content: '';
    position: absolute;
    top: 1rem;
    left: 1.25rem;
    z-index: 5;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ff4b8a;
    box-shadow: 0 0 10px #ff4b8a;
    animation: rpr-rec-blink 1.5s ease-in-out infinite;
}

@media (max-width: 860px) {
    .rpr-reels__grid {
        grid-template-columns: repeat(2, 1fr) !important;
        grid-auto-rows: 220px !important;
    }
    .rpr-reel--lg { grid-column: span 2 !important; grid-row: span 2 !important; }
    .rpr-reel--md { grid-column: span 1 !important; grid-row: span 2 !important; }
    .rpr-reel--sm { grid-column: span 1 !important; grid-row: span 1 !important; }
}
@media (max-width: 520px) {
    .rpr-reels__grid {
        grid-template-columns: 1fr !important;
        grid-auto-rows: 240px !important;
    }
    .rpr-reel--lg, .rpr-reel--md, .rpr-reel--sm {
        grid-column: span 1 !important;
        grid-row: span 1 !important;
    }
}

/* =================================================================
   v2.0 — VIBRANT EDITION. Multi-color, light/dark alternating.
   This layer intentionally overrides the older dark v1.x styles.
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@500;600;700&display=swap');

:root {
  --rpr-ink: #14101f;
  --rpr-ink2: #221a35;
  --rpr-paper: #fdfcff;
  --rpr-paper2: #f4f0fb;
  --rpr-dimd: #6b6580;
  --rpr-pink: #ff3d8b;
  --rpr-purple: #9b4dff;
  --rpr-blue: #2d7dff;
  --rpr-cyan: #18e0e0;
  --rpr-yellow: #ffd23d;
  --rpr-green: #2bdc78;
  --rpr-orange: #ff7a3d;
  --rpr-grad-rainbow: linear-gradient(100deg,#ff3d8b 0%,#9b4dff 28%,#2d7dff 55%,#18e0e0 80%,#2bdc78 100%);
  --rpr-grad-pinkpurple: linear-gradient(120deg,#ff3d8b,#9b4dff);
  --rpr-grad-bluecyan: linear-gradient(120deg,#2d7dff,#18e0e0);
  --rpr-grad-sunset: linear-gradient(120deg,#ff7a3d,#ff3d8b,#9b4dff);
}

/* Base resets onto light paper */
body.home, body.page-template-front-page, .rpr-main {
  background: var(--rpr-paper) !important;
  color: var(--rpr-ink) !important;
  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif !important;
}
.rpr-main h1, .rpr-main h2, .rpr-main h3 { font-family: 'Space Grotesk','Outfit',sans-serif !important; }

/* kill v1 grain/noise overlays on the vibrant page */
body.home .rpr-grain, body.home .rpr-noise { display: none !important; }

.rpr-section__container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; }
.rpr-grad { background: var(--rpr-grad-rainbow); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* Eyebrows */
.rpr-eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em;
  padding: 0.45rem 0.95rem; border-radius: 999px; margin-bottom: 1.4rem;
}
.rpr-eyebrow--rainbow { background: var(--rpr-grad-rainbow); color: #fff; }
.rpr-eyebrow--soft { background: rgba(155,77,255,0.12); color: var(--rpr-purple); }
.rpr-eyebrow--ondark { background: rgba(255,255,255,0.1); color: #fff; }

/* Section heads */
.rpr-section__head { text-align: center; max-width: 700px; margin: 0 auto clamp(2.5rem,5vw,3.5rem); }
.rpr-section__head h2 { font-size: clamp(2rem,4vw,3.2rem); line-height: 1.05; font-weight: 700; letter-spacing: -0.02em; }
.rpr-section__sub { font-size: 1.1rem; color: var(--rpr-dimd); max-width: 600px; margin: 1rem auto 0; }
.rpr-section--dark .rpr-section__sub { color: rgba(255,255,255,0.7); }

/* Section bg variants */
.rpr-section--dark { background: var(--rpr-ink) !important; color: #fff !important; }
.rpr-section--dark h2, .rpr-section--dark h3 { color: #fff !important; }
.rpr-section--paper2 { background: var(--rpr-paper2) !important; }

/* Buttons (vibrant) */
.rpr-main .rpr-btn, .rpr-buy .rpr-btn {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 1.1rem 2rem; border: 0; border-radius: 999px;
  font-family: 'Space Grotesk',sans-serif; font-weight: 700; font-size: 1.02rem;
  transition: transform 0.2s ease, box-shadow 0.3s ease, filter 0.2s ease; cursor: pointer;
}
.rpr-btn--rainbow { background: var(--rpr-grad-rainbow); color: #fff !important; box-shadow: 0 8px 28px rgba(155,77,255,0.4); }
.rpr-btn--rainbow:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 14px 40px rgba(255,61,139,0.5); filter: saturate(1.15); }
.rpr-btn--ghost-dark { background: transparent; color: var(--rpr-ink) !important; border: 2px solid rgba(20,16,31,0.15); }
.rpr-btn--ghost-dark:hover { border-color: var(--rpr-purple); color: var(--rpr-purple) !important; }
.rpr-btn--light { background: #fff; color: var(--rpr-ink) !important; box-shadow: 0 12px 40px rgba(0,0,0,0.25); }
.rpr-btn--light:hover { transform: translateY(-2px) scale(1.02); }
.rpr-btn--xl { padding: 1.25rem 2.5rem; font-size: 1.1rem; }

/* ---------- HERO ---------- */
.rpr-hero {
  position: relative; overflow: hidden;
  padding: clamp(3rem,7vw,5.5rem) 0 clamp(4rem,8vw,7rem);
  background:
    radial-gradient(circle at 8% 12%, rgba(255,61,139,0.14), transparent 38%),
    radial-gradient(circle at 92% 20%, rgba(45,125,255,0.14), transparent 40%),
    radial-gradient(circle at 70% 95%, rgba(24,224,224,0.12), transparent 42%),
    var(--rpr-paper);
}
.rpr-hero__glows { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.rpr-hero__glow { position: absolute; border-radius: 50%; filter: blur(70px); opacity: 0.5; }
.rpr-hero__glow--pink { width: 380px; height: 380px; background: var(--rpr-pink); top: -80px; left: -60px; }
.rpr-hero__glow--blue { width: 420px; height: 420px; background: var(--rpr-blue); top: 0; right: -100px; }
.rpr-hero__glow--cyan { width: 300px; height: 300px; background: var(--rpr-cyan); bottom: -80px; left: 40%; }

.rpr-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem,5vw,4.5rem); align-items: center; max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; }
.rpr-hero__title { font-size: clamp(2.9rem,7vw,5.2rem); line-height: 0.98; font-weight: 700; letter-spacing: -0.03em; margin: 0 0 1.5rem; color: var(--rpr-ink); }
.rpr-hero__lead { font-size: 1.15rem; line-height: 1.6; color: var(--rpr-dimd); max-width: 52ch; margin: 0 0 1.75rem; }
.rpr-hero__price { display: flex; align-items: baseline; gap: 0.9rem; margin: 0 0 1.75rem; flex-wrap: wrap; }
.rpr-hero__price-now { font-family: 'Space Grotesk',sans-serif; font-size: 2.5rem; font-weight: 700; color: var(--rpr-ink); }
.rpr-hero__price-now .amount, .rpr-hero__price-now bdi { color: var(--rpr-ink) !important; }
.rpr-hero__price-was { font-size: 1.2rem; color: var(--rpr-dimd); text-decoration: line-through; }
.rpr-hero__price-tag { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: #fff; background: var(--rpr-grad-sunset); padding: 0.4rem 0.8rem; border-radius: 999px; }
.rpr-hero__cta { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; align-items: center; }
.rpr-hero__cta form { margin: 0; }
.rpr-hero__micro { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.85rem; color: var(--rpr-dimd); font-weight: 500; }
.rpr-hero__micro-hl { color: var(--rpr-green); font-weight: 700; }

.rpr-hero__visual { position: relative; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; }
.rpr-hero__vortex-wrap { position: relative; z-index: 2; width: 100%; display: flex; align-items: center; justify-content: center; }
.rpr-hero__vortex { width: 92%; max-width: 520px; height: auto; filter: drop-shadow(0 24px 50px rgba(20,16,31,0.35)); animation: rpr-spin-slow 90s linear infinite; }
@keyframes rpr-spin-slow { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rpr-hero__vortex { animation: none; } }

.rpr-hero__chip {
  position: absolute; z-index: 3; background: #fff; border-radius: 16px;
  padding: 0.7rem 1rem; box-shadow: 0 12px 30px rgba(20,16,31,0.18);
  font-family: 'Space Grotesk',sans-serif; font-weight: 700; font-size: 0.85rem;
  display: flex; align-items: center; gap: 0.5rem; color: var(--rpr-ink);
}
.rpr-hero__chip-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--rpr-pink); }
.rpr-hero__chip-dot--cyan { background: var(--rpr-cyan); }
.rpr-hero__chip-dot--green { background: var(--rpr-green); }
.rpr-hero__chip--1 { top: 6%; left: -2%; }
.rpr-hero__chip--2 { bottom: 22%; right: -4%; }
.rpr-hero__chip--3 { bottom: 2%; left: 10%; }

.rpr-hero__scroll { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 3; }
.rpr-hero__scroll-line { display: block; width: 1px; height: 40px; background: linear-gradient(to bottom, transparent, var(--rpr-purple)); position: relative; overflow: hidden; }
.rpr-hero__scroll-line::after { content: ''; position: absolute; top: -40px; left: 0; width: 1px; height: 40px; background: var(--rpr-pink); animation: rpr-scrolldot 2s ease-in-out infinite; }
@keyframes rpr-scrolldot { 0% { top: -40px; } 100% { top: 40px; } }

@media (max-width: 880px) {
  .rpr-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .rpr-hero__chip--1 { left: 2%; } .rpr-hero__chip--2 { right: 2%; }
  .rpr-hero__vortex { animation: none; }
}

/* ---------- TICKER ---------- */
.rpr-ticker { background: var(--rpr-ink); padding: 1.5rem 0; overflow: hidden; }
.rpr-ticker__track { display: flex; gap: 2.5rem; white-space: nowrap; width: max-content; animation: rpr-scroll-x 30s linear infinite; }
.rpr-ticker__track span { font-family: 'Space Grotesk',sans-serif; font-weight: 700; font-size: 1.35rem; display: inline-flex; align-items: center; }
.rpr-ticker__track span::after { content: '●'; font-size: 0.55rem; margin-left: 2.5rem; color: rgba(255,255,255,0.3); vertical-align: middle; }
.rpr-ticker__c1 { color: var(--rpr-pink); } .rpr-ticker__c2 { color: var(--rpr-cyan); }
.rpr-ticker__c3 { color: var(--rpr-yellow); } .rpr-ticker__c4 { color: var(--rpr-green); }
.rpr-ticker__c5 { color: var(--rpr-blue); } .rpr-ticker__c6 { color: var(--rpr-orange); }
@keyframes rpr-scroll-x { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .rpr-ticker__track { animation: none; } }

/* ---------- WHY ---------- */
.rpr-why { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-why__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.rpr-why__card { padding: 2.25rem; border-radius: 28px; position: relative; overflow: hidden; color: #fff; min-height: 260px; display: flex; flex-direction: column; justify-content: flex-end; transition: transform 0.35s cubic-bezier(.2,.8,.3,1), box-shadow 0.35s ease; }
.rpr-why__card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(20,16,31,0.25); }
.rpr-why__card--1 { background: var(--rpr-grad-pinkpurple); }
.rpr-why__card--2 { background: var(--rpr-grad-bluecyan); }
.rpr-why__card--3 { background: var(--rpr-grad-sunset); }
.rpr-why__icon { position: absolute; top: 1.75rem; left: 1.75rem; width: 48px; height: 48px; border-radius: 14px; background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; }
.rpr-why__big { font-family: 'Space Grotesk',sans-serif; font-size: 2.6rem; font-weight: 700; line-height: 1; margin-bottom: 0.3rem; }
.rpr-why__card h3 { font-size: 1.3rem; margin: 0 0 0.4rem; color: #fff; }
.rpr-why__card p { font-size: 0.95rem; opacity: 0.92; margin: 0; }
@media (max-width: 760px) { .rpr-why__grid { grid-template-columns: 1fr; } }

/* ---------- SIZE COMPARE ---------- */
.rpr-compare-img { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-compare-img__inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4rem); align-items: center; }
.rpr-compare-img__media { border-radius: 28px; overflow: hidden; box-shadow: 0 24px 60px rgba(20,16,31,0.15); }
.rpr-compare-img__media img { width: 100%; display: block; }
.rpr-compare-img__copy h2 { font-size: clamp(1.9rem,3.5vw,2.8rem); margin: 0 0 1rem; }
.rpr-compare-img__copy p { color: var(--rpr-dimd); margin: 0 0 1.5rem; font-size: 1.05rem; }
.rpr-checklist { list-style: none; margin: 0; padding: 0; }
.rpr-checklist li { position: relative; padding-left: 1.9rem; margin-bottom: 0.75rem; font-weight: 500; }
.rpr-checklist li::before { content: '✓'; position: absolute; left: 0; top: 0; width: 1.3rem; height: 1.3rem; background: var(--rpr-grad-bluecyan); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 800; }
@media (max-width: 760px) { .rpr-compare-img__inner { grid-template-columns: 1fr; } }

/* ---------- LIFESTYLE ---------- */
.rpr-life { padding: clamp(4rem,9vw,7rem) 0; background: var(--rpr-paper2); }
.rpr-life__feature { border-radius: 28px; overflow: hidden; margin-bottom: 3rem; box-shadow: 0 24px 60px rgba(20,16,31,0.12); }
.rpr-life__feature img { width: 100%; display: block; }
.rpr-life__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1.5rem,3vw,2.5rem); }
.rpr-life__item { position: relative; padding-top: 3.5rem; }
.rpr-life__num { position: absolute; top: 0; left: 0; font-family: 'Space Grotesk',sans-serif; font-size: 2.6rem; font-weight: 700; line-height: 1; background: var(--rpr-grad-rainbow); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.rpr-life__item h3 { font-size: 1.3rem; margin: 0 0 0.5rem; }
.rpr-life__item p { color: var(--rpr-dimd); margin: 0; }
@media (max-width: 760px) { .rpr-life__grid { grid-template-columns: 1fr; } }

/* ---------- VIDEO ---------- */
.rpr-video { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-video__frame { position: relative; aspect-ratio: 16/9; border-radius: 28px; overflow: hidden; max-width: 1000px; margin: 0 auto; padding: 8px; background: var(--rpr-grad-rainbow); box-shadow: 0 30px 70px rgba(155,77,255,0.3); }
.rpr-video__frame video { width: 100%; height: 100%; object-fit: cover; border-radius: 20px; display: block; }

/* ---------- GALLERY ---------- */
.rpr-gallery { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-gallery__grid { display: grid; grid-template-columns: repeat(6,1fr); grid-auto-rows: 200px; gap: 1rem; }
.rpr-gallery__item { border-radius: 18px; overflow: hidden; position: relative; margin: 0; background: var(--rpr-paper2); }
.rpr-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; }
.rpr-gallery__item:hover img { transform: scale(1.06); }
.rpr-gallery__item--a { grid-column: span 4; grid-row: span 2; }
.rpr-gallery__item--b { grid-column: span 2; grid-row: span 2; }
.rpr-gallery__item--c { grid-column: span 2; grid-row: span 1; }
.rpr-gallery__item--d { grid-column: span 2; grid-row: span 1; }
.rpr-gallery__item--e { grid-column: span 2; grid-row: span 1; }
@media (max-width: 760px) {
  .rpr-gallery__grid { grid-template-columns: repeat(2,1fr); grid-auto-rows: 160px; }
  .rpr-gallery__item--a { grid-column: span 2; grid-row: span 2; }
  .rpr-gallery__item { grid-column: span 1; grid-row: span 1; }
}

/* ---------- SPECS ---------- */
.rpr-specs { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-specs__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 3rem; max-width: 860px; margin: 0 auto; }
.rpr-specs__row { display: flex; align-items: center; justify-content: space-between; padding: 1.15rem 0; border-bottom: 1px solid rgba(255,255,255,0.1); font-size: 0.98rem; }
.rpr-specs__label { color: rgba(255,255,255,0.6); }
.rpr-specs__value { font-family: 'Space Grotesk',sans-serif; font-weight: 600; color: #fff; text-align: right; }
@media (max-width: 760px) { .rpr-specs__grid { grid-template-columns: 1fr; gap: 0; } }

/* ---------- REVIEWS ---------- */
.rpr-reviews { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-reviews__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.rpr-review { padding: 2rem; border-radius: 28px; background: #fff; box-shadow: 0 12px 36px rgba(20,16,31,0.08); border: 1px solid rgba(20,16,31,0.05); position: relative; overflow: hidden; }
.rpr-review::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px; }
.rpr-review--1::before { background: var(--rpr-grad-pinkpurple); }
.rpr-review--2::before { background: var(--rpr-grad-bluecyan); }
.rpr-review--3::before { background: var(--rpr-grad-sunset); }
.rpr-review__stars { color: var(--rpr-yellow); margin-bottom: 1rem; letter-spacing: 0.1em; }
.rpr-review__quote { font-size: 1rem; line-height: 1.55; margin-bottom: 1.5rem; color: var(--rpr-ink2); }
.rpr-review__author { display: flex; align-items: center; gap: 0.75rem; }
.rpr-review__avatar { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-family: 'Space Grotesk',sans-serif; }
.rpr-review--1 .rpr-review__avatar { background: var(--rpr-grad-pinkpurple); }
.rpr-review--2 .rpr-review__avatar { background: var(--rpr-grad-bluecyan); }
.rpr-review--3 .rpr-review__avatar { background: var(--rpr-grad-sunset); }
.rpr-review__name { display: block; font-size: 0.9rem; font-weight: 700; }
.rpr-review__loc { display: block; font-size: 0.82rem; color: var(--rpr-dimd); }
@media (max-width: 880px) { .rpr-reviews__grid { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.rpr-faq { padding: clamp(4rem,9vw,7rem) 0; }
.rpr-faq__list { max-width: 720px; margin: 0 auto; }
.rpr-faq__item { background: #fff; border-radius: 18px; margin-bottom: 0.85rem; box-shadow: 0 6px 20px rgba(20,16,31,0.06); overflow: hidden; }
.rpr-faq__q { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: 'Space Grotesk',sans-serif; font-size: 1.02rem; font-weight: 600; padding: 1.3rem 1.5rem; }
.rpr-faq__q::-webkit-details-marker { display: none; }
.rpr-faq__q::after { content: '+'; font-size: 1.6rem; font-weight: 400; color: var(--rpr-purple); transition: transform 0.3s ease; flex-shrink: 0; }
.rpr-faq__item[open] .rpr-faq__q::after { transform: rotate(45deg); }
.rpr-faq__a { padding: 0 1.5rem 1.4rem; color: var(--rpr-dimd); font-size: 0.96rem; line-height: 1.6; }

/* ---------- BUY ---------- */
.rpr-buy { position: relative; padding: clamp(4.5rem,9vw,7rem) 0; text-align: center; background: var(--rpr-grad-rainbow); color: #fff; overflow: hidden; }
.rpr-buy::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 120%, rgba(255,255,255,0.25), transparent 60%); }
.rpr-buy__inner { position: relative; z-index: 2; max-width: 700px; margin: 0 auto; padding: 0 1.5rem; }
.rpr-buy h2 { font-size: clamp(2.4rem,5vw,4rem); margin: 0 0 1rem; color: #fff; }
.rpr-buy__sub { font-size: 1.2rem; opacity: 0.95; margin: 0 auto 2.25rem; max-width: 520px; }
.rpr-buy__sub .amount, .rpr-buy__sub bdi { color: #fff !important; }
.rpr-buy__assurances { display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap; font-size: 0.92rem; margin-top: 2rem; font-weight: 500; }

/* ---------- Reveal animation ---------- */
[data-rpr-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); }
[data-rpr-reveal].is-revealed { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { [data-rpr-reveal] { opacity: 1; transform: none; } }

/* =================================================================
   v2.1 — MOBILE FIXES (from real device screenshots)
   ================================================================= */

/* --- Fix 1: Header overcrowding on mobile --- */
@media (max-width: 640px) {
  .rpr-header__inner {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
    gap: 0.4rem;
  }
  /* Shrink the "Buy R36S" header button so it stops colliding with the burger */
  .rpr-header__actions .rpr-btn--sm {
    padding: 0.5rem 0.7rem !important;
    font-size: 0.72rem !important;
    line-height: 1.05;
  }
  .rpr-header__actions .rpr-btn--sm svg { display: none; } /* drop the arrow on mobile */
  .rpr-header__actions { gap: 0.4rem; }
  .rpr-cart { padding: 0.4rem; }
  .rpr-logo__text { font-size: 0.9rem; }
  .rpr-burger { flex-shrink: 0; }
}

/* On very narrow screens, hide the header Buy button entirely — the sticky
   buy section + hero CTA cover it, and it frees up space. */
@media (max-width: 400px) {
  .rpr-header__actions .rpr-btn--sm { display: none; }
}

/* --- Fix 2 + 3: Hero text & chips overflowing the right edge --- */
@media (max-width: 880px) {
  .rpr-hero { overflow-x: clip; }
  .rpr-hero__inner {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    max-width: 100%;
  }
  .rpr-hero__title,
  .rpr-hero__lead {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }
  .rpr-hero__lead { padding-right: 0.5rem; }

  /* Chips: keep them inside the viewport, never hanging off-screen */
  .rpr-hero__chip {
    max-width: calc(100% - 2rem);
    white-space: nowrap;
  }
  .rpr-hero__chip--2 { right: 0 !important; }
}

/* On phones, drop the floating chips entirely — they overlap the vortex art
   and clip off-screen. The specs are stated in the cards below anyway. */
@media (max-width: 640px) {
  .rpr-hero__chip { display: none; }
}

/* --- Fix 4: Stray scroll-indicator line floating in the CTA area --- */
@media (max-width: 880px) {
  .rpr-hero__scroll { display: none; }
}

/* --- Hero stacking + sizing on mobile --- */
@media (max-width: 880px) {
  .rpr-hero__inner { grid-template-columns: 1fr; }
  .rpr-hero__visual { aspect-ratio: auto; margin-top: 0.5rem; }
  .rpr-hero__vortex { width: 86%; max-width: 360px; }
  .rpr-hero__title { font-size: clamp(2.4rem, 11vw, 3.4rem); }
  .rpr-hero__lead { font-size: 1.02rem; }
  .rpr-hero__price-now { font-size: 2rem; }
  .rpr-hero__cta { width: 100%; }
  .rpr-hero__cta .rpr-btn { flex: 1 1 auto; justify-content: center; }
  .rpr-hero__micro { font-size: 0.78rem; gap: 0.5rem 0.9rem; }
}

/* --- Fix 5 + 6: Mobile menu ghosting / footer bleed-through --- */
/* The opened mobile menu must be fully opaque and cover everything behind it. */
.rpr-nav.is-open,
.rpr-header.is-menu-open .rpr-nav {
  background: var(--rpr-ink, #14101f);
}
@media (max-width: 880px) {
  /* Slide-in nav panel */
  .rpr-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(82vw, 340px);
    height: 100vh;
    background: #14101f;           /* fully opaque — kills the bleed-through */
    z-index: 1200;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(.4,0,.2,1);
    padding: 5.5rem 1.75rem 2rem;
    overflow-y: auto;
    box-shadow: -20px 0 60px rgba(0,0,0,0.5);
    display: block;
  }
  .rpr-header.is-menu-open .rpr-nav,
  .rpr-nav.is-open {
    transform: translateX(0);
  }
  .rpr-nav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    width: 100%;
  }
  .rpr-nav__list li { width: 100%; }
  .rpr-nav__list a {
    display: block;
    width: 100%;
    padding: 0.9rem 0;
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  /* Dark veil behind the menu so the page doesn't show through */
  .rpr-header.is-menu-open::after,
  body.rpr-menu-open::after {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1100;
    backdrop-filter: blur(2px);
  }

  /* Keep the burger above the panel + veil so it can close */
  .rpr-burger { position: relative; z-index: 1300; }

  /* Lock body scroll when menu open */
  body.rpr-menu-open { overflow: hidden; }
}

/* Desktop: ensure nav is always visible and burger hidden */
@media (min-width: 881px) {
  .rpr-burger { display: none; }
  .rpr-nav { position: static; transform: none; background: none; width: auto; height: auto; padding: 0; box-shadow: none; }
}

/* --- General mobile section padding safety --- */
@media (max-width: 640px) {
  .rpr-section__container { padding-left: 1.25rem; padding-right: 1.25rem; }
  .rpr-why__grid, .rpr-life__grid { gap: 1rem; }
  .rpr-section__head h2 { font-size: clamp(1.7rem, 7vw, 2.3rem); }
  /* Specs rows stack cleanly */
  .rpr-specs__row { font-size: 0.9rem; }
  /* Gallery: make sure nothing overflows */
  .rpr-gallery__grid { gap: 0.6rem; }
}

/* Prevent any horizontal scroll site-wide on mobile */
@media (max-width: 880px) {
  html, body { overflow-x: hidden; max-width: 100%; }
  .rpr-main { overflow-x: hidden; }
}

/* =================================================================
   v2.1.1 — RELIABILITY: content must NEVER be stuck invisible
   ================================================================= */

/* The reveal animation hides elements at opacity:0 until JS adds .is-revealed.
   If JS fails or the observer never fires (common on mobile Safari with tall
   sections), content would vanish. These rules guarantee visibility. */

/* 1. CSS-only auto-reveal failsafe: even with zero JS, every reveal element
      animates itself visible after a short delay. JS (.is-revealed) still
      takes over for the nicer staggered version when it works. */
@keyframes rpr-failsafe-show {
  to { opacity: 1; transform: translateY(0); }
}
[data-rpr-reveal] {
  animation: rpr-failsafe-show 0.01s linear 2.5s forwards;
}
/* When JS reveals it properly, that wins (no animation needed). */
[data-rpr-reveal].is-revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
  animation: none;
}

/* 2. Respect reduced motion — show instantly, no transform. */
@media (prefers-reduced-motion: reduce) {
  [data-rpr-reveal] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* 3. Absolute backstop: if anything still has its base hidden state on a
      touch device after load, a tap anywhere / scroll reveals it via JS,
      but this guarantees print + no-JS visibility too. */
.no-js [data-rpr-reveal] {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
