/* Dirección A · «Cartel»: la clase como acontecimiento.
   Noche azul casi negra, foco de escenario ámbar, tipografía de cartel (Anton) y la entrada como
   objeto físico. El azul de Aula54 solo en pequeño, como sello de la sala.
   Este fichero: fundamentos, página del evento, compra y entrada. La sala está en room.css. */

:root {
  --night: #070b18;
  --night-2: #0c1225;
  --night-3: #141c34;
  --night-4: #1d2744;
  --ink: #12162a;
  --fg: #f5f1e8;
  --fg-2: #c9cdd9;
  --muted: #9ba3b9;
  --line: rgb(255 255 255 / .13);
  --line-2: rgb(255 255 255 / .26);
  --amber: #ffb547;
  --amber-2: #ffc96e;
  --amber-ink: #1b1204;
  --amber-glow: rgb(255 181 71 / .22);
  --blue: #2f6bff;
  --blue-2: #5b8cff;
  --paper: #f4ecdc;
  --paper-2: #e9dec8;
  --paper-ink: #17192a;
  --paper-muted: #5f5a52;
  --red: #ff3b3b;
  --ok: #4cd98a;
  --error: #ff8f86;
  --radius: 14px;
  --radius-s: 10px;
  --gutter: 20px;
  --col: 560px;
  --display: "Anton", "Impact", "Haettenschweiler", "Arial Narrow Bold", sans-serif-condensed, sans-serif;
  --font: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--night); }
body {
  margin: 0; background: var(--night); color: var(--fg);
  font: 16px/1.5 var(--font); font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--amber-2); text-underline-offset: .18em; }
h1, h2, h3 { margin: 0; line-height: 1.15; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; border-radius: 6px; }
.error { color: var(--error); font-size: .9rem; font-weight: 500; }
.error:empty { display: none; }
.a-help { color: var(--muted); font-size: .875rem; line-height: 1.45; }

/* Sello de Aula54: el azul, en pequeño */
.a-seal {
  display: inline-flex; align-items: center; gap: .45rem;
  font: 600 .75rem/1 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--fg);
}
.a-seal-mark {
  display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
  background: var(--blue); color: #fff; font: 400 .8rem/1 var(--display); letter-spacing: 0;
  box-shadow: 0 0 0 2px rgb(47 107 255 / .35);
}
.a-live-dot {
  display: inline-block; width: .55em; height: .55em; border-radius: 50%; background: var(--red);
  box-shadow: 0 0 0 0 rgb(255 59 59 / .6); animation: a-pulse 2s infinite;
}
@keyframes a-pulse { 0% { box-shadow: 0 0 0 0 rgb(255 59 59 / .55); } 70%, 100% { box-shadow: 0 0 0 .6em rgb(255 59 59 / 0); } }

.sim-mark {
  display: inline-block; font: 600 .68rem/1.5 var(--font); letter-spacing: .03em; padding: 0 .5rem;
  border-radius: 99px; border: 1px dashed currentColor; color: var(--muted); vertical-align: middle; white-space: nowrap;
}

