@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/figtree-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/figtree-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#F3EEE7; --band:#E9E3DA; --paper:#F9F7F3; --ink:#313131; --ink-2:#55524D; --muted:#8C867D; --line:#D3CBBF;
  --serif:"Newsreader","Lyon Text","Georgia","Times New Roman",serif;
  --sans:"Figtree","Whitney","Helvetica Neue",Arial,sans-serif;
  --g:clamp(12px,1vw,16px);            /* outer gutter, Aman-tight */
  --ease:cubic-bezier(.25,.46,.45,.94);
  --slow:cubic-bezier(.19,1,.22,1);
  --hh:72px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-weight:400;font-size:15px;line-height:1.55;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure{margin:0;font-weight:400}
button{font:inherit;color:inherit}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:200;background:var(--paper);padding:8px 12px}

/* type */
.kicker{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.t-xl{font-size:clamp(26px,2.2vw,32px);line-height:1.2;letter-spacing:.02em}
.t-l{font-size:clamp(19px,1.45vw,21px);line-height:1.3;letter-spacing:.05em}
.t-m{font-size:16px;line-height:1.35;letter-spacing:.06em}
.txt{font-size:14px;line-height:1.6;letter-spacing:.055em;color:var(--ink-2)}
.it{font-style:italic}
.more{display:inline-block;margin-top:22px;font-size:13px;letter-spacing:.06em;padding-bottom:7px;position:relative}
.more::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--ink);transform-origin:left;transition:transform .6s var(--slow)}
.more:hover::after{transform:scaleX(.45)}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;padding:12px 34px;border:1px solid var(--ink);cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease)}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;height:var(--hh);z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--g);background:var(--bg);transition:transform .6s var(--slow),background .4s}
.hdr.hide{transform:translateY(-100%)}
.hdr .l{display:flex;align-items:center;gap:28px}
.menu-btn{display:flex;align-items:center;gap:12px;background:none;border:0;cursor:pointer;padding:6px 0;font-family:var(--sans);font-size:12px;letter-spacing:.06em}
.menu-btn i{display:block;width:16px;height:9px;position:relative}
.menu-btn i::before,.menu-btn i::after,.menu-btn i b{content:"";position:absolute;left:0;right:0;height:1px;background:var(--ink)}
.menu-btn i::before{top:0}.menu-btn i b{top:4px}.menu-btn i::after{bottom:0}
.hdr .logo{display:block;width:clamp(150px,13vw,190px);color:var(--ink)}
.hdr .logo svg{width:100%;height:auto;display:block}
.hdr .r{display:flex;justify-content:flex-end;align-items:center;gap:26px}
.hdr .r .ln{font-size:13px;letter-spacing:.05em;padding:6px 0;border-bottom:1px solid var(--ink);min-width:86px}
.hdr .r .btn{padding:11px 30px}
main{padding-top:var(--hh)}

/* sub nav (project pages) */
.subnav{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid transparent;display:flex;justify-content:center;gap:clamp(14px,1.8vw,26px);padding:12px var(--g);overflow-x:auto;scrollbar-width:none;font-family:var(--sans);font-size:11px;letter-spacing:.05em;white-space:nowrap;transition:top .6s var(--slow)}
.subnav::-webkit-scrollbar{display:none}
.subnav .home{font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:9.5px;display:flex;align-items:center;gap:8px}
.subnav a{color:var(--ink-2);transition:color .3s}.subnav a:hover{color:var(--ink)}
.hdr:not(.hide)~main .subnav{top:var(--hh)}

