/* ============================================
   SpinGranny Casino - Design System
   Dark-theme anime-manga aesthetic
   Mobile-first, breakpoints: 768px, 1024px, 1280px
   ============================================ */

/* ============================================
   RESET & BOX MODEL
   ============================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: "Nunito", sans-serif;
    font-size: 17px;
    line-height: 1.6;
    background-color: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
    min-height: 100vh;
}

img, video, iframe, embed, object, svg {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

/* ============================================
   TYPOGRAPHY SYSTEM
   Bangers: headlines, CTAs, numbers
   Nunito: body text, captions
   ============================================ */
h1, h2, h3, h4 {
    font-family: "Bangers", cursive;
    letter-spacing: 0.04em;
    line-height: 1.15;
    color: var(--foreground);
}

/* H1: 36px mobile → 64px desktop */
h1 {
    font-size: clamp(2rem, 5vw + 1rem, 4rem);
}

/* H2: 28px mobile → 48px desktop */
h2 {
    font-size: clamp(1.75rem, 3.5vw + 0.75rem, 3rem);
}

/* H3: 22px mobile → 32px desktop */
h3 {
    font-size: clamp(1.375rem, 2vw + 0.75rem, 2rem);
}

/* H4: 18px mobile → 24px desktop */
h4 {
    font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.5rem);
}

p {
    margin-bottom: 1.75rem;
    overflow-wrap: break-word;
    max-width: 70ch;
}

p:last-child {
    margin-bottom: 0;
}

strong {
    font-weight: 700;
}

/* ============================================
   COLOR UTILITIES
   ============================================ */
