
:root{
  --soot:#141310;
  --soot-2:#1c1a16;
  --bone:#E4E0D4;
  --bone-2:#DCD7C8;
  --sun:#ff8330;
  --rose:#ff4d8c;
  --flash:#ff4d8c;
  --line:rgba(20,19,16,.18);
  --line-light:rgba(228,224,212,.16);
  --mono:'IBM Plex Mono',monospace;
  --serif:'Instrument Serif',serif;
  --sans:'Archivo',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:112.5%;scroll-behavior:smooth}
html.has-gsap{scroll-behavior:auto}
body{
  background:var(--bone);
  color:var(--soot);
  font-family:var(--sans);
  font-weight:400;
  font-stretch:100%;
  -webkit-font-smoothing:antialiased;
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
}
::selection{background:var(--flash);color:var(--bone)}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.dark :focus-visible{outline-color:var(--bone)}

/* ---------- preloader ---------- */
#loader{
  position:fixed;inset:0;z-index:200;background:var(--soot);color:var(--bone);
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:clamp(1.2rem,3vw,2.5rem);
}
#loader .count{font-family:var(--mono);font-size:clamp(.8rem,1.4vw,1rem);letter-spacing:.08em}
#loader .word{
  font-weight:850;font-variation-settings:'wdth' 62;
  font-size:clamp(2rem,6vw,4.5rem);line-height:.9;text-transform:uppercase;letter-spacing:-.01em;
}
#loader .word em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0}

