:root{--ivory:#f7f2ea;--sand:#efe6d6;--paper:#fffdf9;--ink:#1b1812;--muted:#6b6256;--gold:#b48a3c;--gold-2:#d9b665;--night:#14110c;--night-2:#1e1a13;--line:rgba(27,24,18,.12);--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,system-ui,-apple-system,Segoe UI,sans-serif;--wrap:1120px;--pad:clamp(18px,4vw,40px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 16px/1.6 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;margin:0 0 14px;letter-spacing:-.01em}
h1{font-size:clamp(2.5rem,6.6vw,5.2rem);font-weight:400;letter-spacing:-.015em}h2{font-size:clamp(2.1rem,4.8vw,3.6rem);font-weight:400}h2 em,h1 em{font-style:italic;color:var(--gold)}
.h-small{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:18px}
.eyebrow{font:600 .7rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 16px;display:flex;align-items:center;gap:12px}.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);opacity:.7}
.lead{font-size:1.05rem;color:var(--muted);max-width:60ch;margin:0 0 20px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(52px,8vw,96px) 0}.sec--tight{padding:clamp(36px,5vw,60px) 0}
.sec--night{background:var(--night);color:#efe7d8}.sec--night .lead{color:#cbbfa9}.sec--night .eyebrow{color:var(--gold-2)}
.sec--sand{background:var(--sand)}
.head{max-width:720px;margin-bottom:clamp(24px,4vw,40px)}
.note{font-size:.84rem;color:var(--muted);margin:18px 0 0}.sec--night .note{color:#a89c86}
.link{color:var(--gold);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:#fff;padding:8px 12px;z-index:100}.skip:focus{left:8px}
.vh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:999px;font:600 .92rem/1 var(--sans);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .15s,background .2s,color .2s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn--gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff;box-shadow:0 10px 24px -12px rgba(180,138,60,.9)}
.btn--ghost{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(0,0,0,.18);backdrop-filter:blur(4px)}
.btn--line{border-color:var(--gold);color:var(--gold);background:transparent}

/* opening */
.opening{position:fixed;inset:0;z-index:60;background:var(--night);display:grid;place-content:center;text-align:center;color:var(--gold-2);transition:opacity .7s ease,visibility .7s;pointer-events:none}
.opening.done{opacity:0;visibility:hidden}
.opening__roof{width:min(62vw,300px);height:auto;margin:0 auto}
.opening__roof path{fill:none;stroke:var(--gold-2);stroke-width:3;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:draw 1.5s ease-out forwards}
.opening__roof .roof-r{animation-delay:.15s}.opening__roof .roof-l2{stroke-width:2.2;animation-delay:.45s}
.opening__roof .win{fill:var(--gold-2);opacity:0;animation:fade .5s ease-out 1.15s forwards}
.opening__word{font:500 clamp(2.6rem,10vw,4.4rem)/1 var(--serif);margin:14px 0 0;opacity:0;animation:fade .7s ease-out 1.25s forwards;letter-spacing:.04em}
.opening__word span{font-size:.6em;position:relative;top:-.08em}
.opening__sub{font:500 .8rem/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;margin:12px 0 0;opacity:0;animation:fade .7s ease-out 1.5s forwards}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.opening{display:none}}

/* header */
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:10px var(--pad);background:rgba(247,242,234,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand img{width:40px;height:auto}.brand b{display:block;font:500 1.15rem/1.1 var(--serif)}.brand small{display:block;font-size:.68rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.nav{display:none;gap:22px;margin-left:auto;font-size:.88rem}.nav a{text-decoration:none;color:var(--muted)}.nav a:hover{color:var(--ink)}
.top__cta{margin-left:auto;padding:10px 16px;font-size:.82rem}
@media (min-width:900px){.nav{display:flex}.top__cta{margin-left:0}}

/* hero */
.hero{position:relative;min-height:88svh;display:grid;align-items:end;color:#fff;isolation:isolate;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:-2}.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:60% 55%;transform:scale(1.04);animation:kb 14s ease-out forwards}
@keyframes kb{to{transform:scale(1)}}
.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,17,12,.55) 0%,rgba(20,17,12,.25) 55%,rgba(20,17,12,0) 100%),linear-gradient(180deg,rgba(20,17,12,.3) 0%,rgba(20,17,12,.2) 35%,rgba(20,17,12,.82) 100%)}
.hero__body{max-width:var(--wrap);width:100%;margin:0 auto;padding:clamp(80px,14vh,140px) var(--pad) 80px}
.hero .eyebrow{color:var(--gold-2)}.hero .eyebrow::before{background:var(--gold-2)}.hero .lead{color:#efe7d8;max-width:52ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 28px}
.facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.facts li{display:flex;flex-direction:column}.facts b{font:500 1.5rem/1 var(--serif);color:var(--gold-2)}.facts span{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:#d9cfbd}
.roofline{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:46px;fill:var(--ivory)}

/* unit */
.unit{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.ph{position:relative;margin:0;border-radius:6px;overflow:hidden;background:#ddd}.ph img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.ph--wide{grid-column:1/-1}.ph--wide img{aspect-ratio:16/9}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 10px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:.82rem;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;flex-wrap:wrap}
.tag{font:600 .56rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:4px 7px;border-radius:3px;text-align:right}
@media (min-width:900px){.unit{grid-template-columns:3fr 2fr 2fr}.ph--wide{grid-column:1/2;grid-row:1/3}.ph--wide img{aspect-ratio:auto;height:100%}}
.amen{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
.amen li{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}
.amen i{grid-row:1/3;font-style:normal;font-size:1.3rem;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--sand);color:var(--gold)}
.amen b{font:600 .92rem/1.2 var(--sans)}.amen span{font-size:.8rem;color:var(--muted)}
@media (min-width:760px){.amen{grid-template-columns:repeat(3,1fr)}}

/* gallery */
.masonry{columns:2;column-gap:8px}.masonry figure{margin:0 0 8px;break-inside:avoid;position:relative;border-radius:5px;overflow:hidden;cursor:zoom-in;background:#2a251c}
.masonry img{width:100%;transition:transform .5s}.masonry figure:hover img{transform:scale(1.03)}
.masonry figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;font-size:.74rem;color:#f1ebe3;background:linear-gradient(transparent,rgba(0,0,0,.6))}
@media (min-width:760px){.masonry{columns:3}}
.chips{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chips li{font-size:.78rem;padding:7px 11px;border:1px solid rgba(217,182,101,.45);color:#e9dcbf;border-radius:999px}

/* where */
.where{display:grid;gap:28px}@media (min-width:900px){.where{grid-template-columns:1fr 1fr;align-items:center}}
.dist{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.dist li{border-top:1px solid var(--line);padding:8px 0;display:flex;flex-direction:column}.dist b{font:500 1.35rem/1 var(--serif);color:var(--gold)}.dist span{font-size:.8rem;color:var(--muted)}
address{font-style:normal;margin-top:16px;font-size:.92rem;line-height:1.5}
.map{border-radius:8px;overflow:hidden;aspect-ratio:4/3;background:#ddd;border:1px solid var(--line)}.map iframe{width:100%;height:100%;border:0}

/* planner */
.planner{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:clamp(16px,3vw,28px);max-width:820px;box-shadow:0 30px 60px -40px rgba(27,24,18,.35)}
.planner__grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.planner__grid .fld:first-child{grid-column:1/-1}
.planner__grid--2 .fld:first-child{grid-column:auto}
@media (min-width:640px){.planner__grid{grid-template-columns:1.4fr 1fr 1fr}.planner__grid .fld:first-child{grid-column:auto}.planner__grid--2{grid-template-columns:1fr 1fr}}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.fld label{font:600 .72rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fld input,.fld textarea{font:400 1rem/1.3 var(--sans);padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);width:100%}
.fld input:focus,.fld textarea:focus{outline:2px solid var(--gold-2);outline-offset:1px}
.stepper{display:grid;grid-template-columns:44px 1fr 44px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.stepper button{border:0;background:var(--sand);font-size:1.2rem;cursor:pointer;color:var(--gold)}.stepper input{border:0;text-align:center;font:500 1.1rem var(--serif);padding:10px 4px}
.chipset{border:0;padding:0;margin:4px 0 14px;display:flex;flex-wrap:wrap;gap:6px}.chipset legend{font:600 .72rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;width:100%}
.chipset label{position:relative}.chipset input{position:absolute;opacity:0;inset:0}.chipset span{display:inline-block;padding:9px 13px;border:1px solid var(--line);border-radius:999px;font-size:.84rem;background:#fff;cursor:pointer}
.chipset input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}.chipset input:focus-visible+span{outline:2px solid var(--gold-2)}
.summary{display:flex;gap:12px;align-items:center;background:var(--sand);border-radius:8px;padding:12px 14px;margin:6px 0 16px}.summary img{width:34px;height:auto}
.summary__title{margin:0;font:600 .68rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.summary__text{margin:4px 0 0;font:500 1.05rem/1.3 var(--serif)}
.planner__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.fine{font-size:.8rem;color:var(--muted);margin:12px 0 0}
.fine.ok{color:#2b6e3a;font-weight:600}.fine.err{color:#9b2c2c;font-weight:600}

/* know */
.know{margin:0;display:grid;gap:14px}@media (min-width:760px){.know{grid-template-columns:1fr 1fr}}
.know div{border-top:1px solid var(--line);padding-top:12px}.know dt{font:600 .92rem var(--sans)}.know dd{margin:4px 0 0;font-size:.9rem;color:var(--muted)}

/* footer + dock */
.foot{background:var(--night);color:#cbbfa9;padding:48px 0 110px}.foot__grid{display:grid;gap:24px}@media (min-width:760px){.foot__grid{grid-template-columns:1.2fr 1fr 1fr}}
.foot img{width:60px;height:auto}.foot__tag{font:500 1.05rem var(--serif);color:#efe7d8;margin:10px 0 0}.foot h4{margin:0 0 8px;color:#efe7d8;font:600 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.foot ul{list-style:none;margin:0;padding:0;font-size:.92rem;line-height:1.9}.foot a{color:#efe7d8;text-decoration:none}.foot address{margin:0;font-size:.92rem}
.foot__fine{max-width:var(--wrap);margin:28px auto 0;padding:18px var(--pad) 0;border-top:1px solid rgba(255,255,255,.1);font-size:.74rem;color:#8e8370}
.dock{position:fixed;left:12px;right:12px;bottom:12px;z-index:45;display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:6px;background:rgba(20,17,12,.92);backdrop-filter:blur(10px);border-radius:999px;padding:6px;box-shadow:0 16px 40px -14px rgba(0,0,0,.7)}
.dock a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;color:#efe7d8;text-decoration:none;font:600 .66rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border-radius:999px}
.dock svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dock__main{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff!important}
@media (min-width:900px){.dock{left:auto;right:24px;bottom:24px;grid-template-columns:auto auto auto;width:auto}.dock a{flex-direction:row;padding:10px 16px}}

/* lightbox */
.lb{position:fixed;inset:0;z-index:70;background:rgba(10,8,5,.94);display:grid;place-items:center;padding:16px}.lb[hidden]{display:none}
.lb figure{margin:0;max-width:min(96vw,1200px);text-align:center}.lb img{max-width:96vw;max-height:80vh;width:auto;height:auto;margin:0 auto;border-radius:4px}.lb figcaption{color:#e9dcbf;font-size:.9rem;margin-top:10px}
.lb button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;width:44px;height:44px;border-radius:50%;font-size:1.6rem;cursor:pointer}.lb__x{top:14px;right:14px}.lb__p{left:10px;top:50%}.lb__n{right:10px;top:50%}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}.rv.in{opacity:1;transform:none}

/* ready mode: owner notes only with ?edit */
.confirm{display:inline-block;font:600 .62rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#8a4b00;background:#fff4dd;border:1px dashed #c98a2b;border-radius:3px;padding:.32em .5em;margin-left:.3em;vertical-align:middle}
.owner{padding:30px var(--pad) 120px;font-size:.9rem}.owner ol{padding-left:20px}
html:not(.edit) .confirm,html:not(.edit) .edit-only{display:none!important}

/* v2: luxury pass, currency, residences, international */
.cur{display:none;margin-left:14px;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.cur button{border:0;background:transparent;font:600 .72rem/1 var(--sans);letter-spacing:.06em;padding:7px 11px;border-radius:999px;cursor:pointer;color:var(--muted)}
.cur button.on{background:var(--ink);color:#fff}
@media (min-width:700px){.cur{display:flex}}
.ticker{overflow:hidden;background:var(--night);color:var(--gold-2);border-top:1px solid rgba(217,182,101,.25);border-bottom:1px solid rgba(217,182,101,.25)}
.ticker div{display:flex;gap:26px;white-space:nowrap;padding:11px 0;font:600 .68rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;animation:tick 42s linear infinite;width:max-content}
.ticker i{font-style:normal;opacity:.6}@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker div{animation:none}}
.res{display:grid;gap:14px}@media (min-width:860px){.res{grid-template-columns:repeat(3,1fr)}}
.res__card{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 50px -40px rgba(27,24,18,.45)}
.res__card--open{border-color:rgba(180,138,60,.55);box-shadow:0 30px 60px -36px rgba(180,138,60,.6)}
.res__card figure{margin:0;position:relative;aspect-ratio:16/10;overflow:hidden;background:#2a251c}.res__card figure img{width:100%;height:100%;object-fit:cover}
.res__card .tag{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.3);color:#fff}
.res__soon img{filter:saturate(.7) brightness(.75)}.res__badge{position:absolute;inset:auto 0 0 0;padding:10px 12px;font:600 .62rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);background:linear-gradient(transparent,rgba(20,17,12,.85))}
.res__body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}.res__k{font:600 .66rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.res__body h3{font-size:1.7rem;margin:0}.res__body p{margin:0;font-size:.92rem;color:var(--muted);flex:1}
.res__state{font:600 .7rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.res__state--open{color:#2b6e3a}
.res__body .btn{align-self:flex-start;margin-top:6px}
.sec--intl{background:radial-gradient(120% 90% at 100% 0%,#2a2214 0%,var(--night) 60%)}
.intl{display:grid;gap:28px}@media (min-width:900px){.intl{grid-template-columns:1fr 1.2fr;align-items:start}}
.intl__list{list-style:none;margin:0;padding:0;display:grid;gap:4px}@media (min-width:600px){.intl__list{grid-template-columns:1fr 1fr;gap:4px 24px}}
.intl__list li{border-top:1px solid rgba(217,182,101,.25);padding:14px 0;display:flex;flex-direction:column;gap:4px}.intl__list b{font:500 1.25rem/1.15 var(--serif);color:#f3ead8}.intl__list span{font-size:.86rem;color:#b9ad97}
.intl__list .confirm{margin-left:.3em}
.foot__cur{font:600 .66rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin:10px 0 0}
.dock{grid-template-columns:1fr 1.15fr 1.5fr}
