/* ============================================================
   LandMaps — token system
   ink        #10161A  base background, near-black charcoal-navy
   ink-soft   #1B242A  raised panels on dark
   ink-line   #28343B  hairlines on dark
   paper      #EFE9D8  aged parchment — used only in "deed" motif
   paper-line #D8CDA9  hairlines on paper
   brass      #BE8C3E  accent — survey stamp / seal
   verified   #2E9C6C  verification green (matches product UI)
   survey     #3E72A6  map / water blue (matches product UI)
   ============================================================ */

:root{
  --ink:#10161A;
  --ink-soft:#1B242A;
  --ink-soft-2:#212B32;
  --ink-line:#2A363E;
  --paper:#EFE9D8;
  --paper-line:#D8CDA9;
  --brass:#BE8C3E;
  --brass-light:#D9AE6C;
  --verified:#2E9C6C;
  --survey:#3E72A6;
  --text-hi:#F2EEE2;
  --text-mid:#AEB6BA;
  --text-dim:#77828A;
  --font-display:'Fraunces', serif;
  --font-body:'Sora', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--ink);
  color:var(--text-hi);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
img{max-width:100%;display:block;}

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

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.08;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}

.section-eyebrow{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 14px;
}
.section-eyebrow.light{color:var(--brass-light);}

/* ---------- texture layers ---------- */
.grid-overlay{
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(to right, rgba(190,140,62,0.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(190,140,62,0.035) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, black, transparent 75%);
}

.coord-ticker{
  position:fixed; bottom:0; left:0; right:0; z-index:40;
  background:var(--ink-soft);
  border-top:1px solid var(--ink-line);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--text-dim);
  padding:7px 20px;
  white-space:nowrap;
  overflow:hidden;
}
@media (max-width:720px){ .coord-ticker{display:none;} }

/* ---------- header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
.site-header.scrolled{
  background:rgba(16,22,26,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ink-line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px;
}
.logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:19px; font-weight:600; color:var(--text-hi);}
.logo-word em{font-style:normal; color:var(--brass);}
.main-nav{display:flex; align-items:center; gap:30px; font-size:14.5px;}
.main-nav a{color:var(--text-mid); transition:color .2s;}
.main-nav a:hover{color:var(--text-hi);}
.main-nav a.nav-cta{
  color:var(--ink); background:var(--brass);
  padding:9px 18px; border-radius:3px; font-weight:600;
}
.main-nav a.nav-cta:hover{background:var(--brass-light); color:var(--ink);}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;}
.nav-toggle span{width:22px; height:1.6px; background:var(--text-hi); display:block;}

@media (max-width:880px){
  .main-nav{
    position:fixed; top:64px; left:0; right:0; bottom:0;
    background:var(--ink); flex-direction:column; align-items:flex-start;
    padding:30px 32px; gap:22px; font-size:18px;
    transform:translateX(100%); transition:transform .3s ease;
  }
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 26px; border-radius:3px; font-weight:600; font-size:15px;
  border:1px solid transparent; transition:transform .18s ease, background .2s, border-color .2s, color .2s;
}
.btn-brass{background:var(--brass); color:var(--ink);}
.btn-brass:hover{background:var(--brass-light); transform:translateY(-1px);}
.btn-ghost{border-color:var(--ink-line); color:var(--text-hi);}
.btn-ghost:hover{border-color:var(--brass); color:var(--brass-light);}
.btn-lg{padding:17px 34px; font-size:16px;}

/* ---------- hero ---------- */
.hero{
  position:relative; z-index:1;
  padding:172px 0 96px;
  overflow:hidden;
}
.hero-inner{
  display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
}
.eyebrow{
  display:flex; align-items:center; gap:9px;
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-dim); margin-bottom:22px;
}
.stamp-dot{width:7px; height:7px; border-radius:50%; background:var(--verified); box-shadow:0 0 0 3px rgba(46,156,108,0.18);}
.hero h1{
  font-size:clamp(2.4rem, 4.4vw, 3.6rem);
  color:var(--text-hi);
}
.ink-brass{color:var(--brass);}
.hero-sub{
  font-size:17.5px; color:var(--text-mid); max-width:52ch; margin:22px 0 34px;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:52px;}
.hero-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
  border-top:1px solid var(--ink-line); padding-top:26px;
}
.hero-stats strong{
  display:block; font-family:var(--font-display); font-size:22px; color:var(--brass-light); margin-bottom:4px;
}
.hero-stats span{font-size:13px; color:var(--text-dim); line-height:1.45;}

.hero-visual{position:relative;}
.hero-map{width:100%; height:auto; display:block;}
.pin circle:first-child{animation:pinPulse 2.6s ease-in-out infinite;}
.pin-2 circle:first-child{animation-delay:.4s;}
.pin-3 circle:first-child{animation-delay:.9s;}
.pin-4 circle:first-child{animation-delay:1.3s;}
@keyframes pinPulse{
  0%,100%{opacity:1;}
  50%{opacity:.55;}
}
.map-label{opacity:.85;}
.seal{
  position:absolute; right:-6px; bottom:-10px;
  background:var(--ink); border-radius:50%;
  animation:sealSpin 34s linear infinite;
}
@keyframes sealSpin{ to{ transform:rotate(360deg);} }

