:root{
  --bg:#F5F6F0; --bg-raised:#FFFFFF; --bg-sunken:#ECEEE4;
  --ink:#16211C; --ink-soft:#45524A; --muted:#6B7D71;
  --line:rgba(22,33,28,.16); --line-soft:rgba(22,33,28,.09);
  --pine:#12271F; --pine-2:#1D3C2E; --pine-text:#EEF2EC; --pine-text-soft:rgba(238,242,236,.7);
  --line-on-pine:rgba(238,242,236,.18);
  --brass:#8C6B30; --brass-ink:#725526; --brass-bright:#A6803F; --brass-soft:#E7D9B8;
  color-scheme: light;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0D1712; --bg-raised:#152219; --bg-sunken:#0A100C;
    --ink:#ECEDE5; --ink-soft:#C4CDC4; --muted:#8FA090;
    --line:rgba(236,237,229,.16); --line-soft:rgba(236,237,229,.08);
    --pine:#0A1712; --pine-2:#142A20; --pine-text:#F1F4EE; --pine-text-soft:rgba(241,244,238,.72);
    --line-on-pine:rgba(241,244,238,.16);
    --brass:#D9B87B; --brass-ink:#F0D39A; --brass-bright:#D9B87B; --brass-soft:rgba(217,184,123,.16);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0D1712; --bg-raised:#152219; --bg-sunken:#0A100C;
  --ink:#ECEDE5; --ink-soft:#C4CDC4; --muted:#8FA090;
  --line:rgba(236,237,229,.16); --line-soft:rgba(236,237,229,.08);
  --pine:#0A1712; --pine-2:#142A20; --pine-text:#F1F4EE; --pine-text-soft:rgba(241,244,238,.72);
  --line-on-pine:rgba(241,244,238,.16);
  --brass:#D9B87B; --brass-ink:#F0D39A; --brass-bright:#D9B87B; --brass-soft:rgba(217,184,123,.16);
  color-scheme: dark;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:calc(84px + env(safe-area-inset-top, 0px));}
body{
  background:var(--bg); color:var(--ink);
  font-family:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:18px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1160px; margin:0 auto; padding-inline: clamp(20px, 5vw, 56px);}
