:root{
  --paper:#F4F4F1;
  --paper-deep:#ECECE7;
  --ink:#171717;
  --red:#C8231B;
  --graphite:#6E6C66;
  --rule:#DCDAD2;
  --display:'Libre Franklin',Helvetica,Arial,sans-serif;
  --body:'Newsreader',Georgia,serif;
  --mono:'Courier Prime','Courier New',monospace;
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.65}
img{max-width:100%}
a{color:var(--ink)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:3px}
::selection{background:var(--red);color:var(--paper)}

/* ---------- type utilities ---------- */
.kicker{font-family:var(--mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.kicker::before{content:"^ ";color:var(--red)}
h1,h2,h3{font-family:var(--display);line-height:1.04;letter-spacing:-.015em}
.display-xl{font-weight:900;font-size:clamp(2.9rem,7.2vw,5.4rem)}
.display-lg{font-weight:900;font-size:clamp(2.1rem,4.6vw,3.4rem)}
.display-md{font-weight:700;font-size:clamp(1.35rem,2.6vw,1.75rem)}
.lede{font-size:clamp(1.2rem,2vw,1.4rem);line-height:1.55;max-width:34em}
.muted{color:var(--graphite)}
.mono{font-family:var(--mono)}

/* ---------- nav ---------- */
header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink)}
.nav{max-width:var(--max);margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.wordmark{font-family:var(--display);font-weight:900;font-size:1.05rem;letter-spacing:.02em;text-decoration:none;text-transform:uppercase}
.wordmark em{font-style:normal;color:var(--red)}
.nav-links{display:flex;gap:1.4rem;flex-wrap:wrap}
.nav-links a{font-family:var(--mono);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}
.nav-links a:hover{border-bottom-color:var(--ink)}
.nav-links a.active{border-bottom-color:var(--red);color:var(--red)}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.5rem}
section{padding:4.5rem 0}
.split{display:grid;grid-template-columns:180px 1fr;gap:2.5rem;align-items:start}
.margin-note{font-family:var(--mono);font-size:.78rem;line-height:1.5;color:var(--red);position:sticky;top:5.5rem;border-top:2px solid var(--red);padding-top:.6rem}
@media(max-width:760px){.split{grid-template-columns:1fr}.margin-note{position:static;border-top:none;border-left:2px solid var(--red);padding:0 0 0 .8rem}}

/* ---------- hero ---------- */
.hero{padding:6rem 0 4.5rem;border-bottom:1px solid var(--ink)}
.hero h1{max-width:11em;margin:.9rem 0 1.4rem}
.ghost-byline{font-family:var(--body);font-style:italic;font-size:clamp(1.15rem,2.2vw,1.5rem);margin:0 0 2.2rem;min-height:1.6em}
.ghost-name{position:relative;white-space:nowrap}
.ghost-name .strike{position:absolute;left:0;top:55%;height:2px;background:var(--red);width:0;transition:width .45s ease}
.ghost-name.struck .strike{width:100%}
.ghost-annot{font-family:var(--mono);font-style:normal;font-size:.85rem;color:var(--red)}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap}
.btn{font-family:var(--mono);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:.85rem 1.6rem;border:1.5px solid var(--ink);display:inline-block;cursor:pointer;background:transparent;color:var(--ink);transition:background .15s,color .15s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-red{background:var(--red);border-color:var(--red);color:var(--paper)}
.btn-red:hover{background:var(--ink);border-color:var(--ink)}

/* ---------- client strip ---------- */
.clients{border-bottom:1px solid var(--rule);padding:2.6rem 0}
.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.6rem 2rem;align-items:end}
.client{text-align:left}
.client .name{font-family:var(--display);font-weight:900;font-size:1.06rem;letter-spacing:.01em;text-transform:uppercase}
.client .sector{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);display:block;margin-top:.25rem}