@media (max-width:980px){
  .hero-inner{grid-template-columns:1fr; text-align:left;}
  .hero-visual{max-width:400px; margin:0 auto;}
  .hero{padding-top:140px;}
}
@media (max-width:560px){
  .hero-stats{grid-template-columns:1fr; gap:16px;}
}

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

/* ---------- problem / deed cards ---------- */
.problem{padding:110px 0; position:relative; z-index:1;}
.problem h2{font-size:clamp(1.8rem,3vw,2.4rem); max-width:18ch; color:var(--text-hi);}
.deed-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:48px;
}
.deed-card{
  background:var(--paper); color:#2A2115;
  border:1px solid var(--paper-line);
  padding:34px 34px 30px;
  position:relative;
  clip-path:polygon(0 0,100% 0,100% 96%,97% 100%,0 100%);
}
.deed-card::before{
  content:"";
  position:absolute; inset:10px;
  border:1px dashed rgba(42,33,21,0.28);
  pointer-events:none;
}
.deed-tag{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:#8A5A1E; display:inline-block; margin-bottom:18px;
  border-bottom:1px solid rgba(138,90,30,0.4); padding-bottom:6px;
}
.deed-card ul li{
  font-size:15px; line-height:1.6; color:#3A3020; padding:11px 0 11px 22px;
  border-top:1px solid rgba(42,33,21,0.14); position:relative;
}
.deed-card ul li:first-child{border-top:none;}
.deed-card ul li::before{
  content:"—"; position:absolute; left:0; color:#8A5A1E;
}
@media (max-width:820px){ .deed-grid{grid-template-columns:1fr;} }

/* ---------- solution / feature grid ---------- */
.solution{padding:110px 0; position:relative; z-index:1;}
.solution h2{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--text-hi); max-width:18ch;}
.feature-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  margin-top:48px; background:var(--ink-line);
  border:1px solid var(--ink-line);
}
.feature-card{
  background:var(--ink-soft); padding:34px 30px; transition:background .25s ease;
}
.feature-card:hover{background:var(--ink-soft-2);}
.feature-icon{width:32px; height:32px; margin-bottom:20px;}
.feature-icon svg{width:100%; height:100%;}
.feature-card h3{font-size:18px; color:var(--text-hi); margin-bottom:10px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.feature-card p{font-size:14.5px; color:var(--text-mid); margin:0;}
.tier-flag{
  font-family:var(--font-mono); font-size:10px; letter-spacing:.06em;
  background:rgba(190,140,62,0.15); color:var(--brass-light);
  padding:3px 7px; border-radius:2px; text-transform:uppercase;
}
@media (max-width:920px){ .feature-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .feature-grid{grid-template-columns:1fr;} }

/* ---------- product preview ---------- */
.preview{padding:110px 0; position:relative; z-index:1; border-top:1px solid var(--ink-line);}
.preview h2{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--text-hi);}
.preview-lede{color:var(--text-mid); font-size:16.5px; max-width:60ch; margin:0 0 20px;}
.device-row{
  display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:center;
  margin-top:68px;
}
.device-row.reverse{grid-template-columns:1fr 1.5fr;}
.device-row.reverse .device{order:2;}
.device-row.reverse .device-caption{order:1;}
.device{
  border:1px solid var(--ink-line); border-radius:8px; overflow:hidden;
  background:#0B0F12; box-shadow:0 30px 70px -30px rgba(0,0,0,0.6);
}
.device-chrome{
  display:flex; align-items:center; gap:6px; padding:11px 14px;
  background:var(--ink-soft); border-bottom:1px solid var(--ink-line);
}
.device-chrome span{width:9px; height:9px; border-radius:50%; background:#3A454C;}
.device-url{
  margin-left:14px; font-family:var(--font-mono); font-size:11px; color:var(--text-dim);
  background:var(--ink); padding:4px 10px; border-radius:3px;
}
.device img{width:100%; display:block;}
.cap-num{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--survey);
}
.device-caption h4{font-size:22px; color:var(--text-hi); margin:12px 0 12px; font-family:var(--font-display);}
.device-caption p{color:var(--text-mid); font-size:15px; margin:0;}
@media (max-width:860px){
  .device-row, .device-row.reverse{grid-template-columns:1fr;}
  .device-row.reverse .device{order:1;}
  .device-row.reverse .device-caption{order:2;}
}

