:root{--paper:#f4f4f4;--panel:#e5e5e5;--charcoal:#1c1c1c;--charcoal-deep:#121212;--charcoal-lift:#191919;--ink:#151515;--ink-soft:#454545;--stone:#5e5e5e;--stone-dark:#9a9a9a;--cream:#f4f4f4;--cream-soft:#c8c8c8;--pine:#444444;--rule:#d4d4d4;--rule-dark:#333333}
.page-head{position:relative;background:var(--charcoal);color:var(--cream);padding:calc(var(--nav-h) + clamp(4rem,2.5rem + 6vw,8rem)) 0 clamp(3rem,2rem + 4vw,6rem);overflow:hidden;isolation:isolate}
.page-head__media{position:absolute;inset:-10% 0;z-index:-2}
.page-head__media img{width:100%;height:100%;object-fit:cover}
.page-head--portrait .page-head__media img{object-position:50% 5%}
.page-head__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient( to top,rgba(20,18,16,0.93) 0%,rgba(20,18,16,0.85) 45%,rgba(20,18,16,0.7) 100% )}
.page-head__inner{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto}
.page-head h1{color:var(--cream);max-width:18ch;margin-bottom:1rem}
.page-head__lede{font-size:var(--fs-lede);line-height:1.45;color:var(--cream-soft);max-width:52ch;margin:0}
.work-grid{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr));gap:clamp(1.25rem,0.9rem + 1.6vw,2.25rem)}
.work-card{margin:0;display:grid;gap:1rem}
.work-card__media{overflow:hidden;border-radius:2px;background:var(--panel)}
.work-card__media img{width:100%;aspect-ratio:4 / 3;object-fit:cover;transition:transform var(--dur-settle) var(--ease-reveal)}
.work-card:hover .work-card__media img{transform:scale(1.03)}
.work-card figcaption{display:grid;gap:0.4rem}
.work-card__tag{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--oxide)}
.work-card__title{font-family:var(--font-display);font-size:var(--fs-display-s);font-weight:700;line-height:1.15;margin:0}
.work-card__note{font-size:var(--fs-small);color:var(--ink-soft);margin:0}
@media (min-width:900px){.work-card--wide{grid-column:span 2}
.work-card--wide .work-card__media img{aspect-ratio:16 / 9}
}
.crew-group{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto}
.crew-group__photo{display:block;width:min(100%,900px);height:auto;margin-inline:auto;border:1px solid var(--rule);border-radius:2px}
.crew-group__frame{position:relative;display:grid;place-items:center;aspect-ratio:16 / 7;background:var(--panel);border:1px solid var(--rule);border-radius:2px;overflow:hidden;text-align:center;padding:var(--gutter)}
.crew-group__frame::before{content:"";position:absolute;inset:0;opacity:0.3;background-image:linear-gradient(var(--pine) 1px,transparent 1px),linear-gradient(90deg,var(--pine) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,#000,transparent 78%);mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,#000,transparent 78%)}
.crew-group__frame>*{position:relative}
.crew-group__label{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--pine);margin:0 0 0.75rem}
.crew-group__text{font-size:var(--fs-small);color:var(--ink-soft);max-width:40ch;margin:0 auto}
.crew-grid{--crew-gap:clamp(1.25rem,0.9rem + 1.6vw,2.25rem);width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;container-type:inline-size;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--crew-gap);list-style:none;padding:0}
.crew-card{--cols:1;flex:0 0 calc((100% - (var(--cols) - 1) * var(--crew-gap)) / var(--cols));min-width:0;display:grid;gap:0.9rem;align-content:start}
@container (min-width:31.5rem){.crew-card{--cols:2}
}
@container (min-width:48.5rem){.crew-card{--cols:3}
}
@container (min-width:65.5rem){.crew-card{--cols:4}
}
.crew-card__portrait{position:relative;aspect-ratio:4 / 5;border-radius:2px;overflow:hidden;background:var(--panel);display:grid;place-items:center}
.crew-card__portrait img{width:100%;height:100%;object-fit:cover}
.crew-card__monogram{font-family:var(--font-display);font-size:clamp(3rem,2rem + 4vw,4.5rem);font-weight:700;letter-spacing:-0.03em;color:var(--paper);background:var(--pine);width:100%;height:100%;display:grid;place-items:center;user-select:none}
.crew-card:nth-child(3n + 2) .crew-card__monogram{background:var(--charcoal)}
.crew-card:nth-child(3n + 3) .crew-card__monogram{background:var(--oxide)}
.crew-card__name{font-family:var(--font-display);font-size:var(--fs-display-s);font-weight:700;margin:0}
.crew-card__role{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--oxide);display:block;margin-top:-0.5rem}
.crew-card__note{font-size:var(--fs-small);color:var(--ink-soft);margin:0}
.service-list{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;list-style:none;padding:0;display:grid;gap:0;counter-reset:service}
.service-row{counter-increment:service;display:grid;grid-template-columns:4.5rem minmax(0,1fr) minmax(0,1.15fr);gap:clamp(1.25rem,0.8rem + 2vw,3rem);padding-block:clamp(2rem,1.5rem + 2vw,3.25rem);border-top:1px solid var(--rule);align-items:start}
.service-row:last-child{border-bottom:1px solid var(--rule)}
.service-row__num::before{content:"0" counter(service);font-family:var(--font-display);font-size:var(--fs-display-s);font-weight:700;color:var(--oxide);letter-spacing:0.02em}
.service-row h2{font-size:var(--fs-display-m);margin:0 0 0.5rem;text-transform:none;letter-spacing:-0.01em}
.service-row__lede{font-size:var(--fs-small);color:var(--stone);margin:0}
.service-row__body p{margin-bottom:0.9rem}
.service-row__tags{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:0.45rem}
.service-row__tags li{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--pine);border:1px solid var(--rule);border-radius:2px;padding:0.4rem 0.7rem}
@media (max-width:820px){.service-row{grid-template-columns:3rem minmax(0,1fr)}
.service-row__body{grid-column:2}
}
.contact-layout{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,1.5rem + 5vw,6rem);align-items:start}
@media (max-width:880px){.contact-layout{grid-template-columns:minmax(0,1fr)}
}
.reach{display:grid;gap:0}
.reach__row{display:grid;gap:0.4rem;padding-block:clamp(1.25rem,1rem + 1vw,1.85rem);border-top:1px solid var(--rule)}
.reach__row:last-child{border-bottom:1px solid var(--rule)}
.reach__label{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--stone)}
.reach__value{font-family:var(--font-display);font-size:clamp(1.35rem,1.1rem + 1.2vw,2rem);font-weight:700;line-height:1.15;letter-spacing:-0.015em;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
a.reach__value{border-bottom:2px solid var(--oxide);padding-bottom:2px;display:inline-block}
a.reach__value:hover{color:var(--oxide)}
.reach__value--pending{color:var(--stone);border-bottom:2px dashed var(--rule);padding-bottom:2px;display:inline-block}
.reach__note{font-size:var(--fs-small);color:var(--ink-soft);margin:0.25rem 0 0;max-width:42ch}
.message-form{background:var(--panel);border-radius:2px;padding:clamp(1.5rem,1.1rem + 1.8vw,2.5rem)}
.message-form h2{font-size:var(--fs-display-m);text-transform:none;letter-spacing:-0.01em;margin-bottom:0.5rem}
.message-form__intro{font-size:var(--fs-small);color:var(--ink-soft);margin-bottom:1.75rem;max-width:44ch}
.message-form .field input,.message-form .field textarea{background:var(--paper)}
.message-form .cta{width:100%;justify-content:center;margin-top:0.5rem}
.notice{display:grid;gap:0.5rem;border-left:3px solid var(--pine);background:var(--panel);border-radius:0 2px 2px 0;padding:1.1rem 1.35rem;font-size:var(--fs-small);color:var(--ink-soft)}
.notice strong{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--pine)}
.notice p{margin:0}
.prose{width:min(100% - (var(--gutter) * 2),46rem);margin-inline:auto}
.prose h2{font-size:var(--fs-display-m);text-transform:none;letter-spacing:-0.01em;margin-top:2.5rem}
.prose h2:first-of-type{margin-top:0}
.prose h3{font-size:var(--fs-display-s);margin-top:1.75rem}
.prose ul{padding-left:1.25em}
.prose li{margin-bottom:0.5em}
.prose__updated{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--stone);margin-bottom:2.5rem}
.split{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,1.2rem + 4vw,5rem);align-items:center}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}
}
.split--flip .split__media{order:2}
@media (max-width:860px){.split--flip .split__media{order:0}
}
.split__media img{width:100%;border-radius:2px}
.split__copy p{max-width:46ch}
.notfound{min-height:78svh;display:grid;place-items:center;text-align:center;padding:calc(var(--nav-h) + 3rem) var(--gutter) 5rem}
.notfound__inner{max-width:44ch}
.wall{width:min(100% - (var(--gutter) * 2),var(--shell));margin-inline:auto;columns:3 17rem;column-gap:clamp(0.7rem,0.45rem + 1vw,1.15rem)}
.tile{position:relative;margin:0 0 clamp(0.7rem,0.45rem + 1vw,1.15rem);break-inside:avoid;overflow:hidden;border-radius:2px;background:var(--panel);isolation:isolate}
.tile img{display:block;width:100%;height:auto}
.tile__cap{position:absolute;inset:auto 0 0 0;display:grid;gap:0.2rem;padding:2.75rem 0.95rem 0.9rem;background:linear-gradient(to top,rgba(0,0,0,0.94) 0%,rgba(0,0,0,0.90) 56%,rgba(0,0,0,0.45) 78%,rgba(0,0,0,0) 100%);opacity:0;translate:0 0.65rem;transition:opacity var(--dur-settle) var(--ease-reveal),translate var(--dur-settle) var(--ease-reveal)}
.tile__tag{font-family:var(--font-display);font-size:var(--fs-meta);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:#f5c4ae}
.tile__title{font-family:var(--font-display);font-size:var(--fs-small);font-weight:600;line-height:1.25;color:#ffffff;text-wrap:balance}
@media (hover:hover) and (pointer:fine){.tile:hover .tile__cap{opacity:1;translate:0 0}
}
@media (hover:none),(pointer:coarse){.tile__cap{opacity:1;translate:0 0;transition:none}
}
@media (prefers-reduced-motion:reduce){.tile__cap{transition:none;translate:none}
}
.band--wall{padding-bottom:clamp(3rem,2rem + 4vw,6rem)}
