/* FreakCon Early Bird — CSS para YOOtheme Pro (scopeado bajo .fkn-site)
   Fuentes auto-alojadas (@font-face -> /fonts): Anton, Inter (variable) y
   Sink (fuente propia del cliente). Tipografia/color del tema neutralizados.
   Generado por tools/build_yootheme.py — no editar a mano. */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/anton-regular.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}
@font-face{font-family:'Sink';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/sink-regular.woff2') format('woff2')}

/* --- reset de tipografia/color del tema DENTRO del scope --- */
.fkn-site *{font-family:inherit;color:inherit}

:root{--red:          #e4181b;
  --red-deep:     #a80d0e;
  --red-bright:   #ff2e22;
  --red-darkest:  #5c0808;
  --brand-red:    #ff0000;
  --yellow:       #eeff35;
  --yellow-deep:  #d3e620;
  --cyan:         #00e1ff;
  --ink:          #0b0a09;
  --ink-soft:     #1c1917;
  --paper:        #fffdf8;
  --paper-dim:    #f4ece0;

  --display: "Sink", "Anton", "Arial Narrow", sans-serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --panel-radius: 34px 54px 30px 58px / 46px 30px 56px 34px;
  --panel-radius-sm: 16px 26px 14px 26px / 20px 14px 26px 16px;

  --container: 1180px;
  --container-wide: 1400px;}
.fkn-site *, .fkn-site *::before, .fkn-site *::after{box-sizing: border-box;}
html{scroll-behavior: smooth;}
.fkn-site{margin:0;
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;}
.fkn-site img{max-width:100%; display:block;}
.fkn-site a{color: inherit; text-decoration:none;}
.fkn-site ul{list-style:none; margin:0; padding:0;}
.fkn-site section[id]{scroll-margin-top: 100px;}
.fkn-site .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.fkn-site .wrap{max-width: var(--container);
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);}
.fkn-site .only-desktop{display:none;}
@media (min-width: 720px){.fkn-site .only-desktop{display:inline;}}
.fkn-site .only-mobile{display:inline;}
@media (min-width: 720px){.fkn-site .only-mobile{display:none;}}
.fkn-site .halftone-fixed{display:none;}
.fkn-site .halftone{position:absolute; inset:0;
  background-image: radial-gradient(rgba(0,0,0,.35) 1.4px, transparent 1.6px);
  background-size: 13px 13px;
  mix-blend-mode: multiply;
  opacity:.35;
  pointer-events:none;}
.fkn-site .comic-badge{display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family: var(--display);
  letter-spacing: .01em;
  line-height:1.15;
  padding: 10px 20px;
  border: 4px solid var(--ink);
  border-radius: var(--panel-radius-sm);
  font-size: clamp(.72rem, 1.6vw, .95rem);
  text-transform: uppercase;
  box-shadow: 5px 5px 0 0 var(--ink);}
.fkn-site .comic-badge--dark{background: var(--red); color: var(--paper);}
.fkn-site .comic-badge--light{background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight:800;}
.fkn-site .comic-panel{background: var(--paper);
  border: 4px solid var(--ink);
  border-radius: var(--panel-radius-sm);
  box-shadow: 7px 7px 0 0 var(--ink);}
.fkn-site .comic-bubble{position:relative;
  background: var(--paper);
  border: 7px solid var(--ink);
  border-radius: var(--panel-radius);
  box-shadow: 12px 12px 0 0 var(--ink);
  padding: clamp(28px, 5vw, 56px) clamp(24px, 6vw, 72px) clamp(44px, 6vw, 64px);}
.fkn-site .bubble-tail{position:absolute;
  left: 14%;
  bottom: -34px;
  width: 64px; height: 46px;
  background: var(--paper);
  border-left: 7px solid var(--ink);
  border-bottom: 7px solid var(--ink);
  clip-path: polygon(0 0, 100% 0, 0 100%);}
.fkn-site .btn{display:inline-flex;
  align-items:center;
  gap: .5em;
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .01em;
  border: 4px solid var(--ink);
  border-radius: 999px;
  cursor:pointer;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease;}
