/* ===========================================================================
   Project dossier: the sections below the price.

   One container, one rhythm, one type scale. Every section here shares the
   same left edge (1200px), the same interval between sections and the same
   heading system, so the page reads as one document. Layouts alternate on
   purpose: panel, data graphic, cinematic frame, ledger, conversion moment.
   =========================================================================== */

:root{
	--dx-w:1200px;
	--dx-gap:clamp(3.5rem,6.5vw,6.25rem);
	--dx-radius:16px;
	--dx-radius-sm:10px;
	--dx-ink:var(--ink-900);
	--dx-ink-2:#3B2E25;
	--dx-mute:var(--gray-500);
	--dx-line:var(--border-1);
	--dx-panel:#F7F3EE;
	--dx-panel-2:#FBF8F4;
	--dx-ease:cubic-bezier(.22,.61,.36,1);
	--dx-dur:.55s;
	--dx-shadow:0 1px 2px rgba(24,14,8,.04),0 12px 32px -18px rgba(24,14,8,.18);
	--dx-ok:#1B6B45;
}

/* Bring the retained sections onto the same grid. */
.opi-entity{--sec-gap:var(--dx-gap)}
.opi-entity .opi-facts-panel,
.opi-entity .opi-vd,
.opi-entity .opi-pricing,
.opi-entity .opi-rail,
.opi-entity .opi-prov{max-width:var(--dx-w)}
.opi-entity .opi-vd,
.opi-entity .opi-pricing{margin-top:var(--dx-gap);margin-bottom:var(--dx-gap)}
.opi-entity .opi-rail{margin:var(--dx-gap) auto 0}
.opi-entity .opi-prov{margin:var(--dx-gap) auto var(--space-16);padding-top:0}
.opi-entity .opi-facts-panel{margin-top:var(--space-16)}

/* --- shared parts -------------------------------------------------------- */
.opi-dx{max-width:var(--dx-w);margin:var(--dx-gap) auto;color:var(--dx-ink)}
.opi-dx p{color:var(--dx-ink)}
.opi-dx__head{margin:0 0 var(--space-8)}
.opi-dx__eyebrow{margin:0 0 var(--space-3);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-600)}
.opi-dx p.opi-dx__eyebrow--light,.opi-ink .opi-dx__eyebrow--light{color:#FDBA74}
.opi-dx__title{margin:0;max-width:24ch;font-family:var(--font-display);font-size:clamp(1.75rem,2.8vw,2.375rem);line-height:1.12;letter-spacing:-.022em;font-weight:var(--weight-semibold);color:var(--dx-ink);text-wrap:balance}
.opi-dx__lede{margin:var(--space-4) 0 0;max-width:64ch;font-size:1.0625rem;line-height:1.6;color:var(--dx-ink-2)}
.opi-dx__label{margin:0 0 var(--space-3);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.12em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dx__num{display:block;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;color:var(--ember-600);font-variant-numeric:tabular-nums}
.opi-dx__credit{margin:var(--space-4) 0 0;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;line-height:1.5;color:var(--dx-mute)}
.opi-dx__foot{margin:var(--space-5) 0 0;font-size:var(--text-caption);line-height:1.55;color:var(--dx-mute)!important}
.opi-dx-link{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--weight-semibold);letter-spacing:-.005em;color:var(--dx-ink);cursor:pointer;text-decoration:none}
.opi-dx-link svg{width:16px;height:16px;transition:transform .2s var(--dx-ease)}
.opi-dx-link:hover{color:var(--ember-600);text-decoration:none}
.opi-dx-link:hover svg{transform:translateX(3px)}
.opi-dx-link--light{color:var(--text-inverse)}
.opi-dx-link--light:hover{color:var(--ember-300)}
.opi-dx-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}
.opi-dx-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px 0 12px;border:1px solid var(--dx-line);border-radius:999px;background:#fff;font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--dx-ink);text-decoration:none;transition:border-color .18s var(--dx-ease),background .18s var(--dx-ease),transform .18s var(--dx-ease)}
.opi-dx-chip svg{width:15px;height:15px;color:var(--ember-600)}
.opi-dx-chip:hover{border-color:var(--gray-400);background:var(--dx-panel-2);text-decoration:none;color:var(--dx-ink);transform:translateY(-1px)}

/* Insight flag: the house callout, one style everywhere. */
.opi-dx-flag{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5) var(--space-6);border:1px solid var(--dx-line);border-left:3px solid var(--ember-600);border-radius:var(--dx-radius-sm);background:var(--dx-panel-2)}
.opi-dx-flag--flag{border-left-color:#8A5A0A;background:#FBF6EC}
.opi-dx-flag__ic{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--dx-line);color:var(--ember-600)}
.opi-dx-flag--flag .opi-dx-flag__ic{color:#8A5A0A}
.opi-dx-flag__t{margin:0 0 4px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.12em;text-transform:uppercase;color:var(--dx-ink)}
.opi-dx-flag__body p{margin:0;max-width:78ch;font-size:var(--text-body);line-height:1.6;color:var(--dx-ink-2)}
.opi-dx-flag__body p+p{margin-top:var(--space-3)}

/* Details and tables shared by the plan schedule. */
.opi-dx-details{margin:var(--space-5) 0 0}
.opi-dx-details>summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:10px 0;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;text-transform:uppercase;color:var(--dx-ink)}
.opi-dx-details>summary::-webkit-details-marker{display:none}
.opi-dx-details>summary>span{padding-bottom:3px;border-bottom:1px solid var(--dx-line)}
.opi-dx-details>summary:hover>span{border-bottom-color:var(--ember-600)}
.opi-dx-table{width:100%;margin-top:var(--space-3);border-collapse:collapse;font-size:var(--text-body-sm)}
.opi-dx-table th,.opi-dx-table td{padding:10px 0;border-bottom:1px solid var(--dx-line);text-align:left}
.opi-dx-table td{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* --- reveal -------------------------------------------------------------- */
html.js-dx [data-dx-reveal]{opacity:0;transform:translateY(16px);transition:opacity var(--dx-dur) var(--dx-ease),transform var(--dx-dur) var(--dx-ease)}
html.js-dx [data-dx-reveal].is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.js-dx [data-dx-reveal]{opacity:1;transform:none;transition:none}}

/* ===========================================================================
   About: panelled editorial overview
   =========================================================================== */
