:root{
  color-scheme:light;
  --ivory:#F2EDE3;
  --linen:#E7DFCD;
  --paper:#FBF8F2;
  --forest:#132A1F;
  --deep:#0E2018;
  --moss:#2A4435;
  --brass:#9B804A;
  --brass-lt:#C9AB70;
  --sage:#6F7C74;
  --leaf:38% 3px 38% 3px;
  --leaf-r:3px 38% 3px 38%;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Libre Franklin',system-ui,sans-serif;
  --gut:clamp(16px,4.5vw,64px);
  --max:1320px;
  --ease:cubic-bezier(.7,0,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--ivory);color:var(--forest);font:300 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:4px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.mask>span{display:block}
::selection{background:var(--brass);color:#fff}

/* grain */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- loader ---------- */
.loader{display:none}
.js-anim .loader{display:grid;position:fixed;inset:0;z-index:100;background:var(--forest);place-items:center;border-radius:0 0 0 0}
.loader-in{display:grid;justify-items:center;gap:26px}
.loader svg{width:92px;height:92px;overflow:visible}
.loader path{fill:none;stroke:var(--brass-lt);stroke-width:1.2;vector-effect:non-scaling-stroke}
.loader .word{font:400 clamp(30px,4vw,44px)/1 var(--serif);color:var(--ivory);letter-spacing:.01em;display:flex;overflow:hidden;padding-bottom:.1em}
.loader .word span{display:inline-block;white-space:pre}
.loader .word .p{color:var(--brass-lt)}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:95;pointer-events:none;display:none}
.cursor i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--brass);transition:transform .35s var(--ease),background .3s,border-radius .35s}
.cursor b{position:absolute;left:-40px;top:-40px;width:80px;height:80px;display:grid;place-items:center;font:italic 400 15px var(--serif);color:var(--forest);opacity:0;transition:opacity .25s}
.cursor.on i{transform:scale(8);border-radius:38% 3px 38% 3px;background:var(--brass-lt)}
.cursor.on b{opacity:1}
.cursor.dim i{transform:scale(.5)}
@media (pointer:fine){.js-anim .cursor{display:block;opacity:0;transition:opacity .3s}.js-anim .cursor.live{opacity:1}}

