:root {
  --black: #030303; --obsidian: #070707; --deep-black: #0c0905;
  --gold: #ffd56a; --gold-bright: #fff0a6; --gold-dark: #9b681c;
  --cyan: #66f4ff; --cyan-soft: rgba(102,244,255,.58);
  --magenta-soft: rgba(255,72,229,.24); --glass: rgba(13,10,5,.66);
  --artwork-ratio: 941 / 1672;
  --frame-width: min(100vw, 430px, calc(100svh * 941 / 1672));
  --frame-radius: 30px;
  --font-display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fuzzy-cycle: 4.44s;
}
* { box-sizing: border-box; }
html { min-height: 100%; overflow-x: hidden; background: var(--black); }
body {
  min-height: 100svh; margin: 0; overflow-x: hidden; color: var(--gold-bright); font-family: var(--font-body);
  background:
    radial-gradient(circle at 50% 8%, rgba(255,213,106,.18), transparent 24rem),
    radial-gradient(circle at 18% 58%, rgba(102,244,255,.13), transparent 21rem),
    radial-gradient(circle at 84% 74%, rgba(255,72,229,.14), transparent 20rem),
    linear-gradient(180deg, #010101 0%, #090603 54%, #020202 100%);
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
.giveaway-stage { min-height: 100svh; width: 100%; display: grid; place-items: center; padding: clamp(0px, 1.8vh, 18px); isolation: isolate; }
.giveaway-terminal {
  position: relative; width: var(--frame-width); aspect-ratio: var(--artwork-ratio); max-height: 100svh; overflow: hidden;
  border-radius: var(--frame-radius); border: 1px solid rgba(255,213,106,.72);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,224,130,.16), transparent 12rem),
    radial-gradient(circle at 15% 35%, rgba(102,244,255,.15), transparent 12rem),
    radial-gradient(circle at 84% 68%, rgba(255,72,229,.15), transparent 11rem),
    linear-gradient(180deg, #100a03 0%, #060606 38%, #0c0804 100%);
  box-shadow: 0 0 0 1px rgba(255,240,166,.16) inset, 0 0 24px rgba(255,213,106,.44), 0 0 46px rgba(102,244,255,.18), 0 30px 80px rgba(0,0,0,.82);
  animation: giveawayFramePulse var(--fuzzy-cycle) ease-in-out infinite;
}
.giveaway-terminal::before { content:""; position:absolute; inset:8px; border-radius:calc(var(--frame-radius) - 8px); border:1px solid rgba(102,244,255,.18); box-shadow:0 0 18px rgba(102,244,255,.18) inset; pointer-events:none; z-index:20; }
.giveaway-frame-effects { position:absolute; inset:0; z-index:21; border-radius:inherit; pointer-events:none; overflow:hidden; mix-blend-mode:screen; }
.giveaway-frame-effects::before { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow: inset 0 0 0 1px rgba(255,224,130,.72), inset 0 0 22px rgba(255,224,130,.14), 0 0 18px rgba(255,224,130,.28), 0 0 34px rgba(255,77,227,.12), 0 0 42px rgba(102,244,255,.12); opacity:.82; animation: giveawayFrameGlow var(--fuzzy-cycle) ease-in-out infinite; }
.giveaway-frame-spark { position:absolute; pointer-events:none; opacity:0; border-radius:999px; filter: drop-shadow(0 0 3px rgba(255,244,185,.58)) drop-shadow(0 0 7px rgba(255,213,106,.28)); }
.giveaway-frame-spark--top,.giveaway-frame-spark--bottom { width:22%; height:2px; }
.giveaway-frame-spark--right,.giveaway-frame-spark--left { width:2px; height:22%; }
.giveaway-frame-spark--top { top:0; left:12%; background:linear-gradient(90deg, transparent, rgba(255,255,235,.56), rgba(255,204,80,.38), transparent); animation:sparkTop var(--fuzzy-cycle) linear infinite; }
.giveaway-frame-spark--right { top:12%; right:0; background:linear-gradient(180deg, transparent, rgba(255,255,235,.56), rgba(255,204,80,.38), transparent); animation:sparkRight var(--fuzzy-cycle) linear infinite; }
.giveaway-frame-spark--bottom { right:12%; bottom:0; background:linear-gradient(270deg, transparent, rgba(255,255,235,.56), rgba(255,204,80,.38), transparent); animation:sparkBottom var(--fuzzy-cycle) linear infinite; }
.giveaway-frame-spark--left { bottom:12%; left:0; background:linear-gradient(0deg, transparent, rgba(255,255,235,.56), rgba(255,204,80,.38), transparent); animation:sparkLeft var(--fuzzy-cycle) linear infinite; }
.giveaway-header { position:relative; z-index:3; padding:1rem 1rem .75rem; text-align:center; background:linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 75%, transparent), radial-gradient(circle at 50% 0%, rgba(255,213,106,.18), transparent 12rem); }
.return-shop-link { display:inline-flex; align-items:center; justify-content:center; min-height:2rem; padding:.36rem .72rem; border:1px solid rgba(255,220,115,.58); border-radius:999px; color:rgba(255,236,170,.95); background:rgba(0,0,0,.46); text-decoration:none; font-size:.68rem; font-weight:900; letter-spacing:.10em; box-shadow: inset 0 1px 0 rgba(255,245,190,.18), 0 0 13px rgba(255,220,115,.14); }
.return-shop-link:active { transform: translateY(1px) scale(.99); }
.giveaway-kicker,.section-kicker { margin:0; color:rgba(102,244,255,.88); font-size:.64rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; text-shadow:0 0 10px rgba(102,244,255,.24); }
.giveaway-kicker { margin-top:.72rem; }
.giveaway-header h1 { margin:.08rem 0 0; font-family:var(--font-display); font-size:clamp(2.05rem, 10.4vw, 3rem); line-height:.94; letter-spacing:.045em; text-transform:uppercase; color:var(--gold-bright); text-shadow:0 2px 0 rgba(82,41,0,.9),0 0 18px rgba(255,213,106,.40),0 0 26px rgba(102,244,255,.18); }
.giveaway-subtitle { max-width:22rem; margin:.32rem auto 0; color:rgba(255,236,170,.82); font-size:clamp(.78rem,2.7vw,.92rem); line-height:1.34; }
.giveaway-scroll-panel { position:relative; z-index:2; height:calc(100% - 8.65rem); overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:.15rem .74rem 1rem; }
.giveaway-section { margin:.72rem 0; padding:.72rem; border:1px solid rgba(255,220,115,.34); border-radius:22px; background:linear-gradient(180deg, rgba(20,14,6,.72), rgba(2,2,4,.78)), radial-gradient(circle at 20% 0%, rgba(102,244,255,.09), transparent 10rem), radial-gradient(circle at 85% 30%, rgba(255,213,106,.12), transparent 10rem); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 18px rgba(255,220,115,.10), 0 0 24px rgba(102,244,255,.05); }
.giveaway-section-compact { padding-bottom:.82rem; }
.section-heading-row { display:flex; align-items:end; justify-content:space-between; gap:.75rem; margin-bottom:.58rem; }
.section-heading-row h2 { margin:.08rem 0 0; font-family:var(--font-display); color:rgba(255,236,170,.98); font-size:clamp(1.02rem,4.7vw,1.35rem); letter-spacing:.045em; line-height:1; text-transform:uppercase; text-shadow:0 0 13px rgba(255,220,115,.22); }
.giveaway-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.58rem; }
.giveaway-card { min-width:0; display:flex; flex-direction:column; gap:.48rem; padding:.54rem; border:1px solid rgba(255,220,115,.30); border-radius:18px; background:linear-gradient(180deg, rgba(7,6,4,.82), rgba(0,0,0,.88)), radial-gradient(circle at 50% 0%, rgba(255,213,106,.10), transparent 5rem); box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 0 14px rgba(255,220,115,.09); }
.giveaway-prize-frame { aspect-ratio:5/7; width:72%; margin:0 auto; display:grid; place-items:center; border:1px solid rgba(102,244,255,.32); border-radius:14px; background:radial-gradient(circle at 50% 18%, rgba(255,213,106,.16), transparent 2.5rem), linear-gradient(180deg, rgba(22,16,8,.82), rgba(3,3,5,.92)); color:rgba(255,236,170,.86); font-family:var(--font-display); font-size:.68rem; letter-spacing:.06em; text-align:center; text-transform:uppercase; line-height:1.12; box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 0 14px rgba(102,244,255,.10), 0 0 16px rgba(255,220,115,.08); }
.giveaway-card-title { margin:0; color:rgba(255,240,190,.98); font-family:var(--font-display); font-size:clamp(.78rem,3.5vw,.94rem); letter-spacing:.035em; line-height:1.05; text-transform:uppercase; text-align:center; }
.giveaway-card-meta { display:grid; gap:.16rem; margin:0; color:rgba(255,236,170,.74); font-size:.63rem; line-height:1.15; text-align:center; }
.giveaway-status-pill { align-self:center; display:inline-flex; justify-content:center; max-width:100%; padding:.22rem .46rem; border:1px solid rgba(102,244,255,.34); border-radius:999px; color:rgba(102,244,255,.94); background:rgba(0,0,0,.36); font-size:.58rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.giveaway-card-button { width:100%; border:1px solid rgba(255,220,115,.58); border-radius:999px; background:linear-gradient(180deg, rgba(32,22,10,.96), rgba(0,0,0,.92)); color:rgba(255,226,140,.96); font-family:var(--font-display); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; padding:.46rem .4rem; cursor:not-allowed; opacity:.76; box-shadow: inset 0 1px 0 rgba(255,245,190,.16), 0 0 12px rgba(255,220,115,.10); }
.wheel-preview-card { display:grid; grid-template-columns:auto 1fr; gap:.76rem; align-items:center; padding:.72rem; border:1px solid rgba(102,244,255,.28); border-radius:18px; background:linear-gradient(180deg, rgba(4,4,8,.78), rgba(0,0,0,.86)), radial-gradient(circle at 15% 50%, rgba(255,213,106,.14), transparent 5rem); }
.wheel-preview-orb { width:5rem; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; border:2px solid rgba(255,220,115,.74); background:conic-gradient(from 22deg, rgba(255,213,106,.9), rgba(102,244,255,.66), rgba(255,72,229,.52), rgba(255,213,106,.9)); box-shadow:0 0 16px rgba(255,220,115,.28),0 0 22px rgba(102,244,255,.14); }
.wheel-preview-orb span { display:grid; place-items:center; width:64%; height:64%; border-radius:50%; background:rgba(0,0,0,.78); color:rgba(255,240,190,1); font-family:var(--font-display); letter-spacing:.06em; }
.wheel-preview-copy strong { display:block; color:rgba(255,240,190,.96); font-size:.82rem; line-height:1.2; }
.wheel-preview-copy p,.giveaway-placeholder-panel p,.admin-panel-shell p { margin:.24rem 0 0; color:rgba(255,236,170,.74); font-size:.76rem; line-height:1.32; }
.giveaway-placeholder-panel,.admin-panel-shell { padding:.78rem; border:1px solid rgba(255,220,115,.24); border-radius:16px; background:rgba(0,0,0,.36); }
.admin-heading-row { align-items:center; }
.admin-toggle-button { border:1px solid rgba(102,244,255,.42); border-radius:999px; background:rgba(0,0,0,.52); color:rgba(102,244,255,.94); font-family:var(--font-display); font-size:.66rem; letter-spacing:.07em; padding:.38rem .66rem; cursor:pointer; }
.admin-toggle-button[aria-expanded="true"] { border-color:rgba(255,220,115,.72); color:rgba(255,240,190,.98); box-shadow:0 0 12px rgba(255,220,115,.18); }
.admin-panel-shell[aria-hidden="true"] { display:none; }
@keyframes giveawayFramePulse { 0%,100%{box-shadow:0 0 0 1px rgba(255,240,166,.16) inset,0 0 20px rgba(255,213,106,.36),0 0 38px rgba(102,244,255,.15),0 30px 80px rgba(0,0,0,.82);}44%{box-shadow:0 0 0 1px rgba(255,245,190,.28) inset,0 0 32px rgba(255,224,130,.58),0 0 58px rgba(102,244,255,.23),0 30px 80px rgba(0,0,0,.82);} }
@keyframes giveawayFrameGlow { 0%,100%{opacity:.62;}44%{opacity:1;} }
@keyframes sparkTop { 0%{opacity:0;transform:translateX(-140%);}4%{opacity:.75;}18%{opacity:.75;transform:translateX(420%);}22%,100%{opacity:0;transform:translateX(420%);} }
@keyframes sparkRight { 0%,18%{opacity:0;transform:translateY(-140%);}22%{opacity:.75;}38%{opacity:.75;transform:translateY(420%);}42%,100%{opacity:0;transform:translateY(420%);} }
@keyframes sparkBottom { 0%,38%{opacity:0;transform:translateX(140%);}42%{opacity:.75;}58%{opacity:.75;transform:translateX(-420%);}62%,100%{opacity:0;transform:translateX(-420%);} }
@keyframes sparkLeft { 0%,58%{opacity:0;transform:translateY(140%);}62%{opacity:.75;}78%{opacity:.75;transform:translateY(-420%);}82%,100%{opacity:0;transform:translateY(-420%);} }
@media (max-width:360px){.giveaway-scroll-panel{height:calc(100% - 8.2rem);} .giveaway-section{padding:.62rem;} .giveaway-grid{gap:.46rem;} .giveaway-card{padding:.46rem;} .wheel-preview-card{grid-template-columns:1fr;text-align:center;} .wheel-preview-orb{margin:0 auto;width:4.4rem;}}
@media (prefers-reduced-motion: reduce){.giveaway-terminal,.giveaway-frame-effects::before,.giveaway-frame-spark{animation:none!important;}}

/* V2.1.5-C — Giveaway detail modal / entry shell */
.giveaway-prize-trigger {
  border: 0;
  padding: 0;
  cursor: pointer;
  background: transparent;
  color: inherit;
}
.giveaway-prize-trigger .giveaway-prize-frame,
.giveaway-card-button:not(:disabled) {
  cursor: pointer;
  transition: transform 140ms ease, filter 140ms ease, box-shadow 140ms ease;
}
.giveaway-prize-trigger:hover .giveaway-prize-frame,
.giveaway-prize-trigger:focus-visible .giveaway-prize-frame {
  filter: brightness(1.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 16px rgba(102,244,255,.18), 0 0 20px rgba(255,220,115,.16);
}
.giveaway-prize-trigger:active .giveaway-prize-frame,
.giveaway-card-button:not(:disabled):active {
  transform: translateY(2px) scale(.985);
}
.giveaway-card-button:not(:disabled) {
  cursor: pointer;
  opacity: 1;
}
.giveaway-card-button:not(:disabled):hover,
.giveaway-card-button:not(:disabled):focus-visible {
  border-color: rgba(255,236,170,.9);
  color: rgba(255,240,190,1);
  box-shadow: inset 0 1px 0 rgba(255,245,190,.22), 0 0 14px rgba(255,220,115,.18), 0 0 18px rgba(102,244,255,.10);
}
.giveaway-detail-layer {
  position: absolute;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: .82rem;
}
.giveaway-detail-layer[aria-hidden="true"] { display: none; }
.giveaway-detail-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(8px);
}
.giveaway-detail-modal {
  position: relative;
  z-index: 1;
  width: min(94%, 370px);
  max-height: min(83svh, 720px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255,220,115,.58);
  border-radius: 24px;
  background:
    radial-gradient(circle at 20% 0%, rgba(102,244,255,.14), transparent 11rem),
    radial-gradient(circle at 86% 18%, rgba(255,213,106,.15), transparent 11rem),
    linear-gradient(180deg, rgba(18,12,6,.94), rgba(2,2,5,.97));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.11),
    0 0 26px rgba(255,220,115,.24),
    0 0 36px rgba(102,244,255,.12),
    0 24px 80px rgba(0,0,0,.76);
  color: rgba(255,240,190,.96);
}
.giveaway-detail-close {
  position: absolute;
  top: .58rem;
  right: .62rem;
  z-index: 5;
  width: 2.15rem;
  height: 2.15rem;
  border: 1px solid rgba(255,220,115,.62);
  border-radius: 50%;
  background: rgba(0,0,0,.62);
  color: rgba(255,240,190,.98);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(255,220,115,.14);
}
.giveaway-detail-kicker {
  margin: 1rem 3rem .2rem 1rem;
  color: rgba(102,244,255,.88);
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.giveaway-detail-modal h2 {
  margin: 0 3rem .5rem 1rem;
  color: rgba(255,240,190,1);
  font-family: var(--font-display);
  font-size: clamp(1.32rem, 6.2vw, 1.85rem);
  line-height: .98;
  letter-spacing: .045em;
  text-transform: uppercase;
  text-shadow: 0 0 16px rgba(255,220,115,.24);
}
.giveaway-detail-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 0 1rem 1rem;
}
.giveaway-detail-prize {
  width: min(58%, 190px);
  margin: .2rem auto .72rem;
  aspect-ratio: 5 / 7;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,220,115,.46);
  border-radius: 18px;
  background:
    radial-gradient(circle at 50% 16%, rgba(255,213,106,.20), transparent 4rem),
    linear-gradient(180deg, rgba(22,16,8,.86), rgba(3,3,5,.94));
  color: rgba(255,236,170,.88);
  font-family: var(--font-display);
  text-align: center;
  letter-spacing: .07em;
  line-height: 1.12;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 0 18px rgba(255,220,115,.12), 0 0 20px rgba(102,244,255,.10);
}
.giveaway-detail-prize-label {
  margin: 0 0 .72rem;
  text-align: center;
  color: rgba(102,244,255,.95);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.giveaway-detail-meta {
  display: grid;
  gap: .42rem;
  margin-bottom: .72rem;
}
.giveaway-detail-meta div,
.giveaway-clue-panel,
.giveaway-entry-shell,
.giveaway-wheel-shell {
  border: 1px solid rgba(255,220,115,.26);
  border-radius: 16px;
  background: rgba(0,0,0,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 13px rgba(255,220,115,.07);
}
.giveaway-detail-meta div {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: center;
  padding: .54rem .64rem;
}
.giveaway-detail-meta span,
.giveaway-entry-form span,
.giveaway-detail-section-kicker {
  color: rgba(255,236,170,.72);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.giveaway-detail-meta strong {
  color: rgba(255,240,190,.98);
  font-size: .76rem;
  text-align: right;
}
.giveaway-clue-panel {
  padding: .8rem;
  margin-bottom: .72rem;
  background:
    radial-gradient(circle at 20% 15%, rgba(102,244,255,.12), transparent 7rem),
    radial-gradient(circle at 85% 80%, rgba(255,213,106,.14), transparent 6rem),
    rgba(0,0,0,.38);
  border-color: rgba(102,244,255,.34);
}
.giveaway-clue-panel p:last-child,
.giveaway-wheel-shell p,
.giveaway-entry-note,
.giveaway-entry-status {
  margin: .34rem 0 0;
  color: rgba(255,236,170,.80);
  font-size: .78rem;
  line-height: 1.34;
}
.giveaway-entry-shell,
.giveaway-wheel-shell { padding: .8rem; margin-bottom: .72rem; }
.giveaway-entry-form { display: grid; gap: .5rem; margin-top: .64rem; }
.giveaway-entry-form label { display: grid; gap: .22rem; }
.giveaway-entry-form select,
.giveaway-entry-form input {
  width: 100%;
  min-height: 2.25rem;
  border: 1px solid rgba(255,220,115,.35);
  border-radius: 12px;
  background: rgba(0,0,0,.62);
  color: rgba(255,240,190,.96);
  padding: .48rem .6rem;
  font: inherit;
  font-size: .78rem;
  outline: none;
}
.giveaway-entry-form select:disabled,
.giveaway-entry-form input:disabled {
  opacity: .72;
  -webkit-text-fill-color: rgba(255,240,190,.72);
}
.giveaway-entry-submit {
  width: 100%;
  margin-top: .2rem;
  border: 1px solid rgba(255,220,115,.50);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(38,26,10,.78), rgba(0,0,0,.72));
  color: rgba(255,226,140,.82);
  font-family: var(--font-display);
  letter-spacing: .065em;
  text-transform: uppercase;
  padding: .62rem .5rem;
  cursor: not-allowed;
}
.giveaway-wheel-shell strong {
  display: block;
  color: rgba(102,244,255,.95);
  font-size: .88rem;
  line-height: 1.18;
}
@media (max-width:360px){
  .giveaway-detail-modal{width:96%;max-height:84svh;}
  .giveaway-detail-scroll{padding:0 .8rem .9rem;}
  .giveaway-detail-prize{width:min(54%,170px);}
}

/* V2.1.5-D — Local giveaway entry + admin control deck */
.giveaway-entry-form select:not(:disabled),
.giveaway-entry-form input:not(:disabled),
.admin-panel-shell select,
.admin-panel-shell input,
.admin-panel-shell textarea {
  border-color: rgba(255,220,115,.42);
  background: rgba(0,0,0,.72);
  color: rgba(255,240,190,.98);
}
.giveaway-entry-form select:focus,
.giveaway-entry-form input:focus,
.admin-panel-shell select:focus,
.admin-panel-shell input:focus,
.admin-panel-shell textarea:focus {
  border-color: rgba(102,244,255,.70);
  box-shadow: 0 0 0 2px rgba(102,244,255,.10), 0 0 12px rgba(102,244,255,.12);
}
.giveaway-entry-submit:not(:disabled),
.giveaway-wheel-action:not(:disabled),
.admin-action-button {
  cursor: pointer;
  color: rgba(9,7,3,.98);
  background: linear-gradient(180deg, rgba(255,240,166,.96), rgba(194,124,24,.96));
  border-color: rgba(255,240,166,.76);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 0 14px rgba(255,220,115,.18);
}
.giveaway-entry-submit:not(:disabled):active,
.giveaway-wheel-action:not(:disabled):active,
.admin-action-button:active {
  transform: translateY(2px) scale(.99);
  filter: brightness(.92);
}
.giveaway-entry-status,
.admin-status-message {
  min-height: 1.1rem;
  font-weight: 800;
}
.giveaway-entry-status[data-status-type="success"],
.admin-status-message[data-status-type="success"] {
  color: rgba(102,244,255,.96);
  text-shadow: 0 0 10px rgba(102,244,255,.24);
}
.giveaway-entry-status[data-status-type="error"],
.admin-status-message[data-status-type="error"] {
  color: rgba(255,150,125,.96);
  text-shadow: 0 0 10px rgba(255,90,70,.18);
}
.giveaway-entrant-list,
.admin-entrant-list {
  display: grid;
  gap: .42rem;
  margin-top: .62rem;
}
.entrant-row {
  display: flex;
  justify-content: space-between;
  gap: .6rem;
  align-items: center;
  padding: .52rem .58rem;
  border: 1px solid rgba(255,220,115,.24);
  border-radius: 13px;
  background: rgba(0,0,0,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 0 10px rgba(255,220,115,.06);
}
.entrant-row strong {
  display: block;
  color: rgba(255,240,190,.98);
  font-size: .78rem;
  line-height: 1.1;
  word-break: break-word;
}
.entrant-row span {
  display: block;
  margin-top: .15rem;
  color: rgba(102,244,255,.80);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.entrant-remove-button {
  flex: 0 0 auto;
  border: 1px solid rgba(255,140,115,.38);
  border-radius: 999px;
  background: rgba(55,8,4,.55);
  color: rgba(255,205,190,.96);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .38rem .52rem;
  cursor: pointer;
}
.giveaway-empty-note {
  margin: 0;
  color: rgba(255,236,170,.72);
  font-size: .74rem;
  line-height: 1.3;
}
.giveaway-wheel-action {
  width: 100%;
  margin-top: .58rem;
  border: 1px solid rgba(255,220,115,.42);
  border-radius: 999px;
  background: rgba(0,0,0,.40);
  color: rgba(255,226,140,.82);
  font-family: var(--font-display);
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .58rem .5rem;
}
.giveaway-wheel-action:disabled {
  opacity: .58;
  cursor: not-allowed;
}
.admin-panel-shell {
  margin-top: .8rem;
  padding: .82rem;
  border: 1px solid rgba(255,220,115,.34);
  border-radius: 18px;
  background:
    radial-gradient(circle at 18% 0%, rgba(102,244,255,.10), transparent 8rem),
    linear-gradient(180deg, rgba(13,10,5,.82), rgba(0,0,0,.70));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 16px rgba(255,220,115,.10);
}
.admin-panel-shell[aria-hidden="true"] { display: none; }
.admin-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .56rem;
}
.admin-field {
  display: grid;
  gap: .24rem;
  min-width: 0;
}
.admin-field-full { grid-column: 1 / -1; }
.admin-field span,
.admin-subsection h3 {
  color: rgba(255,236,170,.78);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.admin-field input,
.admin-field select,
.admin-field textarea {
  width: 100%;
  min-height: 2.15rem;
  border: 1px solid rgba(255,220,115,.35);
  border-radius: 12px;
  background: rgba(0,0,0,.62);
  color: rgba(255,240,190,.96);
  padding: .46rem .56rem;
  font: inherit;
  font-size: .76rem;
  outline: none;
}
.admin-field textarea { resize: vertical; min-height: 4.8rem; }
.admin-subsection {
  margin-top: .78rem;
  padding-top: .72rem;
  border-top: 1px solid rgba(255,220,115,.18);
}
.admin-subsection h3 { margin: 0 0 .52rem; color: rgba(102,244,255,.86); }
.admin-action-button {
  min-height: 2.25rem;
  border: 1px solid rgba(255,220,115,.44);
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: .76rem;
  letter-spacing: .055em;
  text-transform: uppercase;
  padding: .52rem .62rem;
}
.admin-danger-button {
  background: linear-gradient(180deg, rgba(94,25,13,.86), rgba(28,5,3,.92));
  color: rgba(255,218,190,.96);
  border-color: rgba(255,145,110,.44);
}
.admin-button-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: .48rem;
}
.admin-status-message {
  margin: .7rem 0 0;
  color: rgba(255,236,170,.78);
  font-size: .76rem;
  line-height: 1.3;
}
@media (max-width:360px){
  .admin-control-grid{grid-template-columns:1fr;}
  .admin-field-full{grid-column:auto;}
}


/* V2.1.5-E — Current sealed pack giveaway image/rules/link styling */
.giveaway-prize-frame--image {
  padding: .18rem;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,213,106,.14), transparent 3rem),
    linear-gradient(180deg, rgba(8,7,5,.86), rgba(0,0,0,.94));
}

.giveaway-prize-frame img,
.giveaway-detail-prize img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  border-radius: inherit;
}

