body.vxhm-intro-active { overflow: hidden; }

.vxhm-cinema {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s ease;
    font-family: var(--vx-font-family);
    -webkit-tap-highlight-color: transparent;
}
.vxhm-cinema.vxhm-active {
    opacity: 1;
    pointer-events: auto;
}

body.vxhm-intro-active {
    overflow: hidden;
}

.vxhm-crt-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center,
        rgba(40, 25, 15, .35) 0%,
        rgba(0, 0, 0, 1) 70%);
    z-index: 1;
}

.vxhm-crt-scanlines {
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
    background: repeating-linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0) 0px,
        rgba(0, 0, 0, 0) 2px,
        rgba(0, 0, 0, .35) 3px,
        rgba(0, 0, 0, .35) 4px
    );
    mix-blend-mode: multiply;
    opacity: .55;
    animation: vxhmScanShift 8s linear infinite;
}
@keyframes vxhmScanShift {
    0%   { background-position: 0 0; }
    100% { background-position: 0 4px; }
}

.vxhm-crt-static {
    position: absolute;
    inset: -10%;
    z-index: 5;
    pointer-events: none;
    opacity: .07;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    animation: vxhmStaticJitter .12s steps(4) infinite;
    mix-blend-mode: screen;
}
@keyframes vxhmStaticJitter {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(-2%, 1%); }
    50%  { transform: translate(1%, -2%); }
    75%  { transform: translate(-1%, -1%); }
    100% { transform: translate(2%, 2%); }
}

.vxhm-crt-vignette {
    position: absolute;
    inset: 0;
    z-index: 7;
    pointer-events: none;
    background: radial-gradient(
        ellipse at center,
        transparent 50%,
        rgba(0, 0, 0, .4) 85%,
        rgba(0, 0, 0, .85) 100%
    );
    box-shadow: inset 0 0 100px rgba(0, 0, 0, .9);
}

.vxhm-crt-bootline {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    z-index: 10;
    background: linear-gradient(
        to right,
        transparent,
        rgba(255, 255, 255, .9) 20%,
        #fff 50%,
        rgba(255, 255, 255, .9) 80%,
        transparent
    );
    box-shadow: 0 0 30px rgba(255, 255, 255, .8),
                0 0 60px rgba(255, 255, 255, .4);
    transform-origin: center;
    animation: vxhmBootLine 1.4s cubic-bezier(.7, 0, .3, 1) forwards;
    pointer-events: none;
}
@keyframes vxhmBootLine {
    0%   { transform: scaleX(0) scaleY(1); opacity: 0; }
    15%  { transform: scaleX(1) scaleY(1); opacity: 1; }
    50%  { transform: scaleX(1) scaleY(80); opacity: 1; }
    80%  { transform: scaleX(1) scaleY(450); opacity: .25; }
    100% { transform: scaleX(1) scaleY(600); opacity: 0; }
}

.vxhm-stage {
    position: relative;
    z-index: 8;
    text-align: center;
    padding: 24px;
    max-width: 90vw;
    animation:
        vxhmAppear 1.2s ease-out .9s both,
        vxhmWowFlutter 7s ease-in-out 2s infinite;
    transform: perspective(1200px) rotateX(.5deg);
}
@keyframes vxhmAppear {
    0%   { opacity: 0; filter: blur(6px); transform: perspective(1200px) rotateX(.5deg) scale(.95); }
    100% { opacity: 1; filter: blur(0);   transform: perspective(1200px) rotateX(.5deg) scale(1); }
}
@keyframes vxhmWowFlutter {
    0%, 100% { transform: perspective(1200px) rotateX(.5deg) translateX(0); }
    25%      { transform: perspective(1200px) rotateX(.5deg) translateX(-1px); }
    50%      { transform: perspective(1200px) rotateX(.5deg) translateX(1px); }
    75%      { transform: perspective(1200px) rotateX(.5deg) translateX(-.5px); }
}

.vxhm-welcome {
    font-size: 13px;
    letter-spacing: 6px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    margin-bottom: 28px;
    font-weight: 400;
    animation: vxhmFlicker 4s steps(2, end) infinite;
}

