/* bestest.shop — the Open Ledger. Warm paper, ledger rules, mono money. */
:root{
  --paper:#F6F1E7; --paper-deep:#EFE7D6; --ink:#1C1917; --ink-soft:#6B6257;
  --rule:#D9CDB4; --blue:#24549C; --red:#B3372B; --gold:#A67C00;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,"Courier New",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
  color:var(--ink);
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
h1,h2{font-family:var(--serif);font-weight:700;letter-spacing:-.01em}
h3{font-family:var(--serif);font-weight:600}

/* masthead */
header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 24px;border-bottom:1px solid var(--rule)}
.masthead{display:flex;flex-direction:column;gap:2px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.6rem;line-height:1;color:var(--ink)}
.logo .dot{color:var(--red)}
.masthead-sub{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft)}
nav a{font-family:var(--mono);color:var(--ink-soft);margin-left:18px;font-size:.85rem;letter-spacing:.04em}
nav a:hover{color:var(--ink);border-bottom:1px solid var(--rule)}

/* hero */
.hero{max-width:980px;margin:0 auto;padding:42px 24px 10px;text-align:center}
.hero h1{font-size:clamp(1.9rem,5vw,3.2rem)}
.hero .season{display:block;font-family:var(--mono);font-weight:600;color:var(--ink-soft);font-size:.9rem;letter-spacing:.24em;text-transform:uppercase;margin-top:8px}
.sub{color:var(--ink-soft);margin:14px auto 0;max-width:640px}
.stats{display:flex;gap:14px;justify-content:center;margin:26px 0 8px;flex-wrap:wrap}
.stats div{background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px;padding:14px 22px;min-width:130px}
.stats b{font-family:var(--mono);font-size:1.4rem;font-variant-numeric:tabular-nums;display:block}
.stats span{font-family:var(--mono);color:var(--ink-soft);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.founding{font-family:var(--mono);color:var(--blue);margin-top:16px;font-weight:600;font-size:.85rem;letter-spacing:.06em}
.killgate{margin:22px auto 0;max-width:620px}
.killgate .stamp{font-size:.72rem;line-height:1.8;padding:8px 14px;transform:rotate(-1deg)}
.closed{color:var(--red);margin-top:14px}

/* the board — a ruled ledger page */
.board{max-width:980px;margin:26px auto 10px;padding:0 24px;display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:52px minmax(0,1.4fr) auto auto minmax(0,1fr);gap:16px;align-items:center;border-bottom:1px solid var(--rule);border-left:4px solid var(--accent,var(--blue));padding:14px 14px 14px 16px}
.row:first-child{border-top:1px solid var(--rule)}
.row:hover{background:var(--paper-deep)}
@media (prefers-reduced-motion:no-preference){
  .row{transition:transform .15s,background-color .15s}
  .row:hover{transform:translateX(4px)}
}
.row.top1{border-left-width:6px}
.rank{font-family:var(--mono);font-weight:600;color:var(--ink-soft);font-size:1rem;font-variant-numeric:tabular-nums}
.top1 .rank{color:var(--ink)}
.rname b{font-family:var(--serif);font-weight:600;font-size:1.12rem}
.rname small{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.rtotal{text-align:right;font-family:var(--mono);font-weight:600;font-size:1.25rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.open-serial{font-family:var(--mono);font-weight:400;font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);white-space:normal}
.rtally{display:flex;justify-content:flex-start;min-width:60px}
.tally{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.tally svg{display:block}
.tally line{stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.tally-more{font-family:var(--mono);font-size:.75rem;color:var(--ink-soft)}
.rnote{text-align:right;min-width:0}
.rnote em{font-style:italic;color:var(--ink-soft);font-size:.82rem}
.stamp.crown{color:var(--gold);border-color:var(--gold)} /* the app's ONLY gold */

/* latest boosts feed */
.feed{max-width:980px;margin:10px auto 40px;padding:0 24px}
.feed h3{font-family:var(--mono);font-weight:600;color:var(--ink-soft);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:10px}
.feed ul{list-style:none;color:var(--ink-soft)}
.feed li{padding:5px 0;border-bottom:1px dashed var(--rule)}

/* the day book — mono timestamped ledger lines */
.daybook li{font-family:var(--mono);font-size:.85rem;font-variant-numeric:tabular-nums}
.daybook .btime{color:var(--ink-soft);letter-spacing:.04em}
.daybook .stamp{font-size:.62rem;padding:0 6px;transform:rotate(-1deg)}
.daybook b{color:var(--ink)}

/* shoe page */
.shoe .crumb{text-align:left;color:var(--ink-soft);font-family:var(--mono);font-size:.85rem}
.boostbox{background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px;padding:22px;margin-top:24px;text-align:left}
.boostbox h3{margin-bottom:12px}
.tiers{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.tier{font-family:var(--mono);background:var(--paper);border:2px solid var(--rule);color:var(--ink);border-radius:3px;padding:10px 16px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.tier.sel{border-color:var(--blue);background:var(--blue);color:var(--paper)}
.boostbox input{width:100%;font-family:var(--mono);background:var(--paper);border:1px solid var(--rule);border-bottom:1px solid var(--ink-soft);color:var(--ink);border-radius:3px;padding:12px;margin:6px 0;font-size:.95rem}
.boostbox input::placeholder{color:var(--ink-soft)}
.go{display:inline-block;font-family:var(--mono);background:var(--red);color:var(--paper);border:0;border-radius:3px;padding:14px 22px;font-weight:600;font-size:1rem;letter-spacing:.02em;cursor:pointer;margin-top:8px}
.go:disabled{opacity:.5}
.fine{color:var(--ink-soft);font-size:.8rem;margin-top:10px}

/* the wall */
.wall{max-width:760px;margin:30px auto 50px;padding:0 24px}
.wall h3{margin-bottom:14px}
.wall ul{list-style:none}
.wall li{background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px;padding:14px;margin-bottom:10px}
.wall li b{font-family:var(--serif);font-weight:600}
.wall p{color:var(--ink-soft);margin-top:4px}

/* prose pages */
.prose{max-width:720px;margin:40px auto;padding:0 24px}
.prose h1{margin-bottom:16px}
.prose ul{margin:14px 0 0 20px}
.prose li{margin-bottom:10px;color:var(--ink)}
.prose p{margin-top:12px;color:var(--ink)}

/* footer */
footer{border-top:1px solid var(--rule);margin-top:30px;padding:26px 24px;text-align:center;color:var(--ink-soft)}
footer .fine{font-size:.75rem;margin-top:8px;max-width:640px;margin-inline:auto}

/* ledger primitives — money is always mono, always tabular */
.money{font-family:var(--mono);font-variant-numeric:tabular-nums}
.serial{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--ink-soft)}
.stamp{display:inline-block;font-family:var(--mono);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);border:2px solid var(--ink);padding:2px 10px;transform:rotate(-2deg)}
.stamp.red{color:var(--red);border-color:var(--red)}
/* the receipt — dashed perforation top/bottom, mono throughout */
.receipt{background:var(--paper);border:1px solid var(--rule);border-top:1px dashed var(--ink-soft);border-bottom:1px dashed var(--ink-soft);padding:16px 18px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.85rem;line-height:1.7;max-width:400px}
.receipt p{margin:0;overflow-wrap:break-word}
.receipt .rhead{font-weight:600;letter-spacing:.06em}
.receipt .rdate,.receipt .rserial,.receipt .rsent{color:var(--ink-soft)}
.receipt .rrule{border:0;border-top:1px dashed var(--rule);margin:8px 0}
.receipt .ramtline{display:flex;justify-content:space-between;gap:12px;font-weight:600}
.receipt .rfoot{color:var(--ink-soft);font-size:.72rem;margin-top:2px}
#receipt-preview{margin:16px 0 4px}

/* /thanks — the printed receipt, large, with a one-time COUNTED stamp */
.receipt.counted{position:relative;max-width:460px;font-size:.95rem;margin:22px 0 8px;padding-top:44px}
.counted-stamp{position:absolute;top:12px;right:14px;font-size:1.05rem;color:var(--red);border-color:var(--red);transform:rotate(-8deg)}
@media (prefers-reduced-motion:no-preference){
  .counted-stamp{animation:stamp-in .15s ease-in both}
  @keyframes stamp-in{from{transform:rotate(-8deg) scale(1.6)}to{transform:rotate(-8deg) scale(1)}}
}
.rpending{color:var(--ink-soft);font-style:italic}
.founding-line{margin:16px 0 4px}
.founding-line .stamp{color:var(--blue);border-color:var(--blue);font-size:.78rem;line-height:1.8;padding:4px 12px}
.save-receipt{margin:16px 0 4px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ealert{background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px;padding:16px;margin:22px 0 10px;max-width:460px}
.ealert .epitch{margin-bottom:8px}
.ealert input{width:100%;font-family:var(--mono);background:var(--paper);border:1px solid var(--rule);border-bottom:1px solid var(--ink-soft);color:var(--ink);border-radius:3px;padding:11px;font-size:.95rem;margin-bottom:8px}
.ealert input::placeholder{color:var(--ink-soft)}
.ealert .go{margin-top:0}

/* the boost ritual — tier buttons as rubber stamps */
.tier{text-transform:uppercase;letter-spacing:.08em;border-color:var(--ink);background:transparent;transform:rotate(-1deg)}
.tier:nth-child(2n){transform:rotate(1deg)}
.tier.sel{border-color:var(--red);color:var(--red);background:var(--paper)}
.boostbox .bsent{font-size:.8rem;padding:8px 12px}
.first-believer{margin-bottom:16px}
.first-believer .stamp{font-size:.72rem;line-height:1.8;padding:4px 12px}

@media(max-width:640px){.row{grid-template-columns:40px 1fr auto}.rtally,.rnote{display:none}}

/* ambassador pages */
.wall-sent{font-family:var(--mono);font-size:.75rem;color:var(--ink-soft)}
.wall-sent:hover{color:var(--ink);border-bottom:1px solid var(--rule)}
.amb-tally{margin-top:18px}
.cutline{font-family:var(--mono);font-weight:600;font-size:.9rem;color:var(--ink);margin-top:14px;letter-spacing:.04em}

/* the gathering shelf — the next books, waiting to be counted */
.shelf{max-width:980px;margin:10px auto 40px;padding:20px 24px;background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px}
.shelf h3{font-family:var(--mono);font-weight:600;color:var(--ink-soft);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:6px}
.shelf-pitch{color:var(--ink-soft);font-size:.9rem;margin-bottom:16px;max-width:640px}
.shelf-books{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.shelf-book{background:var(--paper);border:1px solid var(--rule);border-radius:3px;padding:16px}
.shelf-name{font-family:var(--serif);font-weight:600;font-size:1.1rem}
.shelf-count{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.85rem;letter-spacing:.04em;margin:4px 0 10px}
.pledge input,.pledge select{width:100%;font-family:var(--mono);background:var(--paper);border:1px solid var(--rule);border-bottom:1px solid var(--ink-soft);color:var(--ink);border-radius:3px;padding:10px;font-size:.9rem;margin-bottom:8px}
.pledge input::placeholder{color:var(--ink-soft)}
.pledge .go{margin-top:0;width:100%;font-size:.85rem;padding:12px 14px}
