:root {
    --bg: #050505;
    --bg-raised: #0c0c0a;
    --bg-card: #111110;
    --fg: #f3efe6;
    --fg-dim: #a8a39a;
    --fg-faint: #6b6760;

    /* Primary gold (kept) */
    --gold: #d4a055;
    --gold-deep: #c8892a;
    --gold-muted: #8a6b2e;
    --gold-glow: rgba(212, 160, 85, 0.18);

    /* Slide-deck pop palette */
    --magenta: #ec3b6f;
    --magenta-soft: #f25c8a;
    --magenta-glow: rgba(236, 59, 111, 0.32);
    --cyan: #2dd4cf;
    --cyan-soft: #67e8e3;
    --cyan-glow: rgba(45, 212, 207, 0.32);
    --acid: #fbbf24;
    --acid-glow: rgba(251, 191, 36, 0.35);
    --violet: #a855f7;
    --lime: #84cc16;
    --crimson: #ef4444;

    --hairline: rgba(243, 239, 230, 0.08);
    --hairline-strong: rgba(243, 239, 230, 0.14);
    --hairline-gold: rgba(212, 160, 85, 0.22);
    --hairline-magenta: rgba(236, 59, 111, 0.28);
    --hairline-cyan: rgba(45, 212, 207, 0.28);
}

[data-accent="amber"] {
    --gold: #d4a055;
    --gold-deep: #c8892a;
    --gold-muted: #8a6b2e;
}
[data-accent="bronze"] {
    --gold: #b8763a;
    --gold-deep: #8d5524;
    --gold-muted: #5e3a18;
}
[data-accent="champagne"] {
    --gold: #e6c98a;
    --gold-deep: #c9a85a;
    --gold-muted: #8a7440;
}
[data-accent="copper"] {
    --gold: #c67a43;
    --gold-deep: #9c5a2c;
    --gold-muted: #6b3d1e;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    background: var(--bg);
    scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
body {
    background: transparent;
    color: var(--fg);
    font-family: "Inter", system-ui, sans-serif;
    font-weight: 400;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
button { background: none; border: 0; color: inherit; font: inherit; cursor: pointer; }

/* Typography system */
.eyebrow {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gold);
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.eyebrow::before {
    content: "";
    width: 24px;
    height: 1px;
    background: var(--gold);
    opacity: 0.6;
}
.eyebrow.plain::before { display: none; }
.eyebrow.cyan { color: var(--cyan); }
.eyebrow.cyan::before { background: var(--cyan); }
.eyebrow.magenta { color: var(--magenta); }
.eyebrow.magenta::before { background: var(--magenta); }

.display {
    font-family: "Archivo Black", "Bebas Neue", Impact, sans-serif;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 0.92;
    text-transform: uppercase;
}

.serif-it {
    font-family: "Instrument Serif", "Cormorant", serif;
    font-style: italic;
    color: var(--gold);
}

.mono { font-family: "JetBrains Mono", monospace; }

/* Grain overlay */
.grain {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 100;
    opacity: 0.07;
    mix-blend-mode: overlay;
    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='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='1'/></svg>");
}

/* Subtle global vignette + paper texture */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 99;
    background:
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.55) 100%),
        radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%);
}

.cursor { display: none !important; }

@media (hover: none) {
    body { cursor: auto; }
    button, a { cursor: pointer; }
}

/* ----------------------- LAYOUT ----------------------- */
.container {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 48px;
}
@media (max-width: 800px) { .container { padding: 0 24px; } }

section { position: relative; }

/* ----------------------- DECORATIVE SPARKLES ----------------------- */
.sparkle {
    position: absolute;
    width: 32px;
    height: 32px;
    pointer-events: none;
    color: var(--gold);
    z-index: 2;
    filter: drop-shadow(0 0 12px var(--gold-glow));
    animation: sparkle-twinkle 4s ease-in-out infinite;
}
.sparkle.sm { width: 18px; height: 18px; }
.sparkle.md { width: 28px; height: 28px; }
.sparkle.lg { width: 48px; height: 48px; }
.sparkle.xl { width: 72px; height: 72px; }
.sparkle.acid { color: var(--acid); filter: drop-shadow(0 0 14px var(--acid-glow)); }
.sparkle.magenta { color: var(--magenta); filter: drop-shadow(0 0 14px var(--magenta-glow)); }
.sparkle.cyan { color: var(--cyan); filter: drop-shadow(0 0 14px var(--cyan-glow)); }
.sparkle.white { color: var(--fg); filter: drop-shadow(0 0 12px rgba(255,255,255,0.3)); }
.sparkle.delay-1 { animation-delay: 0.6s; }
.sparkle.delay-2 { animation-delay: 1.2s; }
.sparkle.delay-3 { animation-delay: 1.8s; }
.sparkle.delay-4 { animation-delay: 2.4s; }

@keyframes sparkle-twinkle {
    0%, 100% { opacity: 0.55; transform: scale(0.85) rotate(0deg); }
    50% { opacity: 1; transform: scale(1.05) rotate(180deg); }
}
@media (prefers-reduced-motion: reduce) {
    .sparkle { animation: none; opacity: 0.8; }
}