.vxhm-brand {
    margin-bottom: 22px;
    display: flex;
    justify-content: center;
}
.vxhm-logo-wrap {
    position: relative;
    width: 900px;
    max-width: min(90vw, 900px);
    aspect-ratio: 900 / 360;
    animation: vxhmFlicker 5s steps(3, end) infinite;
}
.vxhm-logo-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
.vxhm-logo-main {
    filter: drop-shadow(0 0 14px rgba(255, 255, 255, .12));
    z-index: 2;
}
.vxhm-logo-ghost {
    pointer-events: none;
    mix-blend-mode: screen;
    z-index: 1;
}
.vxhm-logo-ghost-r {
    filter: drop-shadow(2px 0 0 rgba(255, 50, 50, .8))
            brightness(0)
            drop-shadow(2px 0 0 rgba(255, 50, 50, .9));
    animation: vxhmRgbR 3.2s ease-in-out infinite;
}
.vxhm-logo-ghost-b {
    filter: drop-shadow(-2px 0 0 rgba(50, 200, 255, .8))
            brightness(0)
            drop-shadow(-2px 0 0 rgba(50, 200, 255, .9));
    animation: vxhmRgbB 3.2s ease-in-out infinite;
}
@keyframes vxhmRgbR {
    0%, 88%, 100% { transform: translateX(0); opacity: .35; }
    90%           { transform: translateX(-3px); opacity: .8; }
    93%           { transform: translateX(2px);  opacity: .6; }
    96%           { transform: translateX(-1px); opacity: .5; }
}
@keyframes vxhmRgbB {
    0%, 88%, 100% { transform: translateX(0); opacity: .35; }
    90%           { transform: translateX(3px);  opacity: .8; }
    93%           { transform: translateX(-2px); opacity: .6; }
    96%           { transform: translateX(1px);  opacity: .5; }
}

.vxhm-title {
    font-size: clamp(48px, 9vw, 96px);
    font-weight: 800;
    letter-spacing: 4px;
    color: #fff;
    margin: 0;
    text-transform: uppercase;
    position: relative;
    text-shadow: 0 0 18px rgba(255, 255, 255, .25);
    animation: vxhmFlicker 5s steps(3, end) infinite;
}
.vxhm-title::before,
.vxhm-title::after {
    content: attr(data-text);
    position: absolute;
    inset: 0;
    pointer-events: none;
    mix-blend-mode: screen;
}
.vxhm-title::before {
    color: rgba(255, 50, 50, .85);
    animation: vxhmRgbR 3.2s ease-in-out infinite;
}
.vxhm-title::after {
    color: rgba(50, 200, 255, .85);
    animation: vxhmRgbB 3.2s ease-in-out infinite;
}

.vxhm-tagline {
    margin-top: 18px;
    font-size: 14px;
    letter-spacing: 8px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
    font-weight: 300;
    opacity: 0;
    animation:
        vxhmTagAppear .8s ease-out 1.6s forwards,
        vxhmFlicker 6s steps(2, end) 2.4s infinite;
}
@keyframes vxhmTagAppear {
    0%   { opacity: 0; transform: translateY(6px); letter-spacing: 2px; }
    100% { opacity: .85; transform: translateY(0); letter-spacing: 8px; }
}

@keyframes vxhmFlicker {
    0%, 100% { opacity: 1; }
    1.5%     { opacity: .55; }
    2.5%     { opacity: 1; }
    44%      { opacity: 1; }
    44.5%    { opacity: .82; }
    45%      { opacity: 1; }
    72%      { opacity: 1; }
    72.5%    { opacity: .65; }
    73%      { opacity: 1; }
}