.giveaway-detail-prize--image {
  width: min(70%, 230px);
  padding: .22rem;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,213,106,.15), transparent 4rem),
    linear-gradient(180deg, rgba(8,7,5,.90), rgba(0,0,0,.96));
}

.giveaway-rules-panel,
.giveaway-clue-panel,
.giveaway-entry-shell,
.giveaway-wheel-shell {
  border: 1px solid rgba(255,220,115,.26);
  border-radius: 16px;
  background: rgba(0,0,0,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 13px rgba(255,220,115,.07);
}

.giveaway-rules-panel {
  padding: .8rem;
  margin-bottom: .72rem;
  background:
    radial-gradient(circle at 10% 0%, rgba(255,213,106,.12), transparent 7rem),
    linear-gradient(180deg, rgba(12,8,4,.70), rgba(0,0,0,.42));
}

.giveaway-rules-panel p {
  margin: .42rem 0 0;
  color: rgba(255,236,170,.84);
  font-size: .76rem;
  line-height: 1.34;
}

.giveaway-space-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: .66rem;
  min-height: 2rem;
  padding: .44rem .78rem;
  border: 1px solid rgba(102,244,255,.42);
  border-radius: 999px;
  color: rgba(102,244,255,.96);
  background: rgba(0,0,0,.42);
  font-family: var(--font-display);
  font-size: .66rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 0 12px rgba(102,244,255,.12),
    0 0 14px rgba(255,220,115,.08);
}