.fkn-site .btn-yellow{background: var(--yellow);
  color: var(--ink);
  box-shadow: 6px 6px 0 0 var(--ink);}
.fkn-site .btn-yellow:hover{transform: translate(-2px,-2px); box-shadow: 8px 8px 0 0 var(--ink);}
.fkn-site .btn-yellow:active{transform: translate(2px,2px); box-shadow: 2px 2px 0 0 var(--ink);}
.fkn-site .btn-big{font-size: clamp(1.05rem, 2.4vw, 1.5rem); padding: .85em 1.5em;}
.fkn-site .btn-big .ticket-ic{height: 1.3em;}
.fkn-site .btn-header{font-size: clamp(.85rem, 1.6vw, 1.05rem); padding: .8em 2.2em; border-width: 3px; box-shadow: 4px 4px 0 0 var(--ink);}
.fkn-site .btn-header .ticket-ic{height: 1.15em;}
.fkn-site .btn-small{font-size: .85rem; padding: .6em 1.2em; border-width: 3px; box-shadow: 4px 4px 0 0 var(--ink);}
.fkn-site .btn-small .ticket-ic{height: 1.1em;}
.fkn-site img.ticket-ic{display:inline-block; width:auto; transform: rotate(-12deg);}
.fkn-site .eyebrow{font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--red);
  font-size: .95rem;
  margin: 0 0 8px;}
.fkn-site .eyebrow--onred{color: var(--yellow);}
.fkn-site .section-title{font-family: var(--display);
  text-transform: uppercase;
  font-size: clamp(1.9rem, 4.5vw, 3rem);
  line-height: 1.05;
  margin: 0 0 .6em;
  color: var(--ink);}
.fkn-site .section-title--onred{color: var(--paper);}
.fkn-site .site-header{position: fixed; top:0; left:0; right:0; z-index: 50;
  background: transparent;
  padding: 14px clamp(10px, 2.5vw, 24px) 0;
  animation: fkn-site-header-drop .7s cubic-bezier(.16,1,.3,1) .1s both;}
.fkn-site .header-inner{max-width: 1480px;
  display:flex; align-items:center; justify-content:space-between;
  gap: 16px;
  height: 80px;
  background: var(--brand-red);
  border: 4px solid var(--ink);
  border-radius: 26px;
  box-shadow: 6px 6px 0 0 var(--ink);
  padding: 0 clamp(10px, 2vw, 20px) 0 clamp(14px, 2.5vw, 26px);}
.fkn-site .brand{position:relative;
  align-self:stretch;
  display:flex; align-items:center;
  min-width: clamp(120px, 16vw, 220px);
  flex: none;}
.fkn-site .brand-logo{position:absolute;
  top: 50%; left:0;
  transform: translateY(-50%);
  height: clamp(52px, 7.5vw, 104px);
  width:auto;
  max-width:none;
  z-index: 2;
  filter: drop-shadow(0 8px 14px rgba(0,0,0,.4));}
@keyframes fkn-site-header-drop{from{ opacity:0; transform: translateY(-18px); }
  to{ opacity:1; transform: translateY(0); }}
.fkn-site .hero{position: relative;
  background: var(--ink);
  min-height: 100vh;
  display:flex;
  align-items:center;
  padding: 96px 0 56px;
  overflow: hidden;}
.fkn-site .hero-bg{position:absolute; inset:0; overflow:hidden;}
.fkn-site .hero-vignette{position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(92,8,8,.16) 0%, rgba(11,10,9,.32) 65%, rgba(11,10,9,.5) 100%),
    linear-gradient(0deg, rgba(11,10,9,.55) 0%, transparent 32%);
  pointer-events:none;}
.fkn-site .hero-video{position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  filter: saturate(1.1) contrast(1.03) brightness(.95);}
.fkn-site .hero-inner{position:relative; z-index:2;
  width:100%;
  display:flex; flex-direction:column; align-items:center; text-align:center;}
.fkn-site .hero-bloque{width: min(64%, 460px);
  margin: 0 auto 18px;
  filter: drop-shadow(0 14px 24px rgba(0,0,0,.45));
  animation: fkn-site-hero-in .8s cubic-bezier(.16,1,.3,1) .15s both;}