/* ---------------------------------------------------------------- botones */
.a-btn {
  --b-bg: transparent; --b-fg: var(--fg); --b-line: var(--line-2);
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 52px; padding: .7rem 1.2rem; border-radius: 999px;
  border: 1.5px solid var(--b-line); background: var(--b-bg); color: var(--b-fg);
  font: 700 1rem/1.15 var(--font); letter-spacing: .005em; text-decoration: none; text-align: center;
  cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
  transition: transform .12s var(--ease), background-color .2s, border-color .2s, box-shadow .2s, opacity .2s;
}
.a-btn:active { transform: scale(.97); }
.a-btn[disabled], .a-btn[aria-disabled="true"] { opacity: .45; cursor: default; transform: none; }
.a-btn-block { width: 100%; }
.a-btn-small { min-height: 44px; padding: .45rem 1rem; font-size: .9rem; }
.a-btn-primary {
  --b-bg: var(--amber); --b-fg: var(--amber-ink); --b-line: var(--amber);
  box-shadow: 0 8px 28px -8px rgb(255 181 71 / .55), inset 0 -2px 0 rgb(0 0 0 / .12);
}
.a-btn-primary:hover { --b-bg: var(--amber-2); }
.a-btn-primary:focus-visible { outline-color: var(--fg); }
.a-btn-ghost { --b-bg: rgb(255 255 255 / .04); }
.a-btn-ghost:hover { --b-bg: rgb(255 255 255 / .09); }
.a-btn-light { --b-bg: var(--fg); --b-fg: var(--ink); --b-line: var(--fg); }
.a-btn-ink { --b-bg: var(--paper-ink); --b-fg: var(--paper); --b-line: var(--paper-ink); }
.a-btn-ink:focus-visible { outline-color: var(--paper-ink); }
.a-btn-wallet { --b-bg: #000; --b-fg: #fff; --b-line: rgb(255 255 255 / .55); }
/* Elecciones de participar / no participar: mismo peso visual */
.a-btn-choice { --b-bg: rgb(255 255 255 / .07); --b-line: rgb(255 255 255 / .38); --b-fg: var(--fg); }
.a-btn-choice:hover { --b-bg: rgb(255 255 255 / .13); }
.a-choice { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.a-chip {
  display: inline-flex; align-items: center; min-height: 26px; padding: 0 .55rem; border-radius: 6px;
  border: 1px solid var(--line-2); font-size: .78rem; font-weight: 600; color: var(--fg-2); white-space: nowrap;
}
.a-spinner {
  display: inline-block; width: 1.1em; height: 1.1em; border-radius: 50%; flex: none;
  border: 2.5px solid currentColor; border-right-color: transparent; animation: a-spin .8s linear infinite;
  vertical-align: -.2em;
}
.a-spinner-lg { width: 34px; height: 34px; border-width: 3px; }
@keyframes a-spin { to { transform: rotate(360deg); } }

/* ---------------------------------------------------------------- página del evento */
.a-page { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.a-top {
  position: absolute; z-index: 5; inset: 0 0 auto 0; max-width: var(--col); margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: calc(12px + env(safe-area-inset-top)) var(--gutter) 12px;
}
.lang-switch {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem; border-radius: 999px;
  color: var(--fg); background: rgb(7 11 24 / .45); border: 1px solid var(--line-2);
  font-size: .82rem; font-weight: 600; text-decoration: none; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.a-event { max-width: var(--col); margin: 0 auto; position: relative; }

/* El cartel: Marta bajo el foco */
.a-hero { position: relative; isolation: isolate; }
.a-hero-photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #1a1220; }
.a-hero-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%;
  filter: saturate(.92) contrast(1.06) brightness(.97);
}
/* Foco: el fondo melocotón se apaga hacia los bordes y la cara queda iluminada */
.a-hero-photo::before, .a-hero-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.a-hero-photo::before {
  background: radial-gradient(ellipse 50% 40% at 50% 34%, transparent 28%, rgb(24 30 70 / .62) 64%, rgb(7 11 24 / .96) 100%);
  mix-blend-mode: multiply;
}
.a-hero-photo::after {
  background:
    radial-gradient(ellipse 40% 30% at 50% 30%, rgb(255 190 110 / .14), transparent 70%),
    linear-gradient(180deg, rgb(7 11 24 / .88) 0%, rgb(7 11 24 / .35) 16%, rgb(7 11 24 / 0) 30%, rgb(7 11 24 / 0) 44%, rgb(7 11 24 / .8) 70%, var(--night) 96%);
}
.a-hero-text { position: relative; margin-top: -38%; padding: 0 var(--gutter); }
.a-kicker {
  display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .7rem;
  font: 700 .78rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; color: var(--amber);
}
.a-title {
  font: 400 clamp(3.1rem, 15.4vw, 5.6rem)/.9 var(--display); text-transform: uppercase;
  letter-spacing: .005em; color: var(--fg); text-wrap: balance;
  text-shadow: 0 2px 30px rgb(7 11 24 / .55);
}
:lang(en) .a-title { font-size: clamp(2.8rem, 13.6vw, 5rem); }
.a-creator { margin-top: 1.1rem; display: grid; gap: .1rem; }
.a-creator-name { font-weight: 750; font-size: 1.15rem; letter-spacing: -.005em; }
.a-creator-meta { color: var(--fg-2); font-size: .9rem; }
.a-handle { color: var(--fg); font-weight: 600; }

.a-subtitle { padding: 1.1rem var(--gutter) 0; font-size: 1.08rem; line-height: 1.5; color: var(--fg-2); max-width: 34em; }

/* Fecha como bloque rotundo */
.a-when {
  margin: 1.75rem var(--gutter) 0; padding: 1.1rem 0 1.2rem;
  border-top: 3px solid var(--amber); border-bottom: 1px solid var(--line-2);
}
.a-date {
  display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .35em;
  font: 400 clamp(2.3rem, 11.5vw, 3.6rem)/1 var(--display); text-transform: uppercase; color: var(--fg);
  letter-spacing: .01em;
}
.a-date-day { white-space: nowrap; }
.a-date-sep { color: var(--amber); }
.a-date-time { color: var(--amber); white-space: nowrap; }
.a-date-meta { margin-top: .45rem; color: var(--fg-2); font-size: .95rem; font-weight: 500; }
.a-date-meta span[data-localzone] { color: var(--fg); font-weight: 650; }

.a-countdown { margin-top: 1rem; }
.a-countdown[hidden] { display: none; }
.a-countdown-label, .a-countdown-now {
  font: 700 .72rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: .55rem;
}
.a-countdown-now { display: none; color: var(--red); }
.a-countdown[data-state="live"] .a-countdown-now { display: block; }
.a-countdown[data-state="live"] :is(.a-countdown-label, .a-countdown-cells) { display: none; }
.a-countdown-cells { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.a-countdown-cells li {
  display: grid; justify-items: center; gap: .3rem; padding: .7rem 0 .55rem;
  background: var(--night-2); border: 1px solid var(--line); border-radius: var(--radius-s);
}
.a-countdown-cells span { font: 400 2rem/1 var(--display); font-variant-numeric: tabular-nums; color: var(--fg); }
.a-countdown-cells small { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

.a-tagline {
  display: grid; margin: 2.4rem var(--gutter) 0;
  font: 400 clamp(2.1rem, 10.5vw, 3.2rem)/1 var(--display); text-transform: uppercase; color: var(--fg);
}
.a-tagline span:nth-child(2) { color: var(--fg-2); }
.a-tagline strong { font-weight: 400; color: var(--amber); }
.a-approx { margin: .4rem var(--gutter) 0; color: var(--muted); font-size: .95rem; }

.a-label {
  font: 700 .75rem/1.2 var(--font); letter-spacing: .16em; text-transform: uppercase; color: var(--amber);
  margin-bottom: 1rem;
}
.a-points { margin: 2.6rem var(--gutter) 0; }
.a-points ol { display: grid; gap: 1.1rem; }
.a-points li { display: grid; grid-template-columns: 3rem 1fr; gap: .9rem; align-items: start; font-size: 1.05rem; line-height: 1.45; }
.a-points-n {
  font: 400 2.1rem/1 var(--display); color: transparent; -webkit-text-stroke: 1.4px var(--amber);
  padding-top: .05rem;
}

/* La entrada como objeto físico: papel, perforación, matriz */
.a-offer { margin: 2.8rem var(--gutter) 0; scroll-margin-top: 1rem; }
.a-tix {
  --notch: 13px; --tix-bg: var(--paper);
  position: relative; color: var(--paper-ink); background: var(--tix-bg); border-radius: 12px;
  box-shadow: 0 30px 60px -28px rgb(0 0 0 / .9), 0 0 0 1px rgb(255 255 255 / .06);
  background-image:
    radial-gradient(120% 60% at 0% 0%, rgb(255 181 71 / .22), transparent 55%),
    linear-gradient(transparent, transparent);
}
.a-tix-main { padding: 1.3rem 1.25rem 1.2rem; }
.a-tix-kicker {
  display: flex; justify-content: space-between; gap: 1rem;
  font: 700 .72rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; color: #8a5a00;
  padding-bottom: .9rem; margin-bottom: 1rem; border-bottom: 1.5px solid rgb(23 25 42 / .14);
}
.a-tix-title { font: 400 1.65rem/1 var(--display); text-transform: uppercase; margin-bottom: .9rem; }
.a-tix-list { display: grid; gap: .7rem; }
.a-tix-list li { display: grid; grid-template-columns: 22px 1fr; gap: .55rem; font-size: .96rem; line-height: 1.4; }
.a-tix-list svg { color: #b56d00; margin-top: .12rem; }
.a-tix-perf { position: relative; height: 2px; margin: 0 calc(var(--notch) + 6px); background-image: linear-gradient(90deg, rgb(23 25 42 / .35) 55%, transparent 0); background-size: 10px 2px; }
.a-tix-perf::before, .a-tix-perf::after {
  content: ""; position: absolute; top: 50%; width: calc(var(--notch) * 2); height: calc(var(--notch) * 2);
  border-radius: 50%; background: var(--perf-bg, var(--night)); transform: translateY(-50%);
}
.a-tix-perf::before { left: calc((var(--notch) + 6px) * -1 - var(--notch)); }
.a-tix-perf::after { right: calc((var(--notch) + 6px) * -1 - var(--notch)); }
.a-tix-stub {
  position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem;
  padding: 1.15rem 1.25rem 1.25rem;
}
.a-tix-small { font-size: .74rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--paper-muted); }
.a-tix-price { font: 400 3.6rem/.95 var(--display); margin: .15rem 0 .25rem; color: var(--paper-ink); }
.a-tix-when { text-align: right; }
.a-tix-date { font: 400 1.35rem/1 var(--display); text-transform: uppercase; }
.a-tix-time { font: 400 1.35rem/1.1 var(--display); color: #a86300; }
.a-tix-code {
  display: block; width: 92px; height: 34px; opacity: .85; margin-top: .4rem;
  background: repeating-linear-gradient(90deg, var(--paper-ink) 0 2px, transparent 2px 4px, var(--paper-ink) 4px 5px, transparent 5px 8px, var(--paper-ink) 8px 11px, transparent 11px 12px);
}
.a-tix-stub .a-tix-code { position: absolute; right: 1.25rem; top: 1.15rem; width: 70px; height: 18px; opacity: .5; }

.a-buy { display: grid; gap: .9rem; margin-top: 1.25rem; }
.a-buy .a-btn-primary { min-height: 58px; font-size: 1.08rem; }
.a-guarantee { display: grid; grid-template-columns: 24px 1fr; gap: .6rem; align-items: start; font-weight: 600; font-size: .95rem; line-height: 1.4; color: var(--fg); }
.a-guarantee svg { color: var(--ok); }
.a-pay { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; color: var(--muted); font-size: .85rem; }
.a-pay > span:first-child { margin-right: .2rem; }
.a-sold { display: flex; align-items: center; gap: .55rem; font-size: .92rem; font-weight: 600; color: var(--fg-2); }
.a-sold .a-live-dot { flex: none; }
.a-fine { color: var(--muted); font-size: .85rem; line-height: 1.45; }

/* Aula54 como escenario */
.a-venue {
  position: relative; isolation: isolate; overflow: hidden; margin: 3rem var(--gutter) 0;
  border-radius: var(--radius); border: 1px solid var(--line);
}
.a-venue-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: saturate(1.05) brightness(.8); }
.a-venue::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(7 11 24 / .5), rgb(7 11 24 / .92) 55%, var(--night-2)); }
.a-venue-body { padding: 4.5rem 1.25rem 1.3rem; display: grid; gap: .8rem; }
.a-venue-seal { display: inline-flex; align-items: center; gap: .5rem; font: 700 .72rem/1 var(--font); letter-spacing: .16em; text-transform: uppercase; color: var(--blue-2); }
.a-venue-title { font: 400 2rem/1 var(--display); text-transform: uppercase; }
.a-venue-body > p:not([class]) { color: var(--fg-2); }
.a-clara-note {
  display: grid; grid-template-columns: 56px 1fr; gap: .85rem; align-items: center; margin-top: .3rem;
  padding: .8rem; border-radius: var(--radius-s); background: rgb(47 107 255 / .12); border: 1px solid rgb(91 140 255 / .3);
  font-size: .92rem; line-height: 1.4; color: var(--fg);
}
.a-clara-note img { border-radius: 50%; box-shadow: 0 0 0 2px var(--blue); }

/* Preguntas rápidas */
.a-faq { margin: 2.8rem var(--gutter) 0; }
.a-faq details { border-top: 1px solid var(--line); }
.a-faq details:last-of-type { border-bottom: 1px solid var(--line); }
.a-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: .6rem 0;
  font-weight: 650; cursor: pointer; list-style: none;
}
.a-faq summary::-webkit-details-marker { display: none; }
.a-faq summary i { position: relative; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--line-2); }
.a-faq summary i::before, .a-faq summary i::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 2px; background: var(--amber);
  transform: translate(-50%, -50%); transition: transform .2s var(--ease);
}
.a-faq summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.a-faq details[open] summary i::after { transform: translate(-50%, -50%) rotate(0); }
.a-faq details p { padding: 0 2.6rem 1rem 0; color: var(--fg-2); }