/* ---------- header ---------- */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:transform .5s var(--ease),background .4s}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:20px}
.top.solid{background:color-mix(in srgb,var(--ivory) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.top.hide{transform:translateY(-100%)}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 25px/1 var(--serif);letter-spacing:.01em;white-space:nowrap}
.mark .plus{color:var(--brass)}
.mark svg{width:22px;height:30px;flex:none}
.nav{display:flex;align-items:center;gap:clamp(18px,3vw,40px)}
.nav a{text-decoration:none;font-size:14px;font-weight:400;position:relative}
.nav a:not(.book)::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--brass);transition:right .4s var(--ease)}
.nav a:not(.book):hover::after{right:0}
.book{display:inline-flex;align-items:center;gap:10px;background:var(--forest);color:var(--ivory)!important;text-decoration:none;font:500 14px/1 var(--sans);padding:14px 22px;border-radius:999px;transition:background .3s,transform .3s var(--ease)}
.book:hover{background:var(--moss)}
.book.brass{background:var(--brass);color:#fff!important}
.book.brass:hover{background:#86703f}
.book.lg{padding:19px 32px;font-size:15px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:120px 0 clamp(56px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,80px);align-items:center;width:100%}
.where{font:italic 400 17px/1.3 var(--serif);color:var(--brass);margin-bottom:clamp(22px,3vw,36px)}
h1{font:400 clamp(46px,6.6vw,104px)/.96 var(--serif);letter-spacing:-.03em;font-variation-settings:"opsz" 1200;position:relative;z-index:2}
@media (min-width:901px){h1 .mask>span{white-space:nowrap}}
h1 .in{padding-left:clamp(28px,6.4vw,104px);font-style:italic}
.lede{max-width:44ch;font-size:clamp(16px,1.3vw,18px);color:var(--moss);margin:clamp(28px,3.4vw,42px) 0 clamp(30px,3.4vw,42px)}
.ctas{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.quiet{font-size:15px;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:3px}
.facts{display:flex;flex-wrap:wrap;gap:10px 36px;margin-top:clamp(40px,5vw,64px);font-size:14px;color:var(--sage)}
.facts b{font:500 15px var(--serif);color:var(--forest);margin-right:6px}
.leafwrap{position:relative;justify-self:end;width:min(100%,540px);aspect-ratio:1}
.leafwrap .ph{position:absolute;inset:0;border-radius:var(--leaf);overflow:hidden}
.leafwrap img{width:100%;height:115%;object-fit:cover;margin-top:-7.5%}
.trace{position:absolute;inset:-18px 18px 18px -18px;overflow:visible;pointer-events:none;width:100%;height:100%}
.trace path{fill:none;stroke:var(--brass);stroke-width:1.2;vector-effect:non-scaling-stroke}
.tag{position:absolute;left:-14px;bottom:30px;background:var(--paper);padding:14px 18px 13px;border-radius:3px 18px 3px 18px;box-shadow:0 18px 40px -20px rgba(19,42,31,.4);font-size:13px;line-height:1.35;color:var(--sage)}
.tag b{display:block;font:500 16px var(--serif);color:var(--forest)}
.scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font:italic 400 14px var(--serif);color:var(--sage);display:flex;flex-direction:column;align-items:center;gap:8px}
.scrollcue i{width:1px;height:38px;background:linear-gradient(var(--brass),transparent);animation:cue 2.2s var(--ease) infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* ---------- bloom ---------- */
.bloom{position:relative;height:100svh;overflow:hidden;background:var(--ivory)}
.bloom-stage{position:absolute;inset:0;display:grid;place-items:center}
.bloom-img{position:relative;width:min(36vmin,320px);height:min(36vmin,320px);border-radius:var(--leaf);overflow:hidden;z-index:1}
.bloom-img img{width:100%;height:100%;object-fit:cover}
.bloom-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,32,24,.15),rgba(14,32,24,.55));opacity:var(--shade,0)}
.bw{position:absolute;top:50%;font:400 clamp(40px,5.8vw,104px)/1 var(--serif);letter-spacing:-.03em;transform:translateY(-50%);white-space:nowrap;z-index:2}
.bw.l{right:calc(50% + min(18vmin,160px) + 3vw)}
.bw.r{left:calc(50% + min(18vmin,160px) + 3vw);font-style:italic}
.bloom-copy{position:absolute;inset:auto 0 0;z-index:3;color:var(--ivory);padding:0 var(--gut) clamp(40px,7vh,80px)}
.bloom-copy .wrap{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end}
.bloom-copy h2{font:400 clamp(40px,6vw,96px)/.98 var(--serif);letter-spacing:-.03em}
.bloom-copy h2 em{font-style:italic;color:var(--brass-lt)}
.bloom-copy p{max-width:40ch;justify-self:end;color:rgba(242,237,227,.88);font-size:17px}
html:not(.js-anim) .bloom{height:auto;padding:80px 0}
html:not(.js-anim) .bloom-stage{position:relative;gap:20px}
html:not(.js-anim) .bw{position:static;transform:none}
html:not(.js-anim) .bloom-copy{position:static;color:var(--forest);padding-top:40px}
html:not(.js-anim) .bloom-copy p{color:var(--moss)}

