:root{
  --bg:#ffffff;
  --ink:#111111;
  --muted:#6b6b6b;
  --line:rgba(17,17,17,.12);
  --soft:rgba(17,17,17,.06);
  --radius:16px;
}

html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  letter-spacing:.1px;
}

a{ color:inherit; text-decoration:none; }
a:hover{ opacity:.85; }

.container-narrow{ max-width: 980px; }

.navbar{
  background:rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}

.brand-mark{
  width:28px; height:28px;
  display:inline-grid; place-items:center;
  border:1px solid var(--line);
  border-radius:999px;
}

.btn-ink{
  background:var(--ink);
  color:#fff;
  border:1px solid var(--ink);
  border-radius:999px;
  padding:.75rem 1.1rem;
}
.btn-ink:hover{ opacity:.92; color:#fff; }

.btn-line{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.75rem 1.1rem;
}
.btn-line:hover{ border-color:rgba(17,17,17,.35); }

.kicker{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.75rem;
}

.hero{
  padding: clamp(3rem, 7vw, 5.5rem) 0;
}
.hero h1{
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight:600;
  font-size: clamp(2.5rem, 6vw, 4.2rem);
  line-height:1.02;
  margin: .35rem 0 1rem 0;
}
.hero p{
  color:var(--muted);
  font-size:1.05rem;
  max-width: 54ch;
}

.section{
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}
.section-title{
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight:600;
  font-size:1.85rem;
  margin-bottom:1rem;
}

.card-min{
  border:1px solid var(--line);
  border-radius: var(--radius);
  background:#fff;
  overflow:hidden;
}
.card-min:hover{
  border-color:rgba(17,17,17,.24);
}

.placeholder-cover{
  width:100%;
  aspect-ratio: 3/4;
  background: linear-gradient(180deg, var(--soft), transparent);
  border-bottom:1px solid var(--line);
  display:grid;
  place-items:center;
  color:rgba(17,17,17,.35);
  font-size:.85rem;
}

.meta{
  color:var(--muted);
  font-size:.95rem;
}

.hr-soft{
  border:0;
  border-top:1px solid var(--line);
  margin:0;
}

.footer{
  border-top:1px solid var(--line);
  padding: 2rem 0;
  color:var(--muted);
  font-size:.95rem;
}

.form-control, .form-select{
  border-radius: 14px;
  border:1px solid var(--line);
  padding:.85rem 1rem;
}
.form-control:focus, .form-select:focus{
  border-color:rgba(17,17,17,.35);
  box-shadow:none;
}

.badge-min{
  border:1px solid var(--line);
  border-radius:999px;
  padding:.35rem .6rem;
  font-weight:500;
  color:var(--muted);
  background:transparent;
}

.fade-up{
  opacity:0;
  transform: translateY(10px);
  transition: opacity .6s ease, transform .6s ease;
}
.fade-up.is-visible{
  opacity:1;
  transform:none;
}