:root{
  --ink:#16233f;
  --ink-2:#1e2f52;
  --paper:#f2ede0;
  --paper-2:#e9e2d0;
  --brass:#c89b3c;
  --credit:#3c6e47;
  --debit:#a34632;
  --text-on-ink:#eee7d6;
  --text-on-ink-dim:#a9b2c9;
  --text-on-paper:#2a2116;
  --text-on-paper-dim:#6b6252;

  --display:'Fraunces', Georgia, serif;
  --body:'IBM Plex Sans', -apple-system, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;

  --max-w:1160px;
  --radius:14px;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  background:var(--ink);
  color:var(--text-on-ink);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.grain{
  position:fixed; inset:0; pointer-events:none; z-index:1;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3{font-family:var(--display); font-weight:500; letter-spacing:-0.01em;}

a{color:inherit; text-decoration:none;}

ul{list-style:none;}

.arrow{display:inline-block; margin-left:.4em; transition:transform .2s ease;}
.btn:hover .arrow{transform:translateX(3px);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center;
  font-family:var(--body); font-weight:600; font-size:.95rem;
  padding:.85rem 1.5rem; border-radius:999px;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.btn-primary{
  background:var(--brass); color:var(--ink);
  box-shadow:0 1px 0 rgba(0,0,0,.15) inset;
}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(200,155,60,.35);}
.btn-ghost{
  border:1px solid rgba(238,231,214,.35); color:var(--text-on-ink);
  padding:.65rem 1.3rem;
}
.btn-ghost:hover{border-color:var(--brass); color:var(--brass);}
.btn-text{color:var(--text-on-ink-dim); padding:.85rem .5rem;}
.btn-text:hover{color:var(--text-on-ink);}

/* ---------- Nav ---------- */
.nav{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.75rem 1.5rem 0;
}
.wordmark{font-family:var(--display); font-size:1.35rem; font-weight:600; letter-spacing:-0.01em;}
.nav-right{display:flex; align-items:center; gap:1.75rem;}
.nav-link{font-size:.88rem; color:var(--text-on-ink-dim); transition:color .15s ease;}
.nav-link:hover{color:var(--brass);}
.nav-cta{font-size:.85rem;}
@media (max-width:640px){
  .nav-link{display:none;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  padding:4.5rem 1.5rem 6rem;
  display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem;
  align-items:center;
}
.eyebrow{
  font-family:var(--mono); font-size:.8rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brass); margin-bottom:1.1rem;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.05; margin-bottom:1.4rem;
}
.ink-underline{
  position:relative; color:var(--text-on-ink);
}
.ink-underline::after{
  content:''; position:absolute; left:0; right:0; bottom:.06em; height:.28em;
  background:var(--brass); opacity:.45; z-index:-1;
}
.lede{
  font-size:1.08rem; color:var(--text-on-ink-dim); max-width:46ch; margin-bottom:2rem;
}
.hero-actions{display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;}
.hero-badges{
  margin-top:1.75rem; font-family:var(--mono); font-size:.75rem;
  color:var(--text-on-ink-dim); letter-spacing:.02em;
}
.hero-badges span{color:var(--brass); margin:0 .15em;}

/* ---------- Ledger card (signature element) ---------- */
.hero-visual{perspective:1200px;}
.ledger-card{
  background:var(--paper); color:var(--text-on-paper);
  border-radius:var(--radius);
  padding:1.5rem 1.5rem 1.75rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.04);
  transform:rotate(1.2deg);
  position:relative;
}
.ledger-head{
  display:flex; justify-content:space-between; align-items:baseline;
  border-bottom:1.5px solid var(--text-on-paper); padding-bottom:.6rem; margin-bottom:.4rem;
}
.ledger-title{font-family:var(--display); font-weight:600; font-size:1.05rem;}
.ledger-date{font-family:var(--mono); font-size:.75rem; color:var(--text-on-paper-dim);}

.ledger-table{display:flex; flex-direction:column;}
.ledger-row{
  display:grid; grid-template-columns:1.2fr 1.6fr .9fr .9fr;
  gap:.5rem; padding:.6rem 0; font-size:.82rem;
  border-bottom:1px dashed rgba(42,33,22,.18);
  font-family:var(--mono);
  opacity:0; transform:translateY(6px);
  animation:rowIn .5s ease forwards;
  animation-delay:calc(var(--d) * 120ms + 300ms);
}
.ledger-row--head{
  font-family:var(--body); font-weight:600; text-transform:uppercase; font-size:.68rem;
  letter-spacing:.04em; color:var(--text-on-paper-dim);
  border-bottom:1px solid rgba(42,33,22,.3);
  opacity:1; transform:none; animation:none;
}
.tag{font-size:.72rem;}
.tag-cr{color:var(--credit);}
.tag-dr{color:var(--debit);}
.num{text-align:right;}
.ledger-row .num:first-of-type{font-weight:500;}

.stamp{
  position:absolute; right:1.2rem; bottom:-1rem;
  font-family:var(--display); font-weight:600; font-size:.85rem;
  color:var(--credit); border:2px solid var(--credit); border-radius:8px;
  padding:.35rem .7rem; transform:rotate(-6deg);
  background:rgba(242,237,224,.9);
  opacity:0; animation:stampIn .4s ease forwards; animation-delay:1s;
}

@keyframes rowIn{to{opacity:1; transform:translateY(0);}}
@keyframes stampIn{
  0%{opacity:0; transform:rotate(-6deg) scale(1.5);}
  60%{opacity:1;}
  100%{opacity:1; transform:rotate(-6deg) scale(1);}
}

/* ---------- Groups ---------- */
.groups, .capabilities, .how, .contact{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  padding:5rem 1.5rem;
}
.groups h2, .capabilities h2, .how h2{
  font-size:clamp(1.6rem, 3vw, 2.1rem); margin-bottom:2.5rem;
}
.groups-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem;
}
.group-card{
  background:var(--ink-2); border:1px solid rgba(238,231,214,.1);
  border-radius:var(--radius); padding:1.75rem;
}
.acct{font-family:var(--mono); color:var(--brass); font-size:.85rem; margin-bottom:.75rem;}
.group-card h3{font-size:1.3rem; margin-bottom:.6rem;}
.group-card p{color:var(--text-on-ink-dim); font-size:.92rem; margin-bottom:1rem;}
.group-card ul li{
  font-size:.87rem; color:var(--text-on-ink); padding-left:1.1rem; position:relative; margin-bottom:.45rem;
}
.group-card ul li::before{
  content:'—'; position:absolute; left:0; color:var(--brass);
}

