:root {
  --black: #050505;
  --graphite: #111214;
  --charcoal: #1b1d20;
  --silver: #b8bcc2;
  --light: #f2f2f0;
  --white: #fff;
  --rule: rgba(255,255,255,.22);
  --dark-rule: rgba(5,5,5,.19);
  --page: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--light); color: var(--black); font-family: Arial, Helvetica, sans-serif; }
img { max-width: 100%; }
a { color: inherit; }

.site-header { position: absolute; z-index: 20; top: 0; left: 0; right: 0; height: 94px; padding: 0 max(28px, calc((100vw - var(--page))/2)); display: flex; align-items: center; gap: 38px; color: var(--hero-main, var(--white)); border-bottom: 1px solid var(--hero-rule, var(--rule)); transition: color .45s ease, border-color .45s ease, text-shadow .45s ease; }
.brand img { display: block; width: 154px; height: 78px; object-fit: contain; transition: filter .45s ease; }
body[data-hero-theme="ink"] .site-header .brand img { filter: invert(1); }
nav { margin-left: auto; display: flex; gap: 30px; }
nav a, .header-cta { text-decoration: none; text-transform: uppercase; letter-spacing: .14em; font-size: 11px; font-weight: 800; }
nav a { color: var(--hero-copy, #d6d8db); transition: color .45s ease; }
nav a:hover { color: var(--hero-main, var(--white)); }
.header-cta { min-height: 42px; padding: 0 18px; display: inline-flex; align-items: center; border: 1px solid currentColor; transition: color .45s ease, background .2s ease; }
.header-cta:hover { background: var(--hero-main, var(--white)); color: var(--hero-button-fg, var(--black)); }

.hero { position: relative; min-height: 850px; display: flex; align-items: flex-end; overflow: hidden; color: var(--hero-main, var(--white)); outline: none; }
body[data-hero-theme="light"] {
  --hero-main: #fff;
  --hero-accent: #c3c6ca;
  --hero-copy: #eef0f2;
  --hero-muted: #d2d4d7;
  --hero-rule: rgba(255,255,255,.34);
  --hero-button-bg: #fff;
  --hero-button-fg: #050505;
  --hero-control-bg: rgba(0,0,0,.5);
}
body[data-hero-theme="ink"] {
  --hero-main: #050505;
  --hero-accent: #5f646a;
  --hero-copy: #222529;
  --hero-muted: #44484d;
  --hero-rule: rgba(5,5,5,.3);
  --hero-button-bg: #050505;
  --hero-button-fg: #fff;
  --hero-control-bg: rgba(255,255,255,.7);
}
.hero-slider, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transform: translateX(6%) scale(1.04); transition: opacity .9s ease, transform 1.3s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.hero-slide.is-active { opacity: 1; transform: translateX(0) scale(1); z-index: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.hero-shade { transition: background .55s ease; }
body[data-hero-theme="light"] .hero-shade { background: radial-gradient(ellipse at 50% 46%, rgba(0,0,0,.82) 0%, rgba(0,0,0,.68) 34%, rgba(0,0,0,.2) 70%, rgba(0,0,0,.08) 100%), linear-gradient(0deg, rgba(0,0,0,.72), transparent 54%), linear-gradient(180deg, rgba(0,0,0,.38), transparent 24%); }
body[data-hero-theme="ink"] .hero-shade { background: radial-gradient(ellipse at 50% 46%, rgba(248,248,246,.94) 0%, rgba(248,248,246,.76) 34%, rgba(248,248,246,.15) 70%, rgba(255,255,255,.03) 100%), linear-gradient(0deg, rgba(245,245,243,.72), transparent 54%), linear-gradient(180deg, rgba(250,250,248,.3), transparent 24%); }
.hero-content { position: relative; z-index: 2; width: min(920px, calc(100% - 56px)); margin: 0 auto; padding: 190px 0 142px; text-align: center; }
.hero-content .kicker { margin-bottom: 26px; }
.kicker { margin: 0 0 25px; color: #60646a; font: 800 11px/1.4 monospace; letter-spacing: .18em; text-transform: uppercase; }
.kicker.light { color: var(--hero-accent, var(--silver)); }
h1, h2, h3 { margin-top: 0; text-transform: uppercase; }
h1 { margin-bottom: 32px; max-width: 1000px; font-size: clamp(66px, 9vw, 132px); line-height: .82; letter-spacing: -.062em; }
h1 span, h2 span { color: var(--silver); }
.hero h1 { color: var(--hero-main); transition: color .45s ease; }
.hero h1 { margin-left: auto; margin-right: auto; text-wrap: balance; }
.hero h1 span { color: var(--hero-accent); transition: color .45s ease; }
.hero-content > p:not(.kicker) { max-width: 710px; margin: 0 auto; color: var(--hero-copy, #e2e3e5); font-size: 18px; line-height: 1.65; transition: color .45s ease; }
.hero-actions { display: flex; align-items: center; justify-content: center; margin-top: 36px; }
.button { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; gap: 32px; text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 800; transition: .2s ease; }
.light-button { background: var(--hero-button-bg, var(--white)); color: var(--hero-button-fg, var(--black)); }
.light-button:hover { filter: brightness(.82); }
.text-action { color: var(--hero-main, var(--white)); text-decoration: none; text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .12em; transition: color .45s ease; }
.text-action span { margin-left: 14px; color: var(--hero-accent, var(--silver)); }
.hero-controls { position: absolute; z-index: 3; left: 50%; bottom: 26px; display: flex; align-items: center; border: 1px solid var(--hero-rule, var(--rule)); background: var(--hero-control-bg, rgba(0,0,0,.32)); backdrop-filter: blur(8px); transform: translateX(-50%); transition: background .45s ease, border-color .45s ease; }
.hero-arrow { width: 48px; height: 46px; padding: 0; border: 0; background: transparent; color: var(--hero-main, var(--white)); cursor: pointer; font-size: 20px; transition: background .2s ease, color .2s ease; }
.hero-arrow:hover, .hero-arrow:focus-visible { background: var(--hero-main, var(--white)); color: var(--hero-button-fg, var(--black)); outline: none; }
.hero-count { min-width: 74px; margin: 0; color: var(--hero-muted, #d2d3d5); font: 700 10px monospace; letter-spacing: .12em; text-align: center; }
.photo-note { position: absolute; z-index: 3; right: max(28px, calc((100vw - var(--page))/2)); bottom: 30px; margin: 0; max-width: 460px; color: var(--hero-muted, #d2d3d5); font-size: 10px; letter-spacing: .08em; text-align: right; text-transform: uppercase; transition: color .45s ease; }
.photo-note span { display: block; margin-bottom: 7px; color: var(--hero-main, var(--white)); font-weight: 800; transition: color .45s ease; }
.photo-note b { font-weight: 400; }

.focus-rail { min-height: 94px; padding: 0 max(28px, calc((100vw - var(--page))/2)); display: grid; grid-template-columns: repeat(4, 1fr); background: var(--black); color: var(--white); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.focus-rail span { display: flex; align-items: center; padding: 0 25px; border-right: 1px solid var(--rule); color: #d7d9dc; font: 800 11px monospace; letter-spacing: .12em; text-transform: uppercase; }
.focus-rail span:first-child { padding-left: 0; }
.focus-rail span:last-child { border-right: 0; }

.section-pad { padding: 125px max(28px, calc((100vw - var(--page))/2)); }
.intro { display: grid; grid-template-columns: .75fr 2fr; gap: 85px; background: var(--light); }
.intro-copy h2, .section-title h2, .markets h2, .contact h2, .standard h2 { margin-bottom: 38px; font-size: clamp(48px, 6vw, 86px); line-height: .9; letter-spacing: -.052em; }
.intro-copy > p { max-width: 740px; color: #4c5055; font-size: 17px; line-height: 1.75; }

.services { display: grid; grid-template-columns: 1fr 1.1fr; gap: 90px; background: var(--white); border-top: 1px solid var(--dark-rule); }
.section-title h2 { margin-bottom: 0; }
.service-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--dark-rule); }
.service-list li { min-height: 76px; padding: 0 12px; display: grid; grid-template-columns: 64px 1fr; align-items: center; border-bottom: 1px solid var(--dark-rule); }
.service-list span { color: #74787e; font: 700 11px monospace; }
.service-list strong { text-transform: uppercase; letter-spacing: .02em; font-size: 17px; }

.standard { background: var(--black); color: var(--white); }
.standard-copy { display: grid; grid-template-columns: .72fr 2fr; gap: 85px; padding-bottom: 65px; }
.standard-copy h2 { grid-column: 2; margin: -45px 0 18px; }
.standard-copy > p:not(.kicker) { grid-column: 2; max-width: 650px; color: var(--silver); font-size: 17px; line-height: 1.7; }
.standard-steps { padding: 0 max(28px, calc((100vw - var(--page))/2)) 125px; display: grid; grid-template-columns: repeat(3, 1fr); }
.standard-steps article { min-height: 275px; padding: 38px 32px; border: 1px solid var(--rule); border-right: 0; }
.standard-steps article:last-child { border-right: 1px solid var(--rule); }
.standard-steps span { color: var(--silver); font: 700 11px monospace; }
.standard-steps h3 { margin: 68px 0 18px; font-size: 27px; line-height: 1; }
.standard-steps p { margin: 0; max-width: 320px; color: var(--silver); line-height: 1.65; }

.work { background: var(--light); }
.work-title { display: grid; grid-template-columns: .7fr 2fr; gap: 30px 85px; align-items: end; margin-bottom: 62px; }
.work-title .kicker { align-self: start; }
.work-title h2 { grid-column: 2; margin: -44px 0 0; }
.work-disclosure { grid-column: 2; max-width: 720px; margin: 0; color: #60646a; font-size: 13px; line-height: 1.65; }
.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 355px; gap: 10px; }
.project { position: relative; overflow: hidden; color: var(--white); text-decoration: none; }
.project-large { grid-column: span 2; grid-row: span 2; }
.project img, .project-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.project img { object-fit: cover; transition: transform .55s ease; }
.project:hover img { transform: scale(1.025); }
.project-shade { background: linear-gradient(0deg, rgba(0,0,0,.85), rgba(0,0,0,.02) 70%); }
.project-copy { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 28px; }
.project-copy p { margin: 0 0 12px; color: #d5d7da; font: 700 9px monospace; letter-spacing: .1em; text-transform: uppercase; }
.project-copy h3 { margin-bottom: 8px; font-size: clamp(28px, 3vw, 52px); line-height: .95; }
.project-copy span { color: var(--silver); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }

.markets { display: grid; grid-template-columns: 1.35fr .65fr; gap: 90px; background: #151619; color: var(--white); }
.markets h2 { margin: 0; }
.market-list { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rule); }
.market-list p { margin: 0; min-height: 58px; display: flex; align-items: center; border-bottom: 1px solid var(--rule); color: #d6d8da; font: 700 11px monospace; letter-spacing: .12em; text-transform: uppercase; }
.market-list p:nth-child(odd) { border-right: 1px solid var(--rule); }
.market-list p:nth-child(even) { padding-left: 22px; }

.contact { background: var(--white); text-align: center; }
.contact h2 { max-width: 1060px; margin-left: auto; margin-right: auto; }
.contact-actions { display: flex; justify-content: center; align-items: center; gap: 28px; flex-wrap: wrap; }
.contact-actions > a:not(.button) { color: #3d4146; font-size: 14px; font-weight: 700; }
.dark-button { background: var(--black); color: var(--white); }
.dark-button:hover { background: #36393d; }

footer { padding: 50px max(28px, calc((100vw - var(--page))/2)); display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 55px; align-items: end; background: var(--black); color: var(--silver); border-top: 1px solid var(--rule); font-size: 11px; }
.footer-brand img { width: 160px; height: 88px; object-fit: contain; }
.footer-brand p { margin: 12px 0 0; text-transform: uppercase; letter-spacing: .12em; }
.footer-links { display: grid; gap: 9px; }
.footer-links a { text-decoration: none; }
.footer-links a:hover { color: var(--white); }
footer > p { margin: 0; }

@media (max-width: 980px) {
  .site-header nav { display: none; }
  .site-header { position: absolute; }
  .hero { min-height: 760px; }
  .hero-controls { left: 50%; bottom: 28px; }
  .photo-note { left: 28px; right: auto; bottom: 88px; max-width: calc(100% - 56px); text-align: left; }
  .focus-rail { grid-template-columns: 1fr 1fr; }
  .focus-rail span { min-height: 70px; border-bottom: 1px solid var(--rule); }
  .focus-rail span:nth-child(2) { border-right: 0; }
  .focus-rail span:first-child, .focus-rail span:nth-child(3) { padding-left: 0; }
  .intro, .services, .standard-copy, .work-title, .markets { grid-template-columns: 1fr; gap: 34px; }
  .standard-copy h2, .standard-copy > p:not(.kicker), .work-title h2, .work-disclosure { grid-column: 1; margin-top: 0; }
  .standard-steps { grid-template-columns: 1fr; }
  .standard-steps article { min-height: auto; border-right: 1px solid var(--rule); border-bottom: 0; }
  .standard-steps article:last-child { border-bottom: 1px solid var(--rule); }
  .standard-steps h3 { margin-top: 35px; }
  .project-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 360px; }
  .project-large { grid-column: 1 / 3; grid-row: span 1; min-height: 520px; }
  footer { grid-template-columns: 1fr 1fr; }
  footer > p { grid-column: 1 / 3; }
}

@media (max-width: 600px) {
  .site-header { height: 78px; padding: 0 16px; }
  .brand img { width: 118px; height: 64px; }
  .header-cta { min-height: 38px; padding: 0 12px; font-size: 9px; }
  .hero { min-height: 720px; }
  .hero-content { width: calc(100% - 36px); padding: 145px 0 175px; }
  .hero-content .kicker { font-size: 9px; }
  h1 { font-size: 57px; }
  .hero-content > p:not(.kicker) { font-size: 16px; }
  .hero-actions { align-items: center; }
  .hero-controls { left: 50%; bottom: 24px; }
  .photo-note { left: 18px; bottom: 82px; max-width: calc(100% - 36px); }
  .focus-rail { padding: 0 18px; }
  .focus-rail span { padding: 0 10px; font-size: 9px; }
  .section-pad { padding: 86px 18px; }
  .intro-copy h2, .section-title h2, .markets h2, .contact h2, .standard h2 { font-size: 44px; }
  .services { gap: 55px; }
  .service-list strong { font-size: 14px; }
  .standard-copy { padding-bottom: 48px; }
  .standard-steps { padding: 0 18px 86px; }
  .project-grid { display: grid; grid-template-columns: 1fr; grid-auto-rows: 390px; }
  .project-large { grid-column: 1; grid-row: span 1; min-height: 440px; }
  .project-copy { left: 20px; right: 20px; }
  .market-list { grid-template-columns: 1fr; }
  .market-list p:nth-child(odd) { border-right: 0; }
  .market-list p:nth-child(even) { padding-left: 0; }
  .contact-actions { flex-direction: column; }
  footer { padding: 46px 18px; grid-template-columns: 1fr; align-items: start; }
  footer > p { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: opacity .15s linear; transform: none; }
  .hero-slide.is-active { transform: none; }
}
