:root {
  --ink: #07111f;
  --navy: #0a1830;
  --gold: #c5a568;
  --cyan: #39c6d8;
  --paper: #f4f6f8;
  --muted: #96a5b8;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }

.hero { min-height: 100svh; position: relative; overflow: hidden; background: #06101d; padding: 0 4.5vw; display: flex; flex-direction: column; }
.heroBackdrop { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,13,25,.99) 0%, rgba(5,13,25,.86) 39%, rgba(5,13,25,.22) 72%), url('/hero-background.png') center/cover no-repeat; transform: scale(1.02); animation: heroIn 1.8s ease-out both; }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 60%, rgba(3,8,15,.6)); }
.siteHeader { height: 108px; border-bottom: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 3; }
.brand { height: 72px; width: 210px; overflow: hidden; display: flex; align-items: center; }
.brand img { width: 210px; height: auto; filter: brightness(0) invert(1); }
nav { display: flex; gap: clamp(24px,3.2vw,52px); margin-left: auto; margin-right: 4vw; }
nav a { font-size: 14px; color: #d8e0e8; position: relative; }
nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-10px; height:1px; background:var(--cyan); transition:.25s; }
nav a:hover::after, nav a:focus-visible::after { right:0; }
.headerCta { border: 1px solid rgba(197,165,104,.75); padding: 13px 18px; font-size: 12px; text-transform: uppercase; letter-spacing:.1em; display:flex; gap:18px; transition:.25s; }
.headerCta:hover { background:var(--gold); color:var(--ink); }
.heroContent { width: 61%; max-width: 820px; position: relative; z-index: 2; margin: auto 0; padding: 6vh 0 15vh; animation: contentUp 1s .2s ease-out both; }
.eyebrow, .kicker { text-transform: uppercase; letter-spacing:.18em; font-size:11px; font-weight:600; }
.eyebrow { color: var(--muted); display:flex; align-items:center; gap:12px; }
.eyebrow span { width:36px; height:1px; background:var(--gold); }
h1 { font-size: clamp(54px, 6.4vw, 100px); line-height:.92; letter-spacing:-.055em; font-weight:400; margin:30px 0 26px; }
h1 em { color:var(--gold); font-style:normal; font-weight:400; }
h1 strong { font-weight:400; color:#fff; }
.heroCopy { max-width:530px; color:#aebbc9; font-size:17px; line-height:1.65; }
.primaryCta { margin-top:34px; width:max-content; min-width:265px; border:1px solid var(--cyan); color:var(--cyan); padding:17px 22px; display:flex; justify-content:space-between; font-size:14px; transition:.25s; }
.primaryCta:hover { background:var(--cyan); color:var(--ink); box-shadow:0 0 35px rgba(57,198,216,.18); }
.portfolioCue { position:absolute; z-index:3; right:4.5vw; bottom:6vh; width:min(410px,38vw); padding:20px 0; border-top:1px solid rgba(255,255,255,.25); display:grid; grid-template-columns:40px 1fr auto; align-items:center; gap:18px; }
.cueIndex { color:var(--gold); font-size:11px; }
.portfolioCue b { display:block; font-size:15px; font-weight:500; }
.portfolioCue small { color:#94a3b4; font-size:12px; }
.portfolioCue > span:last-of-type { display:flex; flex-direction:column; gap:5px; }
.scrollHint { position:absolute; z-index:3; left:4.5vw; bottom:6vh; color:#718296; font-size:9px; letter-spacing:.18em; text-transform:uppercase; display:flex; align-items:center; gap:10px; }
.scrollHint span { width:32px; height:1px; background:#718296; }

.section { padding: 120px 7vw; }
.sectionLabel { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:#657283; border-top:1px solid #cbd0d6; padding-top:18px; }
.sectionLabel.light { color:#718399; border-color:#23364d; }
.about, .vision { background:#f2f0eb; color:#101820; }
.aboutStatement { margin:80px 0 20px 20%; }
.kicker { color:#8c713d; margin:0 0 25px; }
.kicker.cyan { color:var(--cyan); }
.about h2, .vision h2, .portfolio h2, .contact h2 { margin:0; font-size:clamp(46px,6vw,88px); line-height:1; letter-spacing:-.05em; font-weight:400; }
.about h2 span, .vision h2 span { color:#9a7a3e; }
.aboutGrid { margin-top:60px; display:grid; grid-template-columns:1fr 1fr; gap:7vw; max-width:850px; color:#55606a; font-size:15px; line-height:1.8; }
.portfolio { background:#0a1728; }
.portfolioHeading { margin:70px 0; display:grid; grid-template-columns:1.15fr .6fr; gap:12vw; align-items:end; }
.portfolio h2 span, .contact h2 span { color:var(--gold); }
.portfolioHeading > p { color:#93a3b5; line-height:1.8; font-size:15px; }
.ventureCard { min-height:490px; border:1px solid #243751; display:grid; grid-template-columns:90px 1.15fr .85fr; position:relative; overflow:hidden; background:linear-gradient(125deg,#0b1d33,#07111f); }
.ventureCard::after { content:""; position:absolute; width:420px; height:420px; border:1px solid rgba(57,198,216,.12); border-radius:50%; left:38%; top:15%; box-shadow:0 0 80px rgba(57,198,216,.05); }
.ventureNumber { writing-mode:vertical-rl; transform:rotate(180deg); border-right:1px solid #243751; padding:28px; font-size:10px; letter-spacing:.2em; color:#61758d; }
.carryLogoWrap {
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:1;
  padding:50px;
  background:linear-gradient(145deg,#ffffff 0%,#f4f6f8 62%,#e7edf2 100%);
  box-shadow:inset 0 0 70px rgba(10,24,48,.06);
}
.carryLogoWrap::after {
  content:"";
  position:absolute;
  inset:24px;
  border:1px solid rgba(10,24,48,.08);
  pointer-events:none;
}
.carryLogoWrap img {
  width:min(430px,100%);
  height:auto;
  border-radius:10px;
  position:relative;
  z-index:1;
}
.ventureDetails { border-left:1px solid #243751; padding:65px 50px; display:flex; flex-direction:column; justify-content:center; position:relative; z-index:1; }
.ventureDetails > span { color:var(--cyan); font-size:10px; text-transform:uppercase; letter-spacing:.2em; }
.ventureDetails h3 { font-size:32px; line-height:1.2; font-weight:400; margin:20px 0; }
.ventureDetails p { color:#8fa0b4; font-size:14px; line-height:1.7; }
.ventureDetails a { margin-top:24px; color:var(--cyan); border-bottom:1px solid var(--cyan); padding-bottom:8px; width:max-content; display:flex; gap:30px; font-size:13px; }
.visionIntro { margin:75px 0 70px 20%; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c7cbd0; }
.principles article { padding:35px 45px 20px 0; border-right:1px solid #c7cbd0; min-height:210px; }
.principles article:not(:first-child) { padding-left:45px; }
.principles article:last-child { border-right:0; }
.principles span { color:#9a7a3e; font-size:11px; }
.principles h3 { font-weight:500; font-size:20px; margin:35px 0 12px; }
.principles p { color:#65707a; line-height:1.6; font-size:14px; max-width:260px; }
.contact { background:#050d18; padding-bottom:40px; }
.contactInner { padding:40px 0 110px 13%; }
.contactInner > a { display:inline-flex; gap:50px; margin-top:50px; color:var(--cyan); border-bottom:1px solid var(--cyan); padding:0 0 12px; font-size:15px; }
footer { border-top:1px solid #263445; padding-top:35px; display:grid; grid-template-columns:1fr auto auto auto; gap:65px; align-items:center; color:#758498; font-size:11px; line-height:1.6; }
footer img { width:180px; filter:brightness(0) invert(1); }
.footerLegal a { transition:color .2s; }
.footerLegal a:hover { color:var(--cyan); }

.legalPage { min-height:100vh; background:#f2f0eb; color:#101820; }
.legalHeader { height:104px; padding:0 7vw; background:#07111f; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.12); }
.legalHeader img { width:190px; filter:brightness(0) invert(1); }
.legalHeader a:last-child { color:#c5a568; text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.legalContent { max-width:940px; margin:0 auto; padding:90px 30px 120px; }
.legalContent .kicker { margin-bottom:20px; }
.legalContent h1 { color:#101820; font-size:clamp(46px,6vw,78px); margin:0 0 18px; line-height:1; }
.legalContent .effective { color:#6d7780; font-size:13px; margin-bottom:60px; }
.legalContent h2 { font-size:23px; font-weight:500; margin:48px 0 14px; color:#172432; }
.legalContent p,.legalContent li { color:#52606b; font-size:15px; line-height:1.8; }
.legalContent ul { padding-left:22px; }
.legalContent a { color:#7f642f; text-decoration:underline; text-underline-offset:3px; }
.legalFooter { background:#050d18; padding:35px 7vw; color:#758498; display:flex; justify-content:space-between; font-size:11px; }

@keyframes heroIn { from { opacity:0; transform:scale(1.08); } to { opacity:1; transform:scale(1.02); } }
@keyframes contentUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

@media (max-width: 900px) {
  .hero { min-height:850px; padding:0 24px; }
  .siteHeader { height:88px; }
  .brand { width:150px; height:58px; }
  .brand img { width:150px; }
  nav { display:none; }
  .headerCta { font-size:0; min-width:43px; justify-content:center; padding:12px; }
  .headerCta span { font-size:16px; }
  .heroBackdrop { background-position:65% center; opacity:.7; }
  .heroContent { width:100%; padding:90px 0 180px; }
  h1 { font-size:clamp(52px,15vw,74px); }
  .portfolioCue { left:24px; right:24px; width:auto; bottom:45px; }
  .scrollHint { display:none; }
  .section { padding:85px 24px; }
  .aboutStatement, .visionIntro { margin:60px 0 0; }
  .aboutGrid, .portfolioHeading { grid-template-columns:1fr; gap:25px; }
  .ventureCard { grid-template-columns:52px 1fr; }
  .ventureNumber { grid-row:1/3; }
  .ventureDetails { border-left:0; border-top:1px solid #243751; padding:38px 28px; }
  .carryLogoWrap { padding:45px 25px; }
  .principles { grid-template-columns:1fr; }
  .principles article, .principles article:not(:first-child) { border-right:0; border-bottom:1px solid #c7cbd0; padding:28px 0; min-height:auto; }
  .contactInner { padding:20px 0 90px; }
  .contactInner > a { gap:15px; font-size:13px; }
  footer { grid-template-columns:1fr; gap:18px; }
  .legalHeader { height:84px; padding:0 24px; }
  .legalHeader img { width:145px; }
  .legalContent { padding:65px 24px 90px; }
  .legalFooter { padding:28px 24px; flex-direction:column; gap:10px; }
}
