:root { --ink:#11100f; --paper:#f3efe7; --white:#fffdf8; --red:#ef252b; --line:rgba(17,16,15,.2); --gutter:clamp(1rem,4vw,4.5rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:'Manrope',Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.skip-link { position:fixed; z-index:100; top:.5rem; left:.5rem; padding:.75rem 1rem; transform:translateY(-160%); background:var(--white); color:var(--ink); }
.skip-link:focus { transform:none; }

.service-header { position:relative; z-index:10; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; min-height:6.5rem; padding:1.5rem var(--gutter); background:var(--ink); color:var(--white); }
.service-brand img,.service-footer img { width:clamp(9rem,15vw,13.8rem); height:auto; }
.service-header nav,.service-footer nav { display:flex; align-items:center; gap:1.7rem; font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; }
.service-header nav a { color:rgba(255,253,248,.64); transition:color .18s; }
.service-header nav a:hover,.service-header nav a[aria-current='page'] { color:var(--white); }
.service-header-cta { justify-self:end; min-height:46px; display:inline-flex; align-items:center; gap:1rem; padding:.75rem 1rem; border:1px solid rgba(255,253,248,.35); font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; transition:background .18s,color .18s; }
.service-header-cta:hover { background:var(--red); color:var(--ink); }

.service-hero { padding:clamp(2rem,5vw,5rem) var(--gutter) 0; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.55rem; color:rgba(17,16,15,.58); font-family:'IBM Plex Mono',monospace; font-size:.68rem; text-transform:uppercase; }
.breadcrumbs a:hover { color:var(--red); }
.service-hero-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr); gap:clamp(2rem,7vw,9rem); align-items:end; padding:clamp(3rem,7vw,7rem) 0 clamp(2.5rem,4vw,4.5rem); }
.service-label,.service-answer>span,.service-scope span,.service-proof>div>span,.service-faq>div>span,.service-reading>div>span,.services-index-hero+span,.author-hero>div>div>span,.author-articles>div>span { font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
h1,h2,h3,strong { font-family:'Unbounded',Arial,sans-serif; }
.service-hero h1 { max-width:14ch; margin:.8rem 0 0; font-size:clamp(2.8rem,7.4vw,8.8rem); line-height:.91; letter-spacing:-.065em; }
.service-hero-copy p { margin:0 0 1.6rem; font-size:clamp(1.05rem,1.55vw,1.5rem); line-height:1.55; }
.service-hero-copy>a { min-height:50px; display:flex; align-items:center; justify-content:space-between; padding:.95rem 1.1rem; background:var(--red); font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; }
.service-hero figure { position:relative; aspect-ratio:16/8.8; margin:0; overflow:hidden; border:1px solid var(--ink); background:var(--ink); }
.service-hero figure img { width:100%; height:100%; object-fit:cover; object-position:top; }

.service-answer { display:grid; grid-template-columns:minmax(11rem,.35fr) minmax(0,1fr); gap:2rem; padding:clamp(3rem,6vw,7rem) var(--gutter); border-bottom:1px solid var(--line); }
.service-answer p { max-width:42ch; margin:0; font-size:clamp(1.45rem,3vw,3.3rem); line-height:1.13; letter-spacing:-.035em; }
.service-scope { display:grid; grid-template-columns:1fr 1.5fr; border-bottom:1px solid var(--line); }
.service-scope>div { padding:clamp(2rem,5vw,5rem) var(--gutter); }
.service-scope>div:first-child { border-right:1px solid var(--line); }
.service-scope strong { display:block; margin:1.1rem 0 .65rem; font-size:clamp(2rem,4.4vw,5rem); line-height:1; letter-spacing:-.055em; }
.service-scope small { max-width:29rem; display:block; color:rgba(17,16,15,.58); line-height:1.5; }
.service-scope ol { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:1rem 0 0; padding:0; list-style:none; counter-reset:item; }
.service-scope li { counter-increment:item; padding:1rem 1rem 1rem 0; border-top:1px solid var(--line); font-size:.95rem; }
.service-scope li::before { content:counter(item,decimal-leading-zero) ' '; margin-right:.75rem; color:var(--red); font-family:'IBM Plex Mono',monospace; font-size:.65rem; }
.service-section { display:grid; grid-template-columns:1fr 1.45fr; gap:clamp(2rem,8vw,9rem); padding:clamp(3rem,6vw,7rem) var(--gutter); border-bottom:1px solid var(--line); }
.service-section h2,.service-proof h2,.service-faq h2,.service-reading h2,.author-articles h2 { max-width:15ch; margin:0; font-size:clamp(1.7rem,3.4vw,4rem); line-height:1.02; letter-spacing:-.05em; }
.service-section div { max-width:48rem; }
.service-section p { margin:0; font-size:clamp(1rem,1.25vw,1.22rem); line-height:1.67; }
.service-section p+p { margin-top:1.4rem; }
.service-proof,.service-faq,.service-reading,.author-articles { display:grid; grid-template-columns:1fr 1.45fr; gap:clamp(2rem,8vw,9rem); padding:clamp(3rem,6vw,7rem) var(--gutter); border-bottom:1px solid var(--line); }
.service-proof h2,.service-faq h2,.service-reading h2,.author-articles h2 { margin-top:1rem; }
.service-proof nav,.service-reading nav,.author-articles nav { border-top:1px solid var(--ink); }
.service-proof nav a,.service-reading nav a,.author-articles nav a { min-height:72px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); font-family:'Unbounded',sans-serif; font-size:clamp(.9rem,1.35vw,1.25rem); }
.service-proof nav a:hover,.service-reading nav a:hover,.author-articles nav a:hover { color:var(--red); }
.service-faq details { border-top:1px solid var(--ink); }
.service-faq summary { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; font-family:'Unbounded',sans-serif; font-size:clamp(.9rem,1.25vw,1.16rem); list-style:none; }
.service-faq summary::-webkit-details-marker { display:none; }
.service-faq summary span { font-size:1.7rem; transition:transform .2s; }
.service-faq details[open] summary span { transform:rotate(45deg); }
.service-faq details p { max-width:45rem; margin:0; padding:0 2rem 1.5rem 0; line-height:1.65; }
.service-cta { min-height:clamp(12rem,25vw,26rem); display:grid; grid-template-columns:.45fr 1fr auto; align-items:end; gap:2rem; padding:clamp(2rem,5vw,5rem) var(--gutter); background:var(--red); }
.service-cta span { align-self:start; font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; }
.service-cta strong { max-width:14ch; font-size:clamp(2rem,5vw,6.5rem); line-height:.95; letter-spacing:-.06em; }
.service-cta i { width:clamp(3rem,5vw,5.5rem); aspect-ratio:1; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; font-style:normal; font-size:1.5rem; transition:transform .2s,background .2s; }
.service-cta:hover i { transform:rotate(45deg); background:var(--ink); color:var(--white); }

