/* LeafAction — blaskattacks design system
 * Palette and type carried over from the 7-OH contact toolkit so the two
 * sites read as one project.
 */

:root{
  --ink:#0b0c10; --panel:#14161d; --panel2:#1b1e27; --panel3:#0e1016;
  --line:#2b2f3a; --line2:#3a3f4d;
  --ember:#ff5a1f; --gold:#f6b52d; --blood:#e5484d; --money:#1faa72; --sky:#3f8ae0;
  --tx:#f4f1ea; --tx2:#b7bcc7; --tx3:#7d828f;
  --disp:'Anton',Impact,sans-serif;
  --head:'Oswald',sans-serif;
  --body:'Inter',Arial,sans-serif;
  --mono:'Space Mono',monospace;
  --r:12px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--ink);color:var(--tx);font-family:var(--body);
  -webkit-font-smoothing:antialiased;line-height:1.5;
}
.wrap{max-width:1000px;margin:0 auto;padding:clamp(20px,4vw,52px) clamp(16px,4vw,36px) 96px}

/* ── type ─────────────────────────────────────────────────────────── */
.tagline{font-family:var(--mono);letter-spacing:.24em;color:var(--ember);font-weight:700;text-transform:uppercase;font-size:12.5px}
h1{font-family:var(--disp);font-weight:400;text-transform:uppercase;line-height:.95;font-size:clamp(36px,6.4vw,68px);margin:12px 0 0}
h1 .em{color:var(--ember)}
.sub{font-family:var(--head);font-weight:500;color:var(--tx2);font-size:clamp(15px,2vw,21px);margin-top:14px;max-width:62ch}
.secttl{font-family:var(--disp);text-transform:uppercase;font-size:clamp(20px,3.2vw,32px);margin:44px 0 6px;letter-spacing:.01em}
.secsub{color:var(--tx3);font-family:var(--mono);font-size:12.5px;margin-bottom:16px}
a{color:var(--gold)}

/* ── step headers ─────────────────────────────────────────────────── */
.step{display:flex;align-items:center;gap:11px;margin:40px 0 14px}
.step .n{
  font-family:var(--disp);font-size:17px;width:31px;height:31px;flex:0 0 31px;
  display:grid;place-items:center;border-radius:50%;
  background:var(--ember);color:#fff;
}
.step h2{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:17px}
.step .hint{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--tx3)}

/* ── topic picker ─────────────────────────────────────────────────── */
.topicbar{
  display:grid;grid-template-columns:auto minmax(220px,340px);gap:8px 14px;
  align-items:center;margin-top:34px;padding:16px 18px;
  border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:var(--r);background:var(--panel);
}
.topicbar label{margin:0;align-self:center}
.topicbar select{
  font-family:var(--head);font-weight:600;font-size:16px;text-transform:uppercase;
  letter-spacing:.03em;padding:10px 12px;
}
.topicblurb{grid-column:1/-1;color:var(--tx2);font-size:14px}
@media(max-width:620px){
  .topicbar{grid-template-columns:1fr}
  .topicbar label{margin-bottom:2px}
}

.soon{border:1px solid var(--line);border-left:3px solid var(--sky);border-radius:14px;background:var(--panel);padding:22px 24px;margin-top:16px}
.soon h3{font-family:var(--disp);text-transform:uppercase;font-size:clamp(20px,3vw,28px);margin-bottom:8px}
.soon .lead{color:var(--tx2);font-size:15px;margin-bottom:14px}
.soon h4{font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:13px;color:var(--gold);margin:16px 0 8px}
.soon ul{padding-left:19px;color:var(--tx2);font-size:14.5px}
.soon li{margin-bottom:7px}

/* ── campaign picker ──────────────────────────────────────────────── */
.picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:11px}
.camp{
  text-align:left;cursor:pointer;background:var(--panel);color:var(--tx);
  border:1px solid var(--line);border-left:3px solid var(--line2);
  border-radius:var(--r);padding:14px 16px;font-family:var(--body);
  transition:border-color .13s,background .13s;
}
.camp:hover{background:var(--panel2);border-left-color:var(--gold)}
.camp[aria-pressed="true"]{border-color:var(--ember);border-left-color:var(--ember);background:rgba(255,90,31,.09)}
.camp .t{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:14.5px}
.camp .d{color:var(--tx3);font-size:12.5px;margin-top:5px;font-family:var(--mono)}

