/* =============================================================
   MBS26 GIVEAWAY — matched to mslmbtcsummit.com brand
   black terminal ground · bitcoin orange · mono type · green ACKs
   ============================================================= */
:root{
  --bg:        #050505;
  --panel:     #0a0a0a;
  --panel-2:   #0f0d08;
  --ink:       #f2f2f2;
  --dim:       #9b9b93;
  --orange:    #f7931a;
  --amber:     #f9a11b;   /* solid CTAs */
  --green:     #2fe26d;   /* terminal ACK green */
  --red:       #ff5c5c;
  --line:      rgba(247,147,26,.55);
  --line-dim:  rgba(247,147,26,.18);
  --glow:      0 0 28px rgba(247,147,26,.10);
  --mono:      'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --display:   'Archivo', 'Arial Black', sans-serif;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--mono); font-size:15px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{ color:var(--orange); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; }
.wrap{ max-width:1060px; margin:0 auto; padding:0 20px; }
.narrow{ max-width:760px; }
.orange{ color:var(--orange); } .green{ color:var(--green); }
.red{ color:var(--red); } .dim{ color:var(--dim); }
.orange-dim{ color:rgba(247,147,26,.85); }
.tiny{ font-size:12px; }
.ta-r{ text-align:right; }

:focus-visible{ outline:2px solid var(--orange); outline-offset:2px; }

/* ---------------- header ---------------- */
.site-head{
  position:sticky; top:0; z-index:50;
  background:rgba(5,5,5,.92); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line-dim);
}
.head-row{ display:flex; align-items:center; justify-content:space-between; padding:14px 20px; }
.logo{
  font-family:var(--display); font-weight:900; font-size:26px;
  color:var(--ink); letter-spacing:.5px;
}
.logo:hover{ text-decoration:none; }
.logo span{ color:var(--orange); }
.logo .cursor{ color:var(--orange); font-style:normal; animation:blink 1.1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }

/* ---------------- buttons ---------------- */
.btn{
  display:inline-block; font-family:var(--mono); font-weight:700;
  font-size:14px; letter-spacing:1.5px; cursor:pointer;
  padding:13px 26px; border:1px solid var(--orange);
  background:transparent; color:var(--orange);
  transition:background .15s, color .15s, box-shadow .15s;
}
.btn:hover{ text-decoration:none; box-shadow:var(--glow); }
.btn-ghost:hover{ background:rgba(247,147,26,.08); }
.btn-solid{
  background:var(--amber); color:#0a0a0a; border-color:var(--amber);
  padding:16px 34px;
}
.btn-solid:hover{ background:var(--orange); }
.btn-full{ display:block; width:100%; text-align:center; }
.btn-mini{ padding:8px 14px; font-size:12px; letter-spacing:1px; white-space:nowrap; }
.btn .arr{ display:inline-block; transition:transform .15s; }
.btn:hover .arr{ transform:translateX(4px); }
.btn-link{
  background:none; border:none; color:var(--dim); cursor:pointer;
  font-family:var(--mono); font-size:12px; letter-spacing:1px;
  margin-top:12px;
}
.btn-link:hover{ color:var(--orange); }
button:disabled{ opacity:.45; cursor:not-allowed; }

/* ---------------- hero ---------------- */
.hero{ position:relative; padding:84px 0 72px; text-align:center; overflow:hidden;
  border-bottom:1px solid var(--line-dim); }
.hero-pattern{
  position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%23f7931a' stroke-opacity='0.07'%3E%3Cpath d='M70 8 L88 52 L132 70 L88 88 L70 132 L52 88 L8 70 L52 52 Z'/%3E%3Cpath d='M70 30 L82 58 L110 70 L82 82 L70 110 L58 82 L30 70 L58 58 Z'/%3E%3Ccircle cx='70' cy='70' r='14'/%3E%3Cpath d='M0 0 L20 20 M140 0 L120 20 M0 140 L20 120 M140 140 L120 120'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:radial-gradient(ellipse 80% 90% at 50% 40%, #000 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 80% 90% at 50% 40%, #000 30%, transparent 75%);
}
.hero-inner{ position:relative; }
.chip{
  display:inline-block; border:1px solid var(--line);
  padding:7px 18px; font-size:13px; letter-spacing:2px; color:var(--orange);
  background:rgba(10,10,10,.7); margin-bottom:30px;
}
.chip .prompt{ margin-right:8px; }
.hero-title{
  font-family:var(--display); font-weight:900;
  font-size:clamp(46px, 9vw, 96px); line-height:.95; letter-spacing:1px;
  margin-bottom:22px;
}
.hero-sub{ color:var(--dim); max-width:560px; margin:0 auto 14px; }
.hero-meta{ font-size:13px; letter-spacing:1px; color:var(--dim); margin-bottom:36px; }

