:root{
  --bg:#fbfaf8; --panel:#ffffff; --ink:#16181d; --muted:#5d6370;
  --line:#e6e3dd; --accent:#1f5f4f; --accent-soft:#eef4f1;
  --maxw:64rem;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#111316; --panel:#171a1f; --ink:#eceef1; --muted:#9aa2af;
    --line:#262a31; --accent:#6fd3b4; --accent-soft:#16241f;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 17px/1.65 ui-sans-serif,-apple-system,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 1.5rem}
a{color:var(--accent)}

header{padding:2rem 0 0}
.brand{font-weight:650; letter-spacing:-.01em; font-size:1.05rem; text-decoration:none; color:inherit}
.brand span{color:var(--muted); font-weight:400}

.hero{padding:5rem 0 4.5rem; border-bottom:1px solid var(--line)}
.hero h1{
  margin:0 0 1.25rem; font-size:clamp(2.1rem,5.2vw,3.4rem);
  line-height:1.12; letter-spacing:-.025em; font-weight:660; max-width:20ch;
}
.lede{margin:0; font-size:clamp(1.05rem,2.1vw,1.2rem); color:var(--muted); max-width:56ch}
.hero .cta{margin-top:2.25rem; display:flex; gap:.75rem; flex-wrap:wrap}
.btn{
  display:inline-block; padding:.7rem 1.25rem; border-radius:.5rem;
  background:var(--accent); color:var(--bg); text-decoration:none; font-weight:560;
  border:1px solid var(--accent);
}
.btn.ghost{background:transparent; color:var(--ink); border-color:var(--line)}

section{padding:4rem 0; border-bottom:1px solid var(--line)}
h2{
  margin:0 0 2rem; font-size:.78rem; font-weight:620; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted);
}
.grid{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.card{background:var(--panel); border:1px solid var(--line); border-radius:.75rem; padding:1.5rem}
.card h3{margin:0 0 .6rem; font-size:1.05rem; font-weight:620; letter-spacing:-.01em}
.card p{margin:0; color:var(--muted); font-size:.96rem}

.rows{display:grid; gap:0}
.row{
  display:grid; gap:.4rem 2rem; padding:1.4rem 0; border-top:1px solid var(--line);
  grid-template-columns:minmax(0,14rem) minmax(0,1fr);
}
.row:first-child{border-top:0}
.row dt{font-weight:600; letter-spacing:-.005em}
.row dd{margin:0; color:var(--muted)}
@media (max-width:36rem){ .row{grid-template-columns:1fr} }

.contact p{margin:0 0 1.5rem; color:var(--muted); max-width:52ch}
.mail{
  display:inline-block; font-size:clamp(1.15rem,3vw,1.6rem); font-weight:600;
  letter-spacing:-.02em; text-decoration:none; border-bottom:2px solid var(--accent-soft);
}
footer{padding:2.5rem 0 3.5rem; color:var(--muted); font-size:.87rem}
footer a{color:var(--muted)}
footer .sep{opacity:.45; padding:0 .5rem}

/* ---- prose pages (terms, privacy) ---- */
.doc{padding:3.5rem 0 1rem; max-width:44rem}
.doc h1{
  margin:0 0 .5rem; font-size:clamp(1.8rem,4vw,2.5rem);
  line-height:1.15; letter-spacing:-.022em; font-weight:660;
}
.doc .updated{margin:0 0 2.75rem; color:var(--muted); font-size:.9rem}
.doc h2{
  margin:2.75rem 0 .85rem; font-size:1.06rem; font-weight:640;
  letter-spacing:-.01em; text-transform:none; color:var(--ink);
}
.doc p, .doc li{color:var(--muted)}
.doc p{margin:0 0 1rem}
.doc ul{margin:0 0 1rem; padding-left:1.15rem}
.doc li{margin:.35rem 0}
.doc strong{color:var(--ink); font-weight:600}
.doc .keyline{
  background:var(--panel); border:1px solid var(--line); border-radius:.75rem;
  padding:1.25rem 1.4rem; margin:0 0 1rem;
}
.doc .keyline p:last-child{margin-bottom:0}
.back{display:inline-block; margin-top:2.5rem; font-size:.92rem; text-decoration:none}
