@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("fonts/manrope-latin.woff2") format("woff2");
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url("fonts/dm-sans-latin.woff2") format("woff2");
}

:root { --font-display:"Manrope"; --font-body:"DM Sans"; --ink:#10221f; --cream:#f3efe5; --paper:#faf8f2; --red:#bc3a2e; --sage:#879d89; --line:rgba(16,34,31,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body),sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:88px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); position:absolute; z-index:10; width:100%; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-logo { width:148px; height:72px; object-fit:contain; object-position:left center; }
nav { display:flex; gap:34px; font-size:13px; font-weight:600; }
nav a:hover { color:var(--red); }
.header-cta { border:1px solid var(--ink); padding:12px 18px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.hero { min-height:780px; height:100vh; padding:160px clamp(24px,7vw,108px) 54px; position:relative; display:grid; grid-template-columns:1.2fr .8fr; align-items:center; overflow:hidden; background:var(--cream); }
.hero-grid { position:absolute; inset:0; opacity:.25; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:84px 84px; mask-image:linear-gradient(to right,black,transparent 78%); }
.hero-copy { position:relative; z-index:2; }
.eyebrow,.section-label { text-transform:uppercase; letter-spacing:.2em; font-size:11px; font-weight:800; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:26px; }
.eyebrow span { width:32px; height:2px; background:var(--red); }
h1,h2,h3 { font-family:var(--font-display),sans-serif; }
h1 { font-size:clamp(54px,6.8vw,104px); line-height:.98; letter-spacing:-.055em; margin:0; font-weight:700; }
h1 em,h2 em { color:var(--red); font-family:Georgia,serif; font-weight:400; }
.hero-lede { max-width:580px; font-size:clamp(17px,1.5vw,22px); line-height:1.55; margin:30px 0 38px; color:#3d504c; }
.hero-actions { display:flex; align-items:center; gap:34px; }
.button { padding:16px 22px; display:inline-flex; align-items:center; justify-content:space-between; min-width:205px; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.button span { font-size:18px; }
.button-primary { background:var(--red); color:white; }
.button-primary:hover { background:#9d2f25; }
.text-link { font-size:13px; font-weight:700; border-bottom:1px solid var(--ink); padding-bottom:5px; }
.text-link span { margin-left:8px; color:var(--red); }
.hero-art { width:min(38vw,570px); aspect-ratio:1; position:relative; display:grid; place-items:center; justify-self:end; isolation:isolate; }
.logo-halo { position:absolute; width:73%; aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.58); box-shadow:0 0 90px rgba(188,58,46,.12); }
.hero-logo { position:relative; z-index:2; width:84%; height:84%; object-fit:contain; filter:drop-shadow(0 18px 24px rgba(16,34,31,.15)); }
.orbit { position:absolute; border:1px solid rgba(16,34,31,.28); border-radius:50%; }
.orbit-one { inset:2%; }.orbit-two { inset:14%; border-style:dashed; animation:spin 30s linear infinite; }
.art-label { position:absolute; font:800 9px/1 var(--font-body); letter-spacing:.2em; background:var(--cream); padding:7px; }
.label-land { top:7%; left:46%; }.label-tech { right:-2%; top:48%; }.label-build { bottom:7%; left:45%; }.label-secure { left:-4%; top:48%; }
.hero-foot { grid-column:1/-1; align-self:end; display:flex; justify-content:space-between; position:relative; z-index:2; border-top:1px solid var(--line); padding-top:22px; text-transform:uppercase; letter-spacing:.14em; font-size:9px; font-weight:800; }
.scroll-cue b { color:var(--red); font-size:14px; margin-left:8px; }
.intro { padding:130px clamp(24px,7vw,108px) 80px; display:grid; grid-template-columns:1.05fr .95fr; gap:10vw; align-items:end; }
.section-label { color:var(--red); margin:0 0 26px; }
h2 { font-size:clamp(42px,5vw,72px); line-height:1.03; letter-spacing:-.045em; margin:0; }
.intro-copy>p:first-child { font-size:20px; line-height:1.65; margin:0; max-width:600px; }
.small-copy { margin-top:36px; font-size:12px; border-top:1px solid var(--line); padding-top:18px; }
.services { padding:0 clamp(24px,7vw,108px) 130px; display:grid; grid-template-columns:repeat(4,1fr); }
.service-card { min-height:390px; border:1px solid var(--line); border-right:0; padding:28px; display:flex; flex-direction:column; transition:.25s ease; }
.service-card:last-child { border-right:1px solid var(--line); }
.service-card:hover { background:var(--ink); color:white; transform:translateY(-8px); }
.service-top { display:flex; justify-content:space-between; }
.service-number { font:700 11px/1 var(--font-body); color:var(--red); }
.service-arrow { font-size:21px; }
.service-card h3 { font-size:25px; line-height:1.1; margin:72px 0 18px; }
.service-card p { color:#556562; font-size:14px; line-height:1.65; margin:0; }
.service-card:hover p { color:#c8d1ce; }
.tags { margin-top:auto; display:flex; flex-wrap:wrap; gap:6px; }
.tags span { border:1px solid var(--line); border-radius:30px; padding:7px 9px; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.field-section { display:grid; grid-template-columns:1fr 1fr; min-height:720px; background:var(--ink); color:white; overflow:hidden; }
.field-visual { position:relative; display:grid; place-items:center; background:#c65a42; overflow:hidden; }
.field-visual:before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.3) 1px,transparent 1px); background-size:60px 60px; }
.field-visual>span { font:800 clamp(64px,9vw,145px)/.77 var(--font-display); letter-spacing:-.08em; color:rgba(255,255,255,.14); z-index:2; }
.terrain { position:absolute; width:130%; height:42%; border:2px solid rgba(255,255,255,.42); border-radius:50%; transform:rotate(-10deg); }
.terrain-one { bottom:-10%; }.terrain-two { bottom:2%; width:100%; }.terrain-three { bottom:17%; width:70%; }
.field-copy { padding:110px clamp(40px,7vw,110px); }
.section-label.light { color:#e89b86; }
.field-copy h2 em { color:#e89b86; }
.field-copy>p:not(.section-label) { color:#b8c4c0; line-height:1.7; font-size:17px; max-width:540px; margin:30px 0 50px; }
.field-copy ul { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
.field-copy li { padding:16px 0; border-top:1px solid rgba(255,255,255,.18); font-size:13px; }
.field-copy li span { color:#e89b86; margin-right:12px; }
.process { padding:130px clamp(24px,7vw,108px); }
.process-head { display:grid; grid-template-columns:1.1fr .9fr; gap:10vw; align-items:end; }
.process-head>p { max-width:500px; font-size:17px; line-height:1.7; color:#556562; }
.steps { list-style:none; padding:75px 0 0; display:grid; grid-template-columns:repeat(3,1fr); }
.steps li { padding:28px 38px 15px 0; margin-right:38px; border-top:2px solid var(--ink); position:relative; }
.steps li:before { content:""; position:absolute; top:-6px; left:0; width:10px; height:10px; border-radius:50%; background:var(--red); }
.steps span { color:var(--red); font-size:10px; font-weight:800; }
.steps strong { display:block; font:700 20px/1.2 var(--font-display); margin:40px 0 14px; }
.steps p { font-size:14px; line-height:1.65; color:#65726f; }
.contact { margin:0 clamp(18px,3vw,45px); background:var(--red); color:white; padding:90px clamp(28px,7vw,100px); display:grid; grid-template-columns:1.2fr .8fr; gap:10vw; align-items:end; }
.contact h2 { font-size:clamp(52px,7vw,98px); }
.contact-copy>p:not(.section-label) { font-size:18px; margin:25px 0 38px; }
.button-light { background:white; color:var(--ink); }
.contact-card { border-top:1px solid rgba(255,255,255,.5); }
.contact-card>div { padding:22px 0; border-bottom:1px solid rgba(255,255,255,.3); display:grid; grid-template-columns:120px 1fr; gap:15px; }
.contact-card span { font-size:9px; text-transform:uppercase; letter-spacing:.17em; font-weight:800; color:#f7c3b7; }
.contact-card p,.contact-card a { margin:0; font-size:14px; }
footer { padding:60px clamp(24px,7vw,108px); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:30px; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
footer p:nth-child(2) { text-align:center; } footer p:last-child { text-align:right; }
.footer-brand .brand-logo { width:150px; height:86px; }
@keyframes spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.orbit-two{animation:none}.service-card{transition:none} }
@media (max-width:900px) {
  nav { display:none; }.header-cta{display:none}.hero{height:auto;min-height:900px;grid-template-columns:1fr;padding-top:145px}.hero-art{width:min(82vw,470px);justify-self:center;margin:45px 0}.hero-foot{margin-top:40px}.intro,.process-head,.contact{grid-template-columns:1fr}.intro{gap:45px}.services{grid-template-columns:1fr 1fr}.service-card:nth-child(2){border-right:1px solid var(--line)}.field-section{grid-template-columns:1fr}.field-visual{min-height:480px}.contact{gap:60px}.steps{grid-template-columns:1fr}.steps li{margin-right:0}footer{grid-template-columns:1fr;text-align:center}footer p:nth-child(2),footer p:last-child{text-align:center}.footer-brand{justify-content:center}
}
@media (max-width:580px) {
  .site-header{height:76px}.brand-logo{width:130px;height:64px}.hero{padding-left:22px;padding-right:22px;min-height:820px}.hero-actions{align-items:flex-start;flex-direction:column;gap:22px}.hero-art{width:86vw}.hero-foot .scroll-cue{display:none}.intro,.process{padding-top:90px;padding-bottom:70px}.services{grid-template-columns:1fr}.service-card{border-right:1px solid var(--line);min-height:330px}.service-card h3{margin-top:45px}.field-visual{min-height:350px}.field-copy{padding:75px 25px}.field-copy ul{grid-template-columns:1fr}.contact{padding-top:70px;padding-bottom:70px}.contact-card>div{grid-template-columns:1fr;gap:8px}footer{padding-top:45px;padding-bottom:45px}
}