/* ---------- Capabilities ---------- */
.cap-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem;
}
.cap-card{
  background:var(--ink-2); border:1px solid rgba(238,231,214,.1);
  border-radius:var(--radius); padding:1.75rem;
}
.cap-card h3{font-size:1.15rem; margin-bottom:.9rem;}
.cap-card ul li{
  font-size:.87rem; color:var(--text-on-ink-dim); line-height:1.5;
  padding-left:1.1rem; position:relative; margin-bottom:.65rem;
}
.cap-card ul li:last-child{margin-bottom:0;}
.cap-card ul li::before{
  content:'—'; position:absolute; left:0; color:var(--brass);
}

/* ---------- Contact ---------- */
.contact{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  padding:1rem 1.5rem 5rem;
  display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem;
}
.contact-intro h2{font-size:clamp(1.6rem, 3vw, 2.1rem); margin-bottom:1rem;}
.contact-intro p{color:var(--text-on-ink-dim); max-width:36ch; font-size:.95rem;}
.contact-list{border-top:1px solid rgba(238,231,214,.15);}
.contact-row{
  display:grid; grid-template-columns:56px 100px 1fr;
  align-items:center; gap:1rem;
  padding:1.15rem 0; border-bottom:1px solid rgba(238,231,214,.15);
  transition:padding-left .15s ease;
}
a.contact-row:hover{padding-left:.4rem; color:var(--brass);}
.contact-row .acct{margin-bottom:0; font-size:.85rem;}
.contact-label{
  font-family:var(--mono); font-size:.75rem; text-transform:uppercase;
  letter-spacing:.05em; color:var(--text-on-ink-dim);
}
.contact-value{font-size:.98rem;}
.footer-link{color:var(--text-on-ink-dim); text-decoration:underline; text-underline-offset:2px;}
.footer-link:hover{color:var(--brass);}

/* ---------- How it works ---------- */
.how-steps{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; counter-reset:step;
}
.step-no{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.4rem; height:2.4rem; border-radius:50%;
  border:1.5px solid var(--brass); color:var(--brass);
  font-family:var(--mono); font-size:.95rem; margin-bottom:1.1rem;
}
.how-steps h3{font-size:1.15rem; margin-bottom:.4rem;}
.how-steps p{color:var(--text-on-ink-dim); font-size:.92rem;}

/* ---------- CTA banner ---------- */
.cta-banner{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:2rem auto 0;
  background:var(--paper); color:var(--text-on-paper);
  border-radius:24px; padding:4rem 2rem;
  text-align:center;
}
.cta-banner h2{
  font-size:clamp(1.7rem, 3.4vw, 2.3rem); margin-bottom:1.75rem; max-width:20ch; margin-inline:auto;
}
.cta-banner .btn-primary{color:var(--paper); background:var(--ink);}
.cta-banner .btn-primary:hover{box-shadow:0 6px 18px rgba(22,35,63,.35);}

/* ---------- Footer ---------- */
.site-footer{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
  padding:3rem 1.5rem 2.5rem;
  font-size:.82rem; color:var(--text-on-ink-dim);
  border-top:1px solid rgba(238,231,214,.12); margin-top:2rem;
}

/* ---------- Scroll reveal ---------- */
.groups, .capabilities, .how, .contact, .cta-banner{
  opacity:0; transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
}
.groups.is-visible, .capabilities.is-visible, .how.is-visible, .contact.is-visible, .cta-banner.is-visible{
  opacity:1; transform:none;
}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .hero{grid-template-columns:1fr; padding-top:3rem;}
  .groups-grid, .how-steps, .cap-grid{grid-template-columns:1fr;}
  .contact{grid-template-columns:1fr; gap:1.5rem;}
  .contact-row{grid-template-columns:40px 84px 1fr; gap:.6rem;}
  .ledger-card{transform:none;}
  .site-footer{flex-direction:column;}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .ledger-row, .stamp{animation:none !important; opacity:1 !important; transform:none !important;}
  .groups, .capabilities, .how, .contact, .cta-banner{
    opacity:1 !important; transform:none !important; transition:none !important;
  }
  .btn:hover .arrow{transform:none;}
}
