/* invest.css — the one buyer page (/invest). Replaces /finder (now a redirect) and the old light
   /invest, which repeated each other. WHY ink-on-ink: a buyer landing is a showroom, and it sits
   next to /voice, which is dark too. Header, footer and buttons come from nav.css / landing.css. */

body{background:var(--ink);color:var(--on-ink)}
[hidden]{display:none !important}

/* ---------- hero ---------- */
.fx-hero{position:relative;overflow:hidden;padding:var(--sp-16) 0 var(--sp-16)}
/* Two soft lights behind the object. Without them it floats on flat black and the page reads cheap. */
.fx-hero::before{
  content:"";position:absolute;inset:-20% -10% auto -10%;height:120%;
  background:
    radial-gradient(42% 46% at 72% 38%, rgba(201,169,110,.20), transparent 70%),
    radial-gradient(38% 42% at 24% 72%, rgba(94,196,190,.14), transparent 70%);
  pointer-events:none;
}
.fx-hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-10);align-items:center}
.fx-eyebrow{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-5);
}
.fx-eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);flex:none}
.fx-h1{
  font-family:var(--display);font-weight:300;line-height:1.04;letter-spacing:-.03em;
  font-size:clamp(2.3rem,5.4vw,4rem);margin:0 0 var(--sp-5);text-wrap:balance;
}
.fx-h1 em{font-style:italic;color:var(--gold);font-weight:300}
.fx-lede{font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.6;color:var(--on-ink-dim);max-width:50ch;margin:0 0 var(--sp-8)}
.fx-lede strong{color:var(--on-ink);font-weight:500}
.fx-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.fx-hint{font-family:var(--mono);font-size:.7rem;color:var(--on-ink-dim);opacity:.85;margin:var(--sp-5) 0 0}

/* ---------- the object, and the conversation under it ---------- */
.fx-right{display:grid;justify-items:center;gap:var(--sp-2)}
.fx-stage{position:relative;aspect-ratio:1/1;width:min(100%,400px)}
#hero3d{position:absolute;inset:0;border-radius:var(--radius-2xl);overflow:hidden}
#hero3d canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}
#hero3d canvas:active{cursor:grabbing}
/* The poster sits behind the canvas and is only seen when the canvas is hidden, so there is never an empty rectangle. */
.fx-poster{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%, rgba(201,169,110,.16), transparent 68%)}
.fx-poster svg{width:58%;max-width:300px;opacity:.9}
#hero3d[data-ready="true"] .fx-poster{opacity:0;transition:opacity .6s var(--ease)}
#hero3d[data-fallback] .fx-poster{opacity:1}
/* Motion control: the object turns on its own, so there is a visible way to stop it. */
.fx-pause{position:absolute;right:10px;bottom:10px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(240,237,232,.14);background:rgba(10,22,40,.6);color:var(--on-ink-dim);cursor:pointer;font-size:.7rem;line-height:1}
.fx-pause:hover{color:var(--on-ink)}
.fx-pause:focus-visible,.vo-side:focus-visible,.vo-input:focus-visible,.vo-send:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}
#hero3d[data-fallback] .fx-pause{display:none}

/* ---------- the voice panel ---------- */
.vo-panel{display:grid;gap:14px;justify-items:center;text-align:center;width:min(100%,460px)}
.vo-row{display:flex;align-items:center;gap:20px}
.vo-side{width:44px;height:44px;border-radius:50%;border:1px solid rgba(240,237,232,.16);background:rgba(240,237,232,.06);color:var(--on-ink);display:grid;place-items:center;cursor:pointer;transition:border-color var(--duration) ease,color var(--duration) ease}
.vo-side:hover{border-color:var(--gold);color:var(--gold)}
.vo-side[aria-pressed="false"]{opacity:.55}
.vo-side svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vo-form{display:flex;gap:8px;width:100%}
.vo-form[hidden]{display:none}
.vo-input{flex:1;min-width:0;background:rgba(240,237,232,.06);border:1px solid rgba(240,237,232,.14);border-radius:999px;color:var(--on-ink);padding:12px 16px;font-family:var(--body);font-size:.92rem}
.vo-send{flex:none;background:var(--gold);color:var(--ink);border:0;border-radius:999px;padding:12px 20px;font-weight:600;cursor:pointer;font-family:var(--body);font-size:.9rem}
.vo-send:disabled,.vo-input:disabled{opacity:.5;cursor:not-allowed}
.vo-caption{display:grid;gap:6px;width:100%;min-height:3.2em}
.vo-you{margin:0;font-size:.82rem;color:var(--on-ink-dim);font-style:italic}
.vo-you:empty{display:none}
.vo-say{margin:0;font-family:var(--display);font-weight:300;font-size:1.15rem;line-height:1.45;color:var(--on-ink)}
.vo-say.err{font-family:var(--body);font-size:.9rem;color:#f0c8bd}
.vo-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.vo-chip{font-size:.78rem;padding:5px 11px;border-radius:999px;border:1px solid rgba(201,169,110,.35);background:rgba(201,169,110,.10);color:var(--on-ink)}
.vo-chip b{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-right:4px}
.vo-continue[hidden]{display:none}

/* ---------- chapters ---------- */
.fx-chapter{padding:var(--sp-20) 0;border-top:1px solid rgba(240,237,232,.10)}
.fx-num{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;color:var(--gold);margin-bottom:var(--sp-4)}
.fx-h2{font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.1;letter-spacing:-.025em;margin:0 0 var(--sp-5);text-wrap:balance}
.fx-body{color:var(--on-ink-dim);line-height:1.65;max-width:58ch;margin:0}
.fx-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-10)}