/* ── panels / cards ───────────────────────────────────────────────── */
.panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:20px 22px;margin-top:16px}
.panel.tight{padding:16px 18px}
.card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:20px 22px;margin-top:14px}
.card.pri{border-left:3px solid var(--ember)}
.card.sec{border-left:3px solid var(--line2);opacity:.94}
.card.avoid{border-left:3px solid var(--blood)}
.card.state{border-left:3px solid var(--sky)}

.facts{margin:12px 0 0;padding-left:19px;color:var(--tx2);font-size:14.5px}
.facts li{margin-bottom:7px}
.facts b{color:var(--tx)}

.scope{
  border:1px dashed var(--gold);border-radius:10px;padding:14px 16px;margin-top:16px;
  background:rgba(246,181,45,.05);color:var(--tx2);font-size:14px;
}
.scope h4{font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:13px;color:var(--gold);margin-bottom:7px}
.scope b{color:var(--tx)}

.note{border:1px dashed var(--line);border-radius:10px;padding:14px 16px;margin-top:14px;color:var(--tx2);font-size:14px}
.note b{color:var(--tx)}
.note.warn{border-color:var(--blood);background:rgba(229,72,77,.06)}
.note.warn b{color:var(--blood)}

/* ── forms ────────────────────────────────────────────────────────── */
label{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--tx3);margin-bottom:6px}
input[type=text],input[type=search],select,textarea{
  width:100%;background:var(--panel3);color:var(--tx);border:1px solid var(--line);
  border-radius:9px;padding:11px 13px;font-family:var(--body);font-size:15px;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ember);outline-offset:-1px;border-color:var(--ember)}
textarea{resize:vertical;min-height:118px;line-height:1.55}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.field{margin-bottom:14px}
@media(max-width:620px){.row,.row3{grid-template-columns:1fr}}

.btn{
  display:inline-block;cursor:pointer;font-family:var(--head);font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;font-size:14px;
  background:var(--ember);color:#fff;border:0;border-radius:9px;padding:12px 20px;
  text-decoration:none;transition:filter .13s;
}
.btn:hover{filter:brightness(1.13)}
.btn.ghost{background:transparent;color:var(--tx2);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold);filter:none}
.btn.gold{background:var(--gold);color:var(--ink)}
.btn.sm{font-size:12.5px;padding:9px 14px}
.btn:disabled,.btn[aria-disabled="true"],[aria-disabled="true"].copy{opacity:.38;cursor:not-allowed;filter:none}
.btns{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}

/* ── lookup tabs ──────────────────────────────────────────────────── */
.tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}
.tab{
  cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--tx2);
  border-radius:999px;padding:7px 15px;font-family:var(--mono);font-size:12px;
  text-transform:uppercase;letter-spacing:.07em;
}
.tab[aria-selected="true"]{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700}

/* ── member cards ─────────────────────────────────────────────────── */
.nm{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(17px,2.2vw,22px);color:var(--tx)}
.nm .party{color:var(--tx3);font-weight:500;font-size:.68em;letter-spacing:.06em}
.why{color:var(--tx2);font-size:14.5px;margin-top:8px}
.why b{color:var(--tx)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.chip{font-family:var(--mono);font-size:11.5px;border:1px solid var(--line);border-radius:999px;padding:5px 11px;color:var(--tx2)}
.chip b{color:var(--gold)}
.chip.pri{border-color:var(--ember);color:var(--gold)}
.chip.done{border-color:var(--money);color:var(--money)}

.contact{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;font-family:var(--mono);font-size:12.5px;color:var(--tx2)}
.contact a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--ember)}

