:root{
  --ink:#1B1811;
  --ink-soft:#25211A;
  --ink-line: rgba(246,241,228,.14);
  --paper:#F6F1E4;
  --paper-soft:#EEE6D2;
  --paper-line: rgba(27,24,17,.13);
  --clay:#B24B2C;
  --clay-dim: #8f3c23;
  --moss:#49563A;
  --moss-dim:#38431f;
  --gold:#C69433;
  --stone:#7C7462;
  --stone-dark:#5B5648;
  --radius: 3px;
  --serif: 'Fraunces', serif;
  --sans: 'Inter', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --maxw: 1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font:inherit; cursor:pointer;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

h1,h2,h3,h4{font-family:var(--serif); font-weight:500; letter-spacing:-0.01em; line-height:1.08;}

.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--clay);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:16px; height:1px; background:var(--clay);
}
.band-dark .eyebrow, .band-ink .eyebrow{ color:var(--gold); }
.band-dark .eyebrow::before, .band-ink .eyebrow::before{ background:var(--gold); }

:focus-visible{ outline: 2px solid var(--clay); outline-offset: 3px; }

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

/* ---------- nav ---------- */
header.site{
  position:sticky; top:0; z-index:100;
  background:rgba(246,241,228,.86);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--paper-line);
}
.navbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px; max-width:var(--maxw); margin:0 auto;
}
.brand{
  font-family:var(--serif); font-weight:600; font-size:22px; letter-spacing:-0.01em;
  display:flex; align-items:center; gap:8px;
}
.brand .mark{
  width:28px; height:28px;
  border-radius:4px;
  display:block;
  object-fit:cover;
  flex-shrink:0;
}
nav.links{display:flex; gap:30px; align-items:center;}
nav.links a{
  font-size:14px; color:var(--stone-dark); font-weight:500;
  position:relative; padding:4px 0;
}
nav.links a:hover{color:var(--ink);}
nav.links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--clay); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
nav.links a:hover::after{transform:scaleX(1);}
nav.links a.nav-ai{ color:var(--clay); }
nav.links a.nav-ai::after{ background:var(--clay); }
nav.links a.nav-cta{
  background:var(--clay); color:#fff; padding:11px 22px; border-radius:2px;
  font-size:13.5px; font-weight:600; border:1px solid var(--clay);
  letter-spacing:.02em;
  box-shadow:0 1px 0 rgba(27,24,17,.06), 0 6px 16px rgba(178,75,44,.22);
  transition:background .2s ease, border-color .2s ease, transform .18s ease, box-shadow .2s ease;
}
nav.links a.nav-cta::after{display:none;}
nav.links a.nav-cta:hover{
  background:var(--clay-dim); border-color:var(--clay-dim); color:#fff;
  transform:translateY(-1px);
  box-shadow:0 2px 0 rgba(27,24,17,.06), 0 10px 22px rgba(178,75,44,.28);
}
.nav-toggle{display:none; background:none; border:0; font-family:var(--mono); font-size:13px;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; font-weight:600; font-size:14.5px; border-radius:2px;
  border:1px solid transparent; transition:transform .18s ease, background .2s ease, border-color .2s ease;
}
.btn-primary{background:var(--clay); color:#fff;}
.btn-primary:hover{background:var(--clay-dim); transform:translateY(-1px);}
.btn-ghost{border-color:var(--paper-line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-ghost.on-dark{border-color:var(--ink-line); color:var(--paper);}
.btn-ghost.on-dark:hover{border-color:var(--gold);}
.btn-ghost .play{
  width:20px;height:20px;border-radius:50%; background:var(--ink); color:var(--paper);
  display:inline-flex; align-items:center; justify-content:center; font-size:9px;
}
.btn-gold{ background:var(--gold); color:var(--ink); }
.btn-gold:hover{ background:#b3831f; transform:translateY(-1px); }
.link-arrow{ color:var(--clay); font-weight:600; font-size:13.5px; display:inline-flex; align-items:center; gap:6px; }
.link-arrow:hover{ color:var(--clay-dim); }
.band-ink .link-arrow, .band-dark .link-arrow{ color:var(--gold); }

/* ---------- hero ---------- */
.hero{ position:relative; padding:88px 0 60px; background: var(--paper); overflow:hidden; }
.hero .wrap{ display:grid; grid-template-columns: 1.05fr .95fr; gap:56px; align-items:center; }
.hero h1{ font-size:clamp(38px, 4.6vw, 60px); margin:20px 0 22px; }
.hero h1 em{ font-style:normal; color:var(--clay); }
.hero p.lede{ font-size:17px; color:var(--stone-dark); max-width:480px; margin-bottom:26px; }
.chip-row{display:flex; flex-wrap:wrap; gap:9px; margin-bottom:34px;}
.chip{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.02em;
  padding:6px 11px; border:1px solid var(--paper-line); border-radius:20px;
  color:var(--stone-dark); background:var(--paper-soft);
}
.chip.chip-new{ border-color:var(--clay); color:var(--clay); background:transparent; }
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:18px;}
.hero-subcta{ font-size:13.5px; }

/* --- hero illustration: site plan / isometric plot --- */
.plot{ position:relative; aspect-ratio:1/1; width:100%; display:flex; align-items:center; justify-content:center; }
.plot svg{ width:100%; height:100%; overflow:visible; }
.plot-tag{
  position:absolute; top:6%; left:2%;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:var(--stone); border:1px dashed var(--paper-line); padding:5px 9px; border-radius:2px;
  background:rgba(246,241,228,.7);
}
.float-card{
  position:absolute;
  background:var(--paper); border:1px solid var(--paper-line);
  border-radius:3px; padding:10px 13px;
  box-shadow: 0 14px 30px -12px rgba(27,24,17,.25);
  font-family:var(--mono); font-size:11.5px; color:var(--stone-dark);
  display:flex; flex-direction:column; gap:2px;
  animation: drift 7s ease-in-out infinite;
}
.float-card b{font-family:var(--sans); font-size:15px; color:var(--ink); font-weight:700;}
.float-card.a{ top:2%; right:0%; animation-delay:0s;}
.float-card.b{ bottom:16%; left:-6%; animation-delay:1.4s;}
.float-card.c{ bottom:0%; right:6%; animation-delay:2.6s;}
@keyframes drift{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-7px);} }
.float-card .up{color:var(--moss); font-family:var(--sans); font-weight:600;}

/* ---------- section shells ---------- */
section{ padding:100px 0; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head.centered{ max-width:680px; margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(28px,3.4vw,40px); margin-top:16px;}
.section-head p{ color:var(--stone-dark); margin-top:14px; font-size:16px; max-width:520px;}
.section-head.centered p{ margin-left:auto; margin-right:auto; }
.band-dark, .band-ink{ background:var(--ink); color:var(--paper); }
.band-dark .section-head p, .band-ink .section-head p{ color:rgba(246,241,228,.7); }
.band-soft{ background:var(--paper-soft); }
.section-foot-link{ margin-top:44px; text-align:center; }

/* ---------- flow diagram ---------- */
.flow{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0; position:relative; }
.flow-node{ display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; width:150px; position:relative; }
.flow-node .dot{
  width:56px; height:56px; border-radius:50%;
  background:var(--ink-soft); border:1px solid var(--ink-line);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:20px; color:var(--gold);
}
.flow-node span{font-size:13.5px; color:rgba(246,241,228,.85); font-weight:500;}
.flow-arrow{
  flex:1; min-width:24px; height:1px; background:repeating-linear-gradient(90deg, rgba(246,241,228,.35) 0 6px, transparent 6px 12px);
  position:relative; align-self:center; margin-top:-30px;
}
.flow-arrow::after{ content:"→"; position:absolute; right:-4px; top:-9px; color:rgba(246,241,228,.55); font-size:14px; }
@media(max-width:860px){
  .flow{flex-direction:column; align-items:flex-start; gap:26px;}
  .flow-node{flex-direction:row; width:auto; text-align:left;}
  .flow-arrow{display:none;}
}

/* ---------- feature parcels ---------- */
.parcels{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-line); border:1px solid var(--paper-line); }
.parcel{ background:var(--paper); padding:38px 32px; position:relative; }
.parcel::before, .parcel::after{ content:""; position:absolute; width:10px; height:10px; border:1px solid var(--stone); opacity:.55; }
.parcel::before{ top:10px; left:10px; border-right:0; border-bottom:0;}
.parcel::after{ bottom:10px; right:10px; border-left:0; border-top:0;}
.parcel .plot-no{ font-family:var(--mono); font-size:11px; color:var(--clay); letter-spacing:.06em; margin-bottom:18px; }
.parcel h3{ font-size:21px; margin-bottom:10px; }
.parcel p{ color:var(--stone-dark); font-size:14.5px; margin-bottom:20px; }
.microflow{ display:flex; flex-wrap:wrap; gap:6px; font-family:var(--mono); font-size:11px; color:var(--stone-dark); }
.microflow .step{ background:var(--paper-soft); border:1px solid var(--paper-line); padding:5px 9px; border-radius:2px; }
.microflow.on-dark .step{ background:var(--ink-soft); border-color:var(--ink-line); color:rgba(246,241,228,.85); }
.microflow .sep{ color:var(--stone); align-self:center; }
@media(max-width:900px){ .parcels{grid-template-columns:1fr;} }

/* ---------- gold/moss banner (maintenance company) ---------- */
.banner{
  background:var(--moss); color:var(--paper); border-radius:4px; padding:54px 48px;
  display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;
}
.banner .eyebrow{ color:#DDD3AE; }
.banner .eyebrow::before{ background:#DDD3AE; }
.banner h2{ font-size:clamp(26px,3vw,34px); color:#fff; margin:14px 0 16px; }
.banner p{ color:rgba(246,241,228,.82); font-size:15.5px; margin-bottom:26px; max-width:460px; }
.stack{ display:flex; flex-direction:column; gap:0; font-family:var(--mono); font-size:13px; }
.stack .row{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; border-bottom:1px dashed rgba(246,241,228,.25); }
.stack .row:last-child{ border-bottom:0; }
.stack .row b{ font-family:var(--serif); font-size:19px; font-weight:600; color:var(--gold); }
@media(max-width:860px){ .banner{grid-template-columns:1fr; padding:38px 26px;} }

/* ---------- accounting spotlight ---------- */
.ledger{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--ink-line); border:1px solid var(--ink-line); margin-top:10px; }
.ledger .cell{ background:var(--ink-soft); padding:22px 20px; }
.ledger .cell span{ display:block; font-family:var(--mono); font-size:11.5px; color:var(--gold); letter-spacing:.05em; margin-bottom:8px;}
.ledger .cell p{ font-size:14px; color:rgba(246,241,228,.82); }
@media(max-width:760px){ .ledger{grid-template-columns:repeat(2,1fr);} }
.future-ready{ margin-top:28px; padding-top:22px; border-top:1px dashed var(--ink-line); }
.future-ready .fr-label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--gold); margin-bottom:12px; }
.future-ready .chip-row{ margin-bottom:0; }
.future-ready .chip{ border-color:var(--gold); color:var(--gold); background:transparent; }

/* ---------- comparison ---------- */
.compare{ width:100%; border-collapse:collapse; font-size:14.5px; }
.compare th, .compare td{ text-align:left; padding:16px 18px; border-bottom:1px solid var(--paper-line); }
.compare thead th{ font-family:var(--mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--stone); border-bottom:1px solid var(--ink); }
.compare td.yes{ color:var(--moss); font-weight:600; }
.compare td.no{ color:var(--clay); }
.compare tr:hover td{ background:var(--paper-soft); }
.compare th:not(:first-child), .compare td:not(:first-child){ text-align:center; }

/* ---------- trust ---------- */
.trust-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.trust-item{ padding:26px 0; border-top:1px solid var(--paper-line); }
.trust-item .num{ font-family:var(--mono); font-size:12px; color:var(--clay); margin-bottom:10px; }
.trust-item h4{ font-size:17px; margin-bottom:8px; }
.trust-item p{ font-size:13.5px; color:var(--stone-dark); }
@media(max-width:760px){ .trust-grid{grid-template-columns:1fr;} }

/* ---------- pilot ---------- */
.pilot{
  border:1px solid var(--paper-line); border-radius:4px; padding:44px; text-align:center;
  background: repeating-linear-gradient(135deg, var(--paper) 0 22px, var(--paper-soft) 22px 23px);
}
.pilot h3{ font-size:24px; margin-bottom:12px; }
.pilot p{ color:var(--stone-dark); max-width:480px; margin:0 auto 22px; font-size:15px; }

/* ---------- demo form ---------- */
.demo-wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; }
.demo-copy h2{ font-size:clamp(26px,3.2vw,36px); margin:16px 0 16px; }
.demo-copy p{ color:var(--stone-dark); margin-bottom:26px; max-width:420px; }
.demo-list{ display:flex; flex-direction:column; gap:14px; font-size:14.5px; }
.demo-list li{ display:flex; gap:10px; align-items:baseline; }
.demo-list li::before{ content:"—"; color:var(--clay); font-family:var(--mono); }
form.demo{ background:var(--paper); border:1px solid var(--paper-line); border-radius:4px; padding:36px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field.full{ grid-column:1/-1; }
.field label{ font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--stone-dark); text-transform:uppercase; }
.field input, .field select{
  border:1px solid var(--paper-line); background:var(--paper-soft); padding:12px 14px; font-family:var(--sans);
  font-size:14.5px; border-radius:2px; color:var(--ink);
}
.field input:focus, .field select:focus{ border-color:var(--clay); outline:none; background:var(--paper); }
form.demo .btn{ width:100%; justify-content:center; margin-top:6px; }
.form-note{ font-size:12px; color:var(--stone); margin-top:14px; text-align:center; }
@media(max-width:900px){ .demo-wrap{grid-template-columns:1fr;} .form-grid{grid-template-columns:1fr;} }

