:root {
  color-scheme: light dark;
  --bg: #f7f4ef;
  --paper: #fffcf7;
  --ink: #1c1917;
  --muted: #57534e;
  --line: #e7e0d5;
  --accent: #9a3412;
  --pos: #166534;
  --neg: #9a3412;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0e1014;
  --paper: #1a1d24;
  --ink: #e8eaef;
  --muted: #9aa3b2;
  --line: #2c313c;
  --accent: #E8A090;
  --pos: #4ade80;
  --neg: #E8A090;
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) {
    color-scheme: dark;
    --bg: #0e1014;
    --paper: #1a1d24;
    --ink: #e8eaef;
    --muted: #9aa3b2;
    --line: #2c313c;
    --accent: #E8A090;
    --pos: #4ade80;
    --neg: #E8A090;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
}
.wrap {
  max-width: 640px;
  margin: 0 auto;
  padding: 2.75rem 1.25rem 3.5rem;
}
header {
  border-bottom: 2px solid var(--ink);
  padding-bottom: 1.25rem;
  margin-bottom: 1.75rem;
}
.site-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .65rem;
}
.site-header-row .kicker { margin: 0; }
.top-nav {
  margin-bottom: 1rem;
}
.top-nav > p { margin: 0; }
.theme-toggle {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: .35rem .7rem;
  font-size: .75rem;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
}
.theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
.theme-toggle[aria-pressed="true"] {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
.kicker {
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin: 0 0 .65rem;
}
h1 {
  font-family: Newsreader, Georgia, "Times New Roman", serif;
  font-weight: 600;
  font-size: clamp(2.4rem, 7vw, 3.1rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 .6rem;
}
.lead {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 36em;
}
section {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 1.35rem 1.25rem 1.4rem;
  margin-bottom: 1rem;
}
h2 {
  font-family: Newsreader, Georgia, serif;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0 0 .75rem;
}
p { margin: 0 0 .55rem; color: var(--muted); }
p:last-child { margin-bottom: 0; }
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.how li {
  position: relative;
  padding: .45rem 0 .45rem 1.15rem;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: .95rem;
}
.how li:first-child { border-top: 0; }
.how li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1rem;
  width: .45rem;
  height: .45rem;
  border-radius: 1px;
  background: var(--accent);
}
.how strong { color: var(--ink); font-weight: 600; }
form {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
input[type=email] {
  flex: 1 1 220px;
  min-width: 0;
  border-radius: 2px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  padding: .75rem .9rem;
  font-size: 1rem;
  font-family: inherit;
}
input[type=email]:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
button {
  border: 0;
  border-radius: 2px;
  padding: .75rem 1.1rem;
  font-weight: 600;
  font-family: inherit;
  background: var(--ink);
  color: var(--bg);
  cursor: pointer;
}
button:hover { opacity:.9; }
button:disabled { opacity: .55; cursor: not-allowed; }
.note {
  margin-top: .7rem;
  font-size: .85rem;
  color: var(--muted);
}
footer {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .85rem;
}
a { color: var(--accent); }

.edition { background: var(--paper); border:1px solid var(--line); border-radius:4px; padding:1.5rem 1.35rem; margin-bottom:1.5rem; }
.edition .date { font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:600; margin:0 0 .4rem; }
.edition h2 { font-size:1.35rem; margin:1.6rem 0 .5rem; padding-top:1rem; border-top:1px solid var(--line); }
.edition > p:first-of-type { color: var(--ink); font-size:1.02rem; }
.edition li { color: var(--muted); }
.edition li strong { color: var(--ink); }
.edition code { font-size:.85em; background:var(--line); padding:.05rem .3rem; border-radius:2px; }
.edition a { text-decoration-thickness: 1px; text-underline-offset: 2px; }
.edition li em { font-style:normal; font-weight:600; color: var(--accent); font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; }

.edition ul { list-style: none; padding: 0; margin: 0; }
.edition li.item {
  position: relative;
  padding: 1rem 0 1.15rem 0;
  border-top: 1px solid var(--line);
  margin: 0;
}
.edition li.item:first-child { border-top: 0; padding-top: .25rem; }
.edition li.item::before { display: none; }
.item-title {
  margin: 0 0 .45rem;
  font-size: 1.02rem;
  line-height: 1.35;
  color: var(--ink);
}
.item-title a { font-weight: 500; font-size: .9rem; }
.item-label {
  margin: .4rem 0 .1rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
}
.item-body {
  margin: 0 0 .2rem;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.45;
}
.item-body strong { color: var(--ink); font-weight: 600; }
.item-points {
  margin: .15rem 0 .35rem;
  padding-left: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.4;
}
.item-points li {
  border: 0 !important;
  padding: .05rem 0 !important;
  margin: 0;
  list-style: none;
  color: var(--muted);
}
.item-points li::before { display: none !important; }

.lede {
  margin: 0 0 1.5rem;
  padding: .9rem 0 0;
}
.lede-kicker {
  margin: 0 0 .55rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
}
.lede-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.lede-list li {
  margin: 0;
  padding: .55rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: .98rem;
  line-height: 1.45;
}
.stocks-meta { margin: 0 0 .85rem !important; font-size: .8rem; }
.spark { width: 100%; height: auto; display: block; margin: .25rem 0 .75rem; }
.spark-label { font-size: 12px; font-weight: 600; fill: var(--ink); font-family: "IBM Plex Sans", system-ui, sans-serif; }
.spark-val { font-size: 11px; font-variant-numeric: tabular-nums; font-family: "IBM Plex Sans", system-ui, sans-serif; }
.spark-val.pos, .spark-12m.pos { fill: var(--pos); }
.spark-val.neg, .spark-12m.neg { fill: var(--neg); }
.spark-12m { font-size: 10px; font-variant-numeric: tabular-nums; font-family: "IBM Plex Sans", system-ui, sans-serif; opacity: .85; }
.spark-axis { font-size: 10px; fill: #a8a29e; font-family: "IBM Plex Sans", system-ui, sans-serif; }
html[data-theme="dark"] .spark-axis,
html:not([data-theme]) .spark-axis { fill: #6b7280; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .spark-axis { fill: #6b7280; }
}
.spark-pos { fill: var(--pos); }
.spark-neg { fill: var(--neg); }
.stocks-read {
  margin: 0;
  font-size: .9rem;
  color: var(--muted);
  line-height: 1.45;
}
.stocks-table{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums;margin:.25rem 0 .75rem;display:none}
.stocks-table th,.stocks-table td{text-align:left;padding:.35rem .3rem;border-bottom:1px solid var(--line);color:var(--ink)}
.stocks-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.stocks-table .pos{color:var(--pos)}.stocks-table .neg{color:var(--accent)}
details.skipped{margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--line)}
details.skipped summary{font-family:Newsreader,Georgia,serif;font-size:1.1rem;font-weight:600;cursor:pointer;color:var(--ink)}
details.skipped li{font-size:.9rem;padding:.3rem 0}
.term p{margin:0 0 .55rem;line-height:1.5}
.term p:last-child{margin-bottom:0}
.term strong{color:var(--ink)}
.ednav{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;margin:.5rem 0 0}
.ednav .off{color:var(--muted);opacity:.6}
.plain h2{font-size:1.15rem;margin:1.6rem 0 .6rem;border-top:1px solid var(--line);padding-top:1rem}
.plain li{padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--ink)}
.plain li span{display:block;color:var(--muted);font-size:.82rem;margin-top:.15rem}
.tag{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-left:.35rem}
@media (max-width:600px){
 .wrap{padding:1.75rem 1rem 2.5rem}
 .edition{padding:1.1rem .9rem}
 section{padding:1.1rem .9rem}
 .spark{display:none}
 .stocks-table{display:table}
}

.spark-lines{width:100%;height:auto;display:block;margin:.25rem 0 .5rem}
.spark-grid{stroke:var(--line);stroke-width:1}
.spark-zero{stroke:var(--muted);stroke-width:1.25;stroke-dasharray:4 3;opacity:.85}
.spark-end{font-size:11px;font-weight:600;font-family:"IBM Plex Sans",system-ui,sans-serif}
.spark-legend{font-size:10px;font-weight:600;font-family:"IBM Plex Sans",system-ui,sans-serif}
.stocks-table-always{display:table !important;margin-top:.35rem}

/* CoinMarketCap-style 1M + 12M sparklines */
.cmc-stocks{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin:.15rem 0 .75rem}
.cmc-stocks th,.cmc-stocks td{text-align:left;padding:.4rem .3rem;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink)}
.cmc-stocks th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.cmc-ticker{width:3.8rem;font-size:.95rem}
.cmc-cell{width:1%;white-space:nowrap}
.cmc-pair{display:inline-flex;align-items:center;gap:.45rem}
.cmc-spark-wrap{
  display:inline-flex;align-items:center;justify-content:center;
  background:color-mix(in srgb, var(--ink) 4%, transparent);
  border:1px solid var(--line);
  border-radius:6px;
  padding:3px 5px;
}
html[data-theme="dark"] .cmc-spark-wrap{
  background:rgba(255,255,255,.04);
}
.cmc-spark{display:block;width:80px;height:30px}
.cmc-stocks th:nth-child(3) ~ * .cmc-spark,
.cmc-cell:nth-child(3) .cmc-spark{width:100px}
.cmc-line{stroke:var(--pos)}
.cmc-spark.down .cmc-line{stroke:var(--neg)}
.cmc-pct{font-size:.88rem;font-weight:600;min-width:2.8rem;text-align:right}
.cmc-pct.pos{color:var(--pos)}
.cmc-pct.neg{color:var(--neg)}
@media (max-width:420px){
  .cmc-spark{width:64px;height:26px}
  .cmc-cell:nth-child(3) .cmc-spark{width:80px}
  .cmc-ticker{width:3.2rem;font-size:.88rem}
  .cmc-pct{font-size:.8rem;min-width:2.4rem}
  .cmc-pair{gap:.3rem}
  .cmc-stocks th,.cmc-stocks td{padding:.35rem .2rem}
}
