/* DF Property Management — "Keyhole"
   Dark immersive graphite + cool porcelain sections. One accent: vermilion.
   Type: Melodrama (display) + Supreme (text). Signature: the keyhole. */

@font-face{font-family:"Melodrama";src:url("../fonts/melodrama-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Melodrama";src:url("../fonts/melodrama-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Supreme";src:url("../fonts/supreme-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Supreme";src:url("../fonts/supreme-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Supreme";src:url("../fonts/supreme-700.woff2") format("woff2");font-weight:700;font-display:swap}

:root{
  --ink:oklch(16.5% .008 250);
  --ink-2:oklch(20.5% .009 250);
  --ink-3:oklch(25% .01 250);
  --fg:oklch(95% .004 250);
  --fg-2:oklch(78% .008 250);
  --fg-3:oklch(66% .01 250);
  --por:oklch(95.5% .003 250);
  --por-2:oklch(91.5% .004 250);
  --por-3:oklch(87% .005 250);
  --tx:oklch(19% .01 250);
  --tx-2:oklch(40% .01 250);
  --tx-3:oklch(50% .01 250);
  --acc:oklch(64% .2 28);
  --acc-d:oklch(53% .19 28);
  --line:oklch(95% .004 250 / .12);
  --line-2:oklch(95% .004 250 / .22);
  --line-l:oklch(19% .01 250 / .12);
  --line-l2:oklch(19% .01 250 / .24);

  --f-d:"Melodrama","Times New Roman",serif;
  --f-t:"Supreme",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --g:clamp(1rem,3.5vw,3rem);
  --maxw:1520px;
  --e:cubic-bezier(.16,1,.3,1);
  --e2:cubic-bezier(.76,0,.24,1);
  --hh:80px;
  --keyhole:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 150'%3E%3Ccircle cx='50' cy='42' r='42'/%3E%3Cpath d='M26 70h48l18 80H8z'/%3E%3C/svg%3E");
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 16px)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--ink);color:var(--fg);font-family:var(--f-t);font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.55;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
::selection{background:var(--acc);color:var(--ink)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:1rem;top:-100px;z-index:400;background:var(--fg);color:var(--ink);padding:.75rem 1rem;border-radius:8px}
.skip:focus{top:1rem}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--g)}

/* light sections */
.lt{background:var(--por);color:var(--tx);color-scheme:light}

h1,h2,h3{margin:0;font-family:var(--f-d);font-weight:400;letter-spacing:-.03em;line-height:.92;text-wrap:balance}
h1 em,h2 em,h3 em{font-style:normal;color:var(--acc)}
.lt h1 em,.lt h2 em,.lt h3 em{color:var(--acc-d)}
p{margin:0 0 1em;text-wrap:pretty}
.d-xl{font-size:clamp(3rem,1.4rem + 6.6vw,9rem);line-height:.88}
.d-lg{font-size:clamp(2.5rem,1.3rem + 4.6vw,6.4rem)}
.d-md{font-size:clamp(2rem,1.3rem + 2.6vw,3.9rem);line-height:.96}
.lab{display:inline-flex;align-items:center;gap:.7rem;font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3)}
.lab::before{content:"";width:9px;height:13px;flex:none;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
.lt .lab{color:var(--tx-3)}
.lt .lab::before{background:var(--acc-d)}
.lead{font-size:clamp(1.08rem,1rem + .45vw,1.3rem);line-height:1.5;color:var(--fg-2);max-width:36em}
.lt .lead{color:var(--tx-2)}

/* ---------- buttons ---------- */
.btn{--b:var(--fg);--c:var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:56px;padding:0 1.65rem;border-radius:999px;background:var(--b);color:var(--c);font-weight:500;font-size:1rem;text-decoration:none;overflow:hidden;isolation:isolate;border:0;white-space:nowrap;transition:color .45s var(--e)}
.btn::before{content:"";position:absolute;left:var(--mx,50%);top:var(--my,50%);width:10px;height:10px;margin:-5px;border-radius:50%;background:var(--acc);z-index:-1;transform:scale(0);transition:transform .7s var(--e)}
.btn:hover::before,.btn:focus-visible::before{transform:scale(60)}
.btn:hover,.btn:focus-visible{color:var(--ink)}
.btn svg{width:18px;height:18px;transition:transform .5s var(--e)}
.btn:hover svg{transform:translateX(4px)}
.btn--o{--b:transparent;--c:var(--fg);box-shadow:inset 0 0 0 1px var(--line-2)}
.lt .btn{--b:var(--tx);--c:var(--por)}
.lt .btn:hover{color:var(--ink)}
.lt .btn--o{--b:transparent;--c:var(--tx);box-shadow:inset 0 0 0 1px var(--line-l2)}
.tl{display:inline-flex;align-items:center;gap:.55rem;font-weight:500;text-decoration:none;position:relative;padding-bottom:3px}
.tl::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform .6s var(--e)}
.tl:hover::after{transform:scaleX(1)}
.tl svg{width:16px;height:16px}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;height:var(--hh);transition:transform .6s var(--e),background-color .4s,box-shadow .4s}
.hdr.is-s{background:oklch(16.5% .008 250 / .8);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 1px 0 var(--line)}
.hdr.is-h{transform:translateY(-100%)}
.hdr:focus-within{transform:none}
.hdr .wrap{height:100%;display:flex;align-items:center;gap:2rem}
.logo{display:inline-flex;align-items:center;gap:.8rem;text-decoration:none;flex:none}
.logo b{font-family:var(--f-d);font-weight:500;font-size:2.1rem;line-height:1;letter-spacing:-.02em;display:inline-flex;align-items:flex-end}
.logo b i{display:inline-block;width:.24em;height:.36em;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat;margin:0 0 .1em .08em}
.logo span{font-size:.62rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-2);line-height:1.4;padding-left:.8rem;border-left:1px solid var(--line-2)}
.nav{display:flex;align-items:center;gap:.2rem;margin-left:auto}
.nav>a,.has-mega>a{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;font-size:.95rem;text-decoration:none;color:var(--fg-2);border-radius:999px;transition:color .3s,background-color .3s}
.nav>a:hover,.has-mega>a:hover,.nav a[aria-current="page"]{color:var(--fg);background:oklch(95% .004 250 / .07)}
.has-mega{position:relative;display:flex;align-items:center}
.has-mega>a{padding-right:.4rem}
.mega-t{width:28px;height:44px;border:0;background:transparent;color:var(--fg-2);display:grid;place-items:center;border-radius:999px;margin-right:.3rem}
.mega-t svg{width:12px;height:12px;transition:transform .4s var(--e)}
.has-mega.open .mega-t svg,.has-mega:hover .mega-t svg{transform:rotate(180deg)}
.mega{position:absolute;left:50%;top:calc(100% + 14px);width:min(840px,92vw);transform:translate(-50%,10px);opacity:0;visibility:hidden;transition:opacity .4s var(--e),transform .4s var(--e),visibility .4s;background:var(--ink-2);border:1px solid var(--line);border-radius:22px;padding:1.1rem;box-shadow:0 40px 80px -30px #000;display:grid;grid-template-columns:1fr 1fr 230px;gap:.15rem 1rem}
.mega::before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
.has-mega:hover .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:block;padding:.65rem .8rem;border-radius:12px;text-decoration:none;font-size:.94rem;line-height:1.3;color:var(--fg)}
.mega a:hover{background:var(--ink-3)}
.mega a small{display:block;color:var(--fg-3);font-size:.8rem;margin-top:.2rem}
.mega-card{grid-column:3;grid-row:1/span 6;position:relative;border-radius:16px;overflow:hidden;min-height:280px;display:flex!important;align-items:flex-end;padding:1rem!important}
.mega-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform 1s var(--e)}
.mega-card:hover img{transform:scale(1.06)}
.mega-card span{position:relative;font-family:var(--f-d);font-size:1.7rem;line-height:1}
.hdr-r{display:flex;align-items:center;gap:1rem;flex:none}
.hdr-ph{font-size:.95rem;text-decoration:none;color:var(--fg-2);white-space:nowrap}
.hdr-ph:hover{color:var(--fg)}
.hdr .btn{min-height:46px;padding:0 1.25rem;font-size:.92rem}
.burger{display:none;margin-left:auto;width:50px;height:50px;border-radius:50%;border:1px solid var(--line-2);background:transparent;place-items:center}
.burger i{display:block;width:18px;height:1.5px;background:currentColor;position:relative;transition:background-color .3s}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:transform .5s var(--e)}
.burger i::before{top:-6px}.burger i::after{top:6px}
.menu-open .burger i{background:transparent}
.menu-open .burger i::before{transform:translateY(6px) rotate(45deg)}
.menu-open .burger i::after{transform:translateY(-6px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:99;background:var(--ink);padding:calc(var(--hh) + 1.5rem) var(--g) 2rem;display:flex;flex-direction:column;gap:1.6rem;overflow-y:auto;clip-path:circle(0% at calc(100% - 2.5rem) 2.5rem);visibility:hidden;transition:clip-path .8s var(--e2),visibility .8s}
.menu-open .mnav{clip-path:circle(150% at calc(100% - 2.5rem) 2.5rem);visibility:visible}
.menu-open .hdr{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none}
.mnav a{text-decoration:none}
.mnav .big{display:flex;flex-direction:column}
.mnav .big a{font-family:var(--f-d);font-size:clamp(2.6rem,12vw,4rem);line-height:1.02;padding:.12rem 0}
.mnav .small{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;font-size:.9rem;color:var(--fg-2)}
.mnav .small a{min-height:44px;display:flex;align-items:center}
.mnav .btn{align-self:flex-start}
.no-scroll{overflow:hidden}
@media (max-width:1120px){.hdr-ph{display:none}}
@media (max-width:960px){.nav,.hdr-r{display:none}.burger{display:grid}}
@media (max-width:420px){.logo span{display:none}}

/* ---------- keyhole page transition (opens by CSS alone; JS only closes it) ---------- */
.iris{position:fixed;inset:0;z-index:300;pointer-events:none;background:var(--ink);display:none;
  -webkit-mask:var(--keyhole) 50% 46%/0 0 no-repeat,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:var(--keyhole) 50% 46%/0 0 no-repeat exclude,linear-gradient(#000 0 0)}
.js .iris{display:block;animation:irisOpen 1.1s var(--e2) .05s forwards}
@keyframes irisOpen{to{-webkit-mask-size:420vmax 630vmax,auto;mask-size:420vmax 630vmax,auto}}
.iris.open{animation:none;-webkit-mask-size:420vmax 630vmax,auto;mask-size:420vmax 630vmax,auto}
.iris.done{display:none}
.iris.close{display:block;animation:none;-webkit-mask-size:0 0,auto;mask-size:0 0,auto;transition:-webkit-mask-size .4s var(--e2),mask-size .4s var(--e2)}

/* ---------- cursor ---------- */
.cur{position:fixed;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;z-index:350;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:width .45s var(--e),height .45s var(--e),margin .45s var(--e),opacity .3s}
.cur.on{opacity:1}
.cur.big{width:64px;height:64px;margin:-32px 0 0 -32px}
@media (pointer:coarse),(prefers-reduced-motion:reduce){.cur{display:none}}

/* ---------- reveal (JS only) ---------- */
.js [data-r]{opacity:0;transform:translateY(30px)}
.js [data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.js [data-split] .w>span{display:inline-block;transform:translateY(110%)}
.reduced [data-r]{opacity:1!important;transform:none!important}
.reduced [data-split] .w>span{transform:none!important}

/* ---------- HOME HERO: keyhole entry ---------- */
.kh{position:relative}
.kh-stage{position:relative;height:100svh;min-height:600px;overflow:hidden}
.kh-photo{position:absolute;inset:0}
.kh-photo img{width:100%;height:100%;object-fit:cover;object-position:center 62%}
.kh-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,oklch(16.5% .008 250/.6),transparent 28%,oklch(16.5% .008 250/.28) 50%,oklch(16.5% .008 250/.95))}
.kh-mask,.kh-big,.kh-side{display:none}
.kh-h1{position:absolute;left:var(--g);top:calc(var(--hh) + 2rem)}
.kh-h1 h1{font-family:var(--f-t);font-size:.76rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--fg-2);line-height:1.6}
.kh-h1 b{display:none}
html:not(.kh-on) .kh-h1 h1{color:var(--fg);background:oklch(16.5% .008 250 / .72);padding:.45rem .9rem;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.kh-after{position:absolute;left:0;right:0;bottom:0;padding:0 var(--g) clamp(2rem,6vh,4rem);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;align-items:end;max-width:var(--maxw);margin-inline:auto}
.kh-after h2{font-size:clamp(2.7rem,1.2rem + 5.4vw,7.4rem);line-height:.88}
.kh-after p{color:oklch(92% .004 250);margin-bottom:1.6rem;font-size:1.12rem;max-width:32em}
.btns{display:flex;flex-wrap:wrap;gap:.7rem}
/* animated mode */
.kh-on .kh{height:290vh}
.kh-on .kh-stage{position:sticky;top:0}
.kh-on .kh-photo img{transform:scale(1.35)}
.kh-on .kh-mask{display:block;position:absolute;inset:0;width:100%;height:100%}
.kh-ring{fill:none;stroke:oklch(95% .004 250 / .4);stroke-width:1.2;vector-effect:non-scaling-stroke}
.kh-on .kh-big{display:flex;position:absolute;inset:0;align-items:center;pointer-events:none}
.kh-big p{margin:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 var(--g);font-family:var(--f-d);font-size:clamp(3.4rem,11vw,14rem);line-height:.86;letter-spacing:-.035em}
.kh-big p span{display:block}
.kh-big p span+span{text-align:right}
.kh-big p i{font-style:normal;display:inline-block}
.kh-big em{font-style:normal;color:var(--acc)}
.kh-on .kh-h1{left:50%;top:auto;bottom:5.5vh;transform:translateX(-50%);text-align:center;width:max-content;max-width:90vw}
.kh-on .kh-h1 b{display:block;margin:14px auto 0;width:1px;height:48px;background:linear-gradient(var(--fg),transparent);animation:drip 2.4s var(--e) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.kh-on .kh-after{opacity:0;transform:translateY(40px)}
.kh-on .kh-side{position:absolute;top:calc(var(--hh) + 1.6rem);left:var(--g);right:var(--g);display:flex;justify-content:space-between;font-size:.8rem;color:var(--fg-3);letter-spacing:.03em}
.kh-side b{color:var(--fg);font-weight:500}
@media (max-width:860px){
  .kh-after{grid-template-columns:1fr;gap:1.2rem}
  .kh-big p{flex-direction:column;justify-content:space-between;height:54svh;font-size:clamp(3.4rem,17vw,6rem);text-align:center}
  .kh-big p span,.kh-big p span+span{text-align:center}
  .kh-on .kh-side{display:none}
  .kh-on .kh-h1{bottom:4vh}
  .kh-on .kh-h1 b{height:30px}
}

/* ---------- marquee ---------- */
.mq{overflow:hidden;padding:2.2rem 0;border-bottom:1px solid var(--line)}
.mq-t{display:flex;width:max-content;animation:mq 42s linear infinite}
.mq-t span{display:flex;align-items:center;gap:2.6rem;padding-right:2.6rem;font-family:var(--f-d);font-size:clamp(2.4rem,1.6rem + 3vw,4.8rem);line-height:1.05;white-space:nowrap}
.mq-t span i{width:.3em;height:.45em;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
@keyframes mq{to{transform:translateX(-50%)}}
.mq:hover .mq-t{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.mq-t{animation:none}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(5rem,11vw,10rem);position:relative}
.sec--s{padding-block:clamp(3rem,6vw,5.5rem)}
.head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:2rem 5rem;align-items:end;margin-bottom:clamp(3rem,6vw,5.5rem)}
.head h2{margin-top:1.2rem}
.head p{margin:0}
@media (max-width:900px){.head{grid-template-columns:1fr}}

/* manifesto */
.mani{font-family:var(--f-d);font-size:clamp(2.2rem,1.2rem + 4vw,5.6rem);line-height:.98;letter-spacing:-.03em;max-width:17em;margin:1.8rem 0 0}
.js .mani .wd{opacity:.14}
.reduced .mani .wd{opacity:1!important}
.mani-foot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:clamp(3rem,7vw,6rem);padding-top:2rem;border-top:1px solid var(--line-l)}
.mani-foot b{display:block;font-family:var(--f-d);font-weight:400;font-size:clamp(3.2rem,2rem + 3.4vw,5.6rem);line-height:.9;letter-spacing:-.03em;margin-bottom:.6rem}
.mani-foot span{color:var(--tx-2);font-size:.98rem;max-width:22em;display:block}
@media (max-width:760px){.mani-foot{grid-template-columns:1fr}}

/* service index + keyhole follower */
.idx{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2)}
.idx li{border-bottom:1px solid var(--line-2)}
.idx a{display:grid;grid-template-columns:4.5rem minmax(0,1.2fr) minmax(0,1fr) 3.5rem;gap:1.5rem;align-items:center;padding:1.7rem 0;text-decoration:none}
.idx .n{font-size:.8rem;letter-spacing:.14em;color:var(--fg-3)}
.idx .t{font-family:var(--f-d);font-size:clamp(1.9rem,1.2rem + 2.2vw,3.6rem);line-height:.95;letter-spacing:-.025em;transition:transform .6s var(--e),color .4s}
.idx .ds{color:var(--fg-3);font-size:.98rem;line-height:1.45;transition:color .4s}
.idx .go{width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;transition:background-color .4s,border-color .4s,color .4s,transform .6s var(--e)}
.idx .go svg{width:18px;height:18px}
.idx a:hover .t,.idx a:focus-visible .t{transform:translateX(1.2rem);color:var(--acc)}
.idx a:hover .ds{color:var(--fg)}
.idx a:hover .go{background:var(--acc);border-color:var(--acc);color:var(--ink);transform:rotate(-45deg)}
.lt .idx,.lt .idx li{border-color:var(--line-l2)}
.lt .idx .n,.lt .idx .ds{color:var(--tx-3)}
.lt .idx a:hover .t{color:var(--acc-d)}
.lt .idx a:hover .ds{color:var(--tx)}
.lt .idx .go{border-color:var(--line-l2)}
.lt .idx a:hover .go{background:var(--tx);border-color:var(--tx);color:var(--por)}
@media (max-width:820px){.idx a{grid-template-columns:2.4rem minmax(0,1fr) 3rem;gap:.6rem 1rem}.idx .n{grid-column:1;grid-row:1}.idx .t{grid-column:2;grid-row:1}.idx .ds{grid-column:2;grid-row:2}.idx .go{grid-column:3;grid-row:1/span 2;width:44px;height:44px}}
.fol{position:fixed;left:0;top:0;width:250px;height:375px;pointer-events:none;z-index:60;opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-8deg);transition:opacity .35s,transform .6s var(--e);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
.fol.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}
.fol img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.fol img.on{opacity:1}
@media (pointer:coarse){.fol{display:none}}

