

:root {
  --paper: #f3f1eb;
  --white: #fbfaf7;
  --ink: #111111;
  --ink-2: #1b1b1b;
  --muted: #5d5d58;
  --line: #cbc9c2;
  --line-dark: #343434;
  --blue: #2457ff;
  --blue-hover: #163fd1;
  --focus: #2457ff;
  --max: 1440px;
  --gutter: clamp(20px, 4vw, 64px);
  --ease: cubic-bezier(.2,.75,.25,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); overflow-x: clip; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Manrope, Arial, sans-serif; line-height: 1.5; text-rendering: optimizeLegibility; overflow-x: clip; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button,input,textarea,select { font: inherit; }
button { color: inherit; }
img,svg { display:block; max-width:100%; }
::selection { color:#fff; background:var(--blue); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:12px 16px; color:white; background:var(--blue); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.page { width:min(100%,var(--max)); margin-inline:auto; padding-inline:var(--gutter); }
.mono { font-family:'IBM Plex Mono',Consolas,monospace; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.overline { display:flex; align-items:center; gap:12px; margin:0 0 28px; font-family:'IBM Plex Mono',Consolas,monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.overline::before { content:""; width:28px; height:1px; background:currentColor; }
.display { max-width:1180px; margin:0; font-size:clamp(3.55rem,8vw,8.35rem); font-weight:300; line-height:.92; letter-spacing:-.075em; text-wrap:balance; }
.page-title { max-width:1180px; margin:0; font-size:clamp(3.1rem,7vw,7.5rem); font-weight:300; line-height:.94; letter-spacing:-.068em; text-wrap:balance; }
.section-title { margin:0; font-size:clamp(2.25rem,4.3vw,4.6rem); font-weight:300; line-height:1.02; letter-spacing:-.05em; text-wrap:balance; }
.body-large { font-size:clamp(1.08rem,1.7vw,1.4rem); line-height:1.55; letter-spacing:-.016em; }
.muted { color:var(--muted); }
.blue { color:var(--blue); }

/* Header */
.site-header { position:sticky; top:0; z-index:50; height:80px; background:rgba(243,241,235,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.nav { height:100%; display:grid; grid-template-columns:minmax(220px,1fr) auto; align-items:center; }
.brand { display:flex; align-items:center; gap:13px; width:max-content; }
.brand-mark { width:32px; height:32px; position:relative; background:url('mark.svg?v=2') center/contain no-repeat; }
.brand-mark::before,.brand-mark::after { display:none; }
.brand-name { font-size:.98rem; font-weight:700; letter-spacing:-.03em; }
.brand-note { display:block; color:var(--muted); font:400 .58rem/1.2 'IBM Plex Mono',Consolas,monospace; letter-spacing:.05em; text-transform:uppercase; }
.nav-panel { display:flex; align-items:stretch; height:100%; }
.nav-panel a { min-width:110px; height:100%; display:grid; place-items:center; padding:0 18px; border-left:1px solid var(--line); font-size:.78rem; font-weight:600; transition:background .18s,color .18s; }
.nav-panel a:hover,.nav-panel a[aria-current="page"] { background:var(--ink); color:var(--paper); }
.nav-panel .nav-contact { color:white; background:var(--blue); border-left:0; }
.nav-panel .nav-contact:hover,.nav-panel .nav-contact[aria-current="page"] { background:var(--blue-hover); }
.menu-toggle { display:none; width:52px; height:52px; border:0; border-left:1px solid var(--line); background:transparent; cursor:pointer; }
.menu-toggle i,.menu-toggle i::before { display:block; width:20px; height:1px; background:currentColor; content:""; margin:auto; transition:.2s; }
.menu-toggle i::before { transform:translateY(6px); }
.menu-toggle[aria-expanded="true"] i { transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] i::before { transform:rotate(-90deg); }

/* Core controls */
.button { min-height:54px; display:inline-flex; align-items:center; justify-content:space-between; gap:30px; padding:0 18px; border:1px solid var(--ink); background:var(--ink); color:white; font-size:.82rem; font-weight:600; cursor:pointer; transition:background .18s,border .18s,color .18s; }
.button:hover { background:var(--blue); border-color:var(--blue); }
.button-light { color:var(--ink); background:transparent; border-color:var(--line); }
.button-light:hover { color:white; }
.text-link { display:inline-flex; align-items:center; gap:10px; padding-block:8px; border-bottom:1px solid currentColor; font-size:.82rem; font-weight:600; }
.text-link span { transition:transform .2s; }
.text-link:hover span { transform:translateX(4px); }
.status { display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',Consolas,monospace; font-size:.66rem; text-transform:uppercase; color:var(--muted); }
.status::before { content:""; width:7px; height:7px; background:var(--blue); border-radius:50%; }

/* Home hero */
.hero { min-height:calc(100svh - 80px); display:grid; align-items:end; padding-block:clamp(72px,10vw,152px) 40px; border-bottom:1px solid var(--line); }
.hero-layout { display:grid; grid-template-columns:repeat(12,1fr); column-gap:24px; }
.hero-copy { grid-column:1 / span 8; }
.hero-copy .body-large { max-width:760px; margin:40px 0 36px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.current-work { grid-column:10 / -1; align-self:end; border-top:1px solid var(--ink); }
.current-work > p { margin:0; padding:12px 0; border-bottom:1px solid var(--line); }
.current-item { display:grid; grid-template-columns:1fr auto; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.current-item strong { display:block; font-size:.88rem; font-weight:600; }
.current-item small { display:block; margin-top:4px; color:var(--muted); font-size:.72rem; }
.current-item > span { font-family:'IBM Plex Mono',monospace; font-size:.65rem; color:var(--muted); }

/* Horizontal chapter marker */
.chapter { display:grid; grid-template-columns:3fr 9fr; gap:24px; padding-block:24px; border-bottom:1px solid var(--line); }
.chapter p { margin:0; }
.chapter .chapter-note { max-width:680px; font-size:.84rem; color:var(--muted); }

/* Capabilities */
.section { padding-block:clamp(90px,11vw,168px); }
.section-intro { display:grid; grid-template-columns:3fr 9fr; gap:24px; margin-bottom:clamp(64px,8vw,112px); }
.section-intro .section-title { grid-column:2; max-width:900px; }
.capability-list { border-top:1px solid var(--ink); }
.capability-row { display:grid; grid-template-columns:3fr 4fr 5fr; min-height:210px; border-bottom:1px solid var(--line); }
.capability-row > * { padding:28px 24px 32px 0; }
.capability-row .cap-index { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:.68rem; }
.capability-row h3 { margin:0; font-size:clamp(1.5rem,2.4vw,2.45rem); line-height:1.08; letter-spacing:-.04em; font-weight:400; }
.capability-row .cap-detail { border-left:1px solid var(--line); padding-left:24px; }
.capability-row p { max-width:620px; margin:0 0 20px; color:var(--muted); font-size:.92rem; }
.inline-list { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0; padding:0; list-style:none; }
.inline-list li { font-size:.72rem; }
.inline-list li::before { content:"— "; color:var(--blue); }

/* Work section */
.work-section { color:#f5f4ef; background:var(--ink); }
.work-section .overline,.work-section .muted { color:#9a9a94; }
.work-section .section-intro { margin-bottom:72px; }
.work-interface { display:grid; grid-template-columns:5fr 7fr; min-height:650px; border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
.project-list { border-right:1px solid var(--line-dark); }
.project-row { width:100%; display:grid; grid-template-columns:1fr auto; gap:20px; padding:24px 26px 24px 0; color:#a3a39d; background:transparent; border:0; border-bottom:1px solid var(--line-dark); text-align:left; cursor:pointer; transition:color .18s,background .18s,padding .18s; }
.project-row:hover,.project-row.active,.project-row:focus-visible { color:white; padding-left:16px; background:#181818; }
.project-row strong { font-size:clamp(1.18rem,1.8vw,1.65rem); font-weight:400; letter-spacing:-.025em; }
.project-row span { font-family:'IBM Plex Mono',monospace; font-size:.62rem; align-self:center; }
.project-preview { display:flex; flex-direction:column; justify-content:space-between; padding:42px clamp(30px,5vw,72px); }
.preview-top { display:flex; justify-content:space-between; gap:30px; }
.preview-top span { color:#92928d; }
.preview-title { max-width:720px; margin:80px 0 30px; font-size:clamp(2.8rem,5vw,5.7rem); font-weight:300; line-height:.94; letter-spacing:-.06em; }
.preview-summary { max-width:670px; color:#bdbdb7; font-size:clamp(1rem,1.5vw,1.24rem); }
.preview-bottom { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding-top:38px; border-top:1px solid var(--line-dark); }
.preview-bottom small { display:block; color:#787873; font-family:'IBM Plex Mono',monospace; font-size:.62rem; text-transform:uppercase; margin-bottom:8px; }
.preview-bottom strong { font-size:.84rem; font-weight:500; }

/* Process */
.process-grid { display:grid; grid-template-columns:3fr 9fr; gap:24px; }
.process-list { grid-column:2; border-top:1px solid var(--ink); counter-reset:phase; }
.process-row { display:grid; grid-template-columns:80px 3fr 5fr; gap:24px; padding:30px 0; border-bottom:1px solid var(--line); }
.process-row::before { counter-increment:phase; content:"0" counter(phase); color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:.68rem; }
.process-row h3 { margin:0; font-size:1.15rem; font-weight:600; }
.process-row p { margin:0; color:var(--muted); font-size:.9rem; }

/* Inner pages */
.page-hero { min-height:70svh; display:grid; align-content:end; padding-block:clamp(90px,10vw,150px) 44px; border-bottom:1px solid var(--line); }
.page-hero-layout { display:grid; grid-template-columns:repeat(12,1fr); gap:24px; }
.page-hero .overline,.page-hero .page-title { grid-column:1 / span 10; }
.page-intro { grid-column:7 / -1; margin:42px 0 0; color:var(--muted); font-size:clamp(1.05rem,1.6vw,1.3rem); }
.anchor-nav { position:sticky; top:80px; z-index:20; background:rgba(243,241,235,.96); border-bottom:1px solid var(--line); }
.anchor-nav .page { display:flex; overflow-x:auto; scrollbar-width:none; }
.anchor-nav a { flex:0 0 auto; padding:17px 22px 17px 0; margin-right:28px; color:var(--muted); font-size:.74rem; font-weight:600; }
.anchor-nav a:hover,.anchor-nav a.active { color:var(--blue); }

/* Service detail */
.discipline { display:grid; grid-template-columns:3fr 9fr; gap:24px; padding-block:clamp(80px,9vw,132px); border-bottom:1px solid var(--line); scroll-margin-top:140px; }
.discipline-index { position:sticky; top:150px; align-self:start; color:var(--muted); }
.discipline-main h2 { max-width:900px; margin:0 0 34px; font-size:clamp(2.4rem,5vw,5rem); font-weight:300; line-height:.98; letter-spacing:-.055em; }
.discipline-lead { max-width:800px; margin:0 0 70px; color:var(--muted); font-size:clamp(1.05rem,1.55vw,1.28rem); }
.deliverable-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ink); }
.deliverable { min-height:240px; padding:26px 26px 40px 0; border-bottom:1px solid var(--line); }
.deliverable:nth-child(odd) { border-right:1px solid var(--line); padding-right:32px; }
.deliverable:nth-child(even) { padding-left:32px; }
.deliverable .mono { color:var(--blue); }
.deliverable h3 { margin:64px 0 10px; font-size:1.15rem; font-weight:600; }
.deliverable p { margin:0; color:var(--muted); font-size:.84rem; }

/* Ventures / projects */
.project-catalog { border-top:1px solid var(--ink); }
.catalog-row { display:grid; grid-template-columns:3fr 5fr 3fr 1fr; min-height:180px; border-bottom:1px solid var(--line); transition:background .18s; }
.catalog-row:hover { background:var(--white); }
.catalog-row > * { padding:26px 24px 32px 0; }
.catalog-row h2 { margin:0; font-size:clamp(1.45rem,2.5vw,2.5rem); font-weight:400; line-height:1; letter-spacing:-.04em; }
.catalog-row p { margin:0; color:var(--muted); font-size:.86rem; }
.catalog-meta { font-size:.72rem; }
.catalog-meta span { display:block; margin-bottom:7px; }
.catalog-arrow { justify-self:end; font-size:1.2rem; }
.catalog-section-title { display:grid; grid-template-columns:3fr 9fr; gap:24px; padding:90px 0 34px; }
.catalog-section-title h2 { grid-column:2; margin:0; font-size:clamp(2rem,4vw,4rem); font-weight:300; letter-spacing:-.05em; }

/* Standards */
.principle { display:grid; grid-template-columns:3fr 4fr 5fr; min-height:250px; border-top:1px solid var(--line); }
.principle > * { padding:30px 24px 42px 0; }
.principle h2 { margin:0; font-size:clamp(1.7rem,3vw,3rem); font-weight:300; line-height:1.05; letter-spacing:-.045em; }
.principle p { margin:0; color:var(--muted); }
.principle .principle-copy { border-left:1px solid var(--line); padding-left:24px; }
.evidence-table { width:100%; border-collapse:collapse; border-top:1px solid var(--ink); }
.evidence-table th,.evidence-table td { padding:22px 16px 22px 0; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.evidence-table th { width:25%; font-size:.75rem; }
.evidence-table td { color:var(--muted); font-size:.88rem; }

/* Contact */
.contact-layout { display:grid; grid-template-columns:4fr 8fr; gap:64px; padding-block:clamp(80px,10vw,144px); }
.contact-aside { max-width:360px; }
.contact-aside h2 { margin:0 0 20px; font-size:1.55rem; font-weight:400; letter-spacing:-.035em; }
.contact-aside p { color:var(--muted); font-size:.88rem; }
.direct-link { display:block; margin:40px 0; padding:14px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); font-size:.9rem; }
.form-note { margin-top:10px; color:var(--muted); font-size:.7rem; }
.form { display:grid; grid-template-columns:1fr 1fr; gap:32px 24px; }
.field { display:grid; gap:8px; }
.field.full { grid-column:1/-1; }
.field label { font-family:'IBM Plex Mono',monospace; font-size:.67rem; text-transform:uppercase; color:var(--muted); }
.field input,.field textarea,.field select { width:100%; padding:14px 0; border:0; border-bottom:1px solid var(--ink); border-radius:0; color:var(--ink); background:transparent; outline:none; }
.field textarea { min-height:150px; resize:vertical; }
.field select { cursor:pointer; }
.field input:focus,.field textarea:focus,.field select:focus { border-bottom:2px solid var(--blue); }
.form-status { grid-column:1/-1; min-height:20px; margin:0; color:var(--blue); font-size:.78rem; }

/* CTA / Footer */
.cta { color:white; background:var(--blue); }
.cta-layout { display:grid; grid-template-columns:8fr 4fr; gap:30px; align-items:end; padding-block:clamp(70px,9vw,130px); }
.cta h2 { max-width:900px; margin:0; font-size:clamp(2.9rem,6.5vw,7rem); font-weight:300; line-height:.92; letter-spacing:-.065em; }
.cta .button { justify-self:end; min-width:210px; background:white; color:var(--ink); border-color:white; }
.cta .button:hover { background:var(--ink); color:white; border-color:var(--ink); }
.site-footer { color:#b8b8b3; background:var(--ink); }
.footer-main { display:grid; grid-template-columns:6fr 3fr 3fr; gap:40px; padding-block:64px 90px; }
.footer-main .brand-mark { background:url('logo-signal-bridge-on-dark.svg') center/contain no-repeat; }
.footer-main .brand-mark::before,.footer-main .brand-mark::after { background:var(--ink); box-shadow:0 9px 0 var(--ink); }
.footer-main .brand-mark::after { box-shadow:9px 0 0 var(--ink); }
.footer-main .brand-name { color:white; }
.footer-group h3 { margin:0 0 18px; color:#73736f; font:400 .66rem 'IBM Plex Mono',monospace; text-transform:uppercase; }
.footer-group a { display:block; width:max-content; margin:8px 0; font-size:.82rem; }
.footer-group a:hover { color:white; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-block:20px; border-top:1px solid var(--line-dark); font:400 .62rem 'IBM Plex Mono',monospace; text-transform:uppercase; }

/* Reveals are restrained and never hide content without JS */
.js .reveal { opacity:0; transform:translateY(14px); transition:opacity .55s var(--ease),transform .55s var(--ease); }
.js .reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .site-header { height:70px; }
  .nav { grid-template-columns:1fr 52px; }
  .menu-toggle { display:block; }
  .nav-panel { position:fixed; inset:70px 0 0; height:auto; display:block; padding:20px; color:var(--paper); background:var(--ink); clip-path:inset(0 0 0 100%); visibility:hidden; pointer-events:none; transition:clip-path .3s var(--ease),visibility 0s linear .3s; }
  .nav-panel.open { clip-path:inset(0); visibility:visible; pointer-events:auto; transition:clip-path .3s var(--ease),visibility 0s; }
  .nav-panel a { min-width:0; height:64px; display:flex; justify-content:space-between; padding:0; border:0; border-bottom:1px solid var(--line-dark); font-size:1.15rem; }
  .nav-panel a::after { content:"↗"; }
  .nav-panel .nav-contact { margin-top:20px; padding:0 18px; }
  .hero-copy { grid-column:1 / span 9; }
  .current-work { grid-column:1 / -1; margin-top:70px; display:grid; grid-template-columns:repeat(3,1fr); }
  .current-work > p { grid-column:1/-1; }
  .current-item { padding-right:20px; border-right:1px solid var(--line); }
  .current-item + .current-item { padding-left:20px; }
  .chapter,.section-intro,.process-grid,.discipline,.catalog-section-title { grid-template-columns:2fr 10fr; }
  .section-intro .section-title,.process-list,.discipline-main,.catalog-section-title h2 { grid-column:2; }
  .capability-row { grid-template-columns:2fr 4fr 6fr; }
  .work-interface { grid-template-columns:4fr 8fr; }
  .page-hero .overline,.page-hero .page-title { grid-column:1/-1; }
  .page-intro { grid-column:5/-1; }
  .catalog-row { grid-template-columns:3fr 6fr 3fr; }
  .catalog-arrow { display:none; }
  .contact-layout { grid-template-columns:1fr 2fr; }
  .anchor-nav { top:70px; }
}

@media (max-width: 720px) {
  .display { font-size:clamp(3.2rem,16vw,5rem); }
  .hero { align-items:start; padding-top:75px; }
  .hero-copy { grid-column:1/-1; }
  .hero-copy .body-large { margin-top:32px; }
  .current-work { display:block; margin-top:58px; }
  .current-item { padding:16px 0; border-right:0; }
  .current-item + .current-item { padding-left:0; }
  .chapter { display:block; }
  .chapter .chapter-note { margin-top:12px; }
  .section-intro { display:block; }
  .section-intro .section-title { margin-top:24px; }
  .capability-row { grid-template-columns:48px 1fr; min-height:0; padding:24px 0 32px; }
  .capability-row > * { padding:0; }
  .capability-row h3 { grid-column:2; }
  .capability-row .cap-detail { grid-column:2; margin-top:20px; padding:0; border-left:0; }
  .work-interface { display:block; min-height:0; }
  .project-list { border-right:0; }
  .project-row { padding:20px 0; }
  .project-row.active { padding-left:12px; }
  .project-preview { min-height:540px; padding:40px 0; }
  .preview-title { margin-top:70px; }
  .process-grid { display:block; }
  .process-list { margin-top:48px; }
  .process-row { grid-template-columns:48px 1fr; }
  .process-row p { grid-column:2; }
  .page-hero { min-height:62svh; }
  .page-hero-layout { display:block; }
  .page-intro { margin-top:32px; }
  .discipline { display:block; }
  .discipline-index { position:static; margin-bottom:24px; }
  .deliverable-grid { grid-template-columns:1fr; }
  .deliverable:nth-child(odd),.deliverable:nth-child(even) { min-height:0; padding:24px 0 34px; border-right:0; }
  .deliverable h3 { margin-top:36px; }
  .catalog-section-title { display:block; }
  .catalog-row { grid-template-columns:1fr; min-height:0; padding:26px 0 34px; }
  .catalog-row > * { padding:0; }
  .catalog-row p { margin-top:22px; }
  .catalog-meta { margin-top:24px; }
  .principle { grid-template-columns:48px 1fr; padding:28px 0 36px; }
  .principle > * { padding:0; }
  .principle h2 { grid-column:2; }
  .principle .principle-copy { grid-column:2; margin-top:22px; padding:0; border-left:0; }
  .evidence-table,.evidence-table tbody,.evidence-table tr,.evidence-table th,.evidence-table td { display:block; }
  .evidence-table tr { padding:24px 0; border-bottom:1px solid var(--line); }
  .evidence-table th,.evidence-table td { width:auto; padding:0; border:0; }
  .evidence-table td { margin-top:10px; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-aside { max-width:none; }
  .form { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .cta-layout { grid-template-columns:1fr; }
  .cta .button { justify-self:start; margin-top:30px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-main > :first-child { grid-column:1/-1; }
  .footer-bottom { display:block; }
  .footer-bottom span { display:block; margin-top:8px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
  .js .reveal { opacity:1; transform:none; }
}