/* menu drawer */
.drawer{position:fixed;inset:0;z-index:90;pointer-events:none}
.drawer .scrim{position:absolute;inset:0;background:rgba(49,49,49,.32);opacity:0;transition:opacity .6s var(--ease)}
.drawer .panel{position:absolute;top:0;left:0;bottom:0;width:min(460px,100%);background:var(--paper);transform:translateX(-100%);transition:transform .8s var(--slow);display:flex;flex-direction:column;padding:22px clamp(22px,3vw,44px) 34px;overflow-y:auto}
.drawer.open{pointer-events:auto}.drawer.open .scrim{opacity:1}.drawer.open .panel{transform:none}
.drawer .close{align-self:flex-start;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:.06em;display:flex;gap:12px;align-items:center;padding:6px 0}
.drawer .close i{width:14px;height:14px;position:relative;display:block}
.drawer .close i::before,.drawer .close i::after{content:"";position:absolute;left:-2px;right:-2px;top:50%;height:1px;background:var(--ink);transform:rotate(45deg)}
.drawer .close i::after{transform:rotate(-45deg)}
.drawer nav{margin-top:clamp(48px,9vh,90px);display:flex;flex-direction:column;gap:6px}
.drawer nav a{font-size:clamp(26px,2.4vw,32px);letter-spacing:.02em;line-height:1.35;opacity:0;transform:translateX(-14px);transition:opacity .6s var(--ease),transform .8s var(--slow),color .3s}
.drawer nav a:hover,.drawer nav a[aria-current]{color:var(--muted)}
.drawer.open nav a{opacity:1;transform:none}
.drawer.open nav a:nth-child(2){transition-delay:.06s}.drawer.open nav a:nth-child(3){transition-delay:.12s}.drawer.open nav a:nth-child(4){transition-delay:.18s}.drawer.open nav a:nth-child(5){transition-delay:.24s}.drawer.open nav a:nth-child(6){transition-delay:.3s}
.drawer .sub{margin-top:44px;padding-top:26px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.drawer .sub a{font-size:14px;color:var(--ink-2)}
.drawer .foot{margin-top:auto;padding-top:40px;font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:var(--muted)}
body.locked{overflow:hidden}

/* hero (inset, like Aman) */
.hero{padding:0 var(--g)}
.hero .media{position:relative;height:calc(100svh - var(--hh) - 72px);min-height:420px;overflow:hidden;background:#2a2622}
.hero .media video,.hero .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .media img{transform:scale(1.06);transition:transform 2.6s var(--slow)}
.hero.in .media img{transform:none}
.hero .ctl{position:absolute;right:16px;bottom:16px;z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.08);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.hero .ctl svg{width:11px;height:11px}
.hero-cap{padding:22px var(--g) 0}
.hero-cap .t-xl{margin-top:10px}

/* generic section spacing */
.sec{padding:clamp(80px,9vw,140px) var(--g) 0}
.sec.tight{padding-top:clamp(50px,6vw,80px)}
.band{background:var(--band);margin-top:clamp(80px,9vw,140px);padding-bottom:clamp(70px,8vw,120px)}
.band>.sec:first-child{padding-top:clamp(70px,8vw,120px)}

/* two-up (big + small) */
.duo{display:grid;grid-template-columns:2.06fr 1fr;gap:clamp(12px,1.4vw,22px);align-items:start}
.duo.rev{grid-template-columns:1fr 2.06fr}
.card .img{overflow:hidden;background:var(--band)}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--slow)}
.card:hover .img img{transform:scale(1.035)}
.card .meta{padding-top:16px}
.card .meta .t-l{margin-top:8px}
.card .meta .txt{margin-top:10px;max-width:46em}
.duo .card:first-child .img{aspect-ratio:1.7/1}
.duo .card:last-child .img{aspect-ratio:.83/1}
.duo.rev .card:first-child .img{aspect-ratio:.83/1}
.duo.rev .card:last-child .img{aspect-ratio:1.7/1}