.fkn-site .hero-festival{font-family: var(--display);
  text-transform: uppercase;
  font-size: clamp(.85rem, 4.2vw, 1.05rem);
  letter-spacing: .04em;
  line-height: 1;
  color: var(--paper);
  max-width: 420px;
  margin: 0 auto 22px;
  text-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: fkn-site-hero-in .8s cubic-bezier(.16,1,.3,1) .22s both;}
@media (min-width: 720px){.fkn-site .hero-festival{font-size: clamp(1.15rem, 1.7vw, 1.6rem);
    line-height: 1.2;
    max-width: none;
    white-space: nowrap;}}
.fkn-site .hero-dates{font-family: var(--display);
  text-transform: uppercase;
  font-size: clamp(1.6rem, 4.5vw, 2.5rem);
  color: var(--paper);
  margin: 0 0 8px;
  letter-spacing: .01em;
  text-shadow: 0 3px 12px rgba(0,0,0,.5);
  animation: fkn-site-hero-in .8s cubic-bezier(.16,1,.3,1) .3s both;}
.fkn-site .hero-dates span{color: var(--yellow);}
.fkn-site .hero-sub{font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: clamp(1.05rem, 2.2vw, 1.3rem);
  margin: 0 0 48px;
  color: var(--paper);
  text-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: fkn-site-hero-in .8s cubic-bezier(.16,1,.3,1) .42s both;}
.fkn-site .hero-inner .btn-big{opacity:0;
  animation: fkn-site-hero-fade .6s ease .54s forwards;}
.fkn-site .hero-urgency{margin-top: 22px;
  color: var(--paper);
  font-weight: 700;
  font-size: .98rem;
  text-align:center;
  max-width: 520px;
  animation: fkn-site-hero-in .8s cubic-bezier(.16,1,.3,1) .66s both;}
.fkn-site .hero-urgency .dot{display:inline-block;
  width:9px; height:9px; border-radius:50%;
  background: var(--yellow);
  box-shadow: 0 0 0 3px rgba(238,255,53,.35);
  animation: fkn-site-pulse 1.6s infinite ease-in-out;
  margin-right: 8px;
  vertical-align: middle;}
.fkn-site .hero-urgency-sub{display:block;
  margin-top: 4px;
  font-weight: 600;
  font-size: .88em;
  opacity: .8;}
@keyframes fkn-site-pulse{0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.4); opacity:.6; }}
@keyframes fkn-site-hero-in{from{ opacity:0; transform: translateY(24px); }
  to{ opacity:1; transform: translateY(0); }}
@keyframes fkn-site-hero-fade{from{ opacity:0; }
  to{ opacity:1; }}
.fkn-site .why-section{background: var(--paper); padding: 84px 0; text-align:center;}
.fkn-site .why-section .wrap{max-width: var(--container-wide);}
.fkn-site .why-section .eyebrow, .fkn-site .why-section .section-title{text-align:center;}
.fkn-site .why-grid{display:grid; gap: 22px;
  grid-template-columns: 1fr;
  margin-top: 44px;
  text-align:left;
  align-items: stretch;}
@media (min-width: 780px){.fkn-site .why-grid{grid-template-columns: repeat(3, 1fr);}}
.fkn-site .why-card{padding: 32px 28px;
  display:flex; flex-direction:column;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;}
.fkn-site .why-grid .why-card:hover{transform: translate(-6px,-6px);
  box-shadow: 12px 12px 0 0 var(--ink);
  border-color: var(--red);}
.fkn-site .why-card:hover .why-ic{animation: fkn-site-wiggle .5s ease;}
@keyframes fkn-site-wiggle{0%,100%{ transform: rotate(0); }
  25%{ transform: rotate(-12deg); }
  75%{ transform: rotate(12deg); }}
.fkn-site .why-head{display:flex; align-items:center; gap: 14px; margin-bottom: 12px;}
.fkn-site .why-ic{font-size: 2.1rem; display:block; flex:none; line-height:1;}
.fkn-site .why-card h3{font-family: var(--display);
  text-transform: uppercase;
  font-size: 1.25rem;
  margin: 0;}