/* month / statement */
.month{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:start}
@media (max-width:980px){.month{grid-template-columns:1fr}}
.cal{border-radius:26px;background:oklch(100% 0 0 / .55);border:1px solid var(--line-l);padding:clamp(1rem,2.4vw,1.8rem)}
.cal-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}
.cal-h b{font-family:var(--f-d);font-weight:400;font-size:2.6rem;letter-spacing:-.03em}
.cal-h small{color:var(--tx-3);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
.cal-d,.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-d span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx-3);padding:.3rem .45rem}
.cal-g div{position:relative;aspect-ratio:1/.95;border-radius:12px;background:var(--por-2);padding:.45rem .5rem;font-size:.8rem;color:var(--tx-2);overflow:hidden;transition:background-color .6s,color .6s}
.cal-g div.b{background:transparent}
.cal-g .ev.on{background:var(--tx);color:var(--por)}
.cal-g .ev.acc.on{background:var(--acc-d);color:#fff}
.cal-g .ev .tg{position:absolute;left:.45rem;right:.45rem;bottom:.45rem;font-size:.68rem;line-height:1.15;font-weight:500;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s var(--e)}
.cal-g .ev.on .tg{opacity:1;transform:none}
@media (max-width:560px){.cal-g .ev .tg{display:none}}
.stmt{background:var(--ink);color:var(--fg);border-radius:26px;padding:clamp(1.5rem,3vw,2.4rem);position:relative;overflow:hidden}
.stmt::after{content:"";position:absolute;right:-30px;top:-40px;width:150px;height:225px;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat;transform:rotate(14deg)}
.stmt h3{font-size:2.4rem;position:relative;z-index:1}
.stmt .s{color:var(--fg-3);font-size:.84rem;margin:.5rem 0 1.6rem;position:relative;z-index:1}
.stmt dl{margin:0}
.stmt dl div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.96rem}
.stmt dd{margin:0;font-variant-numeric:tabular-nums}
.stmt .neg{color:var(--fg-3)}
.stmt .tot{border:0;padding-top:1.2rem;align-items:baseline}
.stmt .tot dd{font-family:var(--f-d);font-size:3.4rem;line-height:1;letter-spacing:-.03em}
.stmt .note{font-size:.76rem;color:var(--fg-3);margin:1rem 0 0}
.pts{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1.1rem}
.pts li{display:grid;grid-template-columns:22px 1fr;gap:.9rem;color:var(--tx-2)}
.pts li::before{content:"";width:10px;height:15px;margin-top:.3rem;background:var(--acc-d);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
.pts b{color:var(--tx);font-weight:500}

/* process (horizontal) */
.proc{overflow:hidden;padding-block:clamp(5rem,9vw,8rem)}
@media (min-width:961px){.proc{min-height:100vh;display:flex;align-items:center;padding-block:var(--hh) 2rem}}
.proc-t{display:flex;gap:clamp(1rem,2vw,2rem);padding-inline:var(--g);width:max-content;align-items:stretch}
.proc-i{width:clamp(300px,30vw,460px);flex:none;display:flex;flex-direction:column;justify-content:center;gap:1.4rem;padding-right:3vw}
.step{position:relative;width:clamp(300px,31vw,500px);flex:none;border-radius:26px;overflow:hidden;background:var(--ink-2);border:1px solid var(--line);display:flex;flex-direction:column}
.step-im{position:relative;aspect-ratio:5/4;overflow:hidden}
.step-im img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform 1.4s var(--e)}
.step:hover .step-im img{transform:scale(1.07)}
.step .num{position:absolute;left:1.2rem;bottom:.15em;font-family:var(--f-d);font-size:7.5rem;line-height:.8;color:#fff;letter-spacing:-.04em;mix-blend-mode:difference}
.step-b{padding:1.6rem 1.7rem 2rem;display:grid;gap:.6rem}
.step h3{font-size:2.2rem}
.step p{margin:0;color:var(--fg-3);font-size:.98rem}
@media (max-width:960px){.proc-t{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;scrollbar-width:none}.proc-t::-webkit-scrollbar{display:none}.proc-i{width:86vw}.step{width:80vw;scroll-snap-align:center}}

/* doors (owners / tenants) */
.doors{display:flex;gap:1rem;height:min(88vh,820px)}
.door{position:relative;flex:1;border-radius:28px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.5rem,3vw,2.8rem);text-decoration:none;isolation:isolate;transition:flex-grow 1s var(--e2)}
.door:hover,.door:focus-visible{flex-grow:1.7}
.door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.6s var(--e)}
.door:hover img{transform:scale(1.06)}
.door::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,oklch(16.5% .008 250/.1) 25%,oklch(16.5% .008 250/.9))}
.door h3{font-size:clamp(2.6rem,1.6rem + 3.4vw,5.4rem);margin:1rem 0}
.door p{color:var(--fg-2);max-width:28em;margin-bottom:1.4rem}
@media (max-width:800px){.doors{flex-direction:column;height:auto}.door{min-height:470px}}

