:root { --bg:#fff7ea; --fg:#18263c; --mut:#61738b; --card:#fffdf8; --line:#dde6f1; --accent:#ff8a3d; --accent-contrast:#2b1404; --menu-bg:rgba(255,246,223,.92); --menu-fg:#17314f; --menu-hover-bg:#d9f4ef; --menu-hover-fg:#13516d; --menu-dropdown-bg:#fffdf8; --shadow-soft:0 18px 42px rgba(39,59,94,.10); --shadow-strong:0 26px 60px rgba(39,59,94,.16); --radius-card:22px; --font-body:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; --font-heading:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; --font-menu:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; --font-size-base:16px; --font-size-h1:40px; --font-size-h2:30px; --font-size-h3:24px; --font-size-menu:16px; --font-weight-body:400; --font-weight-heading:700; --line-height-body:1.5; --menu-letter-spacing:0px; }
*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--fg); font-family:var(--font-body); font-size:var(--font-size-base); line-height:var(--line-height-body); font-weight:var(--font-weight-body); }
body:not(.auth-screen-page){
  padding-top:76px;
}
h1,h2,h3,h4,h5,h6{ font-family:var(--font-heading); font-weight:var(--font-weight-heading); line-height:1.2; }
h1{ font-size:var(--font-size-h1); }
h2{ font-size:var(--font-size-h2); }
h3{ font-size:var(--font-size-h3); }
body.has-bg-image{
  background:
    linear-gradient(
      rgba(var(--bg-overlay-rgb), var(--bg-overlay-opacity)),
      rgba(var(--bg-overlay-rgb), var(--bg-overlay-opacity))
    ),
    var(--bg-image) center / cover no-repeat,
    var(--bg);
}
a{ color:inherit; text-decoration:none; }
.container{
  max-width:1100px;
  margin:24px auto;
  padding:16px 18px;
  background:rgba(255,252,246,.78);
  border:1px solid rgba(19,32,43,.12);
  border-radius:24px;
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(8px);
}
body.page-index .container,
body.page-pelicula-uxmal .container{
  padding:0 16px;
  background:transparent;
  border:0;
  border-radius:0;
  backdrop-filter:none;
}
form input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
form select,
form textarea{
  border:1px solid rgba(19,32,43,.18) !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

form .form-check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:4px 0;
  color:#12203d;
  font-weight:700;
  line-height:1.5;
}

form .form-check input[type="checkbox"],
form .form-check input[type="radio"]{
  width:18px;
  height:18px;
  margin:3px 0 0;
  flex:0 0 auto;
  accent-color:#56b531;
}

form .form-check span{
  display:block;
  min-width:0;
}

form input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):focus,
form select:focus,
form textarea:focus{
  outline:none;
  border-color:rgba(86,181,49,.72) !important;
  box-shadow:0 0 0 3px rgba(86,181,49,.14) !important;
}

.topbar{ position:fixed; top:0; left:0; right:0; width:100%; z-index:100; display:flex; gap:16px; align-items:center;
  padding:10px 16px; background:
  linear-gradient(90deg, rgba(255,245,223,.94), rgba(233,251,244,.92) 48%, rgba(227,243,255,.92));
  color:var(--menu-fg); backdrop-filter: blur(14px); border-bottom:1px solid rgba(19,32,43,.08); box-shadow:0 12px 28px rgba(13,26,42,.08); }
