:root{--bg:#121211;--bg2:#0a0a09;--ivory:#eee8dc;--mut:rgba(238,232,220,.66);--line:rgba(238,232,220,.2);--champ:#cdb48a;--ease:cubic-bezier(.76,0,.24,1);color-scheme:dark;box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
html,body{margin:0;background:var(--bg);color:var(--ivory);font-family:Inter,system-ui,sans-serif;font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,.serif{font-family:"Cormorant Garamond",Georgia,serif;font-weight:300;margin:0}
em{font-style:italic;color:var(--champ)}
img{display:block;width:100%;height:100%;object-fit:cover;transform-origin:0 0}
.js img[data-img]{opacity:0;transition:opacity 1.2s ease}.js img[data-img].ok{opacity:1}
.lb{display:block;font-size:.64rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase}
.hl{font-size:clamp(2.3rem,5vw,5rem);line-height:1.04;letter-spacing:-.012em;margin:1.6rem 0}
.hl em{display:block}
.tb p{color:var(--mut);line-height:1.9;font-size:.95rem;max-width:36ch;margin:0 0 2rem}
.lnk{display:inline-flex;align-items:center;gap:1.1rem;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;padding:.6rem 0}
.lnk i{display:block;width:64px;height:1px;background:currentColor;transition:width .6s var(--ease)}
.lnk svg{width:16px;height:10px;transition:transform .6s var(--ease)}.lnk:hover i{width:92px}.lnk:hover svg{transform:translateX(5px)}
a:focus-visible,button:focus-visible{outline:1px solid var(--champ);outline-offset:6px}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .14em;margin:0 .2em 0 0}.w>span{display:inline-block}
.pre{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(1.3rem,3vw,2rem);letter-spacing:.5em;text-transform:uppercase;padding-left:.5em;transition:opacity .9s ease,visibility .9s}.pre.off{opacity:0;visibility:hidden}
header{position:fixed;top:0;left:0;right:0;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:calc(26px + env(safe-area-inset-top,0px)) 4.2vw 26px;transition:background .6s,backdrop-filter .6s}
header.solid{background:rgba(18,18,17,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.2rem;letter-spacing:.34em;text-transform:uppercase;white-space:nowrap}
.brand small{display:block;font-family:Inter,sans-serif;font-size:.5rem;letter-spacing:.52em;opacity:.75;margin-top:.3rem}
nav ul{display:flex;gap:3vw;list-style:none;margin:0;padding:0}
nav a{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;position:relative;padding:8px 0;opacity:.88}
nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--champ);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}nav a:hover::after{transform:scaleX(1)}
.burger{justify-self:end;width:44px;height:34px;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:7px;padding:0}
.burger span{display:block;height:1px;background:var(--ivory);transition:width .5s var(--ease),transform .5s var(--ease)}
.burger span:nth-child(1),.burger span:nth-child(3){width:30px}.burger span:nth-child(2){width:22px}.burger:hover span:nth-child(2){width:30px}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}.burger[aria-expanded=true] span:nth-child(2){opacity:0}.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--bg);display:none;flex-direction:column;justify-content:center;padding:0 8vw;clip-path:inset(0 0 100% 0)}.menu.open{display:flex;clip-path:inset(0)}
.menu ul{list-style:none;margin:0;padding:0}.menu li{overflow:hidden;border-bottom:1px solid var(--line)}
.menu li a{display:flex;justify-content:space-between;align-items:baseline;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2rem,5vw,3.8rem);font-weight:300;padding:.9rem 0;transition:color .5s,padding .6s var(--ease)}
.menu li a span{font-family:Inter,sans-serif;font-size:.6rem;letter-spacing:.3em;color:var(--mut)}.menu li a:hover{color:var(--champ);padding-left:1.2rem}
.menu p{margin:2rem 0 0;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
/* chapter indicator (right, vertical) */
.prog{position:fixed;right:3.2vw;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:1rem;font-size:.62rem;letter-spacing:.2em;mix-blend-mode:difference;color:#fff;pointer-events:none}
.prog b{font-weight:400;font-size:.8rem;letter-spacing:.2em}.prog .ln{width:1px;height:64px;background:rgba(255,255,255,.3);position:relative}.prog .ln i{position:absolute;left:0;top:0;width:1px;height:100%;background:#fff;transform:scaleY(0);transform-origin:top}
.prog .nm{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.3em;opacity:.75;white-space:nowrap}
/* stages */
.ch{position:relative;background:var(--bg)}
.stage{position:relative;overflow:hidden;min-height:90vh}
.live .stage{height:100vh;height:100svh;min-height:0}
.dim{position:absolute;inset:0;background:var(--bg);opacity:0;pointer-events:none;z-index:9}
.scene{position:relative;min-height:88vh;overflow:hidden}.live .scene{position:absolute;inset:0;min-height:0}
.pic{position:absolute;inset:0}.pic img{object-position:50% 50%}
.scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(14,14,13,.82),rgba(14,14,13,.35) 55%,rgba(14,14,13,.1)),linear-gradient(0deg,rgba(14,14,13,.6),transparent 40%)}
.tb{position:relative;z-index:3}
.pos{position:absolute;left:7vw;top:50%;transform:translateY(-50%);z-index:3;max-width:34rem}
.fog{position:absolute;inset:-20%;pointer-events:none;opacity:.35;z-index:2;background:radial-gradient(40% 28% at 20% 62%,rgba(255,255,255,.5),transparent 70%),radial-gradient(46% 30% at 75% 70%,rgba(255,255,255,.4),transparent 70%);animation:drift 30s ease-in-out infinite alternate}
@keyframes drift{to{transform:translateX(7%)}}
.fogp{position:absolute;inset:-25%;pointer-events:none;opacity:0;z-index:8;background:radial-gradient(40% 30% at 20% 55%,#fff,transparent 70%),radial-gradient(46% 34% at 70% 42%,#fff,transparent 70%),radial-gradient(52% 30% at 45% 78%,#fff,transparent 70%)}
.tag{position:absolute;left:7vw;bottom:calc(4.5vh + env(safe-area-inset-bottom,0px));z-index:4;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mut)}
/* 01 hero */
.hero .stage{min-height:100vh;min-height:100svh}
.hero .photo{position:absolute;inset:0}.hero .photo img{transform-origin:50% 50%}.hero .pb{display:none}.live .hero .pb{display:block}.hero .pb img{transform-origin:0 0}
.hero .shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(14,14,13,.55),transparent 55%),linear-gradient(0deg,rgba(14,14,13,.7),transparent 30%),linear-gradient(180deg,rgba(14,14,13,.55),transparent 25%)}
.hero .copy{position:absolute;left:7vw;top:50%;transform:translateY(-52%);z-index:3;max-width:min(40rem,88vw)}
.hero h1{font-size:clamp(2.8rem,6.4vw,6.6rem);line-height:1;letter-spacing:-.014em;margin:1.8rem 0 0}.hero h1 em{display:block;margin-top:.08em;white-space:nowrap}
.hero .rule{width:90px;height:1px;background:var(--ivory);margin:2.2rem 0;transform-origin:left;opacity:.8}
.hero .copy p{color:var(--mut);line-height:1.85;font-size:.95rem;max-width:34ch;margin:0}
.hcap{position:absolute;right:7vw;bottom:calc(10vh + env(safe-area-inset-bottom,0px));z-index:4;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:clamp(1.4rem,2.6vw,2.4rem);opacity:0;text-align:right;color:var(--champ)}
.scrollcue{position:absolute;left:7vw;bottom:calc(6vh + env(safe-area-inset-bottom,0px));z-index:3;display:flex;align-items:center;gap:1.4rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase}
.scrollcue .c{width:46px;height:46px;border:1px solid rgba(238,232,220,.6);border-radius:50%;display:grid;place-items:center;overflow:hidden}
.scrollcue svg{width:12px;height:16px;animation:dn 2.2s var(--ease) infinite}@keyframes dn{0%{transform:translateY(-22px)}60%,100%{transform:translateY(22px)}}
/* 02 story */
.story .pic{inset:-6% -4%}
/* 03 philosophy */
.phil .vals{position:relative}.val{position:relative;z-index:3;padding:3rem 7vw}
.val .n{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:clamp(3rem,6vw,5.4rem);color:var(--champ);line-height:1;display:block}
.val h3{font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;margin:.6rem 0}
.live .phil .head{position:absolute;left:7vw;top:17vh;z-index:3;max-width:26rem}.live .phil .head .hl{font-size:clamp(1.3rem,2vw,1.8rem);margin:1rem 0 0;line-height:1.3}.live .phil .head .hl em{display:inline}
.live .val{position:absolute;left:0;bottom:calc(16vh + env(safe-area-inset-bottom,0px));padding:0 7vw;opacity:0;visibility:hidden}
.phil .head{position:relative;z-index:3;padding:10vh 7vw 0}
.phil .cnt{display:none}.live .phil .cnt{display:block;position:absolute;right:calc(3.2vw + 70px);bottom:calc(16vh + env(safe-area-inset-bottom,0px));z-index:3;font-size:.64rem;letter-spacing:.3em}
/* 04 developments intro */
.dev .stage{display:flex;align-items:center}
.dev .pic{opacity:.4}.dev .center{position:relative;z-index:3;text-align:center;margin:0 auto;padding:12vh 6vw;max-width:56rem}
.dev .center p{margin:0 auto 2rem;max-width:38ch;color:var(--mut);line-height:1.9;font-size:.95rem}
.dev .hl em{display:block}
.dev .idx{display:flex;justify-content:center;gap:2.4rem;flex-wrap:wrap;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--mut)}
/* 05–07 projects film */
.film .sc2{position:relative}
.pn{font-size:.64rem;letter-spacing:.42em;text-transform:uppercase;display:block;margin:0 0 .5rem}.loc{font-size:.76rem;color:var(--mut);letter-spacing:.06em;margin:0 0 1.6rem}
.live .film .scene .tb{position:absolute;left:7vw;bottom:calc(14vh + env(safe-area-inset-bottom,0px));max-width:36rem}
.film .scene .tb{padding:12vh 7vw}
.live .film .pic.p2{opacity:0}
.mgrade{position:absolute;inset:0;z-index:1;pointer-events:none}
/* 08 residences */
.res .stage{background:#060606;display:flex;align-items:center;justify-content:center;text-align:center}
.res .glow{position:absolute;inset:0;opacity:.6;background:radial-gradient(40% 46% at 66% 52%,rgba(205,180,138,.22),transparent 70%)}
.res svg.sil{position:absolute;right:6vw;top:50%;width:min(62vw,900px);transform:translateY(-50%);opacity:.75;-webkit-mask-image:linear-gradient(0deg,#000 calc(var(--rev,125)*1% - 25%),transparent calc(var(--rev,125)*1%));mask-image:linear-gradient(0deg,#000 calc(var(--rev,125)*1% - 25%),transparent calc(var(--rev,125)*1%))}
.res svg *{fill:none;stroke:var(--champ);stroke-width:1;vector-effect:non-scaling-stroke}
.res .rt{position:relative;z-index:3;margin-right:auto;padding:0 7vw;text-align:left}
.res .rn{font-family:"Cormorant Garamond",Georgia,serif;font-weight:300;font-size:clamp(2.4rem,5.4vw,5.4rem);line-height:1.04;letter-spacing:.14em;text-transform:uppercase;margin:1.4rem 0 1.6rem}
.res .rs{font-size:.72rem;letter-spacing:.6em;text-transform:uppercase;color:var(--champ);display:block}
.res .rline{width:70px;height:1px;background:var(--champ);margin:0 0 1.6rem;transform-origin:left}
.res .tag{left:7vw}
/* 09 expertise */
.exp{padding:16vh 0}
.exp .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center;padding:0 7vw}
.exp .ph{position:relative;height:72vh;overflow:hidden}.exp .ph .in{position:absolute;inset:0}
.svc{border-top:1px solid var(--line);padding:2rem 0}.svc:last-child{border-bottom:1px solid var(--line)}
.svc h3{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.36em;text-transform:uppercase;font-weight:400;margin-bottom:.9rem}
.svc p{margin:0;color:var(--mut);line-height:1.8;font-size:.95rem;max-width:40ch}
/* 10 commitment */
.com .closing{display:none}.live .com .closing{display:block}
.cl{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:clamp(1.3rem,2.3vw,2.1rem);line-height:1.4;color:var(--ivory);max-width:32ch;margin:0}
.live .com .tb{position:absolute;left:7vw;bottom:calc(14vh + env(safe-area-inset-bottom,0px));max-width:38rem;padding:0}
.com .tb{padding:12vh 7vw}
.live .com .last-wrap{position:absolute;left:7vw;bottom:calc(14vh + env(safe-area-inset-bottom,0px));max-width:34rem;z-index:3;opacity:0;visibility:hidden}
.com .last-wrap{padding:0 7vw 12vh;position:relative;z-index:3}
/* 11 contact */
footer{position:relative;z-index:2;background:var(--bg);padding:20vh 7vw 6vh}
footer .big{font-size:clamp(2.6rem,6vw,6rem);line-height:1.02;letter-spacing:-.014em;margin:0 0 2rem}footer .big em{display:block}
footer .cp{max-width:42ch;color:var(--mut);line-height:1.9;margin:0 0 2.4rem}
.btn{display:inline-flex;align-items:center;gap:1.2rem;padding:1.15rem 2.4rem;border:1px solid rgba(238,232,220,.55);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;transition:background .6s var(--ease),color .6s var(--ease),border-color .6s}
.btn svg{width:16px;height:10px}.btn:hover{background:var(--ivory);color:var(--bg);border-color:var(--ivory)}
.fgrid{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:4vw;margin-top:16vh;padding-top:4rem;border-top:1px solid var(--line);font-size:.82rem;line-height:1.9;color:var(--mut)}
.fgrid .nm{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.5rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ivory);line-height:1.2}
.fgrid .nm small{display:block;font-family:Inter,sans-serif;font-size:.52rem;letter-spacing:.6em;margin-top:.6rem;color:var(--mut)}
.fgrid .tg{margin-top:1rem;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:1.1rem;color:var(--champ)}
.fgrid a:hover{color:var(--ivory)}.fgrid .k{display:block;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);margin-bottom:.4rem}
.fgrid div>div{margin-bottom:1rem}
.copy-r{margin-top:5rem;font-size:.66rem;letter-spacing:.2em;color:var(--mut)}
@media(max-width:960px){
 header{grid-template-columns:1fr auto}nav{display:none}
 .exp .wrap{grid-template-columns:1fr;gap:3rem}.exp .ph{height:48vh}
 .fgrid{grid-template-columns:1fr}
 .res svg.sil{right:-10vw;width:110vw;opacity:.9}
}
@media(max-width:760px){
 .prog{right:2vw}.prog .nm{display:none}.scrollcue{display:none}
 .hero .copy{top:auto;bottom:calc(11vh + env(safe-area-inset-bottom,0px));transform:none}.hcap{display:none}
 .hero .copy p{font-size:.85rem}
 .hl{font-size:clamp(2rem,9vw,3rem)}.hero h1{font-size:clamp(2.6rem,11.5vw,3.6rem)}
 .live .film .scene .tb,.live .com .tb,.live .com .last-wrap{right:6vw;left:6vw;bottom:calc(10vh + env(safe-area-inset-bottom,0px))}
 .tb p{font-size:.88rem}.live .phil .val{padding:0 6vw}.live .phil .head{left:6vw;right:6vw}
 .live .phil .cnt{right:6vw;bottom:calc(10vh)}
 .live .pos,.pos{left:6vw;right:6vw}
 .tag{left:6vw}.res .rt{padding:0 6vw}.res .tag{left:6vw}
}
@media(prefers-reduced-motion:reduce){.fog,.scrollcue svg{animation:none}.js img[data-img]{transition:none}.fogp{display:none}}

/* WordPress extras */
body.admin-bar header{top:32px}@media(max-width:782px){body.admin-bar header{top:46px}}
.brand .custom-logo{height:46px;width:auto;display:block}
.plain{padding:24vh 7vw 12vh;min-height:70vh}.plain h1{font-size:clamp(2.2rem,5vw,4rem);margin:0 0 2rem}.plain .entry{max-width:70ch;color:var(--mut);line-height:1.9}.plain .entry a{color:var(--champ)}
footer{padding-top:14vh}
.screen-reader-text{position:absolute;left:-9999px}