.vxhm-cinema.vxhm-closing .vxhm-stage {
    animation: vxhmShutdownStage .55s cubic-bezier(.8, 0, .2, 1) forwards;
}
.vxhm-cinema.vxhm-closing .vxhm-crt-bg,
.vxhm-cinema.vxhm-closing .vxhm-crt-static,
.vxhm-cinema.vxhm-closing .vxhm-crt-scanlines,
.vxhm-cinema.vxhm-closing .vxhm-crt-vignette {
    animation: vxhmShutdownLayers .8s ease-out forwards;
}
.vxhm-cinema.vxhm-closing::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background: #fff;
    box-shadow: 0 0 40px rgba(255, 255, 255, .9),
                0 0 80px rgba(255, 255, 255, .5);
    z-index: 12;
    animation: vxhmShutdownLine .8s cubic-bezier(.8, 0, .2, 1) forwards;
}
@keyframes vxhmShutdownStage {
    0%   { transform: perspective(1200px) rotateX(.5deg) scale(1);    opacity: 1; filter: blur(0); }
    40%  { transform: perspective(1200px) rotateX(.5deg) scaleY(.05); opacity: .9; filter: blur(2px) brightness(2); }
    100% { transform: perspective(1200px) rotateX(.5deg) scaleY(.001) scaleX(.4); opacity: 0; filter: blur(4px); }
}
@keyframes vxhmShutdownLayers {
    0%   { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes vxhmShutdownLine {
    0%   { transform: scaleY(1)    scaleX(1);    opacity: 0; }
    20%  { transform: scaleY(80)   scaleX(1);    opacity: 1; }
    60%  { transform: scaleY(1)    scaleX(1);    opacity: 1; }
    100% { transform: scaleY(.001) scaleX(.05);  opacity: 0; }
}

@media (max-width: 640px) {
    .vxhm-welcome   { font-size: 11px; letter-spacing: 4px; margin-bottom: 20px; }
    .vxhm-tagline   { font-size: 11px; letter-spacing: 5px; }
    .vxhm-logo-wrap { width: 90vw; }
}

@media (prefers-reduced-motion: reduce) {
    .vxhm-crt-static,
    .vxhm-crt-bootline,
    .vxhm-logo-ghost,
    .vxhm-title::before,
    .vxhm-title::after {
        animation: none !important;
        display: none !important;
    }
    .vxhm-welcome,
    .vxhm-logo-wrap,
    .vxhm-title,
    .vxhm-tagline,
    .vxhm-stage {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
    .vxhm-crt-scanlines { opacity: .2; animation: none !important; }
}

.vxhm-cinema.vxhm-closing { opacity: 0; transition: opacity .8s ease; }
.vxhm-cinema.vxhm-closing .vxhm-stage {
    transform: scale(1.05);
    transition: transform .8s ease;
}

@media (prefers-reduced-motion: reduce) {
    .vxhm-welcome,
    .vxhm-brand {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

html.vxag-locked,
html.vxag-locked body {
    overflow: hidden !important;
    height: 100vh;
}

.vxag-gate {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    transition: opacity .4s ease;
}
.vxag-gate.vxag-visible { opacity: 1; }
.vxag-gate.vxag-leaving { opacity: 0; transform: scale(0.95); transition: all .5s ease; }
.vxag-gate.vxag-denied .vxag-modal {
    animation: vxag-shake .4s ease, vxag-fade-red .8s ease forwards;
}

.vxag-overlay {
    position: absolute;
    inset: 0;
    background: var(--vx-overlay);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.vxag-modal {
    position: relative;
    background: linear-gradient(145deg, var(--vx-bg-card) 0%, var(--vx-bg-input) 100%);
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius);
    padding: 40px 36px 28px;
    max-width: 520px;
    width: 100%;
    box-shadow:
        0 25px 80px rgba(0, 0, 0, .25),
        0 0 0 1px var(--vx-border) inset,
        0 0 60px var(--vx-primary-light);
    text-align: center;
    transform: scale(0.92);
    opacity: 0;
    animation: vxag-pop-in .55s cubic-bezier(.34,1.56,.64,1) .15s forwards;
    overflow: hidden;
}

@keyframes vxag-pop-in { to { transform: scale(1); opacity: 1; } }

.vxag-glow {
    position: absolute;
    top: -50%; left: -50%;
    width: 200%; height: 200%;
    background: radial-gradient(circle, var(--vx-primary-light) 0%, transparent 60%);
    animation: vxag-rotate 12s linear infinite;
    pointer-events: none;
    z-index: 0;
}

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

.vxag-modal > *:not(.vxag-glow) { position: relative; z-index: 1; }

.vxag-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 90px; height: 90px;
    margin: 0 auto 18px;
    color: var(--vx-danger);
    background: radial-gradient(circle, var(--vx-primary-light) 0%, transparent 70%);
    border-radius: 50%;
}

.vxag-age-badge {
    position: absolute;
    bottom: -4px; right: -8px;
    background: var(--vx-danger);
    color: var(--vx-text-inv);
    font-size: 14px; font-weight: 900;
    padding: 4px 10px; border-radius: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
    border: 2px solid var(--vx-bg-card);
}

.vxag-kicker {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--vx-primary);
    font-weight: 700;
    margin-bottom: 10px;
}

.vxag-title {
    font-family: var(--vx-font-family);
    font-size: 26px; font-weight: 800;
    color: var(--vx-text);
    margin: 0 0 16px; line-height: 1.2;
}

.vxag-text {
    font-size: 14px; line-height: 1.6;
    color: var(--vx-text-2); margin: 0 0 18px;
}

.vxag-law {
    display: flex; align-items: flex-start; gap: 8px;
    background: var(--vx-primary-light);
    border: 1px solid var(--vx-border);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 11px; line-height: 1.5;
    color: var(--vx-text-2); text-align: left;
    margin-bottom: 22px;
}
.vxag-law svg { color: var(--vx-primary); }

.vxag-question {
    font-size: 16px; font-weight: 700;
    color: var(--vx-text); margin-bottom: 18px;
}

.vxag-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }

.vxag-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 10px;
    padding: 14px 22px;
    border-radius: 10px; border: none;
    font-size: 14px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 1.2px;
    cursor: pointer;
    transition: all .2s ease;
    font-family: var(--vx-font-family);
}

.vxag-btn-yes {
    background: linear-gradient(135deg, var(--vx-primary) 0%, var(--vx-primary-2) 100%);
    color: var(--vx-text-inv);
    box-shadow: 0 8px 20px var(--vx-primary-light);
}
.vxag-btn-yes:hover { transform: translateY(-2px); box-shadow: 0 12px 28px var(--vx-primary-light); }

.vxag-btn-no {
    background: transparent;
    color: var(--vx-text-2);
    border: 1px solid var(--vx-border);
}
.vxag-btn-no:hover {
    background: var(--vx-bg-hover);
    border-color: var(--vx-danger);
    color: var(--vx-danger);
}

.vxag-footer {
    font-size: 10px; color: var(--vx-text-3);
    line-height: 1.5; margin: 0; font-style: italic;
}

@keyframes vxag-shake {
    0%, 100%  { transform: translateX(0); }
    20%, 60%  { transform: translateX(-8px); }
    40%, 80%  { transform: translateX(8px); }
}

@keyframes vxag-fade-red {
    to {
        background: linear-gradient(145deg, var(--vx-danger) 0%, var(--vx-bg-footer) 100%);
        border-color: var(--vx-danger);
    }
}

@media (max-width: 540px) {
    .vxag-modal { padding: 28px 22px 20px; border-radius: 16px; }
    .vxag-title { font-size: 22px; }
    .vxag-icon { width: 72px; height: 72px; }
    .vxag-icon svg { width: 44px; height: 44px; }
}

.vxhm-brand-textlogo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0 24px;
}