.opi-dxa{margin-top:var(--space-16)}
.opi-dxa__panel{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-12);padding:clamp(28px,4vw,52px);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:var(--dx-panel);box-shadow:var(--dx-shadow);overflow:hidden}
.opi-dxa__panel::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 60% at 100% 0%,rgba(251,146,60,.10),transparent 60%);pointer-events:none}
.opi-dxa__panel>*{position:relative}
.opi-dxa__copy{min-width:0}
.opi-dxa__lead{margin:var(--space-6) 0 var(--space-4);max-width:62ch;font-size:1.0625rem;line-height:1.65;color:var(--dx-ink)}
.opi-dxa__p{margin:0 0 var(--space-4);max-width:62ch;font-size:1.0625rem;line-height:1.65;color:var(--dx-ink-2)}
.opi-dxa__p:last-child{margin-bottom:0}
.opi-dxa__p strong,.opi-dxa__lead strong{color:var(--dx-ink);font-weight:var(--weight-semibold)}
.opi-dxa__side{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}
.opi-dxa__fig{margin:0}
.opi-dxa__fig img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--dx-radius-sm);box-shadow:0 18px 40px -22px rgba(24,14,8,.45)}
.opi-dxa__fig figcaption{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:var(--dx-mute)}
.opi-dxa__hl{margin:0;padding:var(--space-5);list-style:none;display:grid;gap:var(--space-3);border:1px solid var(--dx-line);border-radius:var(--dx-radius-sm);background:#fff}
.opi-dxa__hl li{display:flex;gap:10px;align-items:flex-start;font-size:var(--text-body);line-height:1.5;color:var(--dx-ink)}
.opi-dxa__hl svg{flex:0 0 auto;width:16px;height:16px;margin-top:3px;color:var(--dx-ok)}
@media(max-width:900px){
	.opi-dxa__panel{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}
	.opi-dxa__fig img{aspect-ratio:16/10}
}

/* ===========================================================================
   Payment plan: exposure bar and stage columns
   =========================================================================== */
.opi-dxp__grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:var(--space-10);align-items:start}
.opi-dxp__main{min-width:0;padding:clamp(22px,3vw,36px);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxp__status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);margin:0 0 var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--dx-line)}
.opi-dxp__status p{margin:0;font-size:var(--text-caption);line-height:1.5;color:var(--dx-ink-2);max-width:70ch}
.opi-dxp__bar{display:flex;gap:3px;height:54px;border-radius:8px;overflow:hidden}
.opi-dxp__seg{position:relative;flex:0 0 auto;width:0;display:flex;align-items:center;justify-content:flex-start;padding-left:14px;color:#fff;font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:1.125rem;letter-spacing:-.01em;transition:width .9s var(--dx-ease);overflow:hidden;white-space:nowrap}
.is-in .opi-dxp__seg,.no-js .opi-dxp__seg{width:var(--w)}
html:not(.js-dx) .opi-dxp__seg{width:var(--w)}
.opi-dxp__seg--a{background:var(--ember-600)}
.opi-dxp__seg--b{background:#9C3A0A}
.opi-dxp__seg--c{background:var(--ink-800)}
.opi-dxp__cols{display:flex;gap:3px;margin-top:var(--space-4)}
.opi-dxp__col{flex:1 1 0;min-width:0;padding:var(--space-4) var(--space-3) 0 0;border-top:2px solid var(--dx-line)}
.opi-dxp__col:first-child{border-top-color:var(--ember-600)}
.opi-dxp__col:nth-child(2){border-top-color:#9C3A0A}
.opi-dxp__col:last-child{border-top-color:var(--ink-800)}
.opi-dxp__k{margin:0 0 4px;font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--dx-ink)}
.opi-dxp__cash{margin:0 0 6px;font-family:var(--font-mono);font-size:1.25rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--dx-ink)}
.opi-dxp__when{margin:0 0 4px;font-size:var(--text-caption);line-height:1.45;color:var(--dx-ink-2)}
.opi-dxp__n{margin:0 0 4px;font-size:var(--text-caption);line-height:1.45;color:var(--dx-mute)!important}
.opi-dxp__cum{margin:8px 0 0;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:var(--ember-600)!important}
.opi-dxp__aside{min-width:0;padding-top:var(--space-2)}
.opi-dxp__list{margin:0;padding:0;list-style:none;display:grid;gap:0}
.opi-dxp__ins{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);padding:var(--space-5) 0;border-top:1px solid var(--dx-line)}
.opi-dxp__ins:last-child{border-bottom:1px solid var(--dx-line)}
.opi-dxp__ic{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--dx-line);background:#fff;color:var(--ember-600)}
.opi-dxp__it{margin:0 0 4px;font-size:1rem;font-weight:var(--weight-semibold);line-height:1.35;letter-spacing:-.01em;color:var(--dx-ink)}
.opi-dxp__ib{margin:0;font-size:var(--text-caption);line-height:1.55;color:var(--dx-ink-2)!important}
@media(max-width:900px){
	.opi-dxp__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
	.opi-dxp__cols{flex-direction:column;gap:var(--space-4)}
	.opi-dxp__col{width:auto;padding-right:0}
	.opi-dxp__bar{height:46px}
	.opi-dxp__seg{font-size:1rem;padding-left:10px}
}

/* ===========================================================================
   Gallery: cinematic lead, mosaic under it
   =========================================================================== */