/* ---------- nav ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem clamp(1.2rem,3vw,2.5rem);
  mix-blend-mode:difference;color:#fff;
}
nav .logo img{height:34px;width:auto;display:block}
nav ul{display:flex;gap:clamp(1rem,2.5vw,2.2rem);list-style:none}
nav ul a{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;position:relative}
nav ul a::after{content:'';position:absolute;left:0;bottom:-4px;height:1px;width:0;background:#fff;transition:width .35s cubic-bezier(.7,0,.2,1)}
nav ul a:hover::after{width:100%}
.avail{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}
.avail .dot{width:7px;height:7px;border-radius:50%;background:var(--flash);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;z-index:101}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:transform .35s,opacity .35s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:720px){nav ul{display:none}.burger{display:block}nav .avail{display:none}}
.mnav{
  position:fixed;inset:0;z-index:99;background:var(--soot);color:var(--bone);
  display:flex;flex-direction:column;justify-content:center;gap:.4rem;
  padding:clamp(1.2rem,6vw,2.5rem);
  transform:translateY(-102%);transition:transform .55s cubic-bezier(.7,0,.2,1);
}
.mnav.open{transform:none}
.mnav>a{
  font-weight:900;font-variation-settings:'wdth' 68;text-transform:uppercase;
  font-size:clamp(2.6rem,13vw,4.5rem);line-height:1.1;letter-spacing:-.01em;
  border-bottom:1px solid var(--line-light);padding:.35rem 0;
}
.mnav>a:active{background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.m-meta{
  display:flex;justify-content:space-between;align-items:center;margin-top:2rem;
  font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(228,224,212,.7);
}
.avail-m{display:flex;align-items:center;gap:.5rem}
.avail-m .dot{width:7px;height:7px;border-radius:50%;background:var(--flash);animation:pulse 2s infinite}

/* ---------- hero ---------- */
.hero{
  position:relative;height:100svh;min-height:560px;background:var(--soot);color:var(--bone);
  overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
}
#ink{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-inner{position:relative;z-index:2;padding:0 clamp(1.2rem,3vw,2.5rem) clamp(1.2rem,3vh,2.2rem);pointer-events:none}
.hero-eyebrow .ob{display:flex;align-items:center;gap:.5rem}
.hero-eyebrow .ob .dot{width:7px;height:7px;border-radius:50%;background:var(--flash);animation:pulse 2s infinite}
.hero-eyebrow{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:.6rem;
  font-family:var(--mono);font-size:clamp(.62rem,1.1vw,.78rem);
  text-transform:uppercase;letter-spacing:.16em;color:rgba(228,224,212,.75);
  border-bottom:1px solid var(--line-light);padding-bottom:1rem;margin-bottom:1rem;
}
.hero h1{
  font-weight:900;text-transform:uppercase;line-height:.84;letter-spacing:-.015em;
  font-size:clamp(2.7rem,11.5vw,11rem);
  display:flex;flex-direction:column;
}
.hero h1 .row{display:flex;justify-content:space-between;align-items:baseline}
.hero h1 .ltr{display:inline-block;font-variation-settings:'wdth' 62;will-change:font-variation-settings;pointer-events:auto}
.hero h1 .role{
  font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;
  font-size:clamp(1rem,2.6vw,2.4rem);color:var(--bone);opacity:.85;padding-bottom:.4em;
}
@media(max-width:720px){.hero h1 .role{display:none}}
.hero-foot{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;
  color:rgba(228,224,212,.6);margin-top:1.2rem;
}
.hero-foot .scroll-cue{display:flex;align-items:center;gap:.55rem}
.hero-foot .scroll-cue svg{animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ---------- marquee ---------- */
.marquee{background:linear-gradient(100deg,var(--sun),var(--rose));color:var(--bone);overflow:hidden;padding:.85rem 0;border-top:1px solid var(--soot)}
.marquee .track{display:flex;width:max-content;will-change:transform;animation:scrollx 26s linear infinite}
.marquee span{
  font-weight:800;font-variation-settings:'wdth' 110;text-transform:uppercase;
  font-size:clamp(.95rem,2vw,1.35rem);letter-spacing:.04em;white-space:nowrap;padding-right:1.4rem;
}
.marquee i{font-style:normal;padding:0 1.4rem 0 0;font-weight:400;color:var(--soot);font-size:.6em;vertical-align:.25em;margin-left:1.4rem}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* ---------- shared section bits ---------- */
section{position:relative}
.pad{padding:clamp(4.5rem,10vh,8rem) clamp(1.2rem,3vw,2.5rem)}
.home-portrait{width:100%;overflow:hidden;background:var(--soot)}
.home-portrait img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.home-banner{width:100%;overflow:hidden;margin-bottom:clamp(2rem,5vh,3.5rem);background:var(--soot-2)}
.home-banner img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;opacity:.92}
.about-hero{width:100%;overflow:hidden;background:var(--soot);margin-bottom:clamp(3rem,7vh,5rem)}
.about-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.about-gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem)}
.about-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--bone-2)}
.about-gallery .ag-wide{grid-column:1/-1}
.about-gallery .ag-wide img{aspect-ratio:21/9}
@media(max-width:720px){.about-gallery{grid-template-columns:1fr}}
.sec-head{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;
  border-bottom:1px solid var(--line);padding-bottom:.9rem;margin-bottom:clamp(2rem,5vh,3.5rem);
}
.dark .sec-head{border-color:var(--line-light);color:rgba(228,224,212,.7)}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}}
.about h2{
  font-weight:850;font-variation-settings:'wdth' 70;text-transform:uppercase;
  font-size:clamp(2.6rem,6.5vw,5.6rem);line-height:.92;letter-spacing:-.01em;
}
.about h2 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.about .copy p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55;max-width:34em}
.about .copy p+p{margin-top:1.2em}
.about .copy strong{font-weight:700}
.facts{margin-top:clamp(2rem,4vh,3rem);border-top:1px solid var(--line)}
.facts div{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:.85rem 0;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;
}
.facts div b{font-family:var(--sans);font-weight:800;font-size:1rem;letter-spacing:0}

/* ---------- work (full-page snap panels) ---------- */
.work{background:var(--soot);color:var(--bone);position:relative}
.wpanel{
  position:relative;height:100svh;min-height:560px;overflow:hidden;
  display:flex;align-items:flex-end;
}
.wpanel .bg{position:absolute;inset:0;overflow:hidden}
.wpanel .bg img,.wpanel .bg video{
  position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;
  will-change:transform;filter:saturate(1.05);
}
.wpanel .bg::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(20,19,16,.6),rgba(20,19,16,.1) 38%,rgba(20,19,16,.22) 62%,rgba(20,19,16,.85)),
    linear-gradient(115deg,rgba(255,131,48,.14),rgba(255,77,140,.14));
}
.wpanel .content{
  position:relative;z-index:2;width:100%;
  padding:0 clamp(1.2rem,4vw,4rem) clamp(2.2rem,7vh,4.5rem);
  display:flex;flex-direction:column;gap:.9rem;
}
.wpanel:nth-child(even) .content{align-items:flex-end;text-align:right}
.wpanel .idx{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sun);
}
.wpanel h3{
  font-weight:900;font-variation-settings:'wdth' 68;text-transform:uppercase;
  font-size:clamp(3rem,11vw,10.5rem);line-height:.85;letter-spacing:-.015em;
  text-shadow:0 2px 40px rgba(20,19,16,.45);
}
.wpanel .tag{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.05rem,2vw,1.7rem);color:rgba(228,224,212,.88);
}
.work-dots{position:absolute;right:clamp(.9rem,2vw,1.6rem);top:0;bottom:0;z-index:5;pointer-events:none}
.work-dots .stick{
  position:sticky;top:50svh;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:.65rem;width:8px;
}
.work-dots i{width:7px;height:7px;border-radius:50%;background:rgba(228,224,212,.3);transition:transform .3s,background .3s}
.work-dots i.on{background:linear-gradient(135deg,var(--sun),var(--rose));transform:scale(1.5)}
@media(max-width:860px){
  .wpanel{min-height:100svh}
  .wpanel:nth-child(even) .content{align-items:flex-start;text-align:left}
  .work-dots{display:none}
}