.giveaway-space-link.is-disabled,
.giveaway-space-link[aria-disabled="true"] {
  opacity: .58;
  pointer-events: none;
}


/* V2.1.5-F — Giveaway layout polish */
.giveaway-grid[data-count="1"] {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
}

.giveaway-grid[data-count="1"] .giveaway-card {
  width: min(100%, 306px);
}

.giveaway-grid[data-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-upcoming-giveaways] .giveaway-card {
  min-height: 100%;
  border-color: rgba(102, 244, 255, .24);
  background:
    linear-gradient(180deg, rgba(9, 8, 10, .84), rgba(0, 0, 0, .90)),
    radial-gradient(circle at 50% 0%, rgba(102, 244, 255, .10), transparent 5rem),
    radial-gradient(circle at 80% 86%, rgba(255, 213, 106, .10), transparent 5rem);
}

[data-upcoming-giveaways] .giveaway-prize-frame {
  opacity: .82;
  border-style: dashed;
}

[data-upcoming-giveaways] .giveaway-card-button {
  display: none;
}

.giveaway-detail-section-kicker {
  display: block;
  margin: 0 0 .42rem;
  color: rgba(255, 226, 130, .98);
  font-size: clamp(.92rem, 3.1vw, 1.1rem);
  line-height: 1;
  letter-spacing: .075em;
  text-shadow: 0 0 12px rgba(255, 220, 115, .18), 0 0 16px rgba(102, 244, 255, .10);
}