/* areas */
.areas{border-top:1px solid var(--line-l2)}
.areas a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1.5rem;padding:1.2rem 0;border-bottom:1px solid var(--line-l2);text-decoration:none;transition:padding .6s var(--e)}
.areas .c{font-family:var(--f-d);font-size:clamp(2.2rem,1.3rem + 3.4vw,5.4rem);line-height:.95;letter-spacing:-.03em;transition:color .4s}
.areas .r{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-3)}
.areas .go{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-l2);display:grid;place-items:center;transition:background-color .4s,color .4s,transform .6s var(--e)}
.areas .go svg{width:18px;height:18px}
.areas a:hover{padding-left:1.4rem}
.areas a:hover .c{color:var(--acc-d)}
.areas a:hover .go{background:var(--tx);color:var(--por);transform:rotate(-45deg)}
@media (max-width:640px){.areas .r{display:none}}

/* standards */
.stds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2)}
.std{padding:2rem 1.6rem 2.4rem 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1rem;min-height:300px}
.std+.std{padding-left:1.6rem}
.std:last-child{border-right:0}
.std .k{font-family:var(--f-d);font-size:5rem;line-height:.8;color:var(--acc);letter-spacing:-.04em}
.std h3{font-family:var(--f-t);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;line-height:1.25;margin-top:auto}
.std p{margin:0;color:var(--fg-3);font-size:.95rem}
@media (max-width:980px){.stds{grid-template-columns:1fr 1fr}.std:nth-child(2){border-right:0}.std:nth-child(3){padding-left:0}.std:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:560px){.stds{grid-template-columns:1fr}.std,.std+.std{padding-left:0;border-right:0;border-bottom:1px solid var(--line);min-height:0}}

