:root{--bg:#e9ebe8;--bg-deep:#dfe2dc;--ink:#16181a;--ink-soft:#3a3f44;--muted:#6a7178;--line:#16181a1f;--timber:#8f6a45;--timber-deep:#6e4f32;--paper:#f7f6f2;--hero-veil:linear-gradient(105deg, #0e1012b8 0%, #0e101273 42%, #0e10122e 100%);--font-display:"Instrument Serif", Georgia, serif;--font-body:"Sora", sans-serif;--space:clamp(1.25rem, 3vw, 2.5rem);--max:1200px;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%, #8f6a4514, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #50645a12, transparent 50%), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;font-weight:400;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}h1,h2,h3,p{margin:0}#root{min-height:100vh}.site{flex-direction:column;min-height:100vh;display:flex}.site-main{flex:1}.nav{z-index:40;padding:1.1rem var(--space);transition:background .4s var(--ease), backdrop-filter .4s var(--ease), color .3s ease;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.nav--solid{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);color:var(--ink);background:#e9ebe8e0}.nav--hero{color:var(--paper)}.nav__brand{font-family:var(--font-display);letter-spacing:.01em;font-size:1.35rem}.nav__links{letter-spacing:.08em;text-transform:uppercase;gap:1.75rem;margin:0;padding:0;font-size:.78rem;font-weight:500;list-style:none;display:flex}.nav__links a{opacity:.82;transition:opacity .25s}.nav__links a:hover{opacity:1}.hero{min-height:100svh;color:var(--paper);align-items:end;display:grid;position:relative;overflow:hidden}.hero__media{z-index:0;position:absolute;inset:0}.hero__media img{object-fit:cover;width:100%;height:100%;animation:heroZoom 18s var(--ease) forwards;transform:scale(1.06)}.hero__veil{background:var(--hero-veil);z-index:1;position:absolute;inset:0}.hero__content{z-index:2;width:min(100%, var(--max));padding:7rem var(--space) clamp(3rem, 8vh, 5rem);animation:rise 1s var(--ease) both;margin:0 auto;position:relative}.hero__brand{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1.25rem;font-size:clamp(3.4rem,9vw,6.5rem);font-weight:400;line-height:.92}.hero__headline{font-family:var(--font-display);max-width:18ch;margin-bottom:.85rem;font-size:clamp(1.35rem,2.6vw,1.85rem);font-style:italic;font-weight:400;line-height:1.25}.hero__support{color:#f7f6f2d1;max-width:34ch;margin-bottom:2rem;font-size:.95rem;font-weight:300}.hero__actions{flex-wrap:wrap;gap:.85rem;display:flex}.btn{letter-spacing:.1em;text-transform:uppercase;transition:transform .3s var(--ease), background .3s ease, color .3s ease, border-color .3s ease;justify-content:center;align-items:center;padding:.85rem 1.4rem;font-size:.72rem;font-weight:500;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--solid{background:var(--paper);color:var(--ink)}.btn--solid:hover{background:#fff}.btn--ghost{color:var(--paper);border:1px solid #f7f6f273}.btn--ghost:hover{border-color:var(--paper)}.btn--ink{background:var(--ink);color:var(--paper)}.btn--ink:hover{background:#000}.btn--line{border:1px solid var(--ink)}.btn--line:hover{background:var(--ink);color:var(--paper)}.section{width:min(100%, var(--max));padding:clamp(4rem, 10vw, 7rem) var(--space);margin:0 auto}.section__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:clamp(2rem,5vw,3rem);display:flex}.section__label{letter-spacing:.14em;text-transform:uppercase;color:var(--timber-deep);font-size:.72rem;font-weight:500}.section__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2rem,4.5vw,3rem);font-weight:400;line-height:1.1}.section__lede{max-width:40ch;color:var(--ink-soft);font-weight:300}.work-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.work-item{border-bottom:1px solid var(--line);grid-template-columns:1fr;align-items:center;gap:1.25rem;padding:1.5rem 0;display:grid}@media (width>=860px){.work-item{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2.5rem;padding:1.75rem 0}.work-item:nth-child(2n) .work-item__visual{order:-1}}.work-item__meta{gap:.65rem;display:grid}.work-item__top{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:.5rem 1rem;font-size:.72rem;display:flex}.work-item__title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.25rem);line-height:1.1;transition:color .3s}.work-item:hover .work-item__title{color:var(--timber-deep)}.work-item__summary{color:var(--ink-soft);max-width:42ch;font-size:.92rem;font-weight:300}.work-item__roles{letter-spacing:.04em;color:var(--timber-deep);max-width:48ch;font-size:.72rem}.work-item__link{letter-spacing:.1em;text-transform:uppercase;color:var(--timber-deep);align-items:center;gap:.45rem;margin-top:.4rem;font-size:.72rem;font-weight:500;display:inline-flex}.work-item__link span{transition:transform .35s var(--ease)}.work-item:hover .work-item__link span{transform:translate(4px)}.work-item__visual{aspect-ratio:16/10;background:#c8cbc4;position:relative;overflow:hidden}.work-item__visual img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease)}.work-item:hover .work-item__visual img{transform:scale(1.04)}.about{border-block:1px solid var(--line);background:#16181a08}.about__grid{gap:2.5rem;display:grid}@media (width>=900px){.about__grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:4rem}}.about__copy{gap:1.25rem;display:grid}.about__copy p{color:var(--ink-soft);max-width:38ch;font-size:1.05rem;font-weight:300}.about__lists{gap:2rem;display:grid}.about__block h3{letter-spacing:.12em;text-transform:uppercase;color:var(--timber-deep);margin-bottom:.9rem;font-size:.72rem;font-weight:500}.timeline{gap:.95rem;margin:0;padding:0;list-style:none;display:grid}.timeline li{border-bottom:1px solid var(--line);gap:.15rem;padding-bottom:.95rem;display:grid}.timeline li:last-child{border-bottom:none;padding-bottom:0}.timeline__main{justify-content:space-between;gap:1rem;font-size:.92rem;font-weight:500;display:flex}.timeline__sub{color:var(--muted);font-size:.82rem}.timeline a:hover{color:var(--timber-deep)}.contact{text-align:left}.contact__email{font-family:var(--font-display);word-break:break-word;margin:1rem 0 1.5rem;font-size:clamp(1.6rem,4vw,2.6rem)}.contact__email a{border-bottom:1px solid #0000;transition:border-color .25s,color .25s}.contact__email a:hover{color:var(--timber-deep);border-bottom-color:var(--timber)}.contact__place{color:var(--muted);margin-bottom:1.75rem;font-size:.9rem}.footer{padding:1.5rem var(--space) 2.25rem;border-top:1px solid var(--line);color:var(--muted);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:.75rem;font-size:.75rem;display:flex}.project-hero{padding-top:6.5rem}.project-hero__inner{width:min(100%, var(--max));padding:0 var(--space) 2rem;margin:0 auto}.project-hero__back{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.4rem;margin-bottom:1.75rem;font-size:.72rem;font-weight:500;transition:color .25s;display:inline-flex}.project-hero__back:hover{color:var(--ink)}.project-hero__meta{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:.85rem;font-size:.72rem;display:flex}.project-hero__title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.02}.project-hero__summary{max-width:48ch;color:var(--ink-soft);font-size:1.02rem;font-weight:300}.project-hero__location{color:var(--muted);letter-spacing:.02em;margin-top:.85rem;font-size:.82rem}.project-detail{width:min(100%, var(--max));padding:2.5rem var(--space) 1rem;gap:2rem;margin:0 auto;display:grid}@media (width>=860px){.project-detail{grid-template-columns:.85fr 1.15fr;gap:3rem;padding-top:3rem}}.project-detail__label{letter-spacing:.12em;text-transform:uppercase;color:var(--timber-deep);margin-bottom:.9rem;font-size:.72rem;font-weight:500}.role-list{flex-wrap:wrap;gap:.45rem .65rem;margin:0;padding:0;list-style:none;display:flex}.role-list li{letter-spacing:.02em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:.15rem;font-size:.78rem}.scope-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.scope-list li{color:var(--ink-soft);padding-left:1rem;font-size:.9rem;font-weight:300;line-height:1.55;position:relative}.scope-list li:before{content:"";background:var(--timber);width:.35rem;height:.35rem;position:absolute;top:.55em;left:0}.project-cover{aspect-ratio:21/10;background:#c8cbc4;width:100%;min-height:280px;margin-bottom:.5rem;overflow:hidden}.project-cover img{object-fit:cover;width:100%;height:100%;animation:heroZoom 14s var(--ease) forwards}.gallery{width:min(100%, var(--max));padding:1.5rem var(--space) 4rem;gap:1rem;margin:0 auto;display:grid}@media (width>=760px){.gallery{grid-template-columns:1fr 1fr;gap:1.15rem}.gallery__item:first-child,.gallery__item:nth-child(5n){grid-column:1/-1}}.gallery__item{opacity:0;animation:rise .8s var(--ease) forwards;background:#c8cbc4;overflow:hidden;transform:translateY(18px)}.gallery__item img{object-fit:cover;aspect-ratio:4/3;width:100%;height:100%;transition:transform .8s var(--ease)}.gallery__item:first-child img,.gallery__item:nth-child(5n) img{aspect-ratio:21/10}.gallery__item:hover img{transform:scale(1.03)}.practice{border-bottom:1px solid var(--line)}.practice__filters{flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.75rem;display:flex}.practice__filter{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #0000;padding:.35rem 0;font-size:.72rem;font-weight:500;transition:color .25s,border-color .25s}.practice__filter:hover,.practice__filter.is-active{color:var(--ink);border-bottom-color:var(--timber)}.practice__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.practice__card{text-align:left;gap:.65rem;width:100%;padding:0;display:grid}.practice__visual{aspect-ratio:4/3;background:#c8cbc4;display:block;overflow:hidden}.practice__visual img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .7s var(--ease)}.practice__card:hover .practice__visual img{transform:scale(1.04)}.practice__meta{gap:.2rem;display:grid}.practice__cat{letter-spacing:.1em;text-transform:uppercase;color:var(--timber-deep);font-size:.68rem}.practice__name{font-family:var(--font-display);font-size:1.05rem;line-height:1.2}.lightbox{z-index:80;animation:rise .35s var(--ease) both;background:#0e1012e0;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.lightbox__close{letter-spacing:.1em;text-transform:uppercase;color:var(--paper);opacity:.85;font-size:.72rem;position:absolute;top:1rem;right:1.25rem}.lightbox__close:hover{opacity:1}.lightbox__figure{gap:.85rem;max-width:min(1100px,100%);max-height:90vh;margin:0;display:grid}.lightbox__figure img{object-fit:contain;background:#111;width:auto;max-width:100%;max-height:72vh;margin:0 auto}.lightbox__figure figcaption{color:var(--paper);gap:.25rem;display:grid}.lightbox__figure strong{font-family:var(--font-display);font-size:1.35rem;font-weight:400}.lightbox__figure span{letter-spacing:.1em;text-transform:uppercase;color:#f7f6f2a6;font-size:.72rem}.lightbox__figure p{color:#f7f6f2d1;max-width:60ch;font-size:.9rem;font-weight:300}.project-next{width:min(100%, var(--max));padding:0 var(--space) 5rem;border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding-top:2rem;display:flex}.project-next__label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.project-next__title{font-family:var(--font-display);font-size:1.5rem}.missing{padding:8rem var(--space);text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes heroZoom{0%{transform:scale(1.06)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.hero__media img,.project-cover img{transform:none}}