.giveaway-entry-form span {
  color: rgba(255, 236, 170, .88);
  font-size: .74rem;
  letter-spacing: .075em;
}

.giveaway-entrant-list::before {
  content: "QUALIFIED ENTRIES";
  display: block;
  margin: .1rem 0 .05rem;
  color: rgba(255, 226, 130, .96);
  font-size: clamp(.82rem, 2.8vw, .98rem);
  font-family: var(--font-display);
  letter-spacing: .075em;
  text-transform: uppercase;
  text-shadow: 0 0 11px rgba(255, 220, 115, .16);
}

@media (max-width: 360px) {
  .giveaway-grid[data-count="2"] {
    gap: .42rem;
  }

  .giveaway-grid[data-count="2"] .giveaway-card {
    padding: .42rem;
  }

  .giveaway-grid[data-count="2"] .giveaway-card-title {
    font-size: .72rem;
  }
}

/* V2.1.5-G — Local giveaway wheel + test spin */
.wheel-preview-card {
  position: relative;
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  gap: .78rem;
  overflow: hidden;
}

.wheel-preview-card::before {
  content: "";
  position: absolute;
  inset: -35% -20%;
  background:
    radial-gradient(circle at 50% 35%, rgba(255,213,106,.16), transparent 9rem),
    radial-gradient(circle at 20% 80%, rgba(102,244,255,.11), transparent 8rem);
  pointer-events: none;
}