/* faq */
.faq-g{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,6rem)}
@media (max-width:900px){.faq-g{grid-template-columns:1fr}}
.faq{border-top:1px solid var(--line-2)}
.faq details{border-bottom:1px solid var(--line-2)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 0;cursor:pointer;font-family:var(--f-d);font-size:clamp(1.5rem,1.15rem + 1vw,2.2rem);line-height:1.05;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);position:relative;transition:transform .6s var(--e),background-color .4s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .6s var(--e)}
.faq details[open] summary i{background:var(--acc);border-color:var(--acc);color:var(--ink);transform:rotate(180deg)}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .a{padding:0 4rem 1.7rem 0;color:var(--fg-2);max-width:60em}
.faq .a p:last-child{margin:0}
.lt .faq,.lt .faq details{border-color:var(--line-l2)}
.lt .faq summary i{border-color:var(--line-l2)}
.lt .faq .a{color:var(--tx-2)}
.lt .faq details[open] summary i{background:var(--tx);border-color:var(--tx);color:var(--por)}
@media (max-width:600px){.faq .a{padding-right:0}}

/* CTA */
.cta{position:relative;overflow:hidden;text-align:center;padding-block:clamp(6rem,14vw,12rem)}
.cta .wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.8rem}
.cta h2{font-size:clamp(3.4rem,1.6rem + 8vw,11rem);line-height:.86}
.cta .lead{text-align:center}
.cta .btns{justify-content:center}
.cta-kh{position:absolute;left:50%;top:50%;width:min(60vw,560px);aspect-ratio:2/3;transform:translate(-50%,-50%);background:var(--ink-2);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat;z-index:0}

