:root{
  --bg:#12100e; --bg-2:#1a1715; --ink:#efe8de; --muted:#9b9189; --line:rgba(239,232,222,.14);
  --rust:#d4683f; --rust-deep:#8b4a32; --cream:#ebe3d7; --cream-ink:#1b1714;
  --f-display:'Clash Display','Satoshi',sans-serif; --f-body:'Satoshi','Inter',sans-serif; --f-serif:'Instrument Serif',serif;
  --ease:cubic-bezier(.16,1,.3,1); --pad:clamp(20px,4vw,64px);
  --text-xs:clamp(.75rem,.7rem + .2vw,.85rem); --text-sm:clamp(.875rem,.8rem + .3vw,1rem); --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
::selection{background:var(--rust);color:#fff}
:focus-visible{outline:2px solid var(--rust);outline-offset:4px}
.wrap{padding-inline:var(--pad);max-width:1600px;margin-inline:auto}
.serif{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:0}
.kicker{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:1.25rem}
.h2{font-family:var(--f-display);font-weight:600;font-size:clamp(2.4rem,1.2rem + 5vw,6.5rem);line-height:.95;letter-spacing:-.03em}
.h2 .serif{color:var(--rust);font-size:1.08em}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5fd38d;margin-right:.6em;box-shadow:0 0 0 0 rgba(95,211,141,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(95,211,141,0)}100%{box-shadow:0 0 0 0 rgba(95,211,141,0)}}

/* 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='200' height='200'%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");animation:grain 8s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}10%{transform:translate(-5%,-10%)}30%{transform:translate(3%,-15%)}50%{transform:translate(12%,9%)}70%{transform:translate(9%,4%)}90%{transform:translate(-1%,7%)}}

/* progress */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--rust);transform-origin:0 50%;transform:scaleX(0);z-index:120}

/* loader */
.loader{position:fixed;inset:0;z-index:200;background:var(--rust-deep);display:none;place-items:center;color:var(--cream)}
.js .loader{display:grid}
.loader__inner{text-align:center}
.loader__name{font-family:var(--f-display);font-weight:600;font-size:clamp(3.5rem,14vw,12rem);line-height:1;letter-spacing:-.01em;display:flex;overflow:hidden}
.loader__name span{display:inline-block;transform:translateY(110%)}
.loader__count{font-size:var(--text-sm);letter-spacing:.2em;margin-top:1rem;opacity:.8;font-variant-numeric:tabular-nums}
.loader__bar{position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--cream);transform:scaleX(0);transform-origin:0 50%}