h1,h2,h3{font-family:"Spectral", Georgia, "Times New Roman", serif; font-weight:500; line-height:1.12; text-wrap:balance; margin:0;}
em{font-style:italic;}
p{margin:0;}
a{color:inherit;}
.eyebrow{
  font-family:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;
  font-size:13.5px; letter-spacing:.13em; text-transform:uppercase; font-weight:500;
}
section{position:relative;}
.band-pine{background:linear-gradient(175deg, var(--pine), var(--pine-2)); color:var(--pine-text);}
.rule{border:none; border-top:1px solid var(--line); margin:0;}
.rule-pine{border:none; border-top:1px solid var(--line-on-pine); margin:0;}
::selection{background:var(--brass-soft); color:var(--ink);}
:focus-visible{outline:2px solid var(--brass-bright); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:env(safe-area-inset-top, 0px); z-index:40;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.navrow{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:16px;}
.brand-group{display:flex; align-items:center; gap:12px;}
.wordmark{font-family:"Spectral", serif; font-size:20px; font-weight:600; letter-spacing:.01em; white-space:nowrap;}
nav.links{display:flex; align-items:center; gap:22px;}
nav.links a{
  font-size:15.5px; color:var(--ink-soft); text-decoration:none; font-weight:500;
  padding-block:4px; border-bottom:1px solid transparent;
}
nav.links a:hover{color:var(--ink); border-color:var(--line);}
nav.links a.current{color:var(--ink);}
.btn{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  font-family:"IBM Plex Sans", sans-serif; font-weight:600; font-size:15.5px;
  padding:11px 20px; border-radius:3px; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn:active{transform:translateY(1px);}
.btn-brass{background:var(--brass); color:#241a08; border-color:var(--brass);}
.btn-brass:hover{background:var(--brass-bright);}
.btn-ghost-pine{border-color:var(--line-on-pine); color:var(--pine-text);}
.btn-ghost-pine:hover{border-color:var(--pine-text-soft); background:rgba(255,255,255,.04);}
.btn-ghost{border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{background:var(--bg-sunken);}
.navcta{display:none;}
@media (min-width:760px){ .navcta{display:inline-flex;} }
nav.links{display:none;}
@media (min-width:980px){ nav.links{display:flex;} }

.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:6px; border:1px solid var(--line);
  background:none; cursor:pointer; flex-shrink:0; color:var(--ink); padding:0;
}
.nav-toggle:hover{background:var(--bg-sunken);}
.nav-toggle svg{width:18px; height:18px; stroke:currentColor;}
.nav-toggle .icon-close{display:none;}
.nav-toggle[aria-expanded="true"] .icon-open{display:none;}
.nav-toggle[aria-expanded="true"] .icon-close{display:block;}
@media (min-width:980px){ .nav-toggle{display:none;} }

.mobile-menu{display:none; border-top:1px solid var(--line-soft);}
.mobile-menu.open{display:block;}
@media (min-width:980px){ .mobile-menu{display:none !important;} }
.mobile-menu .wrap{display:flex; flex-direction:column; padding-block:6px 22px;}
.mobile-menu a:not(.btn){
  padding:15px 2px; font-size:17.5px; font-weight:500; color:var(--ink-soft); text-decoration:none;
  border-top:1px solid var(--line-soft);
}
.mobile-menu a:not(.btn):first-child{border-top:none;}
.mobile-menu a:not(.btn):hover, .mobile-menu a.current{color:var(--ink);}
.mobile-menu .btn{margin-top:16px; justify-content:center; text-decoration:none;}

/* ---------- Hero ---------- */
.hero{padding-block: clamp(20px, 3.5vw, 48px) clamp(36px, 5vw, 64px);}
.hero-grid{display:grid; grid-template-columns:1fr; gap:32px; align-items:start;}
@media (min-width:960px){ .hero-grid{grid-template-columns:1.05fr .95fr; gap:40px;} }
.hero-eyebrow{color:var(--brass-ink); margin-bottom:14px; display:block;}
.hero h1{font-size:clamp(30px, 4vw, 50px); letter-spacing:-.01em;}
.hero h1 em{color:var(--brass-ink); font-style:italic;}
.hero p.lede{margin-top:16px; font-size:18px; max-width:46ch; color:var(--pine-text-soft);}
.hero .ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:24px;}

.hero-preview{
  background:rgba(0,0,0,.2); border:1px solid var(--line-on-pine); border-radius:10px;
  padding:8px 26px 22px;
  box-shadow: 0 24px 60px -28px rgba(0,0,0,.55);
}
.hp-label{
  display:block; padding-top:18px; padding-bottom:14px; color:var(--pine-text-soft);
  letter-spacing:.14em;
}
.hp-list{list-style:none; margin:0; padding:0;}
.hp-list li{
  display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start;
  padding-block:16px; border-top:1px solid var(--line-on-pine); transition:transform .2s ease;
}
.hp-list li:hover{transform:translateX(3px);}
.hp-num{
  font-family:"Spectral", serif; font-style:italic; font-weight:500; font-size:26px; color:var(--brass-ink);
  line-height:1.3;
}
.hp-list b{display:block; font-family:"IBM Plex Sans"; font-size:17px; font-weight:600; color:var(--pine-text);}
.hp-list li span{display:block; font-size:15px; color:var(--pine-text-soft); margin-top:3px;}
.hp-cta{
  display:inline-flex; margin-top:18px; font-size:14.5px; font-weight:600; color:var(--brass-ink);
  text-decoration:none; padding-top:14px; border-top:1px solid var(--line-on-pine); width:100%;
  justify-content:space-between;
}

/* ---------- Page hero (secondary pages) ---------- */
.page-hero{padding-block: clamp(48px,7vw,88px);}
.page-hero h1{font-size:clamp(32px, 4.6vw, 52px); max-width:18ch; letter-spacing:-.01em;}
.page-hero p.lede{margin-top:16px; font-size:18px; max-width:56ch; color:var(--pine-text-soft);}

/* ---------- Starting point ---------- */
.starting{padding-block: clamp(64px,8vw,100px);}
.starting-grid{display:grid; grid-template-columns:1fr; gap:36px;}
@media (min-width:860px){ .starting-grid{grid-template-columns: .8fr 1.2fr; gap:64px;} }
.starting h2{font-size:clamp(26px, 3vw, 34px);}
.starting-body p{max-width:60ch; color:var(--ink-soft);}
.starting-body p + p{margin-top:16px;}

/* ---------- Services ledger (shared visual language) ---------- */
.services{padding-block: clamp(20px,4vw,40px) clamp(72px,9vw,110px);}
.services-top{display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:8px;}
.services-top h2{font-size:clamp(26px,3vw,34px);}
.services-top .eyebrow{color:var(--muted);}

.svc-num{font-family:"IBM Plex Mono", monospace; font-size:15px; color:var(--brass-ink); font-variant-numeric:tabular-nums;}
.svc-title-wrap{min-width:0;}
.svc-title{font-size:clamp(20px,2.4vw,27px); margin:0;}
.svc-sub{font-family:"IBM Plex Sans"; font-size:15.5px; color:var(--muted); margin-top:4px;}

.svc-desc p{color:var(--ink-soft); max-width:52ch;}
.svc-desc .for{margin-top:20px;}
.svc-desc .for-label{font-size:14px; color:var(--muted); margin-bottom:10px; display:block;}
.chip-row{display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  font-size:14px; padding:6px 11px; border:1px solid var(--line); border-radius:99px; color:var(--ink-soft);
}
.receive{margin-top:6px;}
.receive-label{font-size:14px; color:var(--muted); margin-bottom:10px; display:block;}
.receive ul{list-style:none; margin:0; padding:0; display:grid; gap:9px;}
.receive li{font-size:15.5px; color:var(--ink-soft); padding-left:18px; position:relative;}
.receive li::before{content:"—"; position:absolute; left:0; color:var(--brass);}
.svc-inner{padding:4px 0 40px; display:grid; grid-template-columns:1fr; gap:34px;}
@media (min-width:900px){ .svc-inner{grid-template-columns: 1fr 1fr; gap:48px;} }

/* Services page: single-flow detail sections (no lopsided columns) */
.svc-lede{color:var(--ink-soft); max-width:66ch; font-size:17.5px; position:relative; z-index:1;}
.svc-section{margin-top:36px; position:relative; z-index:1;}
.svc-section-label{font-size:14px; color:var(--muted); margin-bottom:14px; display:block;}
.stage-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:14px;
}
.stage-card{background:var(--bg); padding:22px 22px 24px; border:1px solid var(--line); border-radius:6px;}
.stage-card .sn{font-family:"IBM Plex Mono"; font-size:13px; color:var(--brass-ink); display:block; margin-bottom:8px;}
.stage-card b{display:block; font-size:16.5px; font-weight:600; margin-bottom:6px;}
.stage-card p{font-size:15px; color:var(--muted); margin:0;}
.receive-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:14px 32px;}
.receive-grid li{font-size:16px; color:var(--ink-soft); padding-left:20px; position:relative;}
.receive-grid li::before{content:"—"; position:absolute; left:0; color:var(--brass);}

