:root {
  color-scheme: dark;
  --bg: #06111d;
  --bg-elevated: #0a1725;
  --surface: #0c1b2b;
  --surface-2: #102238;
  --line: #1a3854;
  --line-strong: #24577f;
  --text: #f5f8fb;
  --text-muted: #aab9c8;
  --text-soft: #7890a6;
  --accent: #148cff;
  --accent-strong: #2ea2ff;
  --accent-soft: rgba(20, 140, 255, .12);
  --success: #42d392;
  --shell: 1220px;
  --radius: 20px;
  --tap: 46px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
::selection { background: var(--accent); color: white; }
.shell { width: min(calc(100% - 40px), var(--shell)); margin-inline: auto; }

.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 10px 14px; background: var(--accent); border-radius: 10px; color: #fff; }
.skip-link:focus { top: 16px; }
:focus-visible { outline: 3px solid var(--accent-strong); outline-offset: 4px; border-radius: 8px; }

.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(36,87,127,.45); background: rgba(6,17,29,.9); backdrop-filter: blur(16px); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; }
.brand-mark { width: 42px; height: 42px; display: block; flex: 0 0 auto; border-radius: 12px; background: url("/assets/brand/mark.svg") center / contain no-repeat; }
.brand strong { display: block; font-size: 1rem; text-transform: uppercase; letter-spacing: .07em; }
.brand small { display: block; color: var(--text-soft); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.primary-nav { display: flex; align-items: center; gap: 28px; color: var(--text-muted); font-size: .92rem; }
.primary-nav a { min-height: var(--tap); display: inline-flex; align-items: center; transition: color .18s ease, border-color .18s ease, background .18s ease; }
.primary-nav a:hover { color: var(--text); }
.nav-cta { padding-inline: 18px; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--text) !important; }
.nav-cta:hover { border-color: var(--accent); background: var(--accent-soft); }
.menu-button { display: none; min-height: var(--tap); border: 1px solid var(--line-strong); color: var(--text); background: transparent; border-radius: 10px; padding-inline: 14px; }