/* cursor */
.cursor,.cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:150;border-radius:50%;display:none;opacity:0}
body.cursor-on .cursor,body.cursor-on .cursor-dot{opacity:1}
@media (hover:hover) and (pointer:fine){.cursor,.cursor-dot{display:block}body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}}
.cursor{width:40px;height:40px;margin:-20px 0 0 -20px;border:1px solid rgba(239,232,222,.5);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s var(--ease),border-color .35s}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--rust)}
.cursor__label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .2s}
.cursor.is-hover{width:70px;height:70px;margin:-35px 0 0 -35px;border-color:transparent;background:rgba(212,104,63,.25)}
.cursor.is-label{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--rust);border-color:var(--rust)}
.cursor.is-label .cursor__label{opacity:1}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:20px var(--pad);mix-blend-mode:difference;color:#fff;transition:transform .5s var(--ease)}
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:none}
.lb__nav{display:grid;place-items:center}
.nav.is-hidden{transform:translateY(-110%)}
.nav__logo{display:flex;align-items:center;gap:.75rem;font-family:var(--f-display);font-weight:600;font-size:1rem;letter-spacing:.02em}
.nav__links{display:flex;gap:2.25rem;font-size:var(--text-sm)}
.nav__links a,.nav__cta{position:relative;display:inline-block}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__cta{font-size:var(--text-sm);padding:.6rem 1.2rem;border:1px solid currentColor;border-radius:99px;transition:background .3s,color .3s}
.nav__cta:hover{background:#fff;color:#000}
.nav__burger{display:none;width:44px;height:44px;position:relative}
.nav__burger span{position:absolute;left:10px;right:10px;height:1.5px;background:currentColor;transition:transform .4s var(--ease)}
.nav__burger span:first-child{top:17px}.nav__burger span:last-child{top:26px}
.menu-open .nav__burger span:first-child{transform:translateY(4.5px) rotate(45deg)}
.menu-open .nav__burger span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:99;background:var(--rust-deep);color:var(--cream);display:flex;flex-direction:column;justify-content:space-between;padding:110px var(--pad) 40px;clip-path:circle(0% at calc(100% - 44px) 42px);transition:clip-path .8s var(--ease);visibility:hidden}
.menu-open .menu{clip-path:circle(150% at calc(100% - 44px) 42px);visibility:visible}
.menu__links{display:flex;flex-direction:column;gap:.4rem}
.menu__links a{font-family:var(--f-display);font-weight:600;font-size:clamp(2.6rem,11vw,4.5rem);line-height:1.05;letter-spacing:-.03em;display:flex;align-items:baseline;gap:1rem}
.menu__links i{font-family:var(--f-body);font-style:normal;font-size:.8rem;opacity:.6}
.menu__foot{display:flex;flex-direction:column;gap:.4rem;font-size:var(--text-sm)}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:120px var(--pad) 48px;overflow:hidden}
.hero__top{display:flex;justify-content:space-between;gap:1rem;position:relative;z-index:2}
.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.eyebrow b{color:var(--ink);font-weight:500}
.hero__title{position:relative;z-index:2;font-family:var(--f-display);font-weight:600;text-transform:uppercase;font-size:clamp(4rem,16vw,18rem);line-height:.86;letter-spacing:-.015em;margin-block:auto 0;padding-top:4vh}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.02em}
.line--indent{padding-left:12vw;display:flex!important;align-items:center;gap:.15em}
.hero__star{color:var(--rust);font-size:.35em;display:inline-block;animation:spin 12s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.split{display:inline-block}
.char{display:inline-block;will-change:transform}
.hero__bottom{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-top:3rem}
.hero__lede{max-width:34ch;font-size:clamp(1.05rem,.9rem + .6vw,1.4rem);line-height:1.45;color:var(--ink)}
.badge{position:relative;width:clamp(110px,10vw,150px);aspect-ratio:1;display:grid;place-items:center;flex-shrink:0}
.badge__ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite;fill:var(--ink);font-size:13.5px;letter-spacing:.2em;font-family:var(--f-body);font-weight:500}
.badge__arrow{width:34%;height:34%;color:var(--rust);transition:transform .4s var(--ease)}
.badge:hover .badge__arrow{transform:translateY(6px)}
.hero__float{position:absolute;inset:0;z-index:1;pointer-events:none}
.fl{position:absolute;overflow:hidden;border-radius:4px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);will-change:transform}
.fl img{width:100%;height:100%;object-fit:cover}
.fl--1{width:clamp(130px,12.5vw,240px);aspect-ratio:4/3;top:28%;right:2.5%}
.fl--2{width:clamp(90px,8.5vw,160px);aspect-ratio:4/3;top:15%;left:47%}
.fl--3{width:clamp(110px,11vw,210px);aspect-ratio:4/3;bottom:7%;right:22%}
.fl--4,.fl--5{display:none}

/* marquee */
.marquee{border-block:1px solid var(--line);padding-block:1.6rem;overflow:hidden;background:var(--bg)}
.marquee__track{display:flex;width:max-content;animation:marq 38s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;align-items:center;gap:2.5rem;padding-right:2.5rem}
.marquee span{font-family:var(--f-display);font-weight:500;font-size:clamp(1.8rem,1rem + 3vw,3.6rem);letter-spacing:-.02em;white-space:nowrap;transition:color .3s}
.marquee span:nth-child(4n+1){-webkit-text-stroke:1px var(--ink);color:transparent}
.marquee i{color:var(--rust);font-style:normal;font-size:1.4rem}
@keyframes marq{to{transform:translateX(-50%)}}

