
:root{--bg:#fff;--text:#0f172a;--muted:#475569;--border:#e2e8f0;--card:#f8fafc;--max:980px;--reading:760px;--radius:14px}
*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial;color:var(--text);background:var(--bg);line-height:1.65}a{color:var(--text)}.wrap{max-width:var(--max);margin:auto;padding:28px 18px 64px}header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--border)}.brand{font-weight:750;text-decoration:none}nav{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;align-items:center}nav a{color:var(--muted);text-decoration:none}nav a:hover{text-decoration:underline;color:var(--text)}.hero{padding:42px 0 20px;max-width:760px}.eyebrow{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}h1{font-size:clamp(31px,5vw,48px);line-height:1.08;letter-spacing:-.035em;margin:0 0 16px}.lead{font-size:18px;color:var(--muted);max-width:67ch}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.article-card{border:1px solid var(--border);border-radius:var(--radius);padding:18px;background:var(--card);display:flex;flex-direction:column}.article-card h2{font-size:18px;line-height:1.25;margin:0 0 9px}.article-card h2 a{text-decoration:none}.article-card h2 a:hover{text-decoration:underline}.article-card p{font-size:14px;color:var(--muted);margin:0 0 14px}.more{margin-top:auto;font-size:14px;font-weight:700;text-decoration:none}.article{max-width:var(--reading);margin:36px 0 0}.article h2{font-size:28px;line-height:1.2;margin:44px 0 12px}.article h3{font-size:21px;line-height:1.3;margin:32px 0 10px}.article p,.article li{font-size:17px}.article li{margin:7px 0}.article blockquote{border-left:3px solid var(--text);margin:24px 0;padding:4px 0 4px 18px;font-size:20px}.article hr{border:0;border-top:1px solid var(--border);margin:40px 0}.article img{max-width:100%}.table-wrap{overflow-x:auto;margin:24px 0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border:1px solid var(--border);padding:10px;text-align:left;vertical-align:top}th{background:var(--card)}.author{max-width:var(--reading);margin:48px 0 0;padding:24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.author-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.author h2{margin:7px 0 8px;font-size:20px}.author p{margin:0;color:var(--muted)}.author a{font-weight:700}.about{max-width:760px}.about h2{margin-top:38px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tag{border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:13px}.cta{padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin-top:38px}footer{margin-top:48px;padding-top:18px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px}.menu-toggle{display:none;border:0;background:transparent;padding:6px 2px;cursor:pointer;color:var(--text)}
.menu-toggle .menu-icon{display:grid;gap:4px;width:22px}
.menu-toggle .menu-icon span{display:block;height:2px;background:currentColor;border-radius:999px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.about .cta{margin-top:48px;position:relative}
.about .cta::before{content:"";position:absolute;left:0;right:0;top:-25px;border-top:1px solid var(--border)}
.about .cta h2{margin:0 0 10px}
.about .cta p{margin:0}
.article-back{max-width:var(--reading);margin:36px 0 0;padding-top:18px;border-top:1px solid var(--border)}
.article-back a{font-size:15px;font-weight:700;text-decoration:none}
.article-back a:hover{text-decoration:underline}
@media(max-width:820px){
  .article-grid{grid-template-columns:1fr}
  .article p,.article li{font-size:16px}
  header{align-items:center;flex-wrap:wrap}
  .menu-toggle{display:block}
  header nav{display:none;width:100%;padding-top:15px;margin-top:4px;border-top:1px solid var(--border);gap:10px 16px}
  header nav.is-open{display:flex}
  .about .hero{padding-top:30px}
  .about .cta{margin-top:42px}
}

/* v8 mobile navigation: keep the navigation fully collapsed until the button is opened. */
@media(max-width:820px){
  header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .brand{min-width:0}
  .menu-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:#fff}
  .menu-toggle .menu-icon{display:grid;gap:4px;width:18px}
  header nav{display:none !important;grid-column:1 / -1;width:100%;padding-top:15px;margin-top:4px;border-top:1px solid var(--border);gap:12px 16px;align-items:center}
  header nav.is-open{display:flex !important}
}


/* v9 article intro divider */
.article-hero{padding-bottom:28px;border-bottom:1px solid var(--border)}
.article-hero .lead{margin-bottom:0}
.article-hero + .article{margin-top:30px}
@media(max-width:820px){
  .article-hero{padding-bottom:24px}
  .article-hero + .article{margin-top:26px}
}

/* v10 about portrait */
.about{max-width:var(--max)}
.about-hero{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:center;padding:42px 0 36px}
.about-hero-copy{min-width:0}
.about-portrait{margin:0;width:100%;justify-self:end}
.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);background:var(--card)}
.about>h2,.about>p,.about>ul,.about>.cta{max-width:760px}
@media(max-width:640px){
  .about-hero{grid-template-columns:1fr;gap:24px;padding-top:30px}
  .about-portrait{width:min(100%,360px);justify-self:start}
}


/* v12 interactive campaigns */
.campaign-page{max-width:var(--max)}
.campaign-hero{max-width:820px;padding-bottom:30px}
.campaign-hero .lead{font-size:19px;max-width:70ch}
.campaign-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.campaign-btn{display:inline-block;padding:10px 14px;border:1px solid var(--text);border-radius:999px;text-decoration:none;font-weight:700;font-size:14px}
.campaign-btn.secondary{border-color:var(--border);color:var(--text)}
.campaign-btn:hover{opacity:.82}
.campaign-section{margin-top:48px;max-width:900px}
.campaign-section>h2{font-size:28px;line-height:1.2;margin:0 0 12px;letter-spacing:-.02em}
.campaign-section>.intro{font-size:17px;color:var(--muted);max-width:72ch;margin:0 0 22px}
.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.campaign-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:20px}
.campaign-card .num{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.campaign-card h2,.campaign-card h3{margin:0 0 9px;font-size:21px;line-height:1.25}
.campaign-card p{margin:0;color:var(--muted)}
.campaign-card ul{margin:14px 0 0;padding-left:19px;color:var(--muted)}
.campaign-card li{margin:7px 0}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:20px}
.flow-step{border-top:2px solid var(--text);padding:11px 4px 0 0;min-width:0}
.flow-step b{display:block;font-size:14px;margin-bottom:4px}
.flow-step span{display:block;color:var(--muted);font-size:13px;line-height:1.45}
.campaign-note{border:1px solid var(--border);border-radius:var(--radius);padding:20px;background:#fff;margin-top:18px;max-width:900px}
.campaign-note h3{margin:0 0 8px;font-size:19px}
.campaign-note p{margin:0;color:var(--muted);max-width:75ch}
.campaign-note p+p{margin-top:10px}
.campaign-example{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border:1px solid var(--border);border-radius:var(--radius);padding:20px;background:var(--card)}
.campaign-example-copy{min-width:0}
.campaign-example h3{margin:0 0 8px;font-size:21px}
.campaign-example p{margin:0;color:var(--muted);max-width:68ch}
.campaign-example .campaign-btn{flex:0 0 auto}
.order-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:18px 0 0;padding:0;list-style:none}
.order-list li{border-top:1px solid var(--border);padding-top:10px;color:var(--muted)}
.order-list b{color:var(--text)}
.campaign-contact{margin-top:52px;padding:24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);max-width:900px}
.campaign-contact h2{margin:0 0 8px;font-size:24px}
.campaign-contact p{margin:0;color:var(--muted);max-width:70ch}
.campaign-contact .campaign-actions{margin-top:16px}
@media(max-width:720px){
  .campaign-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr;gap:14px 12px}
  .flow-step:last-child{grid-column:1/-1}
  .campaign-example{display:block}
  .campaign-example .campaign-btn{margin-top:16px}
  .order-list{grid-template-columns:1fr}
  .campaign-section{margin-top:40px}
}