/* ---------- services ---------- */
.svc-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1rem,3vw,3rem);align-items:baseline;
  padding:clamp(1.4rem,3.4vh,2.2rem) 0;border-bottom:1px solid var(--line);cursor:default;
  transition:padding-left .4s cubic-bezier(.7,0,.2,1);
}
.svc-row:first-of-type{border-top:1px solid var(--line)}
.svc-row:hover{padding-left:clamp(.6rem,2vw,1.6rem)}
.svc-row .n{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--rose)}
.svc-row h3{
  font-weight:850;font-variation-settings:'wdth' 72;text-transform:uppercase;
  font-size:clamp(1.7rem,4.6vw,3.6rem);line-height:1;letter-spacing:-.01em;
  transition:font-variation-settings .45s cubic-bezier(.7,0,.2,1),color .3s;
}
.svc-row:hover h3{font-variation-settings:'wdth' 100;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.svc-row p{font-size:clamp(.85rem,1.3vw,1rem);line-height:1.5;max-width:26em;color:rgba(20,19,16,.78)}
@media(max-width:720px){.svc-row{grid-template-columns:auto 1fr}.svc-row p{grid-column:2;max-width:none}}

/* ---------- contact ---------- */
.contact{background:var(--soot);color:var(--bone)}
.contact .big{
  font-weight:900;font-variation-settings:'wdth' 64;text-transform:uppercase;
  font-size:clamp(2.6rem,9.5vw,9rem);line-height:.88;letter-spacing:-.015em;
}
.contact .big em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-blurb{margin-top:1.6rem;max-width:30em;font-size:clamp(.95rem,1.4vw,1.1rem);line-height:1.55;color:rgba(228,224,212,.8)}
.socials{display:flex;gap:1.3rem;margin-top:clamp(1.8rem,4vh,2.6rem)}
.socials a{display:block;width:30px;height:30px;transition:transform .3s}
.socials a:hover{transform:translateY(-3px)}
.socials svg{width:100%;height:100%}
.cform{display:flex;flex-direction:column;gap:1.4rem}
.cform .frow{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
@media(max-width:520px){.cform .frow{grid-template-columns:1fr}}
.cform label{display:flex;flex-direction:column;gap:.5rem}
.cform label span{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(228,224,212,.65)}
.cform input,.cform textarea{
  background:transparent;border:0;border-bottom:1px solid var(--line-light);
  color:var(--bone);font-family:var(--sans);font-size:1rem;padding:.55rem 0;
  border-radius:0;resize:vertical;transition:border-color .3s;
}
.cform input:focus,.cform textarea:focus{outline:none;border-bottom-color:var(--rose)}
.ig{margin-top:clamp(3.5rem,9vh,6rem)}
.ig-head{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;
  color:rgba(228,224,212,.65);border-bottom:1px solid var(--line-light);
  padding-bottom:.8rem;margin-bottom:1.1rem;
}
.ig-head a{background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem}
@media(max-width:860px){.ig-grid{grid-template-columns:repeat(3,1fr)}}
.igt{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--soot-2)}
.igt img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.7,0,.2,1)}
.igt::after{
  content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;
  background:linear-gradient(115deg,rgba(255,131,48,.45),rgba(255,77,140,.45));
}
.igt:hover img{transform:scale(1.06)}
.igt:hover::after{opacity:1}
.sig{display:block;height:clamp(64px,9vw,104px);width:auto;margin:clamp(3rem,8vh,5rem) 0 0}
.cta{
  display:inline-flex;align-items:center;gap:.9rem;align-self:flex-start;
  background:transparent;color:var(--bone);cursor:pointer;font-family:var(--mono);font-size:clamp(.85rem,1.6vw,1.1rem);letter-spacing:.08em;
  border:1px solid var(--bone);padding:1rem 1.6rem;border-radius:999px;
  transition:background .3s,color .3s,border-color .3s;
}
.cta:hover{background:linear-gradient(100deg,var(--sun),var(--rose));border-color:var(--rose);color:var(--soot)}
.contact .meta-row{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line-light);
  font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(228,224,212,.65);
}
.contact .meta-row a:hover{color:var(--bone)}
.socials{display:flex;gap:1.4rem}

