/* ==========================================================================
   Bitware Labs — site stylesheet
   Extracted from the original inline <style> block so every page shares one
   cached file. Cache-busted via ?v= (see ASSET_VER in _inc/config.php).
   ========================================================================== */

@font-face{
  font-family:'Fraunces';
  src:url('/fonts/fraunces-latin-opsz-normal.v2.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Fraunces';
  src:url('/fonts/fraunces-latin-opsz-italic.v2.woff2') format('woff2');
  font-weight:100 900; font-style:italic; font-display:swap;
}
@font-face{
  font-family:'Newsreader';
  src:url('/fonts/newsreader-latin-opsz-normal.v2.woff2') format('woff2');
  font-weight:200 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Newsreader';
  src:url('/fonts/newsreader-latin-opsz-italic.v2.woff2') format('woff2');
  font-weight:200 800; font-style:italic; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('/fonts/inter-latin-normal.v2.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
}

:root{
  color-scheme:light dark;

  --paper:#faf8f3;
  --paper-2:#f3efe4;
  --ink:#1a1714;
  --ink-soft:#4a443c;
  --ink-faint:#6b6459;      /* darkened from #7a7268 — now 5.5:1 on paper */
  --accent:#0f4f4a;         /* deep teal */
  --accent-2:#7c2d23;       /* oxblood, used sparingly */
  --rule:#d9d2c4;
  --rule-strong:#bdb4a2;
  --ordinal:#95896f;        /* large decorative numerals — 3.25:1 */
  --grain:rgba(120,110,95,.05);

  /* inverse block (contact) — deliberately dark in the light theme */
  --inv-bg:#1a1714;
  --inv-fg:#faf8f3;
  --inv-muted:#b5ab9c;
  --inv-rule:#4a443c;
  --inv-accent:#7fd4cc;
  --inv-placeholder:#8b8377;
  --inv-err:#e09b8f;

  --ok:#1c6b45;
  --warn:#8a5a05;
  --bad:#a3301f;

  --shadow:0 1px 2px rgba(26,23,20,.05);
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#14120f;
    --paper-2:#1e1b16;
    --ink:#ece7dc;
    --ink-soft:#c2baab;
    --ink-faint:#968d7c;
    --accent:#74c8bf;
    --accent-2:#e5a496;
    --rule:#2e2a23;
    --rule-strong:#443e34;
    --ordinal:#6d6452;
    --grain:rgba(220,210,190,.035);

    --inv-bg:#0f1f1d;
    --inv-fg:#ece7dc;
    --inv-muted:#b5ab9c;
    --inv-rule:#2c443f;
    --inv-accent:#7fd4cc;
    --inv-placeholder:#8b8377;

    --ok:#6fd39f;
    --warn:#e6b45c;
    --bad:#f0958a;

    --shadow:0 1px 2px rgba(0,0,0,.4);
  }
  /* Illustrations are drawn on bright white stock. At full brightness they read
     as glowing panels against the dark page, so knock them back and warm them
     slightly towards the paper tone. */
  .figure-frame img, .thumb img{filter:brightness(.62) contrast(1.06) sepia(.12);}
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:76px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none !important; transition:none !important}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter', system-ui, sans-serif;
  font-size:17px;
  line-height:1.65;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* subtle paper grain */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.5;
  background-image:radial-gradient(var(--grain) 1px, transparent 1px);
  background-size:3px 3px;
}

h1,h2,h3,h4,.serif{font-family:'Fraunces', Georgia, serif; font-weight:400; letter-spacing:-.01em;}
.news{font-family:'Newsreader', Georgia, serif;}

a{color:inherit}

.wrap{max-width:1180px; margin:0 auto; padding:0 28px; position:relative; z-index:1;}
.measure{max-width:680px;}

.kicker{
  font-family:'Inter',sans-serif;
  font-size:11.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
}
.kicker--oxblood{color:var(--accent-2)}

.hr{border:0; border-top:1px solid var(--rule); margin:0;}
.hr-strong{border:0; border-top:1px solid var(--rule-strong); margin:0;}

/* ---------- skip link ---------- */
.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:var(--paper);
  padding:12px 20px; font-size:14px; text-decoration:none;
}
.skip:focus{left:12px; top:12px;}