/* ---------- opportunity / market ---------- */
.opportunity{
  padding:110px 0; position:relative; z-index:1;
  background:linear-gradient(180deg, var(--ink-soft), var(--ink));
  border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line);
}
.opportunity h2.light{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--text-hi); max-width:22ch;}
.stat-row{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  margin:48px 0 44px; background:var(--ink-line); border:1px solid var(--ink-line);
}
.stat{background:var(--ink); padding:28px 24px;}
.stat strong{
  display:block; font-family:var(--font-display); font-size:30px; color:var(--brass-light); margin-bottom:10px;
}
.stat span{font-size:13.5px; color:var(--text-mid); line-height:1.5;}
.why-list{max-width:70ch;}
.why-list li{
  font-size:15px; color:var(--text-mid); padding:14px 0 14px 26px;
  border-top:1px solid var(--ink-line); position:relative;
}
.why-list li:first-child{border-top:none;}
.why-list li::before{content:"›"; position:absolute; left:0; color:var(--brass);}
@media (max-width:920px){ .stat-row{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .stat-row{grid-template-columns:1fr;} }

/* ---------- founding partner ---------- */
.partner{padding:110px 0; position:relative; z-index:1;}
.partner h2{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--text-hi);}
.benefit-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:30px 34px; margin:52px 0 76px;
}
.benefit-num{
  font-family:var(--font-mono); font-size:12px; color:var(--brass); letter-spacing:.08em;
}
.benefit h4{font-size:17px; color:var(--text-hi); margin:10px 0 8px; font-family:var(--font-display);}
.benefit p{font-size:14px; color:var(--text-mid); margin:0;}
@media (max-width:820px){ .benefit-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .benefit-grid{grid-template-columns:1fr;} }

.tiers{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.tier{
  border:1px solid var(--ink-line); border-radius:6px; padding:32px 26px;
  background:var(--ink-soft);
}
.tier-highlight{
  border-color:var(--brass); background:linear-gradient(180deg, rgba(190,140,62,0.09), var(--ink-soft) 40%);
  position:relative;
}
.tier h4{font-size:18px; color:var(--text-hi); margin-bottom:4px; font-family:var(--font-display);}
.tier-period{font-family:var(--font-mono); font-size:11.5px; color:var(--text-dim); letter-spacing:.05em;}
.tier ul{margin:22px 0 26px;}
.tier ul li{
  font-size:14px; color:var(--text-mid); padding:8px 0 8px 20px; position:relative;
  border-top:1px solid var(--ink-line);
}
.tier ul li:first-child{border-top:none;}
.tier ul li::before{content:"+"; position:absolute; left:0; color:var(--verified);}
.tier-price{font-family:var(--font-mono); font-size:12px; color:var(--brass-light);}
@media (max-width:860px){ .tiers{grid-template-columns:1fr;} }

/* ---------- roadmap timeline ---------- */
.roadmap{padding:110px 0; position:relative; z-index:1; border-top:1px solid var(--ink-line);}
.roadmap h2{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--text-hi);}
.timeline{
  display:grid; grid-template-columns:repeat(5,1fr); gap:24px;
  margin-top:56px; position:relative;
}
.timeline::before{
  content:""; position:absolute; top:9px; left:0; right:0; height:1px;
  background:repeating-linear-gradient(to right, var(--brass) 0 6px, transparent 6px 12px);
  z-index:0;
}
.tl-item{position:relative; padding-top:30px;}
.tl-item::before{
  content:""; position:absolute; top:0; left:0; width:9px; height:9px; border-radius:50%;
  background:var(--brass); box-shadow:0 0 0 4px var(--ink);
}
.tl-phase{font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--brass-light);}
.tl-month{display:block; font-family:var(--font-mono); font-size:11px; color:var(--text-dim); margin:4px 0 12px;}
.tl-item h4{font-size:16.5px; color:var(--text-hi); margin:0 0 8px; font-family:var(--font-display);}
.tl-item p{font-size:13.5px; color:var(--text-mid); margin:0;}
@media (max-width:980px){
  .timeline{grid-template-columns:1fr 1fr; row-gap:40px;}
  .timeline::before{display:none;}
}
@media (max-width:560px){ .timeline{grid-template-columns:1fr;} }

/* ---------- founder ---------- */
.founder{padding:90px 0; position:relative; z-index:1; background:var(--ink-soft); border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line);}
.founder-inner{max-width:820px;}
.founder-text{font-family:var(--font-display); font-size:22px; line-height:1.55; color:var(--text-hi); font-weight:400;}

/* ---------- contact ---------- */
.contact{padding:120px 0 140px; position:relative; z-index:1; text-align:center;}
.contact .section-eyebrow{justify-content:center;}
.contact h2{font-size:clamp(2rem,4vw,3rem); color:var(--text-hi);}
.contact .preview-lede{margin-left:auto; margin-right:auto; text-align:center;}
.contact-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  max-width:760px; margin:48px auto 46px; background:var(--ink-line); border:1px solid var(--ink-line);
}
.contact-card{background:var(--ink-soft); padding:26px 20px;}
.contact-label{display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:10px;}
.contact-card a, .contact-card span{font-size:15.5px; color:var(--text-hi);}
.contact-card a:hover{color:var(--brass-light);}
@media (max-width:700px){ .contact-grid{grid-template-columns:1fr;} }

/* ---------- footer ---------- */
.site-footer{
  padding:44px 0 70px; position:relative; z-index:1; border-top:1px solid var(--ink-line);
}
.footer-inner{display:flex; flex-direction:column; gap:10px;}
.footer-inner .logo{font-size:16px;}
.footer-inner p{font-size:13px; color:var(--text-dim); margin:0;}
.footer-copy{color:#4E5760 !important;}