.reveal{opacity:0;transform:translateY(28px)}
.no-js .reveal,html.reduced .reveal{opacity:1;transform:none}

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

/* ---------- work dropdown (exhibition index) ---------- */
.wd{
  position:fixed;top:0;left:0;right:0;z-index:98;background:var(--soot);color:var(--bone);
  padding:4.6rem clamp(1.2rem,3vw,2.5rem) 1.6rem;
  transform:translateY(-103%);transition:transform .5s cubic-bezier(.7,0,.2,1);
  box-shadow:0 30px 60px rgba(20,19,16,.45);
}
.wd.open{transform:none}
.wd-row{
  display:grid;grid-template-columns:3.2ch 1fr auto;gap:clamp(1rem,3vw,2.5rem);
  align-items:baseline;padding:.85rem 0;border-bottom:1px solid var(--line-light);
}
.wd-row:first-child{border-top:1px solid var(--line-light)}
.wd-row .n{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--sun)}
.wd-row .t{
  font-weight:850;font-variation-settings:'wdth' 72;text-transform:uppercase;
  font-size:clamp(1.15rem,2.2vw,1.7rem);letter-spacing:-.005em;line-height:1;
  transition:font-variation-settings .4s cubic-bezier(.7,0,.2,1);
}
.wd-row:hover .t{
  font-variation-settings:'wdth' 96;
  background:linear-gradient(100deg,var(--sun),var(--rose));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wd-row .c{font-family:var(--serif);font-style:italic;font-size:clamp(.85rem,1.3vw,1.05rem);color:rgba(228,224,212,.65);text-align:right}
.wd-foot{
  display:flex;justify-content:space-between;font-family:var(--mono);font-size:.62rem;
  text-transform:uppercase;letter-spacing:.16em;color:rgba(228,224,212,.45);padding-top:.9rem;
}
@media(max-width:720px){.wd{display:none}}

/* mobile menu: work index sublist */
.mnav .mlabel{
  font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;
  color:var(--sun);margin:.4rem 0 .2rem;
}
.mnav .msub{display:flex;flex-direction:column;border-bottom:1px solid var(--line-light);padding-bottom:.6rem;margin-bottom:.4rem}
.mnav .msub a{
  display:flex;gap:.8rem;align-items:baseline;padding:.42rem 0;
  font-weight:700;font-variation-settings:'wdth' 80;text-transform:uppercase;
  font-size:clamp(1.05rem,4.6vw,1.4rem);
}
.mnav .msub a i{font-family:var(--mono);font-style:normal;font-size:.62rem;color:var(--sun);letter-spacing:.1em}

/* ---------- homepage panel links ---------- */
.wpanel .content{text-decoration:none;color:inherit}
.wpanel .open-cue{
  display:inline-flex;align-items:center;gap:.55rem;margin-top:.4rem;
  font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;
  color:rgba(228,224,212,.75);transition:color .3s;
}
.wpanel a.content:hover .open-cue{color:var(--sun)}

/* ---------- project pages ---------- */
.pbody{background:var(--bone);color:var(--soot)}
.phero{
  position:relative;height:72svh;min-height:480px;overflow:hidden;
  display:flex;align-items:flex-end;background:var(--soot);color:var(--bone);
}
.phero img,.phero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,19,16,.55),rgba(20,19,16,.08) 40%,rgba(20,19,16,.82)),
  linear-gradient(115deg,rgba(255,131,48,.12),rgba(255,77,140,.12));
}
.phero .ph-in{position:relative;z-index:2;width:100%;padding:0 clamp(1.2rem,4vw,4rem) clamp(2rem,6vh,3.5rem);display:flex;flex-direction:column;gap:.8rem}
.phero .idx{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sun)}
.phero h1{
  font-weight:900;font-variation-settings:'wdth' 68;text-transform:uppercase;
  font-size:clamp(2.6rem,9vw,8rem);line-height:.86;letter-spacing:-.015em;
}
.phero .tag{font-family:var(--serif);font-style:italic;font-size:clamp(1.05rem,1.9vw,1.6rem);color:rgba(228,224,212,.85)}
.pmeta{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.2rem;
  border-bottom:1px solid var(--line);padding-bottom:clamp(1.6rem,4vh,2.4rem);
}
.pmeta div span{display:block;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(20,19,16,.55);margin-bottom:.4rem}
.pmeta div b{font-weight:700;font-size:.98rem}
.psec{
  display:block;
  padding:clamp(1.8rem,5vh,3rem) 0;border-bottom:1px solid var(--line);
}
.psec:last-of-type{border-bottom:0}
.psec h2{
  font-family:var(--mono);font-weight:500;font-size:.72rem;text-transform:uppercase;
  letter-spacing:.18em;color:var(--rose);padding-top:.3rem;margin-bottom:1.2rem;
}
.psec p{font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.6;max-width:52em;display:block}
.inline-link{color:var(--rose);border-bottom:1px solid var(--rose);transition:opacity .2s}
.inline-link:hover{opacity:.7}
.psec p+p{margin-top:1em}
.psec ul{margin:1em 0 1em 1.4em;display:block}
.psec ul li{font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.6;margin-bottom:.4em}
.project-intro{
  font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.7;max-width:52em;
  padding:clamp(1.8rem,4vh,2.8rem) 0;border-bottom:1px solid var(--line);
  margin-bottom:0;display:block;
}
.pgallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem);padding-top:clamp(2rem,5vh,3rem)}
.pgallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--bone-2)}
.pgallery .wide{grid-column:1/-1}
.pgallery .wide img{aspect-ratio:21/9}
.pgallery .full img{aspect-ratio:auto;height:auto;object-fit:contain;background:var(--soot)}
.pgallery .full{grid-column:1/-1}
.pgallery-process{grid-template-columns:repeat(4,1fr)}
.pgallery-process img{aspect-ratio:2/3}
@media(max-width:720px){.pgallery-process{grid-template-columns:1fr 1fr}}
@media(max-width:720px){
  .pgallery{grid-template-columns:1fr}
}
.related{background:var(--soot);color:var(--bone);display:grid;grid-template-columns:1fr 1fr}
.related a{
  padding:clamp(2.2rem,7vh,4rem) clamp(1.2rem,4vw,4rem);
  display:flex;flex-direction:column;gap:.6rem;transition:background .3s;
}
.related a+a{border-left:1px solid var(--line-light);text-align:right;align-items:flex-end}
.related a:hover{background:var(--soot-2)}
.related .dir{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sun)}
.related .rt{
  font-weight:850;font-variation-settings:'wdth' 70;text-transform:uppercase;
  font-size:clamp(1.4rem,3.6vw,2.8rem);line-height:.95;
}
.related a:hover .rt{background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:600px){.related{grid-template-columns:1fr}.related a+a{border-left:0;border-top:1px solid var(--line-light)}}