.fkn-site .why-card p{margin:0; color: var(--ink-soft); line-height:1.55; font-size: .98rem;}
.fkn-site .gallery-section{background: var(--paper);
  padding: 84px 0 70px;
  position:relative;}
.fkn-site .gallery-section .wrap{text-align:center;}
.fkn-site .gallery-intro{max-width: 640px; margin: 0 auto;
  color: var(--ink);
  opacity: .82;
  font-size: 1.02rem;
  line-height:1.6;}
.fkn-site .reel{margin-top: 34px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);}
.fkn-site .reel + .reel{margin-top: 18px;}
.fkn-site .reel-wrap{display:flex;
  width: max-content;
  animation: fkn-site-reel-scroll 62s linear infinite;}
.fkn-site .reel--reverse .reel-wrap{animation-direction: reverse;}
.fkn-site .reel:hover .reel-wrap{animation-play-state: paused;}
.fkn-site .reel-track{display:flex; flex-shrink:0;}
.fkn-site .reel-item{margin: 0 9px;
  height: clamp(220px, 32vw, 360px);
  flex-shrink:0;
  border: 4px solid var(--ink);
  border-radius: 16px;
  overflow:hidden;
  box-shadow: 6px 6px 0 0 var(--ink);
  background: var(--ink);}
.fkn-site .reel-item img{height:100%; width:auto; max-width:none; object-fit:cover;}
@keyframes fkn-site-reel-scroll{from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }}
.fkn-site .tickets-section{background: var(--red-deep);
  background-image:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.06), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(255,255,255,.05), transparent 40%);
  padding: 88px 0 96px;}
.fkn-site .tickets-head{text-align:center; margin-bottom: 34px; display:flex; flex-direction:column; align-items:center;}
.fkn-site .tickets-head .comic-badge{margin-bottom: 34px;}
.fkn-site .tickets-sub{color: var(--paper); font-weight:700; font-size: 1.05rem; line-height:1.5; margin: 0 0 14px; opacity:.95;}
.fkn-site .tickets-urgency{color: var(--yellow);
  font-weight:800;
  font-size: .98rem;
  text-align:center;}
.fkn-site .tickets-urgency .dot{display:inline-block;
  width:9px; height:9px; border-radius:50%; background: var(--yellow);
  box-shadow: 0 0 0 3px rgba(238,255,53,.3);
  animation: fkn-site-pulse 1.6s infinite ease-in-out;
  margin-right: 8px;
  vertical-align: middle;}
.fkn-site .tickets-bubble{max-width: 780px;
  margin: 0 auto;
  padding: clamp(16px, 3vw, 26px) clamp(14px, 3vw, 26px) clamp(26px, 4vw, 38px);}
.fkn-site .tickets-bubble .bubble-tail{display:none;}
.fkn-site .kef-frame{position:relative;}
.fkn-site .kef-wrap{border-radius: 18px;
  overflow: hidden;}
.fkn-site .kef-wrap iframe{display:block; width:100%; pointer-events: auto;}
.fkn-site .tickets-fallback{text-align:center;
  margin: 18px 0 0;
  font-size: .92rem;
  color: var(--ink-soft);}
.fkn-site .tickets-fallback a{font-weight:800; color: var(--red); text-decoration: underline;}
.fkn-site .final-cta{background: var(--paper); padding: 90px 0 100px; text-align:center;}
.fkn-site .final-cta-inner{display:flex; flex-direction:column; align-items:center; gap: 10px;}
.fkn-site .final-cta p{font-weight:700; color: var(--ink-soft); margin: 0 0 22px; font-size: 1.05rem;}
.fkn-site .site-footer{position:relative;
  background: var(--ink);
  color: var(--paper);
  overflow:hidden;}
.fkn-site .site-footer::before{content:"";
  position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--brand-red), var(--yellow));}
.fkn-site .footer-ghost{position:absolute;
  left:0; right:0; bottom: -7.7vw;
  text-align:center;
  font-family: var(--display);
  font-size: 26.5vw;
  line-height:1;
  color: var(--paper);
  opacity: .045;
  white-space: nowrap;
  pointer-events:none;
  user-select:none;}
