/* ==========================================================================
   WIGWAM. — SISTEMA DE DISEÑO
   Dirección: Editorial de cine, inspirado en A24. Motivo de firma: la claqueta
   y el timecode — ROLL / ESCENA / TOMA como estructura, no decoración.
   ========================================================================== */

:root {
    --paper: #F3EFE6;
    --paper-dim: #ECE6D8;
    --ink: #12100D;
    --ink-soft: #55504A;
    --ink-faint: #8C8578;
    --gold: #E29A3C;
    --gold-deep: #A8621F;
    --halo: #59D6DE;
    --line: rgba(18, 16, 13, 0.14);
    --line-solid: rgba(18, 16, 13, 0.9);

    --f-display: 'Archivo', sans-serif;
    --f-serif: 'Fraunces', serif;
    --f-mono: 'Space Mono', monospace;

    --ease: cubic-bezier(0.19, 1, 0.22, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--f-display);
}

body {
    overflow-x: hidden;
    font-weight: 400;
}

img { display: block; max-width: 100%; }
a { color: inherit; }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb { background: var(--ink); }

/* ==========================================================================
   Utilidades / Estructura
   ========================================================================== */
.wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 40px;
}

.slate-eyebrow {
    font-family: var(--f-mono);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-soft);
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
}

.slate-eyebrow::before {
    content: '';
    width: 22px;
    height: 1px;
    background: var(--gold-deep);
}

.section-head {
    max-width: 640px;
    margin-bottom: 72px;
}

.section-head h2 {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: clamp(2.4rem, 4.5vw, 3.6rem);
    letter-spacing: -0.02em;
    line-height: 1.02;
    text-transform: uppercase;
}

.section-head p {
    font-family: var(--f-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1.2rem;
    color: var(--ink-soft);
    margin-top: 14px;
}

section { position: relative; }

.hairline-top { border-top: 1px solid var(--line); }

.arrow-link {
    font-family: var(--f-mono);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--ink);
    transition: gap 0.35s var(--ease), color 0.35s var(--ease), border-color 0.35s var(--ease);
}

.arrow-link:hover { gap: 16px; color: var(--gold-deep); border-color: var(--gold-deep); }
.arrow-link.reverse { flex-direction: row-reverse; }

.arrow-link .arrow { font-size: 1.05rem; line-height: 1; transform: translateY(-1px); }

.btn-flat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--f-mono);
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 15px 30px;
    background: var(--ink);
    color: var(--paper);
    transition: background 0.35s var(--ease), color 0.35s var(--ease);
}

.btn-flat:hover { background: var(--gold-deep); color: var(--paper); }

.btn-flat.ghost {
    background: transparent;
    color: var(--ink);
    box-shadow: inset 0 0 0 1px var(--ink);
}

.btn-flat.ghost:hover { box-shadow: inset 0 0 0 1px var(--gold-deep); color: var(--gold-deep); background: transparent; }

/* Marca esfera (mismo lenguaje del logo, en CSS puro para nitidez a cualquier tamaño) */
.sphere-mark {
    --s: 34px;
    width: var(--s);
    height: var(--s);
    border-radius: 50%;
    flex-shrink: 0;
    background: url('assets/logo-sphere.png') center / cover no-repeat;
    box-shadow: 0 0 0 1px rgba(89, 214, 217, 0.35), 0 0 14px 1px rgba(89, 214, 217, 0.25);
}

.sphere-mark.lg { --s: 96px; box-shadow: 0 0 0 1.5px rgba(89, 214, 217, 0.4), 0 0 40px 4px rgba(89, 214, 217, 0.3); }

/* Perforación de película — divisor de firma entre secciones (una sola fila) */
.film-perf {
    height: 18px;
    background-color: var(--ink);
    background-image: radial-gradient(circle, var(--paper) 3px, transparent 3.5px);
    background-repeat: repeat-x;
    background-size: 22px 100%;
    background-position: 11px center;
}
.film-perf.on-dark {
    background-color: var(--paper);
    background-image: radial-gradient(circle, var(--ink) 3px, transparent 3.5px);
}