.fx-checks{list-style:none;margin:var(--sp-7) 0 0;padding:0;display:grid;gap:10px}
.fx-checks li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid rgba(240,237,232,.10);border-radius:var(--radius-md);background:rgba(240,237,232,.03)}
.fx-checks b{font-weight:600;color:var(--on-ink);display:block;font-size:.92rem}
.fx-checks span{color:var(--on-ink-dim);font-size:.86rem;line-height:1.5}
.fx-tick{color:var(--gold);font-family:var(--mono);font-size:.78rem;flex:none;margin-top:2px}

.fx-steps{display:grid;gap:var(--sp-6);margin-top:var(--sp-7)}
.fx-step{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.fx-step-n{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold);font-family:var(--mono);font-size:.74rem}
.fx-step h3{font-family:var(--body);font-size:1rem;font-weight:600;margin:4px 0 4px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.fx-step p{color:var(--on-ink-dim);font-size:.92rem;line-height:1.6;margin:0;max-width:64ch}
/* What each step costs, right where the buyer reads about it. */
.fx-tag{display:inline-block;font-family:var(--mono);font-size:.62rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:rgba(201,169,110,.14);color:var(--gold)}

.fx-honest{border:1px solid rgba(240,237,232,.12);border-radius:var(--radius-lg);padding:var(--sp-8);background:rgba(240,237,232,.025)}
.fx-honest h3{font-family:var(--display);font-weight:400;font-size:1.3rem;margin:0 0 var(--sp-4)}
.fx-honest ul{margin:0;padding-left:1.1rem;color:var(--on-ink-dim);line-height:1.7;font-size:.92rem}
.fx-honest li{margin-bottom:10px}

.fx-faq{margin-top:var(--sp-5);border-top:1px solid rgba(240,237,232,.12);max-width:760px}
.fx-faq details{border-bottom:1px solid rgba(240,237,232,.12)}
.fx-faq summary{cursor:pointer;padding:18px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px}
.fx-faq summary::-webkit-details-marker{display:none}
.fx-faq summary::after{content:"+";color:var(--gold);font-family:var(--mono)}
.fx-faq details[open] summary::after{content:"\2212"}
.fx-faq p{padding:0 0 18px;margin:0;color:var(--on-ink-dim);line-height:1.65;max-width:62ch}

/* ---------- close ---------- */
.fx-close{text-align:center;padding:var(--sp-20) 0 var(--sp-24);border-top:1px solid rgba(240,237,232,.10)}
.fx-close .fx-h2{margin-left:auto;margin-right:auto;max-width:18ch}
.fx-close .fx-body{margin:0 auto var(--sp-8)}
.fx-fineprint{font-family:var(--mono);font-size:.68rem;color:var(--on-ink-dim);opacity:.8;margin-top:var(--sp-6);line-height:1.7}

@media (max-width:900px){
  .fx-hero{padding:var(--sp-14) 0 var(--sp-10)}
  .fx-hero-grid{grid-template-columns:1fr;gap:var(--sp-8)}
  /* Object first on a phone: it is the reason to keep scrolling. */
  .fx-right{order:-1}
  .fx-stage{width:min(68vw,260px)}
  .fx-split{grid-template-columns:1fr;gap:var(--sp-7)}
  .fx-chapter{padding:var(--sp-14) 0}
}
@media (max-width:420px){
  .vo-row{gap:14px}
}
@media (prefers-reduced-motion:reduce){
  #hero3d[data-ready="true"] .fx-poster{transition:none}
}

.fx-faq summary:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}
