:root {
    --ink: #07151b;
    --ink-2: #0b2229;
    --ink-3: #102f35;
    --paper: #eef3ee;
    --white: #ffffff;
    --muted: #91a6a7;
    --teal: #00bfa6;
    --teal-light: #56e0cb;
    --orange: #f2a33a;
    --line: rgba(238,243,238,.13);
    --shell: min(1180px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--ink);
    color: var(--paper);
    font-family: "Outfit", sans-serif;
    overflow-x: hidden;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; position: relative; z-index: 3; }
.section { padding: 120px 0; position: relative; }
.noise {
    position: fixed; inset: 0; pointer-events: none; z-index: 100;
    opacity: .035;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: none; }

.site-header {
    position: fixed; inset: 0 0 auto; z-index: 50;
    padding: 16px 0;
    transition: background .35s ease, border .35s ease, padding .35s ease;
}
.site-header.scrolled {
    background: rgba(7,21,27,.82);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
}
.jca-nav {
    width: var(--shell); margin: auto;
    display: flex; align-items: center; justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 10px; font-family: "Barlow Condensed", sans-serif; font-weight: 800; font-size: 1.45rem; letter-spacing: .08em; }
.brand img { width: 46px; height: 46px; object-fit: contain; filter: drop-shadow(0 5px 10px rgba(0,0,0,.25)); }
.brand-dot { color: var(--teal); }
.nav-menu { display: flex; align-items: center; gap: 27px; }
.nav-menu > a { color: #b9c8c8; font-size: .78rem; font-weight: 600; letter-spacing: .08em; transition: color .25s ease; }
.nav-menu > a:hover { color: var(--white); }
.nav-cta { color: var(--ink) !important; background: var(--teal); padding: 11px 16px; border-radius: 2px; }
.nav-cta:hover { background: var(--teal-light); }
.nav-toggle { display:none; border:0; background:none; color:var(--white); padding:8px; }
.nav-toggle span { display:block; width:26px; height:2px; margin:5px; background:currentColor; transition:.25s; }

.hero {
    min-height: 100svh; position: relative; overflow: hidden;
    display: flex; align-items: center;
    background:
        radial-gradient(circle at 75% 30%, rgba(0,191,166,.13), transparent 28%),
        linear-gradient(180deg, #07151b 0%, #0a1c23 65%, #0b2229 100%);
}
.hero-grid {
    position:absolute; inset:0; opacity:.16;
    background-image:
        linear-gradient(rgba(86,224,203,.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(86,224,203,.09) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: linear-gradient(to bottom, black, transparent 85%);
}
.hero-glow { position:absolute; border-radius:50%; filter:blur(10px); pointer-events:none; }
.hero-glow-one { width:420px; height:420px; right:8%; top:12%; background:rgba(0,191,166,.08); }
.hero-glow-two { width:280px; height:280px; left:-80px; bottom:10%; background:rgba(242,163,58,.06); }
.hero-content { padding-top: 105px; }
.eyebrow { display:flex; align-items:center; gap:12px; color:var(--teal-light); font-size:.68rem; font-weight:700; letter-spacing:.22em; margin-bottom:30px; }
.eyebrow i { display:block; width:30px; height:1px; background:var(--teal); }
.hero-layout { display:grid; grid-template-columns: 1.25fr .75fr; align-items:center; gap:50px; }
.kicker, .section-tag { margin:0 0 13px; color:var(--orange); font-size:.7rem; font-weight:800; letter-spacing:.2em; }
.hero h1, .section-heading h2, .about-copy h2, .principles-header h2, .results-box h2, .contact-copy h2 {
    margin:0; font-family:"Barlow Condensed", sans-serif; font-weight:900; line-height:.87; letter-spacing:.015em;
}
.hero h1 { font-size: clamp(4rem, 8.3vw, 8rem); }
.hero h1 em, .section-heading h2 span, .about-copy h2 span, .principles-header h2 span, .results-box h2 span, .contact-copy h2 span {
    color: var(--teal); font-style:normal;
}
.title-mark { color:var(--orange); }
.hero-text { max-width:660px; margin:30px 0 30px; color:#a9bbbb; line-height:1.75; font-size:1rem; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:20px;
    min-height:50px; padding:0 22px; font-size:.73rem; font-weight:800; letter-spacing:.12em;
    border:1px solid transparent; transition: transform .25s ease, background .25s ease, color .25s ease, border .25s ease;
}
.btn span { font-size:1.1rem; }
.btn-primary { background:var(--teal); color:var(--ink); }
.btn-primary:hover { transform:translateY(-3px); background:var(--teal-light); }
.btn-ghost { border-color:rgba(238,243,238,.22); color:var(--paper); }
.btn-ghost:hover { transform:translateY(-3px); border-color:var(--teal); color:var(--teal-light); }
.btn.is-disabled { opacity:.45; cursor:not-allowed; pointer-events:none; }

.hero-emblem { position:relative; min-height:420px; display:grid; place-items:center; }
.hero-emblem img { position:relative; z-index:2; width:min(370px, 80%); animation: float 6s ease-in-out infinite; filter: drop-shadow(0 20px 30px rgba(0,0,0,.35)); }
.emblem-ring {
    position:absolute; width:390px; height:390px; border:1px solid rgba(86,224,203,.22); border-radius:50%;
}
.emblem-ring::before, .emblem-ring::after {
    content:""; position:absolute; inset:25px; border:1px dashed rgba(242,163,58,.2); border-radius:50%;
    animation: spin 28s linear infinite;
}
.emblem-ring::after { inset:-20px; border-style:solid; border-color:transparent rgba(86,224,203,.12) transparent transparent; animation-direction:reverse; animation-duration:20s; }
.emblem-caption { position:absolute; bottom:10px; display:flex; gap:9px; color:#7d9798; font-size:.56rem; font-weight:800; letter-spacing:.14em; }
.track-lines { position:absolute; right:-9vw; bottom:7%; width:58vw; height:190px; transform:rotate(-9deg); opacity:.14; }
.track-lines span { display:block; height:2px; margin:31px 0; background:linear-gradient(90deg, transparent, var(--teal), transparent); }

.mountain-art { position:absolute; inset:auto 0 0; height:46%; opacity:.42; pointer-events:none; }
.mountain-art svg { width:100%; height:100%; display:block; }
.mountain-back { fill:#0d3035; }
.mountain-front { fill:#09262d; }
.snow-line { fill:none; stroke:#b7d9d4; stroke-width:6; opacity:.3; stroke-linecap:round; }
.scroll-cue { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:12px; color:#6f888a; font-size:.6rem; letter-spacing:.22em; }
.scroll-cue i { width:45px; height:1px; background:var(--teal); position:relative; }
.scroll-cue i::after { content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-right:1px solid var(--teal); border-bottom:1px solid var(--teal); transform:rotate(-45deg); }

.event-section { background:#edf2ed; color:var(--ink); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:55px; }
.section-heading h2, .about-copy h2, .principles-header h2, .results-box h2, .contact-copy h2 { font-size:clamp(3.5rem, 6vw, 6.5rem); }
.section-intro { max-width:270px; margin:0 0 4px; color:#617273; font-size:.9rem; line-height:1.6; }

.event-card {
    min-height:430px; display:grid; grid-template-columns:1.3fr .7fr;
    background:#09252c; color:var(--paper); position:relative; overflow:hidden;
    box-shadow:0 28px 70px rgba(7,21,27,.17);
}
.event-number { position:absolute; left:28px; top:28px; font-family:"Barlow Condensed"; font-weight:700; font-size:.7rem; letter-spacing:.15em; color:#567b7d; }
.event-number strong { color:var(--teal); }
.event-main { padding:72px 50px 50px; position:relative; z-index:3; }
.event-status { display:flex; align-items:center; gap:8px; color:var(--teal-light); font-size:.62rem; font-weight:800; letter-spacing:.18em; margin-bottom:15px; }
.event-status span { width:7px; height:7px; background:var(--orange); border-radius:50%; box-shadow:0 0 0 5px rgba(242,163,58,.12); animation:pulse 2s infinite; }
.event-main h3 { margin:0; font-family:"Barlow Condensed"; font-size:clamp(3rem, 5vw, 5.5rem); line-height:.9; letter-spacing:.02em; }
.event-main > p { max-width:620px; margin:22px 0 30px; color:#a7bbbb; line-height:1.7; font-size:.93rem; }
.event-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 0; margin-bottom:28px; }
.event-meta div { display:flex; flex-direction:column; gap:5px; }
.meta-label { color:#628083; font-size:.58rem; letter-spacing:.16em; font-weight:800; }
.event-meta strong { font-size:.84rem; font-weight:600; }
.event-actions { display:flex; align-items:center; gap:22px; }
.text-link { font-size:.68rem; font-weight:800; letter-spacing:.13em; color:#b8caca; }
.text-link:hover { color:var(--teal-light); }
.text-link span { color:var(--teal); margin-left:8px; }
.event-visual { position:relative; overflow:hidden; background:linear-gradient(150deg,#123a40,#071a20); }
.event-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#09252c 0%,transparent 25%), repeating-linear-gradient(170deg,transparent 0 55px,rgba(86,224,203,.12) 56px 57px); }
.event-mountain { position:absolute; inset:auto -15% 0 -10%; height:58%; background:linear-gradient(135deg,transparent 0 23%,#0e3439 24% 39%,transparent 40%), linear-gradient(45deg,transparent 0 37%,#0b2b32 38% 56%,transparent 57%); transform:skewX(-8deg); }
.event-lines { position:absolute; inset:auto 0 30px; height:110px; border-top:1px solid rgba(86,224,203,.25); border-bottom:1px solid rgba(86,224,203,.2); transform:skewY(-9deg); }

.about-section { background:#0b2229; }
.about-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; align-items:center; }
.about-visual { min-height:500px; position:relative; border:1px solid rgba(86,224,203,.15); overflow:hidden; background:linear-gradient(145deg,#102f35,#07181e); }
.about-visual::before { content:""; position:absolute; inset:0; background:linear-gradient(135deg,transparent 48%,rgba(0,191,166,.08) 49% 50%,transparent 51%), linear-gradient(45deg,transparent 50%,rgba(242,163,58,.05) 51% 52%,transparent 53%); }
.vertical-word { position:absolute; left:30px; top:20px; writing-mode:vertical-rl; font-family:"Barlow Condensed"; font-size:6rem; font-weight:900; line-height:1; color:rgba(238,243,238,.06); }
.about-stamp { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-7deg); width:245px; height:245px; border:1px solid rgba(86,224,203,.5); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--teal-light); }
.about-stamp::before { content:""; position:absolute; inset:12px; border:1px dashed rgba(242,163,58,.35); border-radius:50%; }
.about-stamp span { font-size:.6rem; letter-spacing:.22em; }
.about-stamp strong { font-family:"Barlow Condensed"; font-size:2.5rem; line-height:.83; margin:12px 0; color:var(--white); }
.about-stamp small { font-size:.52rem; letter-spacing:.15em; }
.coordinate { position:absolute; right:22px; bottom:20px; color:#5f7e80; font-family:"Barlow Condensed"; font-size:.8rem; letter-spacing:.08em; }
.about-copy { max-width:650px; }
.about-copy > p:not(.section-tag) { color:#9eb1b2; line-height:1.8; font-size:.95rem; max-width:620px; }
.about-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-top:38px; }
.about-facts div { border-top:1px solid var(--line); padding-top:15px; display:flex; flex-direction:column; gap:4px; }
.about-facts strong { font-family:"Barlow Condensed"; color:var(--teal); font-size:2rem; line-height:1; }
.about-facts span { color:#7f999a; font-size:.68rem; line-height:1.4; }

.disciplines-section { background:#edf2ed; color:var(--ink); }
.discipline-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.discipline-card { min-height:330px; padding:28px; background:#dfe8e1; position:relative; overflow:hidden; display:flex; flex-direction:column; transition:transform .4s ease, background .4s ease; }
.discipline-card:hover { transform:translateY(-8px); background:#d5e2da; }
.discipline-card-dark { background:#09252c; color:var(--paper); }
.discipline-card-dark:hover { background:#0e343b; }
.card-index { font-family:"Barlow Condensed"; color:#7b9090; font-size:.7rem; letter-spacing:.15em; }
.discipline-icon { margin-top:auto; color:var(--teal); font-family:"Barlow Condensed"; font-size:4rem; line-height:1; }
.discipline-card h3 { margin:10px 0 7px; font-family:"Barlow Condensed"; font-size:2.5rem; line-height:.9; }
.discipline-card p { margin:0; color:#607475; font-size:.78rem; line-height:1.55; max-width:230px; }
.discipline-card-dark p { color:#91a8a9; }
.card-line { width:45px; height:2px; background:var(--orange); margin-top:22px; }

.principles-section { background:#f2f5f1; color:var(--ink); }
.principles-header { display:flex; justify-content:space-between; align-items:end; padding-bottom:55px; }
.principles-list { border-top:1px solid #c7d2cd; }
.principle { display:grid; grid-template-columns:80px 1fr 1.2fr; gap:30px; align-items:center; min-height:115px; border-bottom:1px solid #c7d2cd; transition:padding .3s ease, background .3s ease; }
.principle:hover { padding-left:15px; background:rgba(0,191,166,.04); }
.principle > span { color:#8a9b9a; font-family:"Barlow Condensed"; font-size:.85rem; }
.principle h3 { margin:0; font-family:"Barlow Condensed"; font-size:2.2rem; }
.principle p { margin:0; color:#687b7b; font-size:.83rem; line-height:1.5; }

.results-section { background:#07151b; }
.results-box { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.results-box > div:first-child > p:last-child { max-width:430px; color:#91a6a7; line-height:1.7; }
.results-empty { min-height:300px; border:1px dashed rgba(86,224,203,.25); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; background:rgba(255,255,255,.015); }
.results-empty::before { content:""; position:absolute; width:160px; height:160px; border:1px solid rgba(86,224,203,.1); border-radius:50%; }
.results-icon { font-family:"Barlow Condensed"; font-size:3rem; color:var(--teal); z-index:1; }
.results-empty strong { font-size:.75rem; letter-spacing:.18em; z-index:1; margin-top:12px; }
.results-empty small { color:#668083; font-size:.55rem; letter-spacing:.16em; margin-top:7px; z-index:1; }

.contact-section { background:#0b2229; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.contact-copy > p:not(.section-tag) { max-width:450px; color:#94aaab; line-height:1.7; }
.contact-place { margin-top:32px; color:var(--teal-light); font-size:.65rem; font-weight:800; letter-spacing:.18em; }
.contact-links { border-top:1px solid var(--line); }
.contact-link { display:flex; align-items:center; justify-content:space-between; min-height:110px; border-bottom:1px solid var(--line); transition:padding .3s ease, color .3s ease; }
.contact-link:hover { padding:0 15px; color:var(--teal-light); }
.contact-link span { display:flex; flex-direction:column; gap:7px; }
.contact-link small { color:#617c7e; font-size:.55rem; letter-spacing:.18em; }
.contact-link strong { font-family:"Barlow Condensed"; font-size:2rem; }
.contact-link b { color:var(--orange); font-size:1.3rem; }

.site-footer { background:#061116; border-top:1px solid var(--line); padding:30px 0; }
.footer-grid { display:grid; grid-template-columns:1fr auto auto; gap:30px; align-items:center; }
.footer-brand { display:flex; align-items:center; gap:10px; }
.footer-brand img { width:42px; height:42px; object-fit:contain; }
.footer-brand div { display:flex; flex-direction:column; }
.footer-brand strong { font-family:"Barlow Condensed"; font-size:1.2rem; letter-spacing:.08em; }
.footer-brand span, .footer-credit span, .footer-credit small { color:#5f7779; font-size:.55rem; letter-spacing:.1em; }
.footer-credit { display:flex; flex-direction:column; align-items:center; gap:3px; }
.footer-credit a { font-family:"Barlow Condensed"; font-weight:800; letter-spacing:.12em; font-size:1rem; }
.footer-credit a span { color:var(--teal); font-size:1rem; }
.footer-copy { color:#52696b; font-size:.65rem; }

@keyframes float { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-12px) } }
@keyframes spin { to { transform:rotate(360deg) } }
@keyframes pulse { 0%,100% { box-shadow:0 0 0 4px rgba(242,163,58,.12) } 50% { box-shadow:0 0 0 9px rgba(242,163,58,0) } }

@media (max-width: 1000px) {
    .hero-layout, .about-grid, .results-box, .contact-grid { grid-template-columns:1fr; }
    .hero-emblem { min-height:330px; }
    .emblem-ring { width:300px; height:300px; }
    .hero-emblem img { width:280px; }
    .discipline-grid { grid-template-columns:repeat(2,1fr); }
    .about-visual { min-height:420px; }
}
@media (max-width: 760px) {
    :root { --shell: min(100% - 30px, 1180px); }
    .section { padding:85px 0; }
    .nav-toggle { display:block; }
    .nav-menu {
        position:fixed; top:0; right:0; width:min(330px,85vw); height:100vh;
        padding:95px 30px 30px; background:#07151b;
        border-left:1px solid var(--line); transform:translateX(100%); transition:transform .3s ease;
        flex-direction:column; align-items:stretch; gap:0;
    }
    .nav-menu.open { transform:none; }
    .nav-menu > a { padding:16px 0; border-bottom:1px solid var(--line); }
    .nav-cta { margin-top:18px; text-align:center; border-bottom:0 !important; }
    .hero { min-height:900px; align-items:flex-start; }
    .hero-content { padding-top:150px; }
    .hero-layout { gap:10px; }
    .hero h1 { font-size:clamp(3.7rem, 18vw, 6rem); }
    .hero-emblem { min-height:310px; }
    .mountain-art { height:30%; }
    .section-heading, .principles-header { flex-direction:column; align-items:flex-start; }
    .event-card { grid-template-columns:1fr; }
    .event-visual { min-height:270px; }
    .event-main { padding:60px 25px 35px; }
    .event-meta { grid-template-columns:1fr; }
    .event-actions { flex-wrap:wrap; }
    .discipline-grid { grid-template-columns:1fr; }
    .discipline-card { min-height:280px; }
    .about-facts { grid-template-columns:1fr 1fr; }
    .about-facts div:last-child { grid-column:1 / -1; }
    .principle { grid-template-columns:45px 1fr; gap:10px; padding:22px 0; }
    .principle p { grid-column:2; }
    .footer-grid { grid-template-columns:1fr; text-align:center; }
    .footer-brand { justify-content:center; }
    .footer-credit { order:3; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    .reveal { opacity:1; transform:none; }
}


/* =========================================================
   MODAL DE INSCRIPCIONES
   ========================================================= */

.registration-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity .25s ease,
        visibility .25s ease;
}

.registration-modal.open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.registration-overlay {
    position: absolute;
    inset: 0;
    background: rgba(3, 10, 14, .88);
    backdrop-filter: blur(8px);
}

.registration-window {
    position: relative;
    z-index: 2;
    width: min(1100px, 100%);
    height: min(900px, 94vh);
    display: flex;
    flex-direction: column;
    background: #07151b;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 30px 100px rgba(0,0,0,.55);
    transform: translateY(20px) scale(.98);
    transition: transform .3s ease;
    overflow: hidden;
}

.registration-modal.open .registration-window {
    transform: translateY(0) scale(1);
}

.registration-header {
    flex: 0 0 auto;
    min-height: 92px;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: #07151b;
    border-bottom: 1px solid rgba(255,255,255,.10);
}

.registration-kicker {
    display: block;
    margin-bottom: 4px;
    font-family: "Outfit", sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    color: #8fa9b2;
}

.registration-header h2 {
    margin: 0;
    font-family: "Barlow Condensed", sans-serif;
    font-size: clamp(28px, 4vw, 42px);
    line-height: .9;
    font-weight: 800;
    letter-spacing: .02em;
    color: #fff;
}

.registration-header p {
    margin: 7px 0 0;
    font-family: "Outfit", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    color: #8fa9b2;
}

.registration-close {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border: 1px solid rgba(255,255,255,.15);
    background: transparent;
    color: #fff;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.registration-close:hover {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.3);
    transform: rotate(90deg);
}

.registration-frame-wrap {
    flex: 1 1 auto;
    min-height: 0;
    background: #f5f5f5;
}

.registration-frame-wrap iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
}

/* Bloquear scroll del sitio cuando el modal está abierto */
body.registration-open {
    overflow: hidden;
}

/* MOBILE */
@media (max-width: 700px) {

    .registration-modal {
        padding: 0;
    }

    .registration-window {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
    }

    .registration-header {
        min-height: 78px;
        padding: 14px 16px;
    }

    .registration-header p {
        font-size: 9px;
    }

    .registration-close {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        font-size: 28px;
    }
}