/* ---------- interior page heads / about / contact ---------- */
.ipage-head{padding-top:clamp(7rem,16vh,10rem)}
.ipage-head .kicker{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--rose);margin-bottom:1rem}
.ipage-head h1{
  font-weight:900;font-variation-settings:'wdth' 66;text-transform:uppercase;
  font-size:clamp(2.8rem,9vw,7.5rem);line-height:.88;letter-spacing:-.015em;
}
.ipage-head h1 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.disciplines{border-top:1px solid var(--line);margin-top:clamp(2rem,5vh,3rem)}
.d-row{
  display:grid;grid-template-columns:3ch 1fr;gap:clamp(1rem,3vw,2.5rem);align-items:baseline;
  padding:1rem 0;border-bottom:1px solid var(--line);
}
.d-row .n{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--rose)}
.d-row .t{font-weight:800;font-variation-settings:'wdth' 78;text-transform:uppercase;font-size:clamp(1.2rem,3vw,2rem);line-height:1;transition:font-variation-settings .4s cubic-bezier(.7,0,.2,1)}
.d-row:hover .t{font-variation-settings:'wdth' 100;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.prose p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6;max-width:36em}
.prose p+p{margin-top:1.2em}

/* ---------- slim footer ---------- */
.foot-slim{background:var(--soot);color:var(--bone);padding:clamp(2.5rem,7vh,4rem) clamp(1.2rem,3vw,2.5rem) 1.6rem}
.foot-slim .sig{height:clamp(54px,7vw,80px);margin:0 0 1.6rem}