/* ---------- masthead ---------- */
.masthead{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--rule);
}
@supports not (background: color-mix(in srgb, red 50%, transparent)){
  .masthead{background:var(--paper);}
}
.masthead-inner{display:flex; align-items:center; justify-content:space-between; height:60px; gap:16px;}
.wordmark{display:flex; align-items:baseline; gap:10px; text-decoration:none; flex:0 0 auto;}
.wordmark .name{font-family:'Fraunces',serif; font-size:22px; font-weight:500; letter-spacing:-.02em;}
.wordmark .est{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint);}
@media(max-width:400px){ .wordmark .est{display:none} }

.nav{display:none; gap:22px; font-size:13.5px; letter-spacing:.04em; align-items:center;}
.nav a{text-decoration:none; color:var(--ink-soft); position:relative; padding:4px 0; white-space:nowrap;}
.nav a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--accent); transition:width .3s ease;}
.nav a:hover{color:var(--ink)} .nav a:hover::after{width:100%}
.nav a[aria-current]{color:var(--ink)} .nav a[aria-current]::after{width:100%}
@media(min-width:1090px){ .nav{display:flex} }

/* mobile disclosure nav */
.nav-toggle{
  display:inline-flex; align-items:center; gap:9px;
  background:transparent; border:1px solid var(--rule-strong); border-radius:2px;
  color:var(--ink); font-family:'Inter',sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; padding:8px 13px; cursor:pointer;
}
.nav-toggle .bars{display:block; width:15px; height:9px; position:relative;}
.nav-toggle .bars::before,
.nav-toggle .bars::after{
  content:""; position:absolute; left:0; right:0; height:1.5px; background:currentColor;
  transition:transform .25s ease, top .25s ease;
}
.nav-toggle .bars::before{top:0}
.nav-toggle .bars::after{top:7.5px}
.nav-toggle[aria-expanded="true"] .bars::before{top:4px; transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:4px; transform:rotate(-45deg)}
@media(min-width:1090px){ .nav-toggle{display:none} }

.nav-panel{
  display:none;
  border-top:1px solid var(--rule);
  background:var(--paper);
}
.nav-panel.open{display:block}
@media(min-width:1090px){ .nav-panel{display:none !important} }
.nav-panel ul{list-style:none; margin:0; padding:6px 0 14px;}
.nav-panel a{
  display:block; text-decoration:none; color:var(--ink-soft);
  font-size:16px; padding:13px 0; border-bottom:1px solid var(--rule);
}
.nav-panel li:last-child a{border-bottom:0}
.nav-panel a[aria-current]{color:var(--ink)}
.nav-panel .np-note{
  font-family:'Newsreader',serif; font-size:14px; color:var(--ink-faint);
  padding-top:14px; margin:0;
}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Inter',sans-serif; font-size:14px; font-weight:500; letter-spacing:.02em;
  padding:11px 20px; border-radius:2px; text-decoration:none; cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  border:1px solid transparent;
}
.btn-solid{background:var(--ink); color:var(--paper);}
.btn-solid:hover{background:var(--accent); color:var(--paper); transform:translateY(-1px);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--rule-strong);}
.btn-ghost:hover{border-color:var(--ink); background:var(--paper-2);}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px;
}

/* ---------- hero ---------- */
.hero{padding:64px 0 12px;}
.issue-line{display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:34px;}
.issue-line .dot{width:4px; height:4px; border-radius:50%; background:var(--rule-strong); flex:0 0 auto;}
.issue-line span{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint);}
/* Narrow screens wrap each item onto its own line, leaving the separator dots
   stranded at the end of a line. Drop them and tighten the stack instead. */
@media(max-width:560px){
  .issue-line{gap:4px 16px;}
  .issue-line .dot{display:none;}
}

.hero h1{
  font-size:clamp(40px, 7.2vw, 86px);
  line-height:1.02;
  margin:0 0 28px;
  font-weight:400;
}
.hero h1 em{font-style:italic; color:var(--accent);}
.standfirst{
  font-family:'Newsreader',serif;
  font-size:clamp(19px,2.2vw,23px);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:640px;
}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px;}