/* Sun-burst arc decorations (corner ornaments like slide deck) */
.sunburst {
    position: absolute;
    width: 360px;
    height: 360px;
    pointer-events: none;
    opacity: 0.6;
    z-index: 1;
    color: var(--gold);
}
.sunburst.sm { width: 240px; height: 240px; }
.sunburst.lg { width: 520px; height: 520px; }
.sunburst.tl { top: -180px; left: -180px; }
.sunburst.tr { top: -180px; right: -180px; }
.sunburst.bl { bottom: -180px; left: -180px; }
.sunburst.br { bottom: -180px; right: -180px; }

/* Vivid colored dot field (like slide-03) */
.dot {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 2;
}
.dot.acid { background: var(--acid); box-shadow: 0 0 20px var(--acid-glow); }
.dot.magenta { background: var(--magenta); box-shadow: 0 0 20px var(--magenta-glow); }
.dot.cyan { background: var(--cyan); box-shadow: 0 0 20px var(--cyan-glow); }
.dot.lime { background: var(--lime); box-shadow: 0 0 18px rgba(132, 204, 22, 0.4); }
.dot.violet { background: var(--violet); box-shadow: 0 0 18px rgba(168, 85, 247, 0.4); }

/* Diagonal accent bars (slide-03/12) */
.bar-accent {
    position: absolute;
    height: 8px;
    pointer-events: none;
    z-index: 2;
}
.bar-accent.acid { background: var(--acid); }
.bar-accent.magenta { background: var(--magenta); }
.bar-accent.cyan { background: var(--cyan); }

/* ----------------------- NAV ----------------------- */
.nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 80;
    padding: 22px 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid transparent;
    transition: background 0.3s ease, border-color 0.3s ease;
}
.nav::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: -56px;
    background: linear-gradient(
        to bottom,
        rgba(4, 4, 4, 0.78) 0%,
        rgba(4, 4, 4, 0.45) 55%,
        rgba(4, 4, 4, 0) 100%
    );
    pointer-events: none;
    z-index: -1;
    transition: opacity 0.3s ease;
}
.nav.scrolled {
    background: rgba(5, 5, 5, 0.78);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom-color: var(--hairline);
}
.nav.scrolled::before { opacity: 0; }
.logo {
    font-family: "Archivo Black", sans-serif;
    font-weight: 900;
    font-size: 18px;
    letter-spacing: 0.18em;
    display: flex;
    align-items: center;
    gap: 10px;
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.5);
}
@media (min-width: 961px) {
    .logo { margin-left: auto; }
    .nav-links { margin-left: 40px; }
    .nav-cta { margin-left: auto; }
}
.logo img {
    display: block;
    height: 47px;
    width: auto;
    object-fit: contain;
    filter: drop-shadow(0 1px 14px rgba(0, 0, 0, 0.5));
}
.nav-links {
    display: flex;
    gap: 42px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.nav-links a {
    color: var(--fg-dim);
    position: relative;
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.5);
}
.nav-links a:hover { color: var(--fg); }
.nav-cta {
    padding: 10px 22px;
    border: 1px solid var(--gold);
    color: var(--gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.nav-cta:hover { background: var(--gold); color: var(--bg); }

.nav-mobile-toggle { display: none; }

@media (max-width: 960px) {
    .nav { padding: 18px 24px; }
    .nav-links { display: none; }
    .nav-cta { display: none; }
    .nav-mobile-toggle {
        display: flex;
        flex-direction: column;
        gap: 5px;
        width: 28px;
    }
    .nav-mobile-toggle span {
        width: 100%;
        height: 1px;
        background: var(--fg);
    }
}

/* ----------------------- HERO (kept mostly) ----------------------- */
.hero {
    min-height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding-top: 100px;
    padding-bottom: 80px;
}
.hero-bg {
    position: fixed;
    inset: 0;
    z-index: -3;
    pointer-events: none;
    background-image: url("assets/background.png");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: calc(1 - var(--statue-darken, 0) * 0.55);
    filter: brightness(calc((1 - var(--statue-darken, 0) * 0.7) * 0.9))
        blur(var(--statue-blur, 0px));
    will-change: filter, opacity;
}
.hero-ghost-back {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 4vw;
    z-index: -2;
    pointer-events: none;
    overflow: hidden;
}
.hero-ghost-back-text {
    font-family: "Archivo Black", "Bebas Neue", Impact, sans-serif;
    font-size: clamp(220px, 30vw, 480px);
    font-weight: 400;
    color: rgba(212, 160, 85, 0.42);
    letter-spacing: -0.04em;
    line-height: 0.85;
    white-space: nowrap;
    user-select: none;
}
.hero-ghost {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}
.hero-ghost-text {
    font-family: "Archivo Black", "Bebas Neue", Impact, sans-serif;
    font-size: clamp(180px, 26vw, 420px);
    font-weight: 400;
    color: transparent;
    -webkit-text-stroke: 1px rgba(212, 160, 85, 0.12);
    letter-spacing: -0.04em;
    line-height: 0.85;
    white-space: nowrap;
    user-select: none;
}

.bg-statue {
    position: fixed;
    inset: 0;
    z-index: 90;
    pointer-events: none;
    background-image: url("assets/statue_base2.png");
    background-size: contain;
    background-position: 100% 50%;
    background-repeat: no-repeat;
    opacity: calc(1 - var(--statue-darken, 0));
    filter: brightness(calc(1 - var(--statue-darken, 0) * 0.7))
        blur(var(--statue-blur, 0px));
    will-change: filter, opacity;
}

.hero-content {
    position: relative;
    width: 100%;
    max-width: none;
    padding: 0 48px 0 clamp(64px, 8vw, 180px);
    display: flex;
    flex-direction: column;
    gap: 40px;
    pointer-events: none;
}
.hero-content > * {
    pointer-events: auto;
}
@media (max-width: 1100px) {
    .hero-content { gap: 32px; padding-left: 64px; }
}
@media (max-width: 800px) {
    .hero-content { padding: 0 24px; }
}

.glass-card {
    background: linear-gradient(
        135deg,
        rgba(14, 14, 12, 0.62),
        rgba(14, 14, 12, 0.32)
    );
    border: 1px solid var(--hairline-gold);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-radius: 2px;
    padding: 56px 72px 56px 64px;
    position: relative;
    z-index: 2;
    max-width: min(1520px, calc(100vw - clamp(80px, 6vw, 160px)));
    box-shadow: 0 40px 120px -60px rgba(0, 0, 0, 0.6);
}
.glass-card::before {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    width: 48px;
    height: 1px;
    background: var(--gold);
}
.glass-card::after {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    width: 1px;
    height: 48px;
    background: var(--gold);
}
@media (max-width: 900px) {
    .glass-card { padding: 40px 32px; z-index: auto; }
}
@media (max-width: 800px) {
    .bg-statue { display: none; }
}

.hero-h1 {
    font-family: "Bebas Neue", Impact, sans-serif;
    font-size: clamp(56px, 7vw, 116px);
    font-weight: 400;
    line-height: 0.94;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    margin: 22px 0 28px;
    max-width: 960px;
}
.hero-h1 .heavy {
    font-family: "Archivo Black", sans-serif;
    letter-spacing: -0.02em;
}
.hero-h1 .gold { color: var(--gold); }
.hero-h1 .magenta { color: var(--magenta); }
.hero-h1 .cyan { color: var(--cyan); }
.hero-h1 .thin {
    font-family: "Instrument Serif", serif;
    font-weight: 400;
    font-style: italic;
    font-size: 0.74em;
    letter-spacing: 0;
    text-transform: none;
    color: var(--fg-dim);
}
.hero-body {
    color: var(--fg-dim);
    font-size: 15px;
    line-height: 1.65;
    max-width: 560px;
    margin-bottom: 36px;
}

.btn-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 16px 28px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 999px;
    white-space: nowrap;
}
.btn.primary { background: var(--gold); color: var(--bg); }
.btn.primary:hover { background: var(--fg); }
.btn.ghost { border: 1px solid var(--hairline-strong); color: var(--fg); }
.btn.ghost:hover { border-color: var(--gold); color: var(--gold); }
.btn.magenta { background: var(--magenta); color: var(--fg); }
.btn.magenta:hover { background: var(--magenta-soft); box-shadow: 0 16px 40px -16px var(--magenta-glow); }
.btn-arrow { display: inline-block; width: 14px; }

/* ----------------------- HERO STATS — multi-color (slide-10) ----------------------- */
.stats-col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    max-width: 880px;
    position: relative;
    z-index: 0;
}
.stat-card {
    background: rgba(15, 15, 13, 0.7);
    border: 1px solid var(--hairline);
    backdrop-filter: blur(10px);
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-radius: 2px;
    position: relative;
    overflow: hidden;
}
.stat-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 32px;
    height: 2px;
    background: var(--stat-color, var(--gold));
}
.stat-card:hover {
    border-color: var(--stat-color, var(--gold));
    background: rgba(15, 15, 13, 0.9);
}
.stat-num {
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: 48px;
    line-height: 1;
    color: var(--stat-color, var(--gold));
    letter-spacing: -0.02em;
}
.stat-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--fg-dim);
}
@media (max-width: 700px) {
    .stats-col { grid-template-columns: repeat(2, 1fr); }
}
.stat-desc {
    font-size: 12px;
    color: var(--fg-dim);
    line-height: 1.5;
}