.a-foot { margin: 2.5rem var(--gutter) 0; padding-bottom: 1.5rem; display: grid; gap: .4rem; text-align: center; color: var(--muted); font-size: .82rem; }
.a-foot a { color: var(--fg-2); }

/* Barra de compra fija */
.a-buybar {
  position: fixed; z-index: 50; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: space-between; gap: .8rem;
  padding: .7rem max(var(--gutter), calc((100vw - var(--col)) / 2 + var(--gutter))) calc(.7rem + env(safe-area-inset-bottom));
  background: rgb(9 13 28 / .86); backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border-top: 1px solid rgb(255 181 71 / .28);
}
.a-buybar-info { min-width: 0; }
.a-buybar-date { font: 400 1.15rem/1.05 var(--display); text-transform: uppercase; white-space: nowrap; }
.a-buybar-sub { font-size: .74rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a-buybar .a-btn { flex: none; min-height: 50px; padding-inline: 1.1rem; font-size: .98rem; }
@media (max-width: 370px) {
  .a-buybar { gap: .5rem; padding-inline: 14px; }
  .a-buybar .a-btn { padding-inline: .9rem; font-size: .92rem; }
  .a-buybar-date { font-size: 1.02rem; }
}

/* ---------------------------------------------------------------- hojas (dialog) */
.a-sheet {
  margin: auto auto 0; padding: 0; border: 0; width: 100%; max-width: 560px;
  max-height: min(94dvh, calc(100dvh - env(safe-area-inset-top) - 12px)); overflow: auto; overscroll-behavior: contain;
  border-radius: 22px 22px 0 0; background: var(--night-2); color: var(--fg);
  box-shadow: 0 -20px 60px rgb(0 0 0 / .6), 0 0 0 1px var(--line);
}
.a-sheet::backdrop { background: rgb(2 4 10 / .72); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.a-sheet[open] { animation: a-sheet-in .32s var(--ease); }
@keyframes a-sheet-in { from { transform: translateY(40px); opacity: 0; } }
.a-sheet-body { position: relative; padding: .6rem var(--gutter) calc(1.4rem + env(safe-area-inset-bottom)); }
.a-grab { display: block; width: 40px; height: 4px; border-radius: 4px; background: var(--line-2); margin: 0 auto .8rem; }
.a-sheet-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.a-sheet-head h2 { flex: 1; font: 400 1.75rem/1.05 var(--display); text-transform: uppercase; letter-spacing: .01em; }
.a-close {
  flex: none; width: 44px; height: 44px; display: grid; place-items: center; margin-left: auto;
  border: 1px solid var(--line-2); border-radius: 50%; background: rgb(255 255 255 / .05); color: var(--fg);
  cursor: pointer; text-decoration: none;
}
.a-close:active { transform: scale(.94); }

/* Compra: calma y claridad */
.a-summary {
  display: grid; gap: .15rem; padding: .85rem 1rem; margin-bottom: 1.2rem; border-radius: var(--radius-s);
  background: var(--night-3); border: 1px solid var(--line); border-left: 4px solid var(--amber);
  font-weight: 650; line-height: 1.35;
}
.a-summary small { color: var(--muted); font-weight: 500; }
.a-form { display: grid; gap: 1.1rem; }
.a-field { display: grid; gap: .4rem; }
.a-field label { font-weight: 650; font-size: .95rem; }
.a-field input, .a-ask-writing textarea, .a-lobby-form input {
  font: 500 1.0625rem/1.3 var(--font); width: 100%; min-height: 54px; padding: .75rem .95rem;
  border: 1.5px solid rgb(255 255 255 / .34); border-radius: 12px; background: #050813; color: var(--fg);
  transition: border-color .2s, box-shadow .2s;
}
.a-field input::placeholder, textarea::placeholder, .a-lobby-form input::placeholder { color: #7a8299; }
.a-field input:focus, .a-ask-writing textarea:focus, .a-lobby-form input:focus {
  outline: none; border-color: var(--amber); box-shadow: 0 0 0 4px rgb(255 181 71 / .22);
}
.has-error input { border-color: var(--error); }
.a-check {
  display: grid; grid-template-columns: 28px 1fr; align-items: center; column-gap: .75rem; row-gap: .35rem;
  min-height: 52px; padding: .55rem .9rem; border-radius: 12px; border: 1.5px solid var(--line-2); background: rgb(255 255 255 / .03);
}
.a-check label { font-weight: 600; cursor: pointer; padding: .3rem 0; }
.a-check input {
  appearance: none; -webkit-appearance: none; margin: 0; width: 28px; height: 28px; border-radius: 8px;
  border: 2px solid rgb(255 255 255 / .55); background: #050813; display: grid; place-items: center; cursor: pointer;
}
.a-check input::after {
  content: ""; width: 12px; height: 7px; border: 3px solid var(--amber-ink); border-top: 0; border-right: 0;
  transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .15s var(--ease);
}
.a-check input:checked { background: var(--amber); border-color: var(--amber); }
.a-check input:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.a-check .error { grid-column: 1 / -1; }
.a-check.has-error { border-color: var(--error); }
.a-paybuttons { display: grid; gap: .6rem; margin-top: .2rem; }
.a-paybuttons .a-btn { min-height: 56px; font-size: 1.05rem; }
.a-paying { display: none; align-items: center; justify-content: center; gap: .6rem; min-height: 24px; color: var(--amber); font-weight: 600; }
form[aria-busy="true"] .a-paying { display: flex; }
form[aria-busy="true"] .a-paybuttons .a-btn { opacity: .5; }
.a-guarantee-box { padding: .9rem 1rem; border-radius: 12px; background: rgb(76 217 138 / .09); border: 1px solid rgb(76 217 138 / .35); }
.a-simnote { color: var(--muted); font-size: .84rem; text-align: center; }

/* Confirmación: la entrada que da gusto guardar */
.a-confirm-kicker { display: inline-flex; align-items: center; gap: .45rem; flex: 1; font: 700 .74rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--ok); }
.a-confirm-title { font: 400 clamp(2.4rem, 12vw, 3.2rem)/.95 var(--display); text-transform: uppercase; margin: -.2rem 0 .7rem; outline: none; }
.a-confirm-sent { color: var(--fg-2); font-size: .95rem; margin-bottom: 1.3rem; }
.a-confirm-sent small { display: block; margin-top: .2rem; color: var(--muted); font-size: .82rem; }
.a-tix-issued { --perf-bg: var(--night-2); animation: a-tix-in .6s var(--ease) both; }
@keyframes a-tix-in { from { transform: translateY(24px) rotate(-1.5deg); opacity: 0; } }
.a-tix-event { font: 400 2rem/.95 var(--display); text-transform: uppercase; }
.a-tix-who { margin-top: .45rem; font-size: .88rem; font-weight: 600; color: var(--paper-muted); }
.a-tix-bigdate { display: flex; align-items: baseline; gap: .7rem; margin: 1rem 0 .9rem; padding: .7rem 0; border-block: 1.5px solid rgb(23 25 42 / .14); }
.a-tix-bigdate .a-tix-date, .a-tix-bigdate .a-tix-time { font-size: 2.1rem; }
.a-tix-facts { display: grid; gap: .7rem; margin: 0; }
.a-tix-facts dt { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--paper-muted); }
.a-tix-facts dd { margin: .1rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.a-tix-linkbox { padding: 1.1rem 1.25rem 1.25rem; display: grid; gap: .5rem; }
.a-tix-link { color: var(--paper-ink); font-size: .84rem; font-weight: 600; overflow-wrap: anywhere; text-decoration-color: rgb(23 25 42 / .4); }
.a-tix-linkrow { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.a-tix-linkrow .a-tix-code { margin: 0; }
.a-tix-linkbox .a-tix-small:last-child { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .82rem; }
.a-confirm-actions { display: grid; gap: .7rem; margin-top: 1.4rem; }
.a-reminder { display: grid; grid-template-columns: 20px 1fr; gap: .55rem; color: var(--fg-2); font-size: .9rem; margin-top: .3rem; }
.a-reminder svg { color: var(--amber); margin-top: .1rem; }

/* Página completa de compra (sin JavaScript) */
.a-top-solid { position: sticky; top: 0; background: rgb(7 11 24 / .92); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.a-back { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; color: var(--fg); text-decoration: none; font-weight: 650; font-size: .92rem; }
.a-back span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a-page-purchase { padding-bottom: 2rem; }
.a-purchase-page { max-width: 560px; margin: 0 auto; }
.a-purchase-page .a-sheet-body { padding-top: 1.4rem; }
.a-purchase-page :is(.a-grab, .a-close) { display: none; }
.a-purchase-page .a-tix-issued { --perf-bg: var(--night); }

/* ---------------------------------------------------------------- escritorio: columna centrada */
@media (min-width: 600px) {
  .a-hero-photo { border-radius: 0 0 24px 24px; }
  .a-hero-text { margin-top: -34%; }
}
@media (min-width: 900px) {
  body.a-page { background: radial-gradient(1200px 700px at 50% -10%, #1a1630 0%, var(--night) 60%); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