/* hero figure */
figure{margin:0;}
.figure-frame{
  border:1px solid var(--rule-strong);
  background:var(--paper-2);
  padding:14px;
}
.figure-frame img{display:block; width:100%; height:auto;}
figcaption{
  font-family:'Inter',sans-serif;
  font-size:12px; line-height:1.5;
  color:var(--ink-faint);
  margin-top:10px;
  padding-left:14px;
  border-left:2px solid var(--accent);
}
figcaption b{color:var(--ink-soft); font-weight:600;}

.hero-grid{display:grid; grid-template-columns:1fr; gap:46px; align-items:start;}
@media(min-width:900px){
  .hero-grid{grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
}

/* ---------- section frame ---------- */
section{padding:78px 0; position:relative;}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:8px; flex-wrap:wrap;}
.sec-head h2{font-size:clamp(28px,4vw,40px); margin:0;}
.sec-num{font-family:'Fraunces',serif; font-size:13px; color:var(--ink-faint); letter-spacing:.05em;}
.sec-intro{color:var(--ink-faint); font-size:16px; margin:8px 0 12px; max-width:60ch;}

/* ---------- mission / dropcap essay ---------- */
.essay{columns:1; column-gap:48px;}
@media(min-width:760px){ .essay{columns:2;} }
.essay p{margin:0 0 18px; font-family:'Newsreader',serif; font-size:18.5px; line-height:1.7; color:var(--ink-soft);}
.essay p:first-child::first-letter{
  font-family:'Fraunces',serif;
  float:left; font-size:66px; line-height:.78; font-weight:500;
  padding:6px 12px 0 0; color:var(--accent);
}

/* ---------- article lists (services + work) ---------- */
.articles{display:grid; grid-template-columns:1fr; gap:0;}
.article{
  display:grid; grid-template-columns:1fr; gap:24px;
  padding:38px 0; border-top:1px solid var(--rule);
  align-items:start;
}
.article:last-child{border-bottom:1px solid var(--rule);}
@media(min-width:720px){
  .article{grid-template-columns:230px 1fr; gap:40px;}
}
.article .thumb{
  border:1px solid var(--rule-strong); background:var(--paper-2); padding:10px;
}
.article .thumb img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; background:var(--paper);}
.article .thumb figcaption{border-left:none; padding-left:0; margin-top:8px;}
.article h3{font-size:26px; margin:0 0 6px; line-height:1.15;}
.byline{font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:14px;}
.byline .who{color:var(--ink-faint); text-transform:none; letter-spacing:.02em; font-style:italic; font-family:'Newsreader',serif; font-size:14px;}
.abstract{font-family:'Newsreader',serif; font-size:17.5px; line-height:1.6; color:var(--ink-soft); margin:0 0 16px; max-width:60ch;}
.readmore{font-family:'Inter',sans-serif; font-size:13px; font-weight:600; letter-spacing:.04em; text-decoration:none; color:var(--ink); display:inline-flex; align-items:center; gap:7px; border-bottom:1px solid var(--ink); padding-bottom:2px; transition:gap .2s ease, color .2s ease, border-color .2s ease;}
.readmore:hover{gap:12px; color:var(--accent); border-color:var(--accent);}
.readmore + .readmore{margin-left:22px}

/* services variant: editorial ordinal instead of thumb */
.article--svc{grid-template-columns:1fr;}
@media(min-width:720px){
  .article--svc{grid-template-columns:110px 1fr; gap:40px;}
}
.svc-no{font-family:'Fraunces',serif; font-size:52px; line-height:1; color:var(--ordinal);}
.svc-no span{display:block; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:6px;}