/* ---------- marquee ---------- */
.marq{background:var(--forest);color:var(--ivory);padding:clamp(28px,4vw,48px) 0;overflow:hidden;border-bottom:1px solid rgba(242,237,227,.08)}
.marq-track{display:flex;width:max-content;will-change:transform}
.marq-row{display:flex;align-items:center;gap:.5em;padding-right:.5em;font:400 clamp(40px,6.4vw,96px)/1.05 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.marq-row em{font-style:italic;color:transparent;-webkit-text-stroke:1px var(--brass-lt)}
.marq-row .pl{color:var(--brass-lt);font-size:.6em}

/* ---------- menu ---------- */
.menu{background:var(--forest);color:var(--ivory);padding:clamp(72px,9vw,132px) 0 clamp(80px,10vw,140px);position:relative}
.menu-top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(44px,6vw,84px)}
.h2{font:400 clamp(44px,6vw,92px)/.98 var(--serif);letter-spacing:-.03em}
.menu-top p{color:rgba(242,237,227,.7);max-width:40ch;justify-self:end}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,112px)}
.col h3{font:italic 400 28px/1 var(--serif);color:var(--brass-lt);margin-bottom:8px}
.col .note{font-size:14px;color:rgba(242,237,227,.55);margin-bottom:24px}
.svc{display:grid;grid-template-columns:1fr auto;gap:4px 20px;padding:22px 0;border-top:1px solid rgba(242,237,227,.14);text-decoration:none;position:relative;transition:padding .45s var(--ease)}
.svc:last-of-type{border-bottom:1px solid rgba(242,237,227,.14)}
.svc .n{font:400 clamp(20px,1.8vw,24px)/1.25 var(--serif);transition:color .3s}
.svc .n i{font-style:normal;color:var(--brass-lt)}
.svc .p{font:400 clamp(20px,1.8vw,24px)/1.25 var(--serif);font-variant-numeric:lining-nums tabular-nums;color:var(--brass-lt)}
.svc .d{grid-column:1/2;font-size:14px;color:rgba(242,237,227,.6);max-width:48ch}
.svc .go{grid-column:2;grid-row:2;align-self:end;font-size:13px;color:var(--brass-lt);opacity:0;transform:translateX(-8px);transition:.35s var(--ease);white-space:nowrap}
.svc::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--brass-lt);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.svc:hover::before,.svc:focus-visible::before{transform:scaleX(1)}
.svc:hover,.svc:focus-visible{padding-left:14px}
.svc:hover .go,.svc:focus-visible .go{opacity:1;transform:none}
.svc:hover .n{color:#fff}
.care{margin-top:30px;padding:20px 24px;border-radius:3px 22px 3px 22px;background:rgba(242,237,227,.06);font-size:14px;color:rgba(242,237,227,.75)}
.care b{font:italic 500 16px var(--serif);color:var(--brass-lt);margin-right:6px}
.peek{position:fixed;left:0;top:0;z-index:40;width:220px;height:220px;margin:-110px 0 0 -110px;pointer-events:none;border-radius:var(--leaf);overflow:hidden;opacity:0;transform:scale(.6);transition:opacity .35s;display:none}
.peek.on{opacity:1;transform:scale(1)}
.peek img,.peek .sw{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.peek .sw.on,.peek img.on{opacity:1}
.peek .sw span{position:absolute;left:18px;right:18px;bottom:16px;font:italic 400 15px/1.3 var(--serif);color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.35)}
@media (pointer:fine){.js-anim .peek{display:block}}

/* ---------- work (horizontal) ---------- */
.work{position:relative;background:var(--ivory);overflow:hidden}
.work-pin{height:100svh;display:flex;align-items:center}
.track{display:flex;align-items:center;gap:clamp(40px,6vw,110px);padding:0 var(--gut);will-change:transform}
.intro{flex:none;width:min(440px,80vw)}
.intro p{font:italic 400 21px/1.4 var(--serif);color:var(--sage);margin-top:18px}
.intro .hint{font:400 14px var(--sans);color:var(--sage);margin-top:34px;display:flex;align-items:center;gap:12px}
.intro .hint i{display:block;width:48px;height:1px;background:var(--brass)}
.panel{flex:none;position:relative}
.panel.up{align-self:flex-start;margin-top:14vh}
.panel.down{align-self:flex-end;margin-bottom:12vh}
.panel .ph{overflow:hidden;position:relative}
.panel .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.p-macro .ph{height:min(62vh,560px);aspect-ratio:820/1065;border-radius:var(--leaf-r)}
.p-cat .ph{height:min(50vh,440px);aspect-ratio:596/529;border-radius:var(--leaf)}
.p-front .ph{height:min(38vh,320px);aspect-ratio:640/334;border-radius:var(--leaf-r)}
.cap{display:flex;justify-content:space-between;gap:16px;margin-top:16px;font-size:14px;color:var(--sage)}
.cap b{font:500 18px var(--serif);color:var(--forest)}
.ba{position:relative;height:min(50vh,380px);aspect-ratio:2/1;border-radius:var(--leaf);overflow:hidden;background:var(--linen);user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after{clip-path:inset(0 0 0 var(--x,50%))}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--x,50%);width:2px;margin-left:-1px;background:var(--paper);pointer-events:none}
.ba .knob{position:absolute;top:50%;left:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;background:var(--paper);box-shadow:0 8px 24px rgba(19,42,31,.3);display:grid;place-items:center}
.ba .knob svg{width:22px;height:22px;stroke:var(--forest);fill:none;stroke-width:1.5}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:4px}
.ba .lbl{position:absolute;bottom:16px;font:italic 400 16px var(--serif);color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45);pointer-events:none}
.ba .lbl.l{left:22px}.ba .lbl.r{right:22px}
.outro{flex:none;width:min(420px,80vw)}
.outro .h2{font-size:clamp(44px,5vw,76px)}
.outro .h2 em{font-style:italic;color:var(--brass)}
.outro .book{margin-top:30px}
.progress{position:absolute;left:var(--gut);right:var(--gut);bottom:34px;height:1px;background:rgba(19,42,31,.12)}
.progress i{position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left}

