:root {
  --ink: #0b0c0c;
  --ink-2: #121414;
  --paper: #f2f2ed;
  --white: #fff;
  --steel: #a6aaa6;
  --fog: #d7d8d2;
  --line: rgba(11,12,12,.18);
  --line-dark: rgba(255,255,255,.18);
  --signal: #d16f32;
  --signal-2: #ff9858;
  --max: 1440px;
  --gutter: clamp(22px,4vw,64px);
  --ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body.menu-open, body.dialog-open { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--signal); color: white; }

.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 10px 14px; background: #fff; color: #000; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.shell { width: min(calc(100% - (var(--gutter) * 2)), var(--max)); margin-inline: auto; }
.hairline { border-top: 1px solid var(--line); }
.mono, .eyebrow, .nav-link, .proof-key, .tag, .footer-label, .coordinate, .field-log, .number, .button, .text-link, label, .crumbs { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.eyebrow { font-size: .72rem; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow.with-signal { display: inline-flex; align-items: center; gap: 10px; }
.eyebrow.with-signal::before { width: 7px; height: 7px; border-radius: 50%; background: var(--signal); content: ""; box-shadow: 0 0 0 5px rgba(209,111,50,.13); }
.display { margin: 0; font-size: clamp(3.6rem,8vw,8.7rem); font-weight: 400; line-height: .88; letter-spacing: -.065em; }
.display em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.page-title { margin: 0; max-width: 950px; font-size: clamp(3.2rem,7vw,7.8rem); font-weight: 400; line-height: .91; letter-spacing: -.06em; }
.section-title { margin: 0; max-width: 900px; font-size: clamp(2.5rem,5vw,5.4rem); font-weight: 400; line-height: .96; letter-spacing: -.05em; }
.lede { margin: 0; max-width: 690px; font-size: clamp(1.15rem,1.8vw,1.55rem); line-height: 1.42; letter-spacing: -.018em; }
.body-large { font-size: clamp(1.25rem,2vw,1.8rem); line-height: 1.35; letter-spacing: -.025em; }
.muted { color: #686d69; }
.on-dark .muted { color: #aeb3af; }

.site-header {
  position: fixed; z-index: 100; inset: 0 0 auto;
  height: 82px; color: white;
  border-bottom: 1px solid var(--line-dark);
  background: rgba(11,12,12,.88); backdrop-filter: blur(14px);
  transition: height .3s var(--ease), background .3s;
}
.site-header.scrolled { height: 68px; background: rgba(11,12,12,.96); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 13px; font-weight: 650; font-size: 1.45rem; letter-spacing: .08em; }
.brand-mark { position: relative; width: 22px; height: 22px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 3px; transform: rotate(45deg); }
.brand-mark i { display: block; border: 1px solid rgba(255,255,255,.85); }
.desktop-nav { display: flex; height: 100%; align-items: stretch; gap: clamp(20px,2.4vw,40px); }
.nav-item { position: relative; display: flex; align-items: stretch; }
.nav-link { position: relative; display: inline-flex; align-items: center; height: 100%; appearance: none; border: 0; background: transparent; cursor: pointer; padding: 0; color: #d5d8d5; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.nav-link:hover, .nav-link[aria-current="page"] { color: white; }
.nav-link::after { content: ""; position: absolute; height: 1px; left: 0; right: 100%; bottom: -1px; background: var(--signal); transition: right .3s var(--ease); }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { right: 0; }
.nav-caret { margin-left: 4px; font-size: .65rem; }
.nav-dropdown { position: absolute; top: calc(100% - 1px); left: -24px; width: 320px; padding: 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); box-shadow: 0 30px 70px rgba(0,0,0,.22); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s var(--ease); }
.nav-item:hover .nav-dropdown, .nav-item.nav-open .nav-dropdown { opacity: 1; visibility: visible; transform: none; }
.dropdown-link { display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: start; padding: 15px 13px; border-bottom: 1px solid var(--line); transition: background .2s; }
.dropdown-link:last-child { border: 0; }
.dropdown-link:hover { background: white; }
.dropdown-link small { display: block; color: #777c78; margin-top: 2px; font-size: .76rem; }
.header-cta { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border: 1px solid rgba(255,255,255,.6); font-family: ui-monospace, monospace; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; transition: .25s; }
.header-cta:hover { color: var(--ink); background: white; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line-dark); background: transparent; cursor: pointer; align-items: center; justify-content: center; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { width: 18px; height: 1px; background: white; content: ""; display: block; position: absolute; transition: .3s var(--ease); }
.menu-toggle::before { transform: translateY(-6px); }
.menu-toggle::after { transform: translateY(6px); }
.menu-open .menu-toggle span { opacity: 0; }
.menu-open .menu-toggle::before { transform: rotate(45deg); }
.menu-open .menu-toggle::after { transform: rotate(-45deg); }
.mobile-panel { display: none; position: fixed; z-index: 90; inset: 0; padding: 110px var(--gutter) 36px; color: white; background: var(--ink); overflow: auto; }
.mobile-panel.is-open { display: flex; flex-direction: column; }
.mobile-link { display: flex; justify-content: space-between; padding: 18px 0; border-bottom: 1px solid var(--line-dark); font-size: clamp(1.5rem,7vw,2.4rem); letter-spacing: -.03em; }
.mobile-sub { padding-left: 20px; color: #aeb3af; }
.mobile-meta { margin-top: auto; padding-top: 40px; display: grid; gap: 10px; font-family: ui-monospace, monospace; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }

.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 54px; padding: 0 20px; border: 1px solid currentColor; background: transparent; font-size: .73rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: .25s var(--ease); }
.button::after { content: "↗"; font-size: 1rem; }
.button.light { color: var(--ink); background: white; border-color: white; }
.button.light:hover { color: white; background: transparent; }
.button.dark { color: white; background: var(--ink); border-color: var(--ink); }
.button.dark:hover { color: var(--ink); background: transparent; }
.button.signal { color: #111; background: var(--signal); border-color: var(--signal); }
.button.signal:hover { background: var(--signal-2); }
.text-link { display: inline-flex; gap: 12px; align-items: center; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.text-link::after { content: "→"; transition: transform .25s; }
.text-link:hover::after { transform: translateX(5px); }
.action-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

.hero { position: relative; min-height: 100svh; padding-top: 82px; color: white; background: var(--ink); overflow: hidden; }
.hero-grid { min-height: calc(100svh - 82px); display: grid; grid-template-columns: minmax(420px,.88fr) minmax(520px,1.12fr); }
.hero-copy { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: flex-end; padding: 9vh var(--gutter) 7vh; background: var(--ink); }
.hero-copy::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 1px; background: var(--line-dark); }
.hero-copy .display { max-width: 720px; }
.hero-copy .lede { margin-top: 28px; color: #b8bcb8; }
.hero-copy .action-row { margin-top: 34px; }
.hero-visual { position: relative; min-height: 620px; overflow: hidden; }
.hero-visual img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center; filter: saturate(.75) contrast(1.04); transform: scale(1.01); }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(11,12,12,.28),transparent 35%), linear-gradient(0deg,rgba(11,12,12,.55),transparent 45%); }
.hero-kicker { margin-bottom: auto; display: flex; justify-content: space-between; align-items: start; color: #b8bcb8; }
.hero-kicker span:last-child { text-align: right; }
.visual-caption { position: absolute; z-index: 3; left: 28px; right: 28px; bottom: 24px; display: flex; justify-content: space-between; gap: 24px; color: white; font: 11px ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; }

.proof-strip { color: white; background: var(--ink); border-top: 1px solid var(--line-dark); }
.proof-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.proof-item { min-height: 108px; padding: 22px clamp(16px,2vw,30px); border-right: 1px solid var(--line-dark); display: flex; flex-direction: column; justify-content: space-between; }
.proof-item:last-child { border-right: 0; }
.proof-key { color: #979d98; font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.proof-value { font-size: clamp(1.05rem,1.5vw,1.35rem); letter-spacing: -.02em; }

.section { padding: clamp(90px,12vw,180px) 0; }
.section.dark { color: white; background: var(--ink); }
.section.white { background: white; }
.section-head { display: grid; grid-template-columns: minmax(180px,.36fr) 1fr; gap: 40px; margin-bottom: clamp(50px,7vw,96px); }
.section-head .eyebrow { padding-top: 10px; }
.practice-list { border-top: 1px solid var(--line); }
.practice-row { display: grid; grid-template-columns: 80px minmax(250px,.85fr) 1fr 44px; gap: 28px; align-items: center; min-height: 180px; padding: 28px 0; border-bottom: 1px solid var(--line); transition: padding .35s var(--ease), background .35s; }
.practice-row:hover { padding-inline: 20px; background: rgba(255,255,255,.55); }
.practice-row .number { color: #848985; font-size: .74rem; }
.practice-row h3 { margin: 0; font-size: clamp(1.8rem,3.4vw,3.5rem); font-weight: 400; line-height: 1; letter-spacing: -.045em; }
.practice-row p { max-width: 570px; margin: 0; color: #646965; font-size: 1.05rem; }
.row-arrow { width: 42px; height: 42px; border: 1px solid var(--line); display: grid; place-items: center; font-size: 1.1rem; transition: .3s var(--ease); }
.practice-row:hover .row-arrow { color: white; background: var(--ink); transform: rotate(45deg); }

.image-band { position: relative; min-height: min(72vw,850px); color: white; background: #111; overflow: hidden; }
.image-band img { position: absolute; inset: 0; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.02); }
.image-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.74),rgba(0,0,0,.08) 70%),linear-gradient(0deg,rgba(0,0,0,.6),transparent 50%); }
.image-band-content { position: relative; z-index: 2; min-height: min(72vw,850px); display: flex; flex-direction: column; justify-content: space-between; padding-block: clamp(40px,6vw,84px); }
.image-band-content blockquote { max-width: 850px; margin: auto 0 0; font-size: clamp(2.3rem,5vw,5.5rem); line-height: .98; letter-spacing: -.05em; }

.operating-model { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px,8vw,120px); align-items: start; }
.model-copy { position: sticky; top: 110px; }
.model-copy .lede { margin-top: 28px; }
.model-copy .action-row { margin-top: 34px; }
.model-steps { border-top: 1px solid var(--line-dark); }
.model-step { display: grid; grid-template-columns: 60px 1fr; gap: 24px; padding: 32px 0; border-bottom: 1px solid var(--line-dark); }
.model-step h3 { margin: 0 0 9px; font-size: 1.45rem; font-weight: 400; letter-spacing: -.03em; }
.model-step p { margin: 0; color: #aeb3af; }
.model-step .number { color: var(--signal); font-size: .72rem; }

@keyframes blink { 50% { opacity: 0; } }

.client-history { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.client-name { min-height: 124px; padding: 22px; display: flex; align-items: flex-end; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 1rem; letter-spacing: -.01em; }
.logo-wall { display: grid; grid-template-columns: repeat(6,1fr); margin-bottom: 42px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: white; }
.logo-cell { min-height: 154px; padding: 12px 10px; display: grid; place-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.logo-cell img { width: 188px; height: 125px; max-width: 100%; max-height: none; object-fit: contain; filter: none; opacity: 1; mix-blend-mode: normal; }
.logo-cell img[src*="rutgers"], .logo-cell img[src*="warner"] { width: 105px; height: 105px; }
.record-note { margin: 18px 0 0; color: #6f7470; font: .74rem/1.5 ui-monospace, monospace; letter-spacing: .04em; }
.testimonial { display: grid; grid-template-columns: .38fr 1fr; gap: 50px; }
.testimonial blockquote { margin: 0; font-size: clamp(2rem,4.5vw,4.8rem); line-height: 1.02; letter-spacing: -.05em; }
.testimonial cite { display: block; margin-top: 30px; color: #aeb3af; font: normal .78rem/1.5 ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; }

.page-hero { position: relative; min-height: 62svh; padding: 142px 0 68px; color: white; background: radial-gradient(circle at 82% 18%,rgba(209,111,50,.11),transparent 26%),var(--ink); display: flex; align-items: center; overflow: hidden; }
.page-hero::after { content: ""; position: absolute; inset: 82px 0 0 55%; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg,transparent,#000 30%); pointer-events: none; }
.page-hero-grid { position: relative; z-index: 1; width: 100%; display: grid; grid-template-columns: 1fr .55fr; gap: 60px; align-items: end; }
.page-hero .lede { color: #b7bcb8; }
.crumbs { margin-bottom: 34px; color: #888e89; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.crumbs a:hover { color: white; }
.page-hero-aside { border-top: 1px solid var(--line-dark); padding-top: 24px; }
.page-hero-aside dl { margin: 0; display: grid; gap: 20px; }
.page-hero-aside div { display: grid; grid-template-columns: 120px 1fr; gap: 14px; }
.page-hero-aside dt { color: #858b86; font: .68rem ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; }
.page-hero-aside dd { margin: 0; color: #d4d7d4; }
.page-image { position: relative; height: min(62vw,780px); overflow: hidden; background: #111; }
.page-image img { height: 100%; object-fit: cover; }
.page-image-overlay { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.4),transparent 45%); }
.page-image-label { position: absolute; z-index: 2; inset: auto var(--gutter) 28px; color: white; display: flex; justify-content: space-between; font: .7rem ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; }
.special-image img { object-position: center 46%; filter: contrast(1.05); }

.split { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px,9vw,140px); align-items: start; }
.split h2 { position: sticky; top: 110px; }
.prose { max-width: 760px; }
.prose p { margin: 0 0 28px; font-size: 1.2rem; line-height: 1.55; color: #4f5450; }
.capability-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.capability { min-height: 290px; padding: clamp(24px,4vw,48px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.capability .number { color: var(--signal); font-size: .7rem; }
.capability h3 { margin: auto 0 12px; font-size: clamp(1.5rem,2.4vw,2.4rem); font-weight: 400; line-height: 1.05; letter-spacing: -.04em; }
.capability p { margin: 0; color: #656a66; }
.capability.dark-card { color: white; background: var(--ink); border-color: var(--line-dark); }
.capability.dark-card p { color: #aeb3af; }
.environment-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.environment-grid span { min-height: 92px; padding: 22px; display: flex; align-items: flex-end; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: clamp(1rem,1.4vw,1.25rem); }

.founder-feature { display: grid; grid-template-columns: minmax(320px,.82fr) 1.18fr; gap: clamp(42px,8vw,130px); align-items: start; }
.founder-portrait { margin: 0; }
.founder-portrait img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; filter: grayscale(1) contrast(1.08); background: #181a1a; }
.founder-portrait figcaption { margin-top: 16px; color: #8f9590; font: .7rem/1.55 ui-monospace,monospace; letter-spacing: .08em; text-transform: uppercase; }
.founder-story .section-title { margin: 25px 0 28px; }
.founder-story .lede { margin-bottom: 42px; }
.founder-prose { border-top: 1px solid var(--line-dark); }
.founder-prose p { margin: 0; padding: 22px 0; border-bottom: 1px solid var(--line-dark); color: #b7bcb8; font-size: 1.05rem; }
.quote-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.quote-grid blockquote { min-height: 300px; margin: 0; padding: clamp(28px,4vw,48px); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); display: flex; flex-direction: column; justify-content: space-between; font-size: clamp(1.5rem,2.4vw,2.35rem); line-height: 1.13; letter-spacing: -.035em; }
.quote-grid cite { margin-top: 38px; color: #929893; font: normal .7rem/1.45 ui-monospace,monospace; letter-spacing: .08em; text-transform: uppercase; }
.full-client-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.full-client-grid span { min-height: 94px; padding: 18px; display: flex; align-items: flex-end; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }

.assessment-tool { display: grid; grid-template-columns: .8fr 1.2fr; border: 1px solid var(--line); background: white; }
.assessment-intro { padding: clamp(28px,5vw,70px); border-right: 1px solid var(--line); }
.assessment-intro h2 { margin: 20px 0; font-size: clamp(2.4rem,4vw,4.6rem); font-weight: 400; line-height: .98; letter-spacing: -.05em; }
.assessment-form { padding: clamp(28px,5vw,70px); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.field { display: grid; gap: 9px; }
.field.full { grid-column: 1 / -1; }
label { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
input, select, textarea { width: 100%; min-height: 52px; border: 0; border-bottom: 1px solid #9ca19d; border-radius: 0; padding: 10px 0; color: var(--ink); background: transparent; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--signal); }
textarea { min-height: 120px; resize: vertical; }
.assessment-result { margin-top: 34px; padding: 24px; color: white; background: var(--ink); display: none; }
.assessment-result.visible { display: block; }
.assessment-result h3 { margin: 0 0 8px; font-weight: 400; font-size: 1.35rem; }
.assessment-result p { margin: 0; color: #b8bdb9; }

.service-index { border-top: 1px solid var(--line); }
.service-group { display: grid; grid-template-columns: .42fr 1fr; gap: 50px; padding: 50px 0; border-bottom: 1px solid var(--line); }
.service-group h3 { margin: 0; font-size: clamp(1.6rem,3vw,3rem); font-weight: 400; letter-spacing: -.04em; }
.service-tags { display: flex; flex-wrap: wrap; gap: 10px; align-content: start; }
.tag { padding: 10px 13px; border: 1px solid var(--line); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }

.timeline { border-top: 1px solid var(--line); }
.timeline-row { display: grid; grid-template-columns: 140px .7fr 1fr; gap: 40px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.timeline-row .year { font: .75rem ui-monospace,monospace; letter-spacing: .1em; color: var(--signal); }
.timeline-row h3 { margin: 0; font-size: 1.55rem; font-weight: 400; letter-spacing: -.03em; }
.timeline-row p { margin: 0; color: #646965; }

.contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; min-height: calc(100svh - 82px); padding-top: 82px; }
.contact-aside { position: relative; color: white; background: var(--ink); padding: clamp(60px,8vw,120px) var(--gutter); display: flex; flex-direction: column; justify-content: space-between; }
.contact-aside h1 { margin: 24px 0; font-size: clamp(3.2rem,6vw,6.8rem); font-weight: 400; line-height: .9; letter-spacing: -.06em; }
.contact-aside p { max-width: 480px; color: #adb2ae; }
.contact-title { margin: 22px 0 50px; }
.contact-details { display: grid; gap: 20px; margin-top: 70px; font-size: .95rem; }
.contact-details span { display: block; color: #777e79; font: .65rem ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 4px; }
.contact-main { padding: clamp(60px,8vw,120px) var(--gutter); background: white; }
.choice-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 12px 0 26px; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice label { min-height: 58px; padding: 12px 15px; border: 1px solid var(--line); display: flex; align-items: center; cursor: pointer; font-family: inherit; font-size: .9rem; letter-spacing: 0; text-transform: none; transition: .2s; }
.choice input:checked + label { color: white; background: var(--ink); border-color: var(--ink); }
.privacy-note { margin-top: 20px; color: #6f7470; font-size: .82rem; }
.form-status { min-height: 24px; margin-top: 14px; color: #4e554f; font-size: .85rem; }
.emergency-note { margin: 8px 0 0; padding-top: 20px; border-top: 1px solid var(--line-dark); font-size: .82rem; }

.closing-cta { position: relative; padding: clamp(90px,12vw,170px) 0; color: white; background: var(--ink); overflow: hidden; }
.closing-cta::after { content: "GISS"; position: absolute; right: -3vw; bottom: -12vw; color: rgba(255,255,255,.035); font-size: 33vw; font-weight: 700; letter-spacing: -.1em; line-height: 1; pointer-events: none; }
.closing-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; }
.closing-inner h2 { margin: 0; max-width: 940px; font-size: clamp(3rem,7vw,7.7rem); font-weight: 400; line-height: .9; letter-spacing: -.065em; }

.site-footer { padding: 56px 0 28px; color: white; background: #070808; border-top: 1px solid var(--line-dark); }
.footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3,.75fr); gap: 40px; padding-bottom: 55px; }
.footer-brand p { max-width: 370px; color: #8f9590; margin: 18px 0 0; }
.footer-label { color: #6f756f; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 16px; }
.footer-links { display: grid; gap: 9px; color: #c6cac7; }
.footer-links a:hover { color: white; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding-top: 24px; border-top: 1px solid var(--line-dark); color: #6e746f; font: .66rem ui-monospace,monospace; letter-spacing: .08em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible { opacity: 1; transform: none; }

@media (min-width: 981px) {
  .hero-copy .display { font-size: clamp(3.6rem,7vw,7.6rem); }
}

@media (max-width: 980px) {
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { display: flex; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { min-height: 72svh; padding-top: 70px; }
  .hero-visual { min-height: 64svh; }
  .proof-grid { grid-template-columns: repeat(2,1fr); }
  .proof-item:nth-child(2) { border-right: 0; }
  .proof-item:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
  .section-head, .operating-model, .field-panel, .testimonial, .split, .assessment-tool, .contact-layout { grid-template-columns: 1fr; }
  .model-copy, .split h2 { position: static; }
  .field-copy, .assessment-intro { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .assessment-intro { border-color: var(--line); }
  .client-history { grid-template-columns: repeat(2,1fr); }
  .logo-wall { grid-template-columns: repeat(3,1fr); }
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-aside { max-width: 600px; }
  .founder-feature { grid-template-columns: 1fr; }
  .founder-portrait { max-width: 620px; }
  .full-client-grid { grid-template-columns: repeat(3,1fr); }
  .contact-layout { padding-top: 82px; }
  .closing-inner { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  .site-header { height: 68px; }
  .hero { padding-top: 68px; }
  .hero-grid { min-height: auto; }
  .hero-copy { min-height: 76svh; padding: 38px var(--gutter) 45px; }
  .hero-kicker { margin-bottom: 90px; }
  .hero-visual { min-height: 60svh; }
  .display { font-size: clamp(3.2rem,16vw,5rem); }
  .practice-row { grid-template-columns: 46px 1fr 38px; gap: 12px; min-height: 145px; }
  .practice-row p { grid-column: 2 / -1; }
  .practice-row:hover { padding-inline: 0; background: transparent; }
  .field-log { font-size: .65rem; padding: 25px 16px; }
  .client-history, .capability-grid, .form-grid, .choice-grid, .environment-grid, .quote-grid, .full-client-grid { grid-template-columns: 1fr; }
  .logo-wall { grid-template-columns: repeat(2,1fr); }
  .service-group, .timeline-row { grid-template-columns: 1fr; gap: 18px; }
  .timeline-row { padding: 28px 0; }
  .page-hero { min-height: 68svh; padding: 112px 0 50px; }
  .page-hero::after { inset: 68px 0 0 35%; }
  .page-title { font-size: clamp(3rem,15vw,5.4rem); }
  .page-image { height: 78svh; }
  .image-band, .image-band-content { min-height: 86svh; }
  .proof-value { font-size: 1rem; }
  .contact-layout { padding-top: 68px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
}

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

/* Preserve the original design while preventing practice content touching the viewport edge. */
.page-hero-grid { width: min(calc(100% - (var(--gutter) * 2)), var(--max)); }
@media(max-width:680px){ .logo-cell {min-height:130px;padding:8px;} .logo-cell img {height:112px;} .logo-cell img[src*="rutgers"], .logo-cell img[src*="warner"] {width:90px;height:90px;} }

/* Historical proof: original artwork, quiet interactions. */
.proof-controls{display:flex;justify-content:space-between;align-items:center;margin:28px 0 16px;font:11px var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.12em}.proof-controls button{width:46px;height:46px;margin-left:8px;border:1px solid var(--line);background:transparent;color:inherit;font-size:22px;cursor:pointer}.proof-controls button:hover{background:#fff}
.logo-wall{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;background:transparent;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#a78d79 transparent;padding:18px 0}
.logo-cell{flex:0 0 25%;scroll-snap-align:start;min-height:164px;border:0;border-right:1px solid var(--line);padding:20px;background:transparent;transition:background .2s}.logo-cell:hover{background:#fff8}.logo-cell img{mix-blend-mode:multiply;max-width:100%;object-fit:contain}.logo-cell:focus-visible,.proof-controls button:focus-visible{outline:2px solid #c97743;outline-offset:-3px}
.recommendations{border-top:1px solid #ffffff35}.recommendation{border-bottom:1px solid #8885}.recommendation summary{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:25px 0;cursor:pointer;font-size:clamp(20px,2.4vw,30px);list-style:none}.recommendation summary::-webkit-details-marker{display:none}.recommendation summary small{display:block;font-size:13px;opacity:.6;margin-top:8px}.expand-symbol{font-size:26px;font-weight:300}.recommendation[open] .expand-symbol{transform:rotate(45deg)}.recommendation-body{max-width:760px;padding:0 0 30px}.recommendation-body p{font-size:17px;line-height:1.7;margin:16px 0}.recommendation-body .record-note{font-size:13px}.recommendation-body .eyebrow{font-size:10px}
.client-dialog{width:min(740px,calc(100% - 32px));max-height:85dvh;overflow:auto;border:0;background:#f2f0e9;color:#151715;padding:clamp(26px,5vw,60px);box-shadow:0 40px 120px #0008}.client-dialog::backdrop{background:#080b0ccc;backdrop-filter:blur(6px)}.client-dialog h2{font-size:clamp(30px,5vw,48px);line-height:1.1;margin:24px 0 35px}.client-dialog p{line-height:1.7}.dialog-close{position:absolute;top:12px;right:16px;border:0;background:transparent;font-size:32px;cursor:pointer}.client-dialog .recommendation summary{font-size:22px}.client-dialog .record-note{color:#666}
.archive-links{display:grid;gap:15px;padding:8px 0 28px}.archive-links a{font-size:16px;text-decoration:underline;text-underline-offset:4px}.assignment-details{grid-column:1/-1;margin-bottom:24px}.assignment-details summary{cursor:pointer;padding:16px 0}.assignment-details .form-grid{padding-top:16px}
@media(max-width:800px){.logo-cell{flex-basis:40%}}@media(max-width:520px){.logo-cell{flex-basis:65%;min-height:145px}.proof-controls{font-size:9px}.recommendation summary{padding:22px 0}}

/* Continuous, borderless client ribbon and editorial assignment stories. */
.logo-filter-defs{position:absolute;pointer-events:none;overflow:hidden}
.logo-wall{border:0;padding:30px 0 44px;scroll-snap-type:none;scrollbar-width:none;gap:36px;isolation:isolate;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}.logo-wall::-webkit-scrollbar{display:none}
.logo-cell{flex:0 0 205px;min-height:130px;padding:10px;border:0;background:none!important;transition:transform .25s}.logo-cell:hover{transform:translateY(-4px)}.logo-cell img{filter:url(#logo-ink);mix-blend-mode:normal;opacity:1;width:188px;height:112px}.logo-cell img[src*="rutgers"],.logo-cell img[src*="warner"]{height:94px;width:94px}
.proof-controls{font-size:12px;margin-bottom:0}.proof-controls .carousel-pause{font-size:12px;letter-spacing:.04em;width:70px}.proof-controls button{border:0;border-bottom:1px solid var(--line);margin-left:5px}
.proof-stories{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:14px}.proof-story{padding:30px 30px 24px;display:flex;flex-direction:column;min-height:335px;border-right:1px solid var(--line);transition:background .25s}.proof-story:first-child{padding-left:0}.proof-story:last-child{border-right:0}.proof-story:hover{background:#ffffff50}.story-top{display:flex;justify-content:space-between;text-transform:uppercase;font-size:12px;letter-spacing:.1em;color:#76634f}.proof-story h3{font-size:clamp(25px,2.5vw,36px);font-weight:400;letter-spacing:-.035em;line-height:1.12;margin:42px 0 18px}.proof-story p{font-size:16px;line-height:1.55;max-width:29ch;color:#656963;margin:0 0 32px}.story-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;font-size:13px}.story-footer>span:last-child{font-size:22px;transition:transform .2s}.proof-story:hover .story-footer>span:last-child{transform:translate(3px,-3px)}
.client-archive{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.client-archive summary{display:flex;justify-content:space-between;cursor:pointer;padding:28px 0;font-size:22px;list-style:none}.client-archive summary::-webkit-details-marker{display:none}.client-archive[open] summary>span:last-child{transform:rotate(45deg)}.archive-name-flow{display:flex;flex-wrap:wrap;gap:0 30px;padding:20px 0 35px}.archive-name-flow span{font-size:clamp(18px,2.2vw,29px);letter-spacing:-.035em;line-height:1.9;color:#69716b}.archive-name-flow span:nth-child(3n+1){color:#16231e}
@media(max-width:760px){.logo-wall{gap:22px}.logo-cell{flex-basis:180px}.proof-stories{grid-template-columns:1fr}.proof-story,.proof-story:first-child{min-height:260px;padding:26px 0;border-right:0;border-bottom:1px solid var(--line)}.proof-story:last-child{border-bottom:0}.proof-story h3{font-size:34px;margin:28px 0 16px}.proof-story p{max-width:40ch}.client-archive summary{font-size:18px;gap:20px}}
@media(prefers-reduced-motion:reduce){.logo-cell,.proof-story,.story-footer>span:last-child{transition:none}}

/* Keep the two officers inside both construction crops. */
.hero-visual img{object-position:82% 55%;filter:saturate(.85) contrast(1.02) brightness(1.12)}
body[data-page="construction"] .page-image img{object-position:80% 60%}
@media(max-width:680px){.hero-visual img{object-position:80% 55%}body[data-page="construction"] .page-image img{object-position:80% 55%}}

.environments-section{padding-top:clamp(48px,5vw,76px);padding-bottom:clamp(60px,7vw,100px)}
.environments-section .section-head{margin-bottom:40px}
.page-hero-aside .lede{margin-bottom:26px}
[id]{scroll-margin-top:100px}
.inquiry-fallback{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.inquiry-fallback p{font-size:16px;line-height:1.6}.inquiry-fallback a{text-decoration:underline}.inquiry-fallback textarea{display:block;width:100%;min-height:190px;margin:20px 0;padding:16px;border:1px solid var(--line)}

/* GISS globe identity, refined from the original red international mark. */
.brand{gap:11px;letter-spacing:0;flex-shrink:0;line-height:1;color:#fff}.giss-globe{width:43px;height:38px;flex:none;color:#fff}.giss-wordmark{display:flex;flex-direction:column;gap:5px;font-family:Arial,Helvetica,sans-serif;font-size:31px;font-weight:800;letter-spacing:.015em}.giss-international{font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:500;line-height:1;text-transform:uppercase;letter-spacing:.22em}.footer-brand .brand{margin-bottom:8px}@media(max-width:680px){.giss-globe{width:35px;height:32px}.giss-wordmark{font-size:26px;gap:4px}.giss-international{font-size:7px;letter-spacing:.18em}.brand{gap:8px}}

/* Usability refinements: stable gutters, readable forms and keyboard navigation. */
.page-hero-grid { width: min(calc(100% - (var(--gutter) * 2)), var(--max)); }
.page-hero-grid > *, .form-grid > *, .contact-layout > *, .footer-grid > * { min-width: 0; }
[id] { scroll-margin-top: 100px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--signal-2); outline-offset: 5px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.choice input:focus-visible + label { outline: 2px solid var(--signal); outline-offset: 3px; }
.choice input { width: 1px; height: 1px; min-height: 0; padding: 0; }
.practice-choices { min-width: 0; padding: 0; margin: 0; border: 0; }
.practice-choices legend, .field label { font-size: .875rem; letter-spacing: .04em; }
.form-help, .privacy-note, .form-status { font-size: .875rem; line-height: 1.6; }
.form-help { margin: 0 0 28px; color: #555c56; }
.shift-notice { margin: 0 0 16px; padding: 20px; border-left: 3px solid var(--signal); background: var(--paper); font-size: 1rem; line-height: 1.55; }
.contact-details a, .mobile-meta a, .footer-links a { overflow-wrap: anywhere; }
.contact-details span { color: #aeb3af; font-size: .875rem; line-height: 1.5; letter-spacing: .04em; }
.contact-details a { display: block; padding: 4px 0; }
.contact-aside { justify-content: flex-start; }
.contact-details { margin-top: 48px; }
.inquiry-fallback { margin-top: 24px; padding: 22px; border: 1px solid var(--line); }
.inquiry-fallback p { margin-top: 0; }
.inquiry-fallback a { text-decoration: underline; overflow-wrap: anywhere; }
.inquiry-fallback textarea { min-height: 220px; font-size: .875rem; margin-bottom: 16px; }
.nav-dropdown { max-height: calc(100dvh - 100px); overflow-y: auto; }
.dropdown-link[aria-current="page"], .mobile-link[aria-current="page"] { color: var(--signal-2); }
.dropdown-link[aria-current="page"] { color: #8b4319; }
.footer-label, .footer-bottom { color: #a1a7a2; }
@media (max-width: 680px) {
  .page-hero-aside div { grid-template-columns: minmax(86px,.4fr) 1fr; gap: 12px; }
  .page-hero { padding-top: 112px; }
  .contact-aside { padding-block: 48px; }
  .contact-main { padding-block: 48px; }
  .contact-aside h1 { font-size: clamp(2.8rem,12vw,4rem); }
  .mobile-link { font-size: clamp(1.35rem,6vw,1.8rem); padding-block: 13px; }
  .mobile-panel { padding-top: 88px; }
  .button { white-space: normal; text-align: center; }
}

/* Let visitors control the client strip with taps, keys or native touch scrolling. */
.proof-controls button { width: 44px; height: 44px; min-width: 44px; touch-action: manipulation; }
.proof-controls button:disabled { opacity: .35; cursor: default; }
.logo-wall { scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
.logo-cell { scroll-snap-align: none; }

.contact-jump { margin-top: 16px; min-height: 44px; }

.retail-image img { object-position: 58% center; }
@media(max-width:680px){.retail-image{height:72svh;min-height:400px;max-height:650px}.retail-image img{object-position:58% center}.retail-image .page-image-label{gap:20px;line-height:1.5}}

[data-inquiry-form] [hidden] { display: none !important; }

/* Optional analytics controls */
.analytics-choice{position:fixed;bottom:24px;right:24px;left:auto;z-index:1100;width:420px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:var(--ink-2);color:var(--paper);border:1px solid var(--line-dark);border-top:2px solid var(--signal);box-shadow:0 16px 64px #0004;padding:24px;font-size:15px;line-height:1.55}
.analytics-choice[hidden]{display:none}.analytics-eyebrow{display:block;margin-bottom:12px;color:#e9a477;font:11px/1.4 monospace;text-transform:uppercase;letter-spacing:.14em}.analytics-choice p{margin:0 0 14px;color:#c7cbc7}.analytics-choice strong{display:inline-block;margin-bottom:8px;color:var(--paper);font-size:20px;font-weight:500;letter-spacing:-.025em}.analytics-choice a{text-decoration:underline;text-underline-offset:3px}.analytics-details{margin-bottom:20px;font-size:14px}.analytics-details summary{cursor:pointer;color:#d7d8d2;min-height:32px}.analytics-details p{margin-top:8px}.analytics-choice>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.analytics-choice button{min-height:44px;padding:10px 14px;border:1px solid #6d726d;background:transparent;color:var(--paper);cursor:pointer;font:inherit;transition:background .15s}.analytics-choice button:hover{background:#ffffff12}.analytics-choice button[data-choice="allow"]{border-color:#e9a477;color:#ffd3b7}.analytics-choice button:focus-visible,.analytics-preferences:focus-visible{outline:2px solid var(--signal-2);outline-offset:3px}.analytics-preferences{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;min-height:44px}.analytics-choice button[hidden]{display:none}
@media(max-width:520px){.analytics-choice{bottom:max(12px,env(safe-area-inset-bottom));right:12px;width:calc(100vw - 24px);max-width:none;padding:20px}.analytics-choice strong{font-size:19px}}