.wheel-preview-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: min(72%, 210px);
  max-width: 210px;
  isolation: isolate;
}

.wheel-pointer {
  position: absolute;
  top: -.18rem;
  left: 50%;
  z-index: 4;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  border-left: .52rem solid transparent;
  border-right: .52rem solid transparent;
  border-top: .9rem solid rgba(255,240,166,.98);
  filter: drop-shadow(0 0 8px rgba(255,220,115,.46));
}

.wheel-preview-orb {
  position: relative;
  width: 100%;
  transition: transform 3.3s cubic-bezier(.12,.82,.18,1);
  will-change: transform;
  overflow: hidden;
}

.wheel-preview-orb::before {
  content: "";
  position: absolute;
  inset: 9%;
  border-radius: 50%;
  border: 1px solid rgba(255,240,166,.44);
  box-shadow: inset 0 0 18px rgba(0,0,0,.46), 0 0 18px rgba(255,220,115,.16);
  pointer-events: none;
}

.wheel-preview-orb::after {
  content: "";
  position: absolute;
  inset: -8%;
  border-radius: 50%;
  background: linear-gradient(115deg, transparent 0 38%, rgba(255,255,255,.22) 48%, transparent 58% 100%);
  opacity: .38;
  pointer-events: none;
  mix-blend-mode: screen;
}