/* Home page: condensed service teaser row (links out to services.html) */
.svc-teaser{
  position:relative; overflow:hidden; display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  gap:20px; padding:26px 0; border-top:1px solid var(--line); text-decoration:none; color:inherit;
}
.svc-teaser:last-child{border-bottom:1px solid var(--line);}
.svc-arrow{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:background .18s ease, border-color .18s ease;
}
.svc-arrow svg{width:13px; height:13px; stroke:var(--ink-soft); transition:transform .25s ease, stroke .18s ease;}
.svc-teaser:hover .svc-arrow{background:var(--brass-soft); border-color:transparent;}
.svc-teaser:hover .svc-arrow svg{transform:translateX(3px); stroke:var(--brass-ink);}
.svc-teaser:hover .svc-ghost{opacity:.075; transform:translateY(-50%) translateX(-6px);}

/* Services page: full detail block, always expanded, no accordion */
.svc-detail{position:relative; overflow:hidden; padding-block:44px; border-top:1px solid var(--line);}
.svc-detail:last-child{border-bottom:1px solid var(--line);}
.svc-head-static{
  display:grid; grid-template-columns:auto 1fr; align-items:center; gap:20px; margin-bottom:30px;
  position:relative; z-index:1;
}

/* ---------- Approach flow diagram ---------- */
.flow{margin-top:52px; display:grid; grid-template-columns:1fr; gap:0;}
@media (min-width:820px){ .flow{grid-template-columns:1fr auto 1fr auto 1fr;} }
.flow-node{
  border:1px solid var(--line-on-pine); border-radius:6px; padding:22px 22px 24px; background:rgba(255,255,255,.03);
}
.flow-node .fn-num{font-family:"IBM Plex Mono"; font-size:13px; color:var(--brass-ink); letter-spacing:.08em;}
.flow-node h3{font-size:19px; margin-top:8px; font-weight:600; font-family:"IBM Plex Sans"; color:var(--pine-text);}
.flow-node p{font-size:15px; color:var(--pine-text-soft); margin-top:8px;}
.flow-arrow{display:flex; align-items:center; justify-content:center; padding-block:14px;}
.flow-arrow svg{width:22px; height:22px; stroke:var(--brass-ink);}
@media (min-width:820px){ .flow-arrow{padding-inline:14px;} .flow-arrow svg{transform:rotate(0);} }
@media (max-width:819px){ .flow-arrow svg{transform:rotate(90deg);} }

