/* Anderson & Co — site.css */
:root{
  --abyss:#0A1F1C; --pine:#12332E; --pine-line:#1E4A43; --black:#0B0B0C;
  --cream:#F2EDDF; --cream-dim:rgba(242,237,223,0.64); --hairline:rgba(242,237,223,0.14);
  --gold:#C9A227; --gold-soft:#E5C96B;
  --serif:'Fraunces', Georgia, serif;
  --sans:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono:'IBM Plex Mono', 'SF Mono', Consolas, monospace;
  --maxw:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--abyss); color:var(--cream); font-family:var(--sans); line-height:1.65; -webkit-font-smoothing:antialiased;}
a{color:var(--gold-soft); text-decoration:none;}
a:hover{color:var(--cream);}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:2px;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding-left:28px; padding-right:28px;}

/* header */
header.site{border-bottom:1px solid var(--hairline); position:relative; z-index:5;}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:20px; padding-bottom:20px;}
.wordmark{display:flex; align-items:center; gap:12px; color:var(--cream);}
.wordmark img{height:34px; width:auto;}
.wordmark .wm-text{font-family:var(--serif); font-weight:600; font-size:17px; letter-spacing:0.02em;}
nav.main{display:flex; align-items:center; gap:24px;}
nav.main a{font-family:var(--mono); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--cream-dim);}
nav.main a:hover{color:var(--gold-soft);}
nav.main a[aria-current="page"]{color:var(--gold);}
.btn-book{font-family:var(--mono); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--black)!important; background:var(--gold); padding:9px 18px; border-radius:3px; white-space:nowrap;}
.btn-book:hover{background:var(--gold-soft);}

/* buttons */
.btn-primary{display:inline-block; font-family:var(--mono); font-size:13px; letter-spacing:0.05em; text-transform:uppercase; background:var(--gold); color:var(--black); padding:13px 26px; border-radius:3px; border:none; cursor:pointer;}
.btn-primary:hover{background:var(--gold-soft); color:var(--black);}
.btn-ghost{display:inline-block; font-family:var(--mono); font-size:13px; letter-spacing:0.05em; text-transform:uppercase; color:var(--cream); padding:13px 26px; border:1px solid var(--hairline); border-radius:3px;}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-soft);}

/* type */
.eyebrow{font-family:var(--mono); font-size:12.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin:0 0 20px; display:flex; align-items:center; gap:12px;}
.eyebrow::before{content:''; width:26px; height:1px; background:var(--gold);}
h1{font-family:var(--serif); font-weight:500; font-size:clamp(38px,5.6vw,62px); line-height:1.04; letter-spacing:-0.014em; margin:0 0 22px;}
h1 .dot{color:var(--gold);}
h2.section-title{font-family:var(--serif); font-weight:500; font-size:clamp(26px,3.4vw,36px); line-height:1.15; margin:0 0 12px;}
.lede{font-size:18px; color:var(--cream-dim); max-width:60ch;}

/* leaf decorations */
.leafwrap{position:relative; overflow:hidden;}
.leaf-float{position:absolute; pointer-events:none; user-select:none; opacity:0.16; filter:saturate(0.9);}
.leaf-mark{height:44px; width:auto; margin-bottom:22px;}

/* reveal */
.rise{opacity:0; transform:translateY(14px); animation:rise .7s ease forwards;}
.rise.d1{animation-delay:.05s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.31s}.rise.d4{animation-delay:.44s}
@keyframes rise{to{opacity:1; transform:translateY(0);}}
.reveal{opacity:0; transform:translateY(12px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rise,.reveal{opacity:1!important; transform:none!important; animation:none!important; transition:none!important;}
}

/* hero (home) */
.hero{padding:72px 0 76px;}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;}
.hero-video{position:relative; border-radius:8px; overflow:hidden; border:1px solid var(--pine-line); box-shadow:0 30px 60px rgba(0,0,0,0.45);}
.hero-video video{width:100%; display:block;}
.hero-video .vid-caption{position:absolute; left:0; right:0; bottom:0; padding:14px 18px; font-family:var(--mono); font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--cream); background:linear-gradient(0deg, rgba(11,11,12,0.82), rgba(11,11,12,0));}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-top:34px;}

/* beliefs */
.beliefs{background:var(--black); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:58px 0;}
.beliefs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.belief{border:1px solid var(--hairline); border-radius:6px; padding:26px 24px;}
.belief .num{font-family:var(--mono); font-size:11px; letter-spacing:0.12em; color:var(--gold); display:block; margin-bottom:12px;}
.belief p{font-family:var(--serif); font-weight:500; font-size:19px; line-height:1.4; margin:0; color:var(--cream);}

/* pillars */
.pillars{padding:80px 0;}
.pillar-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px;}
.pillar{background:var(--pine); border:1px solid var(--pine-line); border-radius:6px; padding:28px 26px 30px; display:flex; flex-direction:column;}
.pillar img.pl-leaf{height:34px; width:auto; margin-bottom:16px; align-self:flex-start;}
.pillar h3{font-family:var(--serif); font-weight:500; font-size:21px; margin:0 0 12px;}
.pillar p{font-size:14.5px; color:var(--cream-dim); margin:0 0 14px; flex:1;}
.pillar p strong{color:var(--cream); font-weight:500;}
.pillar .go{font-family:var(--mono); font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase;}

