/* CalebBullard.com — restrained old-money editorial.
   Palette per brief: ivory, deep charcoal, dark navy, warm taupe/stone, antique brass.
   No gradients, no glow, no neon. */
:root{
  --ivory:#FBF9F5; --paper:#F3EFE8; --stone:#E2DBD0; --stone-2:#CFC6B8;
  --taupe:#6E6558; --ink:#1B1A18; --charcoal:#2A2A28;
  --navy:#16213A; --navy-2:#0E1628;
  --brass:#9A7B3F; --brass-soft:#C4A66A;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --maxw:1220px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ivory); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:inherit}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.narrow{max-width:760px; margin:0 auto; padding:0 24px}
section{padding:clamp(72px,9vw,132px) 0}

/* ---- type ---- */
h1,h2,h3{font-family:var(--serif); font-weight:400; letter-spacing:-.01em; text-wrap:balance; margin:0}
h1{font-size:clamp(44px,7vw,86px); line-height:1.02}
h2{font-size:clamp(30px,4.2vw,52px); line-height:1.1; margin-bottom:22px}
h3{font-size:clamp(21px,2.4vw,27px); line-height:1.25}
p{margin:0 0 20px; max-width:66ch}
.kicker{
  font-family:var(--sans); font-size:11.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--taupe); margin:0 0 20px; font-weight:500;
}
.lede{font-size:clamp(18px,2vw,21px); line-height:1.6; color:var(--charcoal); max-width:60ch}
.rule{width:52px; height:1px; background:var(--brass); margin:26px 0}

/* ---- nav ---- */
header.nav{
  position:sticky; top:0; z-index:50; background:rgba(251,249,245,.94);
  backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--stone);
}
.nav-in{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px 24px; max-width:var(--maxw); margin:0 auto}
.wordmark{font-family:var(--serif); font-size:20px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none}
.nav-links{display:flex; gap:26px; align-items:center; list-style:none; margin:0; padding:0}
.nav-links a{font-size:13px; letter-spacing:.07em; text-decoration:none; color:var(--taupe)}
.nav-links a:hover{color:var(--ink)}
.nav-contact{font-size:12px; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; border:1px solid var(--ink); padding:10px 18px}
.nav-contact:hover{background:var(--ink); color:var(--ivory)}
@media(max-width:900px){ .nav-links{display:none} }

/* ---- hero ---- */
.hero{padding:0; border-bottom:1px solid var(--stone)}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; max-width:none; margin:0}
.hero-copy{
  padding:clamp(56px,7vw,104px) clamp(32px,4vw,64px) clamp(56px,7vw,104px)
          max(24px, calc((100vw - var(--maxw))/2 + 24px));
  align-self:center;
}
.hero-name{font-size:clamp(42px,6.4vw,78px); line-height:1.0; margin-bottom:24px}
.hero-roles{font-size:13px; letter-spacing:.17em; text-transform:uppercase; color:var(--taupe); margin-bottom:28px}
.hero-sub{font-size:clamp(17px,1.8vw,20px); color:var(--charcoal); max-width:44ch; margin-bottom:38px}
.hero-photo{position:relative; min-height:420px; background:var(--paper)}
.hero-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 22%}
.paths{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--stone-2)}
.paths a{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:17px 0; border-bottom:1px solid var(--stone-2); text-decoration:none;
  font-size:15px; letter-spacing:.02em;
}
.paths a span.arw{color:var(--brass); font-size:14px}
.paths a:hover{color:var(--brass)}
@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{min-height:64vh; order:-1}
}

/* ---- credibility ---- */
.cred{background:var(--navy); color:var(--ivory)}
.cred-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(226,219,208,.16); border:1px solid rgba(226,219,208,.16)}
.cred-grid > div{background:var(--navy); padding:30px 24px}
.cred-grid b{display:block; font-family:var(--serif); font-size:clamp(28px,3.4vw,40px); font-weight:400; color:var(--ivory); line-height:1.05; font-variant-numeric:tabular-nums}
.cred-grid small{display:block; margin-top:9px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-soft)}
.cred .note{margin:26px 0 0; font-size:13px; color:rgba(226,219,208,.72); max-width:76ch}
.cred h2{color:var(--ivory)}
.cred .kicker{color:var(--brass-soft)}
@media(max-width:900px){ .cred-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .cred-grid{grid-template-columns:1fr} }