/* ================================================================
   NEW — AI / Smart Community Operating System components
   ================================================================ */

/* positioning table (Today -> Tomorrow) */
.position-table{ display:grid; grid-template-columns:1fr auto 1fr; border:1px solid var(--ink-line); border-radius:4px; overflow:hidden; margin-top:10px;}
.position-table .col-head{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; padding:14px 20px; text-align:center; }
.position-table .col-head.today{ background:var(--ink-soft); color:var(--stone); }
.position-table .col-head.tomorrow{ background:var(--clay); color:#fff; font-weight:700; }
.position-table .col-head.mid{ background:transparent; }
.position-table .cell{ padding:16px 20px; font-size:14px; border-top:1px solid var(--ink-line); display:flex; align-items:center; }
.position-table .cell.today{ color:rgba(246,241,228,.75); }
.position-table .cell.tomorrow{ color:var(--gold); font-weight:600; }
.position-table .cell.mid{ justify-content:center; color:var(--stone); border-top:1px solid var(--ink-line); }
@media(max-width:700px){
  .position-table{ grid-template-columns:1fr; }
  .position-table .col-head.mid, .position-table .cell.mid{ display:none; }
}

/* AI intelligence layer diagram */
.ai-diagram{ margin-top:10px; }
.ai-inputs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:4px; }
.ai-inputs .in-pill{
  flex:1; min-width:110px; text-align:center; font-family:var(--mono); font-size:11.5px;
  background:var(--ink-soft); border:1px solid var(--ink-line); color:rgba(246,241,228,.85);
  padding:12px 8px; border-radius:2px;
}
.ai-down-row{ display:flex; }
.ai-down-row span{ flex:1; min-width:110px; text-align:center; color:var(--gold); font-size:13px; padding:4px 0; }
.ai-layer-band{
  background:linear-gradient(90deg, var(--clay), var(--clay-dim));
  color:#fff; text-align:center; padding:16px; border-radius:2px;
  font-family:var(--mono); font-weight:700; letter-spacing:.18em; font-size:13.5px; margin-bottom:22px;
}
.ai-outputs{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.ai-outputs .out-card{
  background:var(--ink-soft); border:1px solid var(--ink-line); border-radius:3px; padding:20px 12px;
  text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px;
}
.ai-outputs .out-card .glyph{
  width:44px; height:44px; border-radius:50%; background:var(--gold); color:var(--ink);
  display:flex; align-items:center; justify-content:center; font-size:18px;
}
.ai-outputs .out-card span{ font-size:12px; font-weight:600; color:var(--paper); line-height:1.35; }
.ai-tagline{ text-align:center; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gold); margin-top:30px; }
@media(max-width:900px){ .ai-inputs .in-pill, .ai-down-row span{min-width:31%;} .ai-outputs{grid-template-columns:repeat(3,1fr);} }
@media(max-width:560px){ .ai-outputs{grid-template-columns:repeat(2,1fr);} }