/* ==========================================================================
   Pantalla de Estreno (Launch Gate)
   ========================================================================== */
html.gate-active, html.gate-active body { overflow: hidden; height: 100%; }

.launch-gate {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: var(--ink);
    color: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    opacity: 1;
    visibility: visible;
    overflow: hidden;
    transition: opacity 0.9s var(--ease), visibility 0s linear 0s;
}

.launch-gate.gate-hidden {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.9s var(--ease), visibility 0s linear 0.9s;
}

.launch-gate-bg { position: absolute; inset: 0; z-index: 0; }
.launch-gate-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
    transform: scale(1.02);
}
.launch-gate-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 62%, rgba(18,16,13,0.35) 0%, rgba(18,16,13,0.72) 55%, rgba(18,16,13,0.94) 100%);
}

.launch-gate-inner { position: relative; z-index: 1; padding: 32px; }

.launch-gate .sphere-mark { margin: 0 auto 22px; }

.launch-eyebrow {
    justify-content: center;
    color: rgba(243,239,230,0.55);
    margin-bottom: 10px;
}
.launch-eyebrow::before { display: none; }

.launch-title {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    margin-bottom: 32px;
    text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}

.launch-gate .countdown-container { justify-content: center; }
.launch-gate .countdown-item { min-width: 76px; }
.launch-gate .countdown-num { font-size: 2.2rem; text-shadow: 0 2px 16px rgba(0,0,0,0.5); }

.launch-sub {
    font-family: var(--f-mono);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: rgba(243,239,230,0.4);
    margin-top: 28px;
    text-transform: uppercase;
}

/* ==========================================================================
   Header
   ========================================================================== */
.main-header {
    position: fixed;
    top: 0; left: 0; width: 100%;
    z-index: 200;
    padding: 22px 0;
    transition: background 0.4s var(--ease), padding 0.4s var(--ease), border-color 0.4s var(--ease);
    border-bottom: 1px solid transparent;
}

.main-header.scrolled {
    background: rgba(243, 239, 230, 0.92);
    backdrop-filter: blur(10px);
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }

.logo-text {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: 1.3rem;
    letter-spacing: -0.01em;
    text-transform: uppercase;
}

.nav-menu { display: flex; align-items: center; gap: 34px; }

.nav-link {
    font-family: var(--f-mono);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--ink-soft);
    transition: color 0.3s var(--ease);
}

.nav-link:hover { color: var(--ink); }

.nav-link.btn-header {
    color: var(--ink);
    padding-bottom: 3px;
    border-bottom: 1px solid var(--ink);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero-section { padding-top: 0; }

.hero-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    min-height: 100vh;
}

.hero-content-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 160px 56px 80px 40px;
}

.hero-title {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: clamp(3.8rem, 8vw, 6.6rem);
    line-height: 0.86;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.hero-tagline {
    font-family: var(--f-serif);
    font-style: italic;
    font-size: 1.35rem;
    color: var(--ink-soft);
    max-width: 480px;
    line-height: 1.35;
    margin-bottom: 20px;
}

.hero-description {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--ink-soft);
    max-width: 460px;
    margin-bottom: 48px;
}

/* Timecode / claqueta digital */
.timecode-slate {
    background: var(--ink);
    color: var(--paper);
    display: inline-flex;
    align-items: stretch;
    margin-bottom: 44px;
}

.timecode-slate .tc-label {
    font-family: var(--f-mono);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--halo);
    display: flex;
    align-items: center;
    padding: 0 16px;
    border-right: 1px solid rgba(255,255,255,0.15);
}

.countdown-container { display: flex; align-items: stretch; }

.countdown-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 16px 16px;
    min-width: 58px;
}

.countdown-num {
    font-family: var(--f-mono);
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1;
}

.countdown-label {
    font-family: var(--f-mono);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(243,239,230,0.55);
    margin-top: 6px;
}

.countdown-divider { display: flex; align-items: center; color: rgba(243,239,230,0.3); font-family: var(--f-mono); }

.hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }

.hero-image-col {
    position: relative;
    background: var(--ink);
    overflow: hidden;
}

.hero-image-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
}