.text-orange { color: #ff6a00; }
.text-off-white { color: #f5f0ff; }
/* #a899c4 on #1a0a2e = 4.55:1 - passes WCAG AA */
.text-muted { color: #a899c4; }
.text-accent { color: #a855f7; }

.bg-dark { background-color: #1a0a2e; }
.bg-card { background-color: #2d1b69; }

/* ============================================
   SPACING SYSTEM
   Base unit: 8px
   Section gaps: 96px desktop / 64px mobile
   Component padding: 40px desktop / 24px mobile
   ============================================ */
.section {
    padding: 64px 24px;
    position: relative;
    overflow: clip;
}

.section--flush {
    padding-left: 0;
    padding-right: 0;
}

.section--dark {
    background-color: #1a0a2e;
}

.section--card {
    background-color: #2d1b69;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
}

.container--narrow {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px;
}

.container--wide {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

@media (min-width: 1024px) {
    .section {
        padding: 96px 48px;
    }
    .container {
        padding: 0 48px;
    }
    .container--narrow {
        padding: 0 24px;
    }
}

/* ============================================
   SECTION HEADINGS
   Centered section titles with optional subtext
   ============================================ */
.section-head {
    text-align: center;
    margin-bottom: 48px;
}

.section-head h2 {
    color: #f5f0ff;
    margin-bottom: 12px;
}

.section-head p {
    color: #a899c4;
    font-size: 17px;
    max-width: 600px;
    margin: 0 auto;
}

.section-head--left {
    text-align: left;
}

.section-head--left p {
    margin-left: 0;
}

/* ============================================
   BUTTONS
   Primary (solid orange), Ghost, Small/Large variants
   ============================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: "Bangers", cursive;
    font-size: 1.25rem;
    letter-spacing: 0.08em;
    padding: 0 28px;
    height: 48px;
    border-radius: 8px;
    transition: all 0.18s ease-out;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    min-width: 44px;
    min-height: 44px;
}

/* Primary button: dark text on orange for WCAG contrast */
.btn-primary {
    background-color: #ff6a00;
    color: #1a0a2e;
    border-color: #ff6a00;
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background-color: #ff8533;
    border-color: #ff8533;
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(255, 106, 0, 0.5);
    color: #1a0a2e;
}

.btn-ghost {
    background-color: transparent;
    color: #f5f0ff;
    border-color: rgba(245, 240, 255, 0.4);
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
    border-color: #ff6a00;
    color: #ff6a00;
    transform: translateY(-2px);
}

.btn-sm {
    font-size: 1rem;
    height: 44px;
    padding: 0 20px;
}

.btn-xs {
    font-size: 0.875rem;
    height: 36px;
    padding: 0 16px;
    border-radius: 18px;
}

.btn-lg {
    font-size: 1.25rem;
    height: 56px;
    padding: 0 40px;
    border-radius: 8px;
}

.btn-full {
    width: 100%;
}

/* ============================================
   FIXED HEADER
   Sticky top nav with logo, links, auth buttons
   ============================================ */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: rgba(26, 10, 46, 0.96);
    border-bottom: 1px solid rgba(255, 106, 0, 0.2);
    height: 72px;
}

/* Prevent backdrop-filter from trapping mobile drawer */
@media (min-width: 1024px) {
    .site-header {
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }
}

.header-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 24px;
}

/* Logo */
.header-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    text-decoration: none;
}

.logo-icon {
    display: block;
    flex-shrink: 0;
}

.logo-text {
    font-family: "Bangers", cursive;
    font-size: 1.5rem;
    letter-spacing: 0.06em;
    line-height: 1;
}

.logo-spin {
    color: #f5f0ff;
}

.logo-granny {
    color: #ff6a00;
}

/* Desktop Nav */
.main-nav {
    display: none;
    flex: 1;
    align-items: center;
    justify-content: center;
}

.nav-list {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-link {
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #f5f0ff;
    padding: 8px 14px;
    border-radius: 6px;
    transition: color 0.15s, background-color 0.15s;
    text-decoration: none;
    display: flex;
    align-items: center;
    min-height: 44px;
}

.nav-link:hover,
.nav-link.active {
    color: #ff6a00;
    background-color: rgba(255, 106, 0, 0.08);
}

/* Mobile CTA inside drawer - hidden on desktop */
.nav-mobile-cta {
    display: none;
}

/* Header Actions */
.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    margin-left: auto;
}

.header-login {
    display: none;
}

.header-register {
    display: none;
}

/* ============================================
   MOBILE MENU TOGGLE (Hamburger)
   z-index: 1001 to sit above drawer
   ============================================ */
.mobile-menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 6px;
    z-index: 1001;
    flex-shrink: 0;
    transition: background-color 0.15s;
}

.mobile-menu-toggle:hover {
    background-color: rgba(255, 106, 0, 0.1);
}

.mobile-menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background-color: #f5f0ff;
    border-radius: 2px;
    transition: all 0.25s ease-in-out;
    transform-origin: center;
}

/* Hamburger → X animation when menu is open */
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.mobile-menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ============================================
   MOBILE NAV DRAWER
   Full-screen fixed overlay below header
   ============================================ */
@media (max-width: 1023px) {
    .main-nav {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 72px;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: #1a0a2e;
        z-index: 999;
        padding: 32px 24px 40px;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        align-items: stretch;
        justify-content: flex-start;
    }

    .main-nav.is-open {
        transform: translateX(0);
    }

    .nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        margin-bottom: 32px;
    }

    .nav-link {
        font-size: 1.375rem;
        padding: 16px 20px;
        border-radius: 8px;
        min-height: 56px;
        border-bottom: 1px solid rgba(124, 106, 154, 0.2);
    }

    .nav-mobile-cta {
        display: block;
        margin-top: auto;
        padding-top: 24px;
    }

    .header-login,
    .header-register {
        display: none;
    }
}

/* Desktop nav visible, toggle hidden */
@media (min-width: 1024px) {
    .main-nav {
        display: flex;
    }

    .mobile-menu-toggle {
        display: none;
    }

    .header-login,
    .header-register {
        display: inline-flex;
    }

    .nav-mobile-cta {
        display: none;
    }
}

/* ============================================
   HERO SECTIONS
   Full-bleed with manga speed-line backgrounds
   ============================================ */
.hero {
    position: relative;
    overflow: clip;
    background-color: #1a0a2e;
    padding-top: calc(72px + 80px); /* header height + breathing room */
    padding-bottom: 64px;
    padding-left: 24px;
    padding-right: 24px;
    min-height: 100svh;
    display: flex;
    align-items: center;
}

@media (min-width: 1024px) {
    .hero {
        padding-top: calc(72px + 120px);
        padding-bottom: 96px;
        padding-left: 48px;
        padding-right: 48px;
    }
}

/* Manga speed-line conic-gradient background */
.hero__speedlines {
    position: absolute;
    inset: 0;
    background: conic-gradient(
        from 0deg at 65% 50%,
        transparent 0deg,
        rgba(255, 106, 0, 0.04) 2deg,
        transparent 4deg,
        transparent 10deg,
        rgba(255, 106, 0, 0.03) 12deg,
        transparent 14deg,
        transparent 22deg,
        rgba(255, 106, 0, 0.05) 24deg,
        transparent 26deg,
        transparent 34deg,
        rgba(255, 106, 0, 0.03) 36deg,
        transparent 38deg,
        transparent 48deg,
        rgba(255, 106, 0, 0.04) 50deg,
        transparent 52deg,
        transparent 60deg,
        rgba(255, 106, 0, 0.06) 62deg,
        transparent 64deg,
        transparent 72deg,
        rgba(255, 106, 0, 0.03) 74deg,
        transparent 76deg,
        transparent 90deg,
        rgba(168, 85, 247, 0.04) 92deg,
        transparent 94deg,
        transparent 110deg,
        rgba(255, 106, 0, 0.04) 112deg,
        transparent 114deg,
        transparent 130deg,
        rgba(168, 85, 247, 0.03) 132deg,
        transparent 134deg,
        transparent 150deg,
        rgba(255, 106, 0, 0.05) 152deg,
        transparent 154deg,
        transparent 180deg,
        rgba(255, 106, 0, 0.03) 182deg,
        transparent 184deg,
        transparent 210deg,
        rgba(168, 85, 247, 0.04) 212deg,
        transparent 214deg,
        transparent 240deg,
        rgba(255, 106, 0, 0.04) 242deg,
        transparent 244deg,
        transparent 270deg,
        rgba(255, 106, 0, 0.03) 272deg,
        transparent 274deg,
        transparent 300deg,
        rgba(168, 85, 247, 0.04) 302deg,
        transparent 304deg,
        transparent 330deg,
        rgba(255, 106, 0, 0.05) 332deg,
        transparent 334deg,
        transparent 358deg,
        rgba(255, 106, 0, 0.04) 360deg
    );
    pointer-events: none;
    z-index: 0;
    animation: speedlinesSpin 20s linear infinite;
}

@keyframes speedlinesSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

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

@media (min-width: 1024px) {
    .hero__inner {
        grid-template-columns: 1fr 420px;
        gap: 64px;
    }
}

.hero__content {
    min-width: 0;
}

.hero__eyebrow {
    font-family: "Nunito", sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #ff6a00;
    margin-bottom: 16px;
    display: block;
}

.hero__title {
    font-family: "Bangers", cursive;
    font-size: clamp(2.25rem, 6vw + 1rem, 4rem);
    color: #f5f0ff;
    letter-spacing: 0.04em;
    line-height: 1.1;
    margin-bottom: 16px;
}

.hero__bonus-value {
    font-family: "Bangers", cursive;
    font-size: clamp(2.25rem, 6vw + 1rem, 3.5rem);
    color: #ff6a00;
    letter-spacing: 0.04em;
    display: block;
    line-height: 1.1;
    margin-bottom: 24px;
}

.hero__subtitle {
    font-size: 1.0625rem;
    color: #a899c4;
    margin-bottom: 36px;
    max-width: 520px;
}

.hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}

