/* ============================================================
   BROOK CAPITAL PARTNERS — house style
   Jet-black polished granite · champagne gold · Cormorant + Jost
   ============================================================ */
:root{
  --black:#050506;
  --granite:#0A0A0C;
  --granite-2:#101013;
  --gold:#C6A45E;
  --gold-hi:#EBD5A0;
  --gold-dim:rgba(198,164,94,.38);
  --hair:rgba(198,164,94,.22);
  --hair-soft:rgba(242,239,233,.08);
  --ivory:#F2EFE9;
  --mut:rgba(242,239,233,.80);
  --mut-2:rgba(242,239,233,.55);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--black);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:#0A0A0C}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400}

/* granite surface: layered noise + polish sheen */
.granite{position:relative;isolation:isolate}
.granite::before{
  content:'';position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(120% 90% at 70% 0%,#131317 0%,#0A0A0C 45%,#050506 100%);
}
.granite::after{
  content:'';position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.75 0 0 0 0 0.72 0 0 0 0 0.66 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:240px 240px;
  mix-blend-mode:screen;
}
/* slow moving polish sheen */
.sheen{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.sheen::before{
  content:'';position:absolute;top:-60%;left:-30%;width:60%;height:220%;
  background:linear-gradient(100deg,transparent 0%,rgba(255,250,235,.028) 45%,rgba(255,250,235,.055) 50%,rgba(255,250,235,.028) 55%,transparent 100%);
  transform:rotate(8deg);
  animation:sheen 14s ease-in-out infinite;
}
@keyframes sheen{
  0%{left:-45%}
  55%{left:115%}
  100%{left:115%}
}
@media(prefers-reduced-motion:reduce){.sheen::before{animation:none}}

.k{font-size:12px;font-weight:500;letter-spacing:.52em;text-transform:uppercase;color:var(--gold)}
.k--mut{color:var(--mut-2)}
.wrap{max-width:1280px;margin:0 auto;padding:0 56px}
@media(max-width:860px){.wrap{padding:0 26px}}

/* ---------------- nav ---------------- */
nav{position:fixed;inset:0 0 auto 0;z-index:200;transition:.5s ease}
nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:30px;padding-bottom:30px;transition:.5s ease}
nav.on{background:rgba(5,5,6,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--hair)}
nav.on .wrap{padding-top:16px;padding-bottom:16px}
.wordmark{font-family:var(--serif);font-size:17px;letter-spacing:.34em;color:var(--ivory);white-space:nowrap}
.wordmark em{font-style:normal;color:var(--gold)}
.nl{display:flex;gap:38px;align-items:center}
.nl a{font-size:12px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);transition:color .35s;position:relative}
.nl a:hover,.nl a.here{color:var(--gold-hi)}
.nl a::after{content:'';position:absolute;left:50%;right:50%;bottom:-8px;height:1px;background:var(--gold);transition:.4s}
.nl a:hover::after,.nl a.here::after{left:0;right:0}
.nl .fo{border:1px solid var(--gold-dim);padding:11px 24px;color:var(--gold-hi)}
.nl .fo:hover{background:rgba(198,164,94,.1);border-color:var(--gold)}
.nl .fo::after{display:none}
.nl .lang{color:var(--mut-2);letter-spacing:.18em}
.nl .lang::after{display:none}
@media(max-width:1080px){.nl{gap:22px}.nl a{letter-spacing:.2em}}
@media(max-width:880px){.nl{display:none}}

