/* ============================================================
   Neovision Fund Platform — shared design system
   Palette derived from the Neovision Wealth Management mark.
   Two funds share this system; only --accent differs.
   ============================================================ */

:root{
  --ink:#15103a;        /* deepened brand navy — primary text */
  --indigo:#241860;     /* brand primary (wordmark) */
  --steel:#3c5490;      /* mid blue */
  --powder:#6c9cc0;     /* secondary / on-navy text */
  --aqua:#84ccd8;       /* light accent (sparingly) */

  --paper:#f6f8fb;      /* cool near-white background */
  --paper-2:#eef2f7;    /* alt band */
  --line:#d7dfea;       /* hairline */
  --line-strong:#c2ccdb;
  --muted:#5b6577;      /* secondary text on paper */
  --white:#ffffff;

  --accent:var(--indigo);     /* overridden per fund */
  --accent-soft:var(--steel);

  --maxw:1080px;
  --gut:clamp(20px,5vw,64px);

  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Hoefler Text",Georgia,"Times New Roman",serif;
  --sans:"Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
}

[data-fund="culinary"]{ --accent:#9c7b3e; --accent-soft:#c2a467; }   /* brass — provenance */
[data-fund="sirius"]{   --accent:#2e7c9e; --accent-soft:#6aa6bf; }   /* slate-cyan — infrastructure */

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ---- typography roles ---- */
.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:11.5px;
  font-weight:600;
  color:var(--accent);
}
.eyebrow.on-dark{ color:var(--aqua); }

h1,h2,h3{ font-family:var(--serif); font-weight:600; line-height:1.12; letter-spacing:-.01em; margin:0; }
.display{ font-size:clamp(34px,6vw,62px); }
.lede{ font-family:var(--serif); font-size:clamp(19px,2.4vw,26px); line-height:1.4; color:var(--steel); font-weight:500; }
.section-title{ font-size:clamp(24px,3.4vw,34px); }
p{ margin:0 0 1em; }
.measure{ max-width:62ch; }

/* ---- layout primitives ---- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }
.section{ padding-block:clamp(56px,8vw,104px); }
.section--band{ background:var(--paper-2); }
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.kicker-rule{ width:46px; height:3px; background:var(--accent); border:0; margin:0 0 22px; }

/* ============================================================
   Concentric-arc signature (echoes the Neovision mark)
   ============================================================ */
.arc-mark{ display:inline-block; vertical-align:middle; }
.arc-bullet{ width:18px; height:18px; flex:0 0 18px; margin-top:5px; }
.hero-arc{
  position:absolute; pointer-events:none; opacity:.5;
  right:-60px; bottom:-90px; width:min(58vw,520px); height:auto;
}

/* ============================================================
   Gate / acknowledgement screens (navy field, centred card)
   ============================================================ */
.screen{
  min-height:100dvh; display:flex; flex-direction:column;
  background:
    radial-gradient(120% 120% at 80% -10%, rgba(108,156,192,.18), transparent 60%),
    linear-gradient(180deg,#1d1450 0%, var(--ink) 100%);
  color:#eaf0f8;
}
.screen__bar{ padding:22px var(--gut) 0; }
.screen__bar img{ height:34px; width:auto; filter:none; }
.screen__bar .plate{ display:inline-block; background:var(--white); padding:9px 14px; border-radius:6px; }

/* full-width header band holding both marks at the two ends */
.masthead{
  background:var(--white); width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:14px var(--gut); border-bottom:1px solid var(--line);
}
.mh-side{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.mh-side.right{ align-items:flex-end; text-align:right; }
.mh-side img{ height:30px; width:auto; display:block; }
.mh-label{ font-family:var(--sans); text-transform:uppercase; letter-spacing:.18em;
  font-size:9.5px; font-weight:700; color:var(--muted); }
.ugc-mark{ font-family:var(--sans); font-weight:500; font-size:19px; letter-spacing:-.005em;
  color:var(--ink); white-space:nowrap; line-height:1.1; }
.screen__body{ flex:1; display:flex; align-items:center; justify-content:center; padding:40px var(--gut) 64px; }
.screen__inner{ width:100%; max-width:920px; }
.screen__foot{ padding:0 var(--gut) 28px; color:var(--powder); font-size:12.5px; text-align:center; }

.gate-intro{ text-align:center; margin-bottom:38px; }
.gate-intro h1{ color:var(--white); font-size:clamp(22px,3.2vw,30px); margin-bottom:10px; }
.gate-intro p{ color:var(--powder); margin:0; }
.gate-intro strong{ color:var(--aqua); }
.gate-notice{
  max-width:760px; margin:34px auto 0; padding:18px 22px;
  border:1px solid rgba(132,204,216,.22); border-left:3px solid var(--aqua);
  border-radius:10px; background:rgba(255,255,255,.04);
  color:var(--powder); font-size:13px; line-height:1.6; text-align:left;
}
.gate-notice b{ color:#eaf0f8; }

/* choice cards */
.choice-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.choice{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(132,204,216,.22);
  border-radius:12px; padding:34px 30px 30px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  transition:border-color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.choice:hover{ border-color:var(--aqua); background:rgba(255,255,255,.07); transform:translateY(-2px); }
.choice .ico{ color:var(--aqua); }
.choice h2{ color:var(--white); font-size:21px; }
.choice p{ color:var(--powder); font-size:14.5px; margin:0; min-height:42px; }
.choice .crit{ color:var(--aqua); border-bottom:1px solid rgba(132,204,216,.5); }

.btn{
  font-family:var(--sans); font-weight:600; font-size:14.5px; letter-spacing:.02em;
  border:0; border-radius:999px; padding:14px 26px; cursor:pointer;
  background:var(--accent); color:var(--white);
  transition:filter .25s var(--ease), transform .15s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover{ filter:brightness(1.08); box-shadow:0 8px 24px rgba(0,0,0,.25); }
.btn:active{ transform:translateY(1px); }
.btn--full{ width:100%; }
.btn--ghost{ background:transparent; border:1px solid var(--powder); color:#eaf0f8; }
.btn--ghost:hover{ border-color:var(--aqua); filter:none; }
.btn:disabled{ background:#3a4566; color:#8b96b3; cursor:not-allowed; box-shadow:none; filter:none; }
.btn:focus-visible, a:focus-visible, .choice:focus-visible, input:focus-visible{
  outline:2px solid var(--aqua); outline-offset:3px;
}

/* tick-box list */
.ack-intro{ color:var(--powder); max-width:74ch; margin:0 auto 30px; text-align:center; font-size:15px; }
.ack-intro b{ color:var(--white); }
.acks{ list-style:none; margin:0 0 26px; padding:0; display:flex; flex-direction:column; gap:2px; }
.ack{
  padding:18px 6px; border-bottom:1px solid rgba(132,204,216,.14);
}
.ack:first-child{ border-top:1px solid rgba(132,204,216,.14); }
.ack-label{ display:flex; gap:16px; align-items:flex-start; cursor:pointer; }
.ack-text{ color:#dce4f1; font-size:14.5px; line-height:1.55; }
.ack a{ color:var(--aqua); position:relative; z-index:1; }
.ack input{ position:absolute; opacity:0; width:1px; height:1px; }
.box{
  flex:0 0 22px; width:22px; height:22px; margin-top:1px;
  border:1.5px solid var(--powder); border-radius:5px; background:transparent;
  display:grid; place-items:center; transition:all .2s var(--ease);
}
.box svg{ width:13px; height:13px; opacity:0; transform:scale(.6); transition:all .2s var(--ease); color:var(--ink); }
.ack input:checked + .box{ background:var(--aqua); border-color:var(--aqua); }
.ack input:checked + .box svg{ opacity:1; transform:scale(1); }
.ack input:focus-visible + .box{ outline:2px solid var(--aqua); outline-offset:3px; }
.ack-actions{ display:flex; flex-direction:column; gap:14px; align-items:center; }
.ack-count{ color:var(--powder); font-size:12.5px; }

/* blocked state */
.blocked{ text-align:center; max-width:560px; margin:0 auto; }
.blocked h1{ color:var(--white); font-size:clamp(24px,3.4vw,32px); margin-bottom:14px; }
.blocked p{ color:var(--powder); margin:0 auto 26px; max-width:46ch; }

/* ============================================================
   Site (post-acknowledgement)
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:20;
  background:rgba(246,248,251,.86); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:54px; gap:18px; }
.fundtag{ font-family:var(--serif); font-size:18px; color:var(--ink); letter-spacing:.01em; }
.fundtag b{ color:var(--accent); font-weight:600; }
.nav{ display:flex; gap:26px; align-items:center; }
.nav a{ color:var(--ink); font-size:14px; font-weight:500; }
.nav a:hover{ color:var(--accent); text-decoration:none; }

/* slim back bar on legal pages, under the masthead */
.doc-subbar{ background:var(--paper); border-bottom:1px solid var(--line); }
.doc-subbar .wrap{ height:48px; display:flex; align-items:center; }
.doc-subbar a{ color:var(--accent); font-size:14px; }

/* hero */
.hero{
  position:relative; overflow:hidden; color:#eef3fa;
  background:
    radial-gradient(110% 130% at 88% 0%, rgba(108,156,192,.22), transparent 55%),
    linear-gradient(168deg,#1d1450 0%, var(--ink) 78%);
}
.hero .wrap{ position:relative; z-index:2; padding-block:clamp(64px,11vw,140px); }
.hero .eyebrow{ color:var(--aqua); }
.hero h1{ color:var(--white); margin:18px 0 22px; max-width:16ch; }
.hero .lede{ color:#c8d6ea; max-width:40ch; }
.hero .scroll{ margin-top:48px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--powder); }

/* narrative block */
.lead-narrative p{ font-size:clamp(18px,2vw,21px); color:var(--ink); }
.lead-narrative p.measure{ color:var(--muted); font-size:17px; }

/* pillars */
.pillars{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.pillar{ background:var(--paper); padding:30px 28px; display:flex; gap:16px; }
.pillar:hover{ background:var(--white); }
.pillar h3{ font-size:19px; margin:0 0 8px; color:var(--ink); }
.pillar p{ margin:0; color:var(--muted); font-size:15px; }

/* fit table (priority -> response) */
.fit{ border-top:2px solid var(--accent); }
.fit-row{ display:grid; grid-template-columns:minmax(180px,.9fr) 1.6fr; gap:30px; padding:24px 0; border-bottom:1px solid var(--line); }
.fit-row dt{ font-family:var(--serif); font-size:19px; color:var(--ink); margin:0; }
.fit-row dd{ margin:0; color:var(--muted); font-size:15.5px; }

/* geography (sirius) */
.geo-row{ display:grid; grid-template-columns:minmax(160px,.7fr) 2fr; gap:30px; padding:22px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.geo-row .place{ font-family:var(--serif); font-size:18px; color:var(--accent); }
.geo-row p{ margin:0; color:var(--muted); font-size:15.5px; }

/* engagement (sequence) */
.steps{ counter-reset:step; display:grid; gap:0; }
.step{ counter-increment:step; display:flex; gap:22px; padding:22px 0; border-bottom:1px solid var(--line); }
.step::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--serif); font-size:15px; color:var(--accent);
  flex:0 0 auto; padding-top:2px; letter-spacing:.05em;
}
.step p{ margin:0; color:var(--muted); font-size:15.5px; max-width:64ch; }

/* governance / disclosure */
.disclosure{
  border:1px solid var(--line-strong); border-left:3px solid var(--accent);
  background:var(--white); border-radius:10px; padding:30px 32px;
}
.disclosure h3{ font-size:20px; margin:0 0 14px; }
.disclosure p{ font-size:15px; color:var(--ink); }
.disclosure .reg{ color:var(--muted); font-size:13.5px; margin-top:14px; }

.notice{
  background:var(--ink); color:#c8d6ea; border-radius:12px; padding:30px 32px; font-size:14px; line-height:1.65;
}
.notice b{ color:var(--white); }

/* footer */
.site-footer{ background:var(--paper-2); border-top:3px solid var(--accent); }
.site-footer .wrap{ padding-block:42px 40px; }
.foot-marks{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding-bottom:30px; margin-bottom:30px; border-bottom:1px solid var(--line); }
.foot-marks img{ height:30px; width:auto; }
.foot-top{ display:flex; flex-wrap:wrap; gap:30px; justify-content:space-between; align-items:flex-start; }
.site-footer img{ height:30px; width:auto; }
.foot-col h4{ font-family:var(--sans); text-transform:uppercase; letter-spacing:.16em; font-size:11px; color:var(--muted); margin:0 0 12px; font-weight:700; }
.foot-col a, .foot-col span{ display:block; color:var(--ink); font-size:14px; margin-bottom:8px; }
.foot-col a:hover{ color:var(--accent); }
.foot-legal{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:12.5px; line-height:1.7; }
.foot-legal a{ color:var(--steel); }

/* legal document pages */
.doc-header{ background:var(--white); border-bottom:1px solid var(--line); }
.doc-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.doc-header img{ height:28px; width:auto; }
.doc-header a{ color:var(--accent); font-size:14px; }
.doc{ max-width:780px; }
.doc .eyebrow{ display:block; margin-bottom:10px; }
.doc h1{ font-size:clamp(28px,4vw,40px); margin-bottom:8px; }
.doc .draftflag{ background:#fff6e6; border:1px solid #e7cf9a; color:#7a5a12; font-size:13px; padding:12px 16px; border-radius:8px; margin:22px 0 30px; }
.doc h2{ font-size:21px; margin:36px 0 10px; }
.doc p, .doc li{ color:var(--ink); font-size:16px; }
.doc ul{ padding-left:20px; }
.doc li{ margin-bottom:8px; }
.doc .updated{ color:var(--muted); font-size:13.5px; }

/* preview-only dev bar */
.devbar{
  position:fixed; top:0; left:0; right:0; z-index:999;
  background:#0e0a26; color:#c8d6ea; font-family:var(--sans); font-size:12.5px;
  display:flex; gap:6px; align-items:center; justify-content:center; padding:7px 12px;
  border-bottom:1px solid rgba(132,204,216,.2);
}
.devbar span{ letter-spacing:.12em; text-transform:uppercase; color:#7e8bb0; margin-right:8px; }
.devbar button{
  background:transparent; border:1px solid #39426a; color:#c8d6ea; border-radius:999px;
  padding:4px 14px; cursor:pointer; font-size:12.5px;
}
.devbar button.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
body.has-devbar{ padding-top:38px; }

/* views — hide inactive only, so active views keep their own display value */
[data-view]:not(.active){ display:none; }

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

/* ---- responsive ---- */
@media (max-width:760px){
  .choice-grid{ grid-template-columns:1fr; }
  .pillars{ grid-template-columns:1fr; }
  .fit-row, .geo-row{ grid-template-columns:1fr; gap:6px; }
  .nav{ display:none; }
  .hero h1{ max-width:none; }
}

@media (max-width:520px){
  .masthead{ padding:12px 18px; gap:12px; }
  .mh-side img, .foot-marks img{ height:24px; }
  .ugc-mark{ font-size:14px; }
  .mh-label{ font-size:8.5px; letter-spacing:.14em; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
}
