:root {
  --nc-bg: #07131e;
  --nc-surface: #0e1f2d;
  --nc-surface-2: #132a3a;
  --nc-text: #f8fbff;
  --nc-muted: #aebdca;
  --nc-accent: #ffcc00;
  --nc-accent-2: #57d8ff;
  --nc-border: rgba(255,255,255,.12);
  --nc-danger: #ff6b78;
  --nc-success: #61db9f;
  --nc-radius: 24px;
  --nc-shadow: 0 24px 70px rgba(0,0,0,.28);
}

.note-contest-template,
.nc-page { background: var(--nc-bg); color: var(--nc-text); }
.nc-page { width: 100%; overflow: hidden; font-family: inherit; }
.nc-page *, .nc-page *::before, .nc-page *::after,
.nc-component *, .nc-component *::before, .nc-component *::after { box-sizing: border-box; }

.nc-hero {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(28px,4vw,64px) clamp(14px,3vw,42px) clamp(42px,6vw,88px);
}
.nc-hero::before {
  content: "";
  position: absolute;
  inset: 0 -20vw auto;
  height: 520px;
  pointer-events: none;
  background:
    radial-gradient(circle at 16% 18%, rgba(87,216,255,.16), transparent 38%),
    radial-gradient(circle at 84% 12%, rgba(255,204,0,.12), transparent 34%);
}
.nc-hero__copy { position: relative; z-index: 1; max-width: 970px; margin-bottom: 28px; }
.nc-kicker,
.nc-form-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--nc-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.nc-title {
  margin: 8px 0 16px;
  max-width: 950px;
  color: var(--nc-text);
  font-size: clamp(34px,5.8vw,76px);
  line-height: .98;
  letter-spacing: -.04em;
}
.nc-prize { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-top: 12px; }
.nc-prize__label { color: var(--nc-muted); font-size: 14px; }
.nc-prize strong { font-size: clamp(20px,2.4vw,32px); color: var(--nc-text); }
.nc-prize > span:last-child { padding: 4px 9px; border: 1px solid var(--nc-border); border-radius: 999px; color: var(--nc-muted); font-size: 12px; }
.nc-prize-desc { max-width: 780px; margin: 10px 0 0; color: var(--nc-muted); font-size: 16px; }
.nc-dates { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 18px; color: var(--nc-muted); font-size: 14px; }
.nc-dates b { color: var(--nc-text); }
.nc-status { display: inline-flex; margin-top: 18px; padding: 8px 12px; border-radius: 999px; font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.nc-status--open { background: rgba(97,219,159,.14); color: var(--nc-success); border: 1px solid rgba(97,219,159,.25); }
.nc-status--upcoming { background: rgba(87,216,255,.12); color: var(--nc-accent-2); border: 1px solid rgba(87,216,255,.25); }
.nc-status--closed, .nc-status--finished { background: rgba(255,255,255,.07); color: var(--nc-muted); border: 1px solid var(--nc-border); }

.nc-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
  gap: clamp(20px,3vw,42px);
  align-items: stretch;
}
.nc-poster,
.nc-form-card {
  border: 1px solid var(--nc-border);
  border-radius: var(--nc-radius);
  overflow: hidden;
  box-shadow: var(--nc-shadow);
}
.nc-poster { min-height: 580px; background: var(--nc-surface); }
.nc-poster__img { display: block; width: 100%; height: 100%; min-height: 580px; object-fit: cover; }
.nc-poster__placeholder { min-height: 580px; display: grid; place-content: center; text-align: center; font-size: clamp(38px,6vw,82px); font-weight: 900; line-height: .85; background: linear-gradient(145deg,#112a3d,#08141e); }
.nc-poster__placeholder span { color: var(--nc-accent); font-size: .45em; letter-spacing: .18em; }

.nc-form-card { padding: clamp(22px,3vw,40px); background: linear-gradient(180deg, rgba(19,42,58,.98), rgba(10,26,39,.98)); }
.nc-form-card__head h2,
.nc-success h2 { margin: 6px 0 6px; color: var(--nc-text); font-size: clamp(30px,4vw,48px); line-height: 1; letter-spacing: -.035em; }
.nc-form-card__head p { margin: 0 0 24px; color: var(--nc-muted); }
.nc-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.nc-field { display: grid; gap: 7px; }
.nc-field--full { grid-column: 1 / -1; }
.nc-field > span { font-size: 13px; color: #dbe6ee; font-weight: 700; }
.nc-field input,
.nc-field select,
.nc-field textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  background: rgba(0,0,0,.18);
  color: var(--nc-text);
  min-height: 48px;
  padding: 11px 13px;
  font: inherit;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.nc-field textarea { min-height: 104px; resize: vertical; }
.nc-field input:focus,
.nc-field select:focus,
.nc-field textarea:focus { border-color: var(--nc-accent-2); box-shadow: 0 0 0 3px rgba(87,216,255,.12); background: rgba(0,0,0,.28); }
.nc-field input[readonly] { opacity: .76; cursor: not-allowed; }
.nc-field small { color: var(--nc-muted); font-size: 11px; }
.nc-condition { padding: 16px; border: 1px solid rgba(255,204,0,.24); border-radius: 14px; background: rgba(255,204,0,.06); }
.nc-condition__title { color: var(--nc-accent); font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.nc-condition p { margin: 7px 0 8px; color: var(--nc-text); }
.nc-condition a, .nc-check a { color: var(--nc-accent-2); }

.nc-social-intro { margin: 9px 0 10px!important; color: var(--nc-muted)!important; font-size: 13px; font-weight: 700; }
.nc-social-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:10px 0 12px; }
.nc-social-action {
  position:relative;
  display:grid;
  place-items:center;
  flex:0 0 48px;
  width:48px;
  height:48px;
  min-width:48px;
  min-height:48px;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:#172632;
  color:#fff!important;
  text-decoration:none!important;
  box-shadow:0 7px 18px rgba(0,0,0,.18);
  transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.nc-social-action[href]:hover { transform:translateY(-2px) scale(1.03); filter:brightness(1.07); box-shadow:0 11px 24px rgba(0,0,0,.24); border-color:rgba(255,255,255,.28); }
.nc-social-action:focus-visible { outline:3px solid rgba(87,216,255,.35); outline-offset:3px; }
.nc-social-action__icon { display:grid; place-items:center; width:24px; height:24px; color:#fff; }
.nc-social-action__icon svg { width:24px; height:24px; display:block; }
.nc-social-action--facebook { background:#1877f2; }
.nc-social-action--instagram { background:radial-gradient(circle at 30% 105%,#fdf497 0 5%,#fd5949 42%,#d6249f 64%,#285aeb 100%); }
.nc-social-action--x { background:#050505; }
.nc-social-action--tiktok { background:#111; box-shadow:0 7px 18px rgba(0,0,0,.18), inset 2px 0 0 rgba(37,244,238,.55), inset -2px 0 0 rgba(254,44,85,.55); }
.nc-social-extra { margin:12px 0 8px!important; padding-top:11px; border-top:1px solid var(--nc-border); }
.nc-social-legacy-link { display:inline-flex; margin:2px 0 6px; }
.nc-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; color: #dce6ed; font-size: 13px; line-height: 1.45; }
.nc-check input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; accent-color: var(--nc-accent); }
.nc-check--terms { margin-top: 4px; padding: 14px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid var(--nc-border); }
.nc-submit {
  min-height: 56px;
  border: 0;
  border-radius: 14px;
  background: var(--nc-accent);
  color: #07131e;
  font: inherit;
  font-weight: 950;
  letter-spacing: .04em;
  cursor: pointer;
  transition: transform .16s ease, filter .16s ease, opacity .16s ease;
}
.nc-submit:hover { transform: translateY(-1px); filter: brightness(1.05); }
.nc-submit[disabled] { opacity: .65; cursor: wait; transform: none; }
.nc-hp { position: absolute!important; left: -99999px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }

.nc-notice { margin: 0 0 18px; padding: 13px 15px; border-radius: 12px; font-size: 13px; }
.nc-notice--success { background: rgba(97,219,159,.12); border: 1px solid rgba(97,219,159,.28); color: #bff5d8; }
.nc-notice--info { background: rgba(87,216,255,.10); border: 1px solid rgba(87,216,255,.25); color: #c9f3ff; }
.nc-notice--error { background: rgba(255,107,120,.10); border: 1px solid rgba(255,107,120,.24); color: #ffd0d5; }
.nc-success { display: grid; gap: 12px; align-content: center; min-height: 100%; }
.nc-success__icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: rgba(97,219,159,.13); color: var(--nc-success); font-size: 28px; border: 1px solid rgba(97,219,159,.32); }
.nc-success p { margin: 0; color: var(--nc-muted); font-size: 15px; }
.nc-success__draw { display: grid; gap: 2px; margin-top: 10px; padding: 15px; border-radius: 14px; border: 1px solid var(--nc-border); background: rgba(255,255,255,.04); }
.nc-success__draw span { color: var(--nc-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.nc-success__draw strong { font-size: 20px; color: var(--nc-text); }
.nc-muted { color: var(--nc-muted)!important; font-size: 12px!important; }

.nc-content { border-top: 1px solid var(--nc-border); background: #0a1823; }
.nc-content__inner { max-width: 1040px; margin: 0 auto; padding: clamp(38px,5vw,72px) clamp(16px,3vw,32px); color: #dce6ee; line-height: 1.75; }
.nc-content__inner h2, .nc-content__inner h3 { color: var(--nc-text); }
.nc-content__inner a { color: var(--nc-accent-2); }

@media (max-width: 980px) {
  .nc-hero__grid { grid-template-columns: 1fr; }
  .nc-poster { min-height: 0; }
  .nc-poster__img { min-height: 0; max-height: 720px; object-fit: cover; }
  .nc-poster__placeholder { min-height: 380px; }
}
@media (max-width: 760px) {
  .nc-social-actions { gap: 9px; }
}
@media (max-width: 620px) {
  .nc-hero { padding-left: 12px; padding-right: 12px; }
  .nc-title { font-size: clamp(34px,11vw,52px); }
  .nc-hero__copy { margin-bottom: 20px; }
  .nc-form { grid-template-columns: 1fr; }
  .nc-field--full { grid-column: auto; }
  .nc-form-card { padding: 20px 16px; border-radius: 18px; }
  .nc-poster { border-radius: 18px; }
  .nc-dates { display: grid; gap: 5px; }
}


/* NOTE Contest 1.0.4 — inline AJAX account step */
.nc-hidden { display: none !important; }

.nc-auth-stage { min-height: 100%; }
.nc-auth { display: grid; gap: 14px; align-content: center; min-height: 100%; }
.nc-auth h2 {
  margin: 6px 0 0;
  color: var(--nc-text);
  font-size: clamp(30px,4vw,48px);
  line-height: 1;
  letter-spacing: -.035em;
}
.nc-auth__intro { margin: 0; color: var(--nc-muted); line-height: 1.55; }
.nc-auth__identity {
  display: grid;
  gap: 4px;
  padding: 13px 15px;
  border: 1px solid var(--nc-border);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}
.nc-auth__identity span {
  color: var(--nc-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.nc-auth__identity strong {
  color: var(--nc-text);
  font-size: 15px;
  overflow-wrap: anywhere;
}
.nc-auth-form { display: grid; gap: 14px; }
.nc-auth__hint {
  margin: -4px 0 0;
  color: var(--nc-muted);
  font-size: 11px;
  line-height: 1.45;
}
.nc-auth-error {
  margin: 0;
  padding: 13px 15px;
  border-radius: 12px;
  background: rgba(255,107,120,.10);
  border: 1px solid rgba(255,107,120,.24);
  color: #ffd0d5;
  font-size: 13px;
}
.nc-auth-back {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--nc-border);
  border-radius: 12px;
  background: transparent;
  color: var(--nc-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.nc-auth-back:hover {
  border-color: rgba(87,216,255,.35);
  color: var(--nc-text);
  background: rgba(87,216,255,.06);
}
.nc-ajax-form-error { grid-column: 1 / -1; margin-bottom: 0; }


/* NOTE Contest 1.0.8 — inline password recovery as a plain text link */
.nc-auth-forgot-line {
  margin:2px 0 0;
  color:var(--nc-muted);
  font-size:12px;
  line-height:1.45;
  text-align:center;
}
.nc-auth-forgot {
  color:var(--nc-accent-2);
  font:inherit;
  font-weight:800;
  text-decoration:none;
}
.nc-auth-forgot:hover,
.nc-auth-forgot:focus-visible { text-decoration:underline; }
.nc-auth-forgot[aria-disabled="true"] { opacity:.65; pointer-events:none; cursor:wait; }
.nc-auth-reset-status {
  margin:-3px 0 1px;
  padding:11px 13px;
  border-radius:11px;
  font-size:12px;
  line-height:1.45;
}
.nc-auth-reset-status.is-success { color:#bff5d8; background:rgba(97,219,159,.10); border:1px solid rgba(97,219,159,.26); }
.nc-auth-reset-status.is-error { color:#ffd0d5; background:rgba(255,107,120,.10); border:1px solid rgba(255,107,120,.24); }

.nc-elementor-shell { --nc-bg:#07131e; --nc-surface:#0e1f2d; --nc-surface-2:#132a3a; --nc-text:#f8fbff; --nc-muted:#aebdca; --nc-accent:#ffcc00; --nc-accent-2:#57d8ff; --nc-border:rgba(255,255,255,.12); --nc-danger:#ff6b78; --nc-success:#61db9f; --nc-radius:24px; --nc-shadow:0 24px 70px rgba(0,0,0,.28); }
.nc-elementor-shell .nc-component--header { max-width:none; margin-bottom:0; }
.nc-elementor-shell .nc-component--poster,
.nc-elementor-shell .nc-component--form { width:100%; height:100%; }
.nc-elementor-shell .nc-component--description { color:inherit; }
.nc-elementor-shell .nc-component--description a { color:var(--nc-accent-2); }

/* NOTE Contest 1.0.9 — button ownership / isolate from theme button skin */
.nc-component--form {
  --nc-button-bg: var(--nc-accent, #ffcc00);
  --nc-button-color: #07131e;
  --nc-button-border: transparent;
  --nc-button-hover-bg: #ffd633;
  --nc-button-hover-color: #07131e;
  --nc-button-min-height: 56px;
  --nc-button-radius: 14px;
  --nc-button-pad-y: 14px;
  --nc-button-pad-x: 22px;
  --nc-button-font-size: 15px;
  --nc-button-font-weight: 900;
  --nc-secondary-color: var(--nc-muted, #aebdca);
  --nc-secondary-border: var(--nc-border, rgba(255,255,255,.12));
  --nc-secondary-bg: transparent;
  --nc-secondary-hover-bg: rgba(87,216,255,.06);
  --nc-secondary-hover-color: var(--nc-text, #f8fbff);
}

/* Primary actions: first submit + AJAX login + AJAX registration. */
.nc-component--form button.nc-submit,
.nc-component--form .nc-form button.nc-submit,
.nc-component--form .nc-auth-form button.nc-submit,
.nc-component--form button.nc-auth-submit {
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: var(--nc-button-min-height) !important;
  height: auto !important;
  margin: 0 !important;
  padding: var(--nc-button-pad-y) var(--nc-button-pad-x) !important;
  border: 1px solid var(--nc-button-border) !important;
  border-radius: var(--nc-button-radius) !important;
  outline: 0 !important;
  background: var(--nc-button-bg) !important;
  background-image: none !important;
  color: var(--nc-button-color) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-decoration: none !important;
  text-transform: none !important;
  font-family: inherit !important;
  font-size: var(--nc-button-font-size) !important;
  font-style: normal !important;
  font-weight: var(--nc-button-font-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  overflow: visible !important;
  transform: none;
  transition: transform .16s ease, background-color .16s ease, color .16s ease, border-color .16s ease, opacity .16s ease !important;
}

.nc-component--form button.nc-submit:hover,
.nc-component--form button.nc-submit:focus-visible,
.nc-component--form button.nc-auth-submit:hover,
.nc-component--form button.nc-auth-submit:focus-visible {
  background: var(--nc-button-hover-bg) !important;
  background-image: none !important;
  color: var(--nc-button-hover-color) !important;
  border-color: var(--nc-button-border) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transform: translateY(-1px);
  filter: none !important;
}

.nc-component--form button.nc-submit:focus-visible,
.nc-component--form button.nc-auth-submit:focus-visible {
  outline: 2px solid var(--nc-accent-2, #57d8ff) !important;
  outline-offset: 3px !important;
}

.nc-component--form button.nc-submit[disabled],
.nc-component--form button.nc-auth-submit[disabled] {
  opacity: .62 !important;
  cursor: wait !important;
  transform: none !important;
}

/* Secondary action belongs to NOTE Contest too; theme cannot turn it into its own CTA. */
.nc-component--form button.nc-auth-back {
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  border: 1px solid var(--nc-secondary-border) !important;
  border-radius: 12px !important;
  background: var(--nc-secondary-bg) !important;
  background-image: none !important;
  color: var(--nc-secondary-color) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-decoration: none !important;
  text-transform: none !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  cursor: pointer !important;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease !important;
}

.nc-component--form button.nc-auth-back:hover,
.nc-component--form button.nc-auth-back:focus-visible {
  background: var(--nc-secondary-hover-bg) !important;
  color: var(--nc-secondary-hover-color) !important;
  border-color: var(--nc-secondary-border) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Password recovery remains deliberately text-only. */
.nc-component--form .nc-auth-forgot,
.nc-component--form .nc-auth-forgot:hover,
.nc-component--form .nc-auth-forgot:focus-visible {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline !important;
  width: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-transform: none !important;
}

/* 1.1.0 — WooCommerce purchase verification */
.nc-purchase-gate{display:grid;gap:18px}
.nc-purchase-verify-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nc-purchase-info{display:grid;gap:5px;padding:14px 16px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.035)}
.nc-purchase-info span{opacity:.78;font-size:.94em;line-height:1.45}
.nc-purchase-verified-badge{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 18px;padding:13px 16px;margin:0 0 18px;border:1px solid rgba(65,202,122,.35);border-radius:14px;background:rgba(65,202,122,.08)}
.nc-purchase-verified-badge strong{font-weight:800}
.nc-purchase-verified-badge span{opacity:.82;font-size:.94em}
.nc-thankyou-contest-offer{margin:24px 0;padding:20px;border:1px solid rgba(0,0,0,.12);border-radius:16px}
.nc-thankyou-contest-offer>strong{display:block;font-size:1.08em;margin-bottom:6px}
.nc-thankyou-contest-offer p{margin:8px 0}
.nc-thankyou-contest-button{display:inline-block!important}
@media (max-width:680px){.nc-purchase-verify-form{grid-template-columns:1fr}.nc-purchase-verified-badge{align-items:flex-start;flex-direction:column}}


/* NOTE Contest 1.2.0 — purchase qualification hardening */
.nc-purchase-verified-badge.is-warning{border-color:rgba(255,184,77,.42);background:rgba(255,184,77,.09)}
.nc-purchase-verified-badge.is-warning strong{color:#ffd08a}
.nc-thankyou-contest-offer{box-sizing:border-box}
.nc-thankyou-contest-offer .button{white-space:normal;text-align:center}

/* NOTE Contest 1.4.0 — Theme Engine + purchase paths */
.nc-page,
.nc-component,
.nc-elementor-shell {
  --nc-bg: color-mix(in srgb, var(--nc-dark, #07131e) 92%, #000 8%);
  --nc-surface: color-mix(in srgb, var(--nc-dark, #07131e) 88%, var(--nc-light, #f8fbff) 12%);
  --nc-surface-2: color-mix(in srgb, var(--nc-dark, #07131e) 80%, var(--nc-light, #f8fbff) 20%);
  --nc-text: var(--nc-dark-text, #fff);
  --nc-muted: color-mix(in srgb, var(--nc-dark-text, #fff) 70%, transparent);
  --nc-accent-2: var(--nc-secondary, #8b2cf5);
  --nc-border: color-mix(in srgb, var(--nc-dark-text, #fff) 16%, transparent);
  --nc-success: #61db9f;
  --nc-danger: #ff6b78;
  --nc-radius: 24px;
  --nc-shadow: 0 24px 70px rgba(0,0,0,.28);
}

.note-contest-template,
.nc-page,
.nc-elementor-shell {
  background:
    radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--nc-primary, #ff8a00) 14%, transparent), transparent 36%),
    radial-gradient(circle at 90% 4%, color-mix(in srgb, var(--nc-secondary, #8b2cf5) 16%, transparent), transparent 34%),
    var(--nc-bg, #07131e);
  color: var(--nc-text, #fff);
}

.nc-kicker,
.nc-form-card__eyebrow { color: var(--nc-primary, #ff8a00); }
.nc-title,
.nc-prize strong,
.nc-form-card__head h2,
.nc-success h2 { color: var(--nc-text, #fff); }
.nc-prize-desc,
.nc-dates,
.nc-form-card__head p { color: var(--nc-muted, #aebdca); }
.nc-prize > span:last-child { border-color: var(--nc-border); color: var(--nc-muted); }
.nc-status--open { background: color-mix(in srgb, var(--nc-primary, #ff8a00) 12%, transparent); color: var(--nc-primary, #ff8a00); border-color: color-mix(in srgb, var(--nc-primary, #ff8a00) 34%, transparent); }
.nc-status--upcoming { background: color-mix(in srgb, var(--nc-secondary, #8b2cf5) 12%, transparent); color: var(--nc-secondary, #8b2cf5); border-color: color-mix(in srgb, var(--nc-secondary, #8b2cf5) 34%, transparent); }

.nc-poster,
.nc-form-card {
  background: linear-gradient(180deg, color-mix(in srgb, var(--nc-surface-2) 96%, transparent), color-mix(in srgb, var(--nc-surface) 98%, transparent));
  border-color: var(--nc-border);
}

.nc-poster { min-height: 0; aspect-ratio: 1 / 1; }
.nc-poster__img { min-height: 0; aspect-ratio: 1 / 1; object-fit: cover; }
.nc-poster__placeholder { min-height: 0; aspect-ratio: 1 / 1; background: linear-gradient(145deg, var(--nc-surface-2), var(--nc-bg)); }

.nc-component--form {
  --nc-button-bg: var(--nc-primary, #ff8a00);
  --nc-button-color: var(--nc-primary-text, #07131e);
  --nc-button-hover-bg: color-mix(in srgb, var(--nc-primary, #ff8a00) 86%, #fff 14%);
  --nc-button-hover-color: var(--nc-primary-text, #07131e);
  --nc-secondary-hover-bg: color-mix(in srgb, var(--nc-secondary, #8b2cf5) 10%, transparent);
  --nc-secondary-hover-color: var(--nc-text, #fff);
}

.nc-field input,
.nc-field select,
.nc-field textarea {
  border-color: var(--nc-border);
  background: color-mix(in srgb, var(--nc-bg, #07131e) 84%, transparent);
  color: var(--nc-text, #fff);
}
.nc-field input:focus,
.nc-field select:focus,
.nc-field textarea:focus {
  border-color: var(--nc-secondary, #8b2cf5);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nc-secondary, #8b2cf5) 18%, transparent);
}

.nc-purchase-paths { display:grid; grid-template-columns:1fr; gap:16px; }
.nc-purchase-path {
  display:grid;
  gap:12px;
  padding:18px;
  border:1px solid var(--nc-border);
  border-radius:18px;
  background: color-mix(in srgb, var(--nc-surface-2) 74%, transparent);
}
.nc-purchase-path--buy {
  border-color: color-mix(in srgb, var(--nc-primary, #ff8a00) 38%, var(--nc-border));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nc-primary, #ff8a00) 10%, transparent), transparent 58%),
    color-mix(in srgb, var(--nc-surface-2) 78%, transparent);
}
.nc-purchase-path h3 { margin:0; color:var(--nc-text); font-size:clamp(20px,2vw,26px); line-height:1.08; }
.nc-purchase-path p { margin:0; color:var(--nc-muted); line-height:1.55; }
.nc-purchase-path__badge {
  display:inline-flex;
  width:max-content;
  padding:6px 9px;
  border-radius:999px;
  background:color-mix(in srgb, var(--nc-secondary, #8b2cf5) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--nc-secondary, #8b2cf5) 32%, transparent);
  color:var(--nc-secondary, #8b2cf5);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.nc-purchase-path--buy .nc-purchase-path__badge {
  background:color-mix(in srgb, var(--nc-primary, #ff8a00) 12%, transparent);
  border-color:color-mix(in srgb, var(--nc-primary, #ff8a00) 34%, transparent);
  color:var(--nc-primary, #ff8a00);
}
.nc-purchase-buy-button {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:var(--nc-button-min-height, 56px);
  padding:var(--nc-button-pad-y, 14px) var(--nc-button-pad-x, 22px);
  border:1px solid transparent;
  border-radius:var(--nc-button-radius, 14px);
  background:var(--nc-button-bg, var(--nc-primary));
  color:var(--nc-button-color, var(--nc-primary-text)) !important;
  font-size:var(--nc-button-font-size, 15px);
  font-weight:var(--nc-button-font-weight, 900);
  text-decoration:none !important;
  text-align:center;
  transition:transform .16s ease, background-color .16s ease;
}
.nc-purchase-buy-button:hover,
.nc-purchase-buy-button:focus-visible { transform:translateY(-1px); background:var(--nc-button-hover-bg); color:var(--nc-button-hover-color)!important; }

.nc-purchase-verify-form { margin-top:2px; }
.nc-purchase-verified-badge { border-color:color-mix(in srgb, var(--nc-success) 38%, transparent); background:color-mix(in srgb, var(--nc-success) 9%, transparent); }

.nc-component--description {
  color:var(--nc-text, #fff);
  background:color-mix(in srgb, var(--nc-surface) 78%, transparent);
  border:1px solid var(--nc-border);
  border-radius:22px;
  padding:clamp(22px,3vw,38px);
  box-shadow:0 18px 48px rgba(0,0,0,.14);
}
.nc-component--description :is(h2,h3,h4,strong) { color:var(--nc-text); }
.nc-component--description a { color:var(--nc-primary, #ff8a00); }

.nc-contest-theme-shell,
.nc-elementor-shell {
  background:transparent !important;
}
.nc-contest-theme-shell > .e-con-inner,
.nc-elementor-shell > .e-con-inner { width:min(1380px, 100%); }

@media (min-width: 1180px) {
  .nc-purchase-paths { grid-template-columns: .88fr 1.12fr; align-items:start; }
  .nc-purchase-path--buy { min-height:100%; }
}
@media (max-width: 1024px) {
  .nc-poster, .nc-poster__img { aspect-ratio: 1 / 1; }
}
@media (max-width: 680px) {
  .nc-purchase-path { padding:15px; border-radius:15px; }
  .nc-component--description { border-radius:18px; }
}

/* =========================================================
   NOTE Contest 1.4.1 — GLOBAL LIGHT/DARK BRIDGE
   Owner of mode: NOTE.radio V2 Core Tokens + Theme Controller.
   Event Theme Engine owns campaign accents only.
   Canonical effective mode: html[data-ntr-theme-effective="light|dark"]
   ========================================================= */

/* Default = LIGHT-safe fallback. On NOTE.radio these values resolve to the
   canonical global --ntr-* tokens published by Core Tokens 2.0. */
.nc-page,
.nc-component,
.nc-elementor-shell,
.nc-contest-theme-shell {
  --nc-bg: var(--ntr-page-bg, var(--nc-light, #f8fbff));
  --nc-surface: var(--ntr-surface, #ffffff);
  --nc-surface-2: var(--ntr-surface-2, #eef3f6);
  --nc-surface-3: var(--ntr-surface-3, #e7edf2);
  --nc-text: var(--ntr-text-primary, var(--nc-light-text, #07131e));
  --nc-muted: var(--ntr-text-secondary, #52616f);
  --nc-muted-2: var(--ntr-text-muted, #748391);
  --nc-border: var(--ntr-border, rgba(13,27,40,.12));
  --nc-border-strong: var(--ntr-border-strong, rgba(13,27,40,.20));
  --nc-shadow: var(--ntr-shadow-soft, 0 4px 18px rgba(13,27,40,.07));
  --nc-hover-bg: var(--ntr-hover-bg, rgba(13,27,40,.045));
  --nc-accent-2: var(--nc-secondary, #8b2cf5);
  --nc-success: #2f9f67;
  --nc-danger: #cf4051;
  --nc-radius: 24px;
  color-scheme: light;
}

/* Robust DARK fallback. The canonical --ntr-* values still win when present. */
html[data-ntr-theme-effective="dark"] .nc-page,
html[data-ntr-theme-effective="dark"] .nc-component,
html[data-ntr-theme-effective="dark"] .nc-elementor-shell,
html[data-ntr-theme-effective="dark"] .nc-contest-theme-shell {
  --nc-bg: var(--ntr-page-bg, var(--nc-dark, #07131e));
  --nc-surface: var(--ntr-surface, #0d1b28);
  --nc-surface-2: var(--ntr-surface-2, #122434);
  --nc-surface-3: var(--ntr-surface-3, #172a3a);
  --nc-text: var(--ntr-text-primary, var(--nc-dark-text, #f5f7fa));
  --nc-muted: var(--ntr-text-secondary, #b7c2cc);
  --nc-muted-2: var(--ntr-text-muted, #8997a5);
  --nc-border: var(--ntr-border, rgba(255,255,255,.10));
  --nc-border-strong: var(--ntr-border-strong, rgba(255,255,255,.18));
  --nc-shadow: var(--ntr-shadow-soft, 0 4px 20px rgba(0,0,0,.22));
  --nc-hover-bg: var(--ntr-hover-bg, rgba(255,255,255,.055));
  --nc-success: #61db9f;
  --nc-danger: #ff6b78;
  color-scheme: dark;
}

html[data-ntr-theme-effective="light"] .nc-page,
html[data-ntr-theme-effective="light"] .nc-component,
html[data-ntr-theme-effective="light"] .nc-elementor-shell,
html[data-ntr-theme-effective="light"] .nc-contest-theme-shell {
  color-scheme: light;
}

/* Page canvas follows the global theme. Event colors are only atmospheric accents. */
.note-contest-template,
.nc-page,
.nc-elementor-shell,
.nc-contest-theme-shell {
  background:
    radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--nc-primary, #ff8a00) 7%, transparent), transparent 34%),
    radial-gradient(circle at 90% 3%, color-mix(in srgb, var(--nc-secondary, #8b2cf5) 7%, transparent), transparent 32%),
    var(--nc-bg) !important;
  color: var(--nc-text) !important;
}
html[data-ntr-theme-effective="dark"] :is(.note-contest-template,.nc-page,.nc-elementor-shell,.nc-contest-theme-shell) {
  background:
    radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--nc-primary, #ff8a00) 13%, transparent), transparent 36%),
    radial-gradient(circle at 90% 3%, color-mix(in srgb, var(--nc-secondary, #8b2cf5) 14%, transparent), transparent 34%),
    var(--nc-bg) !important;
}

/* Header typography always follows the effective global mode. */
.nc-component--header,
.nc-component--header .nc-title,
.nc-component--header .nc-prize strong,
.nc-component--header .nc-dates b {
  color: var(--nc-text) !important;
}
.nc-component--header :is(.nc-prize__label,.nc-prize-desc,.nc-dates) {
  color: var(--nc-muted) !important;
}
.nc-component--header .nc-kicker { color: var(--nc-primary) !important; }

/* Cards/surfaces follow Light/Dark; event palette only accents borders and focus. */
.nc-poster,
.nc-form-card,
.nc-component--description {
  background: var(--nc-surface) !important;
  border-color: var(--nc-border) !important;
  color: var(--nc-text) !important;
  box-shadow: var(--nc-shadow) !important;
}
.nc-form-card {
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--nc-primary) 4%, transparent), transparent 42%),
    var(--nc-surface) !important;
}
html[data-ntr-theme-effective="dark"] .nc-form-card {
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--nc-primary) 8%, transparent), transparent 46%),
    var(--nc-surface) !important;
}
.nc-poster__placeholder {
  background: linear-gradient(145deg, var(--nc-surface-2), var(--nc-surface-3)) !important;
  color: var(--nc-text) !important;
}

/* Form text + controls. */
.nc-form-card__head h2,
.nc-success h2,
.nc-purchase-path h3,
.nc-auth h2,
.nc-auth__identity strong,
.nc-success__draw strong,
.nc-condition p,
.nc-check,
.nc-field > span {
  color: var(--nc-text) !important;
}
:is(.nc-form-card__head p,.nc-purchase-path p,.nc-auth__intro,.nc-auth__hint,.nc-auth__identity span,.nc-success p,.nc-success__draw span,.nc-muted) {
  color: var(--nc-muted) !important;
}
.nc-field input,
.nc-field select,
.nc-field textarea {
  border-color: var(--nc-border) !important;
  background: var(--nc-surface-2) !important;
  color: var(--nc-text) !important;
}
.nc-field input::placeholder,
.nc-field textarea::placeholder { color: var(--nc-muted-2) !important; opacity: 1; }
.nc-field input:focus,
.nc-field select:focus,
.nc-field textarea:focus {
  border-color: var(--nc-secondary) !important;
  background: var(--nc-surface) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nc-secondary) 18%, transparent) !important;
}

/* Purchase paths use theme surfaces and event accents. */
.nc-purchase-path {
  background: var(--nc-surface-2) !important;
  border-color: var(--nc-border) !important;
}
.nc-purchase-path--buy {
  border-color: color-mix(in srgb, var(--nc-primary) 42%, var(--nc-border)) !important;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nc-primary) 10%, transparent), transparent 60%),
    var(--nc-surface-2) !important;
}
.nc-purchase-path__badge {
  background: color-mix(in srgb, var(--nc-secondary) 10%, var(--nc-surface)) !important;
  border-color: color-mix(in srgb, var(--nc-secondary) 34%, var(--nc-border)) !important;
  color: var(--nc-secondary) !important;
}
.nc-purchase-path--buy .nc-purchase-path__badge {
  background: color-mix(in srgb, var(--nc-primary) 10%, var(--nc-surface)) !important;
  border-color: color-mix(in srgb, var(--nc-primary) 36%, var(--nc-border)) !important;
  color: var(--nc-primary) !important;
}

/* Primary/secondary buttons: event palette + automatic contrast; no fixed dark text. */
.nc-component--form {
  --nc-button-bg: var(--nc-primary);
  --nc-button-color: var(--nc-primary-text);
  --nc-button-border: transparent;
  --nc-button-hover-bg: color-mix(in srgb, var(--nc-primary) 86%, var(--nc-surface) 14%);
  --nc-button-hover-color: var(--nc-primary-text);
  --nc-secondary-color: var(--nc-text);
  --nc-secondary-border: var(--nc-border-strong);
  --nc-secondary-bg: transparent;
  --nc-secondary-hover-bg: var(--nc-hover-bg);
  --nc-secondary-hover-color: var(--nc-text);
}

/* Conditions / consent / identity cards. */
.nc-condition,
.nc-check--terms,
.nc-auth__identity,
.nc-success__draw,
.nc-purchase-info {
  background: var(--nc-surface-2) !important;
  border-color: var(--nc-border) !important;
  color: var(--nc-text) !important;
}
.nc-condition {
  border-color: color-mix(in srgb, var(--nc-accent) 34%, var(--nc-border)) !important;
  background: color-mix(in srgb, var(--nc-accent) 7%, var(--nc-surface-2)) !important;
}
.nc-condition__title { color: var(--nc-accent) !important; }
.nc-condition a,
.nc-check a,
.nc-auth-forgot,
.nc-component--description a { color: var(--nc-secondary) !important; }

/* Status chips. */
.nc-status--open {
  background: color-mix(in srgb, var(--nc-success) 10%, var(--nc-surface)) !important;
  color: var(--nc-success) !important;
  border-color: color-mix(in srgb, var(--nc-success) 34%, var(--nc-border)) !important;
}
.nc-status--upcoming {
  background: color-mix(in srgb, var(--nc-secondary) 10%, var(--nc-surface)) !important;
  color: var(--nc-secondary) !important;
  border-color: color-mix(in srgb, var(--nc-secondary) 34%, var(--nc-border)) !important;
}
.nc-status--closed,
.nc-status--finished {
  background: var(--nc-surface-2) !important;
  color: var(--nc-muted) !important;
  border-color: var(--nc-border) !important;
}

/* Notices remain semantic but readable in both modes. */
.nc-notice--success,
.nc-auth-reset-status.is-success {
  background: color-mix(in srgb, var(--nc-success) 10%, var(--nc-surface)) !important;
  border-color: color-mix(in srgb, var(--nc-success) 30%, var(--nc-border)) !important;
  color: color-mix(in srgb, var(--nc-success) 72%, var(--nc-text) 28%) !important;
}
.nc-notice--info {
  background: color-mix(in srgb, var(--nc-secondary) 9%, var(--nc-surface)) !important;
  border-color: color-mix(in srgb, var(--nc-secondary) 28%, var(--nc-border)) !important;
  color: var(--nc-text) !important;
}
.nc-notice--error,
.nc-auth-error,
.nc-auth-reset-status.is-error {
  background: color-mix(in srgb, var(--nc-danger) 9%, var(--nc-surface)) !important;
  border-color: color-mix(in srgb, var(--nc-danger) 28%, var(--nc-border)) !important;
  color: color-mix(in srgb, var(--nc-danger) 72%, var(--nc-text) 28%) !important;
}

/* Native description/content bridge. */
.nc-content {
  background: var(--nc-bg) !important;
  border-top-color: var(--nc-border) !important;
}
.nc-content__inner,
.nc-component--description,
.nc-component--description :is(h1,h2,h3,h4,strong) {
  color: var(--nc-text) !important;
}

/* Elementor shell must not reintroduce the old fixed dark palette. */
.nc-elementor-shell {
  --nc-accent-2: var(--nc-secondary);
}
.nc-contest-theme-shell,
.nc-elementor-shell { min-height: 100%; }

/* Theme toggle changes are variable-driven; no transitions that flash the wrong mode. */
.nc-elementor-shell,
.nc-contest-theme-shell,
.nc-form-card,
.nc-component--description,
.nc-purchase-path,
.nc-field input,
.nc-field select,
.nc-field textarea {
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
\n\n/* NOTE Contest 1.4.2 — lead + reusable Single Contest UX refinement */\n.nc-component--lead {\n  position:relative;\n  display:grid;\n  grid-template-columns:auto minmax(0,1fr);\n  align-items:start;\n  gap:14px 18px;\n  max-width:1120px;\n  margin:16px 0 4px;\n  padding:16px 18px;\n  border:1px solid var(--nc-border);\n  border-left:4px solid var(--nc-primary);\n  border-radius:16px;\n  background:color-mix(in srgb,var(--nc-primary) 5%,var(--nc-surface));\n  box-shadow:var(--nc-shadow);\n}\nhtml[data-ntr-theme-effective="dark"] .nc-component--lead {\n  background:color-mix(in srgb,var(--nc-primary) 8%,var(--nc-surface));\n}\n.nc-lead__label {\n  display:inline-flex;\n  align-items:center;\n  min-height:26px;\n  padding:5px 9px;\n  border:1px solid color-mix(in srgb,var(--nc-primary) 34%,var(--nc-border));\n  border-radius:999px;\n  color:var(--nc-primary);\n  background:color-mix(in srgb,var(--nc-primary) 8%,var(--nc-surface));\n  font-size:10px;\n  font-weight:900;\n  letter-spacing:.08em;\n  text-transform:uppercase;\n  white-space:nowrap;\n}\n.nc-lead__text { margin:0; color:var(--nc-text); font-size:clamp(15px,1.35vw,18px); line-height:1.55; font-weight:600; }\n\n.nc-component--header { max-width:1120px; }\n.nc-component--header .nc-title { max-width:1040px; }\n.nc-component--header .nc-status { margin-top:14px; }\n.nc-component--header .nc-dates { margin-top:14px; }\n\n.nc-purchase-paths { align-items:stretch !important; }\n.nc-purchase-path { height:100%; align-content:start; }\n.nc-purchase-path .nc-purchase-buy-button,\n.nc-purchase-path .nc-submit { margin-top:auto; }\n@media (min-width: 880px) {\n  .nc-purchase-paths { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) !important; }\n}\n\n.nc-component--description {\n  padding:clamp(24px,3vw,40px) !important;\n  border-radius:20px !important;\n}\n.nc-description__head { display:grid; gap:4px; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--nc-border); }\n.nc-description__head span { color:var(--nc-primary); font-size:10px; font-weight:900; letter-spacing:.1em; }\n.nc-description__head h2 { margin:0 !important; color:var(--nc-text) !important; font-size:clamp(24px,2.5vw,34px); line-height:1.08; letter-spacing:-.025em; }\n.nc-description__body { color:var(--nc-text); line-height:1.72; }\n.nc-description__body > :first-child { margin-top:0; }\n.nc-description__body > :last-child { margin-bottom:0; }\n\n.nc-contest-single-v2-2 .nc-component--poster,\n.nc-contest-single-v2-2 .nc-component--form { height:100%; }\n\n@media (max-width: 720px) {\n  .nc-component--lead { grid-template-columns:1fr; gap:9px; padding:14px 15px; }\n  .nc-lead__label { width:max-content; }\n}\n
/* NOTE Contest 1.5.0 — multi-order qualification */
.nc-multi-order-list{
  display:grid;
  gap:10px;
}
.nc-multi-order-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}
.nc-multi-order-row .nc-field{
  margin:0;
}
.nc-multi-order-add,
.nc-multi-order-remove{
  appearance:none;
  border:1px dashed color-mix(in srgb,var(--nc-primary) 45%,var(--nc-border));
  border-radius:12px;
  background:color-mix(in srgb,var(--nc-primary) 6%,var(--nc-surface));
  color:var(--nc-primary);
  font:inherit;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  cursor:pointer;
}
.nc-multi-order-add{
  min-height:44px;
  padding:10px 14px;
}
.nc-multi-order-remove{
  min-height:50px;
  padding:10px 13px;
  border-style:solid;
}
.nc-multi-order-add:hover,
.nc-multi-order-add:focus-visible,
.nc-multi-order-remove:hover,
.nc-multi-order-remove:focus-visible{
  background:color-mix(in srgb,var(--nc-primary) 11%,var(--nc-surface));
}
.nc-multi-order-hint{
  margin:-2px 0 2px;
  color:var(--nc-muted);
  font-size:12px;
  line-height:1.5;
}
@media(max-width:680px){
  .nc-multi-order-row{grid-template-columns:1fr}
  .nc-multi-order-remove{min-height:40px;justify-self:start}
}
