  :root{
    /* South Point Lending — Charcoal / Gold / Paper system */
    --navy:#101113;          /* Charcoal — primary base, dark section bg, headings on light */
    --navy2:#1B1C1F;         /* Charcoal, one step up — cards/gradient on dark sections */
    --ivory:rgba(244,242,238,0.82);  /* Paper-toned body text on dark sections */
    --white:#F4F2EE;         /* Paper — page background + reversed headings on dark */
    --gold:#E8BE58;          /* Gold — primary accent */
    --gold-soft:#CBA24A;     /* Gold, flat print variant — eyebrows, hover, secondary accent */
    --slate:#26282B;         /* Body text on light */
    --slate-soft:rgba(38,40,43,0.62); /* Muted secondary text on light */
    --hairline:#D9D4C6;      /* Hairline / rules */
    --panel:#ECE8E0;         /* Light card background, one step off Paper */
    --serif:'Cambria','Georgia',serif;
    --sans:'Calibri','Segoe UI',system-ui,-apple-system,sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; overflow-x:hidden;}
  body{
    font-family:var(--sans);
    color:var(--slate);
    background:var(--white);
    line-height:1.55;
    overflow-x:hidden;
    max-width:100vw;
  }
  h1,h2,h3,h4{font-family:var(--serif); font-weight:700; color:var(--navy);}
  .eyebrow{
    font-family:var(--sans);
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--navy);
    font-weight:700;
    margin-bottom:0.5rem;
  }
  a{color:inherit;}
  img{max-width:100%; display:block;}

  /* ---------- Password Gate ---------- */
  #gate{
    position:fixed; inset:0; z-index:9999;
    background:var(--navy);
    display:flex; align-items:center; justify-content:center;
    padding:1.5rem;
  }
  #gate.hidden{display:none;}
  .gate-card{
    background:var(--navy2);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:6px;
    padding:2.75rem 2.5rem;
    max-width:400px;
    width:100%;
    text-align:center;
  }
  .gate-mark{
    font-family:var(--serif);
    color:var(--gold-soft);
    font-size:1.15rem;
    letter-spacing:0.03em;
    margin-bottom:0.3rem;
  }
  .gate-card h2{
    color:var(--white);
    font-size:1.3rem;
    margin-bottom:0.4rem;
  }
  .gate-card p{
    color:var(--ivory);
    opacity:0.7;
    font-size:0.85rem;
    margin-bottom:1.6rem;
  }
  #gate-input{
    width:100%;
    padding:0.75rem 0.9rem;
    border-radius:4px;
    border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.06);
    color:var(--white);
    font-size:1rem;
    margin-bottom:0.9rem;
    outline:none;
  }
  #gate-input:focus{border-color:var(--gold);}
  #gate-btn{
    width:100%;
    padding:0.75rem;
    border:none;
    border-radius:4px;
    background:var(--gold);
    color:var(--navy);
    font-weight:700;
    font-size:0.95rem;
    cursor:pointer;
    letter-spacing:0.02em;
  }
  #gate-btn:hover{background:var(--gold-soft);}
  #gate-error{
    color:#E8998D;
    font-size:0.82rem;
    margin-top:0.8rem;
    min-height:1.1em;
  }

  /* ---------- Nav ---------- */
  #site{display:none;}
  #site.visible{display:block;}
  nav{
    position:sticky; top:0; z-index:100;
    background:var(--navy);
    padding:0.85rem 1.5rem;
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap;
    gap:0.6rem;
  }
  nav .brand{
    font-family:var(--serif);
    color:var(--white);
    font-size:1.05rem;
    letter-spacing:0.02em;
    white-space:nowrap;
    display:flex;
    align-items:center;
    gap:0.7rem;
  }
  nav .brand span{color:var(--gold-soft);}
  .nav-logo{height:44px; width:auto; display:block;}
  .nav-brand-text{
    font-family:var(--serif);
    color:var(--white);
    font-size:1.15rem;
    letter-spacing:0.02em;
    line-height:1.15;
    white-space:nowrap;
  }
  .nav-brand-text span{
    display:block;
    font-family:var(--sans);
    font-size:0.6rem;
    letter-spacing:0.18em;
    color:var(--gold-soft);
    font-weight:700;
    margin-top:0.15rem;
  }
  .hero-logo{height:130px; width:auto; margin:0 auto 1.8rem; display:block;}
  .footer-logo{height:120px; width:auto; margin:0 auto 2rem; display:block;}
  @media(max-width:600px){
    .hero-logo{height:96px;}
    .footer-logo{height:90px;}
  }
  #navlinks{
    display:flex; gap:1.1rem; overflow-x:auto;
    scrollbar-width:none;
  }
  #navlinks::-webkit-scrollbar{display:none;}
  #navlinks a{
    color:var(--ivory);
    opacity:0.75;
    font-size:0.82rem;
    text-decoration:none;
    white-space:nowrap;
    padding:0.2rem 0;
    border-bottom:2px solid transparent;
  }
  #navlinks a:hover, #navlinks a.active{
    opacity:1;
    border-bottom-color:var(--gold);
  }

  /* Hamburger toggle (mobile only) */
  #nav-toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:38px; height:38px;
    background:transparent;
    border:1px solid rgba(255,255,255,0.25);
    border-radius:5px;
    cursor:pointer;
    padding:0;
    margin-left:auto;
    flex-shrink:0;
  }
  #nav-toggle span{
    display:block;
    width:18px; height:2px;
    background:var(--gold-soft);
    margin:0 auto;
    transition:transform 0.2s ease, opacity 0.2s ease;
  }
  #nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  #nav-toggle.open span:nth-child(2){opacity:0;}
  #nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  @media(max-width:860px){
    #nav-toggle{display:flex;}
    #navlinks{
      display:none;
      flex-basis:100%;
      width:100%;
      max-height:70vh;
      overflow-y:auto;
      flex-direction:column;
      gap:0;
      margin-top:0.6rem;
      background:var(--navy2);
      border-top:1px solid rgba(255,255,255,0.1);
      border-radius:6px;
    }
    #navlinks.open{display:flex;}
    #navlinks a{
      padding:0.95rem 1.5rem;
      border-bottom:1px solid rgba(255,255,255,0.08);
      width:100%;
      box-sizing:border-box;
    }
    #navlinks a.active, #navlinks a:hover{
      background:rgba(255,255,255,0.05);
      border-bottom-color:rgba(255,255,255,0.08);
    }
  }

  section{
    padding:4.5rem 1.5rem;
    max-width:1080px;
    margin:0 auto;
  }
  section.full{max-width:none; padding-left:0; padding-right:0;}
  .dark{
    background:var(--navy);
    color:var(--ivory);
  }
  .dark h1, .dark h2, .dark h3{color:var(--white);}
  .dark .eyebrow{color:var(--gold-soft);}

  /* Hero */
  #hero{
    background:linear-gradient(160deg, var(--navy) 0%, var(--navy2) 100%);
    color:var(--white);
    text-align:center;
    padding:6rem 1.5rem 5rem;
  }
  #hero .eyebrow{color:var(--gold-soft); font-size:0.8rem;}
  #hero h1{
    color:var(--white);
    font-size:clamp(2rem, 5vw, 3.1rem);
    line-height:1.15;
    margin-bottom:0.6rem;
  }
  #hero h1 em{
    font-style:normal;
    color:var(--gold-soft);
  }
  #hero .sub{
    font-size:1.05rem;
    color:var(--ivory);
    opacity:0.85;
    max-width:560px;
    margin:0 auto 2.5rem;
  }
  .hero-stats{
    display:flex; justify-content:center; gap:2.5rem;
    flex-wrap:wrap;
    margin-top:1.5rem;
  }
  .hero-stat .num{
    font-family:var(--serif); font-size:2rem; color:var(--gold-soft); font-weight:700;
  }
  .hero-stat .lbl{
    font-size:0.78rem; opacity:0.75; text-transform:uppercase; letter-spacing:0.06em; margin-top:0.15rem;
  }
  .hero-foot{
    margin-top:3.5rem;
    font-size:0.72rem;
    opacity:0.55;
    letter-spacing:0.03em;
  }

  h2.section-title{
    font-size:clamp(1.5rem, 3vw, 2.1rem);
    margin-bottom:0.4rem;
  }
  .section-lede{
    color:var(--slate-soft);
    font-size:1rem;
    max-width:640px;
    margin-bottom:2.5rem;
  }
  .dark .section-lede{color:var(--ivory); opacity:0.8;}

  /* Grid / cards */
  .grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
  .grid2{display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem;}
  .grid4{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;}
  @media(max-width:800px){
    .grid3,.grid2,.grid4{grid-template-columns:1fr;}
  }
  .card{
    background:var(--panel);
    border-radius:8px;
    padding:1.8rem 1.6rem;
  }
  .dark .card{
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.08);
  }
  .card h3{font-size:1.05rem; margin-bottom:0.55rem;}
  .card p{font-size:0.9rem; color:var(--slate-soft);}
  .dark .card p{color:var(--ivory); opacity:0.8;}

  .badge{
    min-width:46px; height:46px;
    padding:0 10px;
    border-radius:23px;
    background:var(--navy);
    color:var(--gold-soft);
    display:inline-flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-weight:700; font-size:1.05rem;
    margin-bottom:1rem;
    white-space:nowrap;
    box-sizing:border-box;
  }
  .dark .badge{background:var(--gold); color:var(--navy);}

  /* Stat row */
  .stat-row{display:flex; gap:2.2rem; flex-wrap:wrap; margin:1.5rem 0 2.5rem;}
  .stat{min-width:120px;}
  .stat .num{font-family:var(--serif); font-size:1.9rem; color:var(--navy); font-weight:700;}
  .dark .stat .num{color:var(--gold-soft);}
  .stat .lbl{font-size:0.78rem; color:var(--slate-soft); text-transform:uppercase; letter-spacing:0.05em; margin-top:0.15rem;}
  .dark .stat .lbl{color:var(--ivory); opacity:0.7;}

  /* Team */
  .team-card{text-align:center;}

  /* Contact form */
  .form-wrap{
    max-width:640px;
    margin-top:2rem;
    background:var(--panel);
    border-radius:8px;
    padding:2.2rem 2.4rem;
  }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;}
  @media(max-width:600px){.form-row{grid-template-columns:1fr;}}
  .field{margin-bottom:1.3rem;}
  .field label{
    display:block;
    font-size:0.76rem;
    text-transform:uppercase;
    letter-spacing:0.06em;
    font-weight:700;
    color:var(--slate-soft);
    margin-bottom:0.45rem;
  }
  .field .hint{
    font-weight:400;
    text-transform:none;
    letter-spacing:0;
    opacity:0.7;
    font-size:0.76rem;
  }
  .field input, .field textarea{
    width:100%;
    padding:0.8rem 0.95rem;
    border:1px solid var(--hairline);
    border-radius:4px;
    font-family:var(--sans);
    font-size:0.92rem;
    color:var(--slate);
    background:var(--white);
    box-sizing:border-box;
  }
  .field input:focus, .field textarea:focus{
    outline:none;
    border-color:var(--gold);
  }
  .field textarea{resize:vertical; min-height:110px;}
  .form-submit{
    background:var(--gold);
    color:var(--navy);
    border:none;
    padding:0.85rem 2.2rem;
    border-radius:4px;
    font-weight:700;
    letter-spacing:0.02em;
    cursor:pointer;
    font-family:var(--sans);
    font-size:0.92rem;
  }
  .form-submit:hover{background:var(--gold-soft);}
  .form-note{
    font-size:0.78rem;
    color:var(--slate-soft);
    margin-top:1rem;
  }

  .avatar{
    width:72px; height:72px; border-radius:50%;
    background:var(--navy); color:var(--gold-soft);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-size:1.3rem; font-weight:700;
    margin:0 auto 1rem;
  }
  .avatar-photo{
    width:128px; height:128px; border-radius:50%;
    object-fit:cover; object-position:center top;
    margin:0 auto 1.1rem;
    display:block;
    border:2px solid var(--gold);
  }
  .team-card h3{font-size:1.05rem; margin-bottom:0.1rem;}
  .team-card .role{font-size:0.78rem; color:var(--gold); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:0.8rem; font-weight:700;}
  .team-card p{font-size:0.86rem; color:var(--slate-soft); text-align:left;}

  /* Table */
  table{width:100%; border-collapse:collapse; font-size:0.86rem;}
  th,td{padding:0.7rem 0.8rem; text-align:left; border-bottom:1px solid var(--hairline); white-space:nowrap;}
  th{color:var(--navy); font-family:var(--serif); font-weight:700; font-size:0.82rem;}
  .dark th{color:var(--gold-soft);}
  .dark td, .dark th{border-bottom:1px solid rgba(255,255,255,0.1);}
  td{color:var(--slate-soft);}
  .dark td{color:var(--ivory);}
  tbody tr:first-child td{font-weight:700; color:var(--navy);}
  .dark tbody tr:first-child td{color:var(--white);}

  /* Table horizontal scroll container (mobile-safe) */
  .table-scroll{
    position:relative;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    margin-top:2rem;
  }
  .table-scroll table{min-width:640px; margin-top:0;}
  .scroll-hint{
    display:none;
    font-size:0.74rem;
    text-align:right;
    color:var(--gold-soft);
    letter-spacing:0.03em;
    text-transform:uppercase;
    font-weight:700;
    margin-top:0.5rem;
  }
  @media(max-width:700px){
    .scroll-hint{display:block;}
    .table-scroll{
      -webkit-mask-image:linear-gradient(to right, black 92%, transparent 100%);
      mask-image:linear-gradient(to right, black 92%, transparent 100%);
    }
  }

  /* Chart bars */
  .chart-wrap{margin-top:1.5rem;}
  .bars{display:flex; align-items:flex-end; gap:0.9rem; height:200px; margin-bottom:0.6rem;}
  .bar{
    flex:1;
    background:linear-gradient(180deg, var(--gold-soft), var(--gold));
    border-radius:3px 3px 0 0;
    position:relative;
    min-height:4px;
  }
  .bar .val{
    position:absolute; top:-1.6rem; left:0; right:0; text-align:center;
    font-size:0.75rem; font-weight:700; color:var(--navy);
  }
  .dark .bar .val{color:var(--gold-soft);}
  .bar-labels{display:flex; gap:0.9rem;}
  .bar-labels span{flex:1; text-align:center; font-size:0.75rem; color:var(--slate-soft);}
  .dark .bar-labels span{color:var(--ivory); opacity:0.7;}

  .donut-wrap{display:flex; align-items:center; gap:2rem; flex-wrap:wrap; margin-top:1rem;}
  .legend{display:flex; flex-direction:column; gap:0.6rem;}
  .legend-item{display:flex; align-items:center; gap:0.6rem; font-size:0.86rem;}
  .swatch{width:12px; height:12px; border-radius:3px;}

  /* Process steps */
  .process{display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1.5rem;}
  .step{flex:1; min-width:180px;}
  .step .badge{margin-bottom:0.8rem;}
  .step h3{font-size:0.98rem; margin-bottom:0.5rem;}
  .step ul{padding-left:1.1rem; font-size:0.83rem; color:var(--slate-soft);}
  .dark .step ul{color:var(--ivory); opacity:0.8;}
  .step li{margin-bottom:0.3rem;}

  /* Flow diagram (fund structure) */
  .flow{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.4rem;
    margin-top:1.5rem;
  }
  @media(max-width:700px){.flow{grid-template-columns:1fr;}}
  .flow-box{
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.1);
    border-radius:8px;
    padding:1.3rem 1.4rem;
  }
  .flow-box h4{color:var(--gold-soft); font-size:0.85rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:0.4rem;}
  .flow-box p{font-size:0.85rem; color:var(--ivory); opacity:0.85;}

  /* Terms table two col */
  .terms-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 2.5rem;}
  @media(max-width:700px){.terms-grid{grid-template-columns:1fr;}}
  .term-row{display:flex; justify-content:space-between; padding:0.9rem 0; border-bottom:1px solid var(--hairline);}
  .dark .term-row{border-bottom:1px solid rgba(255,255,255,0.12);}
  .term-row.featured{
    background:rgba(201,162,39,0.08);
    margin:0 -0.9rem; padding:0.9rem;
    border-radius:6px;
    border-bottom:1px solid rgba(201,162,39,0.25);
  }
  .term-row .tag{
    display:inline-block;
    margin-left:0.5rem;
    font-size:0.62rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--navy);
    background:var(--gold-soft);
    padding:0.15rem 0.45rem;
    border-radius:3px;
    vertical-align:middle;
  }
  .term-row .v.gold{color:var(--gold-soft) !important;}

  .callout{
    margin-top:2rem;
    display:flex;
    align-items:flex-start;
    gap:1.5rem;
    background:var(--navy);
    color:var(--ivory);
    border-radius:8px;
    padding:2rem 2.2rem;
  }
  .callout h3{color:var(--white); font-size:1.05rem; margin-bottom:0.6rem;}
  .callout p{font-size:0.9rem; opacity:0.85; line-height:1.65;}
  .callout-badge{
    flex-shrink:0;
    width:64px; height:64px;
    border-radius:50%;
    background:var(--gold);
    color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-weight:700; font-size:1.15rem;
  }
  @media(max-width:600px){
    .callout{flex-direction:column;}
  }
  .term-row .k{font-size:0.86rem; color:var(--slate-soft);}
  .term-row .v{font-size:0.9rem; font-weight:700; color:var(--navy); text-align:right;}
  .dark .term-row .k{color:var(--ivory); opacity:0.75;}
  .dark .term-row .v{color:var(--white);}

  footer{
    background:var(--navy);
    color:var(--ivory);
    padding:3.5rem 1.5rem 2.5rem;
    text-align:center;
    font-size:0.8rem;
  }
  footer .disclaimer{
    max-width:720px; margin:0 auto 2.5rem;
    opacity:0.65;
    line-height:1.7;
    text-align:left;
  }
  footer .disclaimer p{margin-bottom:0.9rem;}
  .contacts{display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; margin-bottom:2rem;}
  .contact-item .name{color:var(--white); font-weight:700; font-family:var(--serif);}
  .contact-item .role{opacity:0.6; font-size:0.75rem; margin:0.15rem 0;}
  .contact-item .email{color:var(--gold-soft); font-size:0.8rem;}
  footer .fine{opacity:0.45; font-size:0.72rem;}

  .footnote{font-size:0.76rem; color:var(--slate-soft); margin-top:1rem;}
  .dark .footnote{color:var(--ivory); opacity:0.6;}
