:root{
  --ink:#1B1712;
  --paper:#F0EEE9;
  --paper-deep:#E6E0D3;
  --indigo:#2E3A66;
  --ochre:#B8842E;
  --line:#D8D2C4;
  --line-on-ink:rgba(240,238,233,0.18);
  --text:#211D18;
  --text-soft:#5B554D;
  --text-on-ink:#F0EEE9;
  --text-on-ink-soft:rgba(240,238,233,0.72);
  --font-display:'Fraunces', serif;
  --font-body:'IBM Plex Sans', sans-serif;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img,svg{display:block; max-width:100%;}
section{padding:5rem 1.75rem;}
.wrap{max-width:72rem; margin:0 auto;}
h1,h2,h3{font-family:var(--font-display); font-weight:500; letter-spacing:-0.01em;}

/* Header */
header{
  position:sticky; top:0; z-index:10;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:72rem; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 1.75rem;
}
.wordmark{font-family:var(--font-display); font-size:1.15rem; font-weight:500;}
.navlinks{display:flex; gap:2rem; font-size:0.95rem; color:var(--text-soft);}
.navlinks a{border-bottom:1px solid transparent; padding-bottom:2px; transition:border-color .2s ease, color .2s ease;}
.navlinks a:hover{color:var(--text); border-color:var(--ochre);}

/* Hero (home) */
.hero{
  background:var(--ink); color:var(--text-on-ink);
  padding:6rem 1.75rem 5rem;
}
.hero-grid{
  max-width:72rem; margin:0 auto;
  display:grid; grid-template-columns:1.3fr 1fr; gap:3rem; align-items:center;
}
.hero h1{
  font-size:clamp(2.3rem, 5vw, 3.6rem);
  line-height:1.08;
  max-width:16ch;
}
.hero p{
  margin-top:1.5rem; max-width:38ch;
  color:var(--text-on-ink-soft); font-size:1.05rem;
}
.cta{
  display:inline-block; margin-top:2.2rem;
  font-size:0.95rem; border-bottom:1px solid var(--text-on-ink-soft);
  padding-bottom:3px; transition:border-color .2s ease, color .2s ease;
}
.cta:hover{border-color:var(--ochre); color:var(--ochre);}

.house3d-wrap{ position:relative; width:100%; max-width:340px; height:320px; margin:0 auto; }
#house3d{ position:absolute; inset:0; width:100%; height:100%; cursor:grab; }
.house3d-hint{
  position:absolute; left:0; right:0; bottom:-1.7rem; text-align:center;
  font-size:.8rem; color:var(--text-on-ink-soft); display:none;
}
.house-icon{ position:absolute; inset:0; margin:auto; width:100%; max-width:260px; max-height:100%; }
.house-icon path, .house-icon line{
  fill:none; stroke:var(--text-on-ink-soft); stroke-width:1.4;
  stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:600; stroke-dashoffset:600;
  animation:draw 1.8s ease forwards .3s;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce){
  .house-icon path, .house-icon line{ animation:none; stroke-dashoffset:0; }
}

/* About */
.about-grid{
  display:grid; grid-template-columns:1.4fr 1fr; gap:3rem;
  align-items:start;
}
.about-grid p{ color:var(--text-soft); font-size:1.05rem; max-width:52ch; }
.about-grid p + p{ margin-top:1rem; }
.stat-box{
  border:1px solid var(--line); padding:1.75rem;
}
.stat-box .num{ font-family:var(--font-display); font-size:2.6rem; }
.stat-box .cap{ margin-top:.4rem; color:var(--text-soft); font-size:.95rem; }

/* Ventures directory */
.ventures{ background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ventures h2{ font-size:1.9rem; margin-bottom:.6rem; }
.ventures > .wrap > p{ color:var(--text-soft); max-width:48ch; margin-bottom:2.5rem; }

.venture-row{
  display:grid; grid-template-columns:1.1fr 2fr 1fr 1fr;
  gap:1.5rem; align-items:center;
  padding:1.4rem 0; border-top:1px solid var(--line);
}
.venture-row:last-child{ border-bottom:1px solid var(--line); }
.venture-row .name{ font-family:var(--font-display); font-size:1.15rem; transition:color .2s ease; }
.venture-row:hover .name{ color:var(--indigo); }
.venture-row .desc{ color:var(--text-soft); font-size:.95rem; }
.venture-row .sector{ color:var(--text-soft); font-size:.9rem; }
.status{ display:flex; align-items:center; gap:.5rem; font-size:.9rem; color:var(--text-soft); }
.dot{ width:7px; height:7px; border-radius:50%; flex:none; }
.dot.active{ background:var(--indigo); }
.dot.dev{ background:var(--ochre); }
.dot.concept{ background:var(--text-soft); opacity:.5; }
.dot.early{ background:var(--text-soft); opacity:.25; }

/* Venture detail pages */
.venture-hero{
  background:var(--ink); color:var(--text-on-ink);
  padding:5.5rem 1.75rem 4rem;
}
.venture-hero .wrap{ max-width:72rem; }
.venture-hero .back{ font-size:.9rem; color:var(--text-on-ink-soft); transition:color .2s ease; }
.venture-hero .back:hover{ color:var(--ochre); }
.venture-hero h1{
  margin-top:1.5rem; font-size:clamp(2rem, 4.5vw, 3rem); max-width:20ch;
}
.venture-hero .meta{ display:flex; gap:1.75rem; margin-top:1.25rem; flex-wrap:wrap; align-items:center; }
.venture-hero .sector{ font-size:.9rem; color:var(--text-on-ink-soft); }
.venture-hero .lede{ margin-top:1.5rem; max-width:46ch; color:var(--text-on-ink-soft); font-size:1.05rem; }

.venture-body{ padding:4.5rem 1.75rem; }
.venture-body .wrap{ max-width:44rem; }
.venture-body h3{ font-size:1.2rem; margin-bottom:1rem; }
.venture-body ul, .venture-body ol{ padding-left:1.25rem; color:var(--text-soft); }
.venture-body li{ margin-bottom:.6rem; }
.venture-body .status-note{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line); color:var(--text-soft); font-size:.95rem; }

/* Contact / footer */
footer{ background:var(--ink); color:var(--text-on-ink); padding:4.5rem 1.75rem 2.5rem; }
.footer-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem; }
footer h2{ font-size:1.7rem; margin-bottom:.75rem; }
footer p{ color:var(--text-on-ink-soft); max-width:34ch; }
.footer-links{ display:flex; flex-direction:column; gap:.5rem; font-size:.95rem; }
.footer-links a{ color:var(--text-on-ink-soft); border-bottom:1px solid transparent; padding-bottom:2px; width:fit-content; transition:border-color .2s ease, color .2s ease;}
.footer-links a:hover{ color:var(--text-on-ink); border-color:var(--ochre); }
.fineprint{
  margin-top:3.5rem; padding-top:1.5rem; border-top:1px solid var(--line-on-ink);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem;
  color:var(--text-on-ink-soft); font-size:.82rem;
}

/* Responsive */
@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; }
  .house3d-wrap{ height:220px; margin:1.5rem 0 0; }
  .about-grid{ grid-template-columns:1fr; gap:2rem; }
  .venture-row{ grid-template-columns:1fr; gap:.4rem; padding:1.5rem 0; }
  .venture-row .sector{ order:3; }
  .navlinks{ gap:1.2rem; font-size:.85rem; }
}