/* ---------- studio ---------- */
.studio{padding:clamp(90px,12vw,170px) 0;background:var(--paper)}
.studio-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,6vw,110px);align-items:center}
.studio-img{border-radius:var(--leaf-r);overflow:hidden;aspect-ratio:4/5}
.studio-img img{width:100%;height:118%;object-fit:cover;margin-top:-9%}
.quote{font:400 clamp(30px,3.8vw,58px)/1.12 var(--serif);letter-spacing:-.02em}
.quote .w{display:inline}
.studio .rest{margin-top:34px;color:var(--moss);max-width:54ch}
.who{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px}
.who span{font-size:13px;padding:8px 15px;border:1px solid rgba(155,128,74,.55);border-radius:3px 14px 3px 14px;color:var(--moss)}

/* ---------- visit ---------- */
.visit{background:var(--forest);color:var(--ivory);border-radius:clamp(36px,6vw,110px) clamp(36px,6vw,110px) 0 0;padding:clamp(90px,11vw,150px) 0 0;overflow:hidden;position:relative;z-index:2;margin-top:-40px}
.visit .h2{max-width:13ch;font-size:clamp(46px,7vw,112px)}
.visit .h2 em{font-style:italic;color:var(--brass-lt)}
.visit-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(28px,4vw,64px);margin-top:clamp(52px,6vw,90px);padding-top:38px;border-top:1px solid rgba(242,237,227,.16)}
.visit-row h3{font:italic 400 20px var(--serif);color:var(--brass-lt);margin-bottom:12px}
.visit-row p,.visit-row a{font-size:16px;color:rgba(242,237,227,.85);text-decoration:none}
.visit-row a:not(.book){border-bottom:1px solid rgba(201,171,112,.5)}
.visit-row a:not(.book):hover{border-bottom-color:var(--brass-lt)}
.giant{display:flex;justify-content:center;font:italic 400 clamp(52px,15vw,208px)/.9 var(--serif);letter-spacing:-.045em;color:var(--brass-lt);opacity:.16;white-space:nowrap;margin:clamp(50px,6vw,90px) 0 -.05em;user-select:none;overflow:hidden;padding-top:.1em;max-width:100%}
.giant span{display:inline-block;white-space:pre}
.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:26px 0;border-top:1px solid rgba(242,237,227,.1);font-size:13px;color:rgba(242,237,227,.5);position:relative}
.foot nav{display:flex;flex-wrap:wrap;gap:12px 22px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ivory)}

/* ---------- nav: mobile drawer (pure CSS) ---------- */
.nav-toggle,.nav-burger{display:none}
.nav-burger{flex-direction:column;gap:5px;cursor:pointer;padding:8px;margin:-8px}
.nav-burger span{display:block;width:24px;height:1.5px;background:var(--forest);transition:transform .35s var(--ease),opacity .25s}

/* ---------- page hero (lander intro, no photo column) ---------- */
.phero{position:relative;padding:clamp(128px,15vw,180px) 0 clamp(40px,6vw,72px);background:var(--ivory)}
.phero .where{margin-bottom:clamp(18px,2.4vw,28px)}
.phero h1{font-size:clamp(44px,6vw,92px)}
.phero .lede{max-width:52ch;margin-bottom:0}