/* footer */
.ftr{background:var(--ink);border-top:1px solid var(--line);padding:clamp(4rem,8vw,7rem) 0 2rem;color:var(--fg-2)}
.ftr a{text-decoration:none}
.ftr a:hover{color:var(--fg)}
.ftr-t{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2.5rem}
.ftr h3{font-family:var(--f-t);font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:1.1rem;line-height:1.4}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li a{display:inline-flex;min-height:34px;align-items:center;font-size:.94rem}
.ftr-b .logo{margin-bottom:1.4rem;color:var(--fg)}
.ftr-b p{max-width:26em;font-size:.95rem}
.ftr-c{display:grid;gap:.35rem;margin-top:1.3rem}
.ftr-c a{color:var(--fg);font-size:1.05rem}
.ftr-w{font-family:var(--f-d);font-size:clamp(3.2rem,12.6vw,15.5rem);line-height:.86;letter-spacing:-.045em;color:var(--fg);margin:clamp(3rem,7vw,6rem) 0 1.5rem;white-space:nowrap}
.ftr-w em{font-style:normal;color:var(--acc)}
.ftr-bt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.84rem;color:var(--fg-3)}
.ftr-bt nav{display:flex;gap:1.5rem}
@media (max-width:960px){.ftr-t{grid-template-columns:1fr 1fr}.ftr-b{grid-column:1/-1}}
@media (max-width:520px){.ftr-t{grid-template-columns:1fr}}