/* ---------- manifesto + stats ---------- */
.manifesto{background:var(--paper-2); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.manifesto-grid{display:grid; grid-template-columns:1fr; gap:48px; align-items:center;}
@media(min-width:920px){ .manifesto-grid{grid-template-columns:1fr 1fr; gap:64px;} }
.lead{font-family:'Fraunces',serif; font-size:clamp(24px,3vw,33px); line-height:1.32; font-weight:400; margin:0 0 30px;}
.lead em{font-style:italic; color:var(--accent-2);}
.tenets{list-style:none; padding:0; margin:0;}
.tenets li{padding:18px 0; border-top:1px solid var(--rule-strong); display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline;}
.tenets li:last-child{border-bottom:1px solid var(--rule-strong);}
.tenets .mark{font-family:'Fraunces',serif; font-style:italic; color:var(--accent); font-size:18px;}
.tenets b{font-family:'Fraunces',serif; font-weight:500; font-size:19px; display:block; margin-bottom:2px;}
.tenets span{font-family:'Newsreader',serif; color:var(--ink-soft); font-size:16px;}

.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:6px; border-top:1px solid var(--rule);}
.stat{padding:26px 18px; text-align:center; border-right:1px solid var(--rule);}
.stat:last-child{border-right:none;}
.stat .n{font-family:'Fraunces',serif; font-size:clamp(32px,5vw,48px); line-height:1; color:var(--ink); display:block; margin-bottom:8px;}
.stat .l{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint);}

/* ---------- plate ---------- */
.plate-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media(min-width:880px){ .plate-grid{grid-template-columns:.9fr 1.1fr; gap:60px;} }
.plate-grid p{font-family:'Newsreader',serif; font-size:18px; line-height:1.7; color:var(--ink-soft);}

/* ---------- contact ---------- */
.contact{background:var(--inv-bg); color:var(--inv-fg); border-top:4px double var(--accent);}
.contact .wrap{position:relative;}
.contact h2{color:var(--inv-fg);}
.contact .kicker{color:var(--inv-accent);}
.contact .standfirst{color:#d9d2c4;}
.contact .news{color:var(--inv-muted);}
.contact-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:start;}
@media(min-width:880px){ .contact-grid{grid-template-columns:.85fr 1.15fr; gap:60px;} }
form label{display:block; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--inv-muted); margin:0 0 7px;}
form .field{margin-bottom:20px;}
form input, form textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--inv-rule);
  color:var(--inv-fg); font-family:'Newsreader',serif; font-size:18px; padding:8px 0;
  transition:border-color .2s ease;
}
form input::placeholder, form textarea::placeholder{color:var(--inv-placeholder); opacity:1;}
form input:focus, form textarea:focus{outline:none; border-color:var(--inv-accent);}
form input[aria-invalid="true"], form textarea[aria-invalid="true"]{border-color:var(--inv-err);}
form textarea{resize:vertical; min-height:96px;}
.btn-send{background:var(--inv-accent); color:#0f2e2b; font-weight:600;}
.hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}
.form-msg{font-family:'Newsreader',serif; font-size:16px; margin-top:14px; min-height:22px;}
.form-msg.ok{color:var(--inv-accent);} .form-msg.err{color:var(--inv-err);}
.form-note{font-size:13px; color:var(--inv-muted); margin-top:16px; line-height:1.55;}
.form-note a{color:var(--inv-accent);}
.mailto{color:var(--inv-accent); text-decoration:none; border-bottom:1px solid var(--inv-rule);}
.mailto:hover{border-color:var(--inv-accent);}
.form-done{font-family:'Newsreader',serif; font-size:21px; color:var(--inv-accent); line-height:1.5;}

/* ---------- footer ---------- */
footer{padding:54px 0; background:var(--paper);}
.foot-grid{display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:flex-start;}
.footnotes{font-family:'Newsreader',serif; font-size:13.5px; color:var(--ink-faint); max-width:560px; line-height:1.6;}
.footnotes sup{color:var(--accent); font-weight:600;}
.foot-meta{font-size:13px; color:var(--ink-soft); text-align:right;}
.foot-meta a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.foot-meta a:hover{border-color:var(--ink);}
.foot-name{font-family:'Fraunces',serif; font-size:16px; color:var(--ink); margin-bottom:6px;}
.foot-links{margin-top:10px; display:flex; gap:16px; justify-content:flex-end; flex-wrap:wrap;}
@media(max-width:640px){
  .foot-meta{text-align:left}
  .foot-links{justify-content:flex-start}
}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1; transform:none;}
.d1{transition-delay:.1s} .d2{transition-delay:.12s} .d3{transition-delay:.15s}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none;} }
.no-js .reveal{opacity:1; transform:none;}

/* ==========================================================================
   Interior pages
   ========================================================================== */

