:root{--milk:#f3f0e8;--paper:#faf8f3;--stone:#e6e2d8;--line:#0e0e0d1f;--ink:#0e0e0d;--graphite:#2b2b28;--muted:#6b6860;--on-dark:#f3f0e8;--on-dark-muted:#f3f0e89e;--serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;--sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--pad:clamp(20px,4.4vw,72px);--gap:clamp(88px,13vw,200px);--radius:clamp(18px,2.2vw,32px);--ease:cubic-bezier(.22,.7,.2,1);--ease-io:cubic-bezier(.65,0,.35,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:76px}body{background:var(--milk);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,video,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{background:var(--ink);color:var(--milk)}:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display{font:500 clamp(2.7rem,7.2vw,7.4rem)/.95 var(--serif);letter-spacing:-.018em;text-wrap:balance}.display em{font-style:italic;font-weight:400}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);align-items:center;gap:14px;font-size:.72rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";opacity:.7;background:currentColor;width:34px;height:1px}.lead{color:var(--muted);max-width:46ch;font-size:clamp(1.02rem,1.25vw,1.2rem);line-height:1.6}.btn{border:1px solid var(--ink);min-height:52px;color:var(--ink);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.7em;padding:0 30px;font-size:.78rem;font-weight:500;display:inline-flex}.btn .arr{transition:transform .4s var(--ease);display:inline-block}.btn:hover{background:var(--ink);color:var(--milk)}.btn:hover .arr{transform:translate(3px,-3px)}.btn--solid{background:var(--ink);color:var(--milk)}.btn--solid:hover{background:var(--graphite);border-color:var(--graphite)}.btn--light{color:var(--on-dark);border-color:#f3f0e899}.btn--light:hover,.btn--light-solid{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}.btn--light-solid:hover{color:var(--on-dark);background:0 0}.btn--sm{min-height:42px;padding:0 22px;font-size:.72rem}.btn--lg{min-height:60px;padding:0 38px}.js .reveal{opacity:0;transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s);transform:translateY(34px)}.js .reveal.is-in{opacity:1;transform:none}.js .reveal-img{clip-path:inset(0 0 14% 0 round var(--radius));opacity:.001;transition:clip-path 1.3s var(--ease),opacity 1s var(--ease),transform 1.6s var(--ease);transition-delay:var(--d,0s);transform:scale(1.03)}.js .reveal-img.is-in{clip-path:inset(0 0 0 0 round var(--radius));opacity:1;transform:none}.progress{z-index:90;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.progress i{background:var(--ink);height:100%;transform:scaleX(var(--p,0));transform-origin:0;will-change:transform;display:block}.to-top{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:80;background:var(--ink);width:52px;height:52px;color:var(--milk);opacity:0;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease),background .3s;border-radius:50%;place-items:center;display:grid;position:fixed;transform:translateY(14px)scale(.9);box-shadow:0 10px 30px #0e0e0d38}.to-top.is-on{opacity:1;pointer-events:auto;transform:none}.to-top:hover{background:var(--graphite)}.to-top svg{width:18px;height:18px}.header{z-index:70;padding:20px var(--pad);color:var(--on-dark);transition:background .45s var(--ease),color .45s var(--ease),padding .45s var(--ease),box-shadow .45s;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.header.is-scrolled,.header.is-solid{color:var(--ink);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);box-shadow:0 1px 0 var(--line);background:#f3f0e8db;padding-block:12px}.logo{flex-direction:column;line-height:1.1;display:flex}.logo strong{letter-spacing:.2em;font-size:.95rem;font-weight:600}.logo span{letter-spacing:.34em;opacity:.7;margin-top:3px;font-size:.58rem}.nav{letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:clamp(18px,2.6vw,40px);font-size:.74rem;font-weight:500;display:flex}.nav a:not(.btn){padding:8px 0;position:relative}.nav a:not(.btn):after{content:"";transform-origin:0;width:100%;height:1px;transition:transform .45s var(--ease);background:currentColor;position:absolute;bottom:2px;left:0;transform:scaleX(0)}.nav a:not(.btn):hover:after{transform:scaleX(1)}.header .btn{color:inherit;border-color:currentColor}.header .btn:hover{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}.header.is-scrolled .btn:hover,.header.is-solid .btn:hover{background:var(--ink);color:var(--milk);border-color:var(--ink)}.burger{z-index:2;width:46px;height:46px;display:none;position:relative}.burger i{height:1.5px;transition:transform .45s var(--ease);background:currentColor;position:absolute;left:11px;right:11px}.burger i:first-child{top:19px}.burger i:last-child{top:26px}.burger[aria-expanded=true] i:first-child{transform:translateY(3.5px)rotate(45deg)}.burger[aria-expanded=true] i:last-child{transform:translateY(-3.5px)rotate(-45deg)}.header.menu-open{color:var(--ink);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.menu{z-index:60;background:var(--milk);color:var(--ink);padding:90px var(--pad) 40px;clip-path:inset(0 0 100%);visibility:hidden;transition:clip-path .65s var(--ease-io),visibility 0s .65s;flex-direction:column;justify-content:center;gap:2px;display:flex;position:fixed;inset:0}.menu.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .65s var(--ease-io)}.menu a:not(.btn){font:500 clamp(2.6rem,13vw,5rem)/1.08 var(--serif);letter-spacing:-.01em}.menu .btn{align-self:flex-start;margin-top:28px}.menu p{letter-spacing:.26em;color:var(--muted);margin-top:28px;font-size:.7rem}@media (width<=860px){.nav{display:none}.burger{display:block}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.js .reveal,.js .reveal-img{opacity:1;clip-path:none;transform:none}}.filters{flex-wrap:wrap;gap:8px;margin-bottom:.5em;display:flex}.filters[hidden]{display:none}.chip{border:1px solid var(--line);letter-spacing:.14em;text-transform:uppercase;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s;border-radius:999px;padding:10px 20px;font-size:.72rem;font-weight:500}.chip:hover{border-color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);color:var(--milk);border-color:var(--ink)}.pgrid{grid-template-columns:repeat(3,1fr);align-items:start;gap:clamp(36px,4vw,64px) clamp(16px,2vw,32px);display:grid}.pgrid[hidden]{display:none}.pcard{display:block}.pcard__link{cursor:pointer;display:block}.pcard__media{aspect-ratio:4/5;border-radius:var(--radius);background:var(--stone);position:relative;overflow:hidden}.pcard__media img,.pcard__media video{object-fit:cover;width:100%;height:100%;transition:transform 1.4s var(--ease)}.pcard__ph{background:linear-gradient(150deg,var(--stone),#d7d2c6);width:100%;height:100%}.pcard__media:after{content:"";opacity:0;transition:opacity .6s var(--ease);background:linear-gradient(#0000 45%,#0e0e0d80);position:absolute;inset:0}.pcard__link:hover .pcard__media img,.pcard__link:hover .pcard__media video{transform:scale(1.05)}.pcard__link:hover .pcard__media:after,.pcard__link:focus-visible .pcard__media:after{opacity:1}.pcard__badge{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:#faf8f3db;border-radius:999px;align-items:center;gap:8px;padding:7px 14px 7px 11px;font-size:.66rem;font-weight:500;display:inline-flex;position:absolute;top:14px;left:14px}.pcard__badge svg{width:12px;height:12px}.pcard__view{z-index:2;background:var(--milk);color:var(--ink);letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .5s var(--ease),transform .5s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:.68rem;font-weight:500;display:inline-flex;position:absolute;bottom:14px;left:14px;transform:translateY(10px)}.pcard__link:hover .pcard__view,.pcard__link:focus-visible .pcard__view{opacity:1;transform:none}.pcard__meta{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:12px;margin-top:clamp(14px,1.6vw,22px);font-size:.7rem;font-weight:500;display:flex}.pcard h3{font:500 clamp(1.5rem,2.1vw,2.1rem)/1.1 var(--serif);text-wrap:balance;margin-top:8px}.pcard__text{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:10px;font-size:.95rem;display:-webkit-box;overflow:hidden}.pcard--skeleton .pcard__media{animation:1.6s ease-in-out infinite pulse}.pcard--skeleton .pcard__media:after{display:none}@keyframes pulse{50%{opacity:.5}}.work__empty{max-width:46ch;color:var(--muted);font-size:1.05rem}.work__empty[hidden]{display:none}@media (width>=1025px){.pgrid .pcard:nth-child(3n+2){margin-top:clamp(0px,5vw,76px)}}@media (width<=1024px){.pgrid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.pgrid{grid-template-columns:1fr}.pcard__media{aspect-ratio:5/6}}@media (hover:none){.pcard__view{opacity:1;transform:none}.pcard__media:after{opacity:1}}@media (prefers-reduced-motion:reduce){.pcard--skeleton .pcard__media{animation:none}}.footer{background:var(--ink);color:var(--on-dark);border-radius:var(--radius) var(--radius) 0 0;padding:clamp(40px,5vw,72px) var(--pad) 28px;margin-top:clamp(40px,6vw,96px)}.footer__top{grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding-bottom:clamp(36px,5vw,72px);display:grid}.footer__brand{flex-direction:column;gap:6px;width:max-content;display:flex}.footer__brand strong{font:500 clamp(1.8rem,3.2vw,3rem)/1 var(--serif);letter-spacing:.02em}.footer__brand span{letter-spacing:.34em;color:var(--on-dark-muted);font-size:.62rem}.footer nav{letter-spacing:.14em;text-transform:uppercase;flex-direction:column;gap:10px;font-size:.78rem;display:flex}.footer nav a{width:max-content;color:var(--on-dark-muted);transition:color .3s}.footer nav a:hover{color:var(--on-dark)}.footer__copy{letter-spacing:.16em;color:var(--on-dark-muted);border-top:1px solid #f3f0e824;padding-top:22px;font-size:.72rem}@media (width<=900px){.footer__top{grid-template-columns:1fr 1fr}.footer__brand{grid-column:1/-1}}.pf-hero{padding:clamp(120px,14vw,200px) var(--pad) clamp(28px,4vw,56px)}.pf-hero .eyebrow{margin-bottom:clamp(14px,1.8vw,24px)}.pf-hero .display{margin-bottom:clamp(16px,2vw,28px)}.pf-list{padding:0 var(--pad)}.pf-bar{border-block:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px clamp(20px,3vw,48px);margin-bottom:clamp(28px,4vw,56px);padding:18px 0;display:flex}.pf-bar .filters{margin:0}.pf-count{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-left:auto;font-size:.72rem;font-weight:500}.pf-more{justify-content:center;margin-top:clamp(36px,5vw,72px);display:flex}.pf-more[hidden],.pf-more .btn[hidden]{display:none}.pf-cta{text-align:center;padding:clamp(80px,11vw,170px) var(--pad) 0;flex-direction:column;align-items:center;gap:clamp(20px,3vw,36px);display:flex}.pf-cta .display{font-size:clamp(2.4rem,6vw,5.6rem)}.work__empty{padding:40px 0}.pj{padding:clamp(104px,12vw,168px) var(--pad) 0;max-width:1500px;margin-inline:auto}.pj__loading{color:var(--muted)}.pj__back{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .3s,transform .4s var(--ease);margin-bottom:clamp(24px,3vw,44px);font-size:.74rem;font-weight:500;display:inline-block}.pj__back:hover{color:var(--ink);transform:translate(-4px)}.pj__head .eyebrow{margin-bottom:clamp(14px,1.8vw,24px)}.pj__head .display{max-width:18ch;margin-bottom:clamp(28px,4vw,56px);font-size:clamp(2.6rem,6.4vw,6.4rem)}.pj__media{border-radius:var(--radius);background:var(--stone);overflow:hidden}.pj__media img,.pj__media video{object-fit:contain;width:100%;max-height:86svh}.pj__media video{background:#111}.pj__body{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:clamp(24px,5vw,96px);margin-top:clamp(32px,5vw,72px);display:grid}.pj__text p{white-space:pre-line;max-width:56ch;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.65}.pj__meta{gap:18px;display:grid}.pj__meta>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-bottom:14px;display:flex}.pj__meta dt{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:500}.pj__meta dd{font:500 1.25rem/1.2 var(--serif)}.pj__body .btn{grid-column:2;justify-self:start}.pj__gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,28px);margin-top:clamp(36px,5vw,72px);display:grid}.pj__gallery figure{border-radius:var(--radius);background:var(--stone);overflow:hidden}.pj__gallery img{object-fit:cover;width:100%;height:100%}.pj__nav{grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,28px);margin-top:clamp(48px,7vw,110px);display:grid}.pj__nav a{border:1px solid var(--line);border-radius:var(--radius);transition:background .4s var(--ease),border-color .4s;flex-direction:column;gap:8px;padding:clamp(20px,2.6vw,36px);display:flex}.pj__nav a:last-child{text-align:right;align-items:flex-end}.pj__nav a:hover{background:var(--paper);border-color:var(--ink)}.pj__nav small{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.66rem;font-weight:500}.pj__nav span{font:500 clamp(1.3rem,2vw,1.9rem)/1.15 var(--serif)}.pj__empty{flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;min-height:50svh;display:flex}@media (width<=860px){.pj__body{grid-template-columns:1fr}.pj__body .btn{grid-column:1}.pj__gallery,.pj__nav{grid-template-columns:1fr}.pj__nav a:last-child{text-align:left;align-items:flex-start}.pf-count{width:100%;margin-left:0}}