/* ---------- Compliance strip ---------- */
.compliance{padding-block:clamp(56px,7vw,84px); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.comp-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line);}
@media (min-width:700px){ .comp-grid{grid-template-columns:repeat(4,1fr);} }
.comp-item{background:var(--bg); padding:22px 20px;}
.comp-item .tag{
  font-family:"IBM Plex Mono"; font-size:12.5px; letter-spacing:.08em; color:var(--brass);
  border:1px solid var(--brass-soft); background:var(--brass-soft); display:inline-block; padding:3px 8px; border-radius:3px; margin-bottom:12px;
}
.comp-item p{font-size:15px; color:var(--ink-soft);}

/* ---------- Who-list (used on the About page) ---------- */
.who-list{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:0;}
.who-list li{
  padding-block:14px; border-top:1px solid var(--line-soft); font-size:16px; color:var(--ink-soft);
  display:flex; gap:12px; align-items:baseline;
}
.who-list li:first-child{border-top:none;}
.who-list li::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--brass); flex-shrink:0; transform:translateY(-2px);}

/* ---------- CTA / contact ---------- */
.cta{padding-block:clamp(70px,9vw,120px);}
.cta-inner{max-width:640px;}
.cta .eyebrow{color:var(--brass-ink); margin-bottom:18px; display:block;}
.cta h2{font-size:clamp(28px,4vw,42px); color:var(--pine-text);}
.cta p.lede{margin-top:18px; color:var(--pine-text-soft); font-size:18px; max-width:52ch;}
.cta .ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; align-items:center;}
.copyline{
  font-family:"IBM Plex Mono"; font-size:14.5px; color:var(--pine-text-soft);
  display:inline-flex; align-items:center; gap:10px;
}
.copyline button{
  background:none; border:1px solid var(--line-on-pine); color:var(--pine-text-soft);
  border-radius:3px; padding:5px 9px; font-size:13px; cursor:pointer; font-family:"IBM Plex Sans";
}
.copyline button:hover{border-color:var(--pine-text-soft); color:var(--pine-text);}
.cta .fine{margin-top:30px; font-size:14.5px; color:var(--pine-text-soft); opacity:.75;}