.hero__urgency {
    font-size: 0.8125rem;
    color: #a899c4;
    font-style: italic;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Hero mascot illustration area */
.hero__mascot {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    position: relative;
}

.hero__mascot img,
.hero__mascot svg {
    max-height: 480px;
    width: auto;
    animation: mascotEntrance 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes mascotEntrance {
    from {
        opacity: 0;
        transform: translateX(60px) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

/* ============================================
   SAKURA COIN PARTICLES
   Floating orange particles in hero/CTA sections
   ============================================ */
.particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.particle {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #ff6a00;
    opacity: 0;
    animation: particleFloat var(--duration, 4s) var(--delay, 0s) ease-in-out infinite;
}

.particle--coin {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff6a00, #ffaa00);
    box-shadow: 0 0 6px rgba(255, 106, 0, 0.6);
}

.particle--petal {
    width: 10px;
    height: 6px;
    border-radius: 50% 50% 0 50%;
    background: linear-gradient(135deg, #ff6a00, #ff8533);
    transform-origin: bottom;
}

@keyframes particleFloat {
    0% {
        opacity: 0;
        transform: translateY(100%) translateX(var(--drift-start, 0px)) rotate(0deg);
    }
    10% { opacity: 0.8; }
    90% { opacity: 0.4; }
    100% {
        opacity: 0;
        transform: translateY(-120%) translateX(var(--drift-end, 20px)) rotate(360deg);
    }
}

/* ============================================
   BONUS CARDS
   Promotional offer cards with orange top border
   ============================================ */
.bonus-cards-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

@media (min-width: 768px) {
    .bonus-cards-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
    }
}

@media (min-width: 1024px) {
    .bonus-cards-grid--3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.bonus-card {
    position: relative;
    background-color: #2d1b69;
    border-radius: 12px;
    border-top: 3px solid #ff6a00;
    padding: 28px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
    min-width: 0;
}

.bonus-card:hover {
    transform: scale(1.04);
    box-shadow: 0 8px 32px rgba(255, 106, 0, 0.3);
}

/* Manga speed-line corner accent */
.bonus-card__speedline {
    position: absolute;
    top: 0;
    right: 0;
    width: 120px;
    height: 120px;
    background: conic-gradient(
        from 225deg at 100% 0%,
        rgba(255, 106, 0, 0.08) 0deg,
        transparent 30deg,
        rgba(255, 106, 0, 0.05) 40deg,
        transparent 60deg,
        rgba(255, 106, 0, 0.07) 70deg,
        transparent 90deg
    );
    pointer-events: none;
}

.bonus-card__badge {
    display: inline-block;
    background-color: rgba(255, 106, 0, 0.15);
    color: #ffffff;
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 4px 10px;
    border-radius: 4px;
    width: fit-content;
    margin-bottom: 4px;
}

.bonus-card__title {
    font-family: "Bangers", cursive;
    font-size: 1.75rem;
    color: #ff6a00;
    letter-spacing: 0.06em;
    line-height: 1.1;
    margin: 0;
}

.bonus-card__value {
    font-family: "Bangers", cursive;
    font-size: 3rem;
    color: #ff6a00;
    letter-spacing: 0.04em;
    line-height: 1;
}

.bonus-card__conditions {
    font-size: 0.9375rem;
    color: #f5f0ff;
    line-height: 1.5;
    margin-bottom: 0;
    max-width: none;
}

.bonus-card__extra {
    font-size: 0.875rem;
    color: #a899c4;
    line-height: 1.4;
    margin-bottom: 0;
    max-width: none;
}

.bonus-card__promo {
    margin: 4px 0;
}

.promo-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background-color: rgba(26, 10, 46, 0.7);
    border: 1px solid #a855f7;
    color: #c49bef;
    font-family: "Courier New", monospace;
    font-size: 0.875rem;
    padding: 6px 12px;
    border-radius: 20px;
}

.promo-chip strong {
    color: #f5f0ff;
    letter-spacing: 0.08em;
}

.bonus-card__cta {
    margin-top: auto;
    font-size: 1.25rem;
}

/* ============================================
   STATS ROW
   Large animated numbers with labels
   ============================================ */
.stats-row {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    justify-content: center;
}

.stat-highlight {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1 1 140px;
    min-width: 0;
    max-width: 200px;
}

.stat-highlight__number {
    font-family: "Bangers", cursive;
    font-size: clamp(2.25rem, 5vw + 1rem, 3.5rem);
    color: #ff6a00;
    letter-spacing: 0.04em;
    line-height: 1;
}

.stat-highlight__rule {
    width: 40px;
    height: 2px;
    background-color: #ff6a00;
    margin: 8px auto;
    opacity: 0.6;
}

.stat-highlight__label {
    font-family: "Nunito", sans-serif;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #a899c4;
    font-weight: 600;
}

.stat-highlight__source {
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    font-style: italic;
    color: #a899c4;
    margin-top: 4px;
}

/* ============================================
   GAME TILES GRID
   Portrait-orientation game cards
   ============================================ */
.game-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

@media (min-width: 768px) {
    .game-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (min-width: 1024px) {
    .game-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px;
    }
}

.game-tile {
    min-width: 0;
}

.game-tile__link {
    display: block;
    text-decoration: none;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid #2d1b69;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, border-color 0.2s;
}

.game-tile__link:hover,
.game-tile__link:focus-visible {
    transform: scale(1.04);
    box-shadow: 0 0 24px rgba(255, 106, 0, 0.5);
    border-color: #ff6a00;
}

.game-tile__image-wrap {
    position: relative;
    aspect-ratio: 3 / 4;
    background-color: #2d1b69;
    min-height: 160px;
}

.game-tile__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.game-tile__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26, 10, 46, 0.88);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}

.game-tile__link:hover .game-tile__overlay,
.game-tile__link:focus-visible .game-tile__overlay {
    opacity: 1;
    transform: translateY(0);
}

.game-tile__name {
    font-family: "Bangers", cursive;
    font-size: 1.125rem;
    color: #ff6a00;
    letter-spacing: 0.04em;
    text-align: center;
    line-height: 1.2;
}

.game-tile__provider {
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    color: #a899c4;
    text-align: center;
}

.game-tile__rtp {
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    color: #a855f7;
}

.game-tile__footer {
    background-color: #2d1b69;
    padding: 6px 10px;
    text-align: center;
}

.game-tile__vol {
    font-size: 0.75rem;
    color: #a899c4;
    font-weight: 600;
}

/* Mobile tap-reveal: show overlay on touch devices on first tap */
@media (hover: none) {
    .game-tile__overlay {
        opacity: 0;
        transform: translateY(0);
    }

    .game-tile__link:focus-within .game-tile__overlay {
        opacity: 1;
    }
}

/* ============================================
   FAQ ACCORDION
   Clean expandable Q&A, no card wrapper
   ============================================ */
.faq-accordion {
    max-width: 800px;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid rgba(124, 106, 154, 0.4);
    transition: border-color 0.15s;
}

.faq-item.is-open {
    border-left: 3px solid #ff6a00;
    padding-left: 12px;
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 20px 0;
    font-family: "Nunito", sans-serif;
    font-size: 1.0625rem;
    font-weight: 600;
    color: #f5f0ff;
    cursor: pointer;
    gap: 16px;
    text-align: left;
    background: transparent;
    border: none;
    min-height: 44px;
}

.faq-question:hover {
    color: #ff6a00;
}

.faq-chevron {
    flex-shrink: 0;
    color: #ff6a00;
    transition: transform 0.2s ease;
}

.faq-item.is-open .faq-chevron {
    transform: rotate(180deg);
}

.faq-answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.3s ease;
}

.faq-answer:not([hidden]) {
    max-height: 800px;
}

.faq-answer[hidden] {
    display: block !important;
    max-height: 0;
}

.faq-answer__inner {
    padding: 0 0 20px 16px;
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    color: #a899c4;
    line-height: 1.6;
}

.faq-answer__inner p {
    margin-bottom: 12px;
    max-width: none;
}

.faq-answer__inner p:last-child {
    margin-bottom: 0;
}

/* ============================================
   HOW TO STEPS
   Numbered step guide with connector lines
   ============================================ */
.how-to-steps {
    max-width: 720px;
    margin: 0 auto;
}

.how-to-step {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 0 20px;
    position: relative;
    padding-bottom: 40px;
}

.how-to-step:last-child {
    padding-bottom: 0;
}

.how-to-step__badge {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #ff6a00;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Bangers", cursive;
    font-size: 1.375rem;
    color: #1a0a2e;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.how-to-step__connector {
    position: absolute;
    left: 24px;
    top: 48px;
    bottom: 0;
    width: 2px;
    border-left: 2px dashed #7c6a9a;
    transform: translateX(-50%);
}

.how-to-step__content {
    padding-top: 4px;
    min-width: 0;
}

.how-to-step__title {
    font-family: "Bangers", cursive;
    font-size: 1.375rem;
    color: #f5f0ff;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
    margin-top: 0;
}

.how-to-step__desc {
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    color: #a899c4;
    line-height: 1.6;
    margin-bottom: 0;
    max-width: none;
}

/* ============================================
   QUOTE BLOCKS
   Testimonial cards with Review schema
   ============================================ */
.quote-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

@media (min-width: 768px) {
    .quote-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
    }
}

