*{box-sizing:border-box}
:root{--bg:#101010;--fg:#f2f1ee;--muted:#999997;--line:rgba(255,255,255,.15);--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);overflow-x:hidden}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:20;background:linear-gradient(120deg,rgba(255,255,255,.025),transparent 35%,rgba(255,255,255,.018));mix-blend-mode:screen}
.grain{position:fixed;inset:-50%;pointer-events:none;z-index:21;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");animation:grain .22s steps(2) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}100%{transform:translate(-2%,-1%)}}
a{color:inherit;text-decoration:none}.topbar{height:88px;position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 7vw}.mark svg{width:42px;height:42px;fill:#fff;transition:transform .5s}.mark:hover svg{transform:rotate(90deg)}.nav{display:flex;gap:38px}.nav a{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#c7c7c4;transition:color .25s}.nav a:hover{color:#fff}.menu-toggle{display:none}
.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;padding:0 7vw 11vh;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.28) 70%),linear-gradient(0deg,rgba(0,0,0,.75),transparent 65%),url("assets/hero-reference.jpg") center/cover no-repeat;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 32%,rgba(0,0,0,.35));z-index:-1}.hero-content{position:relative;max-width:850px}.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a7a7a4;margin:0 0 28px}.eyebrow span{display:inline-block;width:24px;height:1px;background:#ddd;vertical-align:middle;margin-right:12px}.hero h1{font:italic 700 clamp(4.5rem,11vw,10rem)/.91 var(--serif);letter-spacing:-.055em;margin:0 0 28px}.hero-subtitle{font-size:clamp(16px,2vw,23px);letter-spacing:.2em;text-transform:uppercase;color:#b7b7b4;margin:0}.scroll-cue{display:flex;align-items:center;gap:13px;margin-top:64px;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#bcbcb9}.scroll-line{height:36px;width:1px;background:linear-gradient(#fff,transparent);animation:linePulse 1.8s ease-in-out infinite}.hero-index{position:absolute;right:7vw;bottom:11vh;font-size:12px;letter-spacing:.1em}.hero-index span{color:#777}
.section{padding:150px 7vw;display:grid;grid-template-columns:1.15fr .85fr;gap:10%;align-items:center}.section-image,.service-image,.contact-image{position:relative;overflow:hidden;background:#191919}.section-image img,.service-image img,.contact-image img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.7) contrast(1.08) brightness(.78);transition:filter .8s,transform 1.2s cubic-bezier(.2,.7,.2,1)}.section-image{aspect-ratio:1.13}.section-image:hover img,.service-image:hover img,.contact-image:hover img{filter:grayscale(.2) contrast(1.04) brightness(.9);transform:scale(1.035)}.image-caption{position:absolute;bottom:22px;left:24px;font-size:10px;letter-spacing:.15em;text-transform:uppercase}.section-copy{max-width:470px}.section h2,.services h2,.contact h2{font:italic 600 clamp(2.8rem,5.3vw,5.8rem)/1.04 var(--serif);letter-spacing:-.045em;margin:0 0 35px}.section h2 em,.contact h2 em{font-weight:600}.section-copy>p:not(.eyebrow){max-width:390px;color:#aaa;font-size:15px;line-height:1.9}.text-link{display:inline-flex;gap:24px;align-items:center;margin-top:32px;padding-bottom:12px;border-bottom:1px solid #666;font-size:12px;letter-spacing:.07em}.text-link span{transition:transform .3s}.text-link:hover span{transform:translate(4px,4px)}
.services{display:block;padding-top:120px;padding-bottom:160px}.services-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:70px}.services-heading .eyebrow{margin-bottom:14px}.services h2{margin:0}.dot{color:#888}.services-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:10%;align-items:center}.service-image{aspect-ratio:1.12}.service-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent 60%)}.service-image>span{position:absolute;bottom:28px;left:30px;z-index:1;font:italic 600 26px var(--serif)}.service-list{border-top:1px solid var(--line)}.service-item{display:grid;grid-template-columns:50px 1fr 22px;gap:18px;padding:29px 0;border-bottom:1px solid var(--line);align-items:start}.service-number{font-size:13px;color:#777;padding-top:8px}.service-item h3{font:italic 600 clamp(1.25rem,2.4vw,2rem)/1.25 var(--serif);margin:0 0 13px}.service-item p{font-size:13px;line-height:1.8;color:#a4a4a1;max-width:360px;margin:0}.service-arrow{color:#888;transition:transform .3s,color .3s}.service-item:hover .service-arrow{transform:translate(3px,-3px);color:#fff}
.contact{padding:120px 7vw 30px;background:#e8e8e5;color:#151515}.contact .eyebrow{color:#686866}.contact-top{display:flex;justify-content:space-between;align-items:flex-start}.contact h2{font-size:clamp(3.6rem,8vw,8rem);margin:0 0 65px}.contact-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:12%;align-items:center}.contact-image{aspect-ratio:1.45}.contact-image img{filter:grayscale(.55) contrast(1.04) brightness(.88)}.contact-details{display:flex;flex-direction:column;gap:34px}.detail{border-bottom:1px solid rgba(0,0,0,.15);padding-bottom:20px}.detail>span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#777;margin-bottom:12px}.detail a,.detail p{font-size:clamp(14px,1.4vw,18px);margin:0;overflow-wrap:anywhere}.detail a:hover{opacity:.6}.contact footer{border-top:1px solid rgba(0,0,0,.2);margin-top:100px;padding:24px 0 12px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#666}.footer-brand{font:italic 600 22px var(--serif);color:#171717}.footer-brand span{font:10px var(--sans);vertical-align:top;margin-left:3px}.back-top{color:#171717}
.reveal{opacity:0;transform:translateY(36px);filter:blur(5px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease}.reveal.visible{opacity:1;transform:translateY(0);filter:blur(0)}.section-image.reveal,.service-image.reveal,.contact-image.reveal{transform:translateY(24px) scale(.985)}.section-image.reveal.visible,.service-image.reveal.visible,.contact-image.reveal.visible{transform:translateY(0) scale(1)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none;filter:none}}
@media(max-width:760px){.topbar{height:72px;padding:0 6vw}.mark svg{width:34px;height:34px}.menu-toggle{display:flex;flex-direction:column;gap:6px;border:0;background:none;padding:10px;z-index:12}.menu-toggle span{width:25px;height:1px;background:#fff;transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav{position:absolute;top:0;left:0;right:0;padding:90px 7vw 28px;background:rgba(12,12,12,.97);display:flex;flex-direction:column;gap:24px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.3s}.nav.open{opacity:1;visibility:visible;transform:translateY(0)}.hero{min-height:92svh;padding:0 6vw 9vh;background-position:58% center}.hero h1{font-size:clamp(4rem,17vw,7rem)}.hero-index{right:6vw;bottom:9vh}.scroll-cue{margin-top:44px}.section{padding:95px 6vw;grid-template-columns:1fr;gap:45px}.section-image{aspect-ratio:1.05}.section-copy{max-width:none}.section h2,.services h2{font-size:clamp(3rem,13vw,5rem)}.services{padding:75px 6vw 100px}.services-heading{display:block;margin-bottom:40px}.services-heading .eyebrow{margin-bottom:20px}.services-layout{grid-template-columns:1fr;gap:42px}.service-image{aspect-ratio:1.05}.service-item{grid-template-columns:35px 1fr 18px;gap:10px;padding:24px 0}.service-item h3{font-size:1.55rem}.contact{padding:85px 6vw 20px}.contact-top{display:block}.contact h2{font-size:clamp(4rem,16vw,6rem);margin-bottom:40px}.contact-layout{grid-template-columns:1fr;gap:40px}.contact-image{aspect-ratio:1.1}.contact-details{gap:25px}.contact footer{margin-top:65px;gap:18px;flex-wrap:wrap}.footer-brand{width:100%}}