.hero-meta {
    position: absolute;
    bottom: 40px;
    left: 48px;
    right: 48px;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    font-family: "JetBrains Mono", monospace;
    font-size: 10px;
    color: var(--fg-faint);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    pointer-events: none;
}
.hero-meta span { display: flex; align-items: center; gap: 10px; }
.hero-meta-dot {
    width: 6px;
    height: 6px;
    background: var(--gold);
    border-radius: 50%;
}

/* ----------------------- MARQUEE ----------------------- */
.marquee {
    padding: 32px 0;
    overflow: hidden;
    background: transparent;
    position: relative;
    z-index: 5;
    border-top: 1px solid var(--hairline);
    border-bottom: 1px solid var(--hairline);
}
.marquee-track {
    display: flex;
    align-items: center;
    gap: 56px;
    white-space: nowrap;
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: 36px;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    width: max-content;
    animation: marquee-scroll 45s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track .marq-item {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: var(--fg);
}
.marquee-track .marq-item.dim { color: var(--fg-faint); -webkit-text-stroke: 1px var(--gold); }
.marquee-track .plus {
    color: var(--gold);
    font-family: "Archivo Black", sans-serif;
    font-size: 36px;
}
.marquee-track .sep {
    color: var(--gold);
    display: inline-flex;
    align-items: center;
}
@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .marquee-track { animation: none; }
}