/* ---------------- hero ---------------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 2s ease;z-index:-1}
.hero video.live{opacity:.55}
.hero .inner{position:relative;z-index:3;padding:140px 26px 120px}
.hero .est{font-size:12.5px;font-weight:500;letter-spacing:.5em;color:var(--gold-hi);text-transform:uppercase;margin-bottom:38px}
.hero h1{font-size:clamp(44px,7vw,104px);line-height:1.04;letter-spacing:.08em;font-weight:400;color:var(--ivory);text-transform:uppercase}
.hero h1 .thin{display:block;font-size:.34em;letter-spacing:.55em;color:rgba(242,239,233,.85);margin-top:26px;font-family:var(--sans);font-weight:400}
.hero .rule{width:1px;height:74px;margin:44px auto 0;background:linear-gradient(180deg,var(--gold),transparent)}

/* the illuminated fissure */
.fissure{position:absolute;inset:0;z-index:1;pointer-events:none}
.fissure svg{width:100%;height:100%}
.fissure .vein{stroke:url(#veinGrad);stroke-width:1.4;fill:none;filter:url(#veinGlow)}
.fissure .vein-core{stroke:var(--gold-hi);stroke-width:.5;fill:none;opacity:.9}
.fissure .pulse{
  stroke:#FFF3D6;stroke-width:2.2;fill:none;opacity:.85;
  stroke-dasharray:90 1800;stroke-dashoffset:0;
  animation:travel 11s linear infinite;
  filter:url(#veinGlow);
}
@keyframes travel{from{stroke-dashoffset:1890}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.fissure .pulse{animation:none;opacity:0}}

/* twin portals */
.portals{display:flex;gap:26px;justify-content:center;margin-top:64px;flex-wrap:wrap}
.portal{
  min-width:300px;padding:26px 42px 24px;text-align:center;
  border:1px solid var(--hair);background:rgba(8,8,10,.55);
  transition:.45s;position:relative;overflow:hidden;
}
.portal::before{content:'';position:absolute;top:0;left:50%;right:50%;height:1px;background:var(--gold);transition:.5s}
.portal:hover::before{left:0;right:0}
.portal:hover{border-color:var(--gold-dim);background:rgba(12,11,9,.75)}
.portal .pk{font-size:11px;font-weight:500;letter-spacing:.44em;color:var(--mut-2);text-transform:uppercase}
.portal .pt{font-family:var(--serif);font-size:24px;letter-spacing:.14em;color:var(--ivory);margin-top:8px;text-transform:uppercase}
.portal .pa{font-size:11.5px;font-weight:500;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-top:14px;display:inline-block}
.portal--gold .pt{color:var(--gold-hi)}

/* ---------------- sections ---------------- */
section{position:relative}
.sec{padding:130px 0}
.sec--hair{border-top:1px solid var(--hair-soft)}
.shead{text-align:center;margin-bottom:84px}
.shead .k{display:block;margin-bottom:26px}
.shead h2{font-size:clamp(34px,4vw,58px);letter-spacing:.06em;line-height:1.15;color:var(--ivory)}
.shead h2 i{color:var(--gold-hi);font-style:italic}
.lede{max-width:66ch;margin:0 auto;text-align:center;font-size:18px;font-weight:400;color:var(--mut);line-height:2}
.lede b{color:var(--ivory);font-weight:400}

.prose{max-width:70ch;font-size:17px;font-weight:400;color:var(--mut);line-height:2}
.prose p+p{margin-top:26px}
.prose b{color:var(--ivory);font-weight:400}
.prose .dropcap::first-letter{font-family:var(--serif);font-size:3.4em;line-height:.85;float:left;padding:6px 14px 0 0;color:var(--gold)}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair-soft);border:1px solid var(--hair-soft);margin-top:20px}
.pillar{background:var(--black);padding:64px 58px;transition:background .5s;position:relative}
.pillar:hover{background:var(--granite)}
.pillar .n{font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--gold);margin-bottom:22px}
.pillar h3{font-size:27px;letter-spacing:.1em;color:var(--ivory);text-transform:uppercase;font-weight:400}
.pillar p{margin-top:18px;font-size:16px;font-weight:400;color:var(--mut);line-height:1.95}
@media(max-width:900px){.pillars{grid-template-columns:1fr}.pillar{padding:48px 30px}}

/* figures band */
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center;align-items:start}
@media(max-width:760px){.figs{grid-template-columns:1fr;gap:44px}}
.fig .fv{font-family:var(--serif);font-size:56px;color:var(--gold-hi);line-height:1}
.fig .fl{margin-top:14px;font-size:11.5px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:var(--mut-2)}

