@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{--ink:#0b2737;--paper:#f4f1ea;--gold:#c7aa72;--muted:#66747b;--deep:#071d29;--line:#c9c5bc}
*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}body{overflow:hidden}
.top{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;background:var(--paper);border-bottom:1px solid #d4d0c8;position:fixed;inset:0 0 auto;z-index:20}
.brand{font-size:.75rem;letter-spacing:.12em;font-weight:600;color:var(--ink);text-decoration:none;max-width:min(58vw,340px);line-height:1.2;white-space:normal}.statusBtn{justify-self:end;border:1px solid #aeb5b6;border-radius:99px;background:none;padding:8px 12px;font-size:.7rem}.statusBtn span{display:inline-block;width:7px;height:7px;background:#299568;border-radius:50%;margin-right:5px}
.journey{display:flex;gap:22px;align-items:center}.journey span{font-size:.59rem;letter-spacing:.1em;color:#9aa1a2;white-space:nowrap}.journey span.active{color:var(--ink);font-weight:600}.journey span.done{color:#79898d}
.panel{position:fixed;inset:64px 0 0;overflow-y:auto;background:var(--paper);z-index:3}.panel[hidden]{display:none!important}.inner{width:min(1160px,calc(100% - 48px));min-height:calc(100vh - 64px);margin:auto;padding:62px 0;display:flex;flex-direction:column;justify-content:center}.form{max-width:800px}.wide{max-width:1160px}
h1,h2,h3,blockquote{font-family:"Libre Caslon Display",Georgia,serif;font-weight:400;line-height:1.04}h1{font-size:clamp(4rem,8vw,7.5rem);margin:.1em 0}h2{font-size:clamp(2.6rem,5vw,4.8rem);margin:.1em 0 .3em}h3{font-size:2rem;margin:1em 0 .45em}.eyebrow,.step{font-size:.7rem;letter-spacing:.16em;font-weight:600}.muted,.note{color:var(--muted)}.intro{font-size:1.05rem;max-width:760px}.light{color:#e9eff0}
.heroPanel,.successPanel{color:white}.heroBg,.successBg,.photo{background-size:cover;background-position:center}.heroBg,.successBg,.shade{position:absolute;inset:0}
.heroBg{background-image:url("https://images.unsplash.com/photo-1776405727320-1f8e7061d2a3?auto=format&fit=crop&fm=jpg&q=88&w=3000")}
.successBg{background-image:url("https://images.unsplash.com/photo-1768354402690-9889fb1c9ff2?auto=format&fit=crop&fm=jpg&q=88&w=3000")}
.shade{background:linear-gradient(90deg,rgba(4,21,31,.92),rgba(4,21,31,.36) 68%,rgba(4,21,31,.12))}.heroCopy,.successCopy{position:relative;z-index:2;align-items:flex-start}.lead{font-size:1.08rem;max-width:610px}
.cta{border:0;padding:15px 22px;font:600 .9rem "DM Sans";cursor:pointer;border-radius:2px}.gold{background:var(--gold);color:var(--deep)}.dark{background:var(--ink);color:white}.micro{font-size:.75rem}
.proof{display:grid;grid-template-columns:repeat(3,1fr);width:min(800px,100%);margin-top:42px;border-top:1px solid rgba(255,255,255,.35)}.proof div{padding:18px 20px 0 0}.proof b,.proof span{display:block}.proof b{font-size:.7rem;letter-spacing:.1em}.proof span{font-size:.75rem;color:#cdd6d9;margin-top:4px}
.options,.chips{display:grid;gap:9px;margin:28px 0}.options button,.chips button{background:rgba(255,255,255,.45);border:1px solid #c5c4bd;padding:15px 17px;text-align:left;color:var(--ink);font:inherit;cursor:pointer}.options button.selected,.chips button.selected{background:white;border-color:var(--ink);box-shadow:inset 4px 0 var(--ink)}.chips{grid-template-columns:repeat(2,1fr)}
nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px}.back{border:0;background:none;color:var(--ink);cursor:pointer}.lightBack{color:white}
.economics{background:#e9e5dc;padding:45px;margin-top:30px}.ranges{display:grid;grid-template-columns:1fr 1fr;gap:60px}.ranges span,.rent span,.mini span{font-size:.68rem;letter-spacing:.1em;font-weight:600;display:block}.ranges strong,.rent strong,.mini strong{font:400 2.7rem "Libre Caslon Display";display:block}.scale{height:32px;border-bottom:1px solid #9ca4a5;position:relative;margin-top:35px}.scale i{position:absolute;height:8px;bottom:-4px}.scale i:first-child{left:0;width:10%;background:#47765f}.scale i:last-child{left:62%;width:38%;background:var(--gold)}.ticks{display:flex;justify-content:space-between;font-size:.7rem;margin-top:9px}.difference{text-align:center;margin:40px auto 10px}.difference b{display:block;font:400 3.5rem "Libre Caslon Display";color:#876b39}.center{text-align:center}
.visual{display:grid;grid-template-columns:45% 55%}.photo{height:100%;min-height:calc(100vh - 64px)}.copy{width:min(650px,calc(100% - 60px));margin:0 auto;padding:55px 0}
.built{background-image:url("/deal/assets/already-built-apartment.webp");background-size:cover;background-position:center;filter:none}
.transaction{background-image:url("/deal/assets/transaction-development.webp");background-size:cover;background-position:center;filter:none}
.harbour{background-image:url("https://images.unsplash.com/photo-1759792056436-4777ee7e4171?auto=format&fit=crop&fm=jpg&q=88&w=3000")}
.diligence{background-image:url("https://images.unsplash.com/photo-1770681381576-fe1ca0178da1?auto=format&fit=crop&fm=jpg&q=88&w=2600")}
.dealroom{background-image:url("https://images.unsplash.com/photo-1768219565623-501f93ae384b?auto=format&fit=crop&fm=jpg&q=88&w=2600")}
.darkPanel{background:var(--deep);color:white}.darkPanel em{color:var(--gold);font-style:normal}.big{font-size:1.18rem}
.rentalOnly,.allocationOnly{max-width:850px}.rent{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#c9c6be;margin:30px 0}.rent div{background:var(--paper);padding:30px}.rent small{color:var(--muted)}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:30px 0 22px;border-top:1px solid #c9c5bc;padding-top:25px}.spreadNote{border-left:3px solid var(--gold);padding:2px 0 2px 18px;margin:5px 0 28px}.spreadNote p{color:var(--muted);font-size:.86rem;line-height:1.55}
blockquote{font-size:2rem;border-left:3px solid var(--gold);padding-left:20px;margin:30px 0}
.alloc{display:grid;grid-template-columns:repeat(11,1fr);gap:6px;margin:28px 0}.alloc i{aspect-ratio:1;border:1px solid #b9b7b0;background:#fff}.alloc i.taken{background:var(--ink)}.alloc i.ours{background:var(--gold)}
.legend{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 26px}.legend span{font-size:.74rem;display:flex;align-items:center;gap:7px}.lg{width:13px;height:13px;display:inline-block;border:1px solid #b9b7b0}.lg.ours{background:var(--gold);border-color:var(--gold)}.lg.taken{background:var(--ink);border-color:var(--ink)}.lg.available{background:white}
.allocNums{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cbc7be;padding-top:20px}.allocNums strong,.allocNums span{display:block}.allocNums strong{font:400 2.8rem "Libre Caslon Display"}.allocNums span{font-size:.7rem}
.rows div{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:17px 0;border-top:1px solid #ccc8bf}.rows span{color:var(--muted)}
.contactGrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contactGrid label{font-size:.75rem}.contactGrid label small{display:block;color:var(--muted);font-weight:400;line-height:1.25;margin-top:3px}.contactGrid input{display:block;width:100%;padding:12px;border:1px solid #bfc0bb;background:white;margin-top:5px}.check{display:flex;gap:10px;margin:20px 0;font-size:.78rem}
.review,.summary{border-top:1px solid #c9c5bd;margin:25px 0}.review div,.summary div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #d4d0c8}.review span,.summary span{color:var(--muted);font-size:.78rem}.binding{background:#ebe7de;padding:16px 18px;font-size:.84rem}
.checkmark{width:55px;height:55px;border:2px solid #5bb789;border-radius:50%;display:grid;place-items:center;font-size:1.6rem}.reference{padding:10px 14px;border:1px solid rgba(255,255,255,.26);font-size:.78rem}.timeline{color:#dbe2e4;line-height:2}
.lockedList{margin:28px 0;border-top:1px solid rgba(255,255,255,.22)}.lockedList div{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.18)}.lockedList small{color:#aab9be}.lockedList b{font-size:.9rem}
dialog{border:0;padding:35px;width:min(500px,calc(100% - 32px));background:var(--paper)}dialog::backdrop{background:rgba(4,20,29,.65)}.x{position:absolute;right:15px;top:10px;border:0;background:none;font-size:1.5rem}.statusRows div{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #ccc8bf}

@media(max-width:980px){.journey{display:none}.top{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 .top{height:58px;padding:0 18px}.panel{inset:58px 0 0}.inner{width:calc(100% - 36px);min-height:calc(100vh - 58px);padding:38px 0 calc(140px + env(safe-area-inset-bottom))}h1{font-size:4rem}h2{font-size:2.65rem}.proof{grid-template-columns:1fr;margin-top:25px}.proof div{padding:10px 0;border-top:1px solid rgba(255,255,255,.18)}
 .brand{font-size:clamp(.55rem,2.6vw,.7rem);letter-spacing:.08em;max-width:62vw}
 .visual{display:block}.visual .photo{height:28vh;min-height:210px;background-size:cover}.visual .copy{min-height:auto;width:calc(100% - 36px);padding:32px 0}.chips,.ranges,.rent,.mini,.contactGrid{grid-template-columns:1fr}.economics{padding:22px 16px}.alloc{gap:3px}.rows div{grid-template-columns:1fr;gap:4px}.allocNums{gap:10px}.lockedList div{grid-template-columns:26px 1fr}.lockedList small{grid-column:2}
 nav{position:sticky;bottom:0;left:0;right:0;background:linear-gradient(to bottom, rgba(244,241,234,0) 0%, rgba(244,241,234,.96) 35%, var(--paper) 55%);padding:28px 0 calc(14px + env(safe-area-inset-bottom));z-index:5}.darkPanel nav{background:linear-gradient(to bottom, rgba(7,29,41,0) 0%, rgba(7,29,41,.96) 35%, var(--deep) 55%)}.successPanel nav{background:none}
}

.singlePrice{grid-template-columns:1fr;max-width:440px}.singlePrice strong{font-size:3rem}


/* Restore sticky-nav clearance on visual split panels (Already Built / Transaction / etc).
   .visual .copy sets padding:32px 0 on mobile and was wiping the .inner bottom reserve. */
@media (max-width:760px) {
  .panel.visual .inner.copy {
    padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important;
  }
  .panel.visual.darkPanel .inner.copy {
    padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important;
  }
}