.countdown{ display:flex; gap:10px; justify-content:center; margin-bottom:10px; }
.cd-cell{
  border:1px solid var(--line); background:rgba(10,10,10,.8);
  min-width:76px; padding:12px 8px 9px; box-shadow:var(--glow);
}
.cd-cell b{
  display:block; font-family:var(--display); font-weight:900;
  font-size:34px; color:var(--orange); line-height:1; font-variant-numeric:tabular-nums;
}
.cd-cell span{ font-size:10px; letter-spacing:2px; color:var(--dim); }
.cd-label{ font-size:12px; letter-spacing:1.5px; color:var(--dim); margin-bottom:36px; }

/* ---------------- sections ---------------- */
.section{ padding:72px 0; }
.section-line{ border-top:1px solid var(--line-dim); border-bottom:1px solid var(--line-dim); background:var(--panel); }
.eyebrow{
  color:var(--orange); font-size:13px; letter-spacing:2.5px;
  margin-bottom:14px;
}
.sec-title{
  font-family:var(--display); font-weight:900;
  font-size:clamp(26px, 4.5vw, 42px); letter-spacing:.5px; margin-bottom:28px;
}
.small-note{ color:var(--dim); font-size:13px; margin-top:22px; }

/* ---------------- prizes ---------------- */
.prize-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:14px; }
.prize{
  border:1px solid var(--line-dim); background:var(--panel);
  padding:20px; transition:border-color .15s;
}
.prize:hover{ border-color:var(--line); }
.prize-grand{ border-color:var(--line); box-shadow:var(--glow); background:var(--panel-2); }
.prize-sats{ border-style:dashed; border-color:rgba(47,226,109,.4); }
.prize-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.prize-qty{ font-family:var(--display); font-weight:900; font-size:26px; color:var(--orange); }
.prize-tag{ font-size:10px; letter-spacing:2px; color:var(--dim); border:1px solid var(--line-dim); padding:3px 8px; }
.prize h3{ font-size:14px; font-weight:500; line-height:1.5; }
.prize-sats .prize-tag{ color:var(--green); border-color:rgba(47,226,109,.4); }
.prize-img{
  width:100%; aspect-ratio:4/3; overflow:hidden;
  margin-bottom:14px; border:1px solid var(--line-dim); background:#000;
}
.prize-img img{ width:100%; height:100%; object-fit:cover; display:block; }
a.prize{ display:block; color:inherit; text-decoration:none; }
a.prize:hover{ text-decoration:none; border-color:var(--line); }

/* ---------------- steps ---------------- */
.steps{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:26px; }
.step{ border-left:2px solid var(--orange); padding-left:18px; }
.step-ico{ font-size:26px; display:block; margin-bottom:10px; }
.step h3{ font-size:16px; letter-spacing:1px; margin-bottom:8px; }
.step p{ color:var(--dim); font-size:13.5px; }

/* ---------------- panels & forms ---------------- */
.state-tab{
  display:inline-block; background:var(--amber); color:#0a0a0a;
  font-weight:700; font-size:12px; letter-spacing:2px;
  padding:7px 22px; margin-left:28px; position:relative; top:1px;
}
.panel{
  border:1px solid var(--line); background:var(--panel);
  box-shadow:var(--glow); padding:30px 28px; margin-bottom:18px;
}
.field{ display:block; margin-bottom:20px; }
.field > span, .field legend{
  display:block; font-size:12px; letter-spacing:2px; color:var(--dim); margin-bottom:8px;
}
input[type=text], input[type=email]{
  width:100%; background:#000; border:1px solid var(--line-dim);
  color:var(--ink); font-family:var(--mono); font-size:15px;
  padding:13px 14px; transition:border-color .15s;
}
input[type=text]:focus, input[type=email]:focus{ border-color:var(--orange); outline:none; }
.field-note{ display:block; font-style:normal; font-size:12px; margin-top:7px; line-height:1.5; }
fieldset.field{ border:none; }
.radio-card{
  display:flex; align-items:center; gap:12px;
  border:1px solid var(--line-dim); background:#000;
  padding:13px 15px; margin-bottom:9px; cursor:pointer;
  transition:border-color .15s, background .15s; font-size:14px;
}
.radio-card:hover{ border-color:var(--line); }
.radio-card input{ accent-color:var(--orange); width:16px; height:16px; flex:none; }
.radio-card:has(input:checked){ border-color:var(--orange); background:var(--panel-2); }
.consent{ display:flex; gap:12px; align-items:flex-start; font-size:12.5px; color:var(--dim); margin:22px 0; cursor:pointer; }
.consent input{ accent-color:var(--orange); width:16px; height:16px; flex:none; margin-top:2px; }
.hp{ position:absolute; left:-5000px; top:-5000px; }
.form-error{ color:var(--red); font-size:13px; margin-top:12px; min-height:1em; }
.closed-note{ color:var(--dim); }