/* ---------- extended project gallery ---------- */
.pgallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem);padding-top:clamp(2rem,5vh,3rem);align-items:start}
.pgallery .wide{grid-column:1/-1}
.pgallery .wide img{aspect-ratio:16/9;width:100%;object-fit:cover;display:block;background:var(--bone-2)}
.pgallery img{width:100%;object-fit:cover;display:block;background:var(--bone-2);aspect-ratio:4/3}
.pgallery .tall img{aspect-ratio:2/3}
.pgallery .stack{display:flex;flex-direction:column;gap:clamp(.8rem,2vw,1.4rem)}
.pgallery .stack img{aspect-ratio:4/3}
.pgallery video{width:100%;object-fit:cover;display:block;background:var(--bone-2);aspect-ratio:4/3}
.pgallery .wide video{aspect-ratio:16/9}
.pgallery .tall video{aspect-ratio:2/3}
.pgallery .square{grid-column:1/-1;display:flex;justify-content:center}
.pgallery .square video{width:min(100%,640px);aspect-ratio:1/1;object-fit:cover}
.pgallery .solo{grid-column:1/-1;display:flex;justify-content:center}
.pgallery .solo img,.pgallery .solo video{width:auto;max-width:min(100%,440px);max-height:80vh;aspect-ratio:auto;object-fit:contain;background:var(--bone-2)}
@media(max-width:720px){
  .pgallery{grid-template-columns:1fr}
  .pgallery .tall img,.pgallery .wide img,.pgallery .tall video,.pgallery .wide video{aspect-ratio:auto;max-height:80vw;object-fit:cover}
}

/* ---------- project video embed ---------- */
.pvideo{margin-top:clamp(2.5rem,6vh,4rem)}
.pvideo-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--soot)}
.pvideo-wrap iframe{position:absolute;inset:0;width:100%;height:100%}
.pvideo-cap{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(20,19,16,.55);margin-top:.7rem}
.pvideo-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.4rem);margin-top:clamp(1.5rem,4vh,2.5rem)}
.pvideo-grid .pvideo{margin-top:0}
@media(max-width:720px){.pvideo-grid{grid-template-columns:1fr}}

/* ---------- formspree states ---------- */
.form-success{
  padding:2rem 0;
  font-size:clamp(1.1rem,1.8vw,1.4rem);
  font-family:var(--serif);font-style:italic;
}
.form-error{
  color:var(--rose);font-family:var(--mono);
  font-size:.72rem;letter-spacing:.1em;padding:.5rem 0;
}
.field-error{
  display:block;color:var(--rose);
  font-family:var(--mono);font-size:.64rem;
  letter-spacing:.1em;margin-top:.3rem;
}
[data-fs-submit-btn]:disabled{opacity:.5;cursor:not-allowed}

/* ---------- interior page CTA band ---------- */
.page-cta{
  background:var(--bone);border-top:1px solid var(--line);
  text-align:center;
  padding:clamp(3.2rem,9vh,6rem) clamp(1.2rem,4vw,4rem);
  display:flex;flex-direction:column;align-items:center;gap:clamp(1.4rem,3.5vh,2.2rem);
}
.page-cta h2{
  font-weight:900;font-variation-settings:'wdth' 66;text-transform:uppercase;
  font-size:clamp(2.2rem,6.5vw,5rem);line-height:.9;letter-spacing:-.015em;max-width:14em;
}
.page-cta h2 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;background:linear-gradient(100deg,var(--sun),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.page-cta .cta{align-self:center;color:var(--soot);border-color:var(--soot)}

/* ---------- contact: clear separation between socials and form when stacked ---------- */
@media(max-width:860px){
  .contact-grid .cform{
    margin-top:clamp(2.5rem,8vw,3.5rem);
    padding-top:clamp(2.5rem,8vw,3.5rem);
    border-top:1px solid rgba(20,19,16,.18);
  }
}