/* ----------------------- PARCEIROS ----------------------- */
.parceiros {
    position: relative;
    z-index: 5;
    padding: 56px 0 72px;
}
.parceiros-eyebrow {
    margin-bottom: 28px;
    text-align: center;
    opacity: 0.55;
}
.parceiros-eyebrow .eyebrow { color: var(--fg-faint); }
.parceiros-viewport {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.parceiros-track {
    display: flex;
    align-items: center;
    gap: 80px;
    width: max-content;
    animation: parceiros-scroll 55s linear infinite;
    will-change: transform;
}
.parceiro-logo {
    flex: 0 0 auto;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.parceiro-logo img {
    height: 100%;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    filter: grayscale(1) brightness(0) invert(1);
    opacity: 0.42;
    transition: opacity 0.4s ease, filter 0.4s ease;
}
.parceiros:hover .parceiros-track { animation-play-state: paused; }
.parceiros-track:hover .parceiro-logo img { opacity: 0.3; }
.parceiro-logo:hover img { opacity: 0.95 !important; filter: grayscale(0) brightness(1) invert(0); }
@keyframes parceiros-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) { .parceiros-track { animation: none; } }
@media (max-width: 700px) {
    .parceiros { padding: 40px 0 48px; }
    .parceiros-track { gap: 56px; animation-duration: 38s; }
    .parceiro-logo { height: 32px; }
}

/* ----------------------- SECTION CHROME ----------------------- */
.section {
    padding: 140px 0;
    position: relative;
}
.section-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 72px;
    gap: 48px;
    flex-wrap: wrap;
}
.section-title {
    font-family: "Bebas Neue", sans-serif;
    font-size: clamp(48px, 6.5vw, 100px);
    line-height: 0.95;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    max-width: 760px;
}
.section-title .gold { color: var(--gold); }
.section-title .magenta { color: var(--magenta); }
.section-title .cyan { color: var(--cyan); }
.section-title .thin {
    font-family: "Instrument Serif", serif;
    font-weight: 400;
    font-style: italic;
    font-size: 0.45em;
    letter-spacing: 0;
    text-transform: none;
    color: var(--fg-dim);
    display: block;
    margin-top: 16px;
}
.section-desc {
    max-width: 380px;
    font-size: 15px;
    color: var(--fg-dim);
    line-height: 1.7;
}
.section-number {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    color: var(--gold);
    letter-spacing: 0.2em;
    margin-bottom: 18px;
    text-transform: uppercase;
}

/* Headline with gold underline (slide-10 style) */
.title-underlined {
    position: relative;
    display: inline-block;
    padding-bottom: 16px;
}
.title-underlined::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 64%;
    height: 2px;
    background: var(--gold);
}

/* ----------------------- GAP SECTION (slide-04 style) ----------------------- */
.gap-section {
    padding: 160px 0 140px;
    position: relative;
    overflow: hidden;
}
.gap-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
@media (max-width: 1000px) {
    .gap-grid { grid-template-columns: 1fr; gap: 56px; }
}
.gap-kicker {
    font-family: "Archivo Black", sans-serif;
    font-size: clamp(48px, 6.4vw, 108px);
    line-height: 0.88;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--fg);
}
.gap-kicker .magenta {
    color: var(--magenta);
    position: relative;
    display: inline-block;
}
.gap-kicker .magenta.underline::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 6px;
    background: var(--magenta);
    transform: skewX(-12deg);
}
.gap-sub {
    color: var(--fg-dim);
    font-size: 16px;
    line-height: 1.6;
    margin-top: 32px;
    max-width: 460px;
    border-left: 2px solid var(--magenta);
    padding-left: 16px;
}
.gap-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 36px;
}
.gap-list li {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 16px;
    align-items: baseline;
}
.gap-list .x {
    color: var(--magenta);
    font-family: "Archivo Black", sans-serif;
    font-size: 18px;
    line-height: 1;
}
.gap-list .gap-li-title {
    font-family: "Archivo Black", sans-serif;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 0;
    line-height: 1.3;
    color: var(--fg);
}
.gap-list .gap-li-desc {
    color: var(--fg-dim);
    font-size: 14px;
    font-weight: 400;
    text-transform: none;
    margin-left: 6px;
}
.gap-visual {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 2px;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 30% 30%, rgba(168, 85, 247, 0.25), transparent 60%),
        radial-gradient(ellipse at 70% 70%, rgba(236, 59, 111, 0.3), transparent 55%),
        #0a0a0a;
}
.gap-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    mix-blend-mode: screen;
}
.gap-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(135deg, rgba(45, 212, 207, 0.06) 0 1px, transparent 1px 14px);
    pointer-events: none;
}

/* ----------------------- PORTFOLIO GRID ----------------------- */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
  width: 100%;
}

.case-card {
    position: relative;
    overflow: hidden;
    background: var(--bg-raised);
    border: 1px solid var(--hairline);
    aspect-ratio: 16/10;
}
.case-card.hero {
  grid-column: span 12;
  aspect-ratio: 16 / 6;
}

.case-card.vertical {
  grid-column: span 3;
  aspect-ratio: 9 / 16;
  overflow: hidden !important;
}

.case-card.horizontal {
  grid-column: span 6;
  aspect-ratio: 16 / 9;
  overflow: hidden !important;

}

.case-card.square {
  grid-column: span 3;
  aspect-ratio: 1 / 1;
}

.case-card.banner {
  grid-column: span 12;
  aspect-ratio: 970 / 250;
}

.case-card.skyscraper {
  grid-column: span 2;
  aspect-ratio: 1 / 5;
}