.fkn-site .footer-wrap{position:relative; z-index:1;}
.fkn-site .footer-top{text-align:center; padding: 64px 0 40px;}
.fkn-site .footer-logo{height: 64px; margin: 0 auto 18px;}
.fkn-site .footer-tagline{margin: 0 auto;
  max-width: 540px;
  color: rgba(255,253,248,.62);
  font-size: .95rem;
  line-height: 1.65;}
.fkn-site .footer-rule{height:1px; background: rgba(255,255,255,.12);}
.fkn-site .footer-grid{display:grid;
  grid-template-columns: 1fr;
  gap: 36px;
  padding: 48px 0;}
@media (min-width: 620px){.fkn-site .footer-grid{grid-template-columns: repeat(2, 1fr);}}
@media (min-width: 900px){.fkn-site .footer-grid{grid-template-columns: repeat(4, 1fr); gap: 26px;}}
.fkn-site .footer-heading{font-family: var(--sans);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-size: .76rem;
  color: rgba(255,253,248,.42);
  margin: 0 0 16px;}
.fkn-site .footer-block .footer-link, .fkn-site .footer-block .footer-links a{display:block;
  font-size: .98rem;
  font-weight: 600;
  color: rgba(255,253,248,.88);
  margin-bottom: 10px;
  border-bottom: 1px solid transparent;
  width: max-content;
  transition: color .15s ease, border-color .15s ease;}
.fkn-site .footer-block .footer-link:hover, .fkn-site .footer-block .footer-links a:hover{color: var(--paper); border-color: rgba(255,253,248,.4);}
.fkn-site .footer-link--accent{color: var(--yellow) !important; font-weight: 800 !important;}
.fkn-site .footer-note{margin: 2px 0 0; font-size: .82rem; color: rgba(255,253,248,.45);}
.fkn-site .footer-text{margin: 0 0 10px; font-size: .95rem; line-height: 1.6; color: rgba(255,253,248,.82);}
.fkn-site .footer-links{display:flex; flex-direction:column;}
.fkn-site .footer-bottom{border-top: 1px solid rgba(255,255,255,.12);
  padding: 24px 0 40px;
  display:flex; flex-direction:column; gap: 10px;
  align-items:center; text-align:center;
  font-size: .82rem;
  color: rgba(255,253,248,.45);}
@media (min-width: 620px){.fkn-site .footer-bottom{flex-direction:row; justify-content:space-between; text-align:left;}}
.fkn-site .footer-bottom p{margin:0;}
.fkn-site .footer-organiza{display:flex; flex-direction:column; align-items:center;
  gap: 8px;}
@media (min-width: 620px){.fkn-site .footer-organiza{align-items:flex-end;}}
.fkn-site .footer-organiza-label{font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 700;
  color: rgba(255,253,248,.4);}
.fkn-site .footer-organiza-logo{height: 22px;
  width:auto;
  opacity: .82;
  transition: opacity .15s ease;}
.fkn-site .footer-organiza:hover .footer-organiza-logo{opacity: 1;}
.fkn-site .reveal-lift{opacity:0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease;}
.fkn-site .reveal-lift.is-visible{opacity:1; transform: translateY(0);}
.fkn-site .reveal-fade{opacity:0; transition: opacity .5s ease;}
.fkn-site .reveal-fade.is-visible{opacity:1;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;}.fkn-site .hero-urgency .dot, .fkn-site .tickets-urgency .dot{animation:none;}.fkn-site .reel-wrap{animation:none;}.fkn-site .reveal-lift, .fkn-site .reveal-fade{opacity:1; transform:none; transition:none;}.fkn-site .site-header, .fkn-site .hero-bloque, .fkn-site .hero-festival, .fkn-site .hero-dates, .fkn-site .hero-sub, .fkn-site .hero-urgency, .fkn-site .hero-inner .btn-big{animation:none; opacity:1; transform:none;}.fkn-site .why-card:hover{transform:none;}.fkn-site .why-card:hover .why-ic{animation:none;}}