/* buttons */
.btn{
  display:inline-block;font-size:12px;font-weight:500;letter-spacing:.38em;text-transform:uppercase;
  padding:18px 44px;border:1px solid var(--gold-dim);color:var(--gold-hi);
  transition:.4s;background:none;cursor:pointer;font-family:var(--sans);font-weight:300;
}
.btn:hover{background:rgba(198,164,94,.12);border-color:var(--gold);color:#fff}
.btn--solid{background:var(--gold);color:#0A0A0C;border-color:var(--gold);font-weight:400}
.btn--solid:hover{background:var(--gold-hi);border-color:var(--gold-hi);color:#0A0A0C}

/* ---------------- inner page hero ---------------- */
.phero{position:relative;padding:210px 0 110px;text-align:center;overflow:hidden}
.phero .k{display:block;margin-bottom:30px}
.phero h1{font-size:clamp(36px,5vw,72px);letter-spacing:.1em;color:var(--ivory);text-transform:uppercase;font-weight:400}
.phero .sub{margin-top:26px;font-size:16px;color:var(--mut);max-width:64ch;margin-left:auto;margin-right:auto;line-height:2}

/* ---------------- contact ---------------- */
.c-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}
@media(max-width:960px){.c-grid{grid-template-columns:1fr;gap:60px}}
.c-block .lbl{font-size:11.5px;font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.c-block p{color:var(--mut);font-size:16px;line-height:2}
.c-block a{color:var(--ivory);border-bottom:1px solid var(--gold-dim);padding-bottom:2px;transition:.3s}
.c-block a:hover{color:var(--gold-hi);border-color:var(--gold)}
.c-block+.c-block{margin-top:44px}
form .fld{margin-bottom:26px}
form label{display:block;font-size:11.5px;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:rgba(235,213,160,.8);margin-bottom:10px}
form input,form textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair);
  color:var(--ivory);font-family:var(--sans);font-weight:300;font-size:16px;
  padding:8px 0 12px;outline:none;transition:border-color .35s;border-radius:0;
}
form input:focus,form textarea:focus{border-color:var(--gold)}
form textarea{min-height:120px;resize:vertical}
.sent{border:1px solid var(--gold-dim);padding:22px 28px;color:var(--gold-hi);font-size:14px;letter-spacing:.06em;margin-bottom:36px}

/* ---------------- legal ---------------- */
.legal{max-width:820px;margin:0 auto}
.legal h2{font-size:26px;letter-spacing:.08em;color:var(--gold-hi);margin:56px 0 18px;text-transform:uppercase;font-weight:400}
.legal h3{font-size:19px;color:var(--ivory);margin:34px 0 10px;font-family:var(--sans);font-weight:400;letter-spacing:.04em}
.legal p{font-size:16px;font-weight:400;color:var(--mut);margin:0 0 16px;line-height:2}
.legal ul,.legal ol{margin:0 0 18px 22px;color:var(--mut);font-size:16px;font-weight:400;line-height:2}
.legal a{color:var(--gold-hi);border-bottom:1px solid var(--gold-dim)}
.legal b{color:var(--ivory);font-weight:400}
.legal .updated{font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;color:var(--mut-2);margin-bottom:44px;text-align:center}

/* ---------------- family office gate ---------------- */
.gatewrap{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}
.gate{position:relative;z-index:3;max-width:520px;padding:40px 26px}
.gate .est{font-size:10.5px;letter-spacing:.6em;color:var(--gold);text-transform:uppercase;margin-bottom:34px}
.gate h1{font-size:clamp(30px,4.6vw,52px);letter-spacing:.14em;text-transform:uppercase;color:var(--ivory);font-weight:400;line-height:1.25}
.gate .gp{margin-top:26px;color:var(--mut);font-size:14.5px;letter-spacing:.05em;line-height:2}
.gate .code-row{margin-top:46px;display:flex;gap:0;border:1px solid var(--hair);transition:border-color .4s}
.gate .code-row:focus-within{border-color:var(--gold-dim)}
.gate input{
  flex:1;background:transparent;border:0;outline:none;color:var(--gold-hi);
  font-family:var(--sans);font-weight:300;font-size:16px;letter-spacing:.42em;
  padding:18px 22px;text-transform:uppercase;text-align:center;border-radius:0;
}
.gate input::placeholder{color:var(--mut-2);letter-spacing:.42em;font-size:11px}
.gate button{
  background:none;border:0;border-left:1px solid var(--hair);color:var(--gold);
  font-family:var(--sans);font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;
  padding:0 30px;cursor:pointer;transition:.35s;
}
.gate button:hover{background:rgba(198,164,94,.1);color:var(--gold-hi)}
.gate .err{margin-top:22px;font-size:12px;letter-spacing:.16em;color:#B87A6A;opacity:0;transition:opacity .4s;min-height:18px}
.gate .err.on{opacity:1}
.gate .back{display:inline-block;margin-top:56px;font-size:10px;letter-spacing:.44em;text-transform:uppercase;color:var(--mut-2);transition:.3s}
.gate .back:hover{color:var(--gold)}

/* fo content revealed */
.fo-body{display:none}
.fo-body.open{display:block}

/* ---------------- reveal ---------------- */
[data-r]{opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.6,.2,1),transform 1.1s cubic-bezier(.2,.6,.2,1)}
[data-r].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-r]{opacity:1;transform:none;transition:none}}

/* ---------------- footer ---------------- */
footer{border-top:1px solid var(--hair);padding:78px 0 54px;position:relative}
.f-mark{text-align:center;font-family:var(--serif);font-size:15px;letter-spacing:.4em;color:var(--ivory);text-transform:uppercase}
.f-mark em{font-style:normal;color:var(--gold)}
.f-monaco{text-align:center;margin-top:14px;font-size:11px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:var(--mut-2)}
.f-links{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:44px}
.f-links a{font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--mut-2);transition:color .3s}
.f-links a:hover{color:var(--gold)}
.f-group{text-align:center;margin-top:48px;padding-top:38px;border-top:1px solid var(--hair-soft)}
.f-group a{font-size:11px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--mut-2);transition:.3s}
.f-group a:hover{color:var(--gold-hi)}
.f-bot{text-align:center;margin-top:30px;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:rgba(242,239,233,.4)}