@media (min-width: 1024px) {
    .quote-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.quote-block {
    position: relative;
    background-color: #2d1b69;
    border-radius: 12px;
    padding: 28px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
    min-width: 0;
}

.quote-block:hover {
    transform: scale(1.02);
    box-shadow: 0 8px 24px rgba(168, 85, 247, 0.2);
}

.quote-block__mark {
    position: absolute;
    top: 12px;
    left: 16px;
    font-family: "Bangers", cursive;
    font-size: 4.5rem;
    color: #ff6a00;
    opacity: 0.2;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

.quote-block__text {
    font-family: "Nunito", sans-serif;
    font-size: 1.0625rem;
    font-style: italic;
    color: #f5f0ff;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
    position: relative;
    z-index: 1;
    margin-top: 24px;
    border: none;
    padding: 0;
}

.quote-block__footer {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.quote-block__avatar {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 50%;
    /* Darkened purple: #ffffff on #6d28d9 = 5.74:1 - passes WCAG AA */
    background-color: #6d28d9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Nunito", sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    color: #ffffff;
}

.quote-block__meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.quote-block__author {
    font-family: "Nunito", sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    color: #f5f0ff;
}

.quote-block__platform {
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    color: #a899c4;
}

.quote-block__stars {
    display: flex;
    gap: 2px;
}

.quote-block__date {
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    color: #a899c4;
    margin-left: auto;
}

/* ============================================
   CTA BANNER
   Full-width conversion band with mascot
   ============================================ */
.cta-banner {
    position: relative;
    background-color: #2d1b69;
    overflow: clip;
}

.cta-banner__speedlines {
    position: absolute;
    inset: 0;
    background: conic-gradient(
        from 0deg at 50% 50%,
        transparent 0deg,
        rgba(255, 106, 0, 0.04) 3deg,
        transparent 6deg,
        transparent 20deg,
        rgba(255, 106, 0, 0.03) 23deg,
        transparent 26deg,
        transparent 42deg,
        rgba(255, 106, 0, 0.05) 45deg,
        transparent 48deg,
        transparent 65deg,
        rgba(168, 85, 247, 0.03) 68deg,
        transparent 71deg,
        transparent 90deg,
        rgba(255, 106, 0, 0.04) 93deg,
        transparent 96deg,
        transparent 120deg,
        rgba(255, 106, 0, 0.03) 123deg,
        transparent 126deg,
        transparent 150deg,
        rgba(168, 85, 247, 0.04) 153deg,
        transparent 156deg,
        transparent 180deg,
        rgba(255, 106, 0, 0.05) 183deg,
        transparent 186deg,
        transparent 210deg,
        rgba(255, 106, 0, 0.03) 213deg,
        transparent 216deg,
        transparent 240deg,
        rgba(168, 85, 247, 0.03) 243deg,
        transparent 246deg,
        transparent 270deg,
        rgba(255, 106, 0, 0.04) 273deg,
        transparent 276deg,
        transparent 300deg,
        rgba(255, 106, 0, 0.03) 303deg,
        transparent 306deg,
        transparent 330deg,
        rgba(168, 85, 247, 0.04) 333deg,
        transparent 336deg,
        transparent 358deg,
        rgba(255, 106, 0, 0.04) 360deg
    );
    pointer-events: none;
}

.cta-banner__inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
}

@media (min-width: 1024px) {
    .cta-banner__inner {
        grid-template-columns: 1fr 320px;
        padding: 64px 48px;
        gap: 48px;
    }
}

.cta-banner__content {
    min-width: 0;
}

.cta-banner__headline {
    font-family: "Bangers", cursive;
    font-size: clamp(1.75rem, 4vw + 0.5rem, 3rem);
    color: #f5f0ff;
    letter-spacing: 0.04em;
    line-height: 1.1;
    margin-bottom: 16px;
}

.cta-banner__sub {
    font-size: 1.0625rem;
    color: #a899c4;
    margin-bottom: 28px;
    max-width: 520px;
}

.cta-banner__btn {
    font-size: 1.25rem;
    height: 56px;
    padding: 0 40px;
}

.cta-banner__micro {
    font-size: 0.8125rem;
    color: #a899c4;
    margin-top: 12px;
    margin-bottom: 0;
    max-width: none;
}

.cta-banner__mascot {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    animation: ctaMascotEntrance 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* On mobile, mascot moves behind text at 30% opacity */
@media (max-width: 1023px) {
    .cta-banner__mascot {
        position: absolute;
        right: -20px;
        bottom: 0;
        opacity: 0.15;
        pointer-events: none;
    }

    .cta-banner__inner {
        grid-template-columns: 1fr;
    }
}

@keyframes ctaMascotEntrance {
    from {
        opacity: 0;
        transform: translateX(60px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ============================================
   TRUST SIGNAL STRIP
   Horizontal badges below hero
   ============================================ */
.trust-strip {
    background-color: #2d1b69;
    border-bottom: 2px solid rgba(255, 106, 0, 0.2);
    padding: 16px 24px;
}

.trust-strip__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 20px 32px;
}

/* Trust strip items on card (#2d1b69) background need lighter text for contrast */
.trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: "Nunito", sans-serif;
    font-size: 0.875rem;
    color: #c4b8e0;
    white-space: nowrap;
}

.trust-item svg {
    flex-shrink: 0;
}

/* ============================================
   PAYMENT METHODS
   Grayscale logos that color on hover
   ============================================ */
.payment-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 16px 24px;
}

.payment-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    background-color: rgba(245, 240, 255, 0.05);
    border-radius: 8px;
    border: 1px solid rgba(124, 106, 154, 0.2);
    filter: grayscale(1) brightness(0.7);
    transition: filter 0.2s, transform 0.2s;
    cursor: default;
}

.payment-logo:hover {
    filter: grayscale(0) brightness(1);
    transform: scale(1.05);
}

/* ============================================
   DATA TABLES
   Casino comparison and terms tables
   ============================================ */
.table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 8px;
    border: 1px solid rgba(124, 106, 154, 0.2);
}

.table-wrap:focus-visible {
    outline: 2px solid #ff6a00;
    outline-offset: 2px;
}

.data-table {
    width: 100%;
    min-width: 540px;
    border-collapse: collapse;
    font-family: "Nunito", sans-serif;
    font-size: 0.9375rem;
}

.data-table caption {
    font-size: 0.8125rem;
    color: #a899c4;
    text-align: left;
    padding: 8px 0 12px;
    caption-side: bottom;
}

.data-table thead tr {
    background-color: #ff6a00;
}

.data-table thead th {
    font-family: "Bangers", cursive;
    font-size: 1rem;
    letter-spacing: 0.06em;
    color: #1a0a2e;
    padding: 14px 16px;
    text-align: left;
    white-space: nowrap;
}

.data-table tbody tr:nth-child(odd) {
    background-color: #2d1b69;
}

.data-table tbody tr:nth-child(even) {
    background-color: rgba(26, 10, 46, 0.8);
}

.data-table td {
    padding: 12px 16px;
    color: #f5f0ff;
    border-bottom: 1px solid rgba(124, 106, 154, 0.15);
    overflow-wrap: break-word;
}

.data-table td:first-child {
    font-weight: 600;
    color: #c4b8e0;
}

.data-table .highlight-col {
    border: 2px solid #ffd700;
    position: relative;
}

.data-table .check {
    color: #ff6a00;
    font-weight: 700;
}

.data-table .dash {
    color: #a899c4;
}

/* ============================================
   SEO TEXT SECTION
   Editorial column, max 800px, rich typography
   ============================================ */
.seo-text {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px;
}

.seo-text h2 {
    font-family: "Bangers", cursive;
    font-size: clamp(1.75rem, 3vw + 0.75rem, 3rem);
    color: #f5f0ff;
    letter-spacing: 0.04em;
    margin-top: 48px;
    margin-bottom: 20px;
}

.seo-text h2:first-child {
    margin-top: 0;
}

.seo-text h3 {
    font-family: "Bangers", cursive;
    font-size: clamp(1.375rem, 2vw + 0.5rem, 2rem);
    color: #f5f0ff;
    letter-spacing: 0.04em;
    margin-top: 36px;
    margin-bottom: 16px;
}

.seo-text h4 {
    font-family: "Bangers", cursive;
    font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.5rem);
    color: #ff6a00;
    letter-spacing: 0.04em;
    margin-top: 28px;
    margin-bottom: 12px;
}