.opi-entity .opi-dxg{max-width:var(--dx-w);margin:var(--dx-gap) auto}
.opi-dxg__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-6)}
.opi-dxg__head .opi-dx__head{margin:0}
.opi-dxg__meta{display:flex;align-items:center;gap:var(--space-6);padding-bottom:6px;white-space:nowrap}
.opi-dxg__count{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dxg__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.opi-dxg__cell{position:relative;display:block;overflow:hidden;border-radius:var(--dx-radius-sm);background:var(--dx-panel);isolation:isolate}
.opi-dxg__cell--lead{grid-column:span 6;aspect-ratio:21/9}
.opi-dxg__cell--sq{grid-column:span 2;aspect-ratio:4/5}
.opi-dxg__cell--wide{grid-column:span 3;aspect-ratio:16/9}
.opi-dxg__img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.001);transition:transform 1.1s var(--dx-ease),filter .5s var(--dx-ease)}
.opi-dxg__cell:hover .opi-dxg__img,.opi-dxg__cell:focus-visible .opi-dxg__img{transform:scale(1.04)}
.opi-dxg__cell::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(13,7,4,.55) 0%,rgba(13,7,4,0) 42%);opacity:.75;transition:opacity .4s var(--dx-ease)}
.opi-dxg__cell:hover::after{opacity:1}
.opi-dxg__cap{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;align-items:baseline;gap:10px;padding:0 16px 14px;font-family:var(--font-body);font-size:var(--text-caption);letter-spacing:-.005em;color:#fff;transform:translateY(4px);opacity:.92;transition:transform .4s var(--dx-ease),opacity .4s var(--dx-ease)}
.opi-dxg__cell:hover .opi-dxg__cap{transform:none;opacity:1}
.opi-dxg__cell--lead .opi-dxg__cap{padding:0 24px 20px;font-size:var(--text-body-sm)}
.opi-dxg__num{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;color:var(--ember-300)}
.opi-dxg__cell:focus-visible{outline:2px solid var(--ember-600);outline-offset:3px}
@media(max-width:820px){
	.opi-dxg__head{flex-direction:column;align-items:flex-start;gap:var(--space-3)}
	.opi-dxg__grid{gap:6px}
	.opi-dxg__cell--lead{aspect-ratio:16/10}
	.opi-dxg__cell--sq{grid-column:span 3;aspect-ratio:1}
	.opi-dxg__cell--sq:nth-child(4){grid-column:span 6;aspect-ratio:16/9}
	.opi-dxg__cell--wide{grid-column:span 3;aspect-ratio:1}
}
@media(prefers-reduced-motion:reduce){.opi-dxg__img{transition:none}.opi-dxg__cell:hover .opi-dxg__img{transform:none}}

/* ===========================================================================
   Editorial lede (post content)
   =========================================================================== */
.opi-entity .opi-dxl{margin-bottom:calc(var(--dx-gap) * -.35)}
.opi-dxl__in{max-width:66ch;margin:0;padding-left:var(--space-6);border-left:3px solid var(--ember-600)}
/* The serif italic is a lede treatment, not a body face. It was applying to
   every paragraph the block contained, so a whole section of research rendered
   as one enormous pull quote. It now dresses the opening paragraph only. */
.opi-dxl__in > p:first-of-type{margin:0;font-family:var(--font-serif);font-style:italic;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.4;color:var(--dx-ink)}
.opi-dxl__in > p{margin:0 0 var(--space-5);font-family:var(--font-body);font-style:normal;font-size:1.0625rem;line-height:1.65;color:var(--text-2)}
.opi-dxl__in > p:first-of-type{margin-bottom:var(--space-6)}
.opi-dxl__in > p:last-child{margin-bottom:0}
/* A block carrying its own headings is a section of copy, not a quotation, so
   it drops the quotation rule and takes a slightly wider reading measure. */
.opi-dxl__in:has(h2),.opi-dxl__in:has(h3){max-width:72ch;padding-left:0;border-left:0}
.opi-dxl__in .opi-faq,.opi-dxl__in .opi-eeat{display:none}

/* ===========================================================================
   Price evidence: figures on one scale
   =========================================================================== */
.opi-dxq__scale{position:relative;height:150px;margin:var(--space-4) 0 var(--space-8)}
.opi-dxq__track{position:absolute;left:0;right:0;top:44px;height:2px;background:linear-gradient(90deg,var(--ember-600),var(--gray-300))}
.opi-dxq__pin{position:absolute;left:var(--x);top:0;width:0;display:flex;flex-direction:column;align-items:center}
.opi-dxq__dot{position:absolute;top:38px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--ink-800);box-shadow:0 0 0 4px #FCFAF7}
.opi-dxq__pin.is-entry .opi-dxq__dot{border-color:var(--ember-600)}
.opi-dxq__fig{position:absolute;top:66px;white-space:nowrap;font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.6rem);font-weight:var(--weight-semibold);letter-spacing:-.02em;color:var(--dx-ink)}
.opi-dxq__lab{position:absolute;top:104px;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dxq__pin.is-entry .opi-dxq__fig{color:var(--ember-600)}
.opi-dxq__delta{position:absolute;left:var(--x);top:30px;transform:translateX(-50%);padding:4px 10px;border:1px solid var(--dx-line);border-radius:999px;background:#fff;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:var(--dx-ink);white-space:nowrap}
.opi-dxq__strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin:var(--space-4) 0 var(--space-8)}
.opi-dxq__strip>div{padding:var(--space-5);border:1px solid var(--dx-line);border-radius:var(--dx-radius-sm);background:#fff}
.opi-dxq__strip b{display:block;font-family:var(--font-display);font-size:1.5rem;letter-spacing:-.02em}
.opi-dxq__strip span{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dxq__notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5)}
.opi-dxq__note{padding:var(--space-6);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxq__note h3{margin:var(--space-3) 0 var(--space-3);font-family:var(--font-display);font-size:1.125rem;font-weight:var(--weight-semibold);letter-spacing:-.015em;line-height:1.3;color:var(--dx-ink)}
.opi-dxq__note p{margin:0;font-size:var(--text-body);line-height:1.6;color:var(--dx-ink-2)}
.opi-dxq__note p+p{margin-top:var(--space-3)}
@media(max-width:720px){
	.opi-dxq__scale{display:grid;height:auto;gap:var(--space-3);margin-bottom:var(--space-6)}
	.opi-dxq__track,.opi-dxq__dot,.opi-dxq__delta{display:none}
	.opi-dxq__pin{position:static;width:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--space-4);padding:12px 0;border-bottom:1px solid var(--dx-line)}
	.opi-dxq__fig,.opi-dxq__lab{position:static;white-space:normal}
	.opi-dxq__fig{order:2;text-align:right}
}

/* ===========================================================================
   Residences: render left, mix and ranges right
   =========================================================================== */
.opi-dxr__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-10);align-items:stretch}
.opi-dxr.has-fig .opi-dxr__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.opi-dxr__fig{margin:0;min-width:0;display:flex;flex-direction:column}
.opi-dxr__fig img{display:block;width:100%;flex:1 1 auto;min-height:420px;object-fit:cover;border-radius:var(--dx-radius);box-shadow:var(--dx-shadow)}
.opi-dxr__fig figcaption{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:var(--dx-mute)}
.opi-dxr__body{min-width:0}
.opi-dxr__body .opi-dx__head{margin-bottom:var(--space-6)}
.opi-dxr__mixhead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.opi-dxr__mixhead .opi-dx__label{margin:0}
.opi-dxr__mix{display:flex;gap:3px;height:40px;margin:var(--space-3) 0 var(--space-6);border-radius:6px;overflow:hidden}
.opi-dxr__mixseg{flex:0 0 auto;width:0;display:flex;align-items:center;padding-left:12px;color:#fff;font-size:var(--text-caption);font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;transition:width .9s var(--dx-ease)}
.is-in .opi-dxr__mixseg,html:not(.js-dx) .opi-dxr__mixseg{width:var(--w)}
.opi-dxr__t0{background:var(--ember-600)}
.opi-dxr__t1{background:var(--ink-800)}
.opi-dxr__t2{background:#9C3A0A}
.opi-dxr__rows{display:grid;gap:0;border-top:1px solid var(--dx-line)}
.opi-dxr__row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:var(--space-5) 0;border-bottom:1px solid var(--dx-line)}
.opi-dxr__rt{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}
.opi-dxr__rt h3{margin:0;font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--dx-ink)}
.opi-dxr__cnt{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.06em;color:var(--dx-mute);font-variant-numeric:tabular-nums}
.opi-dxr__size{margin:0;font-family:var(--font-mono);font-size:1.125rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--dx-ink)}
.opi-dxr__range{position:relative;height:8px;margin:4px 0 6px;border-radius:4px;background:var(--dx-panel)}
.opi-dxr__range b{position:absolute;top:0;bottom:0;left:0;width:var(--l);border-radius:4px 0 0 4px;background:rgba(24,14,8,.16);transform-origin:left;transform:scaleX(0);transition:transform .8s var(--dx-ease) .1s}
.opi-dxr__range i{position:absolute;top:0;bottom:0;left:var(--l);width:max(var(--w),12px);border-radius:4px;transform-origin:left;transform:scaleX(0);transition:transform .6s var(--dx-ease) .5s}
.is-in .opi-dxr__range i,.is-in .opi-dxr__range b,html:not(.js-dx) .opi-dxr__range i,html:not(.js-dx) .opi-dxr__range b{transform:none}
.opi-dxr__note{margin:0;max-width:60ch;font-size:var(--text-caption);line-height:1.55;color:var(--dx-ink-2)!important}
.opi-dxr__row--x .opi-dxr__size{font-size:1rem}
@media(max-width:900px){
	.opi-dxr.has-fig .opi-dxr__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
	.opi-dxr__fig img{min-height:0;aspect-ratio:16/10}
}

/* ===========================================================================
   Amenities: cinematic frame, glass list
   =========================================================================== */