.wheel-preview-orb.has-entrants {
  box-shadow:
    0 0 20px rgba(255,220,115,.34),
    0 0 28px rgba(102,244,255,.16),
    inset 0 0 0 2px rgba(255,240,166,.70);
}

.wheel-preview-orb.is-spinning {
  filter: saturate(1.15) brightness(1.08);
}

.wheel-preview-copy {
  position: relative;
  z-index: 2;
}

.wheel-roster-panel,
.wheel-winner-panel {
  margin-top: .66rem;
  padding: .72rem;
  border: 1px solid rgba(255,220,115,.24);
  border-radius: 16px;
  background: rgba(0,0,0,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 0 13px rgba(255,220,115,.07);
}

.wheel-roster-panel h3 {
  margin: 0 0 .5rem;
  color: rgba(255,226,130,.96);
  font-family: var(--font-display);
  font-size: .92rem;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.wheel-roster-list {
  display: grid;
  gap: .36rem;
}

.wheel-roster-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .46rem;
  align-items: center;
  padding: .42rem .5rem;
  border: 1px solid rgba(102,244,255,.20);
  border-radius: 999px;
  background: rgba(0,0,0,.32);
}

.wheel-roster-row span {
  display: grid;
  place-items: center;
  width: 1.35rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255,220,115,.16);
  color: rgba(255,240,190,.94);
  font-size: .66rem;
  font-weight: 900;
}

.wheel-roster-row strong {
  min-width: 0;
  color: rgba(102,244,255,.92);
  font-size: .78rem;
  line-height: 1.1;
  word-break: break-word;
}

.wheel-winner-panel {
  text-align: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,213,106,.14), transparent 6rem),
    rgba(0,0,0,.38);
}

.wheel-winner-panel span {
  display: block;
  color: rgba(255,226,130,.96);
  font-family: var(--font-display);
  font-size: .82rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.wheel-winner-panel strong {
  display: block;
  margin-top: .18rem;
  color: rgba(102,244,255,.98);
  font-size: 1rem;
  line-height: 1.16;
  text-shadow: 0 0 12px rgba(102,244,255,.24);
  word-break: break-word;
}

.wheel-winner-panel[data-has-winner="false"] p {
  margin: 0;
  color: rgba(255,236,170,.74);
  font-size: .76rem;
  line-height: 1.3;
}

.giveaway-wheel-spin-button,
.admin-spin-button {
  width: 100%;
  margin-top: .66rem;
  min-height: 2.35rem;
  border: 1px solid rgba(255,240,166,.72);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,240,166,.96), rgba(194,124,24,.96));
  color: rgba(8,6,3,.98);
  font-family: var(--font-display);
  font-size: .82rem;
  letter-spacing: .075em;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 0 16px rgba(255,220,115,.20), 0 0 20px rgba(102,244,255,.10);
  cursor: pointer;
}

