@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400&family=Mulish:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --void:#171208; --void-2:#1d1710; --panel:#241b11; --panel-2:#2b2115;
  --line:#3d4a34; --oak:#4a6741; --moss:#7a9464;
  --clay:#b05c2a; --clay-2:#c76a33; --rust:#8f4a22;
  --ink:#f2ead9; --ink-soft:#ddd2bb; --mute:#b1a184; --faint:#7c6f58;
  --gold:#cba75b; --gold-soft:#e2c987;
  --p1:#43a99b; --p2:#9e7bd6; --p3:#4c9be0; --p4:#d9738a;
  --maxw:1080px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:
    linear-gradient(rgba(23,18,8,.62), rgba(23,18,8,.62)),
    url("images/timber-dark.jpg") repeat top left / 512px auto,
    var(--void);
  color:var(--ink);
  font-family:'Mulish',system-ui,sans-serif;
  font-size:16px; line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px}
h1,h2,h3{font-family:'Fraunces',Georgia,serif; font-weight:500; line-height:1.12; margin:0 0 14px}
p{margin:0 0 14px}
img,svg{max-width:100%}
img{height:auto}

/* ---------- hero ---------- */
.hero{
  padding:88px 0 64px; position:relative;
  background:
    linear-gradient(180deg, rgba(23,18,8,.70) 0%, rgba(23,18,8,.52) 45%, rgba(23,18,8,.96) 100%),
    url("images/hero-banner-wide.jpg") center 30% / cover no-repeat,
    var(--void);
}
.mark{width:76px; margin-bottom:16px; filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
.mark img{display:block; width:100%}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin:0 0 20px}
.hero h1{font-size:clamp(34px,7vw,68px); letter-spacing:-.015em}
.hero h1 em{font-style:italic; color:var(--gold-soft)}
.subhead{max-width:660px; margin:22px 0 0; font-size:clamp(16px,2.4vw,19px); color:var(--ink-soft); line-height:1.55}
.promise{max-width:660px; margin:16px 0 0; color:var(--mute); font-size:15.5px}

/* ---------- sections ---------- */
section{padding:52px 0; border-top:1px solid var(--line); scroll-margin-top:24px}
section h2{font-size:clamp(24px,4vw,36px); letter-spacing:-.01em}
.note{color:var(--mute); max-width:640px}

.panel{
  background:
    linear-gradient(rgba(23,17,9,.60), rgba(23,17,9,.72)),
    url("images/timber-panel.jpg") repeat top left / 384px auto;
  border:1px solid rgba(143,74,34,.45);
  border-radius:12px; padding:22px; max-width:760px;
  box-shadow:0 10px 26px rgba(0,0,0,.38);
}
.panel p{color:var(--ink-soft)}
.truthline{font-family:'Fraunces',Georgia,serif; font-style:italic; color:var(--gold-soft); font-size:19px; margin-bottom:0}

.truth-grid{display:grid; grid-template-columns:1fr; gap:16px; align-items:stretch}
@media (min-width:900px){.truth-grid{grid-template-columns:1.05fr .95fr}}
.soul{margin:0}
.soul img{width:100%; border-radius:12px; border:1px solid rgba(143,74,34,.5); display:block}
@media (min-width:900px){
  .soul{position:relative; overflow:hidden; border-radius:12px}
  .soul img{position:absolute; inset:0; height:100%; object-fit:cover}
}

.vista{margin:28px 0 0}
.vista img{width:100%; border-radius:12px; border:1px solid rgba(143,74,34,.5); display:block}

/* ---------- pillars ---------- */
.pillar-grid{display:grid; grid-template-columns:1fr; gap:14px; margin-top:22px}
@media (min-width:720px){.pillar-grid{grid-template-columns:1fr 1fr}}
.pillar{
  background:
    linear-gradient(rgba(23,17,9,.60), rgba(23,17,9,.72)),
    url("images/timber-panel.jpg") repeat top left / 384px auto;
  border:1px solid rgba(143,74,34,.4);
  border-radius:12px; padding:20px; position:relative; overflow:hidden;
  box-shadow:0 8px 22px rgba(0,0,0,.34);
}
.pillar::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg, var(--oak), rgba(74,103,65,.12))}
.pillar .pk{display:flex; align-items:center; gap:9px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--moss); margin:0 0 8px}
.pillar .dot{width:9px; height:9px; border-radius:50%; background:var(--pc); flex:none}
.pillar h3{font-size:21px; margin:0 0 6px}
.pillar p{color:var(--ink-soft); font-size:14.5px; margin:0}
.moat{margin-top:22px; font-family:'Fraunces',Georgia,serif; font-size:19px; color:var(--gold-soft); max-width:640px}
.bodydoor{color:var(--mute)}

/* ---------- who ---------- */
.who-grid{display:grid; grid-template-columns:1fr; gap:16px; margin-top:8px}
@media (min-width:760px){.who-grid{grid-template-columns:1.1fr .9fr}}
.who-col h3{font-size:18px; color:var(--gold-soft)}
.who-col p{color:var(--ink-soft); font-size:15px}
.not-for{border-left:1px solid var(--line); padding-left:0}
@media (min-width:760px){.not-for{padding-left:20px}}
.not-for p{color:var(--mute)}

/* ---------- path ---------- */
.funnel{list-style:none; margin:10px 0 0; padding:0}
.funnel li{display:grid; grid-template-columns:34px 1fr; gap:14px; align-items:start; position:relative; padding-bottom:20px}
.funnel li::before{content:""; position:absolute; left:17px; top:34px; bottom:-2px; width:1px; background:linear-gradient(180deg, var(--moss), rgba(74,103,65,.12))}
.funnel li:last-child{padding-bottom:0}
.funnel li:last-child::before{display:none}
.fdot{width:34px; height:34px; border-radius:50%; border:1px solid var(--oak); color:var(--gold); display:grid; place-items:center; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:12px; background:rgba(23,18,8,.85); position:relative; z-index:1}
.funnel h3{font-size:17px; margin:4px 0 4px}
.funnel p{color:var(--mute); font-size:14.5px; margin:0}

/* ---------- portal / CTA ---------- */
.has-bg{position:relative; overflow:hidden}
.section-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 28%}
.has-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, var(--void) 0%, rgba(23,18,8,.60) 22%, rgba(23,18,8,.64) 78%, var(--void) 100%)}
.has-bg > .wrap{position:relative; z-index:1}
#portal{padding:96px 0 104px}
.portal-wrap{text-align:center; padding-top:8px}
.welcome{font-family:'Fraunces',Georgia,serif; font-style:italic; font-size:clamp(18px,3vw,24px); color:var(--gold-soft); max-width:640px; margin:0 auto 22px}
.btn{display:inline-block; font-family:'Mulish',system-ui,sans-serif; font-weight:600; font-size:16px; color:#fff3e2; background:linear-gradient(180deg, var(--clay-2), var(--clay)); border:1px solid var(--rust); border-radius:10px; padding:14px 28px; text-decoration:none; letter-spacing:.01em; box-shadow:0 6px 18px rgba(0,0,0,.4)}
.btn:hover{filter:brightness(1.07); box-shadow:0 6px 18px rgba(0,0,0,.4), 0 0 0 1px var(--moss)}
.btn:focus-visible{outline:3px solid var(--moss); outline-offset:3px}
.btn-big{font-size:18px; padding:16px 36px}
.portal-note{color:var(--mute); font-size:14.5px; margin-top:16px}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding:32px 0 56px; color:var(--faint); font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:12px; letter-spacing:.03em}
footer p{margin:0}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none}}