.badge-premiere {
    position: absolute;
    bottom: 28px;
    left: 28px;
    font-family: var(--f-mono);
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--paper);
    background: rgba(18,16,13,0.55);
    backdrop-filter: blur(4px);
    padding: 8px 14px;
    z-index: 2;
}

/* ==========================================================================
   MUBI Promo — banda negra
   ========================================================================== */
.mubi-section { background: var(--ink); color: var(--paper); }

.mubi-inner {
    padding: 120px 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 56px;
    align-items: center;
}

.mubi-title {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 3.1rem);
    text-transform: uppercase;
    line-height: 1.02;
    letter-spacing: -0.02em;
}

.mubi-title em {
    font-family: var(--f-serif);
    font-style: italic;
    font-weight: 400;
    color: var(--gold);
    text-transform: none;
}

.mubi-text {
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(243,239,230,0.72);
    max-width: 380px;
}

.mubi-section .btn-flat {
    background: var(--paper);
    color: var(--ink);
}
.mubi-section .btn-flat:hover { background: var(--gold); }

/* ==========================================================================
   Concepto
   ========================================================================== */
.concept-section { padding: 140px 0; }

.concept-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 56px;
}

.concept-card { border-top: 1px solid var(--line-solid); padding-top: 26px; }

.concept-scene {
    font-family: var(--f-mono);
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    color: var(--gold-deep);
    margin-bottom: 18px;
    display: block;
}

.concept-card h3 {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: 1.6rem;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.concept-serif {
    font-family: var(--f-serif);
    font-style: italic;
    color: var(--ink-soft);
    margin-bottom: 18px;
    font-size: 1.02rem;
}

.concept-card p:not(.concept-serif) {
    font-size: 0.96rem;
    line-height: 1.7;
    color: var(--ink-soft);
}

/* ==========================================================================
   Galería — contact sheet
   ========================================================================== */
.gallery-section { padding: 140px 0 120px; }

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 4px;
}

.gallery-item { position: relative; overflow: hidden; background: var(--ink); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease); }
.gallery-item:hover img { transform: scale(1.04); }

.g-1 { grid-column: span 7; aspect-ratio: 4/3; }
.g-2 { grid-column: span 5; aspect-ratio: 4/5; }
.g-3 { grid-column: span 4; aspect-ratio: 3/4; }
.g-4 { grid-column: span 4; aspect-ratio: 3/4; }
.g-5 { grid-column: span 4; aspect-ratio: 3/4; }

.item-meta {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 20px;
    background: linear-gradient(0deg, rgba(18,16,13,0.85) 0%, transparent 100%);
    color: var(--paper);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}

.gallery-item:hover .item-meta { opacity: 1; transform: translateY(0); }

.meta-label {
    font-family: var(--f-mono);
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    color: var(--halo);
    display: block;
    margin-bottom: 4px;
}

.meta-title { font-family: var(--f-display); font-weight: 700; font-size: 1rem; }

/* ==========================================================================
   Trailer — pantalla "en construcción"
   ========================================================================== */
.trailer-section { background: var(--ink); color: var(--paper); padding: 150px 0; text-align: center; }

.building-frame { max-width: 560px; margin: 0 auto; }

.sphere-mark.lg { margin: 0 auto 40px; }

.building-tag {
    font-family: var(--f-mono);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--halo);
    margin-bottom: 18px;
}

.building-title {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 2.8rem);
    text-transform: uppercase;
    margin-bottom: 18px;
    letter-spacing: -0.01em;
}

.building-desc {
    font-family: var(--f-serif);
    font-style: italic;
    color: rgba(243,239,230,0.65);
    font-size: 1.1rem;
    line-height: 1.6;
    margin-bottom: 40px;
}

.trailer-section .btn-flat { background: var(--paper); color: var(--ink); }
.trailer-section .btn-flat:hover { background: var(--gold); }

/* ==========================================================================
   Shop — pantalla "construyendo página" (claro, sobre papel)
   ========================================================================== */
.shop-section { padding: 150px 0; text-align: center; }

.shop-section .sphere-mark.lg { margin: 0 auto 40px; }