/* made cards */
.made{background:var(--black); border-top:1px solid var(--hairline); padding:78px 0 84px;}
.made-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px;}
.made-card{display:block; border:1px solid var(--hairline); border-radius:6px; padding:26px 24px; color:var(--cream); transition:border-color .2s ease, transform .2s ease;}
a.made-card:hover{border-color:var(--gold); transform:translateY(-3px); color:var(--cream);}
.made-kicker{font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:12px;}
.made-card h3{font-family:var(--serif); font-weight:500; font-size:20px; margin:0 0 10px;}
.made-card p{font-size:14px; color:var(--cream-dim); margin:0;}

/* gate / cv form */
.gate{padding:80px 0; position:relative;}
.gate-inner{background:var(--pine); border:1px solid var(--pine-line); border-radius:10px; padding:46px 44px; position:relative; overflow:hidden;}
.gate-inner .leaf-float{opacity:0.12;}
.cv-form{display:flex; gap:12px; flex-wrap:wrap; align-items:stretch; max-width:720px; margin-top:26px; position:relative;}
.cv-form input{flex:1 1 220px; font-family:var(--sans); font-size:15px; color:var(--cream); background:rgba(242,237,223,0.06); border:1px solid var(--hairline); border-radius:3px; padding:13px 16px;}
.cv-form input::placeholder{color:rgba(242,237,223,0.45);}
.cv-form input:focus{outline:none; border-color:var(--gold);}
.cv-fine{margin-top:16px; font-size:13px; color:rgba(242,237,223,0.5); max-width:66ch;}
.visually-hidden{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}

/* generic page head */
.page-head{padding:70px 0 50px;}

/* prose (about, writing) */
.prose{max-width:70ch; font-size:16.5px;}
.prose p{margin:0 0 18px; color:var(--cream-dim);}
.prose p strong{color:var(--cream); font-weight:500;}
.prose h3{font-family:var(--serif); font-weight:500; font-size:23px; margin:36px 0 12px; color:var(--cream);}
.prose blockquote{margin:26px 0; padding:4px 0 4px 20px; border-left:2px solid var(--gold); font-family:var(--serif); font-size:19px; color:var(--cream); font-style:italic;}

/* about layout */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start; padding-bottom:30px;}
.portrait{border-radius:8px; overflow:hidden; border:1px solid var(--pine-line); box-shadow:0 30px 60px rgba(0,0,0,0.45); position:sticky; top:28px;}
.portrait img{width:100%;}
.strings{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:30px 0 10px;}
.string{border:1px solid var(--hairline); border-radius:6px; padding:18px 18px;}
.string .s-k{font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:6px;}
.string p{font-size:13.5px; color:var(--cream-dim); margin:0;}

/* writing */
.post{border-top:1px solid rgba(201,162,39,0.28); padding:56px 0;}
.post:first-of-type{border-top:none; padding-top:20px;}
.post h2{font-family:var(--serif); font-weight:500; font-size:clamp(24px,3vw,32px); line-height:1.2; margin:0 0 8px;}
.post .post-kicker{font-family:var(--mono); font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:14px;}
.preface{background:var(--pine); border:1px solid var(--pine-line); border-left:3px solid var(--gold); border-radius:0 6px 6px 0; padding:24px 26px; margin:10px 0 30px; max-width:74ch;}
.preface p{margin:0 0 12px; font-size:15px; color:var(--cream-dim);}
.preface p:last-child{margin:0;}

/* resources */
.res-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:34px;}
.res-card{border:1px solid var(--hairline); border-radius:6px; padding:28px 26px; background:var(--pine);}
.res-card h3{font-family:var(--serif); font-weight:500; font-size:21px; margin:0 0 10px;}
.res-card p{font-size:14.5px; color:var(--cream-dim); margin:0 0 16px;}

/* footer */
footer.site{border-top:1px solid var(--hairline); padding:38px 0 56px; position:relative;}
.foot-inner{display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.foot-links{display:flex; gap:22px; flex-wrap:wrap;}
.foot-links a{font-family:var(--mono); font-size:12.5px; letter-spacing:0.05em; color:var(--cream-dim); border-bottom:1px solid var(--hairline);}
.foot-links a:hover{color:var(--gold-soft); border-color:var(--gold);}
.foot-fine{font-family:var(--mono); font-size:11.5px; color:var(--cream-dim); max-width:60ch;}
.foot-fine a{border-bottom:1px solid rgba(201,162,39,0.4);}

/* integration slots: paste Cloudflare Analytics + Tawk snippets before </body> where marked */

@media (max-width:900px){
  .hero-grid,.about-grid{grid-template-columns:1fr; gap:34px;}
  .portrait{position:static;}
  .pillar-grid,.made-grid,.beliefs-grid{grid-template-columns:1fr;}
  .res-grid,.strings{grid-template-columns:1fr;}
  .header-inner{flex-wrap:wrap;} nav.main{flex-wrap:wrap; gap:10px 16px;} nav.main a{font-size:11px;}
  .hero{padding:52px 0 56px;}
  .gate-inner{padding:34px 24px;}
}