/* manifesto */
.manifesto{padding-block:clamp(90px,14vw,200px)}
.manifesto__text{font-family:var(--f-display);font-weight:500;font-size:clamp(1.6rem,.9rem + 2.6vw,3.6rem);line-height:1.12;letter-spacing:-.02em;max-width:24ch;max-width:min(1300px,100%)}
.js .manifesto__text .w{opacity:.16;transition:opacity .2s}
.manifesto__text .w.is-rust{color:var(--rust)}
.about{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:clamp(32px,6vw,110px);margin-top:clamp(70px,9vw,130px);align-items:end}
.about__photo{position:relative;overflow:hidden;border-radius:4px}
.about__photo img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .8s var(--ease),transform 1.2s var(--ease)}
.about__photo:hover img{filter:grayscale(0);transform:scale(1.04)}
.about__photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.25rem;font-family:var(--f-display);font-weight:600;font-size:1.25rem;line-height:1.2;background:linear-gradient(transparent,rgba(0,0,0,.75))}
.about__photo figcaption span{font-family:var(--f-body);font-weight:400;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:#d8cfc4}
.stats{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.stat{padding:2rem 1.5rem 2rem 0;border-bottom:1px solid var(--line)}
.stat:nth-child(odd){border-right:1px solid var(--line)}
.stat:nth-child(even){padding-left:1.5rem}
.stat__num{font-family:var(--f-display);font-weight:600;font-size:clamp(3rem,2rem + 4vw,6rem);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat__plus{font-family:var(--f-display);font-size:clamp(2rem,1.5rem + 2vw,3.5rem);color:var(--rust);vertical-align:top}
.stat p{color:var(--muted);font-size:var(--text-sm);margin-top:.5rem}

/* work horizontal */
.work{padding-top:clamp(70px,7vw,110px);background:var(--bg)}
.work .h2{font-size:clamp(2.2rem,1rem + 4vw,5rem)}
.work__head{margin-bottom:clamp(28px,3.5vw,50px)}
.hscroll{overflow:hidden}
.hscroll__track{display:flex;gap:clamp(18px,2.4vw,40px);padding-inline:var(--pad);padding-bottom:clamp(40px,5vw,70px);width:max-content}
.card{width:clamp(280px,min(46vw,calc((100svh - 330px) * 1.45)),760px);flex-shrink:0;cursor:pointer}
.card__img{overflow:hidden;border-radius:4px;aspect-ratio:16/11;background:#222}
.card__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.2s var(--ease)}
.card:hover .card__img img{transform:scale(1.02)}
.card__meta{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;padding-top:1.1rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.card__meta span{font-size:var(--text-xs);color:var(--rust);letter-spacing:.1em}
.card__meta h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.15rem,.9rem + .8vw,1.6rem);letter-spacing:-.01em;line-height:1.2}
.card__meta p{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);text-align:right}
.card--end{display:flex;flex-direction:column;justify-content:center;gap:2rem;width:clamp(260px,30vw,460px);cursor:default}
.card--end p{font-family:var(--f-display);font-weight:500;font-size:clamp(1.6rem,1rem + 2vw,2.8rem);line-height:1.1;letter-spacing:-.02em}
.card--end .serif{color:var(--rust)}
.link-arrow{display:inline-flex;align-items:center;gap:.75rem;font-size:var(--text-sm);border-bottom:1px solid var(--rust);padding-bottom:.4rem;align-self:flex-start}
.link-arrow span{transition:transform .4s var(--ease)}
.link-arrow:hover span{transform:translateX(6px)}

/* services */
.services{position:relative;background:var(--cream);color:var(--cream-ink);padding-block:clamp(90px,12vw,180px)}
.services .kicker{color:#6f655c}
.services .h2 .serif{color:var(--rust-deep)}
.services__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(40px,6vw,90px)}
.slist{border-top:1px solid rgba(27,23,20,.18)}
.srow{position:relative;display:grid;grid-template-columns:70px 1.1fr 1fr 40px;align-items:center;gap:1.5rem;padding:clamp(1.2rem,2vw,2rem) 0;border-bottom:1px solid rgba(27,23,20,.18);cursor:pointer;overflow:hidden;isolation:isolate}
.srow::before{content:"";position:absolute;inset:0;background:var(--rust-deep);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
.srow:hover::before,.srow:focus-visible::before{transform:scaleY(1)}
.srow:hover,.srow:focus-visible{color:var(--cream)}
.srow__n{font-size:var(--text-xs);letter-spacing:.1em;padding-left:.5rem;opacity:.7}
.srow__t{font-family:var(--f-display);font-weight:600;font-size:clamp(1.8rem,1rem + 3.2vw,4.6rem);letter-spacing:-.03em;line-height:1;transition:transform .55s var(--ease)}
.srow:hover .srow__t{transform:translateX(1.2rem)}
.srow__d{font-size:var(--text-sm);max-width:38ch;opacity:.75}
.srow__a{font-size:1.6rem;transition:transform .5s var(--ease)}
.srow:hover .srow__a{transform:rotate(45deg)}
.hover-img{position:fixed;top:0;left:0;width:340px;aspect-ratio:4/3;pointer-events:none;z-index:60;overflow:hidden;border-radius:4px;opacity:0;transform:scale(.6);transition:opacity .35s var(--ease),transform .35s var(--ease);box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.hover-img.is-on{opacity:1;transform:scale(1)}
.hover-img img{width:100%;height:100%;object-fit:cover}

/* statement */
.statement{position:relative;height:110svh;overflow:hidden;display:grid;place-items:center}
.statement__img{position:absolute;inset:0;clip-path:inset(18% 22% 18% 22% round 6px)}
.statement__img img{width:100%;height:120%;object-fit:cover;filter:brightness(.42) saturate(.9)}
.statement__text{position:relative;z-index:2;text-align:center;font-family:var(--f-display);font-weight:600;font-size:clamp(2rem,1rem + 5vw,6.4rem);line-height:1;letter-spacing:-.035em;padding-inline:var(--pad)}
.statement__text span{display:block}
.statement__text .serif{color:var(--rust)}

/* journey */
.journey{padding-block:clamp(90px,12vw,180px);overflow-x:clip}
.journey__head{margin-bottom:clamp(50px,7vw,100px)}
.timeline{position:relative;padding-left:clamp(24px,4vw,60px)}
.timeline__line{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
.timeline__line span{position:absolute;inset:0;background:var(--rust);transform-origin:top;transform:scaleY(0)}
.tl{position:relative;display:grid;grid-template-columns:minmax(160px,280px) 1fr;gap:clamp(16px,4vw,60px);padding-block:clamp(28px,3.5vw,48px);border-bottom:1px solid var(--line)}
.tl::before{content:"";position:absolute;left:calc(-1 * clamp(24px,4vw,60px) - 6px);top:clamp(36px,4vw,56px);width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--rust)}
.tl__date{font-family:var(--f-display);font-weight:500;font-size:clamp(1.1rem,.9rem + .7vw,1.6rem);color:var(--rust);letter-spacing:-.01em}
.tl__body h3{font-family:var(--f-display);font-weight:600;font-size:clamp(1.5rem,1rem + 1.8vw,2.8rem);line-height:1.05;letter-spacing:-.025em}
.tl__role{color:var(--muted);font-size:var(--text-sm);margin:.5rem 0 1rem;text-transform:uppercase;letter-spacing:.12em}
.tl__body ul{display:flex;flex-wrap:wrap;gap:.5rem}
.tl__body li{font-size:var(--text-sm);padding:.35rem .9rem;border:1px solid var(--line);border-radius:99px;color:#d8cfc4}
.tools{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(40px,6vw,100px);margin-top:clamp(70px,9vw,130px)}
.tools__h{font-family:var(--f-display);font-weight:600;font-size:1.6rem;margin-bottom:1.5rem;letter-spacing:-.01em}
.bar{position:relative;padding-block:.9rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.bar span{font-size:var(--text-base)}
.bar small{color:var(--muted);font-size:var(--text-xs);margin-left:.4rem}
.bar i{position:absolute;left:0;bottom:-1px;height:2px;width:calc(var(--v) * 1%);background:var(--rust);transform-origin:left;transform:scaleX(0);transition:transform 1.6s var(--ease)}
.bar.is-in i{transform:scaleX(1)}

/* clients */
.clients{padding-block:clamp(50px,6vw,90px);border-block:1px solid var(--line);overflow:hidden}
.clients__row{overflow:hidden}
.clients__track{display:flex;align-items:flex-start;width:max-content;gap:clamp(2rem,3vw,3.5rem);padding-right:clamp(2rem,3vw,3.5rem);animation:marq 55s linear infinite reverse}
.clients:hover .clients__track{animation-play-state:paused}
.client{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:clamp(200px,16vw,260px)}
.client__name{font-family:var(--f-display);font-weight:500;font-size:clamp(.95rem,.85rem + .35vw,1.15rem);color:var(--muted);text-align:center;letter-spacing:-.005em;line-height:1.25;min-height:2.5em;display:flex;align-items:flex-end;justify-content:center;transition:color .4s var(--ease)}
.client__logo{width:100%;height:clamp(104px,8vw,128px);background:var(--cream);border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1.1rem 1.4rem;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.client__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.client__word{font-family:var(--f-display);font-weight:600;font-size:1.6rem;letter-spacing:-.02em;color:var(--cream-ink);text-transform:uppercase}
.client:hover .client__name{color:var(--ink)}
.client:hover .client__logo{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(212,104,63,.55)}

/* archive */
.archive{padding-block:clamp(90px,12vw,180px)}
.archive__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(40px,5vw,70px)}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;max-width:620px}
.filter{font-size:var(--text-sm);padding:.5rem 1rem;border:1px solid var(--line);border-radius:99px;color:#d8cfc4;transition:background .25s,color .25s,border-color .25s}
.filter:hover{border-color:var(--ink)}
.filter.is-active{background:var(--rust);border-color:var(--rust);color:#fff}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,1.6vw,24px)}
.gi{grid-column:span 4;position:relative;overflow:hidden;border-radius:4px;cursor:pointer;background:#1f1b18;aspect-ratio:4/3}
.gi--wide{grid-column:span 8;aspect-ratio:2.72/1}
.grid{grid-auto-flow:dense}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s}
.gi:hover img{transform:scale(1.06)}
.gi__cap{position:absolute;inset:auto 0 0 0;padding:1.1rem 1.2rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;background:linear-gradient(transparent,rgba(10,8,7,.88));transform:translateY(30%);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.gi:hover .gi__cap,.gi:focus-visible .gi__cap{transform:none;opacity:1}
.gi__cap h3{font-family:var(--f-display);font-weight:500;font-size:1.15rem;line-height:1.2}
.gi__cap span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--rust);white-space:nowrap}
.gi.is-out{display:none}

/* contact */
.contact{background:var(--rust-deep);color:var(--cream);padding-top:clamp(90px,12vw,180px);overflow:hidden}
.contact .kicker{color:rgba(235,227,215,.7)}
.contact__title{font-family:var(--f-display);font-weight:600;font-size:clamp(3rem,1rem + 9vw,11rem);line-height:.9;letter-spacing:-.025em}
.contact__title .line{display:block;overflow:hidden;padding-bottom:.04em}
.contact__title .serif{color:var(--cream);font-size:1.05em;display:inline-block}
.contact__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:clamp(40px,5vw,70px)}
.btn{position:relative;display:inline-flex;align-items:center;padding:1.1rem 1.8rem;border:1px solid rgba(235,227,215,.5);border-radius:99px;font-size:var(--text-base);overflow:hidden;isolation:isolate;transition:color .45s var(--ease),border-color .3s}
.btn::before{content:"";position:absolute;inset:0;background:var(--cream);border-radius:inherit;transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover{color:var(--rust-deep);border-color:var(--cream)}
.btn:hover::before{transform:none}
.btn--fill{background:var(--cream);color:var(--rust-deep);border-color:var(--cream);font-weight:700}
.btn--fill::before{background:var(--bg)}
.btn--fill:hover{color:var(--cream)}
.contact__info{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:clamp(60px,8vw,110px);padding-top:2rem;border-top:1px solid rgba(235,227,215,.25)}
.contact__info .kicker{margin-bottom:.5rem}
.clock{font-variant-numeric:tabular-nums}
.footer{padding-top:clamp(60px,8vw,110px);padding-bottom:28px}
.footer__big{font-family:var(--f-display);font-weight:700;font-size:clamp(2.2rem,10.5vw,14rem);line-height:.85;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(235,227,215,.45);white-space:nowrap;text-align:center;word-spacing:.18em}
.footer__row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:2rem;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:rgba(235,227,215,.75)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:180;background:rgba(12,10,9,.94);backdrop-filter:blur(8px);display:grid;grid-template-columns:80px 1fr 80px;align-items:center;padding:60px 20px 30px;opacity:0;transition:opacity .35s var(--ease)}
.lb.is-open{opacity:1}
.lb[hidden]{display:none}
.lb__fig{display:flex;flex-direction:column;align-items:center;gap:1rem;max-height:100%;min-height:0}
.lb__fig img{max-height:calc(100svh - 170px);width:auto;max-width:100%;object-fit:contain;border-radius:4px;transform:scale(.96);transition:transform .5s var(--ease),opacity .3s}
.lb.is-open .lb__fig img{transform:none}
.lb__fig figcaption{display:flex;gap:1.5rem;align-items:baseline;flex-wrap:wrap;justify-content:center}
.lb__cat{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--rust)}
.lb__title{font-family:var(--f-display);font-weight:500;font-size:1.3rem}
.lb__idx{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.lb__close{position:absolute;top:18px;right:24px;font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;padding:.5rem}
.lb__nav{width:56px;height:56px;border:1px solid var(--line);border-radius:50%;font-size:1.3rem;justify-self:center;transition:background .25s,border-color .25s}
.lb__nav:hover{background:var(--rust);border-color:var(--rust)}

/* initial states for JS-driven reveal */
.js .reveal-img{clip-path:inset(100% 0 0 0)}

/* responsive */
@media (max-width:1024px){
  .srow{grid-template-columns:50px 1fr 30px}
  .srow__d{grid-column:2/3;grid-row:2}
  .hover-img{display:none}
  .grid{grid-template-columns:repeat(6,1fr)}
  .gi{grid-column:span 3}.gi--wide{grid-column:span 6}
}
@media (max-width:820px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:block}
  .nav{mix-blend-mode:normal;transition:transform .5s var(--ease),background .35s,padding .35s}
  .nav.is-scrolled{background:rgba(18,16,14,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-block:12px}
  .menu-open .nav{color:var(--cream)}
  .hero__top{flex-direction:column;gap:.4rem}
  .eyebrow--right{display:none}
  .hero__bottom{gap:1rem}
  .badge{width:92px}
  .hero__lede{max-width:26ch;font-size:1rem}
  .fl--4,.fl--5{display:none}
  .fl--1{top:20%;right:-4%;width:150px}.fl--2,.fl--3{display:none}
  .about{grid-template-columns:1fr}
  .about__photo{max-width:420px}
  .card{width:78vw}
  .card--end{width:70vw}
  .hscroll{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .hscroll::-webkit-scrollbar{display:none}
  .card{scroll-snap-align:center}
  .card__img img{transform:none}
  .services__head{flex-direction:column;align-items:flex-start}
  .tl{grid-template-columns:1fr;gap:.6rem}
  .tools{grid-template-columns:1fr}
  .contact__info{grid-template-columns:1fr}
  .lb{grid-template-columns:1fr;padding:60px 12px 90px}
  .lb__nav{position:absolute;bottom:22px}
  .lb__prev{left:calc(50% - 70px)}.lb__next{right:calc(50% - 70px)}
  .statement{height:80svh}
  .statement__img{clip-path:inset(10% 6% 10% 6% round 6px)}
}
@media (max-width:560px){
  .grid{grid-template-columns:1fr}
  .gi,.gi--wide{grid-column:auto;aspect-ratio:4/3}
  .gi__cap{transform:none;opacity:1}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:1.4rem 1rem 1.4rem 0}
  .stat:nth-child(even){padding-left:1rem}
  .card__meta{grid-template-columns:auto 1fr}
  .card__meta p{grid-column:1/-1;text-align:left}
  .srow__d{display:none}
  .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .manifesto__text .w{opacity:1}
}