/* ---------- inner pages ---------- */
.ph{padding-top:calc(var(--hh) + clamp(2.5rem,6vw,5rem))}
.crumbs{display:flex;flex-wrap:wrap;gap:.55rem;list-style:none;padding:0;margin:0 0 2rem;font-size:.84rem;color:var(--fg-3)}
.crumbs li{display:flex;gap:.55rem}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--fg)}
.ph h1{margin:1.3rem 0 0;max-width:14ch}
.ph-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 4rem;align-items:end;margin-top:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(2.5rem,5vw,4rem)}
.ph-row .lead{margin:0}
@media (max-width:860px){.ph-row{grid-template-columns:1fr}}
.door-img{position:relative;height:clamp(340px,72vh,820px);overflow:hidden;margin-inline:var(--g);border-radius:28px}
.door-img img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover}
.js .door-img{clip-path:inset(0 46% 0 46% round 999px)}
.reduced .door-img{clip-path:none!important}
.ph--plain{padding-bottom:clamp(3rem,6vw,5rem)}

.body2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(2rem,6vw,6rem);align-items:start}
@media (max-width:1020px){.body2{grid-template-columns:1fr}}
.prose{max-width:740px;font-size:1.08rem;line-height:1.65}
.prose h2{font-size:clamp(2rem,1.4rem + 2vw,3.2rem);margin:3.2rem 0 1.1rem;line-height:.98}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:var(--f-t);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;margin:2rem 0 .6rem;line-height:1.3}
.prose ul,.prose ol{padding-left:1.2rem;margin:0 0 1.3em}
.prose li{margin:.4rem 0}
.prose li::marker{color:var(--acc-d)}
.prose a{color:var(--acc-d);font-weight:500}
.prose strong{font-weight:500;color:var(--tx)}
.prose blockquote{margin:2rem 0;padding:1.3rem 1.5rem;border-left:2px solid var(--acc-d);background:var(--por-2);border-radius:0 14px 14px 0;font-size:.98rem;color:var(--tx-2)}
.prose table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:.96rem}
.prose th,.prose td{text-align:left;padding:.8rem .6rem;border-bottom:1px solid var(--line-l)}
.prose th{font-weight:500}
.steps{counter-reset:s;list-style:none;padding:0!important;margin:1.6rem 0!important}
.steps li{counter-increment:s;display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:1.3rem 0;border-top:1px solid var(--line-l);margin:0!important}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--f-d);font-size:2.6rem;line-height:.8;color:var(--acc-d);letter-spacing:-.03em}
.steps b{display:block;font-weight:500;color:var(--tx);margin-bottom:.15rem}
.incl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-l);border:1px solid var(--line-l);border-radius:22px;overflow:hidden;margin:1.8rem 0 3rem}
.incl div{background:var(--por);padding:1.4rem 1.5rem;font-size:.98rem;line-height:1.45;color:var(--tx-2);transition:background-color .4s}
.incl div:hover{background:oklch(100% 0 0 / .7)}
.incl b{display:block;color:var(--tx);font-weight:500;margin-bottom:.25rem;font-size:1.04rem}
@media (max-width:640px){.incl{grid-template-columns:1fr}}
.side{position:sticky;top:calc(var(--hh) + 1.5rem);display:grid;gap:1rem}
.side-c{background:var(--ink);color:var(--fg);border-radius:24px;padding:1.8rem;position:relative;overflow:hidden}
.side-c::after{content:"";position:absolute;right:-24px;bottom:-40px;width:110px;height:165px;background:var(--ink-3);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
.side-c>*{position:relative;z-index:1}
.side-c h3{font-size:2.3rem;margin-bottom:.7rem}
.side-c p{color:var(--fg-2);font-size:.96rem}
.side-c .btn{width:100%;margin-top:.5rem;--b:var(--fg);--c:var(--ink)}
.side-c .btn--o{--b:transparent;--c:var(--fg);box-shadow:inset 0 0 0 1px var(--line-2)}
.side-l{border:1px solid var(--line-l2);border-radius:24px;padding:1.3rem 1.5rem}
.side-l h3{font-family:var(--f-t);font-weight:500;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tx-3);margin-bottom:.4rem;line-height:1.4}
.side-l ul{list-style:none;margin:0;padding:0}
.side-l a{display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:46px;text-decoration:none;border-bottom:1px solid var(--line-l);font-size:.95rem}
.side-l li:last-child a{border:0}
.side-l a:hover{color:var(--acc-d)}
@media (max-width:1020px){.side{position:static}}