/* ---- editorial split ---- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:center}
.split.narrowimg{grid-template-columns:.8fr 1.2fr}
.split img{width:100%; height:100%; max-height:640px; object-fit:cover}
figure{margin:0}
figcaption{font-size:12.5px; color:var(--taupe); margin-top:12px; letter-spacing:.03em}
@media(max-width:860px){ .split,.split.narrowimg{grid-template-columns:1fr} }

.alt{background:var(--paper)}
.dark{background:var(--navy); color:var(--ivory)}
.dark h2,.dark h3{color:var(--ivory)}
.dark p{color:rgba(226,219,208,.86)}
.dark .kicker{color:var(--brass-soft)}
.dark .rule{background:var(--brass-soft)}

/* ---- timeline ---- */
.chapters{list-style:none; margin:40px 0 0; padding:0; counter-reset:ch}
.chapters li{
  border-top:1px solid var(--stone-2); padding:26px 0;
  display:grid; grid-template-columns:104px 1fr; gap:24px; align-items:start;
}
.chapters li:last-child{border-bottom:1px solid var(--stone-2)}
.chapters .yr{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); padding-top:5px}
.chapters b{display:block; font-family:var(--serif); font-size:23px; font-weight:400; margin-bottom:6px}
.chapters p{margin:0; font-size:16px; color:var(--charcoal)}
@media(max-width:620px){ .chapters li{grid-template-columns:1fr; gap:8px} }

/* ---- buttons ---- */
.btn{
  display:inline-block; padding:15px 30px; border:1px solid var(--ink); color:var(--ink);
  text-decoration:none; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  transition:background .18s,color .18s;
}
.btn:hover{background:var(--ink); color:var(--ivory)}
.btn.light{border-color:var(--brass-soft); color:var(--ivory)}
.btn.light:hover{background:var(--brass-soft); color:var(--navy)}
.textlink{color:var(--brass); text-decoration:none; border-bottom:1px solid var(--stone-2); padding-bottom:1px}
.textlink:hover{border-color:var(--brass)}

/* ---- ventures ---- */
.ventures{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--stone-2); border:1px solid var(--stone-2); margin-top:48px}
.venture{background:var(--ivory); padding:clamp(30px,3.6vw,46px); display:flex; flex-direction:column}
.venture .kicker{margin-bottom:14px}
.venture p{font-size:16px; color:var(--charcoal); flex:1}
@media(max-width:800px){ .ventures{grid-template-columns:1fr} }

/* ---- stories ---- */
.story{border-left:2px solid var(--brass); padding:4px 0 4px 24px; margin:0 0 30px}
.story p{margin:0; font-size:16.5px; color:var(--charcoal)}
.story small{display:block; margin-top:10px; font-size:12px; letter-spacing:.11em; text-transform:uppercase; color:var(--taupe)}

/* ---- credentials ---- */
.creds{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--stone-2); border:1px solid var(--stone-2); margin-top:44px}
.creds > div{background:var(--ivory); padding:30px 26px}
.creds h3{font-size:19px; margin-bottom:14px}
.creds ul{margin:0; padding-left:17px}
.creds li{font-size:15px; color:var(--charcoal); margin-bottom:7px}
@media(max-width:940px){ .creds{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .creds{grid-template-columns:1fr} }

/* ---- final CTA ---- */
.final{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(226,219,208,.18); border:1px solid rgba(226,219,208,.18); margin-top:46px}
.final a{background:var(--navy); padding:38px 30px; text-decoration:none; display:block}
.final a:hover{background:var(--navy-2)}
.final .kicker{margin-bottom:12px}
.final h3{margin-bottom:8px}
.final span{font-size:13.5px; color:rgba(226,219,208,.75)}
@media(max-width:820px){ .final{grid-template-columns:1fr} }

/* ---- footer ---- */
footer{background:var(--navy-2); color:rgba(226,219,208,.8); padding:72px 0 44px; font-size:14px}
footer h4{font-family:var(--serif); font-weight:400; font-size:22px; color:var(--ivory); margin:0 0 6px; letter-spacing:.06em}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px}
footer a{color:rgba(226,219,208,.8); text-decoration:none}
footer a:hover{color:var(--brass-soft)}
footer ul{list-style:none; margin:0; padding:0}
footer li{margin-bottom:9px; font-size:14px}
.foot-h{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-soft); margin:0 0 16px}
.foot-legal{margin-top:52px; padding-top:26px; border-top:1px solid rgba(226,219,208,.14); font-size:12.5px; color:rgba(226,219,208,.6); max-width:88ch}
@media(max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr} }

@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0; transform:translateY(14px); animation:rise .7s ease forwards}
  @keyframes rise{to{opacity:1; transform:none}}
}
