:root{
  --ink:#0B0C0E; --ink2:#15171B; --ink3:#1D2024;
  --paper:#F5F1E8; --paper2:#EDE7D6;
  --gold:#B8A078; --gold2:#D9C7A0;
  --line: rgba(184,160,120,.28);
  --line-dark: rgba(255,255,255,.10);
  --ink-soft:#5C5748;
  --sea:#233F42;
  --amber:#C98A3E;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{ font-family:'Outfit',sans-serif; background:var(--paper); color:var(--ink); font-weight:300; line-height:1.65; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4{ font-family:'Cormorant Garamond',serif; font-weight:500; color:var(--ink); letter-spacing:.01em; }
.dark h1,.dark h2,.dark h3,.dark h4{ color:var(--paper); }
em{ font-style:italic; color:var(--gold); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 44px; }
@media (max-width:640px){ .wrap{ padding:0 22px; } }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.eyebrow{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.eyebrow.center{ text-align:center; }
.lead{ color:var(--ink-soft); font-size:1.05rem; max-width:64ch; margin-top:14px; }
.dark .lead{ color:#C7C2B4; }
.head{ max-width:700px; margin-bottom:48px; }
.head.center{ margin:0 auto 48px; text-align:center; }

.btn{ display:inline-flex; align-items:center; justify-content:center; padding:14px 30px; font-size:.88rem; letter-spacing:.03em; border:1px solid transparent; cursor:pointer; transition:.2s; }
.btn-gold{ background:var(--gold); color:var(--ink); }
.btn-gold:hover{ background:var(--gold2); }
.btn-ghost{ border-color:rgba(255,255,255,.5); color:#fff; }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn-dark{ border:1px solid var(--ink); color:var(--ink); }
.btn-dark:hover{ background:var(--ink); color:var(--paper); }
.btn-row{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.btn-row--tight{ margin-top:26px; }

/* ---------- BADGE ---------- */
.badge{ display:inline-flex; align-items:center; gap:10px; border:1px solid var(--gold); color:var(--gold2); font-size:.78rem; letter-spacing:.04em; padding:9px 18px; margin-top:26px; }
.badge i{ width:6px; height:6px; border-radius:50%; background:var(--amber); display:inline-block; }
.badge.on-paper{ color:var(--amber); border-color:var(--amber); }

/* ---------- HEADER ---------- */
.header{ position:sticky; top:0; z-index:60; background:rgba(11,12,14,.86); backdrop-filter:blur(8px); border-bottom:1px solid var(--line-dark); }
.hbar{ display:flex; align-items:center; justify-content:space-between; height:82px; }
.logo{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; letter-spacing:.1em; color:var(--paper); }
.logo small{ display:block; font-family:'Outfit',sans-serif; font-size:.6rem; letter-spacing:.2em; color:var(--gold); margin-top:2px; }
.nav{ display:flex; align-items:center; gap:28px; }
.nav a{ font-size:.84rem; color:#C7C2B4; border-bottom:1px solid transparent; padding-bottom:3px; }
.nav a:hover{ color:var(--gold); border-color:var(--gold); }
.nav .btn{ padding:10px 22px; }
@media (max-width:960px){ .nav{ display:none; } }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink); }
.hero-bg{ position:absolute; inset:0; }
.hero-bg svg{ width:100%; height:100%; }
.hero .wrap{ position:relative; z-index:2; padding-bottom:100px; padding-top:190px; }
.hero h1{ font-size:clamp(2.4rem,6vw,4.6rem); line-height:1.06; color:var(--paper); max-width:18ch; }
.hero .eyebrow{ color:var(--gold2); }
.hero .lead{ color:#D6D1C2; max-width:60ch; }
.scroll-cue{ position:absolute; right:44px; bottom:34px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; color:#9C9686; font-size:.72rem; letter-spacing:.1em; }
.scroll-cue i{ width:1px; height:36px; background:linear-gradient(var(--gold),transparent); display:block; }
@media (max-width:640px){ .scroll-cue{ display:none; } }

.section{ padding:110px 0; }
.section.alt{ background:var(--paper2); }
.section.dark{ background:var(--ink); }

/* ---------- GLANCE TABLE ---------- */
.glance{ border-top:1px solid var(--line); margin-top:10px; }
.glance-row{ display:grid; grid-template-columns:1fr 1.4fr; border-bottom:1px solid var(--line); padding:16px 0; align-items:center; }
.glance-row .g-label{ color:var(--ink-soft); font-size:.92rem; }
.glance-row .g-value{ font-weight:500; }
.tbc{ color:var(--amber); font-style:italic; font-weight:400; }

/* ---------- ABOUT / GRID ---------- */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }
.media-panel{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--sea),#0F2422); position:relative; overflow:hidden; }
.media-panel figcaption, .media-tag{ position:absolute; left:0; bottom:0; padding:12px 18px; font-size:.74rem; color:#EDE7D6; background:rgba(11,12,14,.55); letter-spacing:.03em; }
.pull{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.3rem; color:var(--ink); border-left:2px solid var(--gold); padding-left:24px; margin:34px 0; max-width:48ch; }
.dark .pull{ color:var(--paper); }

/* ---------- NOTICE BOX ---------- */
.notice{ border:1px solid var(--amber); background:rgba(201,138,62,.08); padding:24px 28px; margin:34px 0; }
.notice p{ color:var(--ink-soft); font-size:.92rem; }
.dark .notice{ background:rgba(201,138,62,.12); }
.dark .notice p{ color:#D6D1C2; }
.notice strong{ color:var(--amber); }

/* ---------- INVEST LIST ---------- */
.invest-list{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:20px; }
.invest-list li{ background:var(--ink); padding:34px 30px; }
.invest-num{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--gold); display:block; margin-bottom:14px; }
.invest-list h3{ font-size:1.12rem; margin-bottom:10px; }
.invest-list p{ color:#B9B4A5; font-size:.9rem; }
@media (max-width:900px){ .invest-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .invest-list{ grid-template-columns:1fr; } }
.invest-list.light{ background:var(--line); border-color:var(--line); }
.invest-list.light li{ background:var(--paper); }
.invest-list.light p{ color:var(--ink-soft); }

/* ---------- WATCHLIST ---------- */
.watchlist{ list-style:none; margin-top:20px; }
.watchlist li{ display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px dashed var(--line); font-size:.96rem; }
.dark .watchlist li{ border-bottom:1px dashed var(--line-dark); color:#D6D1C2; }
.watchlist li span:last-child{ color:var(--amber); font-family:'Cormorant Garamond',serif; font-style:italic; white-space:nowrap; }

/* ---------- HOMES / CATEGORY CARDS ---------- */
.homes{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:10px; border:1px solid var(--line); }
@media (max-width:900px){ .homes{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .homes{ grid-template-columns:1fr; } }
.home{ background:var(--paper); display:flex; flex-direction:column; }
.home-top{ aspect-ratio:16/11; background:linear-gradient(150deg,#3A5A56,var(--sea)); position:relative; }
.home-body{ padding:28px 24px; flex:1; display:flex; flex-direction:column; }
.home-kind{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.home-body h3{ font-size:1.28rem; margin:8px 0 12px; }
.home-intro{ color:var(--ink-soft); font-size:.86rem; flex:1; }
.home-price{ margin:20px 0; padding-top:16px; border-top:1px solid var(--line); }
.home-price small{ display:block; font-size:.72rem; color:var(--ink-soft); }
.home-price b{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--amber); font-style:italic; font-weight:400; }
.home-cta{ width:100%; padding:12px; font-size:.8rem; }

/* ---------- AMENITIES ---------- */
.amen{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:10px; }
@media (max-width:900px){ .amen{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .amen{ grid-template-columns:1fr; } }
.amen > div{ background:var(--ink); padding:32px 26px; }
.amen h4{ color:var(--paper); font-size:1.02rem; margin-bottom:10px; font-family:'Outfit',sans-serif; font-weight:500; }
.amen ul{ list-style:none; }
.amen li{ color:#B9B4A5; font-size:.86rem; padding:6px 0; padding-left:16px; position:relative; }
.amen li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }

/* ---------- PAYMENT PLAN PLACEHOLDER ---------- */
.plan{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:20px; }
@media (max-width:760px){ .plan{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .plan{ grid-template-columns:1fr; } }
.plan > div{ background:var(--ink); padding:28px 24px; }
.plan small{ display:block; color:#B9B4A5; font-size:.78rem; margin-bottom:10px; }
.plan b{ font-family:'Cormorant Garamond',serif; font-size:1.6rem; color:var(--amber); font-style:italic; font-weight:400; }
.plan p{ margin-top:10px; color:#8A8576; font-size:.82rem; }

.ptable-wrap{ overflow-x:auto; margin-top:26px; }
.ptable{ width:100%; border-collapse:collapse; min-width:600px; }
.ptable th,.ptable td{ text-align:left; padding:16px 14px; border-bottom:1px solid var(--line); font-size:.9rem; }
.dark .ptable th, .dark .ptable td{ border-bottom:1px solid var(--line-dark); color:#D6D1C2; }
.ptable th{ font-family:'Cormorant Garamond',serif; font-size:1rem; color:var(--gold); font-weight:500; border-bottom:1px solid var(--ink); }
.dark .ptable th{ border-bottom:1px solid var(--gold); }
.ptable .num{ text-align:right; }
.note{ margin-top:24px; color:var(--ink-soft); font-size:.8rem; max-width:70ch; }
.dark .note{ color:#8A8576; }

/* ---------- WHO COLS ---------- */
.who-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:10px; }
@media (max-width:860px){ .who-grid{ grid-template-columns:1fr; } }
.who-grid > div{ background:var(--paper); padding:32px 28px; }
.who-grid h3{ font-size:1.15rem; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.who-grid ul{ list-style:none; }
.who-grid li{ padding:8px 0; color:var(--ink-soft); font-size:.9rem; position:relative; padding-left:18px; }
.who-grid li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }

/* ---------- PROS/CONS ---------- */
.proscons{ display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:10px; }
@media (max-width:820px){ .proscons{ grid-template-columns:1fr; gap:36px; } }
.proscons h3{ font-size:1.2rem; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.proscons ul{ list-style:none; }
.proscons li{ padding:12px 0; border-bottom:1px dashed var(--line); font-size:.92rem; color:var(--ink-soft); }
.proscons li strong{ display:block; color:var(--ink); font-weight:500; margin-bottom:4px; }

/* ---------- FAQ ---------- */
.faq{ max-width:820px; margin:0 auto; }
.faq details{ border-bottom:1px solid var(--line); padding:20px 0; }
.faq summary{ cursor:pointer; font-family:'Cormorant Garamond',serif; font-size:1.15rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.4rem; color:var(--gold); flex-shrink:0; }
.faq details[open] summary::after{ content:"–"; }
.faq .ans{ padding-top:14px; }
.faq .ans p{ color:var(--ink-soft); font-size:.94rem; max-width:66ch; }

/* ---------- REGISTER ---------- */
.reg{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; }
@media (max-width:900px){ .reg{ grid-template-columns:1fr; gap:40px; } }
.contact-list{ list-style:none; margin-top:36px; display:flex; flex-direction:column; gap:20px; }
.contact-list li{ display:flex; gap:16px; align-items:flex-start; }
.contact-list svg{ width:22px; height:22px; stroke:var(--gold); fill:none; stroke-width:1.4; flex-shrink:0; margin-top:2px; }
.contact-list small{ display:block; font-size:.72rem; color:#8A8576; }
.contact-list strong{ font-weight:400; color:var(--paper); font-size:.98rem; }

.form-inner{ background:var(--ink3); border:1px solid var(--line-dark); padding:40px; }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:.76rem; color:#B9B4A5; margin-bottom:8px; letter-spacing:.03em; }
.field input, .field select{ width:100%; background:transparent; border:1px solid var(--line-dark); color:var(--paper); padding:13px 14px; font-family:'Outfit',sans-serif; font-size:.92rem; }
.field select option{ color:#000; }
.hp{ position:absolute; left:-9999px; }
.form button{ width:100%; margin-top:6px; }
.form-note{ margin-top:16px; font-size:.76rem; color:#8A8576; }

/* ---------- FOOTER ---------- */
.footer{ background:var(--ink); padding:70px 0 30px; }
.fgrid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding-bottom:50px; border-bottom:1px solid var(--line-dark); }
@media (max-width:760px){ .fgrid{ grid-template-columns:1fr; gap:30px; } }
.footer .logo{ margin-bottom:16px; }
.footer-about{ color:#8A8576; font-size:.88rem; max-width:38ch; }
.footer h4{ color:var(--paper); font-size:.86rem; letter-spacing:.06em; text-transform:uppercase; font-family:'Outfit',sans-serif; font-weight:500; margin-bottom:18px; }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer ul a{ color:#B9B4A5; font-size:.88rem; }
.footer ul a:hover{ color:var(--gold); }
.disclaimer{ padding-top:30px; color:#7A7568; font-size:.76rem; max-width:100ch; }
.disclaimer .copy{ margin-top:20px; color:#5C5748; }

/* ---------- STICKY CTA ---------- */
.sticky-cta{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:70; padding:14px 18px; background:rgba(11,12,14,.95); backdrop-filter:blur(8px); border-top:1px solid var(--line-dark); }
.sticky-cta .btn{ width:100%; }
@media (max-width:760px){ .sticky-cta{ display:block; } body{ padding-bottom:70px; } }

/* ---------- MODAL ---------- */
.modal[hidden]{ display:none; }
.modal{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px; }
.modal-veil{ position:absolute; inset:0; background:rgba(11,12,14,.8); }
.modal-box{ position:relative; z-index:2; background:var(--ink2); border:1px solid var(--line-dark); padding:44px; max-width:460px; width:100%; max-height:88vh; overflow:auto; }
.modal-box--ok{ text-align:center; }
.modal-x{ position:absolute; top:18px; right:18px; background:none; border:none; cursor:pointer; }
.modal-x svg{ width:20px; height:20px; stroke:#B9B4A5; fill:none; stroke-width:1.6; }
.ok-mark{ width:52px; height:52px; stroke:var(--gold); fill:none; stroke-width:1.4; margin:0 auto 20px; }
.modal-box--ok h3{ color:var(--paper); margin-bottom:12px; }
.modal-box--ok p{ color:#B9B4A5; font-size:.92rem; margin-bottom:26px; }

/* ---------- REVEAL ---------- */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.rv.in{ opacity:1; transform:none; }