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

        :root {
            --fucsia: #ff007f;
            --fucsia-glow: rgba(255, 0, 127, 0.6);
            --gold: #ffd700;
            --gold-glow: rgba(255, 215, 0, 0.5);
            --purple-deep: #0a0214;
            --purple-mid: #1a0535;
            --purple-light: #2d0a5c;
            --lavender: #c4b5fd;
            --white: #ffffff;
            --font-display: 'Playfair Display', serif;
            /* New primary display font */
            --font-technical: 'Space Mono', monospace;
            /* New technical font */
            --font-medieval: 'MedievalSharp', cursive;
            --font-body: 'Inter', sans-serif;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            background: var(--purple-deep);
            color: var(--white);
            font-family: var(--font-body);
            overflow-x: hidden;
            position: relative;
        }

        /* Overlay de Grano de Película */
        body::after {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9999;
            opacity: 0.04;
            background-image: url("https://grainy-gradients.vercel.app/noise.svg");
            filter: contrast(150%) brightness(100%);
        }

        /* ==================== PARTICLES ==================== */
        #particles {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
        }

        .desktop-only {
            display: block;
        }

        .mobile-only {
            display: none;
        }

        @media (max-width: 1024px) {
            .desktop-only {
                display: none;
            }

            .mobile-only {
                display: block;
            }
        }

        .particle {
            position: absolute;
            border-radius: 50%;
            animation: twinkle var(--dur, 4s) ease-in-out infinite;
            animation-delay: var(--delay, 0s);
        }

        @keyframes twinkle {

            0%,
            100% {
                opacity: 0;
                transform: scale(0.5);
            }

            50% {
                opacity: 1;
                transform: scale(1.2);
            }
        }

        /* ==================== BACKGROUND GLOW ==================== */
        .bg-glow {
            position: fixed;
            border-radius: 50%;
            filter: blur(120px);
            pointer-events: none;
            z-index: 0;
        }

        .bg-glow--pink {
            background: rgba(255, 0, 127, 0.18);
            width: 700px;
            height: 700px;
            top: -200px;
            left: -200px;
            animation: drift1 12s ease-in-out infinite;
        }

        .bg-glow--purple {
            background: rgba(130, 0, 255, 0.15);
            width: 600px;
            height: 600px;
            bottom: -150px;
            right: -150px;
            animation: drift2 15s ease-in-out infinite;
        }

        .bg-glow--gold {
            background: rgba(255, 215, 0, 0.07);
            width: 400px;
            height: 400px;
            top: 40%;
            left: 50%;
            transform: translate(-50%, -50%);
            animation: drift3 10s ease-in-out infinite;
        }

        @keyframes drift1 {

            0%,
            100% {
                transform: translate(0, 0)
            }

            50% {
                transform: translate(60px, 40px)
            }
        }

        @keyframes drift2 {

            0%,
            100% {
                transform: translate(0, 0)
            }

            50% {
                transform: translate(-50px, -30px)
            }
        }

        @keyframes drift3 {

            0%,
            100% {
                transform: translate(-50%, -50%)
            }

            50% {
                transform: translate(-45%, -55%)
            }
        }

        /* ==================== SECTIONS ==================== */
        section {
            position: relative;
            z-index: 1;
        }

        /* ==================== TAROT FRAME ==================== */
        .tarot-frame {
            position: fixed;
            inset: 0;
            z-index: 2000;
            pointer-events: none;
            box-shadow: inset 0 0 150px rgba(0, 0, 0, 1), inset 0 0 40px rgba(255, 0, 127, 0.15);
        }

        /* Marcas ornamentales más detalladas en las esquinas */
        .tarot-corner {
            position: absolute;
            width: 80px;
            height: 80px;
            z-index: 2001;
            opacity: 0.8;
            filter: drop-shadow(0 0 15px var(--gold-glow));
        }

        .tarot-corner::before,
        .tarot-corner::after {
            content: '';
            position: absolute;
            background: var(--gold);
        }

        .corner-tl {
            top: 0;
            left: 0;
        }

        .corner-tl::before {
            width: 100%;
            height: 3px;
            top: 0;
            left: 0;
        }

        .corner-tl::after {
            width: 3px;
            height: 100%;
            top: 0;
            left: 0;
        }

        .corner-tr {
            top: 0;
            right: 0;
        }

        .corner-tr::before {
            width: 100%;
            height: 3px;
            top: 0;
            right: 0;
        }

        .corner-tr::after {
            width: 3px;
            height: 100%;
            top: 0;
            right: 0;
        }

        .corner-bl {
            bottom: 0;
            left: 0;
        }

        .corner-bl::before {
            width: 100%;
            height: 3px;
            bottom: 0;
            left: 0;
        }

        .corner-bl::after {
            width: 3px;
            height: 100%;
            bottom: 0;
            left: 0;
        }

        .corner-br {
            bottom: 0;
            right: 0;
        }

        .corner-br::before {
            width: 100%;
            height: 3px;
            bottom: 0;
            right: 0;
        }

        .corner-br::after {
            width: 3px;
            height: 100%;
            bottom: 0;
            right: 0;
        }

        /* ==================== HEADER PERSISTENTE ==================== */
        header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 250px;
            z-index: 1500;
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            padding: 1.5rem 4rem 0;
            background: linear-gradient(to bottom, rgba(10, 2, 20, 0.95) 0%, rgba(10, 2, 20, 0.4) 60%, transparent 100%);
            backdrop-filter: none;
            transition: all 0.3s ease;
        }

        .header-logo {
            height: 220px;
            transition: transform 0.3s ease;
            cursor: pointer;
            grid-column: 2;
            filter: drop-shadow(0 0 15px rgba(255, 215, 0, 0.3));
        }

        .header-logo:hover {
            transform: scale(1.05);
        }

        .nav-links {
            display: flex;
            gap: 1.5rem;
            align-items: center;
            grid-column: 1;
        }

        .nav-links a {
            color: rgba(255, 255, 255, 0.7);
            text-decoration: none;
            font-family: var(--font-medieval);
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.15em;
            transition: color 0.3s;
        }

        .nav-links a:hover {
            color: var(--gold);
        }

        .header-actions {
            grid-column: 3;
            display: flex;
            justify-content: flex-end;
            gap: 1rem;
        }

        /* ==================== HERO ==================== */
        .hero {
            min-height: 100vh;
            display: grid;
            grid-template-columns: 1fr 1fr;
            align-items: center;
            padding: 2rem 6rem;
            gap: 4rem;
            position: relative;
            overflow: hidden;
            background: var(--purple-deep);
        }

        .hero-background-wrap {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
        }

        .hero-draq-master {
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: 0.4;
            filter: brightness(0.5) contrast(1.1);
            mask-image: radial-gradient(circle at 60% 50%, transparent 10%, black 70%);
            -webkit-mask-image: radial-gradient(circle at 60% 50%, transparent 10%, black 70%);
        }

        .hero-content {
            position: relative;
            z-index: 10;
            text-align: left;
            max-width: 700px;
        }

        .hero-visual-wrap {
            position: relative;
            z-index: 5;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .hero-draq-float {
            max-width: 100%;
            max-height: 85vh;
            filter: drop-shadow(0 0 30px var(--fucsia-glow));
            animation: float-draq 12s ease-in-out infinite;
            mask-image: linear-gradient(to bottom, black 85%, transparent 100%),
                linear-gradient(to top, black 85%, transparent 100%),
                linear-gradient(to left, black 85%, transparent 100%),
                linear-gradient(to right, black 85%, transparent 100%);
            -webkit-mask-image: linear-gradient(to bottom, black 85%, transparent 100%),
                linear-gradient(to top, black 85%, transparent 100%),
                linear-gradient(to left, black 85%, transparent 100%),
                linear-gradient(to right, black 85%, transparent 100%);
            -webkit-mask-composite: source-in;
            mask-composite: intersect;
        }

        @keyframes float-draq {

            0%,
            100% {
                transform: translateY(0) rotate(0);
            }

            50% {
                transform: translateY(-30px) rotate(2deg);
            }
        }

        .hero-logo-main {
            display: none;
            /* Persistent in header now */
        }

        .hero-headline {
            font-family: var(--font-display);
            font-size: clamp(2.2rem, 8vw, 5rem);
            line-height: 0.95;
            font-weight: 900;
            margin-bottom: 2.5rem;
            color: var(--white);
            letter-spacing: -0.04em;
            font-style: italic;
            text-transform: uppercase;
        }

        .hero-headline .accent-fucsia {
            color: var(--fucsia);
            text-shadow: 0 0 20px var(--fucsia-glow);
        }

        .hero-headline .accent-gold {
            color: var(--gold);
            text-shadow: 0 0 20px var(--gold-glow);
        }

        .hero-sub {
            font-family: var(--font-technical);
            font-size: clamp(0.9rem, 2vw, 1.1rem);
            color: var(--fucsia);
            opacity: 0.8;
            margin-bottom: 3rem;
            line-height: 1.6;
            letter-spacing: 0.05em;
            max-width: 500px;
        }

        .hero-ctas {
            display: flex;
            gap: 1.5rem;
            justify-content: flex-start;
        }

        .hero-headline br {
            display: block;
        }

        .accent-white {
            color: var(--white);
        }

        .hero-ctas {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
            justify-content: center;
        }

        /* ==================== BUTTONS ==================== */
        .btn-primary {
            background: linear-gradient(135deg, var(--fucsia), #cc0066);
            color: #fff;
            border: none;
            padding: 1.2rem 3rem;
            /* Thumb-friendly */
            border-radius: 9999px;
            font-family: var(--font-display);
            font-size: 1rem;
            font-weight: 800;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            cursor: pointer;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
            box-shadow: 0 0 30px var(--fucsia-glow), 0 4px 15px rgba(0, 0, 0, 0.4);
            transition: all 0.3s ease;
            min-width: 260px;
            /* Better for thumbs */
        }

        .btn-primary::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
            transform: translateX(-100%);
            transition: transform 0.6s ease;
        }

        .btn-primary:hover::before {
            transform: translateX(100%);
        }

        @keyframes pulse-glow {

            0%,
            100% {
                box-shadow: 0 0 30px var(--fucsia-glow), 0 4px 15px rgba(0, 0, 0, 0.4);
            }

            50% {
                box-shadow: 0 0 55px var(--fucsia-glow), 0 0 90px rgba(255, 0, 127, 0.25), 0 4px 15px rgba(0, 0, 0, 0.4);
            }
        }

        .hero-ctas .btn-primary,
        .cta-section .btn-primary {
            animation: pulse-glow 2.5s ease-in-out infinite;
        }

        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 0 50px var(--fucsia-glow), 0 8px 25px rgba(0, 0, 0, 0.5);
        }

        .btn-outline {
            background: transparent;
            color: var(--gold);
            border: 2px solid var(--gold);
            padding: 1rem 2.5rem;
            border-radius: 9999px;
            font-family: var(--font-display);
            font-size: 0.9rem;
            font-weight: 700;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            transition: all 0.3s ease;
            box-shadow: 0 0 15px var(--gold-glow);
        }

        .btn-outline:hover {
            background: rgba(255, 215, 0, 0.1);
            box-shadow: 0 0 30px var(--gold-glow);
            transform: translateY(-2px);
        }

        .btn-sm {
            padding: 0.8rem 1.8rem;
            font-size: 0.9rem;
        }

        /* ==================== HERO ILLUSTRATION ==================== */
        .hero-visual {
            position: relative;
            display: flex;
            justify-content: center;
            align-items: flex-end;
            padding-top: 5rem;
            min-height: 70vh;
        }

        .hero-visual-glow {
            position: absolute;
            width: 500px;
            height: 500px;
            background: radial-gradient(ellipse, rgba(255, 0, 127, 0.3) 0%, rgba(130, 0, 255, 0.2) 50%, transparent 70%);
            border-radius: 50%;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            animation: pulseGlow 4s ease-in-out infinite;
        }

        @keyframes pulseGlow {

            0%,
            100% {
                transform: translate(-50%, -50%) scale(1);
                opacity: 0.8;
            }

            50% {
                transform: translate(-50%, -50%) scale(1.15);
                opacity: 1;
            }
        }

        .hero-draq {
            position: relative;
            z-index: 2;
            max-height: 80vh;
            max-width: 100%;
            object-fit: contain;
            filter: drop-shadow(0 0 30px rgba(255, 0, 127, 0.6));
            animation: floatDraq 6s ease-in-out infinite;
            /* Suavizado de bordes inferiores y laterales para disimular el corte */
            -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 98%),
                linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
            mask-image: linear-gradient(to bottom, black 80%, transparent 98%),
                linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
            -webkit-mask-composite: source-in;
            mask-composite: intersect;
        }

        @keyframes floatDraq {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-18px);
            }
        }

        /* ==================== SCROLL HINT ==================== */
        .scroll-hint {
            position: absolute;
            bottom: 2rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.5rem;
            opacity: 0.5;
            animation: fadeUpDown 2s ease-in-out infinite;
            z-index: 10;
        }

        .scroll-hint span {
            font-size: 0.7rem;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--lavender);
        }

        @keyframes fadeUpDown {

            0%,
            100% {
                transform: translateX(-50%) translateY(0);
                opacity: 0.5;
            }

            50% {
                transform: translateX(-50%) translateY(8px);
                opacity: 0.9;
            }
        }

        /* ==================== SECTION HEADER ==================== */
        .section-header {
            text-align: center;
            margin-bottom: 4rem;
        }

        .section-eyebrow {
            font-family: var(--font-display);
            font-size: 0.75rem;
            letter-spacing: 0.5em;
            text-transform: uppercase;
            color: var(--fucsia);
            display: block;
            margin-bottom: 1rem;
            text-shadow: 0 0 10px var(--fucsia-glow);
        }

        .section-title {
            font-family: var(--font-display);
            font-size: clamp(2rem, 3.5vw, 3rem);
            font-weight: 900;
            line-height: 1.2;
        }

        .section-sub {
            color: var(--lavender);
            margin-top: 1rem;
            font-size: 1rem;
            opacity: 0.8;
        }

        /* ==================== DIVIDER ==================== */
        .divider {
            width: 100%;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--fucsia), var(--gold), var(--fucsia), transparent);
            margin: 0;
            opacity: 0.4;
        }

        /* ==================== SYSTEM SECTION ==================== */
        .system-section {
            padding: 7rem 4rem;
            background: linear-gradient(180deg, transparent 0%, rgba(130, 0, 255, 0.06) 50%, transparent 100%);
        }

        .system-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
            max-width: 1100px;
            margin: 0 auto;
        }

        .system-card {
            position: relative;
            background: transparent;
            border-radius: 2px;
            padding: 2.5rem 2rem;
            text-align: center;
            transition: all 0.4s ease;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            z-index: 1;
        }

        .system-card::before,
        .system-card::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 2px;
            background: linear-gradient(315deg, var(--fucsia), #00d2ff);
            opacity: 0.3;
            transition: 0.5s;
            z-index: -2;
        }

        .system-card::after {
            filter: blur(20px);
            z-index: -3;
            opacity: 0.5;
            /* Brillo visible siempre pero suave */
        }

        .system-card b {
            position: absolute;
            inset: 2px;
            background: #0f0b1a;
            /* Fondo muy oscuro para el contraste */
            border-radius: 0;
            z-index: -1;
            opacity: 1;
        }

        .system-card:hover {
            transform: translateY(-8px);
        }

        .system-card:hover::before {
            opacity: 1;
            background: linear-gradient(315deg, var(--fucsia), #00d2ff);
        }

        .system-card:hover::after {
            opacity: 0.9;
            filter: blur(35px);
        }

        .system-icon,
        .system-card-title,
        .system-card-text {
            position: relative;
            z-index: 10;
        }

        .system-icon {
            width: 220px;
            height: 220px;
            margin-bottom: 1.5rem;
            display: inline-block;
            object-fit: contain;
            filter: drop-shadow(0 0 25px var(--fucsia-glow));
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .system-card:hover .system-icon {
            transform: scale(1.08) rotate(2deg);
            filter: drop-shadow(0 0 40px var(--fucsia-glow));
        }

        .system-card-title {
            font-family: var(--font-display);
            font-size: 1.4rem;
            /* Aumentado de 1.1rem */
            color: var(--gold);
            margin-bottom: 0.8rem;
            letter-spacing: 0.05em;
        }

        .system-card-text {
            color: var(--lavender);
            font-size: 1.05rem;
            /* Aumentado de 0.9rem */
            line-height: 1.7;
            opacity: 0.85;
        }

        /* ==================== CLASSES SECTION ==================== */
        .classes-section {
            padding: 7rem 4rem;
        }

        .classes-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
            max-width: 1300px;
            margin: 0 auto;
        }

        .class-card {
            background: transparent;
            border-radius: 2px;
            overflow: visible;
            position: relative;
            cursor: pointer;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 1;
        }

        .class-card:nth-child(1) {
            --card-color: #ff007f;
        }

        .class-card:nth-child(2) {
            --card-color: #ffd700;
        }

        .class-card:nth-child(3) {
            --card-color: #ff69b4;
        }

        .class-card:nth-child(4) {
            --card-color: #9b59b6;
        }

        .class-card:nth-child(5) {
            --card-color: #4169e1;
        }

        .class-card:nth-child(6) {
            --card-color: #20b2aa;
        }

        .class-card::before,
        .class-card::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 2px;
            background: linear-gradient(315deg, var(--card-color), #00d2ff);
            opacity: 0.3;
            transition: 0.5s;
            z-index: -2;
        }

        .class-card::after {
            filter: blur(20px);
            z-index: -3;
            opacity: 0.4;
        }

        .class-card b {
            position: absolute;
            inset: 2px;
            background: #0f0b1a;
            border-radius: 0;
            z-index: -1;
            opacity: 1;
        }

        .class-card:hover {
            transform: translateY(-10px) scale(1.02);
        }

        .class-card:hover::before {
            opacity: 1;
        }

        .class-card:hover::after {
            opacity: 0.8;
            filter: blur(35px);
        }

        .class-img-wrap {
            position: relative;
            height: 280px;
            overflow: hidden;
            display: flex;
            align-items: center;
            /* Volvemos a center para que respiren arriba y abajo */
            justify-content: center;
            background: rgba(0, 0, 0, 0.2);
            /* Un fondo oscuro suave para que destaque el glow */
        }

        .class-img-glow {
            position: absolute;
            inset: 0;
            background: radial-gradient(circle at center, color-mix(in srgb, var(--card-color) 40%, transparent) 0%, transparent 60%);
            pointer-events: none;
        }

        .class-img {
            max-height: 95%;
            /* Que ocupe casi todo pero respire */
            max-width: 95%;
            object-fit: contain;
            position: relative;
            z-index: 1;
            transition: transform 0.4s ease;
            filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.5));
        }

        .class-card:hover .class-img {
            transform: scale(1.08) translateY(-5px);
        }

        /* ==================== CLASS MODAL ==================== */
        .class-modal-box {
            max-width: 500px;
            padding: 0;
            overflow: hidden;
            border-radius: 2rem;
        }

        .class-modal-content {
            display: flex;
            flex-direction: column;
        }

        .class-modal-img-wrap {
            height: 280px;
            background: rgba(0, 0, 0, 0.3);
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            /* Centrar la imagen en la ventana */
            border-bottom: 1px solid rgba(255, 255, 255, 0.05);
            overflow: hidden;
        }

        .class-modal-glow {
            position: absolute;
            inset: 0;
            background: radial-gradient(circle at center, var(--card-color, rgba(255, 0, 127, 0.4)) 0%, transparent 60%);
            /* Ajustado a circle center */
            opacity: 0.4;
        }

        .class-modal-img {
            max-height: 95%;
            /* Que ocupe casi todo sin salirse */
            max-width: 95%;
            object-fit: contain;
            filter: drop-shadow(0 -5px 25px rgba(0, 0, 0, 0.8));
            position: relative;
            z-index: 1;
        }

        .class-modal-text {
            padding: 2.5rem;
            text-align: center;
        }

        .class-modal-title {
            font-family: var(--font-display);
            font-size: 2.2rem;
            color: #fff;
            margin-bottom: 0.5rem;
            text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
        }

        .class-modal-flavor {
            font-style: italic;
            color: rgba(255, 255, 255, 0.5);
            margin-bottom: 1.5rem;
            font-size: 1.05rem;
        }

        .class-modal-desc {
            color: var(--lavender);
            line-height: 1.7;
            font-size: 0.95rem;
        }

        .class-info {
            padding: 1.25rem;
            position: relative;
            z-index: 1;
            text-align: center;
        }

        .class-name {
            font-family: var(--font-display);
            font-size: 1.25rem;
            /* Aumentado de 0.95rem */
            font-weight: 900;
            letter-spacing: 0.1em;
            color: var(--card-color);
            text-shadow: 0 0 15px color-mix(in srgb, var(--card-color) 60%, transparent);
            margin-bottom: 0.6rem;
        }

        .class-flavor {
            font-size: 0.85rem;
            /* Aumentado de 0.78rem */
            color: var(--lavender);
            line-height: 1.5;
            opacity: 0.8;
            font-style: italic;
        }

        /* ==================== LORE SECTION ==================== */
        .lore-section {
            padding: 7rem 4rem;
            background: linear-gradient(180deg, transparent, rgba(255, 0, 127, 0.04), transparent);
        }

        .lore-inner {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr 1.3fr;
            gap: 6rem;
            align-items: flex-start;
        }

        .lore-logo-wrap {
            display: flex;
            justify-content: center;
            align-items: center;
            position: sticky;
            top: 280px;
        }

        .lore-logo {
            width: 100%;
            max-width: 500px;
            filter: drop-shadow(0 0 40px rgba(255, 215, 0, 0.5)) drop-shadow(0 0 80px rgba(255, 0, 127, 0.3));
            animation: floatDraq 8s ease-in-out infinite;
        }

        .lore-logo-bg {
            position: absolute;
            width: 550px;
            height: 550px;
            background: radial-gradient(ellipse, rgba(255, 0, 127, 0.15) 0%, rgba(130, 0, 255, 0.12) 40%, transparent 70%);
            border-radius: 50%;
            animation: pulseGlow 5s ease-in-out infinite;
        }

        .lore-text h2 {
            font-family: var(--font-display);
            font-size: clamp(2rem, 3.5vw, 3.5rem);
            font-weight: 900;
            line-height: 1.1;
            margin-bottom: 2rem;
        }

        .lore-text p {
            color: var(--lavender);
            line-height: 1.8;
            font-size: 1.1rem;
            margin-bottom: 2rem;
            opacity: 0.95;
            position: relative;
        }

        /* Estilo Crónica: Letras Capitales */
        .lore-text p:first-of-type::first-letter {
            font-family: var(--font-display);
            font-size: 4rem;
            float: left;
            margin-right: 0.75rem;
            line-height: 1;
            color: var(--gold);
            text-shadow: 0 0 15px var(--gold-glow);
            font-weight: 900;
        }

        .lore-inner ul {
            list-style: none;
            margin-top: 2rem;
        }

        .lore-inner li {
            position: relative;
            padding-left: 2rem;
            margin-bottom: 1.5rem;
            color: var(--lavender);
            font-style: italic;
        }

        .lore-inner li::before {
            content: '✦';
            position: absolute;
            left: 0;
            color: var(--fucsia);
            text-shadow: 0 0 8px var(--fucsia-glow);
        }

        @media (max-width: 1024px) {
            .lore-section {
                padding: 4rem 1.5rem;
            }

            .lore-inner {
                grid-template-columns: 1fr;
                gap: 3rem;
            }

            .lore-logo-wrap {
                position: relative;
                top: 0;
            }

            .lore-logo {
                max-width: 320px;
                margin-bottom: 1rem;
            }

            .lore-text h2 {
                text-align: center;
                margin-bottom: 2.5rem;
            }

            .lore-text p {
                font-size: 1rem;
                line-height: 1.7;
                text-align: justify;
                hyphens: auto;
            }

            /* Letra capital en móvil un poco más contenida */
            .lore-text p:first-of-type::first-letter {
                font-size: 3.5rem;
            }
        }

        .lore-inner ul {
            list-style: none;
            margin-top: 2rem;
        }

        .lore-inner li {
            position: relative;
            padding-left: 2rem;
            margin-bottom: 1.5rem;
            color: var(--lavender);
            font-style: italic;
        }

        .lore-inner li::before {
            content: '✦';
            position: absolute;
            left: 0;
            color: var(--fucsia);
            text-shadow: 0 0 8px var(--fucsia-glow);
        }

        @media (max-width: 1024px) {
            .lore-section {
                padding: 4rem 1.5rem;
            }

            .lore-inner {
                grid-template-columns: 1fr;
                gap: 3rem;
            }

            .lore-logo-wrap {
                position: relative;
                top: 0;
            }

            .lore-logo {
                max-width: 320px;
                margin-bottom: 1rem;
            }

            .lore-text h2 {
                text-align: center;
                margin-bottom: 2.5rem;
            }

            .lore-text p {
                font-size: 1rem;
                line-height: 1.7;
                text-align: justify;
                hyphens: auto;
            }

            /* Letra capital en móvil un poco más contenida */
            .lore-text p:first-of-type::first-letter {
                font-size: 3.5rem;
            }
        }

        /* Collapsible lore en móvil */
        .lore-collapse {
            display: block;
        }

        /* ── LORE TABS (estilo separadores de archivador) ── */
        .lore-tabs {
            display: flex;
            gap: 0;
            margin-bottom: 0;
            align-items: flex-end;
            width: 100%;
        }

        .lore-tab {
            position: relative;
            flex: 1;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,215,0,0.2);
            border-bottom: none;
            border-radius: 10px 10px 0 0;
            padding: 0.85rem 0.5rem 0.9rem;
            color: rgba(255,255,255,0.5);
            font-family: var(--font-display);
            font-size: 1rem;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.2s;
            margin-right: 4px;
            bottom: 0;
            text-align: center;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            min-width: 0;
        }

        @media (max-width: 640px) {
            .lore-tab {
                font-size: 0.65rem;
                padding: 0.7rem 0.3rem 0.75rem;
                letter-spacing: 0.02em;
            }
            .lore-tab.active {
                padding-top: 0.85rem;
            }
        }

        .lore-tab:last-child {
            margin-right: 0;
        }

        .lore-tab:hover {
            background: rgba(255,255,255,0.08);
            color: rgba(255,255,255,0.85);
        }

        .lore-tab.active {
            background: rgba(20, 0, 40, 0.85);
            border-color: rgba(255,0,127,0.5);
            border-bottom: 1px solid rgba(20, 0, 40, 0.85);
            color: #fff;
            padding-top: 1rem;
            z-index: 1;
            bottom: -1px;
        }

        .lore-panels-wrap {
            border: 1px solid rgba(255,0,127,0.3);
            border-radius: 0 0 12px 12px;
            padding: 1.6rem 1.4rem 1.2rem;
            background: rgba(20, 0, 40, 0.55);
            position: relative;
        }

        /* ── LORE FEATURES (panel ¿qué es?) ── */
        .lore-features {
            display: flex;
            flex-direction: column;
            gap: 0.85rem;
            margin-top: 1rem;
        }

        .lore-feature {
            display: flex;
            align-items: center;
            gap: 1rem;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,215,0,0.15);
            border-radius: 12px;
            padding: 0.65rem 1rem;
        }

        .lore-feature-img {
            width: 48px;
            height: 48px;
            object-fit: contain;
            flex-shrink: 0;
            filter: drop-shadow(0 0 6px rgba(255,0,127,0.3));
        }

        .lore-feature-title {
            font-weight: 700;
            font-size: 0.9rem;
            color: #ffd700;
            margin-bottom: 0.15rem;
        }

        .lore-feature-desc {
            font-size: 0.8rem;
            color: rgba(255,255,255,0.55);
            line-height: 1.4;
        }

        .lore-expand-btn {
            display: none;
        }

        @media (max-width: 1024px) {
            .lore-collapse {
                display: none;
            }

            .lore-collapse.expanded {
                display: block;
            }

            .lore-expand-btn {
                display: inline-flex;
                align-items: center;
                gap: 0.5rem;
                cursor: pointer;
                font-family: var(--font-display);
                font-size: 0.85rem;
                letter-spacing: 0.08em;
                text-transform: uppercase;
                color: var(--gold);
                border: 1px solid rgba(255, 215, 0, 0.3);
                border-radius: 2rem;
                padding: 0.5rem 1.2rem;
                margin: 0.5rem 0 1rem;
                background: rgba(255, 215, 0, 0.05);
                transition: background 0.2s, border-color 0.2s;
            }

            .lore-expand-btn:hover {
                background: rgba(255, 215, 0, 0.12);
                border-color: rgba(255, 215, 0, 0.6);
            }

            .lore-expand-btn.expanded {
                color: var(--fucsia);
                border-color: rgba(255, 0, 127, 0.4);
            }
        }

        .lore-facts {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1rem;
            margin-top: 2rem;
        }

        .lore-fact {
            position: relative;
            background: transparent;
            border-radius: 2px;
            padding: 1rem 1.25rem;
            z-index: 1;
            transition: all 0.3s ease;
        }

        .lore-fact::before,
        .lore-fact::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 2px;
            background: linear-gradient(315deg, var(--gold), #00d2ff);
            opacity: 0.15;
            transition: 0.3s;
            z-index: -2;
        }

        .lore-fact b {
            position: absolute;
            inset: 1px;
            background: #0f0b1a;
            border-radius: 0;
            z-index: -1;
            opacity: 1;
        }

        .lore-fact:hover {
            transform: translateY(-3px);
        }

        .lore-fact:hover::before {
            opacity: 0.8;
        }

        .lore-fact:hover::after {
            opacity: 0.4;
            filter: blur(15px);
        }

        .lore-fact::after {
            filter: blur(10px);
            z-index: -3;
            opacity: 0.1;
        }

        .lore-fact-label,
        .lore-fact-value {
            position: relative;
            z-index: 10;
        }

        .lore-fact-label {
            font-family: var(--font-display);
            font-size: 0.65rem;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--fucsia);
            margin-bottom: 0.25rem;
        }

        .lore-fact-value {
            font-size: 0.9rem;
            color: var(--gold);
            font-weight: 600;
        }

        /* ==================== SESSION DEMO ==================== */
        .demo-section {
            padding: 7rem 4rem;
            background: linear-gradient(180deg, transparent, rgba(130, 0, 255, 0.06), transparent);
        }

        .demo-inner {
            max-width: 900px;
            margin: 0 auto;
        }

        .demo-chat {
            background: rgba(10, 2, 20, 0.8);
            border: 1px solid rgba(255, 0, 127, 0.25);
            border-radius: 1.5rem;
            overflow: hidden;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(255, 0, 127, 0.08);
        }

        .demo-chat-header {
            background: rgba(255, 0, 127, 0.08);
            border-bottom: 1px solid rgba(255, 0, 127, 0.2);
            padding: 1rem 1.5rem;
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .demo-chat-title {
            font-family: var(--font-display);
            font-size: 0.85rem;
            color: var(--gold);
            letter-spacing: 0.1em;
        }

        .demo-chat-dot {
            width: 8px;
            height: 8px;
            background: #00ffaa;
            border-radius: 50%;
            box-shadow: 0 0 8px #00ffaa;
            animation: blink 2s ease-in-out infinite;
        }

        @keyframes blink {

            0%,
            100% {
                opacity: 1
            }

            50% {
                opacity: 0.3
            }
        }

        .demo-messages {
            padding: 2rem;
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .demo-msg {
            display: flex;
            gap: 1rem;
            align-items: flex-start;
        }

        .demo-msg--gm {
            opacity: 1;
        }

        .demo-msg--player {
            flex-direction: row-reverse;
        }

        .demo-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            flex-shrink: 0;
        }

        .demo-avatar--gm {
            background: linear-gradient(135deg, rgba(255, 0, 127, 0.3), rgba(130, 0, 255, 0.3));
            border: 1px solid rgba(255, 0, 127, 0.4);
        }

        .demo-avatar--player {
            background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 150, 0, 0.2));
            border: 1px solid rgba(255, 215, 0, 0.3);
        }

        .demo-bubble {
            max-width: 75%;
            padding: 1rem 1.25rem;
            border-radius: 1rem;
            font-size: 0.9rem;
            line-height: 1.7;
        }

        .demo-bubble--gm {
            background: rgba(255, 0, 127, 0.07);
            border: 1px solid rgba(255, 0, 127, 0.2);
            color: var(--lavender);
            border-top-left-radius: 0;
        }

        .demo-bubble--player {
            background: rgba(255, 215, 0, 0.07);
            border: 1px solid rgba(255, 215, 0, 0.2);
            color: rgba(255, 255, 255, 0.9);
            text-align: right;
            border-top-right-radius: 0;
        }

        .demo-bubble strong {
            color: var(--gold);
        }

        .demo-bubble em {
            color: rgba(255, 0, 127, 0.9);
            font-style: italic;
        }

        .demo-dice {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            background: rgba(255, 215, 0, 0.15);
            border: 1px solid rgba(255, 215, 0, 0.4);
            border-radius: 0.5rem;
            padding: 0.2rem 0.6rem;
            font-size: 0.8rem;
            color: var(--gold);
            font-weight: 700;
            margin-top: 0.5rem;
        }

        /* ==================== MAP SECTION ==================== */
        .map-section {
            padding: 7rem 4rem;
        }

        .map-inner {
            max-width: 1000px;
            margin: 0 auto;
        }

        .map-img-wrap {
            border-radius: 2rem;
            overflow: hidden;
            border: 2px solid rgba(255, 0, 127, 0.3);
            box-shadow: 0 0 60px rgba(255, 0, 127, 0.2), 0 0 120px rgba(130, 0, 255, 0.15), 0 30px 60px rgba(0, 0, 0, 0.5);
            position: relative;
            transition: all 0.4s ease;
        }

        .map-img-wrap:hover {
            box-shadow: 0 0 80px rgba(255, 0, 127, 0.35), 0 0 150px rgba(130, 0, 255, 0.2), 0 30px 60px rgba(0, 0, 0, 0.5);
            transform: scale(1.01);
        }

        .map-img {
            width: 100%;
            display: block;
        }

        .map-caption {
            text-align: center;
            margin-top: 2.5rem;
            color: var(--lavender);
            font-size: 1.35rem;
            line-height: 1.6;
            max-width: 900px;
            margin-left: auto;
            margin-right: auto;
            font-family: var(--font-display);
            text-shadow: 0 0 15px rgba(255, 0, 127, 0.3);
            font-style: italic;
        }

        /* ==================== LIGHTBOX MODAL ==================== */
        .lightbox-modal {
            display: none;
            position: fixed;
            z-index: 11000;
            inset: 0;
            background: rgba(10, 2, 20, 0.95);
            backdrop-filter: blur(10px);
            padding: 2rem;
            justify-content: center;
            align-items: center;
            cursor: zoom-out;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .lightbox-modal.active {
            display: flex;
            opacity: 1;
        }

        .lightbox-content {
            max-width: 95vw;
            max-height: 90vh;
            border-radius: 1rem;
            box-shadow: 0 0 60px rgba(255, 0, 127, 0.4);
            transform: scale(0.9);
            transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            object-fit: contain;
        }

        .lightbox-modal.active .lightbox-content {
            transform: scale(1);
        }

        .lightbox-close {
            position: absolute;
            top: 2rem;
            right: 2rem;
            background: rgba(255, 0, 127, 0.2);
            border: 1px solid var(--fucsia);
            color: #fff;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .lightbox-close:hover {
            background: var(--fucsia);
            transform: scale(1.1);
        }

        /* Indicador de que la imagen es clicable */
        .lore-logo,
        .map-img {
            cursor: zoom-in;
            transition: transform 0.3s ease;
        }

        .lore-logo:hover,
        .map-img:hover {
            transform: scale(1.02);
        }

        /* ==================== CTA SECTION ==================== */
        .cta-section {
            padding: 7rem 4rem;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .cta-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(ellipse at 50% 0%, rgba(255, 0, 127, 0.15) 0%, transparent 60%),
                radial-gradient(ellipse at 50% 100%, rgba(130, 0, 255, 0.12) 0%, transparent 60%);
        }

        .cta-quote {
            font-family: var(--font-display);
            font-size: clamp(1.2rem, 2.5vw, 1.8rem);
            font-style: italic;
            color: rgba(255, 215, 0, 0.75);
            margin-bottom: 3rem;
            line-height: 1.6;
            text-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
            position: relative;
            z-index: 1;
        }

        .cta-section .cta-actions {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.5rem;
            position: relative;
            z-index: 1;
        }

        .cta-sub-link {
            font-size: 0.85rem;
            color: var(--lavender);
            opacity: 0.6;
        }

        .cta-sub-link a {
            color: var(--gold);
            text-decoration: none;
            opacity: 0.8;
            transition: opacity 0.2s;
        }

        .cta-sub-link a:hover {
            opacity: 1;
            text-decoration: underline;
        }

        /* ==================== FOOTER ==================== */
        footer {
            padding: 2rem 4rem;
            border-top: 1px solid rgba(255, 255, 255, 0.05);
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: rgba(255, 255, 255, 0.3);
            font-size: 0.8rem;
            position: relative;
            z-index: 1;
        }

        /* ==================== LOGIN MODAL ==================== */
        .modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.85);
            backdrop-filter: blur(10px);
            z-index: 10000;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s ease;
        }

        .modal-overlay.open {
            opacity: 1;
            pointer-events: all;
        }

        .mobile-menu-overlay {
            position: fixed;
            inset: 0;
            background: rgba(13, 2, 26, 0.98);
            z-index: 10500;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s ease;
            backdrop-filter: blur(10px);
        }

        .mobile-menu-overlay.open {
            opacity: 1;
            pointer-events: auto;
        }

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

        .mobile-menu-links {
            display: flex;
            flex-direction: column;
            gap: 2rem;
            text-align: center;
            align-items: center;
        }

        .mobile-menu-links a {
            color: var(--gold);
            font-family: var(--font-medieval);
            font-size: 1.5rem;
            text-decoration: none;
            text-transform: uppercase;
            letter-spacing: 0.2em;
        }

        .modal-box {
            background: linear-gradient(145deg, #1a0535, #0d021a);
            border: 1px solid rgba(255, 0, 127, 0.4);
            border-radius: 2rem;
            padding: 3rem;
            width: 90%;
            max-width: 460px;
            box-shadow: 0 0 80px rgba(255, 0, 127, 0.25), 0 40px 80px rgba(0, 0, 0, 0.7);
            transform: scale(0.9) translateY(20px);
            transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
            position: relative;
        }

        .modal-overlay.open .modal-box {
            transform: scale(1) translateY(0);
        }

        .modal-close {
            position: absolute;
            top: 1.5rem;
            right: 1.5rem;
            background: none;
            border: none;
            color: rgba(255, 255, 255, 0.4);
            font-size: 1.5rem;
            cursor: pointer;
            transition: color 0.2s;
            line-height: 1;
        }

        .modal-close:hover {
            color: var(--fucsia);
        }

        .modal-tabs {
            display: flex;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            margin-bottom: 2rem;
        }

        .modal-tab {
            flex: 1;
            padding: 0.75rem;
            text-align: center;
            font-family: var(--font-display);
            font-size: 0.8rem;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.4);
            cursor: pointer;
            border-bottom: 2px solid transparent;
            transition: all 0.3s ease;
            background: none;
            border-top: none;
            border-left: none;
            border-right: none;
        }

        .modal-tab.active {
            color: var(--gold);
            border-bottom-color: var(--gold);
        }

        .modal-form {
            display: flex;
            flex-direction: column;
            gap: 1.25rem;
        }

        .modal-form.hidden {
            display: none;
        }

        .form-group {
            display: flex;
            flex-direction: column;
            gap: 0.4rem;
        }

        .form-label {
            font-family: var(--font-display);
            font-size: 0.7rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: rgba(255, 215, 0, 0.6);
        }

        .form-input {
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 0.75rem;
            padding: 0.9rem 1.2rem;
            color: #fff;
            font-size: 1rem;
            font-family: var(--font-body);
            outline: none;
            transition: all 0.3s ease;
        }

        .form-input:focus {
            border-color: var(--fucsia);
            box-shadow: 0 0 20px rgba(255, 0, 127, 0.2);
        }

        .form-input::placeholder {
            color: rgba(255, 255, 255, 0.25);
        }

        /* ==================== RESPONSIVE ==================== */
        @media (max-width: 1250px) {

            .nav-links,
            .header-actions {
                display: none !important;
            }

            header {
                padding: 0.5rem 1rem;
                height: 145px;
                background: linear-gradient(to bottom, rgba(10, 2, 20, 0.95) 0%, rgba(10, 2, 20, 0.4) 60%, transparent 100%) !important;
                backdrop-filter: none !important;
                display: grid;
                grid-template-columns: 1fr auto 1fr;
                align-items: center;
                gap: 0;
            }

            .header-logo {
                grid-column: 2;
                height: 135px;
                margin: 0 auto;
                position: relative;
                display: block;
            }

            .mobile-menu-btn {
                grid-column: 3;
                justify-self: end;
                align-self: center;
                display: block;
                background: none;
                border: none;
                color: var(--gold);
                font-size: 2.2rem;
                cursor: pointer;
                padding-right: 0.5rem;
                position: relative;
                z-index: 10;
            }

            .hero {
                display: flex;
                flex-direction: column;
                padding: 9.5rem 1.5rem 2rem;
                text-align: center;
                gap: 0.5rem;
                justify-content: flex-start;
            }

            .hero-content {
                text-align: center;
                order: 2;
                margin-top: -5rem;
                /* Subir drásticamente el texto hacia la imagen */
            }

            .hero-sub {
                margin-left: auto;
                margin-right: auto;
            }

            .hero-ctas {
                justify-content: center;
            }

            .hero-visual-wrap {
                order: 1;
                opacity: 0.8;
                margin-top: 2rem;
            }

            .hero-draq-float {
                max-height: 48vh;
                animation: float-draq 15s ease-in-out infinite;
                opacity: 0.95;
                /* Difuminado de falda más marcado para mobile */
                mask-image: linear-gradient(to bottom, black 60%, transparent 98%);
                -webkit-mask-image: linear-gradient(to bottom, black 60%, transparent 98%);
            }

            .hero-background-wrap img {
                content: url('/img/draq_master.webp');
            }

            .hero-draq {
                width: 100%;
                height: 100%;
                object-fit: cover;
                object-position: center;
                filter: brightness(90%) contrast(110%);
            }

            .hero-content {
                position: relative;
                z-index: 5;
                padding-top: 5rem;
                /* Reajustado para móvil */
            }

            .hero-eyebrow {
                background: none;
                padding: 0;
                display: block;
                margin-bottom: 1.5rem;
                font-weight: 700;
                color: var(--fucsia);
                /* Triple sombra para legibilidad: Brillo fucsia + silueta negra para contraste */
                text-shadow:
                    0 0 15px var(--fucsia-glow),
                    0 0 5px rgba(0, 0, 0, 1),
                    0 0 10px rgba(0, 0, 0, 0.8);
            }

            .hero-sub {
                text-shadow: 0 2px 8px rgba(0, 0, 0, 1), 0 0 15px rgba(0, 0, 0, 0.5);
                color: #fff;
            }

            .hero-nav {
                left: 1.5rem;
                right: 1.5rem;
                top: 1rem;
                justify-content: center;
                /* En móvil centramos el logo con hamburguesa a la izquierda */
            }

            .hero-logo-main {
                height: clamp(80px, 14vw, 110px);
                /* Ligeramente más pequeño para que haya espacio para el botón hamburguesa */
            }

            .system-grid {
                grid-template-columns: 1fr;
                max-width: 500px;
            }

            .classes-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .system-section,
            .classes-section,
            .cta-section,
            .lore-section {
                padding: 5rem 2rem;
            }

            .lore-inner {
                grid-template-columns: 1fr;
                gap: 3rem;
            }

            .lore-logo-wrap {
                order: -1;
            }

            .lore-logo {
                max-width: 90%;
                margin: 0 auto;
            }

            .class-img-wrap {
                height: 200px;
                /* Reducido de 280px para quitar el "aire" excesivo en móvil */
            }
        }

        @media (max-width: 640px) {
            .hero-logo-main {
                height: 100px;
                /* El logo puede ser más grande ahora que los botones no estorban */
            }

            .hero-content {
                padding-top: 4rem;
            }

            .classes-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 1rem;
            }

            .hero-ctas {
                flex-direction: column;
                margin-bottom: 4rem;
                /* Espacio para que no tape el Explorar */
            }

            .scroll-hint {
                bottom: 1.5rem;
                z-index: 10;
            }

            .hero-nav-actions {
                display: none;
                /* Ocultar botones en móvil (Unirse/Acceder), ya están en el menú y abajo */
            }

            footer {
                flex-direction: column;
                gap: 1rem;
                text-align: center;
            }

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

            .lore-facts {
                grid-template-columns: 1fr;
            }

            .demo-section,
            .map-section {
                padding: 5rem 1rem;
            }

            .demo-inner,
            .map-inner {
                max-width: 100%;
            }

            .demo-bubble {
                max-width: 85%;
            }

            .system-icon {
                width: 250px;
                height: 250px;
                margin-top: 0;
            }
        }
        .draq-intro-section {
            display: none;
            /* Oculto en escritorio por defecto */
            padding: 4rem 2rem 6rem;
            text-align: center;
            background: linear-gradient(180deg, rgba(13, 2, 26, 0.9) 0%, rgba(255, 0, 127, 0.05) 50%, rgba(13, 2, 26, 1) 100%);
            position: relative;
            z-index: 10;
        }

        @media (max-width: 1024px) {
            .draq-intro-section {
                display: block;
                /* Solo visible en móvil y tablet */
            }
        }

        .draq-intro-content {
            max-width: 800px;
            margin: 0 auto;
        }

        .draq-intro-text {
            font-family: var(--font-display);
            font-size: clamp(1.2rem, 3vw, 1.8rem);
            line-height: 1.6;
            color: #fff;
            text-shadow: 0 0 20px var(--fucsia-glow);
            margin-bottom: 2rem;
        }

        .draq-intro-quote {
            font-style: italic;
            color: var(--gold);
            font-size: 1.1rem;
            margin-bottom: 3rem;
            opacity: 0.9;
        }

        .draq-intro-visual {
            width: 100%;
            max-width: 500px;
            margin: 0 auto;
            display: block;
            /* Máscara de degradado más pronunciada para fundir la parte inferior */
            -webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 95%);
            mask-image: linear-gradient(to bottom, black 50%, transparent 95%);
            filter: drop-shadow(0 0 40px var(--fucsia-glow));
            animation: float 6s ease-in-out infinite;
        }

        @keyframes float {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-20px);
            }
        }
