/* ══════════════════════════════════════════════════
   Large Language Super Models — pageant stylesheet
   Aesthetic goal: Vegas marquee meets 1997 pageant VHS
   ══════════════════════════════════════════════════ */

:root{
  --ink:      #1a0620;
  --plum:     #2b0a35;
  --plum-2:   #400f4e;
  --hot:      #ff2d8b;
  --hot-soft: #ff7ab8;
  --gold:     #ffc94a;
  --gold-hot: #ffe9a8;
  --cream:    #fff4e6;
  --mint:     #4ee0b0;
  --shadow:   0 18px 50px rgba(0,0,0,.55);
  --edge:     1px solid rgba(255,201,74,.35);
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  color:var(--cream);
  background:
    radial-gradient(1200px 700px at 50% -10%, #6b1360 0%, transparent 60%),
    radial-gradient(900px 600px at 90% 20%, #3a0f5c 0%, transparent 55%),
    linear-gradient(180deg, var(--plum) 0%, var(--ink) 55%, #120318 100%);
  background-attachment: fixed;
  font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
  font-size:17px;
  line-height:1.6;
  overflow-x:hidden;
}

/* faint sparkle field */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.5;
  background-image:
    radial-gradient(2px 2px at 12% 22%, #fff 40%, transparent 41%),
    radial-gradient(2px 2px at 78% 12%, var(--gold) 40%, transparent 41%),
    radial-gradient(1.5px 1.5px at 33% 71%, #fff 40%, transparent 41%),
    radial-gradient(2px 2px at 88% 62%, var(--hot-soft) 40%, transparent 41%),
    radial-gradient(1.5px 1.5px at 55% 41%, var(--gold) 40%, transparent 41%),
    radial-gradient(1.5px 1.5px at 5% 88%, #fff 40%, transparent 41%);
  animation: twinkle 4s steps(2,end) infinite;
}
@keyframes twinkle{ 0%,100%{opacity:.5} 50%{opacity:.15} }

main, header, footer{ position:relative; z-index:1; }

/* ── marquee bulb strip across the top ── */
.bulbs{
  position:sticky; top:0; z-index:50; height:12px;
  background:
    repeating-linear-gradient(90deg,
      var(--gold) 0 6px, transparent 6px 26px),
    linear-gradient(180deg,#5b1140,#2b0a35);
  box-shadow:0 0 22px rgba(255,201,74,.65), inset 0 -2px 6px rgba(0,0,0,.6);
  animation: chase 1.1s linear infinite;
}
@keyframes chase{ to{ background-position:26px 0, 0 0; } }

/* ══════════ HERO ══════════ */
.hero{ text-align:center; padding:60px 20px 46px; }

.kicker{
  font-size:.78rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin:0 0 18px; font-weight:700;
}

h1{
  margin:0; line-height:.86;
  font-family:"Haettenschweiler","Impact","Arial Black",sans-serif;
  text-transform:uppercase; letter-spacing:.01em;
}
h1 .line1{
  display:block; font-size:clamp(2.1rem,8.5vw,5.4rem);
  color:var(--cream);
  text-shadow:0 0 26px rgba(255,122,184,.55), 3px 3px 0 var(--hot);
}
h1 .line2{
  display:block; font-size:clamp(3.1rem,14vw,9rem);
  background:linear-gradient(180deg,#fff 4%,var(--gold-hot) 34%,var(--gold) 56%,#c8880f 78%,#ffdf94 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-stroke:2px rgba(90,30,10,.35);
  filter:drop-shadow(0 6px 0 rgba(120,30,80,.5)) drop-shadow(0 0 34px rgba(255,201,74,.55));
}

/* the one genuinely human line on the page — pinned under the marquee */
.layoff{
  max-width:620px; margin:26px auto 0; padding:12px 20px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,201,74,.3);
  border-left:4px solid var(--hot);
  border-radius:0 10px 10px 0;
  font-size:.92rem; line-height:1.6; color:#f0d5e8; text-align:center;
}
/* the setup, a beat of silence, then the reveal */
.layoff-setup, .layoff-punch, .layoff-support{ display:block; }
.layoff-setup{ font-weight:800; color:var(--gold); }
.layoff-punch{ margin-top:1.6em; }   /* one empty line */
.layoff a{
  color:var(--gold); font-weight:700;
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:rgba(255,201,74,.45);
  white-space:nowrap;
}
.layoff a:hover{ color:var(--hot-soft); text-decoration-color:var(--hot-soft); }

.tagline{ max-width:640px; margin:22px auto 0; color:#f4d9ea; }
.tagline em strong{ color:var(--gold); }

.hero-cta{
  display:inline-block; margin-top:26px; padding:15px 34px;
  background:linear-gradient(180deg,var(--hot-soft),var(--hot));
  color:#fff; font-weight:800; font-size:1.05rem; letter-spacing:.04em;
  text-decoration:none; border-radius:999px;
  border:2px solid var(--gold-hot);
  box-shadow:0 10px 0 #a3115a, 0 16px 34px rgba(255,45,139,.45);
  transition:transform .12s ease, box-shadow .12s ease;
}
.hero-cta:hover{ transform:translateY(3px); box-shadow:0 7px 0 #a3115a, 0 12px 26px rgba(255,45,139,.5); }
.hero-cta:active{ transform:translateY(9px); box-shadow:0 1px 0 #a3115a; }

.fineprint{
  font-size:.82rem; color:#c9a7c4; margin-top:14px; font-style:italic;
  max-width:560px; margin-left:auto; margin-right:auto; line-height:1.65;
}
.fineprint a{
  color:var(--gold); font-style:normal; font-weight:700;
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:rgba(255,201,74,.45);
}
.fineprint a:hover{ color:var(--hot-soft); text-decoration-color:var(--hot-soft); }

/* ══════════ SECTIONS ══════════ */
.section{ max-width:1000px; margin:0 auto; padding:54px 20px; }

.section-h{
  text-align:center; margin:0 0 34px;
  font-family:"Haettenschweiler","Impact","Arial Black",sans-serif;
  text-transform:uppercase; letter-spacing:.08em;
  font-size:clamp(1.6rem,4.6vw,2.6rem); color:var(--gold);
  text-shadow:0 3px 0 rgba(0,0,0,.4);
}
.section-h span{ position:relative; padding:0 18px; }
.section-h span::before, .section-h span::after{
  content:"✦"; color:var(--hot); position:absolute; top:50%; transform:translateY(-50%); font-size:.7em;
}
.section-h span::before{ left:-8px; } .section-h span::after{ right:-8px; }

/* ══════════ CAROUSEL ══════════ */
.carousel{
  position:relative;
  background:linear-gradient(180deg, rgba(64,15,78,.92), rgba(26,6,32,.96));
  border:2px solid rgba(255,201,74,.45);
  border-radius:22px;
  box-shadow:var(--shadow), inset 0 0 70px rgba(255,45,139,.14);
  padding:18px 18px 14px;
}

.stage{
  position:relative;
  aspect-ratio:3/4;
  max-height:min(74vh,700px);
  margin:0 auto;
  border-radius:14px;
  overflow:hidden;
  background:
    repeating-linear-gradient(45deg,#200a2a 0 12px,#2a0d36 12px 24px);
  border:1px solid rgba(255,255,255,.08);
}

/* Inactive slides fade out but are NOT visibility:hidden — browsers suspend
   media decoding inside a hidden subtree, which leaves the video slide dead
   on arrival. Hidden from pointers and assistive tech instead. */
.slide{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transform:scale(1.04);
  transition:opacity .5s ease, transform .5s ease;
}
.slide.active{ opacity:1; pointer-events:auto; transform:scale(1); }

.slide img, .slide video{
  width:100%; height:100%;
  object-fit:contain;
  display:block;
}

/* spotlight vignette over the stage */
.stage::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(75% 60% at 50% 32%, transparent 40%, rgba(10,2,14,.55) 100%);
}

.play-badge{
  position:absolute; top:12px; left:12px; z-index:3;
  background:rgba(10,2,14,.72); border:1px solid rgba(255,201,74,.5);
  color:var(--gold); font-size:.7rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  padding:5px 11px; border-radius:999px;
  display:flex; align-items:center; gap:6px;
}
.play-badge::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background:#ff3b3b; box-shadow:0 0 8px #ff3b3b;
  animation:blink 1.2s ease-in-out infinite;
}
@keyframes blink{ 50%{opacity:.25} }

/* click-to-play, shown only if autoplay was refused */
.play-fallback{
  position:absolute; z-index:4; left:50%; top:50%;
  transform:translate(-50%,-50%) scale(.9);
  display:none; align-items:center; gap:9px;
  padding:14px 26px; cursor:pointer;
  background:rgba(10,2,14,.82); color:var(--gold);
  border:2px solid var(--gold); border-radius:999px;
  font:inherit; font-size:.95rem; font-weight:800; letter-spacing:.04em;
  backdrop-filter:blur(6px);
  box-shadow:0 12px 34px rgba(0,0,0,.55);
}
.play-fallback.show{ display:flex; animation:pop .3s cubic-bezier(.2,1.6,.4,1); }
.play-fallback span{ font-size:1.15rem; line-height:1; }
.play-fallback:hover{ background:var(--hot); color:#fff; border-color:var(--gold-hot); }

/* nav arrows */
.nav{
  position:absolute; top:calc(50% - 90px); transform:translateY(-50%);
  z-index:5; width:52px; height:52px; border-radius:50%;
  border:2px solid var(--gold);
  background:rgba(26,6,32,.72);
  color:var(--gold); font-size:2rem; line-height:1; cursor:pointer;
  display:grid; place-items:center; padding:0 0 4px;
  backdrop-filter:blur(4px);
  transition:background .15s, transform .15s, color .15s;
}
.nav:hover{ background:var(--hot); color:#fff; border-color:var(--gold-hot); transform:translateY(-50%) scale(1.08); }
.prev{ left:6px; } .next{ right:6px; }

/* caption plate */
.caption{
  margin-top:16px; text-align:center;
  padding:16px 14px 6px;
  border-top:1px dashed rgba(255,201,74,.3);
}
.cap-top{ display:flex; gap:10px; justify-content:center; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.badge{
  font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink); background:var(--gold); padding:4px 11px; border-radius:999px;
}
.sash{
  font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:#fff; background:linear-gradient(90deg,var(--hot),#b3126b);
  padding:4px 14px; border-radius:999px;
  border:1px solid var(--hot-soft);
  transform:rotate(-1.2deg);
}
.caption h3{
  margin:.1em 0 .25em;
  font-family:"Haettenschweiler","Impact","Arial Black",sans-serif;
  text-transform:uppercase; letter-spacing:.03em;
  font-size:clamp(1.7rem,5.5vw,2.9rem);
  color:var(--cream);
  text-shadow:0 0 22px rgba(255,122,184,.5), 2px 2px 0 var(--hot);
}
.quote{ margin:.2em auto .9em; max-width:560px; font-style:italic; color:#f0cfe4; }

.stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:8px; max-width:660px; margin:0 auto 14px; text-align:left;
}
.stats div{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,201,74,.2);
  border-radius:10px; padding:8px 12px;
}
.stats dt{
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); font-weight:800;
}
.stats dd{ margin:2px 0 0; font-size:.9rem; color:var(--cream); }

.vote-inline{
  margin:4px 0 8px; padding:11px 26px; cursor:pointer;
  background:transparent; color:var(--gold); font-weight:800; font-size:.95rem;
  border:2px solid var(--gold); border-radius:999px;
  letter-spacing:.03em;
  transition:background .15s, color .15s, transform .12s;
}
.vote-inline:hover{ background:var(--gold); color:var(--ink); transform:translateY(-2px); }

/* dots */
.dots{ display:flex; gap:9px; justify-content:center; padding:4px 0 2px; }
.dots button{
  width:12px; height:12px; padding:0; border-radius:50%; cursor:pointer;
  border:2px solid var(--gold); background:transparent;
  transition:transform .15s, background .15s;
}
.dots button[aria-selected="true"]{ background:var(--hot); border-color:var(--gold-hot); transform:scale(1.35); }

.hint{ text-align:center; font-size:.8rem; color:#b492b6; margin-top:14px; }

/* ══════════ JUDGING ══════════ */
.criteria{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; }
.crit{
  background:rgba(255,255,255,.045); border:var(--edge); border-radius:16px;
  padding:20px 18px; text-align:center;
}
.crit-em{ font-size:2rem; display:block; }
.crit h4{
  margin:.5em 0 .3em; color:var(--gold); text-transform:uppercase;
  letter-spacing:.1em; font-size:.9rem;
}
.crit p{ margin:0; font-size:.9rem; color:#e8cfe0; }

/* ══════════ VOTE ══════════ */
.vote-intro{ text-align:center; max-width:620px; margin:0 auto 28px; color:#f0d5e8; }
.vote-intro strong{ color:var(--gold); }

.ballot{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:28px; }

.opt{
  cursor:pointer; text-align:center; padding:16px 12px;
  background:rgba(255,255,255,.05);
  border:2px solid rgba(255,201,74,.28); border-radius:16px;
  transition:transform .14s, border-color .14s, background .14s, box-shadow .14s;
  position:relative;
}
.opt:hover{ transform:translateY(-4px) rotate(-.5deg); border-color:var(--hot-soft); }
.opt[aria-checked="true"]{
  border-color:var(--gold);
  background:linear-gradient(180deg, rgba(255,45,139,.28), rgba(255,201,74,.12));
  box-shadow:0 0 0 4px rgba(255,201,74,.18), 0 12px 30px rgba(255,45,139,.28);
}
.opt[aria-checked="true"]::after{
  content:"👑"; position:absolute; top:-16px; right:-8px; font-size:1.9rem;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.6));
  animation:pop .32s cubic-bezier(.2,1.6,.4,1);
}
@keyframes pop{ from{ transform:scale(0) rotate(-40deg);} }
.opt img, .opt video{
  width:78px; height:78px; object-fit:cover; border-radius:50%;
  border:2px solid var(--gold); display:block; margin:0 auto 10px;
  object-position:center top;
}
.opt .opt-name{
  display:block; font-weight:800; font-size:1.05rem; letter-spacing:.02em;
  text-transform:uppercase; color:var(--cream);
}
.opt .opt-sash{ display:block; font-size:.74rem; color:var(--gold); letter-spacing:.06em; margin-top:2px; }

.donate-box{
  background:linear-gradient(180deg, rgba(64,15,78,.9), rgba(26,6,32,.95));
  border:2px solid rgba(255,201,74,.45); border-radius:20px;
  padding:26px 22px; text-align:center; box-shadow:var(--shadow);
}
.qty{ display:block; margin-bottom:18px; }
.qty span{
  display:block; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); font-weight:800; margin-bottom:8px;
}
.qty select{
  font:inherit; font-size:.95rem; padding:10px 14px; border-radius:999px;
  background:#2b0a35; color:var(--cream);
  border:2px solid rgba(255,201,74,.45); cursor:pointer; max-width:100%;
}

.donate{
  display:block; max-width:520px; margin:0 auto; padding:18px 26px;
  text-decoration:none; border-radius:18px;
  background:linear-gradient(180deg,#ffd76b,var(--gold) 45%,#e09b12);
  color:#3a0b1f; border:2px solid var(--gold-hot);
  box-shadow:0 10px 0 #9a6a06, 0 18px 40px rgba(255,201,74,.35);
  transition:transform .12s, box-shadow .12s, filter .12s;
}
.donate:hover{ transform:translateY(3px); box-shadow:0 7px 0 #9a6a06, 0 12px 28px rgba(255,201,74,.4); }
.donate:active{ transform:translateY(9px); box-shadow:0 1px 0 #9a6a06; }
.donate.armed{ animation:wiggle 2.4s ease-in-out infinite; }
@keyframes wiggle{ 0%,92%,100%{transform:none} 94%{transform:rotate(-1.2deg)} 97%{transform:rotate(1.2deg)} }
.donate-main{ display:block; font-size:1.35rem; font-weight:900; letter-spacing:.02em; }
.donate-sub{ display:block; font-size:.8rem; font-weight:700; opacity:.75; margin-top:4px; }

.note-hint{ font-size:.8rem; color:#c9a7c4; margin:16px auto 0; max-width:520px; }
.note-hint strong{ color:var(--mint); }

/* tally */
.tally-wrap{ margin-top:40px; }
.tally-h{
  text-align:center; color:var(--gold); text-transform:uppercase;
  letter-spacing:.1em; font-size:1rem; margin:0 0 18px;
}
.tally-h small{ display:block; text-transform:none; letter-spacing:0; color:#b492b6; font-size:.78rem; font-weight:400; font-style:italic; }

.row{ display:grid; grid-template-columns:110px 1fr 92px; gap:12px; align-items:center; margin-bottom:11px; }
.row .who{ font-weight:800; font-size:.86rem; text-transform:uppercase; letter-spacing:.04em; text-align:right; }
.bar{ height:22px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; border:1px solid rgba(255,201,74,.22); }
.bar i{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg,var(--hot),var(--gold));
  border-radius:999px; transition:width .7s cubic-bezier(.2,.9,.3,1);
}
.row .num{ font-variant-numeric:tabular-nums; font-weight:800; color:var(--gold); font-size:.9rem; }


/* ══════════ THE HONEST BOX ══════════
   Deliberately plain. It should read as the one part of the page
   that is not doing a bit. ── */
.truth{
  max-width:720px; margin:0 auto 30px; padding:24px 26px;
  background:#fffaf2; color:#2a1020;
  border:3px solid var(--gold); border-radius:14px;
  box-shadow:0 14px 40px rgba(0,0,0,.45);
  font-size:.95rem; line-height:1.62;
}
.truth h3{
  margin:0 0 12px; font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  color:#a3115a; font-weight:900;
}
.truth-lead{
  margin:0 0 14px; font-size:1.08rem; line-height:1.5;
  padding-bottom:14px; border-bottom:1px solid rgba(42,16,32,.16);
}
.truth-lead strong{ color:#a3115a; }
.truth ul{ margin:0 0 14px; padding-left:20px; }
.truth li{ margin-bottom:8px; }
.truth li strong{ color:#2a1020; }
.truth-foot{
  margin:0; padding-top:13px; border-top:1px solid rgba(42,16,32,.16);
  font-size:.9rem; color:#573247;
}
.truth-foot em{ color:#a3115a; font-style:normal; font-weight:700; }

/* destination line on the donate button itself */
.donate-dest{
  display:block; margin-top:7px; padding-top:7px;
  border-top:1px solid rgba(58,11,31,.28);
  font-size:.72rem; font-weight:700; letter-spacing:.03em;
  color:#5c3a09; text-transform:none;
}

/* standings footer */
.tally-total{
  text-align:center; margin:18px 0 0; font-size:.82rem;
  color:var(--gold); font-weight:700; letter-spacing:.04em;
}
.countdown{
  text-align:center; margin:6px 0 0; font-size:.85rem;
  color:var(--hot-soft); font-weight:800; letter-spacing:.03em;
}

/* ══════════ FAQ ══════════ */
.faq details{
  background:rgba(255,255,255,.045); border:var(--edge);
  border-radius:12px; padding:12px 18px; margin-bottom:10px;
}
.faq summary{ cursor:pointer; font-weight:700; color:var(--gold); }
.faq p{ margin:.6em 0 .2em; color:#e8cfe0; font-size:.92rem; }

/* ══════════ FOOTER ══════════ */
footer{ text-align:center; padding:40px 20px 60px; color:#a98cae; font-size:.85rem; }
.marquee-line{ color:var(--gold); letter-spacing:.3em; opacity:.6; overflow:hidden; white-space:nowrap; }
footer strong{ color:var(--cream); }
.tiny{ max-width:620px; margin:12px auto 0; font-size:.74rem; opacity:.72; line-height:1.7; }

/* ══════════ TOAST ══════════ */
.toast{
  position:fixed; left:50%; bottom:28px; transform:translate(-50%,140%);
  z-index:100; max-width:min(92vw,460px);
  background:linear-gradient(180deg,#ffd76b,var(--gold));
  color:#3a0b1f; font-weight:800; font-size:.92rem;
  padding:14px 22px; border-radius:14px; text-align:center;
  border:2px solid #fff3cf; box-shadow:0 18px 40px rgba(0,0,0,.5);
  transition:transform .38s cubic-bezier(.2,1.4,.4,1);
}
.toast.show{ transform:translate(-50%,0); }

/* ══════════ RESPONSIVE ══════════ */
@media (max-width:640px){
  body{ font-size:16px; }
  .truth{ padding:18px 16px; font-size:.9rem; }
  .section{ padding:38px 14px; }
  .carousel{ padding:12px 12px 10px; border-radius:16px; }
  .stage{ aspect-ratio:3/4; }
  .nav{ width:42px; height:42px; font-size:1.6rem; top:calc(50% - 100px); }
  .stats{ grid-template-columns:1fr 1fr; }
  .row{ grid-template-columns:70px 1fr 72px; gap:8px; }
  .row .who{ font-size:.72rem; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}