/* ---------- Footer ---------- */
footer{padding-block:26px;}
.footrow{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  font-size:14px; color:var(--muted);
}
.footrow a{text-decoration:none; color:var(--muted);}
.footrow a:hover{color:var(--ink);}
.footbrand{display:flex; align-items:center; gap:10px;}

/* ---------- scroll progress ---------- */
.scrollbar{
  position:fixed; top:env(safe-area-inset-top,0px); left:0; right:0; height:2px; z-index:60;
  transform-origin:0 50%; transform:scaleX(var(--progress,0));
  background:linear-gradient(90deg, var(--brass), var(--brass-ink));
  will-change:transform;
}

/* ---------- grain (tactile depth on dark bands) ---------- */
.band-pine{position:relative; isolation:isolate;}
.band-pine::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
}
.band-pine > .wrap, .band-pine > *{position:relative; z-index:1;}

/* ---------- gate mark ---------- */
.gate-mini{display:flex; align-items:center; flex-shrink:0;}
.gate-mini svg{width:22px; height:22px; overflow:visible;}
.gate-mini .g-post{stroke:currentColor;}
.gate-mini .g-leaf{stroke:currentColor; transform:none; transform-origin:23px 50px;}

.gate-hero{margin-bottom:14px; width:clamp(56px,6vw,80px); overflow:visible; color:var(--brass-ink);}
.gate-hero .g-post{stroke:currentColor; stroke-width:7;}
.gate-hero .g-leaf{
  stroke:var(--pine-text-soft); stroke-width:5;
  transform:scaleX(.06) skewY(-2deg); transform-origin:30px 80px;
  transition:transform 1.05s cubic-bezier(.19,1,.22,1);
}
.gate-hero.closed .g-leaf{transform:scaleX(1) skewY(0deg);}
.gate-hero .g-hinge{fill:var(--brass-ink);}

/* ---------- reveal on scroll ---------- */
body.reveal-ready .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
body.reveal-ready .reveal.in{opacity:1; transform:none;}

/* ---------- ghost numerals ---------- */
.svc-ghost{
  position:absolute; right:-8px; top:50%; transform:translateY(-50%);
  font-family:"Spectral", serif; font-style:italic; font-weight:500;
  font-size:clamp(84px,11vw,156px); line-height:1; color:var(--ink); opacity:.045;
  pointer-events:none; user-select:none; z-index:0;
  transition:opacity .4s ease, transform .5s ease;
}

/* ---------- refined hovers ---------- */
nav.links a{position:relative;}
nav.links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--ink);
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
nav.links a:hover::after, nav.links a.current::after{transform:scaleX(1);}
.btn-brass{transition:transform .18s ease, background .15s ease, box-shadow .18s ease;}
.btn-brass:hover{transform:translateY(-2px); box-shadow:0 10px 24px -12px rgba(140,107,48,.55);}
.btn-ghost-pine, .btn-ghost{transition:transform .18s ease, background .15s ease, border-color .15s ease;}
.btn-ghost-pine:hover, .btn-ghost:hover{transform:translateY(-2px);}
.arrow-link{display:inline-flex; align-items:center; gap:8px;}
.arrow-link svg{width:14px; height:14px; stroke:currentColor; transition:transform .25s ease;}
.arrow-link:hover svg{transform:translateX(4px);}

/* ---------- Explore tiles (home page links out to the other pages) ---------- */
.explore{padding-block:clamp(56px,7vw,90px);}
.explore-top h2{font-size:clamp(26px,3vw,34px);}
.explore-grid{
  display:grid; grid-template-columns:1fr; gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:32px;
}
@media (min-width:760px){ .explore-grid{grid-template-columns:repeat(3,1fr);} }
.explore-card{
  background:var(--bg); padding:28px 26px 26px; text-decoration:none; color:inherit;
  display:flex; flex-direction:column; gap:10px; transition:background .18s ease;
}
.explore-card:hover{background:var(--bg-sunken);}
.explore-card h3{font-size:20px;}
.explore-card p{font-size:15.5px; color:var(--ink-soft); flex:1;}
.explore-card .ex-arrow{
  display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--brass-ink); margin-top:4px;
}
.explore-card .ex-arrow svg{width:13px; height:13px; stroke:currentColor; transition:transform .2s ease;}
.explore-card:hover .ex-arrow svg{transform:translateX(3px);}

