/* ---- v005 shared: public view hides open-decision scaffolding; ?review brings it back ---- */
html:not(.review) .ph,html:not(.review) [data-preview]:not(.preview-bar),html:not(.review) .rv,html:not(.review) .row.slot:not(.member),html:not(.review) .chip-slot,html:not(.review) .rv-only{display:none}
html.review .pub-only{display:none}
.empty{color:var(--faint);font-weight:400;margin:0 0 4px}
html:not(.review) .founder-inner{grid-template-columns:minmax(0,1fr)}
html:not(.review) .founder-text{max-width:64ch}
.preview-bar{font-size:.6875rem;padding-top:5px;padding-bottom:5px}
/* generated venture plates: our own code-drawn art in each venture's Forge accent (no third-party imagery) */
.world{display:block;width:100%;height:100%}
.world .w-bg{fill:#0B0D0E}
.ws0{stop-color:var(--acc);stop-opacity:.15}
.ws1{stop-color:var(--acc);stop-opacity:0}
.world .w-lines{fill:none;stroke:var(--acc);stroke-opacity:.42;stroke-width:1}
.world .pat-dots circle,.world .pat-circuit circle{fill:var(--acc);fill-opacity:.4;stroke:none}
.index-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px}
.index-hd .section-index{margin:0}
.index-hd .text-link{margin-left:auto}
.idx-list{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid var(--line)}
.idx-link{position:relative;display:grid;align-items:baseline;gap:6px 24px;padding:22px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;min-height:44px}
.idx-name{display:flex;flex-direction:column;gap:6px}
.idx-sub{font-size:.75rem;color:var(--faint);letter-spacing:.04em}
.idx-tag{color:var(--muted);font-weight:400;font-size:.9375rem}
.idx-link .arrow{color:var(--faint);transition:transform .4s var(--ease),color .4s var(--ease)}
.idx-link:hover .arrow,.idx-link:focus-visible .arrow{transform:translateX(4px);color:var(--text)}
.idx-link:hover .idx-name,.idx-link:focus-visible .idx-name{color:var(--acc-text)}
.idx-plate{display:none}
@media (max-width:899px){.idx-link{grid-template-columns:40px minmax(0,1fr)}.idx-tag,.idx-stage{grid-column:2}.idx-link .arrow{display:none}}
/* ---- v005b PRECISION INSTRUMENT: PX title + VCR labels + Inter text (type.css); the map reads as a calibrated instrument ---- */
:root{--f-head:"FS PX Title",ui-monospace,monospace;--f-ui:"VCR OSD Mono",ui-monospace,monospace;--f-mono:"VCR OSD Mono",ui-monospace,monospace}
h1,h2,h3{font-weight:500;letter-spacing:-.035em}
.hero-title{font-weight:500;letter-spacing:-.052em;line-height:.96}
.env-title,.tree-link,.lead-strong,.env-cta h3{font-weight:500;letter-spacing:-.04em}
.lead-strong,.tree-link{letter-spacing:-.025em}
.kicker,.section-index,.eyebrow,.badge,.map-legend,.crumbs ol,.env-parent,.sub,.facts dt,.row-k,.preview-tag,.stats dt,.sel-k,.sel-spec dt,.sel-go,.stage-hd,.idx-no,.idx-sub,.ctl,.footer-copy,.env-sec h3,.list-note{font-family:var(--f-mono);font-weight:400;letter-spacing:.04em;text-transform:uppercase}
.kicker,.section-index,.eyebrow,.env-sec h3,.sub,.facts dt,.row-k{font-size:.6875rem;letter-spacing:.06em}
.ctl{text-transform:none;font-size:.75rem}
.kid{color:var(--accent-text,#A285FF);margin-right:10px}
.badge{letter-spacing:.06em}
.wordmark{font-family:var(--f-head);font-weight:500;letter-spacing:-.01em;text-transform:none;font-size:.9375rem}
.site-nav ul a{font-size:.8125rem}
/* map: graduated rings, mono stage/ID labels, sentence-case names */
.orbit-1{stroke-opacity:.12}
.orbit-3{stroke-opacity:.24;stroke-width:5;stroke-dasharray:1 7}
.node .label{letter-spacing:-.005em;text-transform:none;font-weight:500}
.node .stage-label{font-family:var(--f-mono);letter-spacing:.06em}
.stage-hd{position:absolute;z-index:3;top:28px;right:var(--gut);display:flex;gap:20px;font-size:.6875rem;color:var(--faint)}
.stage-hd span+span::before{content:"";display:inline-block;width:14px;height:1px;background:var(--line-strong);vertical-align:middle;margin-right:20px}
/* selection console */
.sel-panel{display:none}
.sel{display:none}
.sel.on{display:block}
.sel-k{font-size:.6875rem;color:var(--acc-text);margin:0}
.sel-name{font:500 1.625rem/1.05 var(--f-head);letter-spacing:-.035em;margin:16px 0 10px}
.sel-sum{color:var(--muted);font-weight:400;font-size:.875rem;line-height:1.5;margin:0 0 18px}
.sel-spec{margin:0;border-top:1px solid var(--line)}
.sel-spec div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.sel-spec dt{font-size:.625rem;color:var(--faint)}
.sel-spec dd{margin:0;font-size:.8125rem;text-align:right;color:var(--text)}
.sel-go{font-size:.625rem;color:var(--faint);margin:16px 0 0}
/* stats row */
.stats{display:flex;gap:0;margin:40px 0 0;border-top:1px solid var(--line)}
.stats div{flex:1;padding:16px 20px 0 0}
.stats div+div{border-left:1px solid var(--line);padding-left:20px}
.stats dt{font-size:.625rem;color:var(--faint)}
.stats dd{margin:8px 0 0;font:500 2rem/1 var(--f-head);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
/* index */
.index{padding-top:96px;padding-bottom:24px}
.index-hd h2{font-size:clamp(1.75rem,1.2rem + 1.6vw,2.5rem)}
.idx-link{grid-template-columns:72px minmax(220px,3fr) 4fr 150px 20px}
.idx-no{font-size:.75rem;color:var(--faint)}
.idx-name{font:500 1.375rem/1.15 var(--f-head);letter-spacing:-.03em;transition:color .4s var(--ease)}
.idx-sub{font-size:.625rem}
/* environment as a product page */
.env-parent{font-size:.6875rem}
.fsid{color:var(--text)}
.env-title{font-size:clamp(2.75rem,1.4rem + 5vw,5.25rem);letter-spacing:-.055em}
.facts>div{border-top:1px solid var(--line);padding-top:14px}
.facts dd{font-weight:400}
.env-sec h3::before{border-radius:0;width:6px;height:6px}
@media (min-width:1100px){
  .js .hub-hero{width:min(38%,560px)}
  .js .hub-hero .hero-title{font-size:clamp(3rem,1rem + 3.4vw,4.5rem)}
  .js .stage-top,.js .map-legend{left:calc(min(38%,560px) + 8px)}
  .js .sel-panel{display:block;position:absolute;z-index:3;top:64px;right:var(--gut);width:296px;padding:22px 22px 18px;border:1px solid var(--line);background:rgba(6,7,8,.9)}
  .js .stage-hd{top:24px}
  html[data-mode=env] .sel-panel{top:64px}
}
html[data-mode=env] .stage-hd,html[data-mode=env] .sel-panel{display:none}
@media (max-width:1099px){.stage-hd{display:none}}
@media (max-width:699px){
  .stats dd{font-size:1.5rem}
  .stats div{padding-right:12px}.stats div+div{padding-left:12px}
  .index{padding-top:64px}
  .idx-link{padding:18px 0}
  .idx-name{font-size:1.25rem}
}
@media (max-width:899px){.idx-link{grid-template-columns:40px minmax(0,1fr)}}
/* ===== v005b AD fixes 2026-10-20 (art/PORTAL_v005_AD_REVIEW.md §4) ===== */
/* palette: Forge neutrals (Titanium/Silver), Forge --violet-text; accent means one thing only: which venture (FS_IDENTITY_DECISIONS_v1.md §2.2) */
.acc-violet{--acc:#7A4BFF;--acc-text:#A285FF}
.acc-violet-ink{--acc:#A285FF;--acc-text:#A285FF}
/* D-A2 pending: the -ink classes alias base until David approves (then set --acc-text to the approved ink tint, one line each) */
.acc-teal{--acc:#00C6BE;--acc-text:#00C6BE}
.acc-teal-ink{--acc:#00C6BE;--acc-text:#00C6BE}
.acc-magenta{--acc:#E145D6;--acc-text:#E145D6}
.acc-magenta-ink{--acc:#E145D6;--acc-text:#E145D6}
.acc-silver{--acc:#A9B5B5;--acc-text:#A9B5B5}
.acc-titanium{--acc:#F0F3F2;--acc-text:#F0F3F2}
/* stage = dot shape in neutral Silver (solid / half / dashed), never colour */
.node .st-live{fill:#A9B5B5}
.node .st-building{fill:#060708;stroke:#A9B5B5;stroke-width:1}
.node .st-concept{fill:#060708;stroke:#A9B5B5;stroke-width:1;stroke-dasharray:1.5 1.5}
.badge-live .badge-dot{background:#A9B5B5;border-color:#A9B5B5}
.badge-building .badge-dot{background:linear-gradient(90deg,#A9B5B5 50%,transparent 50%);border-color:#A9B5B5}
.badge-concept .badge-dot{border-style:dashed;border-color:#A9B5B5}
.kid{color:var(--muted)}
.sel-k{color:var(--faint)}
/* venture marks on the nodes (existing monoline marks from the venture preview sites; VX cube; S1 monogram on the hub) */
.node .vmark{color:var(--acc);pointer-events:none;overflow:visible}
.node .vm-hub{color:#F0F3F2}
.node .core{opacity:0}
.node.d0 .ring-i{opacity:.35}
.mark-s1{fill:currentColor}
.mark-s1 .s1-l{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:square}
/* uppercase micro-labels in two roles only: eyebrow (kicker / section index) + map legend */
html[data-dir=b] :is(.badge,.crumbs ol,.env-parent,.sub,.facts dt,.row-k,.preview-tag,.stats dt,.sel-k,.sel-spec dt,.sel-go,.stage-hd,.idx-no,.idx-sub,.ctl,.footer-copy,.list-note,.proof-k){text-transform:none!important}
html[data-dir=b] :is(.kicker,.section-index,.eyebrow,.map-legend){text-transform:uppercase!important}
.node .stage-label{text-transform:none;letter-spacing:.02em}
/* hero: 2-3 lines at 1440 in a wider column; one proof element instead of the stats row */
@media (min-width:1100px){
  .js .hub-hero{width:min(50%,720px)}
  .js .stage-top,.js .map-legend{left:calc(min(50%,720px) + 8px)}
  .js .hub-hero-inner{padding-bottom:132px}
  .js .proof-wrap{position:absolute;z-index:3;left:0;bottom:36px;width:min(50%,720px);pointer-events:none}
  .js .proof-wrap .wrap{margin:0;padding-left:max(var(--gut),calc((100vw - var(--max)) / 2));padding-right:24px}
}
.proof-wrap{padding:24px 0}
.proof{pointer-events:auto;display:flex;align-items:center;gap:18px;max-width:440px;padding:14px 18px;border:1px solid var(--line);background:#0B0D0E;color:var(--text);text-decoration:none;transition:border-color .4s var(--ease)}
.proof:hover,.proof:focus-visible{border-color:var(--acc);color:var(--text)}
.proof-mark{flex:none;width:40px;height:40px;color:var(--acc)}
.proof-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.proof-k{font-family:var(--f-second);font-size:var(--s-1);line-height:1;color:var(--faint)}
.proof-name{font-family:var(--f-title);font-size:var(--t-3);line-height:1;font-weight:400;letter-spacing:0}
.proof-sub{font-size:.875rem;color:var(--muted);line-height:1.4}
.proof .arrow{margin-left:auto;color:var(--faint)}
@media (max-width:1099px){.proof-wrap{border-bottom:1px solid var(--line)}}
/* hub stays neutral: no venture accent on hub chrome */
.hero-title-2 em{text-decoration-color:#A9B5B5}
.site-nav ul a[aria-current]::after{background:#F0F3F2}
:focus-visible{outline-color:#F0F3F2}
/* ===== SPEC v1 (art/PORTAL_B_FIX_SPEC_v1.md §0.3-0.4, Fixes 2-3): Inter roles, sizes, spacing. Grid faces (titles, VCR): type.css. =====
   Inter 400/500: body, lede, nav (desktop), buttons, chips, member names, descriptions, footer, map labels. */
html[data-dir=b]{--gut:20px;--sec:72px;--max:1200px}
@media (min-width:700px){html[data-dir=b]{--gut:32px;--sec:96px}}
@media (min-width:1100px){html[data-dir=b]{--gut:56px;--sec:144px}}
/* everything type.css had in VCR outside the keep list goes to Inter */
html[data-dir=b] :is(.proof-k,.map-legend,.map-legend .badge-dot,.crumbs ol,.stage-hd,.badge,.env-parent,.sub,.preview-tag,.site-nav ul a,.btn,.btn-lg,.ctl,.menu-toggle,.menu-label,.text-link,.stats dt,.sel-spec dd,.sel-go,.idx-sub,.idx-tag,.wcard-no,.wcard-meta,.env-sec h3,.list-note,.category,.footer-tag,.footer-copy,.footer-brand,.row-meta,.fa-btn,.index-note,.net-hd,.env-meta,.chip,.member-name,.note,.map-hint,.back-to,.tree-sum){
  font-family:var(--f-body)!important;letter-spacing:0!important;font-style:normal!important}
html[data-dir=b] :is(.sub,.idx-sub,.sel-sum,.env-meta,.map-hint,.back-to,.idx-tag,.wcard-meta,.list-note,.index-note,.category,.row-meta,.tree-sum,.sel-spec dd){font-weight:400!important;font-size:1rem!important;line-height:26px!important}
html[data-dir=b] .env-sec h3{font-weight:500!important;font-size:1rem!important;line-height:24px!important;color:#F0F3F2!important}
html[data-dir=b] :is(.btn,.btn-lg,.sel-go,.ctl:not(.ctl-icon)){font-weight:500!important;font-size:1rem!important;line-height:20px!important}
html[data-dir=b] :is(.btn,.btn-lg){min-height:48px!important;height:48px;padding:0 24px!important}
html[data-dir=b] .chip{font-weight:500!important;font-size:.875rem!important;line-height:20px!important}
html[data-dir=b] .badge{font-weight:500!important;font-size:.875rem!important;line-height:20px!important}
html[data-dir=b] :is(.member-name,.footer-copy,.footer-tag,.note,.preview-tag,.env-parent,.text-link,.menu-label,.fa-btn,.stats dt,.net-hd,.wcard-no){font-weight:400!important;font-size:.9375rem!important;line-height:24px!important}
html[data-dir=b] :is(.footer-brand,.footer-brand *){font-weight:500!important;font-size:.9375rem!important;line-height:24px!important}
html[data-dir=b] .text-link{font-weight:500!important}
@media (min-width:900px){html[data-dir=b] .site-nav ul a{font-weight:500!important;font-size:1rem!important;line-height:24px!important}
  html[data-dir=b] .site-nav ul{column-gap:24px!important}}
@media (min-width:1100px){html[data-dir=b] .site-nav ul{column-gap:32px!important}}
@media (max-width:420px){html[data-dir=b] .hero-actions .btn,html[data-dir=b] .env-cta .btn,html[data-dir=b] .contact .btn{width:100%}}
/* lede per breakpoint: 20/32 · 19/30 · 18/29 · 17/27 */
html[data-dir=b] .lede{font-weight:400!important;font-size:1.25rem!important;line-height:32px!important}
@media (max-width:1099px){html[data-dir=b] .lede{font-size:1.1875rem!important;line-height:30px!important}}
@media (max-width:899px){html[data-dir=b] .lede{font-size:1.125rem!important;line-height:29px!important}}
@media (max-width:699px){html[data-dir=b] .lede{font-size:1.0625rem!important;line-height:27px!important}}
/* hero spacing: kicker -> H1 24, H1 -> lede 24, lede -> CTA 32 (24 below 700), CTA gap 16/24 */
html[data-dir=b] .hub-hero .kicker{margin:0 0 24px!important}
html[data-dir=b] .hub-hero .hero-title{margin:0 0 24px!important}
html[data-dir=b] .hub-hero .lede{margin:0!important}
html[data-dir=b] .hub-hero .hero-actions{margin-top:32px!important;gap:16px 24px!important}
/* Fix 2: hero at <1100 */
@media (max-width:1099px){
  html[data-dir=b] .hub-hero .hero-title{max-width:none!important}
  html[data-dir=b] .hub-hero{padding:40px 0 24px!important}
  html[data-dir=b] .hub-hero .hero-actions{margin-top:24px!important}
  html[data-dir=b] .portal{display:flex;flex-direction:column}
  html[data-dir=b] .portal>.hub-hero{order:1}html[data-dir=b] .portal>.stage{order:2}html[data-dir=b] .portal>.proof-wrap{order:3}}
@media (max-width:699px){
  html[data-dir=b] .hub-hero .hero-actions .btn{flex:1 1 100%}
  html[data-dir=b] .hub-hero .hero-actions .text-link{display:none}
  html[data-dir=b] .kicker .k-art{display:none}
  html[data-dir=b] .kicker .kid{margin-right:0!important}
  html[data-dir=b] .map-legend{gap:12px!important;flex-wrap:nowrap!important;max-width:none!important}
  html[data-dir=b] .map-legend li{gap:8px}}
@media (max-width:359px){html[data-dir=b] .map-legend{flex-wrap:wrap!important;max-width:calc(100% - 2*var(--gut) - 60px)!important}}
html[data-dir=b] .founder .founded{color:var(--muted);margin:0 0 24px}
