:root{
  --font-body:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --text-xs:clamp(.75rem,.72rem + .15vw,.8125rem);
  --text-sm:clamp(.875rem,.85rem + .15vw,.9375rem);
  --text-base:clamp(1rem,.97rem + .15vw,1.0625rem);
  --text-lg:clamp(1.125rem,1.05rem + .35vw,1.3125rem);
  --text-xl:clamp(1.5rem,1.25rem + 1vw,2.125rem);
  --text-hero:clamp(2.5rem,1.6rem + 4vw,4.75rem);
  --space:clamp(4rem,9vw,8rem);
  --radius:6px;
  --wrap:1200px;
  --ease:cubic-bezier(.2,.7,.2,1);

  --bg:#F3F2EC; --surface:#FBFAF6; --alt:#E8E9E1; --text:#17211B; --muted:#56605A;
  --line:rgba(23,33,27,.14); --accent:#2F5D3A; --accent-ink:#F5F7F1; --gold:#9A7630;
  --dark:#0F1A15; --dark-2:#16241D; --on-dark:#E8ECE4; --on-dark-muted:#A5B0A8; --dark-line:rgba(232,236,228,.14); --leaf:#A9CB86;
}
[data-theme="dark"]{
  --bg:#0E1411; --surface:#141C18; --alt:#111915; --text:#E4E8E1; --muted:#9BA59E;
  --line:rgba(228,232,225,.13); --accent:#A9CB86; --accent-ink:#0F1A15; --gold:#CDAA62;
  --dark:#0A110D; --dark-2:#121C17;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}
h2{font-size:var(--text-xl);font-weight:600}
h3{font-size:var(--text-lg);font-weight:600}
p{margin:0;text-wrap:pretty}
dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
figure{margin:0}
.mono{font-family:var(--font-mono);font-weight:500;letter-spacing:.02em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:.75rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.4rem;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--text-sm);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .2s var(--ease),background .2s,opacity .2s;font-family:inherit}
.btn:hover{transform:translateY(-1px);opacity:.92}
.btn-sm{min-height:40px;padding:0 1rem}
.btn-ghost{background:transparent;color:var(--on-dark);border-color:var(--dark-line)}
.btn-ghost:hover{border-color:var(--on-dark-muted)}
.btn-light{background:var(--leaf);color:#0F1A15}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:1.5rem;height:68px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--accent);flex-shrink:0}
[data-theme="dark"] .brand{color:var(--accent)}
.brand-mark{width:34px;height:34px}
.brand-text{color:var(--text);font-size:.98rem;letter-spacing:-.01em;white-space:nowrap}
.brand-text strong{font-weight:700}
.nav{display:flex;gap:1.6rem;margin-left:auto}
.nav a{font-size:var(--text-sm);text-decoration:none;color:var(--muted);padding:.5rem 0;transition:color .2s}
.nav a:hover{color:var(--text)}
.header-actions{display:flex;align-items:center;gap:.75rem}
.theme-toggle{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}
@media (max-width:900px){.nav{display:none}.header-actions{margin-left:auto}}
@media (max-width:420px){.brand-text{font-size:.9rem}.btn-sm{padding:0 .8rem}}

/* Hero */
.hero{background:var(--dark);color:var(--on-dark);padding:clamp(3rem,7vw,6rem) 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.hero h1{font-size:var(--text-hero);font-weight:700;letter-spacing:-.03em;line-height:1.02}
.hero .eyebrow{color:var(--leaf)}
.lede{margin-top:1.5rem;font-size:var(--text-lg);color:var(--on-dark-muted);max-width:40ch;line-height:1.55}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}
.hero .btn:not(.btn-ghost){background:var(--leaf);color:#0F1A15}
.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--dark-line);max-width:560px}
.hero-facts dt{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--on-dark-muted);margin-bottom:.35rem}
.hero-facts dd{font-size:var(--text-sm);font-weight:500}
.hero-media{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:9/16;max-height:78vh;justify-self:end;width:100%;max-width:420px;background:#1c2621}
.hero-media video{width:100%;height:100%;object-fit:cover}
.hero-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem 1rem;font-size:var(--text-xs);background:linear-gradient(to top,rgba(10,17,13,.85),transparent);color:var(--on-dark)}
.hero-media figcaption .mono{color:var(--leaf);margin-right:.5rem}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-media{justify-self:stretch;max-width:none;aspect-ratio:4/5;max-height:none}.hero-facts{grid-template-columns:1fr 1fr 1fr;gap:1rem}}
@media (max-width:480px){.hero-facts{grid-template-columns:1fr}}