.vxhm-textlogo-wrap {
    position: relative;
    display: inline-block;
    line-height: 1;
}

.vxhm-textlogo-main {
    display: inline-flex;
    align-items: baseline;
    gap: clamp(4px, 0.6vw, 10px);
    font-family: var(--vx-font-family, "Inter", system-ui, sans-serif);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1;
    color: #fff;
    text-shadow:
        0 0 18px rgba(255, 255, 255, .35),
        0 0 48px rgba(255, 255, 255, .12);
    white-space: nowrap;
}

.vxhm-textlogo-name {
    font-size: clamp(2.2rem, 9vw, 7rem);
    text-transform: uppercase;
}

.vxhm-textlogo-tld {
    font-size: clamp(.9rem, 2.6vw, 2.2rem);
    font-weight: 700;
    letter-spacing: 0;
    color: var(--vx-accent, #d4a544);
    text-shadow:
        0 0 12px rgba(212, 165, 68, .55),
        0 0 30px rgba(212, 165, 68, .25);
    opacity: .95;
}

.vxhm-textlogo-ghost {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    opacity: .55;
    mix-blend-mode: screen;
    filter: blur(.4px);
    animation: vxhmTextGhost 4s ease-in-out infinite;
}

.vxhm-textlogo-ghost-r {
    color: #ff2a3d;
    text-shadow: none;
    transform: translate(-2px, 0);
    animation-delay: 0s;
}

.vxhm-textlogo-ghost-r .vxhm-textlogo-tld {
    color: #ff2a3d;
    text-shadow: none;
}

.vxhm-textlogo-ghost-b {
    color: #1f8bff;
    text-shadow: none;
    transform: translate(2px, 0);
    animation-delay: .2s;
}

.vxhm-textlogo-ghost-b .vxhm-textlogo-tld {
    color: #1f8bff;
    text-shadow: none;
}

@keyframes vxhmTextGhost {
    0%, 100% { transform: translate(-2px, 0); opacity: .55; }
    25%      { transform: translate(-3px, -1px); opacity: .75; }
    50%      { transform: translate(-1px, 1px); opacity: .4; }
    75%      { transform: translate(-3px, 0); opacity: .65; }
}

.vxhm-textlogo-ghost-b {
    animation-name: vxhmTextGhostB;
}

@keyframes vxhmTextGhostB {
    0%, 100% { transform: translate(2px, 0); opacity: .55; }
    25%      { transform: translate(3px, 1px); opacity: .4; }
    50%      { transform: translate(1px, -1px); opacity: .75; }
    75%      { transform: translate(3px, 0); opacity: .55; }
}

.vxhm-active .vxhm-brand-textlogo {
    animation: vxhmTextLogoIn 1.1s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes vxhmTextLogoIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(.96);
        filter: blur(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@media (max-width: 640px) {
    .vxhm-brand-textlogo {
        padding: 0 16px;
    }
    .vxhm-textlogo-main {
        gap: 4px;
    }
    .vxhm-textlogo-ghost-r {
        transform: translate(-1.5px, 0);
    }
    .vxhm-textlogo-ghost-b {
        transform: translate(1.5px, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .vxhm-textlogo-ghost {
        animation: none;
    }
    .vxhm-active .vxhm-brand-textlogo {
        animation: none;
    }
}