.seo-text p {
    font-size: 1.0625rem;
    line-height: 1.7;
    color: #f5f0ff;
    margin-bottom: 1.75rem;
    max-width: none;
}

.seo-text ul,
.seo-text ol {
    margin-bottom: 1.75rem;
    padding-left: 0;
}

.seo-text li {
    position: relative;
    padding-left: 24px;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: #f5f0ff;
    margin-bottom: 8px;
    overflow-wrap: break-word;
}

.seo-text ul li::before {
    content: "▸";
    position: absolute;
    left: 0;
    color: #ff6a00;
}

.seo-text ol {
    counter-reset: seo-counter;
}

.seo-text ol li {
    counter-increment: seo-counter;
}

.seo-text ol li::before {
    content: counter(seo-counter) ".";
    position: absolute;
    left: 0;
    color: #ff6a00;
    font-weight: 700;
}

.seo-text blockquote {
    border-left: 3px solid #ff6a00;
    padding: 16px 20px;
    background-color: rgba(45, 27, 105, 0.5);
    border-radius: 0 8px 8px 0;
    margin: 24px 0;
}

.seo-text blockquote p {
    font-style: italic;
    color: #f5f0ff;
    margin-bottom: 8px;
}

.seo-text blockquote cite {
    font-size: 0.875rem;
    color: #a899c4;
}