.resume-panel{ border-color:var(--line-dim); box-shadow:none; }
.resume-row{ display:flex; gap:10px; }
.resume-row input{ flex:1; }

/* ---------------- dashboard ---------------- */
.dash-head{ display:flex; justify-content:space-between; gap:20px; align-items:center; flex-wrap:wrap; }
.dash-name{ font-family:var(--display); font-weight:900; font-size:26px; }
.dash-email{ font-size:13px; }
.entries-box{
  border:1px solid var(--orange); background:var(--panel-2);
  text-align:center; padding:14px 26px; box-shadow:var(--glow);
}
.entries-box b{
  display:block; font-family:var(--display); font-weight:900;
  font-size:40px; color:var(--orange); line-height:1; font-variant-numeric:tabular-nums;
}
.entries-box span{ font-size:10px; letter-spacing:2px; color:var(--dim); }
.ref-desc{ font-size:13px; margin-bottom:14px; }
.ref-row{ display:flex; gap:10px; }
.ref-row input{ flex:1; color:var(--orange); }
#ref-count{ font-size:12.5px; margin-top:10px; }

/* ---------------- missions ---------------- */
.lock-note{ margin-bottom:18px; }
.missions[data-locked="1"]{ opacity:.45; pointer-events:none; user-select:none; }
.mg-title{
  font-size:15px; letter-spacing:1.5px; color:var(--ink);
  margin:34px 0 12px; padding-bottom:8px; border-bottom:1px solid var(--line-dim);
}
.mg-title:first-child{ margin-top:0; }
.mg-note{ font-size:13px; margin-bottom:14px; }
.sponsor-title{ font-size:13px; letter-spacing:1px; color:var(--orange); margin:20px 0 8px; }
.task{ border:1px solid var(--line-dim); background:var(--panel); margin-bottom:9px; }
.task.done{ border-color:rgba(47,226,109,.45); }
.task-row{ display:flex; align-items:center; gap:14px; padding:14px 16px; flex-wrap:wrap; }
.task-info{ flex:1; min-width:200px; }
.task-label{ display:block; font-size:14px; }
.task-hint{ display:block; font-size:12px; margin-top:3px; }
.task-pts{
  font-weight:700; color:var(--orange); font-size:14px;
  border:1px solid var(--line-dim); padding:3px 10px; white-space:nowrap;
}
.task-done{ font-weight:700; font-size:13px; letter-spacing:1px; white-space:nowrap; }
.task-proof{ padding:0 16px 16px; border-top:1px dashed var(--line-dim); }
.task-proof label{ display:block; font-size:12px; letter-spacing:1.5px; color:var(--dim); margin:12px 0 7px; }
.proof-row{ display:flex; gap:10px; }
.proof-row input{ flex:1; }
.task-msg{ font-size:12.5px; margin-top:8px; min-height:1em; }
.task-msg.err{ color:var(--red); }
.task-msg.ok{ color:var(--green); }

/* ---------------- leaderboard ---------------- */
.board{ width:100%; border-collapse:collapse; }
.board th{
  text-align:left; font-size:11px; letter-spacing:2px; color:var(--dim);
  padding:8px 10px; border-bottom:1px solid var(--line-dim); font-weight:500;
}
.board td{ padding:10px; border-bottom:1px solid rgba(247,147,26,.08); font-size:14px; }
.board tr:first-child td{ color:var(--orange); }
.board td:last-child{ text-align:right; font-variant-numeric:tabular-nums; }
#board-total{ font-size:12.5px; margin-top:14px; }

/* ---------------- rules & footer ---------------- */
.rules p{ font-size:13px; margin-bottom:10px; }
.site-foot{ text-align:center; padding:56px 0 42px; border-top:1px solid var(--line-dim); }
.foot-logo{ font-family:var(--display); font-weight:900; font-size:28px; margin-bottom:8px; }
.site-foot p{ margin-bottom:6px; font-size:13.5px; }

/* ---------------- toast ---------------- */
.toast{
  position:fixed; left:50%; bottom:26px; transform:translate(-50%, 20px);
  background:#0a0a0a; border:1px solid var(--green); color:var(--green);
  font-size:13px; letter-spacing:1px; padding:12px 22px;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:99;
  max-width:90vw;
}
.toast.show{ opacity:1; transform:translate(-50%, 0); }
.toast.err{ border-color:var(--red); color:var(--red); }

/* ---------------- responsive & a11y ---------------- */
@media (max-width:560px){
  .hero{ padding:56px 0 48px; }
  .cd-cell{ min-width:64px; }
  .cd-cell b{ font-size:26px; }
  .panel{ padding:22px 18px; }
  .task-row{ gap:10px; }
  .resume-row{ flex-direction:column; }
  .dash-head{ flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}