/* AI assistant chat cards */
.chat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.chat-card{ background:var(--ink-soft); border:1px solid var(--ink-line); border-radius:5px; padding:22px; }
.chat-card .role{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--stone); margin-bottom:14px; }
.chat-card .q{ background:#332C1E; border-radius:5px; padding:14px 16px; font-size:13.5px; color:#EFE7D3; margin-bottom:16px; line-height:1.5; }
.chat-card .a-label{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.chat-card .a-label .badge{ width:24px; height:24px; border-radius:50%; background:var(--gold); color:var(--ink); font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; font-family:var(--mono);}
.chat-card .a-label span{ font-family:var(--mono); font-size:11px; color:var(--gold); font-weight:700; }
.chat-card .a{ border:1px solid var(--gold); border-radius:5px; padding:14px 16px; font-size:13.5px; color:var(--paper); line-height:1.5; }
@media(max-width:900px){ .chat-grid{grid-template-columns:1fr;} }

/* IoT vertical flows */
.iot-flows{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:10px; }
.iot-flow-head{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.iot-flow-head .glyph{ width:40px; height:40px; border-radius:50%; background:var(--moss); color:var(--paper); display:flex; align-items:center; justify-content:center; font-size:17px; }
.iot-flow-head h4{ font-size:15px; font-weight:700; }
.iot-steps .step-box{
  background:var(--paper); border:1px solid var(--paper-line); border-radius:2px; padding:10px 14px;
  font-family:var(--mono); font-size:12px; text-align:center; color:var(--stone-dark);
}
.iot-steps .down{ text-align:center; color:var(--moss); font-size:12px; padding:3px 0; }
@media(max-width:800px){ .iot-flows{grid-template-columns:1fr;} }

.connected-strip{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:36px; }
.iot-chip{ display:flex; flex-direction:column; align-items:center; gap:8px; width:104px; text-align:center; }
.iot-chip .glyph{
  width:46px; height:46px; border-radius:50%; background:var(--ink-soft); border:1px solid var(--ink-line);
  display:flex; align-items:center; justify-content:center; font-size:19px;
}
.iot-chip span{ font-size:11px; font-weight:600; color:rgba(246,241,228,.85); }

/* predictive analytics cards */
.predict-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.predict-card{ background:var(--ink-soft); border:1px solid var(--ink-line); border-radius:4px; padding:22px 14px; text-align:center; }
.predict-card .glyph{ width:42px; height:42px; margin:0 auto 14px; border-radius:50%; background:var(--gold); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:17px;}
.predict-card .val{ font-family:var(--serif); font-weight:700; font-size:22px; color:var(--paper); }
.predict-card .sub{ font-size:11px; color:#9BB37E; margin-top:2px; }
.predict-card .lbl{ font-family:var(--mono); font-size:9.5px; color:var(--stone); letter-spacing:.05em; margin-top:12px; line-height:1.4; }
@media(max-width:900px){ .predict-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .predict-grid{grid-template-columns:1fr;} }

/* AI financial intelligence */
.fin-flow{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:36px; }
.fin-flow .fin-in{ display:flex; gap:8px; }
.fin-flow .fin-in span{ font-family:var(--mono); font-size:11px; background:var(--paper-soft); border:1px solid var(--paper-line); padding:9px 12px; border-radius:2px; }
.fin-flow .arrow{ color:var(--stone); font-size:16px; }
.fin-flow .ai-node{ width:52px; height:52px; border-radius:50%; background:var(--clay); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:700; font-size:13px; }
.fin-flow .fin-out{ display:flex; gap:8px; flex-wrap:wrap; flex:1; }
.fin-flow .fin-out span{ font-family:var(--mono); font-size:10.5px; background:var(--paper); border:1px solid var(--clay); color:var(--clay); padding:8px 10px; border-radius:2px; }
.fin-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.fin-cards .card{ background:#fff; border:1px solid var(--paper-line); border-radius:4px; padding:22px 16px; text-align:center; }
.fin-cards .card .glyph{ width:42px; height:42px; margin:0 auto 12px; border-radius:50%; background:var(--clay); color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; }
.fin-cards .card .val{ font-family:var(--serif); font-weight:700; font-size:21px; }
.fin-cards .card .lbl{ font-family:var(--mono); font-size:9.5px; color:var(--stone-dark); letter-spacing:.05em; margin-top:8px; }
@media(max-width:900px){ .fin-cards{grid-template-columns:repeat(2,1fr);} }

/* roadmap columns */
.roadmap-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-line); border:1px solid var(--paper-line); }
.roadmap-col{ background:#fff; }
.roadmap-col .rc-head{ font-family:var(--mono); font-weight:700; font-size:12.5px; letter-spacing:.12em; text-align:center; padding:16px; color:#fff; }
.roadmap-col.today .rc-head{ background:var(--moss); }
.roadmap-col.next .rc-head{ background:var(--gold); color:var(--ink); }
.roadmap-col.future .rc-head{ background:var(--clay); }
.roadmap-col ul{ padding:22px 24px; display:flex; flex-direction:column; gap:14px; }
.roadmap-col li{ font-size:13.5px; display:flex; align-items:center; gap:10px; }
.roadmap-col .mark{ font-size:13px; flex-shrink:0; }
.roadmap-col.today .mark{ color:var(--moss); }
.roadmap-col.next .mark{ color:var(--gold); }
.roadmap-col.future .mark{ color:var(--clay); }
@media(max-width:860px){ .roadmap-grid{grid-template-columns:1fr;} }

/* mini AI teaser row used on homepage under features */
.ai-teaser-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px; }
.ai-teaser-card{ background:var(--ink-soft); border:1px solid var(--ink-line); border-radius:4px; padding:26px; }
.ai-teaser-card .glyph{ width:40px; height:40px; border-radius:50%; background:var(--gold); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:16px; margin-bottom:16px; }
.ai-teaser-card h4{ font-size:15.5px; color:var(--paper); margin-bottom:8px; }
.ai-teaser-card p{ font-size:12.5px; color:rgba(246,241,228,.65); line-height:1.5; }
@media(max-width:860px){ .ai-teaser-row{grid-template-columns:1fr;} }

/* small subpage hero */
.subhero{ padding:64px 0 20px; }
.subhero h1{ font-size:clamp(30px,4vw,44px); margin:16px 0 18px; }
.subhero p.lede{ font-size:16px; color:var(--stone-dark); max-width:640px; }
.band-ink .subhero p.lede{ color:rgba(246,241,228,.72); }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:rgba(246,241,228,.72); padding:70px 0 30px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px; margin-bottom:60px; }
.foot-grid h5{ font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.foot-grid ul{ display:flex; flex-direction:column; gap:11px; font-size:14px; }
.foot-grid ul a:hover{ color:#fff; }
.foot-brand p{ font-size:14px; margin:14px 0 0; max-width:260px; color:rgba(246,241,228,.55); }
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:26px;
  border-top:1px solid rgba(246,241,228,.14); font-size:12.5px; color:rgba(246,241,228,.45); flex-wrap:wrap; gap:12px;
}
@media(max-width:860px){ .foot-grid{grid-template-columns:1fr 1fr;} }

/* ---------- responsive nav ---------- */
@media(max-width:900px){
  nav.links{
    position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column;
    padding:40px 28px; gap:26px; transform:translateY(-110%); transition:transform .3s ease; z-index:90;
  }
  nav.links.open{ transform:translateY(0); }
  .nav-toggle{ display:block; }
  .hero .wrap{ grid-template-columns:1fr; }
  .hero .plot{ order:-1; max-width:420px; margin:0 auto; }
  .parcels, .demo-wrap{ grid-template-columns:1fr; }
}