/* ---------- service lander: approach band ---------- */
.lead{background:var(--paper);padding:clamp(60px,8vw,112px) 0}
.lead-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(34px,5vw,90px);align-items:center}
.lead h2{font:400 clamp(30px,3.6vw,54px)/1.1 var(--serif);letter-spacing:-.02em;margin-bottom:22px}
.lead h2 em{font-style:italic;color:var(--brass)}
.lead p{color:var(--moss);max-width:54ch}
.lead p + p{margin-top:16px}
.lead-img{border-radius:var(--leaf);overflow:hidden;aspect-ratio:4/5}
.lead-img img{width:100%;height:100%;object-fit:cover}
.swatches{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sw-tile{position:relative;border-radius:var(--leaf);aspect-ratio:1;overflow:hidden;display:flex;align-items:flex-end;padding:18px}
.sw-tile:nth-child(even){border-radius:var(--leaf-r)}
.sw-tile span{position:relative;font:italic 400 15px/1.3 var(--serif);color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.45)}

/* ---------- faq ---------- */
.faq-sec{padding:clamp(70px,9vw,120px) 0;background:var(--ivory)}
.faq-head{margin-bottom:clamp(28px,4vw,48px)}
.faq-head .h2{font-size:clamp(34px,4.4vw,62px)}
.faq-head p{color:var(--moss);margin-top:14px;max-width:46ch}
.faq{max-width:780px}
.faq details{border-top:1px solid rgba(19,42,31,.14)}
.faq details:last-of-type{border-bottom:1px solid rgba(19,42,31,.14)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;gap:24px;align-items:baseline;font:400 clamp(19px,1.7vw,24px)/1.3 var(--serif);color:var(--forest)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 26px/1 var(--serif);color:var(--brass);flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 0 26px;color:var(--moss);max-width:64ch}

/* ---------- gallery ---------- */
.gal-sec{padding:clamp(60px,8vw,110px) 0 clamp(80px,10vw,140px);background:var(--ivory)}
.gal-grid{columns:3;column-gap:clamp(12px,1.4vw,20px)}
.gal-grid figure{break-inside:avoid;margin:0 0 clamp(12px,1.4vw,20px);position:relative;border-radius:var(--leaf);overflow:hidden}
.gal-grid figure:nth-child(even){border-radius:var(--leaf-r)}
.gal-grid img{width:100%;height:auto;transition:transform .8s var(--ease)}
.gal-grid figure:hover img{transform:scale(1.04)}
.gal-grid figcaption{position:absolute;inset:auto 0 0;padding:34px 18px 14px;font:italic 400 15px var(--serif);color:#fff;background:linear-gradient(transparent,rgba(14,32,24,.6));opacity:0;transition:opacity .4s}
.gal-grid figure:hover figcaption{opacity:1}

/* ---------- gallery teaser (home) ---------- */
.gal-teaser{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.2vw,18px)}
.gal-teaser a{position:relative;border-radius:var(--leaf);overflow:hidden;aspect-ratio:3/4}
.gal-teaser a:nth-child(even){border-radius:var(--leaf-r)}
.gal-teaser img{width:100%;height:100%;object-fit:cover}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px);padding:clamp(40px,5vw,72px) 0 clamp(80px,10vw,140px)}
.post-card{display:flex;flex-direction:column;text-decoration:none;background:var(--paper);border-radius:var(--leaf);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.post-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(19,42,31,.35)}
.post-card .pc-img{aspect-ratio:3/2;overflow:hidden;background:var(--linen)}
.post-card .pc-img img{width:100%;height:100%;object-fit:cover}
.post-card .pc-body{padding:26px 26px 30px;display:flex;flex-direction:column;gap:12px;flex:1}
.post-card .pc-eyebrow{font:italic 400 14px var(--serif);color:var(--brass)}
.post-card h3{font:400 clamp(22px,2vw,27px)/1.18 var(--serif);color:var(--forest);letter-spacing:-.01em}
.post-card p{font-size:14.5px;color:var(--moss);flex:1}
.post-card .pc-meta{font-size:13px;color:var(--sage);margin-top:4px}