.case-card.small {
  grid-column: span 3;
  aspect-ratio: 300 / 250;
}

@media (max-width: 900px) {
  .case-card {
    grid-column: span 12 !important;
  }
}
.case-thumb {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}
.case-card:hover { border-color: var(--hairline-gold); }
.case-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(5, 5, 5, 0.92) 0%,
        rgba(5, 5, 5, 0.18) 50%,
        transparent 100%
    );
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.case-tag {
    align-self: flex-start;
    font-family: "JetBrains Mono", monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    border: 1px solid var(--hairline-gold);
    padding: 6px 12px;
    background: rgba(8, 8, 8, 0.6);
    backdrop-filter: blur(6px);
}
.case-meta { display: flex; justify-content: space-between; align-items: flex-end; }
.case-client {
    font-family: "Bebas Neue", sans-serif;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}
.case-sub {
    font-size: 12px;
    color: var(--fg-dim);
    margin-top: 6px;
}
.case-play {
    width: 56px;
    height: 56px;
    border: 1px solid var(--gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(8, 8, 8, 0.4);
    backdrop-filter: blur(4px);
}
.case-card:hover .case-play { background: var(--gold); }
.case-card:hover .case-play svg path { fill: var(--bg); }

/* ----------------------- MODULES (Olimpo.AI / slide-07) ----------------------- */
.modules-section {
    padding: 160px 0;
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(to bottom, transparent, rgba(15, 15, 13, 0.6), transparent);
}
.modules-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    margin-top: 80px;
}
@media (max-width: 1100px) {
    .modules-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .modules-grid { grid-template-columns: 1fr 1fr; }
}
.module-card {
    position: relative;
    aspect-ratio: 0.85 / 1;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    padding: 28px 22px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: border-color 0.4s ease, transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.module-card::before {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 50%;
    background: var(--module-tint, rgba(212, 160, 85, 0.18));
    opacity: 0.16;
    transition: opacity 0.4s ease, height 0.5s ease;
    pointer-events: none;
}
.module-card:hover {
    transform: translateY(-6px);
    border-color: var(--module-color, var(--gold));
}
.module-card:hover::before {
    opacity: 0.28;
    height: 70%;
}
.module-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--module-color, var(--gold));
    color: var(--bg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.module-name {
    font-family: "Archivo Black", sans-serif;
    font-size: 24px;
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--module-color, var(--gold));
    margin-bottom: 10px;
    position: relative;
    z-index: 1;
}
.module-tagline {
    font-family: "JetBrains Mono", monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--fg-dim);
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
}
.module-desc {
    font-size: 13px;
    color: var(--fg-dim);
    line-height: 1.5;
    margin-top: auto;
    position: relative;
    z-index: 1;
}

/* ----------------------- CAPACIDADES (slide-08 style) ----------------------- */
.capacidades {
    padding: 160px 0;
    position: relative;
    overflow: hidden;
}
.capacidades-bg-text {
    position: absolute;
    top: 50%;
    right: -8vw;
    transform: translateY(-50%);
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: clamp(220px, 32vw, 480px);
    color: transparent;
    -webkit-text-stroke: 1px rgba(212, 160, 85, 0.05);
    line-height: 0.85;
    letter-spacing: -0.04em;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.capacidades-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 64px;
    margin-top: 56px;
    position: relative;
    z-index: 1;
}
@media (max-width: 800px) {
    .capacidades-grid { grid-template-columns: 1fr; gap: 4px 0; }
}
.cap-row {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 18px;
    padding: 28px 0;
    border-bottom: 1px solid var(--hairline);
    align-items: baseline;
}
.cap-row:hover .cap-num { color: var(--gold); }
.cap-num {
    font-family: "Archivo Black", sans-serif;
    font-size: 32px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--gold);
    transition: color 0.3s ease;
}
.cap-title {
    font-family: "Archivo Black", sans-serif;
    font-size: 20px;
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    margin-bottom: 8px;
    color: var(--fg);
}
.cap-desc {
    color: var(--fg-dim);
    font-size: 13px;
    line-height: 1.55;
    max-width: 320px;
}

