  :root{
    --ink:#122019;
    --deep:#0D1917;
    --teal:#1F4A43;
    --teal-light:#3C7369;
    --brass:#B58A3D;
    --brass-light:#E0BD75;
    --lime:#DCE85A;
    --ivory:#F6F1E3;
    --sand:#EBE1C6;
    --white:#FFFFFF;
    --line: rgba(18,32,25,0.12);
    --line-light: rgba(246,241,227,0.18);
    --shadow: 0 30px 60px -30px rgba(13,25,23,0.35);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ivory);
    color:var(--ink);
    font-family:'Manrope',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    margin:0;
    letter-spacing:-0.01em;
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  .eyebrow{
    font-family:'Space Mono',monospace;
    text-transform:uppercase;
    letter-spacing:0.18em;
    font-size:12px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:'';
    width:22px;height:1px;
    background:currentColor;
    display:inline-block;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:16px 30px;
    border-radius:2px;
    font-family:'Space Mono',monospace;
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-weight:700;
    cursor:pointer;
    border:1px solid transparent;
    transition:transform .35s cubic-bezier(.2,.8,.2,1), background .3s, color .3s, border-color .3s;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--brass);color:var(--deep);}
  .btn-primary:hover{background:var(--brass-light);}
  .btn-outline{background:transparent;color:var(--ivory);border-color:rgba(246,241,227,0.45);}
  .btn-outline:hover{border-color:var(--ivory);}
  .btn-outline.dark{color:var(--ink);border-color:rgba(18,32,25,0.35);}
  .btn-outline.dark:hover{border-color:var(--ink);}
  section{position:relative;}
  ::selection{background:var(--lime);color:var(--deep);}

  /* ---------- NAV ---------- */
  .nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 28px;
    background:linear-gradient(180deg, rgba(13,25,23,0.75), rgba(13,25,23,0));
    transition:background .4s, padding .4s, box-shadow .4s;
  }
  .nav.scrolled{
    background:rgba(13,25,23,0.92);
    backdrop-filter:blur(10px);
    padding:12px 28px;
    box-shadow:0 10px 30px rgba(0,0,0,0.25);
  }
  .nav-logo{
    display:flex;align-items:center;gap:10px;
    font-family:'Fraunces',serif;color:var(--ivory);
  }
  .nav-logo svg{width:26px;height:26px;flex-shrink:0;}
  .nav-logo .lock{font-size:19px;font-weight:600;letter-spacing:0.02em;line-height:1.05;}
  .nav-logo .lock span{display:block;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:0.22em;color:var(--lime);font-weight:700;margin-top:2px;}
  .nav-links{display:flex;gap:30px;align-items:center;}
  .nav-links a{
    color:rgba(246,241,227,0.78);
    font-size:13px;font-family:'Space Mono',monospace;
    text-transform:uppercase;letter-spacing:0.06em;
    transition:color .25s;
  }
  .nav-links a:hover{color:var(--lime);}
  .nav-cta{display:flex;align-items:center;gap:14px;}
  .nav-call{color:var(--ivory);font-size:13px;font-family:'Space Mono',monospace;display:flex;align-items:center;gap:6px;}
  @media(max-width:920px){ .nav-links{display:none;} .nav-call{display:none;} }

  /* ---------- HERO ---------- */
  .hero{
    min-height:100svh;
    position:relative;
    display:flex;flex-direction:column;justify-content:center;
    background:
      radial-gradient(120% 90% at 18% 8%, rgba(220,232,90,0.16), transparent 55%),
      linear-gradient(150deg, #0D1917 0%, #12241F 45%, #1B342C 100%);
    color:var(--ivory);
    padding:140px 0 80px;
    overflow:hidden;
  }
  .hero-sun{
    position:absolute;
    left:50%; bottom:-32vw;
    width:88vw;height:88vw;
    max-width:1100px;max-height:1100px;
    transform:translateX(-50%);
    border-radius:50%;
    background:radial-gradient(circle at 50% 30%, var(--lime) 0%, #C7CF4E 45%, transparent 72%);
    opacity:0.16;
    filter:blur(1px);
  }
  .hero-palms{
    position:absolute;inset:0;
    opacity:0.5;
    pointer-events:none;
    mix-blend-mode:soft-light;
  }
  .hero-inner{
    position:relative;z-index:2;
    max-width:var(--maxw);margin:0 auto;padding:0 28px;
    width:100%;
  }
  .hero-badge{
    color:var(--lime);
    margin-bottom:26px;
  }
  .hero h1{
    font-size:clamp(42px,7vw,84px);
    line-height:0.98;
    font-weight:600;
    max-width:15ch;
  }
  .hero h1 em{
    font-style:italic;font-weight:500;color:var(--brass-light);
  }
  .hero-sub{
    margin-top:26px;
    max-width:520px;
    font-size:17px;
    line-height:1.6;
    color:rgba(246,241,227,0.78);
  }
  .hero-actions{
    margin-top:44px;
    display:flex;gap:16px;flex-wrap:wrap;align-items:center;
  }
  .hero-fine{
    margin-top:18px;font-family:'Space Mono',monospace;font-size:11.5px;letter-spacing:0.05em;
    color:rgba(246,241,227,0.55);
  }
  .hero-stats{
    margin-top:76px;
    display:grid;grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line-light);
    padding-top:26px;
    gap:20px;
  }
  .hero-stat b{
    display:block;font-family:'Fraunces',serif;font-size:26px;font-weight:600;color:var(--ivory);
  }
  .hero-stat span{
    display:block;margin-top:6px;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(246,241,227,0.55);
  }
  @media(max-width:760px){
    .hero-stats{grid-template-columns:repeat(2,1fr);row-gap:26px;}
  }

  /* ---------- TICKER ---------- */
  .ticker-strip{
    background:var(--brass);color:var(--deep);
    overflow:hidden;white-space:nowrap;
    padding:13px 0;
    border-top:1px solid rgba(13,25,23,0.15);
    border-bottom:1px solid rgba(13,25,23,0.15);
  }
  .ticker-track{
    display:inline-block;
    animation:scrollTicker 32s linear infinite;
    font-family:'Space Mono',monospace;font-size:13px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;
  }
  .ticker-track span{margin:0 34px;}
  .ticker-track span::before{content:'◆';margin-right:34px;font-size:9px;vertical-align:middle;opacity:.6;}
  @keyframes scrollTicker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ---------- SECTION HEADERS ---------- */
  .section{padding:110px 0;}
  .section-head{
    max-width:640px;
    margin-bottom:56px;
  }
  .section-head .eyebrow{color:var(--teal-light);margin-bottom:18px;}
  .section-head h2{
    font-size:clamp(30px,4vw,46px);
    line-height:1.08;
  }
  .section.on-dark .section-head .eyebrow{color:var(--lime);}
  .section.on-dark{background:var(--deep);color:var(--ivory);}
  .section.on-teal{background:var(--teal);color:var(--ivory);}

  /* ---------- OVERVIEW ---------- */
  #overview{background:var(--ivory);}
  .overview-grid{
    display:grid;grid-template-columns:1.05fr 0.95fr;gap:70px;align-items:start;
  }
  .overview-copy p{
    font-size:17px;line-height:1.75;color:#3A4A42;margin-bottom:18px;
  }
  .overview-copy p:last-child{margin-bottom:0;}
  .overview-copy strong{color:var(--ink);}
  .overview-visual{
    position:relative;
    border-radius:2px;
    aspect-ratio:4/5;
    background:
      linear-gradient(160deg, rgba(31,74,67,0.0), rgba(13,25,23,0.55)),
      repeating-linear-gradient(115deg, #2E5A50 0 3px, #24473F 3px 7px),
      linear-gradient(200deg,#3C7369,#12241F);
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .overview-visual .tag{
    position:absolute;left:24px;bottom:24px;
    color:var(--ivory);
  }
  .overview-visual .tag b{display:block;font-family:'Fraunces',serif;font-size:22px;}
  .overview-visual .tag span{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--lime);}
  .overview-visual .frame{
    position:absolute;inset:18px;border:1px solid rgba(246,241,227,0.35);
  }

  /* ---------- FEATURES ---------- */
  #features{background:var(--sand);}
  .feature-list{
    list-style:none;margin:0;padding:0;
    display:grid;grid-template-columns:repeat(2,1fr);
    border-top:1px solid var(--line);
  }
  .feature-list li{
    border-bottom:1px solid var(--line);
    padding:26px 4px 26px 0;
    display:flex;align-items:baseline;gap:16px;
    font-family:'Fraunces',serif;font-size:19px;
  }
  .feature-list li:nth-child(odd){border-right:1px solid var(--line);padding-right:36px;}
  .feature-list li:nth-child(even){padding-left:36px;}
  .feature-list .num{
    font-family:'Space Mono',monospace;font-size:12px;color:var(--brass);font-weight:700;
  }
  @media(max-width:760px){
    .feature-list{grid-template-columns:1fr;}
    .feature-list li:nth-child(odd){border-right:none;padding-right:0;}
    .feature-list li:nth-child(even){padding-left:0;}
  }

  /* ---------- LOCATION ---------- */
  #location{background:var(--deep);color:var(--ivory);}
  .location-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
  .loc-item{
    display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line-light);
  }
  .loc-item:first-child{padding-top:0;}
  .loc-item .pin{
    font-family:'Space Mono',monospace;color:var(--lime);font-size:13px;padding-top:3px;
  }
  .loc-item b{font-family:'Fraunces',serif;font-weight:500;font-size:18px;display:block;}
  .loc-item span{font-size:13px;color:rgba(246,241,227,0.55);}
  .invest-points{list-style:none;margin:0;padding:0;}
  .invest-points li{
    position:relative;padding-left:26px;margin-bottom:18px;font-size:15px;line-height:1.6;color:rgba(246,241,227,0.8);
  }
  .invest-points li::before{
    content:'';position:absolute;left:0;top:8px;width:9px;height:9px;background:var(--brass);border-radius:50%;
  }

  /* ---------- HORIZON (growth drivers) ---------- */
  #horizon{background:var(--ivory);}
  .horizon-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);
  }
  .horizon-card{
    background:var(--ivory);padding:34px 26px;min-height:260px;
    display:flex;flex-direction:column;gap:16px;
  }
  .horizon-card .hnum{font-family:'Space Mono',monospace;font-size:11px;color:var(--brass);letter-spacing:0.1em;}
  .horizon-card h3{font-size:19px;line-height:1.25;}
  .horizon-card p{font-size:14px;line-height:1.6;color:#4A5B52;margin-top:auto;}
  @media(max-width:920px){ .horizon-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:560px){ .horizon-grid{grid-template-columns:1fr;} }

  /* ---------- AMENITIES ---------- */
  #amenities{background:var(--teal);color:var(--ivory);}
  .amenity-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
    background:rgba(246,241,227,0.15);
  }
  .amenity-cell{
    background:var(--teal);
    padding:38px 26px;
    display:flex;flex-direction:column;gap:16px;
    transition:background .3s;
  }
  .amenity-cell:hover{background:#245B52;}
  .amenity-cell svg{width:30px;height:30px;stroke:var(--lime);}
  .amenity-cell b{font-family:'Fraunces',serif;font-weight:500;font-size:18px;}
  @media(max-width:760px){ .amenity-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:480px){ .amenity-grid{grid-template-columns:1fr;} }

  /* ---------- FLOORPLANS ---------- */
  #floorplans{background:var(--ivory);}
  .fp-tabs{display:flex;gap:0;margin-bottom:44px;border-bottom:1px solid var(--line);}
  .fp-tab{
    font-family:'Space Mono',monospace;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
    padding:14px 0;margin-right:40px;cursor:pointer;color:#8A9A90;
    border-bottom:2px solid transparent;transition:color .25s, border-color .25s;
    background:none;border-top:none;border-left:none;border-right:none;
  }
  .fp-tab.active{color:var(--ink);border-bottom-color:var(--brass);}
  .fp-panel{display:none;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
  .fp-panel.active{display:grid;}
  .fp-visual{
    aspect-ratio:11.65/9.8;
    background:
      linear-gradient(180deg, rgba(31,74,67,0.05), rgba(31,74,67,0.02)),
      repeating-linear-gradient(0deg, transparent 0 27px, rgba(18,32,25,0.06) 27px 28px),
      repeating-linear-gradient(90deg, transparent 0 27px, rgba(18,32,25,0.06) 27px 28px);
    border:1px solid var(--line);
    position:relative;
  }
  .fp-visual::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(120deg, rgba(60,115,105,0.14), transparent 60%);
  }
  .fp-visual .pool-tag{
    position:absolute;left:8%;bottom:10%;width:26%;height:46%;
    background:repeating-linear-gradient(45deg, #3C7369 0 4px, #2E5A50 4px 8px);
    border:1px solid rgba(18,32,25,0.25);
    display:flex;align-items:flex-end;padding:8px;
  }
  .fp-visual .pool-tag span{font-family:'Space Mono',monospace;font-size:9px;color:var(--ivory);letter-spacing:0.06em;}
  .fp-rooms{list-style:none;margin:0;padding:0;}
  .fp-rooms li{
    display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:14.5px;
  }
  .fp-rooms li b{font-weight:600;font-family:'Manrope',sans-serif;}
  .fp-rooms li span{font-family:'Space Mono',monospace;color:#7C8C82;font-size:12.5px;}
  .fp-total{
    margin-top:24px;padding:18px 22px;background:var(--deep);color:var(--ivory);
    display:flex;justify-content:space-between;align-items:center;
  }
  .fp-total b{font-family:'Fraunces',serif;font-size:22px;color:var(--lime);}
  .fp-total span{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;}
  @media(max-width:820px){ .fp-panel.active{grid-template-columns:1fr;} }

  /* ---------- PAYMENT / OWNERSHIP JOURNEY ---------- */
  #payment{background:var(--sand);}
  .journey{
    display:flex;overflow-x:auto;gap:0;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    -webkit-overflow-scrolling:touch;
  }
  .journey-step{
    min-width:150px;flex:1;
    padding:28px 20px;border-right:1px solid var(--line);
  }
  .journey-step:last-child{border-right:none;}
  .journey-step:nth-child(even){background:rgba(181,138,61,0.08);}
  .journey-step b{
    display:block;font-family:'Fraunces',serif;font-size:30px;color:var(--brass);
  }
  .journey-step p{margin-top:10px;font-size:13px;line-height:1.5;color:#4A5B52;}
  .journey-note{margin-top:22px;font-family:'Space Mono',monospace;font-size:12.5px;letter-spacing:0.04em;color:var(--teal);}

  /* ---------- INVESTMENT STATS ---------- */
  #investment{background:var(--deep);color:var(--ivory);}
  .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-light);border:1px solid var(--line-light);}
  .stat-card{background:var(--deep);padding:36px 26px;}
  .stat-card .k{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(246,241,227,0.5);}
  .stat-card .v{font-family:'Fraunces',serif;font-size:30px;margin-top:14px;color:var(--lime);line-height:1.1;}
  .stat-card .d{font-size:12.5px;margin-top:10px;color:rgba(246,241,227,0.6);}
  @media(max-width:820px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }

  /* ---------- SITE PLAN ---------- */
  #siteplan{background:var(--ivory);}
  .siteplan-wrap{display:grid;grid-template-columns:1.2fr 0.8fr;gap:60px;align-items:center;}
  .cluster-map{
    display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
    padding:26px;background:var(--sand);border:1px solid var(--line);
  }
  .cluster-map .plot{
    aspect-ratio:1;background:var(--white);border:1px solid rgba(18,32,25,0.18);
    display:flex;align-items:center;justify-content:center;
    font-family:'Space Mono',monospace;font-size:10px;color:var(--teal);
  }
  .cluster-map .plot.sold{background:var(--teal);color:var(--ivory);opacity:0.5;}
  .cluster-map .plot.avail{background:var(--brass);color:var(--deep);font-weight:700;}
  .legend{display:flex;gap:22px;margin-top:18px;flex-wrap:wrap;}
  .legend-item{display:flex;align-items:center;gap:8px;font-family:'Space Mono',monospace;font-size:11.5px;color:#4A5B52;}
  .legend-item i{width:11px;height:11px;display:inline-block;}

  /* ---------- LEAD FORM ---------- */
  #enquire{
    background:linear-gradient(160deg,#12241F,#0D1917);
    color:var(--ivory);
    padding:110px 0;
  }
  .enquire-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
  .enquire-copy h2{font-size:clamp(30px,4vw,44px);line-height:1.08;}
  .enquire-copy .quote{
    font-family:'Fraunces',serif;font-style:italic;font-weight:500;
    font-size:20px;color:var(--brass-light);margin-top:24px;line-height:1.4;
  }
  .enquire-copy .avail{
    margin-top:34px;display:inline-flex;align-items:center;gap:10px;
    font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--lime);border:1px solid rgba(220,232,90,0.4);padding:10px 16px;
  }
  .form-card{
    background:var(--ivory);color:var(--ink);
    padding:40px;box-shadow:var(--shadow);
  }
  .form-card h3{font-size:22px;margin-bottom:6px;}
  .form-card .sub{font-size:13.5px;color:#5A6B62;margin-bottom:26px;}
  .field{margin-bottom:18px;}
  .field label{
    display:block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
    margin-bottom:8px;color:#5A6B62;
  }
  .field input, .field select{
    width:100%;padding:13px 14px;border:1px solid rgba(18,32,25,0.22);
    background:var(--white);font-family:'Manrope',sans-serif;font-size:14.5px;color:var(--ink);
    border-radius:1px;
  }
  .field input:focus, .field select:focus{
    outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);
  }
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .form-card .btn{width:100%;margin-top:6px;}
  .form-consent{font-size:11.5px;color:#7C8C82;margin-top:14px;line-height:1.5;}
  .form-success{
    display:none;text-align:center;padding:30px 10px;
  }
  .form-success.show{display:block;}
  .form-success svg{width:46px;height:46px;stroke:var(--teal);margin-bottom:16px;}
  .form-success h3{margin-bottom:8px;}
  .form-success p{font-size:14px;color:#5A6B62;}
  @media(max-width:920px){ .enquire-grid{grid-template-columns:1fr;} }
  @media(max-width:480px){ .form-row{grid-template-columns:1fr;} .form-card{padding:28px 22px;} }

  /* ---------- FOOTER ---------- */
  footer{background:var(--deep);color:rgba(246,241,227,0.55);padding:50px 0 30px;}
  .footer-top{
    display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:30px;
    padding-bottom:34px;border-bottom:1px solid var(--line-light);
  }
  .footer-logo{color:var(--ivory);font-family:'Fraunces',serif;font-size:22px;}
  .footer-logo span{display:block;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:0.2em;color:var(--lime);margin-top:4px;}
  .footer-contact{display:flex;gap:44px;flex-wrap:wrap;}
  .footer-contact div b{display:block;font-family:'Space Mono',monospace;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(246,241,227,0.4);margin-bottom:6px;}
  .footer-contact div span{font-size:14.5px;color:var(--ivory);}
  .footer-fine{font-size:11.5px;line-height:1.7;padding-top:24px;max-width:900px;}

  /* ---------- FLOATING / STICKY CTA ---------- */
  .float-cta{
    position:fixed;right:26px;bottom:26px;z-index:90;
    display:flex;flex-direction:column;gap:12px;
  }
  .float-btn{
    width:52px;height:52px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--brass);box-shadow:0 10px 24px rgba(0,0,0,0.3);
    color:var(--deep);cursor:pointer;transition:transform .3s;
  }
  .float-btn:hover{transform:scale(1.08);}
  .float-btn svg{width:22px;height:22px;}
  .mobile-bar{
    display:none;
    position:fixed;left:0;right:0;bottom:0;z-index:95;
    background:var(--deep);border-top:1px solid var(--line-light);
    padding:12px 16px;
    align-items:center;gap:10px;
  }
  .mobile-bar a{
    flex:1;text-align:center;padding:13px 0;font-family:'Space Mono',monospace;
    font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase;font-weight:700;
  }
  .mobile-bar .call{border:1px solid rgba(246,241,227,0.4);color:var(--ivory);}
  .mobile-bar .enq{background:var(--brass);color:var(--deep);}
  @media(max-width:760px){
    .mobile-bar{display:flex;}
    body{padding-bottom:74px;}
    .float-cta{bottom:96px;}
  }

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    .ticker-track{animation:none;}
    html{scroll-behavior:auto;}
  }