.opi-dxm__stage{position:relative;min-height:520px;border-radius:var(--dx-radius);overflow:hidden;background:var(--ink-900);isolation:isolate}
.opi-dxm__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;transform:scale(1.02);transition:transform 6s var(--dx-ease)}
.is-in .opi-dxm__img{transform:scale(1)}
.opi-dxm__stage::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(13,7,4,.10) 0%,rgba(13,7,4,.25) 45%,rgba(13,7,4,.62) 100%);pointer-events:none}
.opi-dxm__glass{position:relative;z-index:2;width:min(460px,100%);margin-left:auto;padding:clamp(24px,3vw,36px);min-height:520px;color:var(--text-inverse);background:rgba(20,12,8,.42);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-left:1px solid rgba(255,255,255,.14)}
.opi-dxm__title{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:clamp(1.5rem,2.3vw,1.9rem);line-height:1.15;letter-spacing:-.02em;font-weight:var(--weight-semibold);color:#fff}
.opi-dxm__evrow{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid rgba(255,255,255,.16)}
.opi-dxm__n{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.opi-dxm__list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.opi-dxm__list li{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-body-sm);line-height:1.4;color:#fff}
.opi-dxm__list svg{flex:0 0 auto;width:15px;height:15px;margin-top:3px;color:var(--ember-300)}
.opi-dxm__cap{position:absolute;left:20px;bottom:16px;z-index:2;margin:0;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:rgba(255,255,255,.78)}
.opi-dxm__note{max-width:76ch;margin-top:var(--space-5)}
.opi-dxm__note p{margin:0;font-size:var(--text-body);line-height:1.6;color:var(--dx-ink-2)}
.opi-dxm:not(.has-img) .opi-dxm__stage{min-height:0;background:var(--ink-950)}
.opi-dxm:not(.has-img) .opi-dxm__glass{width:100%;min-height:0;backdrop-filter:none}
.opi-dxm:not(.has-img) .opi-dxm__list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
@media(max-width:820px){
	.opi-dxm__stage{min-height:0;display:flex;flex-direction:column}
	.opi-dxm__img{position:relative;height:auto;aspect-ratio:16/10;transform:none}
	.opi-dxm__stage::before{content:none}
	.opi-dxm__glass{width:100%;min-height:0;background:var(--ink-950);backdrop-filter:none;border-left:0}
	.opi-dxm__cap{position:static;padding:10px 20px;background:var(--ink-950);color:rgba(255,255,255,.6)}
}
@media(prefers-reduced-motion:reduce){.opi-dxm__img{transition:none;transform:none}}

/* ===========================================================================
   Location: radial dial, then the list
   =========================================================================== */
.opi-dxo__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-12);align-items:center}
.opi-dxo__vis{min-width:0;padding:clamp(16px,2.5vw,32px);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxo__radial{display:block;width:100%;height:auto;font-family:var(--font-body)}
.opi-dxo__ring{fill:none;stroke:var(--gray-200);stroke-width:1;stroke-dasharray:3 4}
.opi-dxo__ringlab{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;fill:var(--gray-400)}
.opi-dxo__lead{stroke:var(--ember-600);stroke-width:1.2;stroke-opacity:.5;transform-origin:380px 280px;transform:scale(0);transition:transform .8s var(--dx-ease) calc(var(--i) * 90ms)}
.is-in .opi-dxo__lead,html:not(.js-dx) .opi-dxo__lead{transform:none}
.opi-dxo__tie{stroke:var(--gray-300);stroke-width:1}
.opi-dxo__dot{fill:#fff;stroke:var(--ember-600);stroke-width:3}
.opi-dxo__pin .opi-dxo__dot,.opi-dxo__pin .opi-dxo__tie,.opi-dxo__pin text{opacity:0;transition:opacity .5s var(--dx-ease) calc(var(--i) * 90ms + .4s)}
.is-in .opi-dxo__pin .opi-dxo__dot,.is-in .opi-dxo__pin .opi-dxo__tie,.is-in .opi-dxo__pin text,html:not(.js-dx) .opi-dxo__pin .opi-dxo__dot,html:not(.js-dx) .opi-dxo__pin .opi-dxo__tie,html:not(.js-dx) .opi-dxo__pin text{opacity:1}
.opi-dxo__lab{font-size:17px;font-weight:600;letter-spacing:-.01em;fill:var(--dx-ink)}
.opi-dxo__min{font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;fill:var(--dx-mute)}
.opi-dxo__centre{fill:var(--ink-900);stroke:#fff;stroke-width:3}
.opi-dxo__clab{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;fill:var(--dx-ink)}
.opi-dxo__body{min-width:0}
.opi-dxo__list{margin:0 0 var(--space-6);padding:0;list-style:none;border-top:1px solid var(--dx-line)}
.opi-dxo__row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:12px 0;border-bottom:1px solid var(--dx-line)}
.opi-dxo__to{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--dx-ink)}
.opi-dxo__bar{height:6px;border-radius:3px;background:var(--dx-panel);overflow:hidden}
.opi-dxo__bar i{display:block;height:100%;width:var(--w);border-radius:3px;background:var(--ember-600);transform-origin:left;transform:scaleX(0);transition:transform .8s var(--dx-ease) .2s}
.is-in .opi-dxo__bar i,html:not(.js-dx) .opi-dxo__bar i{transform:none}
.opi-dxo__m{font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;color:var(--dx-ink);min-width:52px;text-align:right}
.opi-dxo__note p{margin:0;max-width:60ch;font-size:var(--text-body);line-height:1.6;color:var(--dx-ink-2)}
.opi-dxo__note p+p{margin-top:var(--space-3)}
@media(max-width:900px){
	.opi-dxo__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
	.opi-dxo__vis{order:2}
}

/* ===========================================================================
   Contextual CTA band
   =========================================================================== */
.opi-entity .opi-dxc{max-width:var(--dx-w);border-radius:var(--dx-radius)}
.opi-dxc__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:var(--space-8) var(--space-10);align-items:center;padding:clamp(28px,3.6vw,44px) clamp(24px,3.6vw,48px)}
.opi-dxc__title{margin:0 0 var(--space-3);max-width:20ch;font-family:var(--font-display);font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.15;letter-spacing:-.02em;font-weight:var(--weight-semibold);color:#fff}
.opi-dxc__p{margin:0;max-width:44ch;font-size:var(--text-body);line-height:1.55;color:var(--text-inverse-2)!important}
.opi-dxc__list{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.opi-dxc__list li{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-body);line-height:1.45;color:#fff}
.opi-dxc__list svg{flex:0 0 auto;width:15px;height:15px;margin-top:3px;color:var(--ember-300)}
.opi-dxc__act{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}
.opi-dxc__btn{min-height:52px;padding-inline:var(--space-8);white-space:nowrap}
@media(max-width:1000px){.opi-dxc__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.opi-dxc__act{grid-column:1/-1;flex-direction:row;align-items:center;flex-wrap:wrap}}
@media(max-width:640px){.opi-dxc__in{grid-template-columns:minmax(0,1fr)}}

/* ===========================================================================
   Developer
   =========================================================================== */
.opi-dxd__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--space-8);align-items:stretch}
.opi-dxd__card{padding:clamp(24px,3vw,36px);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxd__id{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-2) 0 var(--space-6)}
.opi-dxd__mono{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:12px;background:var(--ink-900);color:#fff;font-family:var(--font-display);font-size:1.4rem;font-weight:var(--weight-semibold)}
.opi-dxd__name{margin:0;font-family:var(--font-display);font-size:clamp(1.4rem,2.2vw,1.85rem);letter-spacing:-.02em;font-weight:var(--weight-semibold);color:var(--dx-ink)}
.opi-dxd__facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4) var(--space-5)}
.opi-dxd__f{padding-left:var(--space-3);border-left:2px solid var(--dx-line)}
.opi-dxd__f dt{margin:0 0 2px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dxd__f dd{margin:0;font-size:1rem;font-weight:var(--weight-medium);color:var(--dx-ink)}
.opi-dxd__note{display:flex}
.opi-dxd__note .opi-dx-flag{flex:1 1 auto;margin:0;padding:clamp(24px,3vw,36px);border-radius:var(--dx-radius)}
.opi-dxd__note .opi-dx-flag__body p{font-size:var(--text-body);max-width:none}
@media(max-width:900px){.opi-dxd__grid{grid-template-columns:minmax(0,1fr)}}

/* ===========================================================================
   DLD record: register card, timeline, findings
   =========================================================================== */
.opi-dxk__grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.6fr);gap:var(--space-12);align-items:start}
.opi-dxk__card{position:sticky;top:84px;padding:clamp(22px,2.6vw,30px);border-radius:var(--dx-radius);background:var(--ink-950);color:var(--text-inverse);box-shadow:0 30px 60px -30px rgba(13,7,4,.6)}
.opi-dxk__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid rgba(255,255,255,.12)}
.opi-dxk__k{display:inline-flex;align-items:center;gap:8px;margin:0;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.12em;text-transform:uppercase;color:var(--ember-300)!important}
.opi-dxk__k svg{width:16px;height:16px}
.opi-dxk__k--tl{margin:var(--space-6) 0 var(--space-3);color:rgba(255,255,255,.62)!important}
.opi-dxk__gauge{position:relative;width:76px;height:76px;display:grid;place-items:center;text-align:center}
.opi-dxk__gauge svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.opi-dxk__gt{fill:none;stroke:rgba(255,255,255,.14);stroke-width:6}
.opi-dxk__gv{fill:none;stroke:var(--ember-400);stroke-width:6;stroke-linecap:round;stroke-dasharray:var(--c);stroke-dashoffset:var(--c);transition:stroke-dashoffset 1s var(--dx-ease) .2s}
.is-in .opi-dxk__gv,html:not(.js-dx) .opi-dxk__gv{stroke-dashoffset:var(--o)}
.opi-dxk__gn{position:relative;font-family:var(--font-display);font-size:1.1rem;font-weight:var(--weight-semibold);letter-spacing:-.02em;color:#fff;line-height:1}
.opi-dxk__gl{position:relative;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:2px}
.opi-dxk__facts{margin:0;display:grid;gap:var(--space-4)}
.opi-dxk__f dt{margin:0 0 2px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.opi-dxk__f dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:1rem;font-weight:var(--weight-medium);color:#fff}
.opi-dxk__f dd .opi-ev{background:rgba(255,255,255,.08);color:#7FD4A6}
.opi-dxk__tl{margin:0;padding:0;list-style:none;position:relative}
.opi-dxk__tl::before{content:'';position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:rgba(255,255,255,.16)}
.opi-dxk__ev{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:1px;padding:0 0 14px 24px}
.opi-dxk__ev:last-child{padding-bottom:0}
.opi-dxk__ev::before{content:'';position:absolute;left:0;top:5px;width:11px;height:11px;border-radius:50%;background:var(--ink-950);border:2px solid rgba(255,255,255,.35)}
.opi-dxk__ev--verified::before{border-color:#7FD4A6;background:#7FD4A6}
.opi-dxk__ev--developer::before{border-color:var(--ember-300)}
.opi-dxk__evd{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.06em;color:rgba(255,255,255,.62)}
.opi-dxk__evl{font-size:var(--text-body-sm);line-height:1.4;color:#fff}
.opi-dxk__evl em{display:block;margin-top:2px;font-style:normal;font-size:var(--text-caption);line-height:1.45;color:rgba(255,255,255,.62)}
.opi-dxk__body{min-width:0}
.opi-dxk__intro p{margin:0 0 var(--space-4);max-width:66ch;font-size:1.0625rem;line-height:1.65;color:var(--dx-ink)}
.opi-dxk__intro{margin-bottom:var(--space-6)}
.opi-dxk__find{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-5);padding:var(--space-6) 0;border-top:1px solid var(--dx-line)}
.opi-dxk__find:last-of-type{border-bottom:1px solid var(--dx-line)}
.opi-dxk__find .opi-dx__num{padding-top:6px;min-width:26px}
.opi-dxk__fb{min-width:0}
.opi-dxk__fb h3{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.3;letter-spacing:-.015em;font-weight:var(--weight-semibold);color:var(--dx-ink);text-wrap:balance}
.opi-dxk__lead{margin:0 0 var(--space-3);padding:var(--space-4) var(--space-5);max-width:66ch;border-radius:var(--dx-radius-sm);background:var(--dx-panel);font-size:var(--text-body);line-height:1.55;font-weight:var(--weight-medium);color:var(--dx-ink)}
.opi-dxk__fb p:not(.opi-dxk__lead){margin:0 0 var(--space-3);max-width:66ch;font-size:var(--text-body);line-height:1.65;color:var(--dx-ink-2)}
.opi-dxk__fb p:last-child{margin-bottom:0}
.opi-dxk__fb strong{color:var(--dx-ink);font-weight:var(--weight-semibold)}
.opi-dxk__ref{margin:var(--space-5) 0 0;font-family:var(--font-mono);font-size:var(--text-overline);line-height:1.6;letter-spacing:.02em;color:var(--dx-mute)!important;max-width:70ch}
@media(max-width:900px){
	.opi-dxk__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
	.opi-dxk__card{position:static}
}

/* ===========================================================================
   FAQ
   =========================================================================== */
.opi-entity .opi-dxf{max-width:var(--dx-w);border-top:0;padding-top:0}
.opi-dxf__grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:var(--space-12);align-items:start}
.opi-dxf__side{position:sticky;top:96px}
.opi-dxf__side .opi-dx__head{margin-bottom:var(--space-4)}
.opi-dxf__p{margin:0 0 var(--space-4);max-width:34ch;font-size:var(--text-body);line-height:1.55;color:var(--dx-ink-2)!important}
.opi-dxf__list{border-top:1px solid var(--dx-line)}
.opi-dxf__q{border-bottom:1px solid var(--dx-line)}
.opi-dxf__q>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:18px 0;cursor:pointer;list-style:none;font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:1.35;color:var(--dx-ink);transition:color .18s var(--dx-ease)}
.opi-dxf__q>summary::-webkit-details-marker{display:none}
.opi-dxf__q>summary:hover{color:var(--ember-600)}
.opi-dxf__q>summary:focus-visible{outline:2px solid var(--ember-600);outline-offset:4px;border-radius:4px}
.opi-dxf__n{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;color:var(--dx-mute);min-width:24px}
.opi-dxf__x{position:relative;width:26px;height:26px;border:1px solid var(--dx-line);border-radius:50%;flex:0 0 auto;transition:transform .25s var(--dx-ease),border-color .18s var(--dx-ease)}
.opi-dxf__x::before,.opi-dxf__x::after{content:'';position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.opi-dxf__x::after{transform:translate(-50%,-50%) rotate(90deg)}
.opi-dxf__q[open] .opi-dxf__x{transform:rotate(45deg);border-color:var(--ember-600);color:var(--ember-600)}
.opi-dxf__a{padding:0 0 var(--space-5) 40px}
.opi-dxf__a p{margin:0 0 var(--space-3);max-width:62ch;font-size:var(--text-body);line-height:1.62;color:var(--dx-ink-2)}
.opi-dxf__a p:last-child{margin-bottom:0}
@media(max-width:900px){
	.opi-dxf__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
	.opi-dxf__side{position:static}
	.opi-dxf__a{padding-left:0}
}
@media(prefers-reduced-motion:reduce){.opi-dxf__x{transition:none}}

/* ===========================================================================
   Enquiry panel
   =========================================================================== */
.opi-entity .opi-dxe{max-width:var(--dx-w)}
.opi-dxe__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border-radius:var(--dx-radius);overflow:hidden;box-shadow:0 30px 70px -36px rgba(13,7,4,.5);border:1px solid var(--dx-line)}
.opi-dxe__side{padding:clamp(28px,3.6vw,48px);border-radius:0}
.opi-dxe__title{margin:0 0 var(--space-6);max-width:18ch;font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.15;letter-spacing:-.02em;font-weight:var(--weight-semibold);color:#fff}
.opi-dxe__list{margin:0 0 var(--space-6);padding:0;list-style:none;display:grid;gap:var(--space-4)}
.opi-dxe__list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);align-items:start}
.opi-dxe__ic{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:var(--ember-300)}
.opi-dxe__t{margin:0 0 3px;font-size:1rem;font-weight:var(--weight-semibold);line-height:1.35;color:#fff!important}
.opi-dxe__b{margin:0;font-size:var(--text-caption);line-height:1.5;color:var(--text-inverse-2)!important}
.opi-dxe__trust{margin:0;padding-top:var(--space-5);border-top:1px solid rgba(255,255,255,.14);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.03em;line-height:1.6;color:rgba(255,255,255,.62)!important}
.opi-entity .opi-dxe__form{margin:0;max-width:none;border:0;border-radius:0;box-shadow:none;padding:clamp(28px,3.6vw,48px);background:#fff;scroll-margin-top:0}
.opi-dxe__fh{margin:0 0 var(--space-2)!important;font-family:var(--font-display);font-size:1.5rem!important;letter-spacing:-.02em;font-weight:var(--weight-semibold);color:var(--dx-ink)}
.opi-dxe__fp{margin:0 0 var(--space-6);font-size:var(--text-body);line-height:1.5;color:var(--dx-ink-2)}
.opi-dxe__form .opi-form label{color:var(--dx-ink);font-size:var(--text-caption)}
.opi-dxe__form .opi-form input[type=text],.opi-dxe__form .opi-form input[type=email],.opi-dxe__form .opi-form input[type=tel],.opi-dxe__form .opi-form select,.opi-dxe__form .opi-form textarea{min-height:48px;border-color:var(--gray-300);font-size:1rem;border-radius:var(--radius-sm)}
.opi-dxe__form .opi-form input:focus,.opi-dxe__form .opi-form select:focus{border-color:var(--ember-600);box-shadow:0 0 0 3px rgba(194,65,12,.18)}
.opi-dxe__form .opi-btn{min-height:50px;padding-inline:var(--space-8);font-size:1rem}
.opi-dxe__form .opi-form__more{margin:var(--space-4) 0 var(--space-5)}
#enquire{scroll-margin-top:88px}
@media(max-width:900px){.opi-dxe__grid{grid-template-columns:minmax(0,1fr)}}

/* ===========================================================================
   Related rail and sources: quieter, on the grid
   =========================================================================== */
.opi-entity .opi-rail__title{font-size:var(--text-overline)}
.opi-entity .opi-prov{padding-top:var(--space-10);border-top:1px solid var(--dx-line)}
.opi-entity .opi-prov__scount{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--dx-line);border-radius:999px;background:#fff;font-size:var(--text-overline);letter-spacing:.04em;color:var(--dx-ink)}
.opi-entity .opi-src__name{color:var(--dx-ink)}
.opi-entity .opi-src__note{color:var(--dx-ink-2)}

/* Anchors clear the sticky nav. */
#residences,#amenities,#location,#developer,#price-evidence{scroll-margin-top:76px}

/* Sticky nav: one active state, quieter on the rest. */
.opi-pnav__l{color:var(--gray-500)}
.opi-pnav__l:hover{color:var(--dx-ink)}

@media(max-width:640px){
	:root{--dx-gap:clamp(3rem,10vw,4rem)}
	.opi-dx__title{font-size:clamp(1.55rem,6.4vw,1.9rem)}
}

/* ===========================================================================
   Key facts: headline row, ledger row, evidence summarised once
   =========================================================================== */
.opi-entity .opi-dxf2{margin-top:var(--space-12);margin-bottom:0}
.opi-dxf2__card{border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow);overflow:hidden}
.opi-dxf2__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);padding:clamp(22px,2.8vw,32px) clamp(22px,2.8vw,36px) var(--space-5)}
.opi-dxf2__head .opi-dx__eyebrow{margin-bottom:6px}
.opi-dxf2__title{margin:0;font-family:var(--font-display);font-size:clamp(1.35rem,2.1vw,1.75rem);letter-spacing:-.02em;font-weight:var(--weight-semibold);color:var(--dx-ink)}
.opi-dxf2__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 14px;padding-bottom:4px}
.opi-dxf2__sum{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.06em;text-transform:uppercase;color:var(--dx-ink-2)}
.opi-dxf2__sum i{width:7px;height:7px;border-radius:50%;background:var(--gray-400)}
.opi-dxf2__sum--verified i{background:#1B6B45}
.opi-dxf2__sum--developer i{border-radius:1px;background:#2A5171}
.opi-dxf2__sum--market i{border-radius:1px;transform:rotate(45deg);background:#8A5A0A}
.opi-dxf2__asof{font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.04em;color:var(--dx-mute)}
.opi-dxf2__hero,.opi-dxf2__ledger{margin:0;display:grid;border-top:1px solid var(--dx-line)}
.opi-dxf2__hero{grid-template-columns:repeat(4,minmax(0,1fr));background:var(--dx-panel-2)}
.opi-dxf2__ledger{grid-template-columns:repeat(6,minmax(0,1fr))}
.opi-dxf2__cell{min-width:0;padding:var(--space-5) clamp(18px,2.2vw,28px);box-shadow:1px 0 0 var(--dx-line)}
.opi-dxf2__hero .opi-dxf2__cell{padding-top:var(--space-6);padding-bottom:var(--space-6)}
.opi-dxf2__cell:last-child{box-shadow:none}
.opi-dxf2__cell dt{margin:0 0 6px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.12em;text-transform:uppercase;color:var(--dx-mute)}
.opi-dxf2__cell dd{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.opi-dxf2__v{font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:1.25;color:var(--dx-ink)}
.opi-dxf2__v a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--gray-300)}
.opi-dxf2__v a:hover{color:var(--ember-600);text-decoration-color:currentColor}
.opi-dxf2__v--fig{font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.opi-dxf2__hero .opi-dxf2__v{font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.05}
.opi-dxf2__hero .opi-dxf2__v--fig{font-family:var(--font-display);font-weight:var(--weight-semibold)}
.opi-dxf2__n{font-size:var(--text-caption);line-height:1.45;color:var(--dx-ink-2)}
.opi-dxf2__vs{display:inline-block;padding:2px 8px;border-radius:999px;background:#FBF6EC;border:1px solid #EAD9B4;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:#8A5A0A}
.opi-dxf2__ev{margin-top:4px}
.opi-dxf2__cell.is-gap .opi-dxf2__v{color:#9A6410}
@media(max-width:1000px){
	.opi-dxf2__ledger{grid-template-columns:repeat(3,minmax(0,1fr))}
	.opi-dxf2__ledger .opi-dxf2__cell{box-shadow:1px 0 0 var(--dx-line),0 1px 0 var(--dx-line)}
}
@media(max-width:720px){
	.opi-dxf2__head{flex-direction:column;align-items:flex-start;gap:var(--space-3)}
	.opi-dxf2__meta{justify-content:flex-start}
	.opi-dxf2__hero,.opi-dxf2__ledger{grid-template-columns:repeat(2,minmax(0,1fr))}
	.opi-dxf2__cell{box-shadow:1px 0 0 var(--dx-line),0 1px 0 var(--dx-line);padding:var(--space-4) var(--space-4)}
	.opi-dxf2__hero .opi-dxf2__v{font-size:1.3rem}
	.opi-dxf2__vs{white-space:normal}
}

/* ===========================================================================
   Verdict: dial + bars, then argument, then take
   =========================================================================== */
.opi-dxv__score{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.25fr);gap:var(--space-8) clamp(24px,3.5vw,48px);align-items:center;padding:clamp(24px,3vw,36px);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxv__dial{position:relative;width:150px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.opi-dxv__dial svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.opi-dxv__dt{fill:none;stroke:var(--dx-panel);stroke-width:9}
.opi-dxv__dv{fill:none;stroke:var(--ember-600);stroke-width:9;stroke-linecap:round;stroke-dasharray:var(--c);stroke-dashoffset:var(--c);transition:stroke-dashoffset 1.1s var(--dx-ease) .15s}
.opi-dxv__dial--hi .opi-dxv__dv{stroke:#1B6B45}
.opi-dxv__dial--lo .opi-dxv__dv{stroke:#8A5A0A}
.is-in .opi-dxv__dv,html:not(.js-dx) .opi-dxv__dv{stroke-dashoffset:var(--o)}
.opi-dxv__dn{position:relative;font-family:var(--font-display);font-size:3rem;font-weight:var(--weight-semibold);letter-spacing:-.04em;line-height:1;color:var(--dx-ink)}
.opi-dxv__dl{position:relative;margin-top:4px;font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.08em;color:var(--dx-mute)}
.opi-dxv__sm{min-width:0}
.opi-dxv__hl{margin:0 0 var(--space-3);font-size:1.0625rem;line-height:1.5;color:var(--dx-ink)}
.opi-dxv__hl b{font-weight:var(--weight-semibold)}
.opi-dxv__note{margin:0;font-size:var(--text-caption);line-height:1.5;color:var(--dx-mute)!important}
.opi-dxv__bars{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.opi-dxv__f{display:grid;grid-template-columns:118px minmax(0,1fr) 30px;align-items:center;gap:var(--space-3)}
.opi-dxv__fn{font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--dx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opi-dxv__ft{height:6px;border-radius:3px;background:var(--dx-panel);overflow:hidden}
.opi-dxv__ft i{display:block;height:100%;width:var(--w);border-radius:3px;background:var(--ember-600);transform-origin:left;transform:scaleX(0);transition:transform .8s var(--dx-ease) .25s}
.opi-dxv__f--hi .opi-dxv__ft i{background:#1B6B45}
.opi-dxv__f--lo .opi-dxv__ft i{background:#B8770F}
.is-in .opi-dxv__ft i,html:not(.js-dx) .opi-dxv__ft i{transform:none}
.opi-dxv__fv{font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;text-align:right;color:var(--dx-ink)}
.opi-dxv__f--none .opi-dxv__fv{font-family:var(--font-body);font-size:11px;color:var(--dx-mute);white-space:nowrap}
.opi-dxv__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:var(--space-10)}
.opi-dxv__col h3{display:flex;align-items:baseline;gap:10px;margin:0 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:2px solid var(--dx-line);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.14em;text-transform:uppercase;font-weight:var(--weight-semibold)}
.opi-dxv__col h3 span{font-weight:400;color:var(--dx-mute);letter-spacing:.04em}
.opi-dxv__col--like h3{color:#1B6B45;border-bottom-color:#1B6B45}
.opi-dxv__col--care h3{color:#8A5A0A;border-bottom-color:#8A5A0A}
.opi-dxv__col ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-4)}
.opi-dxv__col li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;font-size:var(--text-body);line-height:1.58;color:var(--dx-ink)}
.opi-dxv__mark{width:8px;height:8px;margin-top:.55em;border-radius:50%;background:#1B6B45}
.opi-dxv__col--care .opi-dxv__mark{background:#B8770F;border-radius:1px;transform:rotate(45deg)}
.opi-dxv__more{margin-top:var(--space-3)}
.opi-dxv__more ul{margin-top:var(--space-4)}
.opi-dxv__take{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:var(--space-8) clamp(28px,4vw,64px);align-items:center;margin-top:var(--space-10);padding:clamp(24px,3vw,40px);border-radius:var(--dx-radius);background:var(--dx-panel);border:1px solid var(--dx-line);border-left:4px solid var(--ember-600)}
.opi-dxv__tt{margin:0;font-size:var(--text-body);line-height:1.55;color:var(--dx-ink)}
.opi-dxv__cta{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding-left:clamp(0px,3vw,32px);border-left:1px solid var(--dx-line)}
.opi-dxv__cp{margin:0 0 var(--space-2);font-size:var(--text-body);line-height:1.5;color:var(--dx-ink-2)!important}
.opi-dxv__btn{min-height:50px;padding-inline:var(--space-8)}
@media(max-width:1000px){.opi-dxv__score{grid-template-columns:auto minmax(0,1fr)}.opi-dxv__bars{grid-column:1/-1}}
@media(max-width:820px){
	.opi-dxv__cols{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}
	.opi-dxv__take{grid-template-columns:minmax(0,1fr)}
	.opi-dxv__cta{padding-left:0;border-left:0;padding-top:var(--space-5);border-top:1px solid var(--dx-line)}
}
@media(max-width:560px){.opi-dxv__score{grid-template-columns:minmax(0,1fr);justify-items:start}.opi-dxv__f{grid-template-columns:96px minmax(0,1fr) 28px}}

/* ===========================================================================
   Pricing: table, cash at entry, one ask
   =========================================================================== */
.opi-dxpr__grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);gap:var(--space-8);align-items:stretch}
.opi-dxpr__main{display:flex;flex-direction:column;min-width:0;border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow);overflow:hidden}
.opi-dxpr__tophead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6) 0}
.opi-dxpr__tophead .opi-dx__label{margin:0}
.opi-dxpr__scroll{overflow-x:auto;padding:var(--space-3) var(--space-6) 0}
.opi-dxpr__scroll:focus-visible{outline:2px solid var(--ember-600);outline-offset:-2px}
.opi-dxpr__table{width:100%;border-collapse:collapse}
.opi-dxpr__table thead th{padding:12px 0 10px;border-bottom:1px solid var(--dx-line);font-family:var(--font-mono);font-size:var(--text-overline);letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--dx-mute);text-align:right;white-space:nowrap}
.opi-dxpr__table thead th:first-child{text-align:left}
.opi-dxpr__table tbody th{padding:18px 0;text-align:left;font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--dx-ink);white-space:nowrap}
.opi-dxpr__table tbody td{padding:18px 0 18px var(--space-5);text-align:right;font-family:var(--font-mono);font-size:1rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--dx-ink);white-space:nowrap}
.opi-dxpr__table tbody td b{font-weight:500;color:var(--ember-700)}
.opi-dxpr__table tbody tr+tr th,.opi-dxpr__table tbody tr+tr td{border-top:1px solid var(--dx-line)}
.opi-dxpr__gap{display:inline-block;padding:2px 8px;border-radius:999px;background:#FBF6EC;border:1px solid #EAD9B4;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:#8A5A0A}
.opi-dxpr__note{margin:auto 0 0;padding:var(--space-4) var(--space-6);border-top:1px solid var(--dx-line);background:var(--dx-panel-2);font-size:var(--text-caption);line-height:1.55;color:var(--dx-ink-2)!important}
.opi-dxpr__side{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.opi-dxpr__cash{padding:var(--space-6);border:1px solid var(--dx-line);border-radius:var(--dx-radius);background:#fff;box-shadow:var(--dx-shadow)}
.opi-dxpr__cells{display:grid;gap:12px}
.opi-dxpr__c{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k v" "n v";column-gap:var(--space-4);align-items:center;padding:10px 0;border-top:1px solid var(--dx-line)}
.opi-dxpr__ck{grid-area:k;font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--dx-ink)}
.opi-dxpr__cn{grid-area:n;font-size:var(--text-overline);font-family:var(--font-mono);letter-spacing:.04em;color:var(--dx-mute)}
.opi-dxpr__cv{grid-area:v;font-family:var(--font-mono);font-size:1.125rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--dx-ink)}
.opi-dxpr__cnote{margin:var(--space-3) 0 0;font-size:var(--text-caption);line-height:1.5;color:var(--dx-mute)!important}
.opi-dxpr__ask{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding:var(--space-6);border-radius:var(--dx-radius);background:var(--dx-panel);border:1px solid var(--dx-line)}
.opi-dxpr__at{margin:0 0 6px;font-family:var(--font-display);font-size:1.125rem;font-weight:var(--weight-semibold);letter-spacing:-.015em;color:var(--dx-ink)}
.opi-dxpr__ap{margin:0 0 var(--space-5);font-size:var(--text-body);line-height:1.5;color:var(--dx-ink-2)!important}
.opi-dxpr__btn{align-self:stretch;justify-content:center;min-height:48px}
@media(max-width:900px){.opi-dxpr__grid{grid-template-columns:minmax(0,1fr)}.opi-dxpr__side{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}

/* ---------------------------------------------------------------------------
   Project gallery, cinematic rail (5 Sep 2026)
   A full-bleed dark band carrying a horizontal snap-scroll run of frames, in
   place of the light mosaic grid. Appended last so it wins over the earlier
   .opi-dxg rules without those having to be unpicked.
--------------------------------------------------------------------------- */
.opi-entity .opi-dxg,.opi-dxg{position:relative;width:100%;max-width:none;margin-inline:0;margin-block:var(--dx-gap);padding-block:clamp(48px,6vw,88px);background:radial-gradient(58% 78% at 50% 0%,rgba(240,118,46,.10),transparent 58%),linear-gradient(180deg,var(--ink-950,#140C07) 0%,var(--ink-void,#0D0704) 100%);color:var(--text-inverse,#F9F6F4);overflow:hidden}
.opi-dxg__inner{padding-inline:max(var(--opi-gutter,24px),calc((100% - var(--dx-w))/2))}
.opi-dxg__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6,24px);flex-wrap:wrap;margin-bottom:clamp(24px,3vw,44px)}
.opi-dxg__intro{max-width:640px}
.opi-dxg__eyebrow{font-family:var(--font-mono);font-size:var(--text-overline,.6875rem);letter-spacing:.18em;text-transform:uppercase;color:var(--ember-400,#F0762E);margin:0 0 10px}
.opi-dxg__title{font-family:var(--font-display);font-weight:var(--weight-bold,700);font-size:clamp(1.5rem,2.6vw,2.25rem);line-height:1.12;letter-spacing:var(--tracking-display,-.02em);color:var(--text-inverse,#F9F6F4);margin:0;text-wrap:balance}
.opi-dxg__meta{display:flex;align-items:center;gap:clamp(14px,2vw,28px);white-space:nowrap}
.opi-dxg__count{font-family:var(--font-mono);font-size:var(--text-overline,.6875rem);letter-spacing:.14em;text-transform:uppercase;color:rgba(249,246,244,.55)}
.opi-dxg__nav{display:flex;gap:10px}
.opi-dxg__btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(249,246,244,.25);border-radius:999px;background:transparent;color:var(--text-inverse,#F9F6F4);cursor:pointer;transition:background .2s var(--dx-ease),border-color .2s var(--dx-ease),opacity .2s var(--dx-ease)}
.opi-dxg__btn svg{width:16px;height:16px}
.opi-dxg__btn:hover{background:var(--accent,#C75B12);border-color:var(--accent,#C75B12)}
.opi-dxg__btn[disabled]{opacity:.28;cursor:default}
.opi-dxg__btn[disabled]:hover{background:transparent;border-color:rgba(249,246,244,.25)}
.opi-dxg__rail{display:flex;gap:clamp(12px,1.4vw,20px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-inline:max(var(--opi-gutter,24px),calc((100% - var(--dx-w))/2));scroll-padding-inline:max(var(--opi-gutter,24px),calc((100% - var(--dx-w))/2));padding-block:2px 6px;scrollbar-width:none;-ms-overflow-style:none}
.opi-dxg__rail::-webkit-scrollbar{display:none}
.opi-dxg__rail:focus-visible{outline:2px solid var(--ember-400,#F0762E);outline-offset:4px}
.opi-dxg__slide{position:relative;display:block;flex:none;width:min(68vw,820px);aspect-ratio:16/9.6;border-radius:var(--dx-radius,16px);overflow:hidden;scroll-snap-align:start;isolation:isolate;background:var(--ink-900,#1B110A);text-decoration:none}
.opi-dxg__slide--tall{width:min(44vw,470px);aspect-ratio:4/5}
.opi-dxg__img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--dx-ease)}
.opi-dxg__slide:hover .opi-dxg__img,.opi-dxg__slide:focus-visible .opi-dxg__img{transform:scale(1.045)}
.opi-dxg__scrim{position:absolute;inset:0;background:linear-gradient(200deg,rgba(13,7,4,.02) 34%,rgba(13,7,4,.22) 62%,rgba(13,7,4,.80) 100%)}
.opi-dxg__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:baseline;gap:10px;padding:0 clamp(16px,2vw,24px) clamp(14px,1.8vw,20px);color:#fff;font-size:var(--text-caption,.8125rem)}
.opi-dxg__num{font-family:var(--font-mono);font-size:var(--text-overline,.6875rem);letter-spacing:.12em;color:var(--ember-300,#F79B62);flex:none}
.opi-dxg__ct{opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opi-dxg__slide:focus-visible{outline:2px solid var(--ember-400,#F0762E);outline-offset:3px}
.opi-dxg__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5,20px);flex-wrap:wrap;margin-top:clamp(18px,2.2vw,30px)}
.opi-dxg__credit{margin:0;font-family:var(--font-mono);font-size:var(--text-overline,.6875rem);letter-spacing:.1em;text-transform:uppercase;color:rgba(249,246,244,.45)}
.opi-dxg__open{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;padding:0;color:var(--ember-300,#F79B62);font-family:inherit;font-size:var(--text-body-sm,.9375rem);cursor:pointer;transition:color .2s var(--dx-ease)}
.opi-dxg__open svg{width:15px;height:15px;transition:transform .3s var(--dx-ease)}
.opi-dxg__open:hover{color:#fff}
.opi-dxg__open:hover svg{transform:translateX(4px)}
.opi-dxg__open:focus-visible{outline:2px solid var(--ember-400,#F0762E);outline-offset:4px;border-radius:4px}
@media(max-width:760px){.opi-dxg__slide{width:84vw}.opi-dxg__slide--tall{width:68vw}.opi-dxg__meta{width:100%;justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.opi-dxg__rail{scroll-behavior:auto}.opi-dxg__img{transition:none}.opi-dxg__slide:hover .opi-dxg__img{transform:none}}
