:root{
  --bg:#050505;
  --ink:#f4f2ef;
  --dim:#8c8783;
  --line:rgba(244,242,239,.22);
  --pad:clamp(18px, 4vw, 40px);
  --serif:"Playfair Display", "Times New Roman", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --max:720px;
  --wide:1080px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-weight:300;
  -webkit-font-smoothing:antialiased;line-height:1.55;
}
a{color:inherit}
img{max-width:100%;display:block}
.site-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:calc(16px + env(safe-area-inset-top,0px)) var(--pad) 16px;
  border-bottom:1px solid rgba(244,242,239,.08);
  position:sticky;top:0;z-index:20;background:rgba(5,5,5,.92);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.wordmark{
  font-family:var(--serif);font-size:clamp(20px, 2.4vw, 26px);
  text-decoration:none;letter-spacing:.005em;
}
.wordmark em{font-style:normal}
.nav{display:flex;gap:clamp(14px, 2vw, 28px);align-items:center;flex-wrap:wrap}
.nav a{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,242,239,.62);
}
.nav a:hover{color:#fff}
.nav .btn{
  display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;
  border:1px solid rgba(244,242,239,.35);border-radius:999px;
  color:var(--ink);text-decoration:none;letter-spacing:.14em;
}
.nav .btn:hover{border-color:#fff}
.nav .btn.solid{background:var(--ink);color:#000;border-color:var(--ink)}
.hero-band{
  position:relative;overflow:hidden;
  padding:clamp(48px, 10vh, 96px) var(--pad) clamp(36px, 6vh, 64px);
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(244,242,239,.06), transparent 60%),
    linear-gradient(180deg, #0a0a0a, var(--bg));
  border-bottom:1px solid rgba(244,242,239,.08);
  min-height:clamp(280px, 48vw, 460px);
  display:flex;align-items:flex-end;
}
.hero-band.has-image{
  padding-top:clamp(120px, 28vw, 280px);
  background:#050505;
}
.hero-band .hero-media{
  position:absolute;inset:0;z-index:0;
}
.hero-band .hero-media img{
  width:100%;height:100%;object-fit:cover;object-position:center 35%;
}
.hero-band .hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(5,5,5,.28) 0%, rgba(5,5,5,.55) 42%, rgba(5,5,5,.92) 78%, var(--bg) 100%),
    linear-gradient(90deg, rgba(5,5,5,.45) 0%, transparent 55%);
}
.hero-band .wrap{position:relative;z-index:1;width:100%}
.hero-band .wrap,.wrap{max-width:var(--wide);margin:0 auto}
.eyebrow{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(244,242,239,.42);margin:0 0 16px;
}
.hero-band h1,.article h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px, 5.2vw, 56px);line-height:1.08;letter-spacing:-.015em;
  margin:0 0 18px;max-width:18ch;
}
.lede{
  font-size:clamp(16px, 1.7vw, 19px);line-height:1.6;
  color:rgba(244,242,239,.78);max-width:42ch;margin:0;
}
.meta-line{
  margin-top:22px;font-size:13px;color:var(--dim);display:flex;flex-wrap:wrap;gap:8px 18px;
}
main.article{
  padding:clamp(40px, 7vh, 72px) var(--pad) clamp(64px, 10vh, 120px);
}
.article .content{max-width:var(--max);margin:0 auto}
.article .content > p:first-of-type{
  font-size:clamp(17px, 1.8vw, 20px);line-height:1.55;
  color:rgba(244,242,239,.9);margin:0 0 28px;
}
.article h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(24px, 3.2vw, 34px);line-height:1.15;
  margin:42px 0 14px;letter-spacing:-.01em;
}
.article h3{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(18px, 2.2vw, 22px);margin:28px 0 10px;
}
.article p{font-size:16px;line-height:1.7;color:rgba(244,242,239,.78);margin:0 0 16px}
.article ul,.article ol{margin:0 0 20px;padding-left:1.2em;color:rgba(244,242,239,.78)}
.article li{margin:0 0 8px;line-height:1.6;font-size:16px}
.article a{color:var(--ink);border-bottom:1px solid rgba(244,242,239,.3);text-decoration:none}
.article a:hover{border-bottom-color:#fff}
.article table{
  width:100%;border-collapse:collapse;margin:0 0 24px;font-size:14px;
}
.article th,.article td{
  border-top:1px solid var(--line);padding:12px 10px;text-align:left;
  vertical-align:top;color:rgba(244,242,239,.78);
}
.article th{font-family:var(--serif);font-weight:400;color:var(--ink)}
.callout{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:22px 0;margin:36px 0;
}
.callout p{margin:0 0 14px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:10px 18px;border-radius:999px;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
  border:1px solid rgba(244,242,239,.3);color:var(--ink);
}
.btn.solid{background:var(--ink);color:#000;border-color:var(--ink)}
.btn:hover{border-color:#fff}
.disclaimer{
  margin-top:40px;padding-top:18px;border-top:1px solid var(--line);
  font-size:13px;color:var(--dim);line-height:1.6;
}
.blog-index{padding:clamp(40px, 7vh, 72px) var(--pad) clamp(72px, 12vh, 120px)}
.blog-index .list{max-width:var(--wide);margin:0 auto;display:grid;gap:0}
.blog-card{
  display:grid;gap:8px;padding:28px 0;
  border-top:1px solid var(--line);text-decoration:none;color:inherit;
}
.blog-card:last-child{border-bottom:1px solid var(--line)}
.blog-card h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(22px, 3vw, 32px);
  margin:0;line-height:1.15;
}
.blog-card p{margin:0;color:rgba(244,242,239,.7);max-width:52ch;font-size:15px;line-height:1.55}
.blog-card .tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,242,239,.42)}
.site-footer{
  border-top:1px solid rgba(244,242,239,.1);
  padding:28px var(--pad) calc(28px + env(safe-area-inset-bottom,0px));
  display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;
  font-size:13px;color:var(--dim);
}
.site-footer a{color:rgba(244,242,239,.7);text-decoration:none}
.site-footer a:hover{color:#fff}
@media (max-width:640px){
  .nav .hide-sm{display:none}
}
