:root {
  --s-ink: #17171b;
  --s-paper: #f3efe6;
  --s-paper-2: #e8e1d5;
  --s-coral: #ff4d3d;
  --s-blue: #315cff;
  --s-teal: #0ba7a5;
  --s-line: rgba(23, 23, 27, .18);
  --s-muted: #68645e;
}

body { background: var(--s-paper); color: var(--s-ink); }
.topbar { background: rgba(243, 239, 230, .92); border-bottom-color: var(--s-line); backdrop-filter: blur(18px); position: sticky; top: 0; }
.brand-mark { fill: var(--s-blue); }
.brand-mark circle { fill: var(--s-coral); }
.topbar nav a { color: #5f5b56; }
.topbar nav a:hover, .topbar nav a[aria-current=page] { color: var(--s-ink); }
.topbar .nav-cta, .menu-toggle { color: var(--s-ink); border-color: #17171b66; }

.hero { isolation: isolate; }
.hero::before {
  content: "";
  position: absolute;
  width: 48vw;
  height: 48vw;
  right: -17vw;
  top: -20vw;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 38%, #ff4d3d99, transparent 38%), radial-gradient(circle at 66% 60%, #315cff88, transparent 42%);
  filter: blur(32px);
  opacity: .8;
  z-index: -2;
}
.hero h1 span, .page-hero h1 span, .contact-page h1 span { color: var(--s-blue); }
.eyebrow, .section-no { color: #6f6962; }
.hero-bottom p, .large-copy, .page-hero > p:last-child, .case-lead, .service-lead, .insight-lead { color: #5c5852; }
.round-link, .service-cta { background: var(--s-coral); color: #fff; }
.signal { opacity: .32; }
.signal i { background: linear-gradient(var(--s-blue), var(--s-coral)); }
.ticker { background: var(--s-blue); color: #fff; border-color: transparent; }

.intro, .manifesto, .case-story, .about-copy, .service-context, .service-method, .case-system { border-color: var(--s-line); }
.case-list, .case-row, .services-list, .services-list article, .result-list, .result-list div, .faq details { border-color: var(--s-line); }
.case-row::before { background: linear-gradient(90deg, var(--accent), var(--s-coral)); }
.case-type, .case-card > span, .showcase-copy p, .services-list p, .principles p, .cap-grid p, .process li p, .insight-body p, .faq details p { color: var(--s-muted); }

.cap-grid, .cases-grid, .principles, .process ol, .need-grid, .insights-grid, .system-grid { background: var(--s-line); border-color: var(--s-line); }
.cap-grid article, .case-card, .principles article, .process li, .need-grid article, .insights-grid a, .system-grid div { background: var(--s-paper); }
.cap-grid article > span, .services-list article > span, .principles article > span, .process li span, .need-grid span, .result-list span, .system-grid span { color: var(--s-coral); }
.cap-grid small { display: block; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--s-line); color: var(--s-blue); font-size: 11px; line-height: 1.5; text-transform: uppercase; letter-spacing: .08em; }

.case-card:hover { color: var(--s-ink); }
.case-card:hover p, .case-card:hover > span { color: var(--s-ink); }
.showcase-card { background: #fffaf2; border-color: var(--s-line); }
.showcase-media { background: var(--s-paper-2); }
.showcase-copy > span, .case-outcome span, .after-contact span { color: var(--s-blue); }
.case-detail::after { background: linear-gradient(135deg, var(--accent), var(--s-blue)); opacity: .13; }
.scope span { border-color: #17171b3b; }
.case-visual, .case-gallery figure { background: var(--s-paper-2); }
.case-outcome { border-color: var(--s-line); }
.case-outcome p { color: var(--s-ink); }
.case-gallery .section-head > p:last-child { color: var(--s-muted); }

.practice { padding: 30px 0 160px; }
.practice-head { display: grid; grid-template-columns: 230px 1fr 1fr; gap: 56px; align-items: start; margin-bottom: 58px; }
.practice-head h2 { margin: 0; font-size: clamp(44px, 6vw, 84px); line-height: .94; letter-spacing: -.055em; }
.practice-head > p:last-child { margin: 0; font-size: 19px; color: var(--s-muted); }
.practice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--s-line); border: 1px solid var(--s-line); }
.practice-grid article { background: var(--s-paper); padding: 32px; min-height: 360px; display: flex; flex-direction: column; }
.practice-grid article > span { color: var(--s-coral); font-size: 11px; }
.practice-grid h3 { font-size: 30px; line-height: 1.04; letter-spacing: -.035em; margin: 55px 0 16px; }
.practice-grid p { color: var(--s-muted); }
.practice-grid article > div { margin-top: auto; display: flex; flex-wrap: wrap; gap: 7px; }
.practice-grid em { font-style: normal; font-size: 11px; padding: 7px 10px; border: 1px solid var(--s-line); border-radius: 999px; }

.cta { background: var(--s-coral); color: #fff; }
.contact-form { border-color: var(--s-line); }
.contact-form label { color: #67625d; }
.contact-form input:not([type=checkbox]), .contact-form textarea { color: var(--s-ink); border-bottom-color: #17171b55; }
.contact-form button { background: var(--s-blue); color: #fff; }
.contact-form input::placeholder { color: #8d8780; }
.after-contact { border-color: var(--s-line); }
.after-contact p { color: var(--s-muted) !important; }
.insight-body aside { background: var(--s-blue); color: #fff; }
.insight-body aside p { color: #fff; }

footer { background: #17171b; color: #f7f3eb; }
.footer-grid > div { color: #b8b3aa; }
.footer-bottom { border-color: #ffffff24; color: #8f8a83; }
.footer-brand .brand-mark { fill: var(--s-coral); }
.footer-brand .brand-mark circle { fill: var(--s-blue); }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline-color: var(--s-blue); }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { border-bottom-color: var(--s-blue); box-shadow: 0 2px 0 var(--s-blue); }

@media (max-width: 900px) {
  .topbar nav { background: var(--s-paper); border-bottom-color: var(--s-line); }
  .practice-head { grid-template-columns: 1fr; gap: 22px; }
  .practice-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .practice { padding-bottom: 100px; }
  .practice-grid { grid-template-columns: 1fr; }
  .practice-grid article { min-height: 300px; }
}