.giveaway-wheel-spin-button:disabled,
.admin-spin-button:disabled {
  opacity: .52;
  cursor: not-allowed;
  filter: grayscale(.25);
}

.giveaway-wheel-spin-button:not(:disabled):active,
.admin-spin-button:not(:disabled):active {
  transform: translateY(2px) scale(.99);
  filter: brightness(.92);
}

.wheel-status-message {
  min-height: 1rem;
  margin: .52rem 0 0;
  color: rgba(255,236,170,.76);
  font-size: .76rem;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
}

.wheel-status-message[data-status-type="success"] {
  color: rgba(102,244,255,.96);
  text-shadow: 0 0 10px rgba(102,244,255,.20);
}

.wheel-status-message[data-status-type="error"] {
  color: rgba(255,150,125,.96);
  text-shadow: 0 0 10px rgba(255,90,70,.16);
}

@media (max-width: 360px) {
  .wheel-preview-stage { width: min(78%, 185px); }
  .wheel-roster-row strong { font-size: .72rem; }
}

@media (prefers-reduced-motion: reduce) {
  .wheel-preview-orb,
  .wheel-preview-orb > [data-wheel-center] { transition: none !important; }
}


/* V2.1.5-H — Wheel number labels + direct spin placement */
.wheel-number-label {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 1.45rem;
  aspect-ratio: 1;
  border-radius: 50%;
  transform:
    translate(-50%, -50%)
    rotate(var(--wheel-label-angle))
    translateY(-34%)
    translateY(-3.05rem)
    rotate(calc(-1 * var(--wheel-label-angle)));
  background: rgba(0, 0, 0, .72);
  border: 1px solid rgba(255, 240, 166, .70);
  color: rgba(255, 240, 190, .98);
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 0 8px rgba(255, 220, 115, .34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .14),
    0 0 10px rgba(255, 220, 115, .22),
    0 0 14px rgba(102, 244, 255, .10);
  pointer-events: none;
}

.wheel-preview-orb .wheel-number-label:nth-of-type(odd) {
  color: rgba(102, 244, 255, .98);
}

.wheel-preview-orb > [data-wheel-center] {
  position: relative;
  z-index: 4;
  transform: rotate(var(--wheel-counter-rotation, 0deg));
  transition: transform 3.3s cubic-bezier(.12,.82,.18,1);
  min-width: 3.05rem;
  min-height: 3.05rem;
  padding: .16rem;
  border: 1px solid rgba(255, 240, 166, .52);
  box-shadow:
    inset 0 0 12px rgba(0, 0, 0, .55),
    0 0 14px rgba(255, 220, 115, .22),
    0 0 18px rgba(102, 244, 255, .12);
  font-size: clamp(.72rem, 4.4vw, 1.18rem);
  text-align: center;
}

.wheel-preview-orb.is-spinning > [data-wheel-center] {
  transition: transform 3.3s cubic-bezier(.12,.82,.18,1);
  color: rgba(102, 244, 255, 1);
  text-shadow:
    0 0 10px rgba(102, 244, 255, .38),
    0 0 16px rgba(255, 220, 115, .20);
}

.giveaway-wheel-spin-button {
  display: block;
  width: min(100%, 260px);
  margin: .68rem auto .2rem;
}

.wheel-winner-panel {
  margin-top: .58rem;
}

.wheel-roster-identity {
  min-width: 0;
  display: grid;
  gap: .1rem;
}

.wheel-roster-identity em {
  color: rgba(255, 236, 170, .72);
  font-size: .58rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}

@media (max-width: 360px) {
  .wheel-number-label {
    width: 1.22rem;
    font-size: .62rem;
    transform:
      translate(-50%, -50%)
      rotate(var(--wheel-label-angle))
      translateY(-30%)
      translateY(-2.45rem)
      rotate(calc(-1 * var(--wheel-label-angle)));
  }
}

/* V2.1.5-I — Center spinner reduced motion safety */
@media (prefers-reduced-motion: reduce) {
  .wheel-preview-orb,
  .wheel-preview-orb > [data-wheel-center] {
    transition: none !important;
  }
}

/* V2.1.5-J — Upcoming giveaway admin controls */
.giveaway-empty-state {
  width: min(100%, 320px);
  justify-self: center;
  margin: 0;
  padding: .9rem .85rem;
  border: 1px solid rgba(255, 220, 115, .28);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(12, 10, 8, .78), rgba(0, 0, 0, .86)),
    radial-gradient(circle at 50% 0%, rgba(102, 244, 255, .10), transparent 5rem);
  color: rgba(255, 236, 178, .84);
  text-align: center;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.admin-panel-shell optgroup {
  color: rgba(255, 226, 130, .98);
  background: rgba(7, 6, 8, .98);
  font-weight: 900;
}

.admin-panel-shell option {
  color: rgba(255, 244, 205, .96);
  background: rgba(7, 6, 8, .98);
}

/* V2.1.6-E1 Admin unlock / locked control protection */
.admin-panel-shell:not(.is-unlocked) .admin-control-grid,
.admin-panel-shell:not(.is-unlocked) .admin-subsection:not(.admin-unlock-block),
.admin-panel-shell:not(.is-unlocked) > .admin-control-grid,
.admin-panel-shell:not(.is-unlocked) > .admin-status-message {
  display: none;
}

.admin-panel-shell:not(.is-unlocked) .admin-unlock-block .admin-control-grid {
  display: grid;
}

.admin-panel-shell:not(.is-unlocked) [data-admin-reload-server] {
  display: none;
}

.admin-panel-shell.is-unlocked [data-admin-unlock] {
  display: none;
}