/* Sections */
.section{padding:var(--space) 0}
.section-alt{background:var(--alt)}
.section-head{max-width:720px;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-intro{margin-top:1rem;color:var(--muted);max-width:60ch}

/* Capabilities */
.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.cap{padding:2rem 1.5rem 2rem 0;display:flex;flex-direction:column;gap:.9rem;border-right:1px solid var(--line);padding-left:1.5rem}
.cap:first-child{padding-left:0}
.cap:last-child{border-right:0}
.cap-no{font-size:var(--text-sm);color:var(--gold)}
.cap p{color:var(--muted);font-size:var(--text-sm);line-height:1.6}
.io{margin-top:auto;padding-top:1rem;border-top:1px dashed var(--line);display:grid;gap:.5rem}
.io div{display:grid;grid-template-columns:2.5rem 1fr;gap:.5rem;font-size:var(--text-xs)}
.io dt{font-family:var(--font-mono);text-transform:uppercase;color:var(--accent);font-weight:500}
.io dd{color:var(--text)}
@media (max-width:1000px){.cap-grid{grid-template-columns:1fr 1fr}.cap{padding:2rem 1.5rem 2rem 0;border-right:0;border-bottom:1px solid var(--line)}.cap:nth-child(odd){border-right:1px solid var(--line)}.cap:nth-child(even){padding-left:1.5rem}}
@media (max-width:600px){.cap-grid{grid-template-columns:1fr}.cap,.cap:nth-child(even){padding:1.75rem 0;border-right:0!important}}
.cap-images{display:grid;grid-template-columns:.62fr 1fr;gap:1.25rem;margin-top:clamp(2.5rem,5vw,4rem);align-items:end}
.cap-images figure{position:relative;border-radius:var(--radius);overflow:hidden}
.cap-images img{width:100%;height:100%;object-fit:cover}
.img-tall{aspect-ratio:4/5}
.img-wide{aspect-ratio:3/2}
.cap-images figcaption{position:absolute;left:.75rem;bottom:.75rem;background:rgba(15,26,21,.78);color:#E8ECE4;font-size:var(--text-xs);padding:.3rem .6rem;border-radius:3px}
@media (max-width:700px){.cap-images{grid-template-columns:1fr}.img-tall{aspect-ratio:4/3}}

/* Services */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.svc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.75rem,3.5vw,2.75rem);display:flex;flex-direction:column;gap:1rem}
.svc-tag{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.svc h3{font-size:var(--text-xl);font-weight:600}
.svc>p{color:var(--muted)}
.ticks{display:grid;gap:.6rem;margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.ticks li{position:relative;padding-left:1.6rem;font-size:var(--text-sm)}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:.8rem;height:.45rem;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg) translateY(-3px)}
@media (max-width:760px){.svc-grid{grid-template-columns:1fr}}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:s;position:relative}
.steps li{padding:1.5rem 1.25rem 0 0;border-top:2px solid var(--line);position:relative}
.steps li::before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.steps .mono{display:block;font-size:var(--text-xs);color:var(--gold);margin-bottom:.6rem}
.steps h3{font-size:var(--text-base);font-weight:600;margin-bottom:.5rem}
.steps p{font-size:var(--text-sm);color:var(--muted)}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:0}.steps li{border-top:0;border-left:2px solid var(--line);padding:0 0 2rem 1.75rem}.steps li::before{left:-6px;top:.35rem}}

