/* fonts: self-hosted (SIL Open Font License) */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format('woff2')}
/* HEMCHAND — since 1905 */
:root{
  --night:#0d1f47; --night-2:#12295a; --night-3:#081633;
  --ivory:#f6f1e7; --paper:#fbf8f2; --ink:#16161a; --muted:#6b675e; --line:#e2dbcc;
  --gold:#c4a468; --gold-2:#e2c88f; --gold-deep:#8f7037;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img,svg,video{display:block;max-width:100%}
::selection{background:var(--gold);color:var(--night-3)}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.skip{position:absolute;left:-999px;top:10px;background:#fff;padding:8px 14px;z-index:99}
.skip:focus{left:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:22px clamp(18px,4vw,56px);color:var(--ivory);transition:background .5s var(--ease),color .5s,padding .5s,border-color .5s;border-bottom:1px solid transparent}
.hdr.solid{background:rgba(251,248,242,.94);backdrop-filter:blur(10px);color:var(--night);padding-top:14px;padding-bottom:14px;border-bottom-color:var(--line)}
.hdr .l,.hdr .r{display:flex;gap:clamp(16px,2.4vw,36px);align-items:center}
.hdr .r{justify-content:flex-end}
.hdr a{text-decoration:none;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;position:relative;padding:4px 0}
.hdr nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:currentColor;transition:right .5s var(--ease)}
.hdr nav a:hover::after,.hdr nav a[aria-current=page]::after{right:.32em}
.wordmark{font-family:var(--sans);font-weight:300;font-size:19px!important;letter-spacing:.52em!important;padding-left:.52em!important}
@media(max-width:760px){
  .hdr{grid-template-columns:auto 1fr}.hdr .l{display:none}
  .hdr .r{gap:14px}.hdr .r a{font-size:10px;letter-spacing:.2em}
  .wordmark{font-size:15px!important;letter-spacing:.4em!important;padding-left:0!important}
}

/* ---------- hero ---------- */
.hero{position:relative;height:94svh;min-height:620px;overflow:hidden;background:radial-gradient(130% 100% at 50% 0%,var(--night-2) 0%,var(--night) 55%,var(--night-3) 100%);color:var(--ivory);
  display:flex;align-items:center;justify-content:center;text-align:center}
.hero .deco{position:absolute;inset:0;width:100%;height:100%}
.hero .veil{position:absolute;inset:0;background:radial-gradient(46% 42% at 50% 52%,rgba(8,20,48,.92) 0%,rgba(8,20,48,.78) 45%,rgba(8,22,51,.25) 80%,rgba(8,22,51,.55) 100%)}
.hero .in{position:relative;z-index:2;padding:0 20px}
.hero .crest{width:clamp(78px,10vw,112px);height:auto;filter:brightness(1.5) drop-shadow(0 0 18px rgba(226,200,143,.25));margin:0 auto 34px;opacity:0;animation:rise 2.2s var(--ease) .3s forwards}
.hero .est{font-size:12.5px;letter-spacing:.6em;text-transform:uppercase;color:var(--gold-2);font-weight:400;padding-left:.62em;opacity:0;animation:rise 2s var(--ease) .9s forwards}
.hero h1{font-family:var(--sans);font-weight:300;text-transform:uppercase;font-size:clamp(40px,8.4vw,108px);letter-spacing:.42em;padding-left:.42em;margin:.32em 0 0;line-height:1;opacity:0;animation:rise 2.4s var(--ease) 1.2s forwards}
.hero .tag{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,30px);color:#fbf6ea;margin:30px 0 0;opacity:0;animation:rise 2s var(--ease) 1.9s forwards}
.hero .cue{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-2);text-decoration:none;opacity:0;animation:rise 2s var(--ease) 2.6s forwards}
.hero .cue::after{content:"";display:block;width:1px;height:46px;margin:12px auto 0;background:linear-gradient(var(--gold),transparent);animation:drip 2.8s var(--ease) infinite}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@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}}

/* ---------- shared ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.narrow{max-width:760px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.section{padding:clamp(80px,11vw,150px) 0}
.kicker{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 26px;display:flex;align-items:center;gap:16px}
.kicker.c{justify-content:center}
.kicker.c::before,.kicker.c::after,.kicker:not(.c)::before{content:"";width:38px;height:1px;background:currentColor;opacity:.6}
.display{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.6vw,60px);line-height:1.12;letter-spacing:-.005em;color:var(--night);margin:0}
.display em{font-style:italic;color:var(--gold-deep)}
.statement{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.3vw,42px);line-height:1.35;color:var(--night);text-align:center;margin:0}
.statement em{font-style:italic;color:var(--gold-deep)}
.body-l{font-size:18px;color:#3f3c35;max-width:58ch}
.rule{width:1px;height:70px;background:linear-gradient(transparent,var(--gold),transparent);margin:0 auto}
.reveal{transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.reveal.pre{opacity:0;transform:translateY(22px)}
.reveal.shown{opacity:1;transform:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:14px;text-decoration:none;cursor:pointer;font-family:var(--sans);font-size:11.5px;letter-spacing:.36em;text-transform:uppercase;
  padding:17px 34px 17px calc(34px + .36em);border:1px solid currentColor;background:transparent;color:var(--night);transition:background .5s var(--ease),color .5s var(--ease),border-color .5s}
.btn:hover{background:var(--night);color:var(--ivory);border-color:var(--night)}
.btn.light{color:var(--ivory);background:rgba(8,20,48,.55)}
.btn.light:hover{background:var(--ivory);color:var(--night);border-color:var(--ivory)}
.btn.solid{background:var(--night);color:var(--ivory);border-color:var(--night)}
.btn.solid:hover{background:var(--gold-deep);border-color:var(--gold-deep)}
.btn .ar{display:inline-block;width:22px;height:1px;background:currentColor;position:relative;transition:width .5s var(--ease)}
.btn .ar::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .ar{width:34px}

/* houses — four colours, from the Hemchand estimate sheets */
.houses{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,26px);margin-top:70px}
.house{--bg:#0d1f47;--bg2:#081633;--hi:#e2c88f;position:relative;aspect-ratio:3/4.6;background:radial-gradient(120% 80% at 50% 0%,var(--bg) 0%,var(--bg2) 100%);color:var(--ivory);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(22px,2.2vw,34px);text-decoration:none}
.house.natural{--bg:#0f4430;--bg2:#06241a;--hi:#c9ac6d}
.house.lab{--bg:#7a5d16;--bg2:#3d2c05;--hi:#f0d99b}
.house.art{--bg:#14306a;--bg2:#081633;--hi:#e2c88f}
.house.rooh{--bg:#2a1630;--bg2:#0e0811;--hi:#d9b8e6}
.house .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.55;mix-blend-mode:screen;transition:transform 2.4s var(--ease),opacity 1s}
.house::before{content:"";position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--hi) 40%,transparent);pointer-events:none;transition:inset .9s var(--ease),border-color .9s}
.house::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.55))}
.house>*{position:relative;z-index:2}
.house .mono{width:46px;height:46px;margin:0 auto auto;opacity:.85;transition:transform 1.2s var(--ease)}
.house .no{font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--hi);margin-bottom:12px}
.house h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.4vw,36px);margin:0 0 10px;line-height:1.05}
.house p{margin:0;font-size:14.5px;line-height:1.6;color:rgba(246,241,231,.78)}
.house .more{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:10px;letter-spacing:.38em;text-transform:uppercase;color:var(--hi)}
.house .more i{display:inline-block;width:18px;height:1px;background:currentColor;transition:width .6s var(--ease)}
.house:hover .pat{transform:scale(1.06) translateY(-12px);opacity:.8}
.house:hover::before{inset:20px;border-color:var(--hi)}
.house:hover .mono{transform:translateY(-6px)}
.house:hover .more i{width:34px}
@media(max-width:1100px){.houses{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.houses{grid-template-columns:1fr}.house{aspect-ratio:auto;min-height:380px}}
.goldbar{height:6px;background:linear-gradient(90deg,#8a6a2c,#d9bb78 45%,#e8cf8e 60%,#9c7c38)}

/* band */
.band{position:relative;background:var(--night);color:var(--ivory);text-align:center;overflow:hidden}
.band .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.7}
.band .veil{position:absolute;inset:0;background:radial-gradient(70% 90% at 50% 50%,rgba(13,31,71,.4),rgba(8,22,51,.95))}
.band .in{position:relative;z-index:2}
.band .display{color:var(--ivory)}
.band p{color:rgba(246,241,231,.78);max-width:52ch;margin:24px auto 44px}

/* page head */
.phead{position:relative;background:var(--night);color:var(--ivory);text-align:center;padding:clamp(170px,22vw,240px) 20px clamp(90px,11vw,130px);overflow:hidden}
.phead .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.75}
.phead .veil{position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 50%,rgba(13,31,71,.3),rgba(8,22,51,.92))}
.phead .in{position:relative;z-index:2}
.phead .kicker{color:var(--gold)}
.phead h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6.4vw,84px);line-height:1.04;margin:0}
.phead h1 em{font-style:italic;color:var(--gold-2)}
.phead p{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2vw,23px);color:rgba(246,241,231,.78);max-width:46ch;margin:26px auto 0}