.services-index-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:3rem; align-items:end; min-height:68vh; padding:clamp(4rem,9vw,9rem) var(--gutter); border-bottom:1px solid var(--line); }
.services-index-hero h1 { margin:0; font-size:clamp(4rem,11vw,12rem); line-height:.82; letter-spacing:-.08em; }
.services-index-hero h1 em { color:var(--red); font-family:Georgia,serif; font-weight:400; }
.services-index-hero p { max-width:34rem; margin:0 0 1rem; font-size:clamp(1.1rem,1.6vw,1.5rem); line-height:1.55; }
.services-grid { display:grid; grid-template-columns:1fr 1fr; }
.service-card { border-bottom:1px solid var(--line); }
.service-card:nth-child(odd) { border-right:1px solid var(--line); }
.service-card a { position:relative; min-height:clamp(24rem,42vw,42rem); display:flex; flex-direction:column; padding:clamp(2rem,4.5vw,5rem); transition:background .22s,color .22s; }
.service-card a>span { font-family:'IBM Plex Mono',monospace; font-size:.68rem; text-transform:uppercase; }
.service-card h2 { max-width:12ch; margin:auto 0 1.4rem; font-size:clamp(2rem,4.1vw,5rem); line-height:.94; letter-spacing:-.06em; }
.service-card p { max-width:38rem; margin:0 0 1.5rem; font-size:clamp(.95rem,1.2vw,1.16rem); line-height:1.55; }
.service-card b { font-family:'IBM Plex Mono',monospace; font-size:.75rem; font-weight:400; text-transform:uppercase; }
.service-card i { position:absolute; right:clamp(2rem,4.5vw,5rem); top:clamp(2rem,4.5vw,5rem); font-style:normal; font-size:1.3rem; transition:transform .22s; }
.service-card a:hover { background:var(--red); }
.service-card a:hover i { transform:rotate(45deg); }
.service-card-accent a { background:var(--ink); color:var(--white); }