.shop-section .building-tag { color: var(--gold-deep); }

.shop-section .building-title { color: var(--ink); }

.shop-section .building-desc {
    font-family: var(--f-serif);
    font-style: italic;
    color: var(--ink-soft);
    font-size: 1.1rem;
    line-height: 1.6;
    margin-bottom: 40px;
}

.shop-section .btn-flat { background: var(--ink); color: var(--paper); }
.shop-section .btn-flat:hover { background: var(--gold-deep); }

.shop-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 160px 0 80px;
}

.shop-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    flex-wrap: wrap;
}

/* ==========================================================================
   Anfitriones — lista editorial, sin cajas
   ========================================================================== */
.hosts-section { padding: 140px 0; }

.host-row {
    display: grid;
    grid-template-columns: 90px 1fr 1.3fr;
    gap: 40px;
    align-items: start;
    padding: 40px 0;
    border-top: 1px solid var(--line-solid);
}

.hosts-grid .host-row:last-child { border-bottom: 1px solid var(--line-solid); }

.host-number { font-family: var(--f-mono); font-size: 0.85rem; color: var(--gold-deep); padding-top: 6px; }

.host-name-col h3 {
    font-family: var(--f-display);
    font-weight: 800;
    font-size: 2rem;
    text-transform: uppercase;
    line-height: 1;
    margin-bottom: 10px;
}

.host-username a {
    font-family: var(--f-mono);
    font-size: 0.8rem;
    text-decoration: none;
    color: var(--ink-soft);
    border-bottom: 1px solid var(--line);
}
.host-username a:hover { color: var(--gold-deep); border-color: var(--gold-deep); }

.host-bio-serif {
    font-family: var(--f-serif);
    font-style: italic;
    font-size: 1.15rem;
    margin-bottom: 12px;
}

.host-bio-text { font-size: 0.95rem; line-height: 1.7; color: var(--ink-soft); max-width: 480px; }

/* ==========================================================================
   Comunidad
   ========================================================================== */
.join-section { background: var(--ink); color: var(--paper); padding: 140px 0; }

.join-box { max-width: 720px; margin: 0 auto; text-align: center; }

.join-box .section-head { margin: 0 auto 44px; }
.join-box .section-head h2 { color: var(--paper); }

.join-text {
    font-family: var(--f-serif);
    font-style: italic;
    font-size: 1.25rem;
    color: rgba(243,239,230,0.7);
    margin-bottom: 46px;
}

.platforms-links {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.platform-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--paper);
    font-family: var(--f-mono);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(243,239,230,0.3);
    transition: border-color 0.3s var(--ease), color 0.3s var(--ease);
}

.platform-btn:hover { border-color: var(--gold); color: var(--gold); }
.platform-icon { width: 16px; height: 16px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.main-footer { padding: 40px 0; }

.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    font-family: var(--f-mono);
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    color: var(--ink-faint);
}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
.scroll-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.scroll-reveal.active { opacity: 1; transform: translateY(0); }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width: 1080px) {
    .hero-grid { grid-template-columns: 1fr; min-height: auto; }
    .hero-image-col { height: 60vh; order: -1; }
    .hero-content-col { padding: 120px 32px 64px; }
    .concept-grid { grid-template-columns: 1fr; gap: 36px; }
    .mubi-inner { grid-template-columns: 1fr; text-align: left; gap: 28px; padding: 90px 0; }
    .host-row { grid-template-columns: 50px 1fr; }
    .host-name-col { grid-column: 2; }
    .host-bio-col { grid-column: 2; }
}

@media (max-width: 720px) {
    .wrap { padding: 0 24px; }
    .nav-menu { display: none; }
    .hero-title { font-size: 3.4rem; }
    .hero-content-col { padding: 110px 24px 56px; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .g-1, .g-2 { grid-column: span 2; aspect-ratio: 4/3; }
    .g-3, .g-4, .g-5 { grid-column: span 1; }
    .countdown-item { min-width: 44px; padding: 14px 10px; }
    .countdown-num { font-size: 1.3rem; }
    .section-head h2 { font-size: 2.2rem; }
}