/* carousel (Seasonal Experiences) */
.rail{display:grid;grid-template-columns:minmax(220px,1fr) 3fr;gap:clamp(20px,3vw,48px);align-items:start}
.rail .intro .txt{margin-top:18px;max-width:22em}
.rail .nav{display:flex;gap:10px;margin-top:30px}
.arrow{width:40px;height:40px;border:1px solid var(--line);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s,background .3s}
.arrow:hover{border-color:var(--ink)}
.arrow svg{width:14px;height:14px}
.arrow:disabled{opacity:.35;cursor:default}
.track{display:flex;gap:clamp(12px,1.4vw,22px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;margin-right:calc(-1*var(--g));padding-right:var(--g);scroll-behavior:smooth}
.track.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.track::-webkit-scrollbar{display:none}
.track .card{flex:0 0 clamp(220px,21vw,300px);scroll-snap-align:start;user-select:none}
.track .card .img{aspect-ratio:1/1.02}
.track .card img{pointer-events:none}
.track .card .t-m{margin-top:8px}
.track .card .txt{font-size:13px}
.prog{height:1px;background:var(--line);margin-top:36px;position:relative;max-width:560px;margin-left:auto;margin-right:auto}
.prog i{position:absolute;left:0;top:-.5px;height:2px;background:var(--ink);width:20%;transition:transform .4s var(--ease)}

/* trio */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,22px);margin-top:clamp(36px,4vw,56px)}
.trio .card .img{aspect-ratio:1/.92}
.h-center{text-align:center}

/* intro block centered */
.intro-c{max-width:640px;margin:0 auto;text-align:center}
.intro-c .t-xl{margin-top:12px}
.intro-c .txt{margin-top:22px}

/* coverflow (project) */
.flow{margin-top:clamp(50px,6vw,80px);position:relative}
.flow .track{align-items:center;margin:0;padding:0 var(--g);gap:clamp(14px,1.6vw,26px);scroll-snap-type:x mandatory}
.flow .track figure{flex:0 0 auto;scroll-snap-align:center;overflow:hidden}
.flow .track figure img{height:100%;width:auto;object-fit:cover}
.flow .s{height:clamp(150px,15vw,230px)}
.flow .m{height:clamp(200px,20vw,300px)}
.flow .l{height:clamp(240px,25vw,380px)}
.flow .nav{display:flex;justify-content:center;gap:10px;margin-top:28px}

/* split feature */
.split{display:grid;grid-template-columns:2.06fr 1fr;gap:clamp(20px,3vw,48px);align-items:end}
.split .img{aspect-ratio:1.55/1;overflow:hidden}
.split .img img{width:100%;height:100%;object-fit:cover}
.split .copy .t-l{margin-bottom:14px}
.split.rev{grid-template-columns:1fr 2.06fr}
.split.rev .copy{order:-1}

/* before/after */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,22px)}
.ba figure{position:relative;overflow:hidden}
.ba img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ba.sq img{aspect-ratio:1/1}
.ba .tag{position:absolute;left:14px;top:14px;background:var(--paper);font-family:var(--sans);font-size:9.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:7px 11px}
.ba figcaption{padding-top:12px}

.full .img{overflow:hidden}
.full img{width:100%}
.full figcaption{padding-top:12px;display:flex;gap:16px;align-items:baseline}

/* facts */
.facts{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(24px,5vw,72px);margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.facts div{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.facts span:last-child{font-size:14px;letter-spacing:.04em}

/* portfolio */
.filters{display:flex;justify-content:center;gap:clamp(16px,2.4vw,34px);margin-top:34px;flex-wrap:wrap}
.filters button{background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 0;color:var(--muted);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}
.filters button:hover{color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,4vw,60px) clamp(12px,1.4vw,22px);margin-top:clamp(40px,5vw,64px)}
.pgrid .card .img{aspect-ratio:.86/1}
.pgrid .card.hide{display:none}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(20px,3vw,48px);margin-top:clamp(40px,5vw,64px)}
.svc div{padding:28px 0 34px;border-top:1px solid var(--line)}
.svc .t-m{margin-top:10px}
.svc .txt{margin-top:10px}

/* contact */
.contact{display:grid;grid-template-columns:2fr 1fr;gap:clamp(30px,5vw,90px);margin-top:clamp(40px,5vw,64px);align-items:start}
.form{display:grid;grid-template-columns:1fr 1fr;gap:28px clamp(18px,2.4vw,34px)}
.field{display:flex;flex-direction:column;gap:6px}
.field>label,.field>.lbl{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.field input,.field select,.field textarea{font-family:var(--serif);font-size:15px;letter-spacing:.03em;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:9px 0;border-radius:0;outline:0;-webkit-appearance:none;appearance:none;transition:border-color .3s}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.field textarea{min-height:110px;resize:vertical}
.full-row{grid-column:1/-1}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chips label{cursor:pointer;position:relative}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:8px 14px;border:1px solid var(--line);font-size:13px;letter-spacing:.04em;transition:all .3s}
.chips input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chips input:focus-visible+span{outline:1px solid var(--ink);outline-offset:2px}
.form-note{font-size:13px;color:var(--muted)}
.aside .blk{padding:22px 0;border-top:1px solid var(--line)}
.aside .blk p{margin-top:8px;font-size:14px;color:var(--ink-2)}

