:root{
  --cream:#f6f2ea; --paper:#fffdf9; --ink:#20302a; --muted:#63706a;
  --line:#e4ded2; --line-2:#d5cdbd;
  --green:#356b4f; --green-2:#2a5540; --green-soft:#eaf1ec;
  --ok:#2f6a4c; --ok-bg:#e7f0e9; --warn:#8a5a12; --warn-bg:#f6ecd6;
  --stop:#9a3626; --stop-bg:#f4e2dd; --unknown:#7c7367; --unknown-bg:#efe9dd;
  --shadow:0 1px 2px rgba(32,48,42,.05), 0 8px 24px rgba(32,48,42,.06);
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);
  font-family:"Hanken Grotesk",system-ui,Arial,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:900px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;line-height:1.15;text-wrap:balance}
a{color:var(--green-2)}
.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 .5rem}

header.site{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--cream) 90%,transparent);position:sticky;top:0;z-index:10}
header.site .bar{max-width:900px;margin:0 auto;padding:12px 22px;display:flex;align-items:center;justify-content:space-between}
.brand{font-family:"Fraunces",serif;font-weight:600;text-decoration:none;color:var(--ink)}
.brand small{font-family:"Hanken Grotesk",sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.2em;color:var(--muted)}
header.site nav a{color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem;margin-left:16px}

.hero{padding:44px 0 6px}
.hero h1{font-size:clamp(2rem,5vw,3rem);margin:.3em 0 .2em;letter-spacing:-.02em;font-weight:600}
.hero .lede{font-size:1.15rem;color:var(--muted);max-width:60ch}
.tapline{color:var(--muted);font-size:.9rem;margin:22px 0 6px}

/* the fill-in-the-blank sentence = the whole interface */
.sentence{font-family:"Fraunces",Georgia,serif;font-size:clamp(1.35rem,3.4vw,1.85rem);line-height:2.15;
  background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:24px 26px;box-shadow:var(--shadow)}
.tokwrap{position:relative;display:inline-block}
.tok{cursor:pointer;font-family:"Hanken Grotesk",sans-serif;font-size:.62em;font-weight:600;line-height:1.3;
  padding:3px 11px;border-radius:9px;border:0;border-bottom:2px solid;white-space:nowrap;transition:.12s;vertical-align:middle}