.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.card{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:1.8rem;min-height:280px;border-radius:24px;background:var(--ink-2);border:1px solid var(--line);text-decoration:none;overflow:hidden;isolation:isolate;transition:border-color .4s,transform .7s var(--e)}
.card::before{content:"";position:absolute;right:-30px;bottom:-60px;width:120px;height:180px;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat;z-index:-1;transform:translateY(40px) rotate(12deg);opacity:0;transition:transform .8s var(--e),opacity .5s}
.card:hover{border-color:var(--line-2);transform:translateY(-6px)}
.card:hover::before{opacity:1;transform:none}
.card .n{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3)}
.card h3{font-size:2.2rem;line-height:.98}
.card p{margin:0;color:var(--fg-3);font-size:.96rem}
.card .tl{margin-top:auto}
.lt .card{background:oklch(100% 0 0 / .6);border-color:var(--line-l)}
.lt .card:hover{border-color:var(--line-l2)}
.lt .card p,.lt .card .n{color:var(--tx-3)}
.lt .card::before{background:var(--acc-d)}
@media (max-width:980px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.cards{grid-template-columns:1fr}}

.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0!important;margin:1.2rem 0 1.8rem!important}
.chips li{margin:0!important;padding:.5rem 1rem;border-radius:999px;background:var(--por-2);font-size:.92rem;color:var(--tx)}