/* ----------------------- ENGAGEMENT (slide-09 style) ----------------------- */
.engagement {
    padding: 140px 0 160px;
    position: relative;
    overflow: hidden;
}
.engage-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 64px;
}
@media (max-width: 1100px) {
    .engage-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .engage-grid { grid-template-columns: 1fr; }
}
.engage-card {
    position: relative;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    padding: 32px 26px 36px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 360px;
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.4s ease;
}
.engage-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--engage-color, var(--gold));
}
.engage-card::after {
    content: "";
    position: absolute;
    inset: 1px 1px auto 1px;
    height: 64px;
    background: linear-gradient(to bottom, var(--engage-color, var(--gold)), transparent);
    opacity: 0.06;
    pointer-events: none;
}
.engage-card:hover {
    transform: translateY(-4px);
    border-color: var(--engage-color, var(--gold));
}
.engage-icon {
    width: 36px;
    height: 36px;
    color: var(--engage-color, var(--gold));
}
.engage-name {
    font-family: "Archivo Black", sans-serif;
    font-size: 20px;
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--fg);
}
.engage-tag {
    font-family: "JetBrains Mono", monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--engage-color, var(--gold));
    margin-top: -4px;
}
.engage-desc {
    color: var(--fg-dim);
    font-size: 13px;
    line-height: 1.55;
}
.engage-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--hairline);
}
.engage-list li {
    font-size: 12px;
    color: var(--fg-dim);
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.engage-list li::before {
    content: "+";
    color: var(--engage-color, var(--gold));
    font-family: "Archivo Black", sans-serif;
    flex-shrink: 0;
}
.engage-roman {
    position: absolute;
    bottom: 16px;
    right: 20px;
    font-family: "Instrument Serif", serif;
    font-style: italic;
    font-size: 28px;
    color: var(--engage-color, var(--gold));
    opacity: 0.35;
    line-height: 1;
}

/* ----------------------- PERFORMANCE (slide-10 style) ----------------------- */
.performance {
    padding: 140px 0;
    position: relative;
}
.perf-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 56px;
}
@media (max-width: 700px) {
    .perf-grid { grid-template-columns: 1fr; }
}
.perf-card {
    position: relative;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    padding: 48px 44px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 240px;
    overflow: hidden;
    transition: border-color 0.4s ease, transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.perf-card:hover {
    transform: translateY(-4px);
    border-color: var(--perf-color, var(--gold));
}
.perf-icon {
    position: absolute;
    top: 32px;
    right: 32px;
    width: 28px;
    height: 28px;
    color: var(--perf-color, var(--gold));
    opacity: 0.7;
}
.perf-num {
    font-family: "Archivo Black", sans-serif;
    font-size: clamp(56px, 7vw, 88px);
    line-height: 0.9;
    letter-spacing: -0.04em;
    color: var(--fg);
}
.perf-num .accent { color: var(--perf-color, var(--gold)); }
.perf-label {
    font-family: "Archivo Black", sans-serif;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    line-height: 1;
    color: var(--fg);
}
.perf-desc {
    color: var(--fg-dim);
    font-size: 13px;
    max-width: 380px;
    line-height: 1.55;
}

/* ----------------------- CONCEITO (kept, vivid strike) ----------------------- */
.conceito {
    padding: 180px 0;
    position: relative;
    overflow: hidden;
}
.conceito-bg-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: clamp(200px, 28vw, 480px);
    line-height: 0.85;
    color: transparent;
    -webkit-text-stroke: 1px rgba(212, 160, 85, 0.06);
    letter-spacing: -0.04em;
    white-space: nowrap;
    pointer-events: none;
    z-index: 0;
}
.conceito-content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 96px;
    align-items: center;
}
@media (max-width: 1000px) {
    .conceito-content { grid-template-columns: 1fr; gap: 56px; }
}
.conceito-kicker {
    font-family: "Bebas Neue", sans-serif;
    font-size: clamp(56px, 7vw, 120px);
    line-height: 0.92;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}
.conceito-kicker .strike {
    position: relative;
    color: var(--fg-faint);
}
.conceito-kicker .strike::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -4%;
    width: 108%;
    height: 6px;
    background: var(--magenta);
    transform: rotate(-4deg);
    box-shadow: 0 0 18px var(--magenta-glow);
}
.conceito-kicker .gold { color: var(--gold); }
.conceito-kicker .magenta { color: var(--magenta); }

.conceito-list {
    list-style: none;
    display: flex;
    flex-direction: column;
}
.conceito-list li {
    padding: 24px 0;
    border-top: 1px solid var(--hairline);
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 20px;
    align-items: start;
}
.conceito-list li:last-child { border-bottom: 1px solid var(--hairline); }
.conceito-num {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    color: var(--gold);
    letter-spacing: 0.18em;
    padding-top: 4px;
}
.conceito-li-title {
    font-family: "Bebas Neue", sans-serif;
    font-size: 32px;
    line-height: 1;
    margin-bottom: 6px;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}
.conceito-li-desc {
    font-size: 13px;
    color: var(--fg-dim);
    line-height: 1.6;
}