.author-hero { padding:clamp(2rem,5vw,5rem) var(--gutter) clamp(4rem,8vw,9rem); border-bottom:1px solid var(--line); }
.author-hero>.breadcrumbs { margin-bottom:clamp(3rem,7vw,7rem); }
.author-hero>div { display:grid; grid-template-columns:minmax(14rem,.45fr) 1fr; gap:clamp(2rem,7vw,8rem); align-items:end; }
.author-hero figure { margin:0; background:#d5d0c7; }
.author-hero figure img { width:100%; height:auto; }
.author-hero h1 { max-width:12ch; margin:.8rem 0 2rem; font-size:clamp(2.7rem,7vw,8rem); line-height:.9; letter-spacing:-.07em; }
.author-hero p { max-width:48rem; font-size:clamp(1.05rem,1.5vw,1.35rem); line-height:1.6; }
.author-hero a { display:inline-flex; margin-top:1rem; gap:1rem; border-bottom:1px solid; font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; }

.service-footer { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:2rem; padding:3rem var(--gutter); background:var(--ink); color:var(--white); }
.service-footer p { justify-self:center; margin:0; color:rgba(255,253,248,.62); font-family:'IBM Plex Mono',monospace; font-size:.68rem; text-transform:uppercase; }
.service-footer nav a { color:rgba(255,253,248,.58); }
.service-footer nav a:hover { color:var(--white); }

@media (max-width:900px) {
  .service-header { grid-template-columns:1fr auto; min-height:5.5rem; }
  .service-header nav { display:none; }
  .service-hero-grid,.service-answer,.service-section,.service-proof,.service-faq,.service-reading,.author-articles { grid-template-columns:1fr; }
  .service-hero-grid { align-items:start; }
  .service-hero h1 { max-width:12ch; }
  .service-scope { grid-template-columns:1fr; }
  .service-scope>div:first-child { border-right:0; border-bottom:1px solid var(--line); }
  .service-footer { grid-template-columns:1fr; }
  .service-footer p { justify-self:start; }
  .service-footer nav { flex-wrap:wrap; }
  .author-hero>div { grid-template-columns:minmax(10rem,.45fr) 1fr; }
}

@media (max-width:640px) {
  .service-header-cta { padding:.65rem .75rem; font-size:.62rem; }
  .service-header-cta span { display:none; }
  .service-hero { padding-top:1.5rem; }
  .service-hero-grid { padding:2.6rem 0 2rem; }
  .service-hero figure { aspect-ratio:4/3; }
  .service-scope ol { grid-template-columns:1fr; }
  .service-cta { grid-template-columns:1fr auto; min-height:18rem; }
  .service-cta span { grid-column:1/-1; }
  .services-index-hero { grid-template-columns:1fr; min-height:65vh; align-content:end; }
  .services-grid { grid-template-columns:1fr; }
  .service-card:nth-child(odd) { border-right:0; }
  .service-card a { min-height:29rem; }
  .author-hero>div { grid-template-columns:1fr; }
  .author-hero figure { max-width:14rem; }
  .author-articles nav a { font-size:.85rem; }
  .service-footer nav { flex-direction:column; align-items:flex-start; gap:.8rem; }
}

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