/* page masthead block */
.page-head{padding:70px 0 0;}
.page-head h1{font-size:clamp(34px,5.4vw,62px); line-height:1.06; margin:0 0 22px; font-weight:400;}
.page-head h1 em{font-style:italic; color:var(--accent);}
.page-head .standfirst{margin:0;}
.crumbs{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:26px;}
.crumbs a{text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.crumbs a:hover{border-color:var(--ink)}
.crumbs .sep{padding:0 10px; color:var(--rule-strong)}

/* long-form prose */
.prose{max-width:68ch;}
.prose > *:first-child{margin-top:0}
.prose p, .prose li{font-family:'Newsreader',serif; font-size:18.5px; line-height:1.72; color:var(--ink-soft);}
.prose p{margin:0 0 22px}
.prose h2{font-size:clamp(24px,3.2vw,31px); margin:52px 0 6px; line-height:1.2;}
.prose h3{font-size:21px; margin:38px 0 4px; line-height:1.25;}
.prose h2 + p, .prose h3 + p{margin-top:12px}
.prose ul, .prose ol{margin:0 0 22px; padding-left:22px}
.prose li{margin-bottom:9px}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.prose a:hover{color:var(--accent); border-color:var(--accent);}
.prose strong{color:var(--ink); font-weight:600}
.prose hr{border:0; border-top:1px solid var(--rule); margin:44px 0;}
.prose blockquote{
  margin:30px 0; padding:4px 0 4px 24px; border-left:2px solid var(--accent);
  font-family:'Fraunces',serif; font-size:21px; line-height:1.45; color:var(--ink);
}
.prose blockquote p{font-family:inherit; font-size:inherit; color:inherit; margin:0}
.prose figure{margin:34px 0}
.prose img{display:block; width:100%; height:auto; border:1px solid var(--rule-strong); background:var(--paper-2);}

code, kbd, samp{
  font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  font-size:.86em;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:2px;
  padding:.12em .38em;
}
pre{
  background:var(--paper-2);
  border:1px solid var(--rule-strong);
  padding:18px 20px;
  overflow-x:auto;
  font-size:13.5px;
  line-height:1.6;
  margin:0 0 24px;
}
pre code{background:none; border:0; padding:0; font-size:inherit;}

/* callout */
.note{
  border:1px solid var(--rule-strong);
  border-left:3px solid var(--accent);
  background:var(--paper-2);
  padding:18px 22px;
  margin:0 0 26px;
}
.note p:last-child{margin-bottom:0}
.note .note-t{
  display:block; font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:8px;
}

/* notebook index */
.entries{border-top:1px solid var(--rule);}
.entry{
  display:grid; grid-template-columns:1fr; gap:8px 40px;
  padding:32px 0; border-bottom:1px solid var(--rule);
}
@media(min-width:760px){ .entry{grid-template-columns:150px 1fr;} }
.entry-date{
  font-family:'Inter',sans-serif; font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-faint); padding-top:8px;
}
.entry h2{font-size:25px; margin:0 0 8px; line-height:1.2;}
.entry h2 a{text-decoration:none}
.entry h2 a:hover{color:var(--accent)}
.entry .abstract{margin-bottom:12px}
.entry-tags{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}

/* post meta + footer nav */
.post-meta{
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint);
  margin-bottom:26px;
}
.post-meta .tag{color:var(--accent)}
.post-nav{
  display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between;
  border-top:1px solid var(--rule-strong); margin-top:56px; padding-top:26px;
}

/* case studies */
.case{
  border-top:1px solid var(--rule);
  padding:44px 0;
}
.case:last-of-type{border-bottom:1px solid var(--rule)}
.case h3{font-size:27px; margin:0 0 6px; line-height:1.16;}
.case-grid{display:grid; grid-template-columns:1fr; gap:26px;}
@media(min-width:820px){ .case-grid{grid-template-columns:repeat(3,1fr); gap:38px;} }
.case-grid h4{
  font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); margin:0 0 10px;
}
.case-grid p{font-family:'Newsreader',serif; font-size:16.5px; line-height:1.62; color:var(--ink-soft); margin:0;}
.outcomes{list-style:none; padding:0; margin:26px 0 0; display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--rule);}
@media(min-width:700px){ .outcomes{grid-template-columns:repeat(3,1fr);} }
.outcomes li{padding:18px 20px 18px 0; border-right:1px solid var(--rule);}
.outcomes li:last-child{border-right:0}
@media(max-width:699px){ .outcomes li{border-right:0; border-bottom:1px solid var(--rule);} .outcomes li:last-child{border-bottom:0} }
.outcomes .n{display:block; font-family:'Fraunces',serif; font-size:30px; line-height:1; color:var(--ink); margin-bottom:7px;}
.outcomes .l{font-size:12.5px; color:var(--ink-faint); line-height:1.45;}