.brand{ display:flex; align-items:center; gap:10px; font-weight:var(--font-weight-heading); color:var(--menu-fg); font-family:var(--font-menu); font-size:var(--font-size-menu); letter-spacing:var(--menu-letter-spacing); }
.logo{ width:34px; height:34px; object-fit:contain; }
.nav-toggle{
  display:none;
  margin-left:auto;
  width:48px;
  height:48px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--menu-fg);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(11, 19, 37, .08);
}
.nav-toggle span{
  width:20px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.nav{ margin-left:auto; display:flex; gap:10px; align-items:center; }
.nav a{ padding:9px 12px; border-radius:12px; color:var(--menu-fg); font-family:var(--font-menu); font-size:var(--font-size-menu); letter-spacing:var(--menu-letter-spacing); transition:background .15s ease, color .15s ease, transform .12s ease; }
.nav .nav-link:hover{
  background:var(--menu-hover-bg);
  color:var(--menu-hover-fg);
  transform:translateY(-1px);
}
.nav .nav-link.is-active{
  background:linear-gradient(135deg, #8adf3c, #c7f35a);
  color:#18320c;
  font-weight:700;
  box-shadow:0 12px 24px rgba(138,223,60,.24);
}
.nav .nav-link.is-active:hover{
  background:linear-gradient(135deg, #8adf3c, #c7f35a);
  color:#18320c;
}
.nav a:focus-visible, .dropbtn:focus-visible{
  outline:2px solid #7fb8ff;
  outline-offset:2px;
}

.dropdown{ position:relative; }
.dropbtn{ background:transparent; border:0; color:var(--menu-fg); padding:9px 12px; border-radius:12px; cursor:pointer; font-family:var(--font-menu); font-size:var(--font-size-menu); letter-spacing:var(--menu-letter-spacing); transition:background .15s ease, color .15s ease, transform .12s ease; }
.dropbtn:hover{ background:var(--menu-hover-bg); color:var(--menu-hover-fg); }
.dropdown.is-active .dropbtn{ background:linear-gradient(135deg, #8adf3c, #c7f35a); color:#18320c; font-weight:700; box-shadow:0 12px 24px rgba(138,223,60,.24); }
.dropmenu{ display:none; position:absolute; right:0; top:42px; min-width:220px; background:var(--menu-dropdown-bg);
  border:1px solid rgba(19,32,43,.12); border-radius:16px; padding:8px; box-shadow:var(--shadow-strong); }
.dropdown.open .dropmenu{ display:block; }
.dropdown.open .dropmenu{ display:block; }
.dropmenu a{ display:block; padding:10px 10px; border-radius:10px; color:var(--menu-fg); }
.dropmenu a:hover{ background:var(--menu-hover-bg); color:var(--menu-hover-fg); }
.dropmenu a.is-active{ background:linear-gradient(135deg, #8adf3c, #c7f35a); color:#18320c; font-weight:700; }
@media (hover:hover){
  .dropdown:hover .dropmenu{ display:block; }
}

.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-soft); }
.card .p{ padding:16px; }
.badge{ display:inline-block; padding:4px 10px; border:1px solid rgba(255,138,61,.18); border-radius:999px; color:#6c5778; background:rgba(255,255,255,.92); font-size:12px; }
.event-card{ height:100%; }
.event-card-link{
  display:block;
  height:100%;
  color:inherit;
  text-decoration:none;
}
.event-card-badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.event-card-title{
  margin:10px 0 6px;
}
.event-card-meta,
.event-card-ticket,
.event-card-desc{
  color:var(--mut);
}
.event-card-meta,
.event-card-ticket{
  font-size:14px;
}
.event-card-desc{
  margin:10px 0 0;
}
.event-card:hover{
  border-color:#aebfd2;
}
.event-card-link:focus-visible{
  outline:2px solid #7fb8ff;
  outline-offset:2px;
  border-radius:18px;
}
.event-more-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  border:1px solid rgba(19,32,43,.18);
  background:#fff;
  color:#111;
  border-radius:12px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
  transition:background .15s ease, transform .12s ease, box-shadow .15s ease;
}
.event-more-btn:hover{
  background:#f2f4f7;
  transform:translateY(-1px);
}
.event-badge-past{ background:#fff2f2;border-color:#edc2c2;color:#9d1f1f; }
.event-detail-page{
  display:grid;
  gap:16px;
}
.event-detail-hero{
  display:grid;
  grid-template-columns:minmax(300px, .95fr) minmax(0, 1.05fr);
}
.event-detail-cover{
  margin:0;
  min-height:320px;
  background:#eaf0f8;
}
.event-detail-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.event-detail-intro{
  padding:18px;
  display:grid;
  gap:14px;
  align-content:start;
}
.event-detail-intro h1{
  margin:0;
}
.event-detail-lead{
  margin:0;
  color:var(--mut);
  font-size:16px;
  line-height:1.7;
}
.event-detail-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.event-detail-meta-list{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
}
.event-detail-meta-item{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.35);
}
.event-detail-meta-item span,
.event-detail-label{
  display:block;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--mut);
  margin-bottom:6px;
}
.event-detail-meta-item strong{
  font-size:15px;
}
.event-detail-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.event-detail-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 16px;
  border-radius:12px;
  border:1px solid rgba(19,32,43,.12);
  background:var(--accent);
  color:var(--accent-contrast);
  text-decoration:none;
  font-weight:800;
  box-shadow:0 10px 24px rgba(86,181,49,.18);
  transition:transform .12s ease, filter .15s ease, box-shadow .15s ease;
}
.event-detail-btn:hover{
  filter:brightness(.98);
  transform:translateY(-1px);
}
.event-detail-btn-ghost{
  background:#fff;
  color:#111;
  box-shadow:none;
}
.event-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:16px;
}
.event-detail-card h2{
  margin:0 0 12px;
}
.event-detail-info-stack{
  display:grid;
  gap:14px;
}
.event-detail-info-stack p{
  margin:0;
  color:var(--mut);
  line-height:1.7;
}
.event-ticket-box{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(244,248,252,.82), rgba(255,255,255,.94));
}
.event-ticket-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
  color:var(--mut);
}
.event-ticket-row strong{
  color:var(--fg);
  text-align:right;
}
.event-ticket-note{
  margin:12px 0 0;
  color:var(--mut);
}
.event-ticket-owned{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(239,247,233,.85);
}
.event-ticket-owned p{
  margin:8px 0 0;
  color:var(--fg);
}
.event-ticket-form{
  margin-top:10px;
}
.event-detail-map-wrap{
  margin:0 0 12px;
}
.event-detail-map{
  width:100%;
  height:320px;
  border:1px solid var(--line);
  border-radius:14px;
}
.footer{
  border-top:0;
  padding:14px 16px;
  color:#ffffff;
  background:transparent !important;
  box-shadow:none !important;
}
.footer-inner{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  padding:0;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}
.footer-donate{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid #ffffff;
  background:rgba(255,255,255,.14);
  color:#ffffff;
  font-weight:700;
}
.footer-email{
  color:#ffffff;
  text-decoration:underline;
  text-underline-offset:2px;
}
.footer-social{
  display:flex;
  align-items:center;
  gap:8px;
}
.footer-social-link{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid #ffffff;
  background:rgba(255,255,255,.14);
}
.footer-social-link svg{
  width:18px;
  height:18px;
  fill:#ffffff;
}
.bottomnavmenububble{
  display:none;
}
.bottomnavmenububble-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(12,18,31,.9);
  box-shadow:0 14px 30px rgba(0,0,0,.22);
}
.bottomnavmenububble-link svg{
  width:20px;
  height:20px;
  fill:#fff;
}