/* ---------- FAQ-style detail list (approach / compliance / about pages) ---------- */
.faq-list{display:grid; gap:0; margin-top:8px;}
.faq-item{padding-block:26px; border-top:1px solid var(--line);}
.faq-item:first-child{border-top:none;}
.faq-item h3{font-size:18.5px; margin-bottom:8px;}
.faq-item p{color:var(--ink-soft); max-width:64ch; font-size:16px;}

/* ---------- Detail card grid (compliance specifics, etc.) ---------- */
.detail-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (min-width:760px){ .detail-grid{grid-template-columns:repeat(3,1fr);} }
.detail-card{background:var(--bg); padding:22px 20px;}
.detail-card h3{font-size:16.5px; margin-bottom:8px;}
.detail-card p{font-size:14.5px; color:var(--ink-soft); margin:0;}

.callout{
  border:1px solid var(--line); background:var(--bg-sunken); border-radius:8px;
  padding:26px 28px; margin-top:36px;
}
.callout h3{font-size:18px; margin-bottom:8px;}
.callout p{font-size:16px; color:var(--ink-soft); max-width:62ch; margin:0;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:1fr; gap:48px;}
@media (min-width:920px){ .contact-grid{grid-template-columns:1.15fr .85fr;} }
.contact-form{display:grid; gap:20px; max-width:560px;}
.form-row{display:grid; grid-template-columns:1fr; gap:20px;}
@media (min-width:560px){ .form-row{grid-template-columns:1fr 1fr;} }
.form-field{display:flex; flex-direction:column; gap:7px;}
.form-field label{font-size:13.5px; color:var(--muted); font-weight:500;}
.form-field input, .form-field select, .form-field textarea{
  font-family:"IBM Plex Sans", sans-serif; font-size:16px; padding:13px 14px;
  border:1px solid var(--line); border-radius:5px; background:var(--bg-raised); color:var(--ink);
  outline:none; transition:border-color .15s ease, box-shadow .15s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  border-color:var(--brass-bright); box-shadow:0 0 0 3px var(--brass-soft);
}
.form-field textarea{min-height:130px; resize:vertical; font-family:inherit; line-height:1.5;}
.form-note{font-size:13.5px; color:var(--muted);}
.form-status{font-size:14.5px; color:var(--brass-ink); min-height:20px;}

.contact-info{
  border:1px solid var(--line); border-radius:8px; padding:30px 28px; background:var(--bg-sunken);
  height:fit-content;
}
.contact-info h3{font-size:19px; margin-bottom:14px;}
.contact-info p{font-size:15.5px; color:var(--ink-soft); margin-bottom:22px;}
.contact-info .copyline{color:var(--ink-soft); margin-bottom:22px;}
.contact-info .copyline button{border-color:var(--line); color:var(--ink-soft);}
.contact-info .copyline button:hover{border-color:var(--ink-soft); color:var(--ink);}
.contact-info .rule{margin-block:22px;}
.contact-info ul{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.contact-info li{font-size:14.5px; color:var(--ink-soft); padding-left:18px; position:relative;}
.contact-info li::before{content:"—"; position:absolute; left:0; color:var(--brass);}

@keyframes riseIn{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }
.hero-eyebrow{animation:riseIn .7s ease both; animation-delay:.05s;}
.hero h1{animation:riseIn .8s ease both; animation-delay:.16s;}
.hero p.lede{animation:riseIn .8s ease both; animation-delay:.3s;}
.hero .ctas{animation:riseIn .8s ease both; animation-delay:.44s;}
.hero-preview{animation:riseIn .9s ease both; animation-delay:.5s;}