/* ── draft box ────────────────────────────────────────────────────── */
.msgwrap{margin-top:13px;position:relative}
.msg{
  border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:9px;
  background:var(--panel3);padding:15px 16px;padding-right:96px;
  font-size:14.5px;color:var(--tx);line-height:1.6;white-space:pre-wrap;
}
.msg .fill{color:var(--gold);font-weight:700}
.msg .mine{color:var(--sky)}
.copy{
  position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--gold);
  border:0;border-radius:6px;padding:6px 11px;cursor:pointer;font-weight:700;
}
.copy:hover{background:var(--ember);color:#fff}
.copy.done{background:var(--money);color:#fff}

.modes{display:flex;gap:6px;margin-top:13px}
.mode{
  cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--tx3);
  border-radius:7px;padding:6px 13px;font-family:var(--mono);font-size:11.5px;
  text-transform:uppercase;letter-spacing:.07em;
}
.mode[aria-pressed="true"]{background:var(--panel2);color:var(--gold);border-color:var(--gold)}

/* ── personal-message gate ────────────────────────────────────────── */
.gate{border:1px solid var(--gold);border-radius:12px;background:rgba(246,181,45,.045);padding:17px 19px;margin-top:16px}
.gate h3{font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:var(--gold);margin-bottom:5px}
.gate p{color:var(--tx2);font-size:14px;margin-bottom:12px}
.sparks{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 4px}
.spark{
  cursor:pointer;background:transparent;border:1px dashed var(--line2);color:var(--tx3);
  border-radius:999px;padding:6px 12px;font-size:12px;font-family:var(--body);text-align:left;
}
.spark:hover{border-color:var(--gold);color:var(--gold)}
.meter{display:flex;align-items:center;gap:9px;margin-top:8px;font-family:var(--mono);font-size:11.5px;color:var(--tx3)}
.bar{flex:1;height:4px;background:var(--line);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--blood);transition:width .18s,background .18s}
.bar.ok i{background:var(--money)}
.meter.ok{color:var(--money)}

.opts{margin-top:14px}
.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}
.opt input{margin-top:3px;flex:0 0 auto;width:16px;height:16px;accent-color:var(--ember)}
.opt .ol{font-size:14px;color:var(--tx)}
.opt .on{font-size:12.5px;color:var(--tx3);margin-top:2px}

/* ── progress ─────────────────────────────────────────────────────── */
.prog{
  position:sticky;top:0;z-index:20;background:rgba(11,12,16,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  padding:9px 0;margin:0 0 6px;font-family:var(--mono);font-size:12px;color:var(--tx2);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.prog b{color:var(--gold)}

/* ── misc ─────────────────────────────────────────────────────────── */
.muted{color:var(--tx3);font-size:13px}
.err{color:var(--blood);font-size:14px;margin-top:10px}
.spin{display:inline-block;width:13px;height:13px;border:2px solid var(--line2);border-top-color:var(--ember);border-radius:50%;animation:s .7s linear infinite;vertical-align:-2px}
@keyframes s{to{transform:rotate(360deg)}}
.hidden{display:none !important}
.results{margin-top:8px}
.srcs{margin-top:16px;font-family:var(--mono);font-size:11.5px;color:var(--tx3);line-height:1.8}
.srcs a{color:var(--tx3);text-decoration:none;border-bottom:1px solid var(--line2)}
.srcs a:hover{color:var(--gold);border-color:var(--ember)}

.foot{margin-top:52px;border-top:1px solid var(--line);padding-top:18px;font-family:var(--mono);font-size:11.5px;color:var(--tx3);line-height:1.7}
.foot a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--ember)}

/* ── disclaimer ───────────────────────────────────────────────────── */
.disclaimer{
  margin-top:56px;border:1px solid var(--line);border-top:3px solid var(--gold);
  border-radius:var(--r);background:var(--panel);padding:22px 24px;
  color:var(--tx3);font-size:13.5px;line-height:1.65;
}
.disclaimer h4{
  font-family:var(--head);text-transform:uppercase;letter-spacing:.09em;
  font-size:13px;color:var(--gold);margin-bottom:12px;
}
.disclaimer p{margin-bottom:11px}
.disclaimer p:last-child{margin-bottom:0}
.disclaimer b{color:var(--tx2);font-weight:600}
.disclaimer a{color:var(--tx2);text-decoration:none;border-bottom:1px solid var(--line2)}
.disclaimer a:hover{color:var(--gold);border-color:var(--ember)}
.disclaimer .fine{
  margin-top:14px;padding-top:12px;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:11.5px;color:var(--tx3);
}

.dirlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:9px;margin-top:12px}
.diritem{
  text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:11px 13px;color:var(--tx);font-family:var(--body);
}
.diritem:hover{border-color:var(--gold)}
.diritem .n2{font-family:var(--head);font-weight:600;font-size:14.5px;text-transform:uppercase;letter-spacing:.02em}
.diritem .m{font-family:var(--mono);font-size:11.5px;color:var(--tx3);margin-top:3px}

@media print{
  .picker,.tabs,.btns,.copy,.modes,.gate,.prog,.step .hint{display:none !important}
  body{background:#fff;color:#000}
  .card,.panel,.msg{border-color:#bbb;background:#fff;color:#000}
}