/* ----------------------- CTA FINAL — O Chamado (split asymmetric) ----------------------- */
.cta-final {
    padding: 140px 0 160px;
    position: relative;
}
.cta-final::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 50% at 80% 30%, rgba(236, 59, 111, 0.12), transparent 60%),
        radial-gradient(ellipse 50% 40% at 10% 80%, rgba(45, 212, 207, 0.08), transparent 60%);
    pointer-events: none;
}
.cta-split {
    position: relative;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 72px;
    align-items: stretch;
    min-height: 720px;
}
.cta-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 0;
}
.cta-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 40px;
}
.cta-num {
    font-family: "JetBrains Mono", monospace;
    font-size: 12px;
    color: var(--magenta);
    letter-spacing: 0.2em;
    font-weight: 500;
}
.cta-meta-line {
    flex: 0 0 56px;
    height: 1px;
    background: linear-gradient(to right, var(--magenta), transparent);
}
.cta-label {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    letter-spacing: 0.36em;
    color: var(--fg-dim);
    text-transform: uppercase;
}
.cta-h2 {
    font-family: "Archivo Black", sans-serif;
    font-size: clamp(72px, 8.6vw, 156px);
    line-height: 0.84;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: var(--fg);
    margin: 0;
}
.cta-line {
    display: block;
    position: relative;
}
.cta-line:nth-child(2) {
    margin-left: 0.18em;
    color: var(--gold);
}
.cta-h2 .ghost {
    color: transparent;
    -webkit-text-stroke: 1.5px var(--fg);
    margin-left: 0.08em;
}
.cta-q {
    color: var(--magenta);
    margin-left: 0.04em;
    text-shadow: 0 0 40px rgba(236, 59, 111, 0.5);
}
.cta-rule {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 44px 0 32px;
    max-width: 360px;
}
.cta-rule-line {
    flex: 1;
    height: 1px;
    background: var(--hairline-strong);
}
.cta-body {
    color: var(--fg-dim);
    font-size: 16px;
    line-height: 1.65;
    max-width: 480px;
    margin: 0 0 44px;
}
.cta-actions {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
}
.cta-btn {
    background: var(--magenta) !important;
    color: #fff !important;
    border-color: var(--magenta) !important;
    box-shadow: 0 0 0 0 rgba(236, 59, 111, 0.5);
    transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.cta-btn:hover {
    box-shadow: 0 0 0 6px rgba(236, 59, 111, 0.18), 0 12px 32px rgba(236, 59, 111, 0.3);
    transform: translateY(-1px);
}
.cta-link {
    color: var(--fg);
    font-family: "JetBrains Mono", monospace;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px;
    border-bottom: 1px solid transparent;
    transition: border-color 0.25s ease, color 0.25s ease;
}
.cta-link:hover {
    color: var(--magenta);
    border-bottom-color: var(--magenta);
}

/* Right column — figure */
.cta-figure {
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: center;
}
.cta-figure-frame {
    position: relative;
    width: 100%;
    max-width: 480px;
    border: 1px solid var(--hairline-strong);
    background: #050505;
    overflow: hidden;
    box-shadow:
        0 0 0 1px rgba(236, 59, 111, 0.18) inset,
        0 40px 120px -40px rgba(236, 59, 111, 0.4),
        0 30px 80px -30px rgba(0, 0, 0, 0.8);
}
.cta-figure-frame::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(236, 59, 111, 0.18));
    pointer-events: none;
    z-index: 2;
}
.cta-figure-frame::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(236, 59, 111, 0.25);
    pointer-events: none;
    z-index: 3;
    mix-blend-mode: screen;
}
.cta-figure-frame img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 720px;
    object-fit: cover;
    object-position: center;
    filter: contrast(1.05) saturate(1.05);
}
.cta-burst {
    position: absolute;
    top: 8%;
    left: 50%;
    transform: translateX(-50%);
    width: 220px;
    height: 220px;
    color: rgba(212, 160, 85, 0.2);
    z-index: 1;
    pointer-events: none;
}
.cta-figure-tag {
    position: absolute;
    bottom: 24px;
    left: 24px;
    z-index: 4;
    font-family: "JetBrains Mono", monospace;
    font-size: 10px;
    letter-spacing: 0.32em;
    color: #fff;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 8px 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
}
.cta-tag-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--magenta);
    box-shadow: 0 0 10px var(--magenta);
}

@media (max-width: 960px) {
    .cta-split {
        grid-template-columns: 1fr;
        gap: 48px;
        min-height: 0;
    }
    .cta-figure-frame img { min-height: 520px; }
    .cta-h2 { font-size: clamp(56px, 14vw, 112px); }
}
.cta-image { display: none; }

/* ----------------------- FOOTER ----------------------- */
.footer {
    padding: 80px 0 48px;
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--hairline);
}
.footer-mega {
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: clamp(96px, 18vw, 320px);
    line-height: 0.86;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(212, 160, 85, 0.18);
    text-transform: uppercase;
    user-select: none;
    margin-bottom: 32px;
}
.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 48px;
    flex-wrap: wrap;
    margin-bottom: 48px;
}
.footer-mark {
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: clamp(72px, 10vw, 140px);
    line-height: 0.9;
    letter-spacing: -0.02em;
    color: var(--fg);
    text-transform: uppercase;
}
.footer-mark img {
    display: block;
    height: clamp(70px, 8.8vw, 140px);
    width: auto;
    object-fit: contain;
}
.footer-mark .gold { color: var(--gold); }
.footer-tag {
    font-size: 13px;
    color: var(--fg-dim);
    max-width: 320px;
    line-height: 1.6;
}
.footer-email {
    display: inline-block;
    margin-top: 16px;
    font-family: "JetBrains Mono", monospace;
    font-size: 13px;
    color: var(--gold);
    letter-spacing: 0.02em;
    text-decoration: none;
    border-bottom: 1px solid rgba(212, 160, 85, 0.4);
    padding-bottom: 2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.footer-email:hover {
    color: var(--fg);
    border-color: var(--fg);
}
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: "JetBrains Mono", monospace;
    font-size: 10px;
    color: var(--fg-faint);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding-top: 24px;
    border-top: 1px solid var(--hairline);
    flex-wrap: wrap;
    gap: 16px;
}
.footer-bottom a { color: var(--fg-faint); transition: color 0.2s ease; }
.footer-bottom a:hover { color: var(--gold); }