/* ---------- article (light editorial) ---------- */
.article{background:var(--paper)}
.art-hero{padding:clamp(120px,14vw,170px) 0 clamp(30px,4vw,48px);max-width:900px;margin:0 auto}
.art-hero .where{margin-bottom:20px}
.art-hero h1{font-size:clamp(38px,5vw,74px);letter-spacing:-.025em}
.art-hero .standfirst{font:400 clamp(18px,1.5vw,22px)/1.5 var(--serif);color:var(--moss);margin-top:24px;max-width:60ch}
.art-hero .meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:26px;font-size:13px;color:var(--sage)}
.art-body{max-width:720px;margin:0 auto;padding:clamp(30px,4vw,50px) 0 clamp(70px,9vw,120px);font-size:17.5px;line-height:1.75;color:var(--forest)}
.art-body h2{font:400 clamp(28px,3vw,40px)/1.15 var(--serif);letter-spacing:-.02em;margin:clamp(40px,5vw,64px) 0 16px}
.art-body h3{font:italic 400 clamp(21px,2vw,27px) var(--serif);color:var(--moss);margin:34px 0 12px}
.art-body p{margin-bottom:20px;color:var(--moss)}
.art-body p strong{color:var(--forest);font-weight:500}
.art-body ul,.art-body ol{margin:0 0 22px 22px;color:var(--moss)}
.art-body li{margin-bottom:8px}
.art-body figure{margin:clamp(30px,4vw,48px) 0}
.art-body figure img{border-radius:var(--leaf);width:100%}
.art-body figcaption{font-size:13.5px;color:var(--sage);margin-top:10px;font-style:italic}
.art-cta{margin:clamp(40px,5vw,60px) 0 0;padding:34px;border-radius:3px 24px 3px 24px;background:var(--ivory);text-align:center}
.art-cta p{font:400 clamp(22px,2.4vw,30px)/1.2 var(--serif);color:var(--forest);margin-bottom:22px}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hero{min-height:auto;padding-top:110px}
  .hero-grid,.menu-top,.cols,.studio-grid,.bloom-copy .wrap{grid-template-columns:1fr}
  .leafwrap{justify-self:center;width:min(100% - 24px,440px);margin-top:16px}
  .menu-top p,.bloom-copy p{justify-self:start}
  .scrollcue{display:none}
  .work-pin{height:auto;padding:90px 0 70px;display:block}
  .track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:20px;gap:28px;align-items:flex-end}
  .track>*{scroll-snap-align:start}
  .panel.up,.panel.down{margin:0;align-self:auto}
  .intro{width:78vw}
  .ba{height:auto;width:86vw}
  .p-macro .ph{height:62vw;max-height:440px}
  .p-cat .ph{height:56vw;max-height:400px}
  .p-front .ph{height:40vw;max-height:300px}
  .progress{display:none}
  .studio-img{max-width:420px;aspect-ratio:1}
  .visit-row{grid-template-columns:1fr 1fr}
  .visit-row .bk{grid-column:1/-1}
  .lead-grid{grid-template-columns:1fr}
  .lead-img{max-width:440px;aspect-ratio:1}
  .gal-grid{columns:2}
  .posts{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .nav-burger{display:flex}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .nav{position:fixed;inset:68px 0 auto;flex-direction:column;align-items:stretch;gap:0;background:color-mix(in srgb,var(--ivory) 97%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px var(--gut) 30px;transform:translateY(-135%);transition:transform .5s var(--ease);box-shadow:0 34px 60px -34px rgba(19,42,31,.45)}
  .nav-toggle:checked ~ .nav{transform:translateY(0)}
  .nav a:not(.book){display:block;padding:17px 2px;border-bottom:1px solid rgba(155,128,74,.2);font-size:17px}
  .nav a:not(.book)::after{display:none}
  .nav .book{margin-top:20px;justify-content:center}
  .gal-grid{columns:1}
  .posts{grid-template-columns:1fr}
  .gal-teaser{grid-template-columns:1fr 1fr}
  .top .wrap{height:68px}
  .mark{font-size:22px}
  .book{padding:12px 18px}
  .tag{left:4px}
  .visit-row{grid-template-columns:1fr}
  .svc .go{opacity:1;transform:none}
  .bw.l{right:calc(50% + 18vmin + 2vw)}
  .bw.r{left:calc(50% + 18vmin + 2vw)}
  .cap{flex-direction:column;gap:2px}
  .bw{font-size:clamp(38px,11vw,56px)}
  .bw.l,.bw.r{left:50%;right:auto;transform:translate(-50%,-50%)}
  .bw.l{top:calc(50% - min(18vmin,160px) - 46px)}
  .bw.r{top:calc(50% + min(18vmin,160px) + 46px)}
}
