/* Vendor Row — built to be read on a phone, outdoors, in Texas sun, on festival wifi.
   That constraint drives everything here: a light ground, near-black ink, big type,
   44px+ tap targets, no webfonts on the critical path, no framework. */
:root{
  --paper:#fbf7f0;        /* warm off-white — pure white glares in direct sun */
  --paper-2:#f3ece1;
  --card:#ffffff;
  --ink:#17150f;          /* near-black, 15.9:1 on --paper */
  --ink-2:#4a453a;
  --ink-3:#6f6858;
  --rule:#e0d7c7;
  --rule-2:#cabfa9;
  --flame:#c8330f;        /* the accent. 5.6:1 on paper — passes on text, not just fills */
  --flame-deep:#9c2409;
  --ok:#1d6b3f;
  --warn:#8a5a00;
  --shadow:0 1px 2px rgba(23,21,15,.06), 0 8px 24px -12px rgba(23,21,15,.18);
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--flame-deep);text-underline-offset:2px}
.wrap{max-width:720px;margin:0 auto;padding:0 20px}

/* ---- masthead ---- */
.mast{border-bottom:1px solid var(--rule);background:var(--paper)}
.mast__in{max-width:720px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.02em;font-size:17px;color:var(--ink);text-decoration:none}
.brand__mark{width:26px;height:26px;flex:none}
.mast__tag{font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:right}

/* ---- hero ---- */
.hero{padding:44px 0 8px}
.kicker{display:inline-flex;align-items:center;gap:7px;font:700 12px/1 var(--mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--flame-deep);background:#fbe6df;border:1px solid #f2c9bc;
  padding:7px 11px;border-radius:999px;margin:0 0 18px}
h1{font-size:clamp(30px,7.6vw,44px);line-height:1.08;letter-spacing:-.032em;margin:0 0 16px;font-weight:800}
.lede{font-size:clamp(17px,4.2vw,20px);color:var(--ink-2);margin:0 0 22px;max-width:34ch}
.lede b{color:var(--ink);font-weight:700}

/* ---- the tool ---- */
.tool{background:var(--card);border:1px solid var(--rule-2);border-radius:16px;box-shadow:var(--shadow);
  padding:22px 20px;margin:26px 0 10px}
.tool__step{font:700 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}
.tool h2{font-size:21px;line-height:1.25;letter-spacing:-.02em;margin:0 0 4px;font-weight:750}
.tool__help{font-size:14.5px;color:var(--ink-3);margin:0 0 16px}
.opts{display:grid;gap:10px;margin:0}
.opt{display:flex;gap:12px;align-items:flex-start;width:100%;min-height:56px;text-align:left;
  padding:14px 15px;border:1.5px solid var(--rule-2);border-radius:12px;background:var(--paper);
  font:inherit;color:var(--ink);cursor:pointer;transition:border-color .14s,background .14s,transform .1s}
.opt:hover{border-color:var(--flame);background:#fffdfa}
.opt:active{transform:translateY(1px)}
.opt:focus-visible{outline:3px solid var(--flame);outline-offset:2px}
.opt__b{font-weight:700;display:block;font-size:16.5px;line-height:1.3}
.opt__s{display:block;font-size:14px;color:var(--ink-3);margin-top:3px;line-height:1.45}
.opt__k{flex:none;width:26px;height:26px;border-radius:7px;background:var(--paper-2);border:1px solid var(--rule-2);
  display:grid;place-items:center;font:700 12px/1 var(--mono);color:var(--ink-3);margin-top:2px}

/* ---- result ---- */
.res{border:1.5px solid var(--flame);border-radius:16px;background:var(--card);box-shadow:var(--shadow);overflow:hidden;margin:26px 0}
.res__top{background:var(--flame);color:#fff;padding:16px 20px}
/* These two are <p>, and the generic `p{color:var(--ink-2)}` rule beats the white
   INHERITED from .res__top — a direct rule always wins over inheritance. That shipped
   dark-brown text on a red field. Set the colour explicitly on the elements themselves. */
.res__eyebrow{font:700 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:#fff;opacity:.93;margin:0 0 5px}
.res__type{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0;color:#fff}
.res__body{padding:20px}
.money{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 4px}
.money b{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1}
.money span{color:var(--ink-3);font-size:15px}
.money__note{font-size:14px;color:var(--ink-3);margin:0 0 18px}
.rows{border-top:1px solid var(--rule);margin:16px 0 0}
.row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:15.5px}
.row span{color:var(--ink-2)}
.row b{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}
.row--total b,.row--total span{font-weight:800;color:var(--ink)}
.chk{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.chk li{display:flex;gap:10px;font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.chk li::before{content:"";flex:none;width:8px;height:8px;margin-top:9px;border-radius:2px;background:var(--flame)}
.restart{margin-top:18px;background:none;border:0;padding:10px 0;min-height:44px;font:600 15px var(--sans);
  color:var(--flame-deep);cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---- generic blocks ---- */
h2.sec{font-size:24px;letter-spacing:-.025em;margin:46px 0 10px;font-weight:800}
h3{font-size:18px;margin:26px 0 8px;font-weight:750;letter-spacing:-.015em}
p{margin:0 0 14px;color:var(--ink-2)}
p strong,li strong{color:var(--ink);font-weight:700}
.tbl{width:100%;border-collapse:collapse;margin:14px 0;font-size:15.5px;background:var(--card);
  border:1px solid var(--rule-2);border-radius:12px;overflow:hidden}
.tbl th{text-align:left;font:700 11.5px/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-3);padding:11px 13px;background:var(--paper-2);border-bottom:1px solid var(--rule-2)}
.tbl td{padding:12px 13px;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{font-weight:700;color:var(--ink)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.note{border-left:3px solid var(--rule-2);background:var(--paper-2);border-radius:0 10px 10px 0;
  padding:14px 16px;margin:18px 0;font-size:15px;line-height:1.55;color:var(--ink-2)}
.note b{color:var(--ink)}
.note--warn{border-left-color:var(--warn);background:#fdf4e3}

/* ---- email capture ---- */
.join{background:var(--ink);color:var(--paper);border-radius:18px;padding:26px 22px;margin:46px 0 0}
.join h2{color:#fff;font-size:23px;letter-spacing:-.025em;margin:0 0 10px;font-weight:800}
.join p{color:#cfc7b6;font-size:16px;margin:0 0 18px}
.join form{display:grid;gap:10px}
.join input{width:100%;min-height:54px;padding:14px 15px;border-radius:11px;border:1.5px solid #454034;
  background:#26231b;color:#fff;font:inherit;font-size:16px}
.join input::placeholder{color:#8c8474}
.join input:focus{outline:none;border-color:var(--flame)}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:54px;
  border-radius:11px;border:0;background:var(--flame);color:#fff;font:700 17px var(--sans);
  cursor:pointer;text-decoration:none;transition:background .15s}
.btn:hover{background:var(--flame-deep)}
.join .fine{font-size:13px;color:#8c8474;margin:12px 0 0;text-align:center}

footer{margin:56px 0 0;padding:24px 0 40px;border-top:1px solid var(--rule);font-size:14px;color:var(--ink-3)}
footer p{color:var(--ink-3);font-size:14px}
footer a{color:var(--ink-2)}
.src{font-size:13.5px;color:var(--ink-3);margin-top:8px}
.src a{color:var(--flame-deep)}

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