.home-hero{
  position:relative;
  min-height:350px;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  margin-bottom:18px;
  background:
    radial-gradient(960px 280px at 84% -4%, rgba(255,199,88,.46), transparent 58%),
    radial-gradient(820px 260px at 18% 10%, rgba(89,210,187,.36), transparent 62%),
    radial-gradient(760px 260px at 50% 0%, rgba(113,180,255,.28), transparent 64%),
    linear-gradient(180deg, #87b7e0 0%, #7b8ee1 22%, #5a66ad 56%, #2f3d6f 100%);
}
.home-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(290px 110px at 12% 18%, rgba(255,255,255,.3), transparent 65%),
    radial-gradient(340px 130px at 30% 14%, rgba(255,255,255,.26), transparent 65%),
    radial-gradient(330px 110px at 55% 22%, rgba(255,255,255,.2), transparent 65%),
    radial-gradient(290px 100px at 80% 16%, rgba(255,255,255,.24), transparent 65%),
    radial-gradient(240px 90px at 92% 28%, rgba(255,255,255,.16), transparent 68%);
  mix-blend-mode:screen;
}
.hero-title-wrap{
  position:relative;
  z-index:1;
  height:100%;
  min-height:350px;
  padding:34px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.hero-title{
  margin:0;
  letter-spacing:.08em;
  font-size:clamp(58px, 15vw, 190px);
  line-height:.9;
  color:#ff9c3d;
  text-shadow:0 20px 40px rgba(34,38,88,.22);
}
.hero-title-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  background:linear-gradient(135deg, rgba(255,255,255,.34), rgba(255,255,255,.12));
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 24px 48px rgba(36,44,92,.16);
  backdrop-filter:blur(10px);
}
.hero-logo{
  width:clamp(68px, 9vw, 120px);
  height:clamp(68px, 9vw, 120px);
  object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.4));
}
.hero-ribbon{
  margin:0;
  padding:7px 14px;
  letter-spacing:.3em;
  font-size:clamp(10px, 2vw, 24px);
  font-weight:700;
  color:#163a5f;
  background:rgba(255,245,223,.76);
  border:1px solid rgba(255,255,255,.42);
  border-radius:999px;
  box-shadow:0 12px 28px rgba(19,49,79,.12);
}
.home-story{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:18px;
  padding:18px;
  margin-bottom:18px;
  background:linear-gradient(135deg, rgba(255,253,248,.95), rgba(246,252,255,.88));
  border:1px solid rgba(173,199,226,.42);
}
.home-story-text h2{
  margin:0 0 12px;
  font-size:30px;
  color:#18263c;
}
.home-story-text p{ margin:0 0 14px; color:#24344c; font-size:22px; line-height:1.35; font-weight:700; }
.home-extra-media{
  margin:0 0 14px;
  border-radius:10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.2);
}
.home-extra-media img{
  display:block;
  width:100%;
  max-height:320px;
  object-fit:cover;
}
.home-extra-btn{
  margin-right:8px;
  margin-bottom:8px;
}
.home-story-media{ display:flex; align-items:center; justify-content:center; }
.media-screen{
  width:100%;
  max-width:520px;
  aspect-ratio:var(--video-aspect-ratio, 16 / 9);
  border:1px solid rgba(255,255,255,.28);
  border-radius:18px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.72) 0 16px, transparent 17px),
    linear-gradient(180deg, rgba(32,72,126,.88), rgba(26,41,92,.96));
  position:relative;
  overflow:hidden;
}
.home-video{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#000;
}
.media-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px;
}
.media-empty p{
  margin:0;
  color:#d7dbe2;
  font-weight:700;
}
.media-screen::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(255,160,82,.22), transparent 42%),
    radial-gradient(400px 120px at 50% 100%, rgba(40,78,130,.52), transparent 60%);
}
.play-ring{
  position:absolute;
  left:50%;
  top:50%;
  width:94px;
  height:94px;
  margin:-47px 0 0 -47px;
  border-radius:50%;
  border:6px solid rgba(255,255,255,.84);
  z-index:2;
}
.play-triangle{
  position:absolute;
  left:50%;
  top:50%;
  margin:-17px 0 0 -7px;
  width:0;
  height:0;
  border-top:17px solid transparent;
  border-bottom:17px solid transparent;
  border-left:28px solid rgba(255,255,255,.9);
  z-index:2;
}
.home-quick{ margin-bottom:18px; }
.allies-page{
  display:grid;
  gap:14px;
}
.allies-kicker{
  display:inline-block;
  margin-bottom:8px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,138,61,.12);
  color:#d36c24;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.allies-intro h1{
  margin:0 0 10px;
}
.allies-intro p{
  margin:0;
  color:var(--mut);
  font-size:17px;
}
.allies-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.allies-summary-card{
  display:grid;
  gap:8px;
}
.allies-summary-card span{
  color:var(--mut);
  font-size:13px;
}
.allies-summary-card strong{
  font-size:34px;
  line-height:1;
}
.allies-section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.allies-section h2{
  margin:0 0 6px;
}
.allies-section p{
  margin:0;
  color:var(--mut);
}
.allies-logos-grid{
  display:grid;
  grid-template-columns:repeat(var(--ally-cols,4),minmax(0,1fr));
  gap:12px;
}
.ally-logo-card{
  min-height: 0;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  display:grid;
  grid-template-rows:minmax(110px, 1fr) auto;
  padding:var(--ally-logo-padding,10px);
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ally-logo-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(10,18,36,.08);
  border-color:rgba(69,169,28,.28);
}
.ally-logo-media{
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:1 / 1;
}
.ally-logo-card img{
  width: auto;
  height: auto;
  max-width: var(--ally-logo-scale, 82%);
  max-height: var(--ally-logo-scale, 82%);
  object-fit: var(--ally-logo-fit, contain);
}
.ally-logo-card span,
.ally-logo-fallback{
  color:#17212b;
  font-weight:700;
  text-align:center;
}
.ally-logo-meta{
  display:grid;
  gap:4px;
  padding:4px 4px 0;
}
.ally-logo-meta strong{
  color:#16202a;
  font-size:14px;
  line-height:1.3;
}
.ally-logo-meta small{
  color:var(--mut);
  font-size:12px;
}
.allies-empty{
  margin:0;
  color:var(--mut);
  padding:10px 0;
}
.ally-card-mode-flat .ally-logo-card{
  border:0;
  border-radius:0;
  background:transparent;
  aspect-ratio:auto;
  padding:0;
  min-height:0;
  box-shadow:none;
}
.ally-card-mode-flat .ally-logo-media{
  padding:var(--ally-logo-padding,10px);
}
.ally-card-mode-flat .ally-logo-meta{
  padding-left:0;
  padding-right:0;
}
@media (max-width:900px){
  .allies-summary{
    grid-template-columns:1fr;
  }
  .allies-logos-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.nav-open{
    overflow:hidden;
  }
  body:not(.auth-screen-page){
    padding-top:104px;
  }
  .grid{ grid-template-columns:1fr; }
  .topbar{
    padding:10px 14px;
    gap:12px;
    justify-content:space-between;
  }
  .brand{
    min-width:0;
    flex:1 1 auto;
    font-size:15px;
  }
  .brand span{
    line-height:1.15;
  }
  .nav-toggle{
    display:inline-flex;
  }
  .nav{
    position:absolute;
    left:12px;
    right:12px;
    top:calc(100% + 10px);
    margin-left:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.98);
    box-shadow:0 24px 60px rgba(10, 18, 36, .18);
    backdrop-filter:blur(10px);
    max-height:calc(100vh - 92px);
    overflow-y:auto;
  }
  .nav.is-open{
    display:flex;
  }
  .nav a,
  .dropbtn{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    padding:14px 16px;
    border-radius:14px;
    font-size:17px;
  }
  .dropdown{
    width:100%;
  }
  .dropdown.is-active .dropbtn{
    background:var(--menu-hover-bg);
    color:var(--menu-hover-fg);
  }
  .dropmenu{
    position:static;
    display:none;
    min-width:0;
    margin-top:8px;
    padding:8px;
    background:#f8fbf3;
    box-shadow:none;
    border-radius:14px;
  }
  .dropdown.open .dropmenu{
    display:block;
  }
  .dropmenu a{
    padding:12px 14px;
  }
  .bottomnavmenububble{
    position:fixed;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    z-index:95;
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.24);
    background:rgba(12,18,31,.86);
    backdrop-filter:blur(12px);
    box-shadow:0 16px 36px rgba(0,0,0,.26);
  }
  .footer{
    padding-bottom:84px;
  }
}
@media (max-width:980px){
  .home-story{ grid-template-columns:1fr; }
  .hero-ribbon{ letter-spacing:.12em; text-align:center; }
  .hero-title-row{ gap:10px; }
  .allies-logos-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-detail-hero,
  .event-detail-grid,
  .event-detail-meta-list{
    grid-template-columns:1fr;
  }
  .event-detail-cover{
    min-height:220px;
  }
  .event-detail-map{
    height:240px;
  }
  .film-main-grid{ grid-template-columns:1fr; }
  .film-allies-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  html, body{
    overflow-x:hidden;
  }
  .container{
    margin:14px auto;
    padding:10px 12px;
    border-radius:16px;
  }
  body.page-index .container,
  body.page-pelicula-uxmal .container{
    padding:0 10px;
  }
  body.page-pelicula-uxmal .container{
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }
  .card{
    border-radius:16px;
  }
  .card .p{
    padding:12px;
  }
  .home-hero{
    min-height:240px;
    margin-bottom:12px;
    border-radius:18px;
  }
  .hero-title-wrap{
    min-height:240px;
    padding:22px 16px;
    gap:12px;
  }
  .hero-title{
    font-size:clamp(44px, 17vw, 72px) !important;
    line-height:.92;
    letter-spacing:.05em;
    text-align:center;
  }
  .hero-ribbon{
    padding:8px 10px;
    font-size:11px;
    letter-spacing:.1em;
    line-height:1.35;
    max-width:100%;
  }
  .home-story{
    gap:12px;
    padding:12px;
    margin-bottom:12px;
  }
  .home-story-text h2{
    font-size:24px;
    margin-bottom:10px;
  }
  .home-story-text p{
    font-size:17px;
    line-height:1.5;
    margin-bottom:12px;
    font-weight:600;
  }
  .media-screen{
    max-width:none;
    border-radius:10px;
  }
  .home-quick{
    gap:10px;
    margin-bottom:12px;
  }
  .home-quick .card h2{
    font-size:22px;
    margin:0 0 8px;
  }
  .home-quick .badge{
    margin-top:4px;
  }
  form input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
  form select,
  form textarea{
    font-size:16px;
  }
  .event-card-meta,
  .event-card-ticket,
  .event-card-desc{
    font-size:15px;
    line-height:1.5;
  }
  .event-card-title{
    font-size:22px;
    line-height:1.15;
  }
  .event-more-btn{
    width:100%;
  }
  .event-detail-page{
    gap:12px;
  }
  .event-detail-hero{
    border-radius:16px;
    overflow:hidden;
  }
  .event-detail-cover{
    min-height:180px;
  }
  .event-detail-intro{
    padding:14px;
    gap:12px;
  }
  .event-detail-intro h1{
    font-size:clamp(28px, 9vw, 42px);
    line-height:1.08;
    overflow-wrap:anywhere;
  }
  .event-detail-lead{
    font-size:15px;
    line-height:1.6;
  }
  .event-detail-badges{
    gap:6px;
  }
  .event-detail-meta-list{
    gap:8px;
  }
  .event-detail-meta-item{
    padding:10px 12px;
    border-radius:12px;
  }
  .event-detail-meta-item strong{
    font-size:14px;
    overflow-wrap:anywhere;
  }
  .event-detail-actions{
    flex-direction:column;
    align-items:stretch;
    gap:8px;
  }
  .event-detail-btn{
    width:100%;
    min-height:46px;
    padding:12px 14px;
    text-align:center;
  }
  .event-detail-grid{
    gap:12px;
  }
  .event-detail-card .p{
    padding:14px;
  }
  .event-detail-card h2{
    font-size:24px;
    margin-bottom:10px;
  }
  .event-detail-info-stack{
    gap:12px;
  }
  .event-detail-info-stack p{
    line-height:1.6;
    overflow-wrap:anywhere;
  }
  .event-ticket-box{
    gap:8px;
    padding:12px;
    border-radius:14px;
  }
  .event-ticket-row{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }
  .event-ticket-row strong{
    text-align:left;
    overflow-wrap:anywhere;
  }
  .event-ticket-note,
  .event-ticket-owned p{
    line-height:1.6;
    overflow-wrap:anywhere;
  }
  .event-ticket-owned{
    padding:12px;
    border-radius:14px;
  }
  .event-detail-map{
    height:220px;
  }
  .footer{
    padding:12px 10px;
  }
  .footer-inner{
    gap:10px;
  }
  .film-page-inner{
    gap:12px;
  }
  .film-page{
    max-width:720px;
    margin:0 auto;
    width:100%;
    overflow:hidden;
  }
  .film-page > .p:first-child{
    justify-content:center !important;
  }
  .film-page > .p:first-child h1{
    text-align:center;
    width:100%;
    margin:0;
    font-size:clamp(26px, 12vw, 54px);
    line-height:1.05;
    overflow-wrap:anywhere;
  }
  .film-main-grid{
    grid-template-columns:1fr;
    gap:12px;
    width:100%;
  }
  .film-player-wrap,
  .film-flyer-wrap,
  .film-synopsis-wrap,
  .film-allies-wrap{
    padding:10px;
    border-radius:14px;
    width:100%;
    min-width:0;
  }
  .film-player-wrap h3,
  .film-flyer-wrap h3,
  .film-synopsis-wrap h3,
  .film-allies-wrap h3{
    font-size:20px;
    margin-bottom:8px;
    text-align:center;
  }
  .film-flyer-img{
    max-height:300px;
  }
  .film-player-ratio{
    min-height:220px;
    aspect-ratio:auto;
    width:100%;
  }
  .film-player-ratio iframe,
  .film-player-ratio video{
    width:100%;
    min-height:220px;
  }
  .film-ally-card{
    min-height:74px;
    padding:6px;
  }
  .film-ally-logo{
    max-height:50px;
  }
  .film-synopsis-wrap p,
  .film-no-allies{
    text-align:center;
    overflow-wrap:anywhere;
  }
  .uxmal-action-btn{
    width:100%;
  }
}