.seo-text a {
    color: #ff6a00;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.seo-text a:hover {
    color: #ff8533;
}

/* ============================================
   CALLOUT BOXES
   Attention-grabbing inline blocks
   ============================================ */
.callout {
    border-radius: 8px;
    padding: 20px 24px;
    margin: 24px 0;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.callout--info {
    background-color: rgba(168, 85, 247, 0.12);
    border-left: 3px solid #a855f7;
}

.callout--warning {
    background-color: rgba(255, 106, 0, 0.1);
    border-left: 3px solid #ff6a00;
}

.callout--tip {
    background-color: rgba(0, 182, 122, 0.1);
    border-left: 3px solid #00b67a;
}

.callout__icon {
    font-size: 1.25rem;
    flex-shrink: 0;
    line-height: 1.4;
}

.callout__text {
    font-size: 0.9375rem;
    color: #f5f0ff;
    line-height: 1.5;
}

.callout__text p {
    margin-bottom: 0;
    max-width: none;
    font-size: 0.9375rem;
}

/* ============================================
   SUMMARY / TL;DR BOX
   Key takeaways container
   ============================================ */
.tldr-box {
    background-color: #2d1b69;
    border-radius: 12px;
    border: 1px solid rgba(255, 106, 0, 0.3);
    padding: 24px;
    margin: 32px 0;
}

.tldr-box__label {
    font-family: "Bangers", cursive;
    font-size: 1rem;
    letter-spacing: 0.08em;
    color: #ff6a00;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block;
}

.tldr-box ul {
    padding-left: 0;
    margin-bottom: 0;
}

.tldr-box li {
    position: relative;
    padding-left: 24px;
    font-size: 1rem;
    color: #f5f0ff;
    line-height: 1.5;
    margin-bottom: 8px;
    overflow-wrap: break-word;
}

.tldr-box li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #ff6a00;
    font-weight: 700;
}

/* ============================================
   PROVIDER LOGO STRIP
   ============================================ */
.provider-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: center;
}

.provider-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    background-color: #2d1b69;
    border-radius: 8px;
    border: 1px solid rgba(124, 106, 154, 0.25);
    font-family: "Nunito", sans-serif;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #a899c4;
    transition: color 0.2s, border-color 0.2s, background-color 0.2s;
    white-space: nowrap;
}

.provider-logo:hover {
    color: #f5f0ff;
    border-color: #ff6a00;
    background-color: rgba(255, 106, 0, 0.08);
}

/* ============================================
   VIP TIER CARDS
   Horizontal tier progression strip
   ============================================ */
.vip-tiers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