/* story */
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,6vw,110px);align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.chapters{margin-top:20px}
.chapter{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,5vw,80px);padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--line)}
.chapter:last-child{border-bottom:1px solid var(--line)}
.chapter .yr{font-family:var(--serif);font-size:clamp(44px,5vw,64px);line-height:.9;color:var(--gold-deep);font-weight:400}
.chapter h3{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,34px);color:var(--night);margin:0 0 12px;line-height:1.15}
.chapter p{margin:0;color:#46423a;max-width:56ch}
@media(max-width:700px){.chapter{grid-template-columns:1fr;gap:10px}}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3vw,38px);line-height:1.35;color:var(--night);text-align:center;max-width:26ch;margin:0 auto}

/* appointment */
.appt-grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(36px,7vw,110px);align-items:start}
@media(max-width:900px){.appt-grid{grid-template-columns:1fr}}
form.appt{display:grid;grid-template-columns:1fr 1fr;gap:34px 28px}
form.appt .full{grid-column:1/-1}
form.appt label,form.appt legend{display:block;font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--muted)}
form.appt input,form.appt select,form.appt textarea{display:block;width:100%;margin-top:10px;font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #cfc6b3;border-radius:0;padding:8px 0 10px;transition:border-color .4s}
form.appt select{appearance:none;background:linear-gradient(45deg,transparent 50%,var(--gold-deep) 50%) calc(100% - 10px) 55%/6px 6px no-repeat,linear-gradient(-45deg,transparent 50%,var(--gold-deep) 50%) calc(100% - 4px) 55%/6px 6px no-repeat}
form.appt input:focus,form.appt select:focus,form.appt textarea:focus{outline:none;border-bottom-color:var(--night)}
form.appt textarea{min-height:110px;resize:vertical}
fieldset{border:0;margin:0;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.chips label{letter-spacing:0;text-transform:none;font-size:15px;color:var(--ink)}
.chips label{position:relative}
.chips input{position:absolute;left:0;top:0;opacity:0;pointer-events:none;width:1px!important;height:1px;margin:0!important;padding:0}
.chips span{display:inline-block;border:1px solid #cfc6b3;padding:10px 20px;cursor:pointer;transition:all .4s var(--ease)}
.chips span:hover{border-color:var(--night)}
.chips input:checked+span{background:var(--night);border-color:var(--night);color:var(--ivory)}
.chips input:focus-visible+span{outline:1px solid var(--gold);outline-offset:3px}
.hp{position:absolute!important;left:-9999px!important}
.status{font-size:14px;color:var(--muted)}
.thanks{display:none;padding:40px 0}
.thanks h2{font-family:var(--serif);font-weight:400;font-size:40px;color:var(--night);margin:0 0 10px}
.aside{border-top:1px solid var(--line);padding-top:30px}
.aside h3{font-family:var(--serif);font-weight:400;font-size:24px;color:var(--night);margin:0 0 8px}
.aside p{margin:0 0 30px;color:#4a463e;font-size:16px}

/* footer */
.ftr{background:var(--night-3);color:rgba(246,241,231,.6);padding:80px clamp(20px,4vw,56px) 40px;text-align:center}
.ftr img{width:58px;height:58px;margin:0 auto 22px;opacity:.9}
.ftr .wm{font-size:15px;letter-spacing:.52em;padding-left:.52em;text-transform:uppercase;color:var(--ivory)}
.ftr nav{display:flex;justify-content:center;flex-wrap:wrap;gap:14px 34px;margin:34px 0 46px}
.ftr nav a{text-decoration:none;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.ftr small{display:block;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase}

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

/* ---------- v2 additions ---------- */
.hero .sub2{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-2);font-weight:400;margin-top:22px;padding-left:.55em;opacity:0;animation:rise 2s var(--ease) 2.1s forwards}
.hero .ctas{margin-top:44px;opacity:0;animation:rise 2s var(--ease) 2.4s forwards}
.wa-ico{width:16px;height:16px;flex:none}
.intro{display:grid;grid-template-columns:7fr 5fr;gap:clamp(36px,7vw,120px);align-items:end}
.intro .statement{text-align:left}
.intro .sig{font-family:var(--serif);font-style:italic;color:var(--gold-deep);font-size:22px;margin-top:26px}
@media(max-width:860px){.intro{grid-template-columns:1fr}}
.places{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:clamp(60px,8vw,100px)}
.places div{padding:34px 10px;text-align:center;border-right:1px solid var(--line)}
.places div:last-child{border-right:0}
.places b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,44px);color:var(--night);line-height:1}
.places span{display:block;margin-top:10px;font-size:10.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--muted)}
@media(max-width:560px){.places{grid-template-columns:1fr}.places div{border-right:0;border-bottom:1px solid var(--line)}.places div:last-child{border-bottom:0}}
.heritage{position:relative;background:var(--night);color:var(--ivory);overflow:hidden}
.heritage .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.5}
.heritage .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,22,51,.96) 0%,rgba(8,22,51,.85) 55%,rgba(8,22,51,.6) 100%)}
.heritage .in{position:relative;z-index:2;display:grid;grid-template-columns:6fr 5fr;gap:clamp(36px,6vw,100px);align-items:center}
@media(max-width:900px){.heritage .in{grid-template-columns:1fr}}
.heritage .kicker{color:var(--gold)}
.heritage .yr{font-family:var(--serif);font-size:clamp(90px,13vw,170px);line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(226,200,143,.7);letter-spacing:.02em;margin:0 0 24px}
.heritage h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.8vw,50px);line-height:1.12;margin:0 0 22px}
.heritage h2 em{color:var(--gold-2)}
.heritage p{color:rgba(246,241,231,.8);max-width:56ch;margin:0 0 18px}
.heritage .src{font-size:12px;letter-spacing:.06em;color:rgba(226,200,143,.65);margin-top:28px}
.heritage .src a{color:inherit}
.route{width:100%;height:auto}
.route text{font-family:var(--sans);font-size:11px;letter-spacing:.32em;fill:#e2c88f}
.route .small{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:0;fill:rgba(246,241,231,.7)}
.route .arc{stroke-dasharray:4 7;animation:flow 6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-110}}
.tenets{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,64px);margin-top:60px}
.tenet .n{font-family:var(--serif);font-style:italic;color:var(--gold-deep);font-size:20px}
.tenet h3{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.4vw,32px);color:var(--night);margin:10px 0 12px;line-height:1.1}
.tenet p{margin:0;color:#4a463e;font-size:16px}
.tenet{border-top:1px solid var(--night);padding-top:26px}
@media(max-width:820px){.tenets{grid-template-columns:1fr}}
.wa-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:40px}
.wa-btn{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;padding:24px 26px;border:1px solid #cfc6b3;background:#fff;color:var(--night);transition:all .5s var(--ease)}
.wa-btn b{display:block;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1}
.wa-btn small{display:block;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.wa-btn:hover{background:var(--night);color:var(--ivory);border-color:var(--night)}
.wa-btn:hover small{color:var(--gold-2)}
.wa-btn.main{grid-column:1/-1;background:var(--night);color:var(--ivory);border-color:var(--night);padding:30px 32px}
.wa-btn.main small{color:var(--gold-2)}
.wa-btn.main:hover{background:var(--gold-deep);border-color:var(--gold-deep)}
.wa-num{font-family:var(--serif);font-size:26px;color:var(--night);user-select:all}
.ftr .wa{display:inline-flex;align-items:center;gap:10px;margin-bottom:30px;color:var(--ivory);text-decoration:none;font-size:13px;letter-spacing:.2em}
.sources{font-size:14px;color:var(--muted)}
.sources a{color:var(--gold-deep)}

/* ---------- v3: menu, photo, house pages, lineage ---------- */
.menu-btn{display:none;background:none;border:0;color:inherit;font:inherit;font-size:11px;letter-spacing:.32em;text-transform:uppercase;cursor:pointer;padding:6px 0;justify-self:end}
.mnav{position:fixed;inset:0;z-index:40;background:var(--night-3);color:var(--ivory);display:none;flex-direction:column;align-items:center;justify-content:center;gap:26px}
.mnav.open{display:flex}
.mnav a{font-family:var(--serif);font-size:32px;text-decoration:none}
.mnav .x{position:absolute;top:22px;right:20px;background:none;border:0;color:var(--gold-2);font:inherit;font-size:11px;letter-spacing:.32em;text-transform:uppercase}
@media(max-width:980px){.hdr .l,.hdr .r{display:none}.hdr{grid-template-columns:1fr auto}.menu-btn{display:block}.wordmark{justify-self:start;padding-left:0!important}}
.photo{position:relative;margin:0}
.photo .frame{position:relative;padding:14px;border:1px solid rgba(226,200,143,.45);background:rgba(8,20,48,.6)}
.photo img{width:100%;height:auto;filter:sepia(.25) contrast(1.02)}
.photo .ring{position:absolute;left:calc(14px + (100% - 28px) * .745);top:calc(14px + (100% - 28px) * .232);width:54px;height:54px;margin:-27px 0 0 -27px;border:1px solid var(--gold-2);border-radius:50%;box-shadow:0 0 0 4px rgba(226,200,143,.15);animation:halo 3.2s var(--ease) infinite}
@keyframes halo{0%,100%{box-shadow:0 0 0 3px rgba(226,200,143,.18)}50%{box-shadow:0 0 0 10px rgba(226,200,143,0)}}
.photo figcaption{font-size:13.5px;line-height:1.6;color:rgba(246,241,231,.75);margin-top:16px}
.photo figcaption b{color:var(--gold-2);font-weight:400}
.photo.light .frame{border-color:var(--line);background:#fff}
.photo.light figcaption{color:var(--muted)}
.photo.light figcaption b{color:var(--gold-deep)}
.lineage{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-top:10px}
.lineage .gen{display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:baseline;position:relative;padding:14px 0}
.lineage .gen::before{content:"";position:absolute;left:21px;top:42px;bottom:-14px;width:1px;background:var(--gold)}
.lineage .gen:last-child::before{display:none}
.lineage .g{width:44px;height:44px;border:1px solid var(--gold-deep);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;color:var(--gold-deep);transform:rotate(45deg)}
.lineage .g span{transform:rotate(-45deg)}
.lineage b{display:block;font-family:var(--serif);font-weight:400;font-size:26px;color:var(--night);line-height:1.15}
.lineage small{display:block;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:4px}
/* house pages */
body.h-natural{--hbg:#0f4430;--hbg2:#06241a;--hhi:#d6b97a}
body.h-lab{--hbg:#7a5d16;--hbg2:#3a2905;--hhi:#f0d99b}
body.h-art{--hbg:#14306a;--hbg2:#081633;--hhi:#e2c88f}
body.h-rooh{--hbg:#2c1733;--hbg2:#0e0811;--hhi:#dcc0e8}
.hhead{position:relative;color:var(--ivory);text-align:center;padding:clamp(170px,22vw,240px) 20px clamp(100px,12vw,150px);overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,var(--hbg) 0%,var(--hbg2) 100%)}
.hhead .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.55;mix-blend-mode:screen}
.hhead .veil{position:absolute;inset:0;background:radial-gradient(50% 60% at 50% 55%,rgba(0,0,0,.45),rgba(0,0,0,0) 75%)}
.hhead .in{position:relative;z-index:2}
.hhead img{width:70px;height:70px;margin:0 auto 26px}
.hhead .kicker{color:var(--hhi)}
.hhead h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6.6vw,88px);line-height:1.02;margin:0}
.hhead h1 em{color:var(--hhi)}
.hhead p{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.1vw,25px);color:rgba(246,241,231,.86);max-width:44ch;margin:26px auto 0}
.offer{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:56px}
.offer div{background:var(--paper);padding:clamp(26px,3vw,40px)}
.offer h3{font-family:var(--serif);font-weight:400;font-size:28px;color:var(--night);margin:0 0 10px;line-height:1.1}
.offer p{margin:0;color:#4a463e;font-size:16px}
@media(max-width:860px){.offer{grid-template-columns:1fr}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);margin-top:56px;counter-reset:s}
.steps div{border-top:1px solid var(--night);padding-top:22px}
.steps .n{font-family:var(--serif);font-size:44px;line-height:1;color:var(--gold-deep)}
.steps h3{font-family:var(--serif);font-weight:400;font-size:24px;color:var(--night);margin:14px 0 8px}
.steps p{margin:0;color:#4a463e;font-size:15.5px}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.note-box{border:1px solid var(--line);background:#fff;padding:clamp(26px,3vw,40px);display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;margin-top:56px}
.note-box .ic{width:52px;height:52px;border:1px solid var(--gold-deep);transform:rotate(45deg)}
.note-box h3{font-family:var(--serif);font-weight:400;font-size:26px;color:var(--night);margin:0 0 8px}
.note-box p{margin:0;color:#4a463e;font-size:16px}
.hcta{position:relative;text-align:center;color:var(--ivory);overflow:hidden;background:radial-gradient(120% 120% at 50% 100%,var(--hbg) 0%,var(--hbg2) 100%)}
.hcta .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.4;mix-blend-mode:screen}
.hcta .in{position:relative;z-index:2}
.hcta h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.4vw,56px);margin:0}
.hcta h2 em{color:var(--hhi)}
.hcta p{color:rgba(246,241,231,.82);max-width:50ch;margin:20px auto 40px}
.others{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.others a{text-decoration:none;color:var(--night);border:1px solid var(--line);padding:26px 24px;background:#fff;transition:all .5s var(--ease)}
.others a b{display:block;font-family:var(--serif);font-weight:400;font-size:26px}
.others a small{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
.others a:hover{background:var(--night);color:var(--ivory)}
@media(max-width:700px){.others{grid-template-columns:1fr}}
.raga{display:grid;grid-template-columns:5fr 6fr;gap:clamp(30px,5vw,80px);align-items:center}
@media(max-width:860px){.raga{grid-template-columns:1fr}}
.living{position:relative;aspect-ratio:4/3;max-width:100%;background:radial-gradient(90% 80% at 50% 40%,#3a2140,#120a16);overflow:hidden;border:1px solid rgba(220,192,232,.3)}
.living svg{width:100%;height:100%}

/* ---------- v3b: branding details ---------- */
.wordmark{display:inline-flex;align-items:center;gap:14px}
.wordmark img{width:26px;height:26px;transition:filter .5s}
.hdr.solid .wordmark img{filter:brightness(.55) sepia(1) saturate(2.2) hue-rotate(5deg)}
.hdr nav a{white-space:nowrap}
.ftr .est{font-size:10.5px;letter-spacing:.5em;padding-left:.5em;text-transform:uppercase;color:var(--gold);margin-top:10px}
.ftr img{width:64px;height:64px}
.pmono{width:76px;height:76px;margin:0 auto 26px;display:block}
.lead{font-family:var(--serif);font-size:clamp(21px,2.2vw,26px);line-height:1.5;color:var(--night);margin:0 0 18px}
.lineage{gap:0}
.lineage .gen{display:grid;grid-template-columns:72px 1fr;gap:24px;align-items:center;padding:18px 0;position:relative}
.lineage .gen::before{content:"";position:absolute;left:35px;top:84px;bottom:-8px;width:1px;background:linear-gradient(var(--gold),transparent)}
.lineage .gen:last-child::before{display:none}
.lineage .gm{width:72px;height:72px}
.lineage .gn{font-family:var(--serif);font-style:italic;color:var(--gold-deep);font-size:18px}
.lineage b{font-size:clamp(24px,2.4vw,30px)}
.house .mono{width:58px;height:58px}
.hdr .l,.hdr .r{gap:clamp(14px,1.8vw,30px)}
.hdr a{font-size:11px;letter-spacing:.26em}
.heritage h2{margin-top:0}

/* ---------- v4: entrance gate ---------- */
.gate{display:none}
html.gated{overflow:hidden}
html.gated .gate{display:block;position:fixed;inset:0;z-index:40;color:var(--ivory)}
html.gated .hdr{z-index:45;background:transparent!important;border-color:transparent!important;color:var(--ivory)!important}
html.gated .mnav{z-index:50}
html.gated .hdr .wordmark{opacity:0;pointer-events:none}
.gate .leaf{position:absolute;inset:0;background:radial-gradient(130% 100% at 50% 0%,var(--night-2) 0%,var(--night) 55%,var(--night-3) 100%);transition:transform 1.9s cubic-bezier(.76,0,.18,1)}
.gate .leaf.l{clip-path:inset(0 50% 0 0)}
.gate .leaf.r{clip-path:inset(0 0 0 50%)}
.gate .leaf .deco{position:absolute;inset:0;width:100%;height:100%}
.gate .leaf .veil{position:absolute;inset:0;background:radial-gradient(46% 42% at 50% 52%,rgba(8,20,48,.92) 0%,rgba(8,20,48,.78) 45%,rgba(8,22,51,.25) 80%,rgba(8,22,51,.55) 100%)}
.gate .leaf.l::after,.gate .leaf.r::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(transparent,rgba(226,200,143,.7) 20%,rgba(226,200,143,.7) 80%,transparent);opacity:0;transition:opacity .6s}
.gate .leaf.l::after{left:calc(50% - 1px)}.gate .leaf.r::after{left:50%}
.gate .seam{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:linear-gradient(transparent,var(--gold-2) 15%,#fff6dc 50%,var(--gold-2) 85%,transparent);transform:scaleY(0);transform-origin:50% 50%;box-shadow:0 0 14px 1px rgba(226,200,143,.35);z-index:3}
.gate .gin{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 20px;transition:opacity 1s var(--ease),filter 1s var(--ease),transform 1.2s var(--ease)}
.gate .crest{width:clamp(78px,10vw,112px);height:auto;filter:brightness(1.5) drop-shadow(0 0 18px rgba(226,200,143,.25));margin:0 auto 34px;opacity:0;animation:rise 2.2s var(--ease) .3s forwards}
.gate .est{font-size:12.5px;letter-spacing:.6em;text-transform:uppercase;color:var(--gold-2);padding-left:.62em;opacity:0;animation:rise 2s var(--ease) .9s forwards}
.gate .wm{font-family:var(--sans);font-weight:300;text-transform:uppercase;font-size:clamp(40px,8.4vw,108px);letter-spacing:.42em;padding-left:.42em;margin:.32em 0 0;line-height:1;opacity:0;animation:rise 2.4s var(--ease) 1.2s forwards;transition:letter-spacing 1.4s var(--ease)}
.gate .tag{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,30px);color:#fbf6ea;margin:30px 0 0;opacity:0;animation:rise 2s var(--ease) 1.9s forwards}
.gate .sub2{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-2);margin-top:22px;padding-left:.55em;opacity:0;animation:rise 2s var(--ease) 2.1s forwards}
.btn.enter{min-width:200px;justify-content:center;letter-spacing:.5em;padding-left:calc(2em + .5em);position:relative;overflow:hidden;cursor:pointer;font-family:var(--sans);font-size:11.5px;text-transform:uppercase}
.gate .btn.enter{margin-top:48px;opacity:0;animation:rise 2s var(--ease) 2.5s forwards}
.btn.enter::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(90deg,transparent,rgba(255,240,205,.35),transparent);transform:skewX(-20deg);animation:glint 4.5s var(--ease) 3.5s infinite}
@keyframes glint{0%{left:-60%}35%,100%{left:130%}}
/* opening sequence */
html.opening .gate .wm{letter-spacing:1.1em}
html.opening .gate .gin{opacity:0;filter:blur(6px);transform:scale(1.04)}
html.opening .gate .seam{animation:seam 1.1s cubic-bezier(.7,0,.2,1) .35s forwards}
@keyframes seam{to{transform:scaleY(1)}}
html.parting .gate .leaf.l{transform:translateX(-52%)}
html.parting .gate .leaf.r{transform:translateX(52%)}
html.parting .gate .leaf::after{opacity:1}
html.parting .gate .seam{animation:none;transform:scaleY(1);opacity:0;transition:opacity 1.2s ease .2s}
@media (prefers-reduced-motion:reduce){.gate .leaf,.gate .gin{transition:opacity .4s}.gate *{animation:none!important;opacity:1}html.parting .gate{opacity:0;transition:opacity .4s}}

/* ---------- v4: Sans Souci ---------- */
.sans{background:radial-gradient(120% 120% at 30% 40%,var(--night-2),var(--night-3));color:var(--ivory)}
.sans-in{display:grid;grid-template-columns:7fr 5fr;gap:clamp(30px,5vw,80px);align-items:center}
.sans .kicker{color:var(--gold)}
.sans .display{color:var(--ivory)}.sans .display em{color:var(--gold-2)}
.sans .lead{color:#fbf6ea}.sans .body-l{color:rgba(246,241,231,.8)}
.sketch{margin:0}
.sketch img{width:100%;height:auto;display:block}
.sketch figcaption{margin-top:14px;font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);text-align:center}
@media(max-width:900px){.sans-in{grid-template-columns:1fr}}

/* ---------- v4: house landing pages ---------- */
.hhead{min-height:88svh;display:flex;align-items:center;justify-content:center}
.hhead .room{font-size:10.5px;letter-spacing:.5em;text-transform:uppercase;color:rgba(246,241,231,.6);margin:0 auto 18px;font-family:var(--sans);font-style:normal}
.hhead h1{opacity:0;animation:rise 2s var(--ease) .4s forwards}
.hhead img{opacity:0;animation:rise 2s var(--ease) .1s forwards;filter:drop-shadow(0 0 16px rgba(226,200,143,.25))}
.hhead p{opacity:0;animation:rise 2s var(--ease) .9s forwards}
.hhead .cue{position:absolute;bottom:30px;left:50%;width:1px;height:56px;margin-left:-.5px;z-index:2;background:linear-gradient(var(--hhi),transparent);animation:drip 2.8s var(--ease) infinite}
.drawband{position:relative;overflow:hidden;color:var(--ivory);background:radial-gradient(110% 120% at 20% 50%,var(--hbg) 0%,var(--hbg2) 100%);padding:clamp(80px,10vw,140px) 0}
.drawband .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.18;mix-blend-mode:screen}
.drawin{position:relative;z-index:2;display:grid;grid-template-columns:6fr 5fr;gap:clamp(36px,6vw,96px);align-items:center}
.plate{position:relative;margin:0;padding:clamp(26px,4vw,48px);border:1px solid rgba(226,200,143,.28);background:rgba(0,0,0,.18)}
.plate img{width:100%;height:auto;display:block;max-height:520px;object-fit:contain}
.plate figcaption{margin-top:18px;padding-top:14px;border-top:1px solid rgba(226,200,143,.22);font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--hhi);display:flex;justify-content:space-between}
.plate figcaption::after{content:"Hemchand";letter-spacing:.34em;opacity:.6}
.plate .tick{position:absolute;width:14px;height:14px;border-color:var(--hhi);border-style:solid;border-width:0}
.plate .tl{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}.plate .tr{top:-1px;right:-1px;border-top-width:1px;border-right-width:1px}
.plate .bl{bottom:-1px;left:-1px;border-bottom-width:1px;border-left-width:1px}.plate .br{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}
.drawband .kicker{color:var(--hhi)}
.drawband h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4.4vw,58px);line-height:1.05;margin:0 0 26px}
.drawband h2 em{color:var(--hhi)}
.drawband p{color:rgba(246,241,231,.82);font-size:17px;max-width:46ch}
@media(max-width:900px){.drawin{grid-template-columns:1fr}}
.house-page .offer div{transition:background .6s var(--ease)}

/* ---------- v5: full-colour landings, door buttons, luxe buttons ---------- */
.hhead{min-height:100svh;padding-top:120px;padding-bottom:120px}
.hhead .btn.more{position:absolute;left:50%;bottom:clamp(36px,6vh,64px);transform:translateX(-50%);z-index:3;white-space:nowrap;opacity:0;animation:fadein 1.6s var(--ease) 1.6s forwards}
.hhead .btn.more::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:34px;margin-top:6px;background:linear-gradient(var(--hhi),transparent);animation:drip 2.8s var(--ease) infinite}
@keyframes fadein{to{opacity:1}}
/* luxe buttons: double deco frame */
.btn.light{border:1px solid rgba(226,200,143,.75);outline:1px solid rgba(226,200,143,.32);outline-offset:5px;background:rgba(8,20,48,.35);color:#fbf6ea;padding:18px 38px;transition:all .6s var(--ease)}
.btn.light:hover{background:linear-gradient(135deg,#e2c88f,#c4a468 55%,#8f7037);color:#0d1f47;border-color:#e2c88f;outline-color:rgba(226,200,143,.8);outline-offset:8px}
body[class^="h-"] .btn.light{background:rgba(0,0,0,.22)}
/* the other rooms: inverted Sans Souci door frames */
.rooms{background:radial-gradient(120% 110% at 50% 0%,var(--hbg,#12295a) 0%,var(--hbg2,#081633) 100%);padding:clamp(80px,10vw,130px) 0}
.rooms .kicker{color:var(--gold)}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,260px));justify-content:center;gap:clamp(18px,3vw,44px);margin-top:48px}
.door{position:relative;display:block;aspect-ratio:3/4;text-decoration:none;color:#fbf6ea;--df:#12295a;--dl:#c4a468}
.door.natural{--df:#0f4430}.door.lab{--df:#5e470f}.door.art{--df:#14306a}.door.rooh{--df:#2c1733}
.door svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.door .fill{fill:var(--df);transition:fill .6s var(--ease)}
.door .st path{fill:none;stroke:var(--dl);stroke-width:1;opacity:.85;transition:opacity .6s,stroke .6s}
.door .st path:nth-child(2){opacity:.55}.door .st path:nth-child(3){opacity:.3}
.door .dc{position:absolute;inset:30% 12% 10%;display:flex;flex-direction:column;align-items:center;text-align:center}
.door img{width:46px;height:46px;margin-bottom:18px;transition:transform .8s var(--ease)}
.door small{font-size:9.5px;letter-spacing:.36em;text-transform:uppercase;color:rgba(246,241,231,.62)}
.door b{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,34px);margin-top:8px;line-height:1.1}
.door i{margin-top:auto;font-style:normal;font-size:10px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-2);padding-left:.5em;opacity:.0;transform:translateY(6px);transition:all .6s var(--ease)}
.door:hover .st path{stroke:#f0d99b;opacity:1}
.door:hover img{transform:translateY(-4px)}
.door:hover i{opacity:1;transform:none}
.door::after{content:"";position:absolute;left:6.6%;right:6.6%;bottom:0;height:1px;background:var(--dl)}
@media(max-width:760px){.doors{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.door small{display:none}.door img{width:32px;height:32px}.door .dc{inset:28% 8% 8%}.door i{opacity:1;letter-spacing:.3em}}
@media(max-width:760px){.door b{font-size:22px}}

/* ---------- v6: arched house cards (home) ---------- */
.house.arch{clip-path:polygon(0 100%,0 20%,20% 0,80% 0,100% 20%,100% 100%);padding-top:clamp(60px,6vw,90px)}
.house.arch::before{display:none}
.house .fr{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.house .fr path{fill:none;stroke:var(--hi);stroke-width:1;opacity:.75;transition:opacity .8s,stroke .8s}
.house .fr path:nth-child(2){opacity:.45}.house .fr path:nth-child(3){opacity:.22}
.house.arch:hover .fr path{opacity:1;stroke:#f0d99b}
.house.arch .mono{margin-top:4px}

/* ---------- v6: the drawing book ---------- */
.gallery{position:relative;overflow:hidden;color:var(--ivory);background:radial-gradient(120% 80% at 50% 0%,var(--hbg) 0%,var(--hbg2) 100%);padding:clamp(90px,11vw,150px) 0}
.gallery .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.14;mix-blend-mode:screen}
.gallery .wrap{position:relative;z-index:2}
.gallery .kicker{color:var(--hhi)}
.gallery .display{color:var(--ivory);text-align:center}.gallery .display em{color:var(--hhi)}
.gallery .glede{text-align:center;max-width:58ch;margin:22px auto 0;color:rgba(246,241,231,.78);font-size:16.5px}
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:44px auto 40px}
.tabs button{font-family:var(--sans);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:rgba(246,241,231,.72);background:transparent;border:1px solid rgba(226,200,143,.25);padding:12px 20px;cursor:pointer;transition:all .5s var(--ease)}
.tabs button:hover{color:var(--ivory);border-color:rgba(226,200,143,.6)}
.tabs button[aria-selected="true"]{color:#0d1f47;background:linear-gradient(135deg,#e2c88f,#c4a468 60%,#a3843f);border-color:#e2c88f}
.pieces{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px)}
.piece{position:relative;display:block;text-decoration:none;color:var(--ivory);border:1px solid rgba(226,200,143,.2);background:rgba(0,0,0,.2);padding:14px 14px 0;transition:border-color .6s var(--ease),background .6s var(--ease),transform .8s var(--ease)}
.piece[hidden]{display:none}
.piece img{display:block;width:100%;height:auto}
.piece .tick{position:absolute;width:12px;height:12px;border:0 solid var(--hhi)}
.piece .tl{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}.piece .tr{top:-1px;right:-1px;border-top-width:1px;border-right-width:1px}
.piece .bl{bottom:-1px;left:-1px;border-bottom-width:1px;border-left-width:1px}.piece .br{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}
.piece .pt{display:block;padding:16px 10px 6px}
.piece .pt small{font-size:9.5px;letter-spacing:.34em;color:var(--hhi)}
.piece .pt b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(22px,2vw,27px);margin:4px 0 4px;line-height:1.15}
.piece .pt em{font-style:normal;font-size:12.5px;color:rgba(246,241,231,.6)}
.piece .ask{display:flex;align-items:center;gap:10px;margin:10px -14px 0;padding:14px 24px;border-top:1px solid rgba(226,200,143,.16);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--hhi);transition:all .5s var(--ease)}
.piece .ask .wa-ico{width:15px;height:15px}
.piece:hover{border-color:rgba(226,200,143,.6);background:rgba(0,0,0,.32)}
.piece:hover .ask{background:linear-gradient(135deg,#e2c88f,#c4a468 60%,#a3843f);color:#0d1f47}
@media(max-width:760px){.pieces{grid-template-columns:1fr}.tabs button{padding:10px 12px;letter-spacing:.2em}}

/* ---------- v7: every button wears the Sans Souci window frame ---------- */
.framed{position:relative;isolation:isolate;border-color:transparent!important;outline:none!important;background:transparent!important;
  --bfo:rgba(226,200,143,.42);--bfi:rgba(226,200,143,.85);--bff:rgba(8,20,48,.5);--bffh:#d9bd80;--bfih:#f0d99b;--bfoh:rgba(240,217,155,.9);--fgh:#0d1f47}
.framed>.bf{position:absolute;overflow:visible;pointer-events:none;z-index:-1}
.bf .bo{fill:none;stroke:var(--bfo);stroke-width:1;transition:stroke .6s var(--ease)}
.bf .bi{fill:var(--bff);stroke:var(--bfi);stroke-width:1;transition:fill .6s var(--ease),stroke .6s var(--ease)}
.framed:hover{color:var(--fgh)!important}
.framed:hover .bi{fill:var(--bffh);stroke:var(--bfih)}
.framed:hover .bo{stroke:var(--bfoh)}
body[class^="h-"] .framed{--bff:rgba(0,0,0,.25)}
.wa-btn.framed{--bfo:rgba(143,112,55,.4);--bfi:#b9a274;--bff:#fff;--bffh:#0d1f47;--bfih:#c4a468;--bfoh:#c4a468;--fgh:#fbf6ea}
.wa-btn.framed:hover small{color:var(--gold-2)}
.wa-btn.main.framed{--bff:#0d1f47;--bfi:#c4a468;--bfo:rgba(143,112,55,.55);--bffh:#8f7037;--bfih:#e2c88f;color:var(--ivory)}
.wa-panel{gap:24px!important}
.tabs{gap:16px}
.tabs button.framed{--bff:rgba(0,0,0,.18)}
.tabs button.framed[aria-selected="true"]{color:#0d1f47;--bff:#d9bd80;--bfi:#f0d99b}
.hhead .btn.light.more.framed{position:absolute}
.btn.enter.framed{overflow:visible}.btn.enter.framed::after{display:none}
.lineage .gen2 .gms{position:relative;display:block;width:72px;height:72px}
.lineage .gen2 .gms .gm{position:absolute;width:46px;height:46px;top:13px}
.lineage .gen2 .gms .gm:first-child{left:-4px}.lineage .gen2 .gms .gm+.gm{left:30px}
.lineage .gen2 b i{font-style:italic;color:var(--gold-deep)}

.film{position:relative;margin:0;padding:12px;border:1px solid rgba(220,192,232,.3);background:#0e0811}
.film video{display:block;width:100%;height:auto;max-height:78vh;background:#000}
.film figcaption{margin-top:12px;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:#a58bb3;text-align:center}
.film .tick{position:absolute;width:12px;height:12px;border:0 solid #dcc0e8}
.film .tl{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}.film .tr{top:-1px;right:-1px;border-top-width:1px;border-right-width:1px}
.film .bl{bottom:-1px;left:-1px;border-bottom-width:1px;border-left-width:1px}.film .br{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}
/* arched cards: pixel-true chamfer so frames never crowd the text */
.house.arch{clip-path:polygon(0 100%,0 64px,64px 0,calc(100% - 64px) 0,100% 64px,100% 100%);padding:clamp(70px,7vw,96px) 46px 46px}
@media(max-width:1100px){.houses{grid-template-columns:repeat(2,minmax(0,340px));justify-content:center}}
@media(max-width:600px){.houses{grid-template-columns:minmax(0,360px)}.house.arch{aspect-ratio:3/3.6}}

/* ---------- v8: one stable colour per page, no fades ---------- */
body.h-natural{--hbg:#13402e;--hbg2:#13402e;--hhi:#d6b97a}
body.h-lab{--hbg:#4f3c10;--hbg2:#4f3c10;--hhi:#f0d99b}
body.h-art{--hbg:#142c5e;--hbg2:#142c5e;--hhi:#e2c88f}
body.h-rooh{--hbg:#2a1631;--hbg2:#2a1631;--hhi:#dcc0e8}
.hero,.gate .leaf,.phead,.band,.heritage,.sans{background:#0d1f47!important}
.hhead,.drawband,.gallery,.hcta,.rooms{background:var(--hbg,#0d1f47)!important}
.veil,.hero .veil,.gate .leaf .veil{display:none!important}
.hero .deco,.gate .leaf .deco{opacity:.5}
.house{background:var(--bg)!important}
.house::after{display:none}
.plate,.piece{background:transparent!important}
.piece:hover{background:rgba(255,255,255,.04)!important}
.door .fill{fill:var(--hbg,#0d1f47)!important}
.door .st path{stroke:var(--hhi,#c4a468)}
.film{background:transparent}
/* drawing book: fold-out categories */
.cats{margin-top:48px;border-top:1px solid rgba(226,200,143,.28)}
.cat{border-bottom:1px solid rgba(226,200,143,.28)}
.cat summary{list-style:none;display:flex;align-items:center;gap:20px;padding:26px 6px;cursor:pointer}
.cat summary::-webkit-details-marker{display:none}
.cat .ct{font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);color:var(--ivory)}
.cat .cn{font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--hhi);margin-left:auto}
.cat .pm{position:relative;width:34px;height:34px;flex:none;border:1px solid rgba(226,200,143,.55);transform:rotate(45deg);transition:transform .6s var(--ease),background .4s}
.cat .pm::before,.cat .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1px;background:var(--hhi);transform:translate(-50%,-50%) rotate(-45deg)}
.cat .pm::after{transform:translate(-50%,-50%) rotate(45deg);transition:opacity .4s}
.cat[open] .pm{transform:rotate(225deg)}
.cat[open] .pm::after{opacity:0}
.cat summary:hover .pm{background:rgba(226,200,143,.12)}
.cat .pieces{padding:10px 0 46px}
.cat summary:focus-visible{outline:1px solid var(--hhi);outline-offset:4px}
.goldbar{background:#c4a468!important;height:4px}
.steps-sec{padding-top:clamp(80px,10vw,130px)!important}
.display{overflow-wrap:break-word}
.steps-sec .display{font-size:clamp(34px,5vw,64px)}

/* ---------- v9: one colour per screen: every section fills the viewport ---------- */
html{scroll-snap-type:y proximity}
html.gated{scroll-snap-type:none}
main>section{min-height:100svh;display:flex;flex-direction:column;justify-content:center;scroll-snap-align:start;box-sizing:border-box;padding-top:max(110px,var(--sp,0px))!important;padding-bottom:clamp(70px,9vw,120px)!important}
main>section>.wrap,main>section>.in,main>section>.wrap.in{width:100%}
main>section.hero,main>section.hhead,main>section.phead{padding-top:0!important;padding-bottom:0!important;height:100svh;min-height:100svh}
main>.goldbar{display:none}
.ftr{scroll-snap-align:end}
@media(max-width:700px){main>section{min-height:auto;scroll-snap-align:none}main>section.hero,main>section.hhead,main>section.phead{min-height:100svh}html{scroll-snap-type:none}}
/* Nitin & Vasanti: two monograms stacked, never overlapping */
.lineage .gen2 .gms{position:static;display:flex;flex-direction:column;align-items:center;gap:8px;width:72px;height:auto}
.lineage .gen2 .gms .gm{position:static;width:54px;height:54px}
.lineage .gen2::before{top:132px!important}

/* ---------- v10: motion ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease) var(--d,0ms),transform 1.3s var(--ease) var(--d,0ms)}
.rv.on{opacity:1;transform:none}
.kicker.rv::before,.kicker.rv::after{transform:scaleX(0);transform-origin:right;transition:transform 1.2s var(--ease) calc(var(--d,0ms) + 250ms)}
.kicker.rv.on::before,.kicker.rv.on::after{transform:scaleX(1)}
.photo.rv,.plate.rv,.sketch.rv,.film.rv{transform:translateY(18px) scale(.985)}
.photo.rv.on,.plate.rv.on,.sketch.rv.on,.film.rv.on{transform:none}
.house.rv,.door.rv{transform:translateY(40px)}
.house.rv.on,.door.rv.on{transform:none;transition:opacity 1.1s var(--ease) var(--d,0ms),transform 1.4s var(--ease) var(--d,0ms)}
.house.arch.on:hover .mono{transform:translateY(-6px)}
/* Sans Souci: line drawing slowly comes into light */
.sketch img{transition:filter 2.4s var(--ease)}
.sketch.rv img{filter:brightness(.4)}.sketch.rv.on img{filter:none}
/* drawing book: plates float in when a category opens */
.cat[open] .piece{animation:plateIn .9s var(--ease) both}
.cat[open] .piece:nth-child(2){animation-delay:.08s}.cat[open] .piece:nth-child(3){animation-delay:.16s}.cat[open] .piece:nth-child(4){animation-delay:.24s}
@keyframes plateIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.piece img{transition:transform 1.2s var(--ease)}
.piece:hover img{transform:scale(1.025)}
/* hero pattern: slow breathing drift */
.hhead .pat,.phead .pat{animation:drift 60s linear infinite}
@keyframes drift{from{background-position:center 0}to{background-position:center -1040px}}
@media (prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important}.hhead .pat,.phead .pat,.cat[open] .piece{animation:none}}

/* ---------- legal pages ---------- */
body.light .hdr{background:rgba(251,248,242,.97);color:var(--night);border-bottom:1px solid var(--line)}
main>section.legalhead,main>section.legalbody{min-height:0!important;display:block;scroll-snap-align:none}
html:has(body.light){scroll-snap-type:none}
.legalhead{padding:clamp(150px,16vw,200px) 0 40px!important;background:var(--paper)}
.legalhead h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,76px);line-height:1.04;margin:0;color:var(--night)}
.legalhead h1 em{color:var(--gold-deep)}
.legalhead .upd{margin-top:18px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.legalbody{padding:10px 0 clamp(90px,10vw,140px)!important;background:var(--paper)}
.legal{max-width:68ch;color:#3d3a33;font-size:16.5px;line-height:1.75}
.legal .lede{font-family:var(--serif);font-size:clamp(22px,2.2vw,27px);line-height:1.45;color:var(--night);border-left:1px solid var(--gold);padding-left:24px;margin:0 0 50px}
.legal h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.4vw,32px);color:var(--night);margin:52px 0 14px;padding-top:26px;border-top:1px solid var(--line)}
.legal h3{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin:28px 0 8px}
.legal ul{padding-left:0;list-style:none}
.legal li{position:relative;padding-left:26px;margin:8px 0}
.legal li::before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;border:1px solid var(--gold-deep);transform:rotate(45deg)}
.legal a{color:var(--gold-deep)}
.ftr .legalnav{margin-top:26px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.ftr .legalnav a{color:inherit}

/* ---------- brand navy (home, story, appointments, footer); Art keeps its own blue ---------- */
:root{--night:#0b1631;--night-2:#0b1631;--night-3:#0b1631}
.hero,.gate .leaf,.phead,.band,.heritage,.sans,.ftr{background:#0b1631!important}
.house.arch:not(.natural):not(.lab):not(.art):not(.rooh){--bg:#0b1631}
/* phone polish */
@media(max-width:520px){
  .hero .sub2,.gate .sub2{letter-spacing:.32em;font-size:10.5px;white-space:nowrap}
  .hero .est,.gate .est{letter-spacing:.42em}
  .door b{font-size:17px!important;line-height:1.15}
  .door i{display:none}
  .door .dc{inset:30% 6% 8%}
  .ftr .legalnav a{white-space:nowrap}
  .ftr .legalnav{line-height:2.2}
  .cat .cn{display:none}
}
.ftr .legalnav a{white-space:nowrap}

/* ---------- 404: a closed door at Sans Souci ---------- */
main>section.nf{background:#0b1631;color:var(--ivory);position:relative;overflow:hidden;min-height:100svh;padding:120px 20px 80px!important}
.nf .pat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.22;animation:drift 80s linear infinite}
.nfin{position:relative;z-index:2;display:grid;grid-template-columns:minmax(200px,340px) minmax(0,620px);gap:clamp(30px,6vw,90px);align-items:center;justify-content:center;max-width:1180px;margin:0 auto;width:100%}
.nfdoor{width:100%;height:auto;overflow:visible}
.nfdoor path{stroke-dasharray:1;stroke-dashoffset:1;opacity:var(--o);animation:nfdraw 2.6s cubic-bezier(.65,0,.25,1) var(--t) forwards}
@keyframes nfdraw{to{stroke-dashoffset:0}}
.nfdoor .knob{fill:#c4a468;opacity:0;animation:fadein 1s ease 2.4s forwards}
.nfdoor .glow{opacity:0;animation:leak 4.5s ease-in-out 2.6s infinite}
@keyframes leak{0%,100%{opacity:.15}50%{opacity:.75}}
.nftext .kicker{color:var(--gold);justify-content:flex-start}
.nftext .kicker.c::before{display:none}
.nftext h1{font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,92px);line-height:1;margin:0 0 22px}
.nftext h1 em{color:var(--gold-2)}
.nfp{font-family:var(--serif);font-style:italic;font-size:clamp(19px,1.9vw,24px);color:rgba(246,241,231,.8);max-width:40ch;margin:0}
.nfdoors{grid-template-columns:repeat(4,minmax(0,120px))!important;justify-content:flex-start!important;gap:14px!important;margin-top:40px!important}
.nfdoors .door b{font-size:19px}
.nfdoors .door small{display:none}
.nfdoors .door .fill{fill:#0b1631!important}
.nfdoors .door .st path{stroke:#c4a468}
.nfhome{margin-top:44px}
.nftext>*{opacity:0;animation:rise 1.6s var(--ease) forwards}
.nftext>*:nth-child(1){animation-delay:.6s}.nftext>*:nth-child(2){animation-delay:.9s}.nftext>*:nth-child(3){animation-delay:1.2s}.nftext>*:nth-child(4){animation-delay:1.5s}.nftext>*:nth-child(5){animation-delay:1.8s}
@media(max-width:820px){.nfin{grid-template-columns:1fr;text-align:center}.nfdoor{max-width:200px;margin:0 auto}.nftext .kicker{justify-content:center}.nfp{margin:0 auto}.nfdoors{justify-content:center!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media (prefers-reduced-motion:reduce){.nfdoor path{animation:none;stroke-dashoffset:0}.nfdoor .knob,.nftext>*{animation:none;opacity:1}}
@media(max-width:520px){.nfdoors .door b{font-size:13px!important}.nfdoors{gap:8px!important}}

/* ---------- menu with character (navy only, gold detail) ---------- */
.mnav{background:#0b1631!important;gap:0;overflow-y:auto;padding:90px 20px 40px;justify-content:flex-start}
.mnav .mpat{position:absolute;inset:0;background:url(deco.svg) center top/200px 1040px repeat-x;opacity:.16;pointer-events:none}
.mnav>*{position:relative}
.mnav .x{position:absolute!important;top:20px;right:20px;padding:10px 18px!important;font-size:10px!important;letter-spacing:.34em}
.mnav .mmono{width:52px;height:52px;margin:6px auto 22px;opacity:0;filter:drop-shadow(0 0 14px rgba(226,200,143,.25))}
.mnav .mlist{display:flex;flex-direction:column;align-items:center;margin:auto 0}
.mnav .mlist a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ivory);padding:6px 10px;opacity:0;transform:translateY(14px)}
.mnav .mlist a span{font-family:var(--serif);font-size:clamp(28px,7.5vw,38px);line-height:1.15;transition:color .4s,letter-spacing .6s var(--ease)}
.mnav .mlist a small{font-size:9.5px;letter-spacing:.36em;text-transform:uppercase;color:rgba(226,200,143,.6);margin-top:4px}
.mnav .mlist a:hover span,.mnav .mlist a:focus-visible span{color:var(--gold-2);letter-spacing:.02em}
.mnav .mlist a[aria-current="page"] span{color:var(--gold-2);font-style:italic}
.mnav .mlist a[aria-current="page"] small{color:var(--gold-2)}
.mnav .md{display:block;width:6px;height:6px;border:1px solid rgba(226,200,143,.55);transform:rotate(45deg);margin:10px auto;opacity:0}
.mnav .mfoot{margin:26px 0 0;font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:rgba(246,241,231,.45);text-align:center;opacity:0}
.mnav .mfoot i{display:inline-block;width:5px;height:5px;border:1px solid rgba(226,200,143,.6);transform:rotate(45deg);margin:0 10px 1px}
.mnav.open .mmono{animation:fadein .8s ease .05s forwards}
.mnav.open .mlist a{animation:menuIn .7s var(--ease) calc(.08s + var(--i) * 60ms) forwards}
.mnav.open .md{animation:fadein .6s ease .5s forwards}
.mnav.open .mfoot{animation:fadein 1s ease .7s forwards}
@keyframes menuIn{to{opacity:1;transform:none}}
@media(min-height:760px){.mnav .md{margin:14px auto}}
@media (prefers-reduced-motion:reduce){.mnav .mlist a,.mnav .md,.mnav .mfoot,.mnav .mmono{animation:none!important;opacity:1;transform:none}}
.mnav .mlist a small{font-family:var(--sans)}
@media(max-height:720px){.mnav .md{margin:5px auto}.mnav .mlist a span{font-size:27px}.mnav .mmono{width:40px;height:40px;margin-bottom:10px}}
.section .src{font-size:12px;letter-spacing:.04em;color:var(--muted);margin-top:22px}.section .src a{color:var(--gold-deep)}