.film-page-inner{
  display:grid;
  gap:14px;
}
.film-header h1{
  margin:0 0 6px;
}
.film-meta{
  color:var(--mut);
}
.film-main-grid{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:12px;
}
.film-player-wrap,
.film-flyer-wrap,
.film-synopsis-wrap,
.film-allies-wrap{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:rgba(255,255,255,.02);
}
.film-player-wrap h3,
.film-flyer-wrap h3,
.film-synopsis-wrap h3,
.film-allies-wrap h3{
  margin:0 0 10px;
}
.film-player-ratio{
  width:100%;
  aspect-ratio:16 / 9;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:#050608;
}
.film-player-ratio iframe,
.film-player-ratio video{
  width:100%;
  height:100%;
  border:0;
  object-fit:contain;
  background:#050608;
}
.film-flyer-img{
  width:100%;
  max-height:430px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--line);
}
.film-flyer-empty,
.film-player-empty{
  color:var(--mut);
  border:1px dashed var(--line);
  border-radius:10px;
  padding:18px;
}
.film-screening{
  color:var(--mut);
  font-size:14px;
  margin:8px 0 0;
}
.film-allies-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.film-ally-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
}
.film-ally-logo{
  max-width:100%;
  max-height:60px;
  object-fit:contain;
}
.film-ally-name{
  color:#111;
  font-weight:700;
  text-align:center;
  font-size:12px;
}
.film-no-allies{
  color:var(--mut);
}
.uxmal-action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:10px 18px;
  border:2px solid #000;
  border-radius:12px;
  background:linear-gradient(180deg, var(--accent) 0%, #2f7f15 100%);
  color:var(--accent-contrast);
  font-weight:800;
  letter-spacing:.01em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .2s ease, background .2s ease;
}
.uxmal-action-btn:hover{
  background:linear-gradient(180deg, #57bd2f 0%, var(--accent) 100%);
  box-shadow:0 6px 16px rgba(0,0,0,.15);
}
.uxmal-action-btn:active{
  transform:translateY(1px);
}
.uxmal-action-btn:focus-visible{
  outline:3px solid rgba(69,169,28,.35);
  outline-offset:2px;
}
@media (max-width:640px){
  .film-page{
    width:100%;
    max-width:720px;
    margin:0 auto;
    overflow-x:hidden;
  }
  .film-page > .p:first-child{
    justify-content:center !important;
  }
  .film-page > .p:first-child h1{
    width:100%;
    margin:0;
    text-align:center;
    font-size:clamp(26px, 12vw, 54px);
    line-height:1.05;
    overflow-wrap:anywhere;
  }
  .film-page-inner{
    gap:12px;
  }
  .film-main-grid{
    grid-template-columns:1fr;
    gap:12px;
    width:100%;
  }
  .film-player-wrap,
  .film-flyer-wrap,
  .film-synopsis-wrap,
  .film-allies-wrap{
    width:100%;
    min-width:0;
    padding:10px;
    border-radius:14px;
  }
  .film-player-wrap h3,
  .film-flyer-wrap h3,
  .film-synopsis-wrap h3,
  .film-allies-wrap h3{
    margin-bottom:8px;
    font-size:20px;
    text-align:center;
  }
  .film-player-ratio{
    width:100%;
    min-height:220px;
    aspect-ratio:auto;
  }
  .film-player-ratio iframe,
  .film-player-ratio video{
    width:100%;
    min-height:220px;
  }
  .film-flyer-img{
    max-height:300px;
  }
  .film-allies-grid{
    grid-template-columns:1fr;
  }
  .film-ally-card{
    min-height:74px;
    padding:6px;
  }
  .film-ally-logo{
    max-height:50px;
  }
  .film-synopsis-wrap p,
  .film-no-allies,
  .film-ally-name{
    text-align:center;
    overflow-wrap:anywhere;
  }
}
@media (max-width:980px){
}

.auth-screen-page{
  min-height:100vh;
  background:
    linear-gradient(rgba(14,14,14,.55), rgba(14,14,14,.65)),
    radial-gradient(1200px 500px at 70% 20%, rgba(255,215,130,.2), transparent 60%),
    linear-gradient(180deg,#2f3440 0%, #4c555f 42%, #2b2f37 100%);
}
.auth-screen-main{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.auth-shell{
  width:100%;
  max-width:680px;
}
.auth-card{
  background:rgba(0,0,0,.88);
  border:1px solid rgba(255,255,255,.1);
  border-radius:0;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.auth-header{
  padding:26px 30px 14px;
}
.auth-title{
  margin:0;
  font-size:64px;
  line-height:1.02;
  color:#e8efd2;
}
.auth-subtitle{
  margin:8px 0 0;
  color:#dce5c2;
  font-size:38px;
}
.auth-body{
  padding:6px 30px 30px;
}
.auth-form{
  display:grid;
  gap:14px;
}
.auth-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.auth-label{
  display:grid;
  gap:7px;
  color:#e7edd0;
  font-weight:500;
  font-size:33px;
}
.auth-label input,
.auth-label select{
  padding:11px 14px;
  border-radius:0;
  border:2px solid #d5dec1;
  background:rgba(40,35,30,.82);
  color:#f2f5ea;
  font-size:32px;
}
.auth-label input:focus,
.auth-label select:focus{
  outline:2px solid #94d84d;
  outline-offset:1px;
}
.auth-check{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:#dbe3c5;
  font-size:30px;
}
.auth-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:8px;
}
.auth-btn{
  border:1px solid #2353bd;
  background:#54c52a;
  color:#102206;
  border-radius:0;
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
  font-size:33px;
  min-width:260px;
  text-align:center;
}
.auth-btn:hover{
  background:#63d739;
}
.auth-btn-outline{
  background:transparent;
  color:#dbe6c2;
  border-color:#dbe6c2;
}
.auth-btn-outline:hover{
  background:rgba(255,255,255,.08);
}
.auth-link{
  color:#dbe6c2;
  text-decoration:underline;
  font-weight:400;
}
@media (max-width:760px){
  .auth-grid-2{ grid-template-columns:1fr; }
  .auth-title{ font-size:44px; }
  .auth-label{ font-size:24px; }
  .auth-label input, .auth-label select{ font-size:22px; }
  .auth-check{ font-size:20px; }
  .auth-btn{ font-size:24px; min-width:200px; }
}
.uxmal-custom-ad-slot iframe,
.uxmal-custom-ad-slot img,
.uxmal-custom-ad-slot video{
  max-width:100%;
}

.uxmal-custom-ad-slot iframe{
  border:0;
}