.tok.empty{background:#efe9dd;color:var(--muted);border-color:var(--line-2);border-bottom-style:dashed}
.tok.set{background:var(--green-soft);color:var(--green-2);border-color:var(--green)}
.tok:hover{filter:brightness(.98)}
.tok .cv{opacity:.55;font-size:.8em;margin-left:5px}
.menu{position:absolute;top:calc(100% + 7px);left:0;z-index:40;min-width:200px;max-height:290px;overflow:auto;
  background:var(--paper);border:1px solid var(--line-2);border-radius:13px;box-shadow:0 10px 34px rgba(32,48,42,.16);padding:6px;display:none}
.menu.open{display:block}
.menu button,.menu label{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font-family:"Hanken Grotesk",sans-serif;
  font-size:.95rem;font-weight:500;background:none;border:0;border-radius:8px;padding:8px 11px;cursor:pointer;color:var(--ink)}
.menu button:hover,.menu label:hover{background:var(--green-soft)}
.menu button[aria-selected="true"]{color:var(--green-2);font-weight:700}
.menu input{accent-color:var(--green);width:16px;height:16px;flex:0 0 auto}
.menu .done{margin-top:4px;border-top:1px solid var(--line);color:var(--green-2);font-weight:700;justify-content:center}
.opt-eth{margin:14px 0 0;color:var(--muted);font-size:1rem}
.opt-eth .tok{font-size:.9rem}

.actions{display:flex;gap:14px;align-items:center;margin:26px 0 8px;flex-wrap:wrap}
.btn{display:inline-block;border:none;border-radius:11px;padding:13px 22px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.btn--primary{background:var(--green);color:#fff}.btn--primary:hover{background:var(--green-2)}
.btn--ghost{background:transparent;color:var(--muted);border:1px solid var(--line-2)}
.btn--xl{font-size:1.22rem;font-weight:800;padding:18px 36px;border-radius:14px;box-shadow:0 8px 22px rgba(53,107,79,.28);transition:transform .12s,box-shadow .12s,background .12s}
.btn--xl:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(53,107,79,.34)}
.count{color:var(--muted);font-size:.9rem}
.go-block{margin:28px 0 8px}
.go-head{font-family:"Fraunces",Georgia,serif;font-size:1.22rem;font-weight:600;margin:0 0 10px;color:var(--ink)}
.go-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:9px;max-width:62ch}
.go-list li{position:relative;padding-left:28px;color:var(--muted);font-size:1rem;line-height:1.5}
.go-list li::before{content:"\2713";position:absolute;left:2px;top:0;color:var(--green);font-weight:800}
.go-list li b{color:var(--ink);font-weight:700}
.go-block .actions{margin:0}
.go-msg{margin:12px 0 0;color:var(--warn);font-weight:600;font-size:.95rem}
.go-msg:empty{display:none}
.btn--disabled{opacity:.5}
.btn--disabled:hover{transform:none;box-shadow:0 8px 22px rgba(53,107,79,.28)}
.shake{animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}

#results{margin:10px 0 40px}
.plan{background:var(--green-soft);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:0 12px 12px 0;padding:16px 20px;margin:18px 0}
.plan h3{margin:0 0 6px;font-size:1.05rem}.plan ul{margin:.3em 0 0;padding-left:18px}.plan li{margin:.25em 0}
.group{margin:26px 0}.group>h2{font-size:1.35rem;margin:0 0 2px}.group>.sub{color:var(--muted);font-size:.9rem;margin:0 0 12px}
.cards{display:flex;flex-direction:column;gap:10px}
.card{border:1px solid var(--line);border-radius:12px;padding:13px 16px;background:var(--paper);display:grid;
  grid-template-columns:1fr auto;gap:4px 14px;align-items:start;box-shadow:var(--shadow)}
.card h4{margin:0;font-size:1rem}
.card h4 a{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;text-decoration:none;color:var(--green-2)}
.card h4 a:hover{text-decoration:underline}
.card .size{font-variant-numeric:tabular-nums;font-weight:700;font-size:.88rem;color:var(--muted);text-align:right;white-space:nowrap}
.card .chiprow{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.card .why{grid-column:1/-1;font-size:.9rem;color:var(--muted);margin:3px 0 0}.card .why b{color:var(--ink);font-weight:600}
.rc{font-size:.74rem;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;border:1px solid var(--line-2);color:var(--muted);background:var(--paper)}
.rc.g{color:var(--ok);background:var(--ok-bg);border-color:transparent}
.rc.w{color:var(--warn);background:var(--warn-bg);border-color:transparent}
.rc.s{color:var(--stop);background:var(--stop-bg);border-color:transparent}
.rc.u{color:var(--unknown);background:var(--unknown-bg);border-color:transparent}
.cta{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:26px 0;box-shadow:var(--shadow)}
.cta h3{margin:0 0 8px}.cta p{margin:0 0 12px;color:var(--muted)}
.cap .caprow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0}
.cap #capEmail{flex:1;min-width:200px;padding:12px 14px;border:1px solid var(--line-2);border-radius:11px;font:inherit;background:var(--cream)}
.capmsg{margin:8px 0 0;color:var(--green-2);font-weight:600;min-height:1.2em}
.fitline{margin:14px 0 0}.fitline a{color:var(--muted);border-bottom:1px solid var(--line-2);text-decoration:none}
.promo-copy{max-width:68ch;margin:44px 0 8px}
.promo-copy h2{font-size:clamp(1.35rem,3vw,1.6rem);margin:1.7em 0 .35em}
.promo-copy h3{font-size:1.18rem;margin:1.5em 0 .3em}
.promo-copy p{margin:.7em 0}
.promo-copy ul{margin:.6em 0;padding-left:20px}.promo-copy li{margin:.45em 0}
.promo-copy a{color:var(--green-2);border-bottom:1px solid var(--line-2);text-decoration:none}
.disclaimer{font-size:.8rem;color:var(--muted);margin:16px 0 0}
footer{border-top:1px solid var(--line);padding:28px 0 60px;color:var(--muted);font-size:.85rem}
.hide{display:none}
@media(max-width:560px){.card .size{grid-column:1;text-align:left}.btn--xl{width:100%;text-align:center}}