/* ---------- services ---------- */
.svc-list{border-top:1px solid var(--ink)}
.svc{display:grid;grid-template-columns:64px 1fr;gap:1.6rem;padding:2.1rem 0;border-bottom:1px solid var(--rule)}
.svc:last-child{border-bottom:1px solid var(--ink)}
.svc .mark{font-family:var(--mono);font-size:.85rem;color:var(--red);padding-top:.45rem}
.svc h3{margin-bottom:.55rem}
.svc p{max-width:38em}
.svc p+p{margin-top:.7rem}
@media(max-width:560px){.svc{grid-template-columns:1fr;gap:.4rem}}

/* ---------- desk ticker ---------- */
.desk{background:var(--ink);color:var(--paper);padding:3.4rem 0}
.desk .kicker{color:var(--red)}
.desk p{font-size:clamp(1.25rem,2.4vw,1.7rem);font-family:var(--body);max-width:32em;margin-top:1rem}
.desk a{color:var(--paper)}

/* ---------- blog ---------- */
.post-card{padding:2.2rem 0;border-bottom:1px solid var(--rule)}
.post-card:first-of-type{border-top:1px solid var(--ink)}
.post-card a.title-link{text-decoration:none}
.post-card a.title-link:hover h3{color:var(--red)}
.post-meta{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);margin-bottom:.5rem}
.post-card p{max-width:38em;margin-top:.6rem}
.readmore{font-family:var(--mono);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--red);text-decoration:none;border-bottom:1.5px solid var(--red);padding-bottom:1px}
.readmore:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* article pages */
.article{max-width:42em}
.article h1{font-size:clamp(2.1rem,4.6vw,3.1rem);font-weight:900;margin:.8rem 0 .6rem}
.article .post-meta{margin-bottom:2rem}
.article p{margin-bottom:1.25rem}
.article p.opener::first-letter{font-family:var(--display);font-weight:900;font-size:3.1em;float:left;line-height:.82;padding-right:.09em;color:var(--red)}
.article .pullq{font-family:var(--display);font-weight:700;font-size:1.45rem;line-height:1.3;border-left:3px solid var(--red);padding:.2rem 0 .2rem 1.1rem;margin:2rem 0}
.backlink{font-family:var(--mono);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--graphite)}
.backlink:hover{color:var(--red)}

/* ---------- FAQ ---------- */
.faq details{border-top:1px solid var(--rule);padding:1.1rem 0}
.faq details:last-child{border-bottom:1px solid var(--ink)}
.faq details:first-of-type{border-top:1px solid var(--ink)}
.faq summary{font-family:var(--display);font-weight:700;font-size:1.15rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--red);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin-top:.8rem;max-width:40em}

/* ---------- work ---------- */
.case{padding:2.2rem 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:200px 1fr;gap:1.8rem}
.case:first-of-type{border-top:1px solid var(--ink)}
.case .name{font-family:var(--display);font-weight:900;font-size:1.25rem;text-transform:uppercase}
.case .sector{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);display:block;margin-top:.3rem}
.case p{max-width:36em}
@media(max-width:640px){.case{grid-template-columns:1fr;gap:.5rem}}

/* ---------- contact ---------- */
form{max-width:36em}
.field{margin-bottom:1.4rem}
label{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.45rem}
input,select,textarea{width:100%;background:transparent;border:1.5px solid var(--ink);padding:.8rem .9rem;font-family:var(--body);font-size:1.05rem;color:var(--ink);border-radius:0}
textarea{min-height:9em;resize:vertical}
.form-note{font-family:var(--mono);font-size:.78rem;color:var(--graphite);margin-top:1rem}
.hidden-field{display:none}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--ink);padding:2.6rem 0 3.4rem;margin-top:2rem}
.foot{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:baseline}
.foot .mono{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.foot a{text-decoration:none;border-bottom:1px solid var(--rule)}
.foot a:hover{border-bottom-color:var(--red)}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}