/* footer */
.inspire{background:var(--paper);margin-top:clamp(90px,10vw,150px);padding:28px var(--g);display:grid;grid-template-columns:1fr 2fr 1fr;gap:24px;align-items:center}
.inspire .txt{font-size:13px}
.inspire .btn{justify-self:end;min-width:min(260px,100%)}
.ftr{background:var(--bg);padding:clamp(40px,5vw,60px) var(--g) 26px}
.ftr .cols{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:24px}
.ftr .t-m{font-size:17px;margin-bottom:16px}
.ftr .h{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.06em;margin-bottom:10px;display:block}
.ftr a,.ftr p{font-size:12.5px;color:var(--ink-2);line-height:1.9;letter-spacing:.03em;display:block}
.ftr a:hover{color:var(--ink)}
.ftr .btn{display:inline-flex;margin-top:22px;color:var(--ink);font-size:10px;padding:9px 18px;line-height:1}
.ftr .btn:hover{color:var(--paper)}
.ftr .base{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:20px;margin-top:clamp(50px,6vw,80px)}
.ftr .base .logo{width:120px;color:var(--ink)}
.ftr .base .logo svg{width:100%;height:auto;display:block}
.ftr .base .soc{display:flex;align-items:center;gap:18px;font-size:12px;color:var(--ink-2)}
.ftr .base .soc svg{width:18px;height:18px}
.ftr .base .cr{font-size:11px;color:var(--muted);text-align:right}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.3s var(--slow)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
.imgrv .img img,.imgrv>img{transform:scale(1.08);transition:transform 2.2s var(--slow)}
.imgrv.in .img img,.imgrv.in>img{transform:none}
.veil{position:fixed;inset:0;z-index:150;background:var(--bg);pointer-events:none;transition:opacity .7s var(--ease)}
.veil.off{opacity:0}
@media (prefers-reduced-motion:reduce){.rv,.imgrv .img img{opacity:1!important;transform:none!important;transition:none!important}.hero .media img{transform:none}}

@media (max-width:900px){
  :root{--hh:60px}
  .hdr .r .ln{display:none}
  .hdr .r .btn{padding:9px 16px}
  .menu-btn span{display:none}
  .duo,.duo.rev,.split,.split.rev{grid-template-columns:1fr}
  .duo .card .img,.duo.rev .card .img{aspect-ratio:4/3!important}
  .split .copy,.split.rev .copy{order:2}
  .rail{grid-template-columns:1fr}
  .trio,.pgrid,.svc{grid-template-columns:1fr}
  .ba{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .inspire{grid-template-columns:1fr}
  .inspire .btn{justify-self:start}
  .ftr .cols{grid-template-columns:1fr 1fr}
  .ftr .base{grid-template-columns:1fr}
  .ftr .base .cr{text-align:left}
  .hero .media{height:auto;min-height:0;aspect-ratio:16/9}
  .subnav{justify-content:flex-start}
}
picture{display:block}
.img picture,.flow figure picture{height:100%}
.flow .track figure img{max-width:none}
.rail>*,.duo>*,.split>*,.contact>*{min-width:0}
.hero .snd{position:absolute;right:64px;bottom:16px;z-index:3;height:38px;padding:0 16px;border-radius:19px;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.12);color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .3s}
.hero .snd:hover{background:rgba(0,0,0,.3)}
@media (max-width:900px){.hero .ctl{width:30px;height:30px;right:10px;bottom:10px}.hero .snd{height:30px;padding:0 12px;font-size:9px;right:48px;bottom:10px}}