.admin-unlock-note {
  margin: 0 0 .65rem;
  color: rgba(255, 236, 170, 0.76);
  font-size: .76rem;
  line-height: 1.35;
}

/* V2.1.7-A: inactive upcoming giveaway image display */
.giveaway-prize-display {
  display: block;
  width: 100%;
}


/* V2.1.7-A1: secondary, admin-only giveaway schedule migration control */
.admin-secondary-setup-button {
  opacity: .78;
  border-style: dashed;
  background: rgba(5, 8, 10, .58);
}
.admin-secondary-setup-button:hover,
.admin-secondary-setup-button:focus-visible {
  opacity: 1;
}


/* V2.1.7-B — High-entry wheel capacity and roster scaling */
.giveaway-rules-clue-copy {
  white-space: normal;
}

.wheel-preview-stage {
  width: min(86%, 270px);
  max-width: 270px;
}

.wheel-preview-orb {
  --wheel-label-radius: 5.2rem;
  --wheel-label-size: 1.35rem;
  --wheel-label-font-size: .68rem;
  contain: layout paint style;
}

.wheel-number-label {
  width: var(--wheel-label-size);
  font-size: var(--wheel-label-font-size);
  transform:
    translate(-50%, -50%)
    rotate(var(--wheel-label-angle))
    translateY(calc(-1 * var(--wheel-label-radius)))
    rotate(calc(-1 * var(--wheel-label-angle)));
}

.wheel-preview-orb[data-wheel-density="compact"] {
  --wheel-label-radius: 5.35rem;
  --wheel-label-size: .96rem;
  --wheel-label-font-size: .50rem;
}

.wheel-preview-orb[data-wheel-density="dense"] {
  --wheel-label-radius: 5.48rem;
  --wheel-label-size: .72rem;
  --wheel-label-font-size: .39rem;
}

.wheel-preview-orb[data-wheel-density="ultra"] {
  --wheel-label-radius: 6.05rem;
  --wheel-label-size: .38rem;
  --wheel-label-font-size: .24rem;
}

.wheel-preview-orb[data-wheel-density="dense"] .wheel-number-label,
.wheel-preview-orb[data-wheel-density="ultra"] .wheel-number-label {
  border-width: 0;
  background: rgba(0, 0, 0, .66);
  box-shadow: 0 0 4px rgba(0,0,0,.72);
  text-shadow:
    0 1px 1px rgba(0,0,0,.95),
    0 0 4px rgba(255,220,115,.46);
}

.wheel-preview-orb[data-wheel-density="ultra"] .wheel-number-label {
  letter-spacing: -.045em;
}

.wheel-roster-list {
  max-height: min(38vh, 420px);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: .2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,220,115,.48) rgba(0,0,0,.22);
}

.wheel-roster-list::-webkit-scrollbar { width: .34rem; }
.wheel-roster-list::-webkit-scrollbar-track { background: rgba(0,0,0,.22); border-radius: 999px; }
.wheel-roster-list::-webkit-scrollbar-thumb { background: rgba(255,220,115,.48); border-radius: 999px; }

@media (max-width: 360px) {
  .wheel-preview-stage {
    width: min(88%, 238px);
    max-width: 238px;
  }

  .wheel-preview-orb {
    --wheel-label-radius: 4.55rem;
    --wheel-label-size: 1.12rem;
    --wheel-label-font-size: .58rem;
  }

  .wheel-preview-orb[data-wheel-density="compact"] {
    --wheel-label-radius: 4.68rem;
    --wheel-label-size: .82rem;
    --wheel-label-font-size: .43rem;
  }

  .wheel-preview-orb[data-wheel-density="dense"] {
    --wheel-label-radius: 4.78rem;
    --wheel-label-size: .62rem;
    --wheel-label-font-size: .34rem;
  }

  .wheel-preview-orb[data-wheel-density="ultra"] {
    --wheel-label-radius: 5rem;
    --wheel-label-size: .32rem;
    --wheel-label-font-size: .21rem;
  }
}

/* V2.1.7-C: server-synced Past Winners archive and admin management */
.past-winners-archive {
  display: grid;
  gap: .48rem;
  padding: .72rem;
  border: 1px solid rgba(255,220,115,.24);
  border-radius: 16px;
  background: rgba(0,0,0,.36);
  min-width: 0;
  overflow: hidden;
}

.past-winner-row {
  min-width: 0;
  padding: .62rem .7rem;
  border: 1px solid rgba(255,220,115,.18);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255,220,115,.07), rgba(0,0,0,.16));
}

.past-winner-label,
.admin-past-winner-label {
  margin: 0;
  color: rgba(255,240,190,.94);
  font-size: .8rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.admin-past-winner-list {
  display: grid;
  gap: .5rem;
  margin-top: .68rem;
  min-width: 0;
}

.admin-past-winner-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  padding: .6rem;
  border: 1px solid rgba(255,220,115,.2);
  border-radius: 13px;
  background: rgba(0,0,0,.34);
}

.admin-past-winner-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .38rem;
}

.admin-mini-button {
  min-height: 2.1rem;
  border: 1px solid rgba(255,220,115,.4);
  border-radius: 999px;
  padding: .42rem .62rem;
  background: linear-gradient(180deg, rgba(50,39,15,.88), rgba(13,10,4,.94));
  color: rgba(255,237,177,.96);
  font-family: var(--font-display);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
  touch-action: manipulation;
}

.admin-mini-button--danger {
  border-color: rgba(255,145,110,.42);
  background: linear-gradient(180deg, rgba(94,25,13,.86), rgba(28,5,3,.92));
  color: rgba(255,218,190,.96);
}

.admin-secondary-button {
  background: rgba(0,0,0,.48);
  color: rgba(255,236,170,.82);
}

.admin-secondary-button[hidden] {
  display: none;
}

@media (max-width: 420px) {
  .admin-past-winner-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .admin-past-winner-actions {
    justify-content: stretch;
  }

  .admin-mini-button {
    flex: 1 1 7rem;
  }
}