/* Materials split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split-media{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.split-media img{width:100%;height:100%;object-fit:cover}
.split-copy h2{margin-bottom:1rem}
.split-copy>p{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.75rem 0}
.chips li{font-size:var(--text-sm);padding:.45rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.note{font-size:var(--text-xs);color:var(--muted);border-left:2px solid var(--gold);padding-left:.8rem}
@media (max-width:820px){.split{grid-template-columns:1fr}}

/* Quality */
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.q{padding:1.75rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.q h3{font-size:var(--text-base);font-weight:600;margin-bottom:.5rem}
.q p{font-size:var(--text-sm);color:var(--muted)}
@media (max-width:860px){.q-grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.q-grid{grid-template-columns:1fr}}

/* Site band */
.site-band{position:relative;min-height:min(92vh,760px);display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.site-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.site-overlay{position:relative;width:100%;padding:clamp(2rem,6vw,5rem) 0;background:linear-gradient(to top,rgba(10,17,13,.72),rgba(10,17,13,0) 70%)}
.site-card{max-width:560px;background:rgba(12,20,16,.82);backdrop-filter:blur(6px);padding:clamp(1.75rem,3.5vw,2.5rem);border-radius:var(--radius);color:#E8ECE4}
.site-card .eyebrow{color:var(--leaf)}
.site-card h2{margin-bottom:1rem}
.site-card>p{color:#C3CCC5;font-size:var(--text-sm)}
.site-facts{display:grid;gap:.6rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(232,236,228,.16)}
.site-facts div{display:grid;grid-template-columns:6rem 1fr;gap:.75rem;font-size:var(--text-sm)}
.site-facts dt{font-size:var(--text-xs);text-transform:uppercase;color:var(--leaf);padding-top:.15rem}

/* Group */
.group-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.25rem}
.group-card{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);padding:clamp(1.75rem,4vw,3rem);display:flex;flex-direction:column;gap:1rem}
.group-card .eyebrow{color:inherit;opacity:.75;margin-bottom:0}
.group-card p{opacity:.88}
.group-card-plain{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.group-card-plain .eyebrow{color:var(--gold);opacity:1}
.group-card-plain p{color:var(--muted);opacity:1}
.link-arrow{margin-top:auto;font-weight:600;text-decoration:none;display:inline-flex;gap:.5rem;align-items:center;min-height:44px}
.link-arrow span{transition:transform .2s var(--ease)}
.link-arrow:hover span{transform:translateX(4px)}
@media (max-width:820px){.group-grid{grid-template-columns:1fr}}

/* Contact */
.section-dark{background:var(--dark);color:var(--on-dark)}
.section-dark .eyebrow{color:var(--leaf)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,5rem)}
.contact-copy>p{margin-top:1rem;color:var(--on-dark-muted)}
.contact-list{display:grid;gap:.9rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--dark-line)}
.contact-list div{display:grid;grid-template-columns:4.5rem 1fr;gap:.75rem;font-size:var(--text-sm)}
.contact-list dt{font-size:var(--text-xs);text-transform:uppercase;color:var(--on-dark-muted);padding-top:.15rem}
.contact-list a{color:var(--leaf);text-decoration-thickness:1px;text-underline-offset:3px}
.form{display:grid;gap:1.1rem;background:var(--dark-2);border:1px solid var(--dark-line);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.25rem)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:grid;gap:.4rem;border:0;padding:0;margin:0;min-width:0}
.field label,.field legend{font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--on-dark-muted);padding:0}
.field legend{margin-bottom:.5rem}
input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;font:inherit;font-size:var(--text-sm);color:var(--on-dark);background:rgba(232,236,228,.05);border:1px solid var(--dark-line);border-radius:4px;padding:.75rem .85rem;min-height:46px;transition:border-color .2s}
select option{color:#17211B}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--leaf)}
input::placeholder,textarea::placeholder{color:rgba(165,176,168,.6)}
.field.invalid input{border-color:#E08A6D}
.radios{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.radios label,.check{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-sm);text-transform:none;letter-spacing:0;font-family:var(--font-body);color:var(--on-dark);min-height:32px;cursor:pointer}
.check{color:var(--on-dark-muted)}
input[type=radio],input[type=checkbox]{accent-color:var(--leaf);width:18px;height:18px}
.form .btn{justify-self:start}
.form-status{font-size:var(--text-sm);color:var(--leaf);min-height:1.4em}
.form-status.error{color:#E8A08A}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){.form-row{grid-template-columns:1fr}}

/* Footer */
.site-footer{background:var(--dark);color:var(--on-dark-muted);border-top:1px solid var(--dark-line);padding:2rem 0;font-size:var(--text-xs)}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}
.site-footer strong{color:var(--on-dark)}

/* Reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.btn{white-space:nowrap}
@media (max-width:480px){.header-actions .btn-sm{display:none}}
[data-theme="dark"] .hero{border-bottom:1px solid var(--dark-line)}
.site-band>img{object-position:center 30%}
.site-band .wrap{display:flex;justify-content:flex-end}
.site-overlay{background:linear-gradient(to top,rgba(10,17,13,.55),rgba(10,17,13,0) 60%)}
@media (max-width:700px){.site-band .wrap{justify-content:stretch}}
