@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --white:#FFFFFF;
  --paper:#FBFAFC;
  --ink:#221826;
  --ink-muted:#6B6072;
  --hairline:#EDE8F1;

  --lavender-700:#7E5FB3;
  --lavender-300:#BEA6E4;
  --lavender-100:#E6DBF6;

  --vine-700:#3E8C67;
  --vine-300:#93CDAC;
  --vine-100:#D9F0E1;

  --down:#B8637A;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}

body{
  background:var(--white);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

a{color:var(--lavender-700); text-decoration:none;}
a:hover{text-decoration:underline;}
a:focus-visible, button:focus-visible{outline:2px solid var(--lavender-700); outline-offset:3px;}

.wrap{max-width:880px; margin:0 auto; padding:0 28px;}

/* ---------- Nav ---------- */
nav.site-nav{
  border-bottom:1px solid var(--hairline);
  position:sticky; top:0;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(6px);
  z-index:10;
}
.nav-inner{
  max-width:880px; margin:0 auto; padding:20px 28px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
}
.wordmark{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:19px;
  color:var(--ink);
  letter-spacing:-0.01em;
  display:flex; align-items:center; gap:8px;
}
.wordmark:hover{text-decoration:none;}
.wordmark .nav-logo{height:26px; width:auto; display:block;}
.nav-links{
  display:flex; gap:26px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.nav-links a{color:var(--ink-muted);}
.nav-links a:hover{color:var(--lavender-700); text-decoration:none;}
.nav-links a.active{color:var(--ink); border-bottom:2px solid var(--vine-300); padding-bottom:2px;}

/* ---------- Page hero ---------- */
header.page-hero{padding:64px 0 48px; border-bottom:1px solid var(--hairline);}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--lavender-700);
  margin-bottom:14px;
  display:flex; align-items:center; gap:8px;
}
.eyebrow::before{content:''; width:20px; height:1px; background:var(--vine-300); display:inline-block;}
h1.title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(36px, 6vw, 56px);
  line-height:1.04;
  letter-spacing:-0.01em;
  color:var(--ink);
  margin-bottom:16px;
}
h1.title em{font-style:italic; font-weight:300; color:var(--vine-700);}
.subtitle{font-size:16px; color:var(--ink-muted); max-width:560px;}

/* ---------- Section shared ---------- */
section{padding:56px 0; border-bottom:1px solid var(--hairline);}
h2.section-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(24px, 3.4vw, 32px);
  color:var(--ink);
  margin-bottom:18px;
}
.lede{color:var(--ink-muted); max-width:600px; font-size:15px; margin-bottom:8px;}

/* ---------- Cards (home preview) ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:32px;}
@media (max-width:760px){.card-grid{grid-template-columns:1fr;}}
.preview-card{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:24px;
  background:var(--paper);
  transition:transform 0.2s ease, box-shadow 0.2s ease;
  display:block;
}
.preview-card:nth-child(1){background:var(--lavender-100);}
.preview-card:nth-child(2){background:var(--vine-100);}
.preview-card:nth-child(3){background:var(--paper); border-color:var(--lavender-300);}
.preview-card:hover{transform:translateY(-3px); box-shadow:0 8px 24px rgba(126,95,179,0.16); text-decoration:none;}
.preview-card .cat{
  font-family:'IBM Plex Mono', monospace;
  font-size:10.5px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--vine-700);
  margin-bottom:10px;
}
.preview-card h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:19px;
  color:var(--ink);
  margin-bottom:8px;
}
.preview-card p{font-size:13.5px; color:var(--ink-muted); margin-bottom:14px;}
.preview-card .go{font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.05em; color:var(--lavender-700);}

/* ---------- Entry list (daily / weekly) ---------- */
.entry{padding:30px 0; border-bottom:1px solid var(--hairline);}
.entry:first-of-type{padding-top:6px;}
.entry-meta{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:10px;
  display:flex; gap:12px; align-items:center; flex-wrap:wrap;
}
.pill{
  display:inline-block;
  background:var(--lavender-100);
  color:var(--lavender-700);
  padding:3px 10px;
  border-radius:20px;
  font-size:10.5px;
  letter-spacing:0.06em;
}
.pill.green{background:var(--vine-100); color:var(--vine-700);}
.entry h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:22px;
  color:var(--ink);
  margin-bottom:10px;
}
.entry p{color:var(--ink-muted); font-size:15px; max-width:660px;}

/* ---------- Trades ledger ---------- */
.ledger-row{
  display:grid;
  grid-template-columns:100px 1fr 90px;
  gap:18px;
  padding:20px 0;
  border-bottom:1px solid var(--hairline);
  align-items:start;
}
@media (max-width:600px){.ledger-row{grid-template-columns:1fr; gap:6px;}}
.ledger-date{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-muted); padding-top:2px;}
.ledger-body .tkr{font-family:'Fraunces', serif; font-weight:600; font-size:18px; color:var(--ink); margin-bottom:6px;}
.ledger-body .note{font-size:13.5px; color:var(--ink-muted);}
.ledger-result{font-family:'IBM Plex Mono', monospace; font-size:15px; font-weight:600; text-align:right; padding-top:2px;}
.up{color:var(--vine-700);}
.down{color:var(--down);}
.status-open{color:var(--lavender-700); font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase;}

.ledger-row:has(.up){border-left:3px solid var(--vine-300); padding-left:14px;}
.ledger-row:has(.down){border-left:3px solid var(--down); padding-left:14px;}
.ledger-row:has(.status-open){border-left:3px solid var(--lavender-300); padding-left:14px;}

.subsection-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin:40px 0 4px;
  padding-bottom:10px;
  border-bottom:1px solid var(--hairline);
}
.subsection-label:first-child{margin-top:0;}
.subsection-label .dot{color:var(--vine-300);}
.subsection-label.closed-label .dot{color:var(--lavender-300);}
.ledger-empty{color:var(--ink-muted); font-size:14px; padding:16px 0;}

/* ---------- Footer ---------- */
footer{padding:48px 0 72px;}
.footer-logo{text-align:center; margin-bottom:44px;}
.footer-logo img{width:100%; max-width:460px; height:auto;}
.fine-print{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  line-height:1.75;
  color:var(--ink-muted);
  max-width:620px;
  border-left:2px solid var(--lavender-100);
  padding-left:16px;
}
.footer-bottom{
  margin-top:32px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-family:'IBM Plex Mono', monospace;
  font-size:10.5px;
  color:var(--ink-muted);
  letter-spacing:0.08em;
  text-transform:uppercase;
}

/* ---------- About page ---------- */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; margin-top:8px;}
@media (max-width:680px){.about-grid{grid-template-columns:1fr;}}
.about-col p{color:var(--ink-muted); font-size:15px; margin-bottom:14px;}
.credential-list{list-style:none;}
.credential-list li{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--ink-muted);
  padding:11px 0;
  border-top:1px solid var(--hairline);
  display:flex; justify-content:space-between; gap:16px;
}
.credential-list li:last-child{border-bottom:1px solid var(--hairline);}
.credential-list b{color:var(--ink); font-weight:600;}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(12px); transition:opacity 0.6s ease, transform 0.6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