/* contact */
.cg{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(2rem,6vw,6rem);align-items:start}
@media (max-width:960px){.cg{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.3rem}
.form .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:.45rem}
.fld label,.fld legend{font-size:.84rem;font-weight:500;color:var(--tx-2)}
.fld input,.fld select,.fld textarea{font:inherit;font-size:1rem;color:var(--tx);background:oklch(100% 0 0 / .7);border:1px solid oklch(19% .01 250 / .5);border-radius:14px;padding:.9rem 1rem;min-height:54px;transition:border-color .3s,box-shadow .3s}
.fld textarea{min-height:150px;resize:vertical}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible,.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--tx);box-shadow:0 0 0 2px var(--por),0 0 0 4px var(--acc-d)}
.fld .req{color:var(--tx-3);font-weight:400}
fieldset.fld{border:0;padding:0;margin:0}
.chk{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
.chk label{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 1rem;border:1px solid var(--line-l2);border-radius:999px;font-size:.9rem;color:var(--tx);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s}
.chk input{accent-color:var(--acc-d);width:16px;height:16px}
.chk label:has(input:checked){background:var(--tx);color:var(--por);border-color:var(--tx)}
.fnote{font-size:.85rem;color:var(--tx-3)}
.fstat{grid-column:1/-1;min-height:1.5em;font-weight:500}
@media (max-width:640px){.form{grid-template-columns:1fr}}
.ci{display:grid;gap:1rem}
.ci div{border-radius:20px;background:var(--ink);color:var(--fg);padding:1.4rem 1.5rem}
.ci small{display:block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:.35rem}
.ci a,.ci b{font-family:var(--f-t);font-weight:500;font-size:1.45rem;line-height:1.2;text-decoration:none;letter-spacing:-.02em}
.ci p{margin:.5rem 0 0;color:var(--fg-2);font-size:.92rem}

/* 404 */
.nf{min-height:100svh;display:grid;place-items:center;text-align:center;padding:calc(var(--hh) + 2rem) var(--g) 4rem}
.nf .k{width:110px;height:165px;margin:0 auto 2rem;background:var(--acc);-webkit-mask:var(--keyhole) center/contain no-repeat;mask:var(--keyhole) center/contain no-repeat}
.nf .btns{justify-content:center;margin-top:1.6rem}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media (pointer:coarse){.ftr li a,.ftr-c a,.ftr-bt nav a,.crumbs a{min-height:44px;display:inline-flex;align-items:center}}

/* ---------- HOME HERO v3: "The Building" (scroll-scrubbed footage + elevator floor counter) ---------- */
.bld{position:relative}
.bld-stage{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--ink)}
.bld-poster,.bld-canvas{position:absolute;inset:0;width:100%;height:100%}
.bld-poster img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.bld-canvas{display:block}
.bld-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,oklch(16.5% .008 250/.55),transparent 26%,transparent 55%,oklch(16.5% .008 250/.92)),radial-gradient(120% 80% at 50% 40%,transparent 50%,oklch(16.5% .008 250/.55))}
.bld-top{position:absolute;top:calc(var(--hh) + 1.4rem);left:var(--g);right:var(--g);display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;color:var(--fg-2);letter-spacing:.03em}
.bld-top b{color:var(--fg);font-weight:500}
.bld-h1{font-family:var(--f-t);font-size:.76rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-2);line-height:1.6;max-width:30em}
.bld-lines{position:absolute;left:var(--g);right:var(--g);bottom:clamp(7rem,18vh,11rem);pointer-events:none}
.bld-line{display:block;font-family:var(--f-d);font-size:clamp(3.6rem,1.4rem + 9vw,13rem);line-height:.86;letter-spacing:-.04em}
.bld-line em{font-style:normal;color:var(--acc)}
.bld-foot{position:absolute;left:var(--g);right:var(--g);bottom:clamp(1.5rem,4vh,2.6rem);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem 3rem;align-items:end}
.bld-foot p{margin:0;max-width:34em;color:var(--fg-2);font-size:1.02rem}
.lift{position:absolute;right:var(--g);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:.7rem;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3)}
.lift-n{font-family:var(--f-t);font-weight:500;font-size:2.4rem;letter-spacing:-.02em;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1;border:1px solid var(--line-2);border-radius:14px;padding:.55rem .7rem;min-width:4.2rem;text-align:center;background:oklch(16.5% .008 250/.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lift-bar{width:1px;height:22vh;background:var(--line-2);position:relative;overflow:hidden}
.lift-bar i{position:absolute;left:0;right:0;bottom:0;height:100%;background:var(--acc);transform-origin:bottom;transform:scaleY(0)}
.lift-arr{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:7px solid var(--acc)}
/* animated mode */
.bld-on .bld{height:320vh}
.bld-on .bld-stage{position:sticky;top:0}
.bld-on .bld-line{opacity:0}
.reduced .bld-line,html:not(.bld-on) .bld-line{opacity:1}
html:not(.bld-on) .bld-line+.bld-line{display:none}
@media (max-width:860px){
  .bld-top span+span{display:none}
  .bld-foot{grid-template-columns:1fr}
  .bld-lines{bottom:clamp(12rem,30vh,15rem)}
  .lift{top:auto;bottom:calc(clamp(12rem,30vh,15rem) + 1rem);transform:none}
  .lift-bar{display:none}
  .lift-n{font-size:1.6rem;min-width:3.4rem}
}

/* property types */
.types{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}
.type{position:relative;grid-column:span 2;aspect-ratio:4/5;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;text-decoration:none;isolation:isolate}
.type:nth-child(1),.type:nth-child(2){grid-column:span 3;aspect-ratio:16/11}
.type img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--e)}
.type::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 35%,oklch(16.5% .008 250/.88))}
.type:hover img{transform:scale(1.06)}
.type small{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2)}
.type h3{font-size:clamp(1.9rem,1.3rem + 1.6vw,3rem);margin-top:.5rem}
@media (max-width:900px){.types{grid-template-columns:1fr 1fr}.type,.type:nth-child(1),.type:nth-child(2){grid-column:span 1;aspect-ratio:4/5}}
@media (max-width:520px){.types{grid-template-columns:1fr}.type,.type:nth-child(1),.type:nth-child(2){aspect-ratio:16/12}}
/* v4: programmatic pages — link chips, neighbourhood groups, 5-up cards */
.chips--a li{padding:0!important;background:none!important}
.chips--a a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1.05rem;border-radius:999px;background:var(--por-2);color:var(--tx);text-decoration:none;font-size:.92rem;border:1px solid transparent;transition:background-color .3s,color .3s,border-color .3s}
.chips--a a:hover{background:var(--acc-d);color:#fff}
.sec:not(.lt) .chips li{background:oklch(100% 0 0/.05);color:var(--fg);border:1px solid var(--line-2)}
.sec:not(.lt) .chips--a a{background:oklch(100% 0 0/.05);color:var(--fg);border-color:var(--line-2)}
.sec:not(.lt) .chips--a a:hover{border-color:var(--acc);color:var(--fg);background:oklch(100% 0 0/.09)}
.hzs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem 3.4rem}
.hz h3{font-size:clamp(1.5rem,1.2rem + .8vw,2.1rem)}
.hz h3 a{text-decoration:none}
.hz h3 a:hover{color:var(--acc)}
.hz .chips{margin:.9rem 0 0!important}
.plain{list-style:none;margin:0;padding:0}
.plain li{min-height:42px;display:flex;align-items:center;border-bottom:1px solid var(--line-l);font-size:.95rem;color:var(--tx-2)}
.plain li:last-child{border:0}
.cat-h{margin:4rem 0 1.4rem;scroll-margin-top:calc(var(--hh) + 1.5rem)}
.cat-h:first-of-type{margin-top:0}
.cards--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1200px){.cards--5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){.cards--5{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.hzs{grid-template-columns:1fr}}
@media (max-width:620px){.cards--5{grid-template-columns:1fr}}
@media (max-width:620px){
  .bld-top>span{display:none}
  .bld-foot p{display:none}
  .bld-foot .btns{flex-wrap:nowrap}
  .bld-foot .btn{flex:1 1 0;justify-content:center;padding-inline:.9rem;white-space:nowrap;font-size:.92rem}
  .bld-lines{bottom:7.2rem}
  .lift{bottom:auto;top:calc(var(--hh) + 1.4rem);right:var(--g)}
  .bld-h1{max-width:calc(100% - 4.6rem)}
}
html{-webkit-tap-highlight-color:oklch(64% .2 28 / .18)}
a,button,summary,label,select{touch-action:manipulation}
[id]{scroll-margin-top:calc(var(--hh) + 1.5rem)}
@media (max-width:620px){.prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.9rem;overscroll-behavior-x:contain}.prose th,.prose td{min-width:8.5rem;vertical-align:top}}
.body2>*,.prose{min-width:0}