.hero { position: relative; isolation: isolate; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 75% 34%, rgba(20,140,255,.12), transparent 32%), linear-gradient(135deg, #06111d 28%, #091a2a 70%, #07131f); }
.topography { position: absolute; z-index: -1; width: 58vw; height: 58vw; right: -12vw; top: -14vw; opacity: .7; border: 1px solid rgba(46,162,255,.16); border-radius: 45% 55% 48% 52%; transform: rotate(-8deg); }
.topography::before, .topography::after { content: ""; position: absolute; border: 1px solid rgba(46,162,255,.15); border-radius: 50% 42% 57% 43%; }
.topography::before { inset: 12%; transform: rotate(11deg); }
.topography::after { inset: 27%; transform: rotate(-15deg); }
.hero-grid { min-height: 690px; padding-block: 104px 86px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 80px; align-items: center; }
.eyebrow { margin: 0 0 18px; color: var(--accent-strong); font-size: .72rem; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; }
.hero h1 { max-width: 850px; margin: 0; font-size: clamp(3rem, 6.3vw, 5.7rem); line-height: .98; letter-spacing: -.055em; font-weight: 720; }
.hero h1 span { color: var(--accent-strong); }
.lede { max-width: 720px; margin: 30px 0 0; color: var(--text-muted); font-size: clamp(1.05rem, 1.6vw, 1.24rem); line-height: 1.65; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.button { min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 20px; border: 1px solid transparent; border-radius: 12px; font-weight: 700; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--accent); color: #fff; }
.button.primary:hover { background: var(--accent-strong); }
.button.secondary { border-color: var(--line-strong); background: rgba(6,17,29,.45); color: var(--text); }
.button.secondary:hover { border-color: var(--accent); background: var(--accent-soft); }

.hero-panel { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(180deg, rgba(16,34,56,.84), rgba(8,24,39,.72)); box-shadow: 0 30px 80px rgba(0,0,0,.2); }
.hero-panel h2 { margin: 0; font-size: 1.75rem; letter-spacing: -.035em; line-height: 1.12; }
.hero-panel > p:not(.eyebrow) { margin: 15px 0 24px; color: var(--text-muted); }
.signal-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.signal-list span { padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-muted); font-size: .8rem; background: rgba(6,17,29,.42); }

.section { padding-block: 104px; border-bottom: 1px solid rgba(26,56,84,.65); }
.section-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 72px; align-items: end; margin-bottom: 44px; }
.section-heading h2, .infra-copy h2, .about-grid h2, .contact-card h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.6rem); line-height: 1.04; letter-spacing: -.045em; }
.section-heading > p { margin: 0; color: var(--text-muted); font-size: 1.02rem; }
.services-section { background: linear-gradient(180deg, #07131f, var(--bg)); }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.service-card { min-height: 220px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-elevated); transition: border-color .18s ease, transform .18s ease; }
.service-card:hover { border-color: var(--line-strong); transform: translateY(-3px); }
.card-index { color: var(--accent-strong); font-size: .76rem; font-weight: 800; letter-spacing: .16em; }
.service-card h3 { margin: 52px 0 8px; font-size: 1.25rem; letter-spacing: -.025em; }
.service-card p { margin: 0; color: var(--text-muted); font-size: .92rem; }

.proof-strip { margin-top: 16px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.proof-strip div { padding: 18px 20px; background: rgba(10,23,37,.5); }
.proof-strip div + div { border-left: 1px solid var(--line); }
.proof-strip strong, .proof-strip span { display: block; }
.proof-strip strong { font-size: .92rem; }
.proof-strip span { margin-top: 3px; color: var(--text-soft); font-size: .76rem; }

.case-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.case-card { padding: 12px 12px 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg-elevated); }
.case-visual { position: relative; height: 170px; overflow: hidden; border: 1px solid rgba(36,87,127,.6); border-radius: 12px; background: #0e2033; }
.case-visual span { position: absolute; left: 20px; top: 18px; z-index: 2; color: white; font-size: 2rem; font-weight: 800; letter-spacing: -.08em; }
.case-visual i { position: absolute; display: block; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.035); border-radius: 8px; }
.case-visual i:nth-of-type(1) { left: 20px; right: 20px; top: 66px; height: 34px; }
.case-visual i:nth-of-type(2) { left: 20px; width: 42%; bottom: 18px; height: 34px; }
.case-visual i:nth-of-type(3) { right: 20px; width: 36%; bottom: 18px; height: 34px; }
.case-news { background: linear-gradient(145deg, #123a66, #0a1828 65%); }
.case-fit { background: linear-gradient(145deg, #0f4050, #0a1828 65%); }
.case-rose { background: linear-gradient(145deg, #4a2638, #0a1828 68%); }
.case-portal { background: linear-gradient(145deg, #45251b, #0a1828 68%); }

.case-kicker { margin: 18px 8px 2px; color: var(--accent-strong); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.case-card h3 { margin: 0 8px 7px; font-size: 1.35rem; letter-spacing: -.03em; }
.case-card > p:not(.case-kicker) { min-height: 92px; margin: 0 8px 16px; color: var(--text-muted); font-size: .9rem; }
.case-card > a { min-height: var(--tap); margin: 0 8px; display: inline-flex; align-items: center; gap: 8px; color: var(--text); font-size: .86rem; font-weight: 700; }
.case-card > a span { color: var(--accent-strong); }

.infra-section { background: #071522; }
.infra-layout { display: grid; grid-template-columns: .8fr 1.4fr; gap: 70px; align-items: center; }
.infra-copy p:last-child { color: var(--text-muted); margin: 24px 0 0; }
.architecture { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.architecture > b { color: var(--accent); font-weight: 500; }
.arch-node { min-height: 128px; padding: 16px 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-elevated); display: flex; flex-direction: column; justify-content: space-between; }
.arch-node span { color: var(--accent-strong); font-size: .68rem; letter-spacing: .1em; }
.arch-node strong { font-size: .9rem; }
.arch-node small { color: var(--text-soft); font-size: .7rem; line-height: 1.3; }

.about-section { background: linear-gradient(180deg, var(--bg), #07131f); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: start; }
.about-copy { padding-top: 16px; }
.about-copy p { margin: 0 0 18px; color: var(--text-muted); font-size: 1.08rem; }

.contact-section { padding-block: 76px; }
.contact-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.35fr .65fr; gap: 60px; align-items: center; padding: 42px; border: 1px solid var(--line-strong); border-radius: 22px; background: linear-gradient(120deg, #0b1d2f, #0d2740); }
.contact-card::after { content: ""; position: absolute; width: 320px; height: 320px; right: -140px; bottom: -220px; border: 1px solid rgba(46,162,255,.22); border-radius: 44% 56% 50% 50%; }
.contact-card h2 { max-width: 740px; }
.contact-card p:last-child { color: var(--text-muted); margin-bottom: 0; }
.contact-actions { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 12px; }
.contact-actions > span { color: var(--text-soft); font-size: .8rem; text-align: center; }

.site-footer { padding-block: 36px 24px; background: #050e17; }
.footer-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 32px; align-items: center; }
.footer-brand { justify-self: start; }
.footer-grid nav { display: flex; gap: 20px; color: var(--text-muted); font-size: .82rem; }
.footer-grid nav a { min-height: var(--tap); display: inline-flex; align-items: center; }
.footer-grid > p { justify-self: end; margin: 0; color: var(--text-muted); font-size: .82rem; text-align: right; }
.footer-grid > p span { color: var(--text-soft); }
.footer-bottom { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 20px; color: var(--text-soft); font-size: .75rem; }

@media (max-width: 1080px) {
  .service-grid, .case-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-strip { grid-template-columns: repeat(2, 1fr); }
  .proof-strip div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .proof-strip div:nth-child(4) { border-top: 1px solid var(--line); }
  .infra-layout { grid-template-columns: 1fr; }
  .architecture { max-width: 900px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid nav { order: 3; grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .shell { width: min(calc(100% - 36px), var(--shell)); }
  .nav-wrap { min-height: 68px; flex-wrap: wrap; padding-block: 10px; }
  .brand small { display: none; }
  .menu-button { display: inline-flex; align-items: center; }
  .primary-nav { width: 100%; display: none; padding: 8px 0 12px; flex-direction: column; align-items: stretch; gap: 2px; }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding-inline: 10px; border-radius: 8px; }
  .nav-cta { margin-top: 6px; justify-content: center; }
  .hero-grid { min-height: auto; padding-block: 74px 64px; grid-template-columns: 1fr; gap: 38px; }
  .hero h1 { font-size: clamp(2.7rem, 12vw, 4.7rem); }
  .hero-panel { max-width: 560px; }
  .section { padding-block: 76px; }
  .section-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 32px; }
  .architecture { grid-template-columns: 1fr; gap: 8px; }
  .architecture > b { transform: rotate(90deg); justify-self: center; line-height: 1; }
  .arch-node { min-height: 96px; }
  .about-grid, .contact-card { grid-template-columns: 1fr; gap: 28px; }
  .contact-card { padding: 30px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid nav { grid-column: auto; flex-wrap: wrap; }
  .footer-grid > p { justify-self: start; text-align: left; }
}

@media (max-width: 620px) {
  .shell { width: min(calc(100% - 32px), var(--shell)); }
  .brand-mark { width: 38px; height: 38px; }
  .hero-grid { padding-block: 62px 54px; }
  .hero h1 { font-size: clamp(2.55rem, 13.8vw, 4rem); }
  .lede { margin-top: 24px; }
  .hero-actions, .hero-actions .button { width: 100%; }
  .signal-list { grid-template-columns: 1fr; }
  .service-grid, .case-grid, .proof-strip { grid-template-columns: 1fr; }
  .proof-strip div + div { border-left: 0; border-top: 1px solid var(--line); }
  .service-card { min-height: 190px; }
  .service-card h3 { margin-top: 38px; }
  .case-card > p:not(.case-kicker) { min-height: auto; }
  .contact-card { padding: 26px 22px; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 420px) {
  .hero h1 { font-size: clamp(2.35rem, 11.6vw, 3.2rem); }
}

.contact-email { min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center; color: var(--accent); font-size: .9rem; text-align: center; }
.contact-email:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-grid > p a { color: var(--text-muted); text-decoration: none; }
.footer-grid > p a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }

.case-shot { padding: 0; background: #07131f; }
.case-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }

/* Case pages */
.case-page .site-header { position: sticky; }
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 44px; color: var(--text-soft); font-size: .82rem; }
.breadcrumb a:hover { color: var(--text); }
.breadcrumb span[aria-current="page"] { color: var(--text-muted); }
.case-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: 70px 94px; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 80% 30%, rgba(20,140,255,.1), transparent 35%), linear-gradient(135deg, #06111d, #091a2a); }
.case-hero .topography { right: -18vw; top: -28vw; }
.case-hero h1 { max-width: 920px; margin: 0; font-size: clamp(3.4rem, 7vw, 6.5rem); line-height: .94; letter-spacing: -.06em; }
.case-hero-title { max-width: 850px; margin: 28px 0 0; color: var(--text-muted); font-size: clamp(1.25rem, 2.3vw, 1.75rem); line-height: 1.45; }
.case-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.case-summary-section { background: linear-gradient(180deg, #07131f, var(--bg)); }
.case-summary-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: start; }
.case-summary-grid h2, .case-result-card h2 { margin: 0; font-size: clamp(2.25rem, 4.2vw, 3.8rem); line-height: 1.03; letter-spacing: -.05em; }
.case-summary-copy p { margin: 0 0 22px; color: var(--text-muted); font-size: 1.08rem; }
.case-page-media { width: min(calc(100% - 40px), var(--shell)); max-height: 630px; margin: 56px auto 0; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--bg-elevated); box-shadow: 0 30px 80px rgba(0,0,0,.2); }
.case-page-media img { display: block; width: 100%; height: auto; max-height: 630px; object-fit: cover; object-position: top center; }
.case-page-abstract { position: relative; min-height: 420px; background: radial-gradient(circle at 70% 40%, rgba(20,140,255,.16), transparent 30%), linear-gradient(145deg, #123a66, #0a1828 68%); }
.case-page-abstract span { position: absolute; left: 7%; top: 14%; font-size: clamp(4rem, 11vw, 9rem); font-weight: 800; letter-spacing: -.08em; color: #fff; }
.case-page-abstract i { position: absolute; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); transform-origin: left center; }
.case-page-abstract i:nth-of-type(1) { left: 36%; top: 31%; width: 50%; transform: rotate(-8deg); }
.case-page-abstract i:nth-of-type(2) { left: 22%; top: 55%; width: 62%; transform: rotate(5deg); }
.case-page-abstract i:nth-of-type(3) { left: 44%; top: 75%; width: 38%; transform: rotate(-4deg); }
.case-built-section { background: var(--bg); }
.case-detail-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.case-detail-card { min-height: 250px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-elevated); }
.case-detail-card > span { color: var(--accent-strong); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.case-detail-card h3 { margin: 48px 0 9px; font-size: 1.2rem; letter-spacing: -.025em; }
.case-detail-card p { margin: 0; color: var(--text-muted); font-size: .9rem; }
.case-decision-section { background: linear-gradient(180deg, #07131f, #081725); }
.case-decision-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: start; }
.case-decision-grid h2 { margin: 0; font-size: clamp(2.25rem, 4.2vw, 3.8rem); line-height: 1.03; letter-spacing: -.05em; }
.case-decision-grid > p { margin: 0; color: var(--text-muted); font-size: 1.08rem; }
.case-flow-section { background: #071522; }
.case-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr; gap: 12px; align-items: center; }
.case-flow > b { color: var(--accent); font-weight: 500; }
.case-flow-node { min-height: 122px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-elevated); }
.case-flow-node span { color: var(--accent-strong); font-size: .68rem; letter-spacing: .12em; }
.case-flow-node strong { font-size: .92rem; }
.case-result-section { background: linear-gradient(180deg, var(--bg), #07131f); }
.case-result-card { display: grid; grid-template-columns: 1fr 1fr; gap: 84px; padding: 48px; border: 1px solid var(--line-strong); border-radius: 22px; background: linear-gradient(120deg, #0b1d2f, #0b2034); }
.case-result-card > p { margin: 0; align-self: center; color: var(--text-muted); font-size: 1.08rem; }
.footer-brand .brand { min-width: 0; }

@media (max-width: 980px) {
  .case-summary-grid, .case-decision-grid, .case-result-card { grid-template-columns: 1fr; gap: 28px; }
  .case-detail-grid { grid-template-columns: repeat(2, 1fr); }
  .case-flow { grid-template-columns: 1fr; gap: 8px; }
  .case-flow > b { transform: rotate(90deg); justify-self: center; line-height: 1; }
  .case-flow-node { min-height: 92px; }
}
@media (max-width: 620px) {
  .case-hero { padding-block: 42px 64px; }
  .breadcrumb { margin-bottom: 32px; }
  .case-hero h1 { font-size: clamp(2.9rem, 15vw, 4.1rem); }
  .case-hero-title { font-size: 1.18rem; }
  .case-hero-actions, .case-hero-actions .button { width: 100%; }
  .case-page-media { width: min(calc(100% - 32px), var(--shell)); margin-top: 34px; border-radius: 16px; }
  .case-page-abstract { min-height: 280px; }
  .case-detail-grid { grid-template-columns: 1fr; }
  .case-detail-card { min-height: 205px; }
  .case-detail-card h3 { margin-top: 34px; }
  .case-result-card { padding: 28px 22px; }
}

/* Error page */
.error-page { min-height: 100dvh; display: grid; place-items: center; padding-block: 48px; background: radial-gradient(circle at 72% 25%, rgba(20,140,255,.12), transparent 34%), var(--bg); }
.error-card { max-width: 760px; padding: 48px; border: 1px solid var(--line); border-radius: 24px; background: var(--bg-elevated); }
.error-card > img { display: block; width: 64px; height: 64px; margin-bottom: 30px; }
.error-card h1 { margin: 0; font-size: clamp(3rem, 7vw, 5.5rem); line-height: .96; letter-spacing: -.055em; }
.error-card > p:not(.eyebrow) { max-width: 620px; color: var(--text-muted); font-size: 1.05rem; }
@media (max-width: 620px) { .error-card { padding: 30px 24px; } }

/* service pages + evidence */
.service-hero { position:relative; overflow:hidden; padding-block:92px 86px; border-bottom:1px solid var(--line); background:linear-gradient(135deg,#06111d 28%,#091a2a 76%); }
.service-hero .topography { top:-300px; right:-240px; }
.service-hero .breadcrumb { margin-bottom:42px; }
.service-hero h1 { max-width:900px; margin:0; font-size:clamp(3rem,6vw,5.4rem); line-height:.98; letter-spacing:-.055em; }
.service-intro { max-width:780px; margin:28px 0 0; color:var(--text-muted); font-size:clamp(1.05rem,1.7vw,1.28rem); }
.service-two-col, .service-process { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:start; }
.service-two-col h2, .service-process h2 { margin:0; font-size:clamp(2.2rem,4vw,3.6rem); line-height:1.04; letter-spacing:-.045em; }
.service-fit-list { margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.service-fit-list li { padding:18px 20px 18px 48px; border:1px solid var(--line); border-radius:14px; background:var(--bg-elevated); color:var(--text-muted); position:relative; }
.service-fit-list li::before { content:'✓'; position:absolute; left:20px; color:var(--success); font-weight:800; }
.service-scope { background:#071522; }
.service-detail-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.service-detail-grid article { min-height:210px; padding:24px; border:1px solid var(--line); border-radius:16px; background:var(--bg-elevated); }
.service-detail-grid article span { color:var(--accent-strong); font-size:.72rem; font-weight:800; letter-spacing:.14em; }
.service-detail-grid h3 { margin:48px 0 8px; font-size:1.18rem; }
.service-detail-grid p, .service-process > p { margin:0; color:var(--text-muted); }
.related-cases { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.related-case { min-height:120px; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--bg-elevated); display:grid; grid-template-columns:1fr auto; align-items:end; gap:6px 18px; }
.related-case span { grid-column:1/-1; color:var(--accent-strong); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; }
.related-case strong { font-size:1.25rem; }
.related-case b { color:var(--accent-strong); }
.service-hub-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.service-hub-card { min-height:260px; padding:28px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(180deg,var(--bg-elevated),#081522); transition:transform .18s ease,border-color .18s ease; }
.service-hub-card:hover { transform:translateY(-3px); border-color:var(--line-strong); }
.service-hub-card > span { color:var(--accent-strong); font-size:.72rem; font-weight:800; letter-spacing:.15em; }
.service-hub-card h2 { margin:54px 0 10px; font-size:1.65rem; letter-spacing:-.035em; }
.service-hub-card p { margin:0 0 24px; color:var(--text-muted); }
.service-hub-card b { color:var(--text); font-size:.9rem; }
.service-card-link { display:block; color:inherit; }
.service-card-link::after { content:'Ver serviço →'; display:block; margin-top:18px; color:var(--accent-strong); font-size:.8rem; font-weight:700; }
.case-proof-section { background:#071522; }
.case-proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.case-proof-grid div { min-height:128px; padding:22px; border:1px solid var(--line-strong); border-radius:16px; background:linear-gradient(180deg,#0b1d2f,#081522); }
.case-proof-grid strong { display:block; color:var(--text); font-size:clamp(1.7rem,3vw,2.5rem); line-height:1; letter-spacing:-.04em; }
.case-proof-grid span { display:block; margin-top:12px; color:var(--text-muted); font-size:.82rem; line-height:1.4; }
@media (min-width:1081px) { .services-section .service-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:820px) { .service-two-col,.service-process { grid-template-columns:1fr; gap:28px; } .service-detail-grid { grid-template-columns:repeat(2,1fr); } .service-hub-grid { grid-template-columns:1fr; } .case-proof-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .service-hero { padding-block:68px 58px; } .service-hero h1 { font-size:clamp(2.55rem,13vw,4rem); } .service-detail-grid { grid-template-columns:1fr; } .related-cases { grid-template-columns:1fr; } }

/* v4 — direção editorial/humana */
:root { --radius: 12px; --bg: #07111c; --bg-elevated: #0a1622; --surface: #0d1b28; }
.site-header { background: rgba(7,17,28,.97); backdrop-filter: none; }
.brand.wordmark { gap: 0; }
.brand.wordmark strong, .footer-brand.wordmark strong { font-size: 1.02rem; font-weight: 780; letter-spacing: .105em; text-transform: uppercase; }
.brand.wordmark small, .footer-brand.wordmark small { margin-top: 2px; color: var(--text-soft); font-size: .56rem; letter-spacing: .08em; text-transform: none; }
.brand-mark { display: none !important; }
.button { border-radius: 8px; }
.nav-cta, .menu-button { border-radius: 8px; }
.topography, .hero::before { display: none; }
.hero, .service-hero, .case-hero { background: var(--bg); }
.service-card, .case-card, .case-detail-card, .service-detail-grid article, .service-hub-card, .related-case { border-radius: 10px; box-shadow: none; }

.human-hero { border-bottom: 1px solid var(--line); }
.human-hero-inner { max-width: 1040px; padding-block: 118px 104px; }
.hero-location { margin: 0 0 24px; color: var(--text-soft); font-size: .84rem; letter-spacing: .06em; }
.human-hero h1 { max-width: 980px; font-size: clamp(3.1rem, 7vw, 6.4rem); line-height: .94; letter-spacing: -.06em; }
.human-hero .lede { max-width: 800px; font-size: clamp(1.14rem, 2vw, 1.38rem); }
.hero-note { margin: 18px 0 0; color: var(--text-soft); font-size: .86rem; }
.editorial-heading { align-items: start; }
.editorial-heading h2 { max-width: 820px; }

.problem-section { background: #081522; }
.problem-list { border-top: 1px solid var(--line); }
.problem-row { display: grid; grid-template-columns: 70px 1fr; gap: 22px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.problem-row > span { color: var(--accent-strong); font-size: .72rem; font-weight: 800; letter-spacing: .14em; padding-top: 6px; }
.problem-row h3 { margin: 0; font-size: clamp(1.25rem, 2.5vw, 1.75rem); letter-spacing: -.035em; }
.problem-row p { max-width: 800px; margin: 8px 0 0; color: var(--text-muted); }

.cases-editorial { background: var(--bg); }
.case-story { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; align-items: center; padding: 52px 0; border-top: 1px solid var(--line); }
.case-story:last-of-type { border-bottom: 1px solid var(--line); }
.case-story.reverse .case-story-media { order: 2; }
.case-story-media { overflow: hidden; border: 1px solid var(--line); background: #0b1825; aspect-ratio: 16 / 10; }
.case-story-media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top; }
.case-story-abstract { display: grid; place-items: center; background: #0b1825; }
.case-story-abstract span { font-size: clamp(2.4rem,5vw,4.4rem); font-weight: 760; letter-spacing: -.055em; }
.case-story-copy h3 { margin: 4px 0 20px; font-size: clamp(1.8rem,3.4vw,3rem); line-height: 1.06; letter-spacing: -.045em; }
.case-story-copy p { margin: 0 0 14px; color: var(--text-muted); }
.case-story-copy p strong { color: var(--text); }
.case-story-copy a { display: inline-flex; min-height: var(--tap); align-items: center; margin-top: 8px; color: var(--accent-strong); font-weight: 720; }
.proof-caption { margin: 22px 0 0; color: var(--text-soft); font-size: .8rem; }
.proof-caption a { text-decoration: underline; text-underline-offset: 3px; }

.founder-section { background: #f2f0ea; color: #102030; }
.founder-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.founder-section .eyebrow { color: #0b6fca; }
.founder-name { margin: 0; font-size: clamp(2.4rem,5vw,4.7rem); line-height: .98; letter-spacing: -.055em; font-weight: 760; }
.founder-role { margin: 14px 0 0; color: #5d6975; }
.founder-copy h2 { margin: 0 0 24px; font-size: clamp(2rem,3.5vw,3.2rem); line-height: 1.05; letter-spacing: -.045em; }
.founder-copy p { margin: 0 0 18px; color: #45525e; font-size: 1.06rem; }
.founder-copy a { color: #075da9; font-weight: 720; }

.human-services { background: var(--bg); }
.human-service-list { border-top: 1px solid var(--line); }
.human-service-list > a { display: grid; grid-template-columns: 70px 1fr auto; gap: 22px; align-items: center; padding: 25px 0; border-bottom: 1px solid var(--line); }
.human-service-list > a > span { color: var(--accent-strong); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.human-service-list h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.03em; }
.human-service-list p { margin: 5px 0 0; color: var(--text-muted); }
.human-service-list b { color: var(--accent-strong); font-size: 1.3rem; }
.text-link { display: inline-flex; align-items: center; min-height: var(--tap); margin-top: 24px; color: var(--accent-strong); font-weight: 720; }

.process-section { background: #081522; }
.process-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-list li { min-height: 240px; padding: 25px 22px; }
.process-list li + li { border-left: 1px solid var(--line); }
.process-list span { color: var(--accent-strong); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.process-list h3 { margin: 48px 0 10px; font-size: 1.18rem; line-height: 1.25; }
.process-list p { margin: 0; color: var(--text-muted); font-size: .9rem; }

.content-preview { background: var(--bg); }
.content-grid, .content-hub-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.content-card { min-height: 260px; padding: 26px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: transparent; }
.content-card > span { color: var(--accent-strong); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.content-card h3, .content-card h2 { margin: 38px 0 12px; font-size: 1.42rem; line-height: 1.15; letter-spacing: -.035em; }
.content-card p { margin: 0 0 22px; color: var(--text-muted); }
.content-card b { color: var(--accent-strong); font-size: .86rem; }
.human-contact { background: #0a1a28; }
.human-contact-inner { display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; align-items: center; }
.human-contact h2 { max-width: 780px; margin: 0; font-size: clamp(2.2rem,4.2vw,3.8rem); line-height: 1.02; letter-spacing: -.05em; }
.human-contact p:not(.eyebrow) { max-width: 720px; color: var(--text-muted); }

.content-hub-hero, .local-hero { padding-block: 94px 82px; border-bottom: 1px solid var(--line); background: var(--bg); }
.content-hub-hero h1, .local-hero h1 { max-width: 940px; margin: 0; font-size: clamp(3rem,6.6vw,5.8rem); line-height: .96; letter-spacing: -.055em; }
.content-hub-hero p:last-child, .local-hero p:not(.eyebrow) { max-width: 790px; margin: 28px 0 0; color: var(--text-muted); font-size: 1.18rem; }
.shell-narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.article-header { padding-block: 86px 48px; }
.article-header h1 { margin: 0; font-size: clamp(2.7rem,6vw,5rem); line-height: .98; letter-spacing: -.055em; }
.article-intro { margin: 28px 0 0; color: var(--text-muted); font-size: 1.2rem; line-height: 1.65; }
.article-body { padding-bottom: 90px; }
.article-body > section { padding: 42px 0; border-top: 1px solid var(--line); }
.article-body h2 { margin: 0 0 20px; font-size: clamp(1.65rem,3vw,2.4rem); line-height: 1.1; letter-spacing: -.04em; }
.article-body p { margin: 0 0 18px; color: var(--text-muted); font-size: 1.06rem; line-height: 1.75; }
.article-cta { margin-top: 28px; padding: 32px 0; border-top: 2px solid var(--accent); }
.article-cta h2 { margin-top: 0; }

.local-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; align-items: end; }
.local-hero aside { display: grid; gap: 8px; padding: 22px 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.local-hero aside strong { font-size: 1.35rem; }
.local-hero aside span { color: var(--text-muted); font-size: .9rem; }
.local-copy, .local-proof { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.local-copy h2, .local-proof h2 { margin: 0; font-size: clamp(2.2rem,4vw,3.5rem); line-height: 1.04; letter-spacing: -.045em; }
.local-copy p, .local-proof p { margin: 0 0 18px; color: var(--text-muted); }
.local-services { background: #081522; }
.local-services > .shell > h2 { margin: 0 0 32px; font-size: clamp(2rem,4vw,3.2rem); }
.local-proof > div:last-child { display: grid; align-content: start; border-top: 1px solid var(--line); }
.local-proof > div:last-child a { min-height: 58px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); color: var(--accent-strong); font-weight: 700; }

.case-hero, .service-hero { background: var(--bg) !important; }
.case-hero .topography, .service-hero .topography { display: none !important; }
.case-page-abstract { background: #0b1825; }
.contact-card { border-radius: 10px; background: #0a1a28; }
.contact-card::after { display:none; }

@media (max-width: 900px) {
  .case-story, .case-story.reverse, .founder-grid, .human-contact-inner, .local-hero-grid, .local-copy, .local-proof { grid-template-columns: 1fr; gap: 34px; }
  .case-story.reverse .case-story-media { order: 0; }
  .process-list { grid-template-columns: 1fr 1fr; }
  .process-list li:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .process-list li:nth-child(4) { border-top: 1px solid var(--line); }
  .content-grid, .content-hub-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .human-hero-inner { padding-block: 72px 62px; }
  .human-hero h1 { font-size: clamp(2.65rem,13.5vw,4.1rem); }
  .problem-row, .human-service-list > a { grid-template-columns: 44px 1fr; gap: 12px; }
  .human-service-list > a > b { display:none; }
  .process-list, .content-grid, .content-hub-grid { grid-template-columns: 1fr; }
  .process-list li + li { border-left: 0; border-top: 1px solid var(--line); }
  .founder-grid { gap: 28px; }
  .case-story { padding: 36px 0; gap: 26px; }
  .shell-narrow { width: min(calc(100% - 32px), 820px); }
  .article-header { padding-block: 58px 36px; }
  .content-hub-hero, .local-hero { padding-block: 66px 58px; }
}

/* ajustes finais da wordmark */
.brand.wordmark { flex-direction: column; align-items: flex-start; justify-content: center; }
.brand.wordmark strong, .brand.wordmark small, .footer-brand.wordmark strong, .footer-brand.wordmark small { display: block; }
.footer-brand.wordmark { display: block; }
.human-hero h1 { max-width: 940px; font-size: clamp(3.1rem, 6.2vw, 5.6rem); line-height: .97; }
@media (max-width: 820px) { .brand.wordmark small { display: none; } }
@media (max-width: 620px) { .human-hero h1 { font-size: clamp(2.65rem, 13.5vw, 4.1rem); } }
.content-hub-about { max-width: 820px; margin-top: 18px; color: var(--text-muted); }