/* ----------------------- MODAL ----------------------- */
.modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(0, 0, 0, 0.88);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    opacity: 0;
    pointer-events: none;
}
.modal.open { opacity: 1; pointer-events: auto; }
.modal-content {
    width: 95vw;
  max-width: 1600px;
  height: 90vh;
    aspect-ratio: 16/9;
    background: var(--bg-raised);
    border: 1px solid var(--hairline-gold);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 16px;
    overflow: hidden;
}
.modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--hairline);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(8, 8, 8, 0.6);
    color: var(--fg);
}
.modal-close:hover { border-color: var(--gold); color: var(--gold); }
.modal-label {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
}
.modal-title {
    font-family: "Bebas Neue", sans-serif;
    font-size: 48px;
    text-align: center;
    text-transform: uppercase;
}
.modal-frame {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        repeating-linear-gradient(45deg, rgba(212, 160, 85, 0.02) 0 12px, transparent 12px 24px),
        var(--bg-raised);
    z-index: -1;
}
.modal-placeholder {
    font-family: "JetBrains Mono", monospace;
    font-size: 10px;
    color: var(--fg-faint);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    position: absolute;
    bottom: 24px;
    left: 24px;
    pointer-events: none;
}

/* ----------------------- SCROLL REVEAL ----------------------- */
[data-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 1100ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 1100ms cubic-bezier(0.2, 0.8, 0.2, 1),
        filter 1100ms cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
    filter: blur(2px);
}
[data-reveal="fade"] { transform: none; }
[data-reveal="rise"] { transform: translate3d(0, 28px, 0); }
[data-reveal="rise-lg"] { transform: translate3d(0, 56px, 0); }
[data-reveal="left"] { transform: translate3d(-36px, 0, 0); }
[data-reveal="right"] { transform: translate3d(36px, 0, 0); }
[data-reveal].is-visible {
    opacity: 1;
    transform: none;
    filter: none;
}
@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
}

/* ----------------------- HOVER MICRO-INTERACTIONS ----------------------- */
.btn {
    transition:
        transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
        background 0.35s ease,
        color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.4s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn.primary:hover { box-shadow: 0 16px 40px -16px rgba(212, 160, 85, 0.55); }
.btn .btn-arrow { transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); }
.btn:hover .btn-arrow { transform: translateX(4px); }

.nav-cta {
    transition:
        background 0.35s ease,
        color 0.35s ease,
        border-color 0.35s ease,
        transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nav-cta:hover { transform: translateY(-1px); }
.nav-links a { transition: color 0.3s ease; }
.nav-links a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 1px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nav-links a:hover::after { transform: scaleX(1); }

.stat-card {
    transition:
        transform 0.55s cubic-bezier(0.2, 0.8, 0.2, 1),
        background 0.45s ease,
        border-color 0.45s ease,
        box-shadow 0.55s ease;
}
.stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 48px -28px rgba(212, 160, 85, 0.4);
}

.case-card {
    transition:
        transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 0.45s ease,
        box-shadow 0.6s ease;
}
.case-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.7);
}
.case-thumb { transition: transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1); }
.case-card:hover .case-thumb { transform: scale(1.05); }
.case-play {
    transition:
        background 0.4s ease,
        transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.case-card:hover .case-play { transform: scale(1.08); }

.conceito-list li { transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); }
.conceito-list li:hover { transform: translateX(6px); }

.cta-card {
    transition:
        transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 0.6s ease;
}
.cta-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.7);
}

[data-parallax] { will-change: transform; }

/* ----------------------- TWEAKS PANEL ----------------------- */
.tweaks {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 300;
    width: 280px;
    background: rgba(14, 14, 12, 0.92);
    border: 1px solid var(--hairline-gold);
    backdrop-filter: blur(16px);
    padding: 20px;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    color: var(--fg);
    letter-spacing: 0.02em;
}
.tweaks-title {
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.tweaks-row { margin-bottom: 14px; }
.tweaks-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--fg-faint);
    margin-bottom: 8px;
}
.tweaks-swatches {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.swatch {
    aspect-ratio: 1;
    border: 1px solid var(--hairline);
    cursor: pointer;
}
.swatch.active { border-color: var(--fg); }
.tweaks-options {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    background: var(--hairline);
    padding: 1px;
}
.tweaks-options button {
    background: var(--bg);
    padding: 8px 4px;
    font-family: inherit;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--fg-dim);
}
.tweaks-options button.active { background: var(--gold); color: var(--bg); }
.tweaks-slider {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 2px;
    background: var(--hairline);
    cursor: pointer;
}
.tweaks-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 12px;
    background: var(--gold);
    border-radius: 50%;
}
.tweaks-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    background: var(--gold);
    border: 0;
    border-radius: 50%;
}
.tweaks-close { color: var(--fg-faint); }
.tweaks.hidden { display: none; }

/* ----------------------- MOBILE NAV ----------------------- */
.mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(5, 5, 5, 0.98);
    backdrop-filter: blur(20px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    opacity: 0;
    pointer-events: none;
}
.mobile-overlay.open { opacity: 1; pointer-events: auto; }
.mobile-overlay a {
    font-family: "Archivo Black", "Bebas Neue", sans-serif;
    font-size: 42px;
    color: var(--fg);
    text-transform: uppercase;
}
.mobile-overlay a:hover { color: var(--gold); }
.mobile-close {
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 24px;
    color: var(--fg);
}
.mobile-logo {
    position: absolute;
    top: 24px;
    left: 24px;
    display: block;
}
.mobile-logo img {
    display: block;
    height: 53px;
    width: auto;
    object-fit: contain;
}


.case-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.case-thumb {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.case-preview {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .5s ease;
}

.case-card:hover .case-preview {
  transform: scale(1.03);
}

.case-iframe {

  border: none;
  pointer-events: none;
  overflow: hidden;

}


.case-card.samsung {
    aspect-ratio: 16 / 9;
}