/* engagement / pricing table */
.tiers{display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--rule);}
@media(min-width:840px){ .tiers{grid-template-columns:repeat(3,1fr);} }
.tier{padding:30px 26px 30px 0; border-bottom:1px solid var(--rule);}
@media(min-width:840px){
  .tier{border-right:1px solid var(--rule); padding-right:30px;}
  .tier:last-child{border-right:0}
}
.tier h3{font-size:22px; margin:0 0 4px;}
.tier .price{font-family:'Fraunces',serif; font-size:26px; color:var(--accent); margin:0 0 12px; line-height:1.2;}
.tier .price small{display:block; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; color:var(--ink-faint); text-transform:uppercase; margin-top:5px;}
.tier ul{list-style:none; padding:0; margin:0;}
.tier li{font-family:'Newsreader',serif; font-size:16px; line-height:1.55; color:var(--ink-soft); padding-left:18px; position:relative; margin-bottom:9px;}
.tier li::before{content:"—"; position:absolute; left:0; color:var(--accent);}

/* status page */
.status-banner{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  border:1px solid var(--rule-strong); border-left:4px solid var(--st);
  background:var(--paper-2); padding:22px 26px; margin-bottom:8px;
  --st:var(--ok);
}
.status-banner.is-warn{--st:var(--warn)} .status-banner.is-bad{--st:var(--bad)}
.status-banner .big{font-family:'Fraunces',serif; font-size:clamp(21px,3vw,28px); line-height:1.2; margin:0;}
.status-banner .when{font-size:12.5px; color:var(--ink-faint); letter-spacing:.06em;}
.svc-list{border-top:1px solid var(--rule); margin-top:34px;}
.svc-row{
  display:grid; grid-template-columns:1fr auto; gap:6px 20px; align-items:center;
  padding:20px 0; border-bottom:1px solid var(--rule);
}
.svc-row .nm{font-family:'Fraunces',serif; font-size:19px;}
.svc-row .nm small{display:block; font-family:'Inter',sans-serif; font-size:12.5px; color:var(--ink-faint); letter-spacing:.03em; margin-top:3px; text-transform:none;}
.pill{
  display:inline-flex; align-items:center; gap:7px;
  font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--st); --st:var(--ok);
}
.pill::before{content:""; width:8px; height:8px; border-radius:50%; background:currentColor; flex:0 0 auto;}
.pill.is-warn{--st:var(--warn)} .pill.is-bad{--st:var(--bad)} .pill.is-unknown{--st:var(--ink-faint)}
.spark{grid-column:1/-1; display:flex; gap:2px; align-items:flex-end; height:26px; margin-top:4px;}
.spark i{flex:1 1 0; min-width:2px; height:100%; background:var(--ok); opacity:.55; border-radius:1px;}
.spark i.w{background:var(--warn); opacity:.9}
.spark i.b{background:var(--bad); opacity:1}
.spark i.n{background:var(--rule); opacity:.6}
.spark-legend{
  grid-column:1/-1; display:flex; justify-content:space-between;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-top:6px;
}

/* language switch */
.lang{display:flex; gap:10px; align-items:center; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);}
.lang a{text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.lang a[aria-current]{color:var(--ink); border-color:var(--ink);}

/* 404 */
.err-page{padding:110px 0 90px; text-align:center;}
.err-page .code{font-family:'Fraunces',serif; font-size:clamp(70px,14vw,150px); line-height:1; color:var(--ordinal); margin:0;}
.err-page h1{font-size:clamp(27px,4vw,40px); margin:14px 0 18px;}
.err-page .standfirst{margin:0 auto 32px; max-width:52ch;}
.err-page .hero-actions{justify-content:center}