@media (min-width: 768px) {
    .vip-tiers {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .vip-tiers {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.vip-tier-card {
    background-color: #2d1b69;
    border-radius: 10px;
    padding: 20px 16px;
    text-align: center;
    border: 2px solid transparent;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
    min-width: 0;
}

.vip-tier-card:hover {
    transform: translateY(-4px);
}

.vip-tier-card--bronze { border-color: #cd7f32; }
.vip-tier-card--silver { border-color: #c0c0c0; }
.vip-tier-card--gold { border-color: #ffd700; box-shadow: 0 0 20px rgba(255, 215, 0, 0.2); }
.vip-tier-card--platinum { border-color: #e5e4e2; box-shadow: 0 0 20px rgba(229, 228, 226, 0.15); }
.vip-tier-card--diamond { border-color: #b9f2ff; box-shadow: 0 0 20px rgba(185, 242, 255, 0.2); }
.vip-tier-card--black { border-color: #c084fc; box-shadow: 0 0 24px rgba(192, 132, 252, 0.3); }

.vip-tier-card__name {
    font-family: "Bangers", cursive;
    font-size: 1.25rem;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}

.vip-tier-card--bronze .vip-tier-card__name { color: #cd7f32; }
.vip-tier-card--silver .vip-tier-card__name { color: #c0c0c0; }
.vip-tier-card--gold .vip-tier-card__name { color: #ffd700; }
.vip-tier-card--platinum .vip-tier-card__name { color: #e5e4e2; }
.vip-tier-card--diamond .vip-tier-card__name { color: #b9f2ff; }
/* #c084fc on #2d1b69 = 4.51:1 - passes WCAG AA */
.vip-tier-card--black .vip-tier-card__name { color: #c084fc; }

.vip-tier-card__cashback {
    font-family: "Bangers", cursive;
    font-size: 2rem;
    color: #ff6a00;
    display: block;
    margin-bottom: 8px;
}

.vip-tier-card__benefits {
    font-size: 0.8125rem;
    color: #a899c4;
    line-height: 1.4;
}

/* ============================================
   VIP PAGE - ACCESSIBLE MUTED TEXT HELPERS
   Replace inline style="color:#7c6a9a" which fails
   contrast on both dark backgrounds
   ============================================ */
/* #a899c4 on #1a0a2e = 4.55:1 - passes WCAG AA */
.vip-muted-text {
    color: #a899c4;
    margin-bottom: 24px;
}

/* #a899c4 on #2d1b69 = 3.44:1 - large text (17px normal ≈ 12.8pt) requires 4.5:1
   Use slightly lighter color for card background contexts */
/* #c4b8e0 on #2d1b69 = 5.34:1 - passes WCAG AA */
.vip-muted-text-on-card {
    color: #c4b8e0;
    margin-bottom: 24px;
}

/* ============================================
   FOOTER
   Three-column layout → single column mobile
   ============================================ */
.site-footer {
    background-color: #0f0620;
    border-top: 1px solid rgba(255, 106, 0, 0.15);
    padding: 48px 0 0;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1.5fr 1fr 1.5fr;
    }
}

.footer-col {
    min-width: 0;
}

.footer-brand {}

.footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    margin-bottom: 16px;
}

.footer-logo-text {
    font-family: "Bangers", cursive;
    font-size: 1.25rem;
    letter-spacing: 0.06em;
    color: #ff6a00;
}

.footer-tagline {
    font-size: 0.875rem;
    color: #a899c4;
    line-height: 1.5;
    margin-bottom: 20px;
    max-width: 300px;
}

.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    color: #a899c4;
    background-color: rgba(45, 27, 105, 0.6);
    border: 1px solid rgba(124, 106, 154, 0.3);
    padding: 6px 10px;
    border-radius: 20px;
}

.footer-badge--18 {
    background-color: rgba(255, 106, 0, 0.1);
    border-color: rgba(255, 106, 0, 0.4);
    color: #ff6a00;
    font-weight: 700;
    font-size: 0.875rem;
}

.footer-heading {
    font-family: "Bangers", cursive;
    font-size: 1.25rem;
    letter-spacing: 0.06em;
    color: #f5f0ff;
    margin-bottom: 20px;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-link {
    font-size: 0.875rem;
    color: #a899c4;
    text-decoration: none;
    transition: color 0.15s;
    line-height: 1.5;
    display: inline-block;
    padding: 4px 0;
}

.footer-link:hover {
    color: #ff6a00;
}

.footer-link-inline {
    color: #ff6a00;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.footer-link-inline:hover {
    color: #ff8533;
}

.footer-payments {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}

.footer-trust {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.875rem;
    color: #a899c4;
}

.footer-responsible {
    background-color: rgba(45, 27, 105, 0.4);
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 32px;
    border: 1px solid rgba(124, 106, 154, 0.2);
}

.footer-warning {
    font-size: 0.8125rem;
    color: #a899c4;
    line-height: 1.5;
    margin-bottom: 0;
    max-width: none;
}

.footer-bottom {
    border-top: 1px solid rgba(124, 106, 154, 0.2);
    padding: 20px 0 32px;
    text-align: center;
}

.footer-copyright {
    font-size: 0.8125rem;
    color: #a899c4;
    margin-bottom: 8px;
    max-width: none;
}

.footer-disclaimer {
    font-size: 0.75rem;
    color: #9585b0;
    line-height: 1.5;
    max-width: 700px;
    margin: 0 auto;
}

/* ============================================
   SCROLL ANIMATIONS
   Elements reveal on scroll via IntersectionObserver
   ============================================ */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.4s ease-out, transform 0.4s ease-out;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered children delays */
.stagger-children > .animate-on-scroll:nth-child(1) { transition-delay: 0ms; }
.stagger-children > .animate-on-scroll:nth-child(2) { transition-delay: 100ms; }
.stagger-children > .animate-on-scroll:nth-child(3) { transition-delay: 200ms; }
.stagger-children > .animate-on-scroll:nth-child(4) { transition-delay: 300ms; }
.stagger-children > .animate-on-scroll:nth-child(5) { transition-delay: 400ms; }
.stagger-children > .animate-on-scroll:nth-child(6) { transition-delay: 500ms; }
.stagger-children > .animate-on-scroll:nth-child(7) { transition-delay: 600ms; }
.stagger-children > .animate-on-scroll:nth-child(8) { transition-delay: 700ms; }

/* Step sequential stagger */
.how-to-steps .how-to-step:nth-child(1) { transition-delay: 0ms; }
.how-to-steps .how-to-step:nth-child(2) { transition-delay: 150ms; }
.how-to-steps .how-to-step:nth-child(3) { transition-delay: 300ms; }
.how-to-steps .how-to-step:nth-child(4) { transition-delay: 450ms; }

/* ============================================
   MANGA PANEL DIVIDERS
   Orange speed-line section separators
   ============================================ */
.manga-divider {
    height: 2px;
    background: linear-gradient(
        to right,
        transparent,
        #ff6a00 20%,
        #ff6a00 80%,
        transparent
    );
    opacity: 0.4;
    margin: 0;
}

/* ============================================
   BREADCRUMB
   ============================================ */
.breadcrumb {
    padding: calc(72px + 16px) 24px 0;
    max-width: 1200px;
    margin: 0 auto;
}

.breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.breadcrumb__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.875rem;
    color: #a899c4;
}

.breadcrumb__link {
    color: #a899c4;
    text-decoration: none;
    transition: color 0.15s;
}

.breadcrumb__link:hover {
    color: #ff6a00;
}

.breadcrumb__sep {
    color: rgba(124, 106, 154, 0.4);
}

.breadcrumb__current {
    color: #f5f0ff;
}

/* ============================================
   FILTER TABS
   Horizontal tab navigation for game categories
   ============================================ */
.filter-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.filter-tabs::-webkit-scrollbar {
    display: none;
}

.filter-tabs:focus-visible {
    outline: 2px solid #ff6a00;
    outline-offset: 2px;
    border-radius: 4px;
}

.filter-tab {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 24px;
    font-family: "Bangers", cursive;
    font-size: 1rem;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    border: 2px solid transparent;
    min-height: 44px;
}

.filter-tab--inactive {
    background-color: rgba(45, 27, 105, 0.6);
    color: #a899c4;
    border-color: rgba(124, 106, 154, 0.25);
}

.filter-tab--inactive:hover {
    border-color: #ff6a00;
    color: #ff6a00;
}

.filter-tab--active {
    background-color: #ff6a00;
    color: #1a0a2e;
}

/* ============================================
   MISC UTILITIES
   ============================================ */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.text-center { text-align: center; }
.text-left { text-align: left; }

.mb-0 { margin-bottom: 0; }
.mb-8 { margin-bottom: 8px; }
.mb-16 { margin-bottom: 16px; }
.mb-24 { margin-bottom: 24px; }
.mb-32 { margin-bottom: 32px; }
.mb-48 { margin-bottom: 48px; }
.mb-64 { margin-bottom: 64px; }

.mt-48 { margin-top: 48px; }
.mt-64 { margin-top: 64px; }

.gap-16 { gap: 16px; }
.gap-24 { gap: 24px; }
.gap-32 { gap: 32px; }

.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

@media (min-width: 1024px) {
    .grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
    }
}

/* Orange number highlight in prose */
.num-orange {
    font-family: "Bangers", cursive;
    color: #ff6a00;
    font-size: 1.2em;
    letter-spacing: 0.04em;
}

/* ============================================
   THEME TOGGLE BUTTON
   ============================================ */
.theme-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 8px;
    background: rgba(255, 106, 0, 0.1);
    border: 1px solid rgba(255, 106, 0, 0.25);
    color: #ff6a00;
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s;
    flex-shrink: 0;
}

.theme-toggle:hover {
    background: rgba(255, 106, 0, 0.2);
    border-color: #ff6a00;
}

/* Show dark icon in dark mode, light icon in light mode */
html.dark .theme-toggle__icon--dark { display: block; }
html.dark .theme-toggle__icon--light { display: none; }
html.light .theme-toggle__icon--dark { display: none; }
html.light .theme-toggle__icon--light { display: block; }

/* Light theme overrides (for toggle completeness) */
html.light {
    --background: #f5f0ff;
    --foreground: #1a0a2e;
    --card: #ede8ff;
    --card-foreground: #1a0a2e;
    --muted: #c4b8e0;
    --muted-foreground: #4a3a6e;
    --border: #c4b8e0;
}

html.light body {
    background-color: var(--background);
    color: var(--foreground);
}

/* ============================================
   PAGE-SPECIFIC LAYOUTS
   ============================================ */

/* Coins + BMW two-column grid */
.index-coins-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    align-items: center;
}

@media (min-width: 1024px) {
    .index-coins-grid {
        grid-template-columns: 1fr 1fr;
        gap: 64px;
    }
}

.index-coins-text {
    min-width: 0;
}

.index-coins-img {
    display: flex;
    align-items: center;
    justify-content: center;
}

.index-coins-img img {
    max-height: 480px;
    width: auto;
    animation: mascotEntrance 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* Coins benefits list */
.coins-benefits {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.coins-benefits li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: "Nunito", sans-serif;
    font-size: 0.9375rem;
    color: #f5f0ff;
    line-height: 1.4;
    padding-left: 0;
}

.coins-benefits li::before {
    display: none;
}

/* BMW Teaser Layout */
.bmw-teaser {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    align-items: center;
    background-color: #2d1b69;
    border-radius: 16px;
    border: 2px solid rgba(255, 106, 0, 0.3);
    padding: 40px 32px;
    position: relative;
    overflow: hidden;
}

@media (min-width: 1024px) {
    .bmw-teaser {
        grid-template-columns: 1fr 1fr;
        gap: 48px;
    }
}

.bmw-teaser__content {
    min-width: 0;
}

.bmw-teaser__img {
    display: flex;
    align-items: center;
    justify-content: center;
}

.bmw-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bmw-list li {
    font-family: "Nunito", sans-serif;
    font-size: 0.9375rem;
    color: #f5f0ff;
    line-height: 1.4;
    padding-left: 0;
}

.bmw-list li::before {
    display: none;
}

/* ============================================
   FOCUS STYLES
   ============================================ */
/* Focus styles for accessibility */
:focus-visible {
    outline: 2px solid #ff6a00;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Main content top padding for fixed header */
#main-content {
    padding-top: 0;
}

/* Granny Coin hexagon shape */
.coin-hex {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    background-color: #ff6a00;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    font-family: "Bangers", cursive;
    font-size: 0.75rem;
    color: #1a0a2e;
}

/* ============================================
   DETAILS/SUMMARY EXPANDABLE BLOCKS
   ============================================ */
details.expand-block {
    background-color: #2d1b69;
    border-radius: 8px;
    margin-bottom: 12px;
    overflow: hidden;
}

details.expand-block summary {
    padding: 16px 20px;
    cursor: pointer;
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #f5f0ff;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 44px;
}

details.expand-block summary::-webkit-details-marker {
    display: none;
}

details.expand-block summary::after {
    content: "▾";
    color: #ff6a00;
    transition: transform 0.2s;
}

details.expand-block[open] summary::after {
    transform: rotate(180deg);
}

details.expand-block .expand-body {
    padding: 0 20px 16px;
    font-size: 0.9375rem;
    color: #a899c4;
    line-height: 1.6;
}

/* ============================================
   RESPONSIVE OVERFLOW GUARDS
   ============================================ */
[class*="grid"] > *,
[class*="flex"] > * {
    min-width: 0;
}

p, li, td, th {
    overflow-wrap: break-word;
}

pre, code {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
}

input, textarea, select {
    max-width: 100%;
}

/* ============================================
   MAIN CONTENT OFFSET FOR FIXED HEADER
   ============================================ */
.page-with-hero #main-content {
    padding-top: 0;
}

/* Pages without hero need top padding for header */
.page-no-hero #main-content,
body:not(.page-with-hero) > #main-content > :first-child:not(.hero) {
    margin-top: 72px;
}

/* ============================================
   FREISPIELE PAGE - SUBSCRIPTION TEXT COLORS
   Accessible muted text on dark background
   ============================================ */
.fs-subscription-desc {
    color: #a899c4;
    margin-bottom: 24px;
}

.fs-subscription-note {
    color: #a899c4;
    font-size: 0.875rem;
    margin-top: 16px;
}

/* ============================================
   LIVE CASINO PAGE - SPECIFIC FIXES
   ============================================ */

/* Mobile section description - accessible contrast on #1a0a2e */
.live-mobile-desc {
    color: #a899c4;
    margin-bottom: 24px;
}

/* VIP link in muted text - distinguishable by underline + color */
.live-vip-link {
    color: #ff6a00;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.live-vip-link:hover {
    color: #ff8533;
}

/* ============================================
   SLOTS PAGE - BINGO SECTION TEXT
   Accessible muted text on #1a0a2e background
   #a899c4 on #1a0a2e = 4.55:1 - passes WCAG AA
   ============================================ */
.slots-bingo-desc {
    color: #a899c4;
    margin-bottom: 24px;
}