/* ALLHNFI — monochrome, clarity, considered motion. No remote dependencies. */
:root{--paper:#f5f5f7;--white:#fff;--ink:#171719;--muted:#6d6d73;--line:#dcdce0;--ease:cubic-bezier(.22,1,.36,1);--max:1240px;--header:76px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px)}
body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
::selection{color:#fff;background:#333}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer}
button,a{touch-action:manipulation}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:600}
button:focus-visible,a:focus-visible{outline:3px solid #2678d8;outline-offset:6px}
.page-width{width:min(calc(100% - 104px),var(--max));margin-inline:auto}
.wordmark{font-family:Arial,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:900;letter-spacing:-.065em;line-height:1}
.eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.12em;font-weight:500;text-transform:uppercase}
.section-space{padding-block:128px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:20px;top:-90px;padding:12px 18px;background:var(--ink);color:#fff;border-radius:8px;z-index:100}
.skip-link:focus{top:16px}

/* A quiet glass navigation floats above the work. */
.site-header{height:var(--header);position:sticky;top:0;z-index:40;background:rgba(245,245,247,.78);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border-bottom:1px solid transparent;transition:border-color .35s,background .35s}
.site-header.scrolled{border-bottom-color:rgba(23,23,25,.08);background:rgba(250,250,252,.84)}
.navigation{display:flex;align-items:center;height:100%;gap:36px}
.nav-wordmark{font-size:1.55rem;position:relative;padding-block:10px}
.nav-wordmark span{position:relative;top:-8px;margin-left:5px;font-size:.6rem;letter-spacing:0}
.nav-links{display:flex;align-items:center;gap:34px;margin-inline:auto}
.nav-links a{font-size:.875rem;line-height:1.5;color:#56565b;position:relative;padding-block:12px;transition:color .2s}
.nav-links a::after{content:"";position:absolute;bottom:6px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover,.nav-links a[aria-current="location"]{color:var(--ink)}
.nav-links a:hover::after,.nav-links a[aria-current="location"]::after{transform:scaleX(1)}
.nav-contact{display:inline-flex;align-items:center;gap:16px;background:#e7e7e9;border:1px solid rgba(255,255,255,.8);border-radius:100px;padding:10px 19px;font-size:.875rem;white-space:nowrap;transition:background .25s}
.nav-contact:hover{background:#dadadd}
.menu-toggle{display:none}

/* Typography is the hero: the name has room to be remembered. */
.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fff 0%,#f8f8fa 34%,#f5f5f7 70%)}
.hero-inner{text-align:center;padding-top:62px;position:relative}
.hero-intro{color:#6d6d73;display:flex;gap:12px;align-items:center;justify-content:center;animation:intro-up .9s var(--ease) both}
.eyebrow-divider{height:3px;width:3px;background:#88888d;border-radius:50%;flex-shrink:0}
.hero-name-wrap{position:relative;margin:34px auto 45px;isolation:isolate;max-width:1130px}
.hero-name{font-size:clamp(100px,16.6vw,231px);font-weight:900;letter-spacing:-.065em;line-height:1.13;display:inline-block;position:relative;padding-right:.045em;color:#2c2c2e;background:linear-gradient(168deg,#85858c 3%,#303034 24%,#101012 41%,#808089 55%,#3b3b3f 62%,#1c1c1f 88%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:name-in 1.35s var(--ease) both}
.registered{position:absolute;right:-.075em;top:.09em;font-family:Arial,sans-serif;font-size:.065em;font-weight:400;letter-spacing:0;color:#74747a;-webkit-text-fill-color:#74747a}
.hero-reflection{position:absolute;left:50%;top:94%;width:100%;font-size:clamp(100px,16.6vw,231px);line-height:1.13;letter-spacing:-.065em;transform:translateX(-50%) scaleY(-.2);transform-origin:top;opacity:.09;filter:blur(1.5px);mask-image:linear-gradient(transparent 38%,#000 100%);-webkit-mask-image:linear-gradient(transparent 38%,#000 100%);pointer-events:none}
.hero-statement{font-size:clamp(2.6rem,4.6vw,4.25rem);letter-spacing:-.055em;line-height:1.075;animation:intro-up 1s .16s var(--ease) both}
.hero-statement span{color:#818188}
.hero-description{margin-top:23px;color:#6d6d74;font-size:1.125rem;line-height:1.55;letter-spacing:-.02em;animation:intro-up 1s .26s var(--ease) both}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:32px;margin-top:30px;animation:intro-up 1s .35s var(--ease) both}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:50px;padding:13px 25px;border-radius:100px;font-size:.9375rem;font-weight:500;line-height:1.4;transition:transform .35s var(--ease),box-shadow .35s,background .35s}
.button:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000015}
.button span[aria-hidden]{display:inline-block;transition:transform .35s var(--ease)}
.button:hover span[aria-hidden]{transform:translate(2px,-2px)}
.button-dark{background:var(--ink);color:#fff}
.button-dark:hover{background:#333336}
.button-light{background:#f5f5f7;color:#171719;border:1px solid #fff}
.button-light:hover{background:#fff;box-shadow:0 8px 26px #ffffff0d}
.text-link{display:inline-flex;align-items:center;gap:13px;font-size:.9375rem;line-height:1.5;white-space:nowrap}
.text-link span[aria-hidden]{display:inline-block;transition:transform .3s var(--ease)}
.text-link:hover span[aria-hidden]{transform:translate(3px,-3px)}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-block:74px 25px;font-size:.75rem;color:#6b6b72;letter-spacing:.025em}
.scroll-cue{display:flex;gap:10px;align-items:center;padding:7px 0}
.scroll-line{height:22px;width:1px;background:linear-gradient(#d7d7dc,#6f6f76);position:relative}
.scroll-line::after{content:"";height:5px;width:5px;border-right:1px solid #6f6f76;border-bottom:1px solid #6f6f76;position:absolute;bottom:0;left:-2px;transform:rotate(45deg)}

/* The work keeps its own colour; the surrounding system stays neutral. */
.work-section{padding-top:102px;background:var(--paper)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:48px}
.section-heading .eyebrow,.about-heading .eyebrow{color:var(--muted);margin-bottom:22px}
.section-heading h2{font-size:clamp(2.2rem,3.75vw,3.5rem);line-height:1.09;letter-spacing:-.05em}
.section-heading>.text-link{margin-bottom:5px}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.project-link{display:block;border-radius:23px}
.project-image{border-radius:22px;overflow:hidden;position:relative;aspect-ratio:1.275;background:#e9e9eb;isolation:isolate}
.identity-image{background:#e4e4e5}
.project-image::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:22px;border:1px solid #00000006}
.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.project-link:hover .project-image img{transform:scale(1.035)}
.project-tag{position:absolute;left:22px;top:22px;z-index:1;font-size:.75rem;line-height:1.5;letter-spacing:.025em;padding:8px 13px;border-radius:100px;color:#202025;background:rgba(255,255,255,.8);border:1px solid #ffffffc0;box-shadow:0 2px 12px #00000005;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.project-open{position:absolute;right:20px;bottom:20px;height:48px;width:48px;display:grid;place-items:center;font-size:1.45rem;border-radius:50%;color:#222;background:rgba(255,255,255,.82);border:1px solid #ffffffb5;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .5s var(--ease),background .3s}
.project-link:hover .project-open{transform:rotate(45deg);background:#fff}
.project-description{display:flex;justify-content:space-between;gap:20px;padding:26px 4px 0}
.project-category{color:#6d6d74;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.project-description h3{font-size:1.55rem;line-height:1.2;letter-spacing:-.045em}
.project-description h3+p{font-size:1rem;margin-top:9px;color:#6d6d74;line-height:1.5}
.project-number{font-size:.75rem;color:#6d6d74;padding-top:31px}

/* An editorial change of pace. */
.about-section{background:#fff}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}
.about-heading h2{font-size:clamp(3.2rem,6vw,5.6rem);letter-spacing:-.065em;line-height:1.025}
.about-heading h2 span{color:#8a8a91}
.about-copy{padding-top:39px}
.about-intro{font-size:1.8rem;letter-spacing:-.035em;line-height:1.3;font-weight:500}
.about-copy>p:not(.about-intro){font-size:1.0625rem;line-height:1.7;color:#717178;max-width:460px;margin-top:23px}
.about-copy>.text-link{margin-top:28px}
.signature-lockup{display:flex;align-items:center;gap:24px;margin-top:47px;padding-top:26px;border-top:1px solid #e7e7ea}
.signature-lockup>.wordmark{font-size:1.65rem}
.signature-lockup>span+span{color:#6b6b72;font-size:.75rem;line-height:1.5;border-left:1px solid #dddde1;padding-left:24px}
.expertise-section{background:#f5f5f7}
.section-description{font-size:1rem;line-height:1.6;color:#6d6d75;letter-spacing:-.01em}
.expertise-list{margin-top:66px}
.expertise-row{display:grid;grid-template-columns:50px 1fr 1.25fr;column-gap:25px;row-gap:10px;padding:34px 0;border-top:1px solid var(--line);align-items:baseline}
.expertise-row:last-child{border-bottom:1px solid var(--line)}
.expertise-number{font-size:.75rem;color:#6b6b73}
.expertise-row h3{font-size:1.85rem;line-height:1.2;letter-spacing:-.04em}
.expertise-row>p{color:#6d6d74;font-size:1rem;line-height:1.6;max-width:465px}
.expertise-keywords{grid-column:3;font-size:.75rem;letter-spacing:.02em;color:#626269;padding-top:5px}

/* A black close makes the signature linger. */
.contact-section{background:#111113;color:#f5f5f7;overflow:hidden}
.contact-inner{text-align:center;padding-top:105px}
.contact-inner>.eyebrow{color:#a2a2aa;margin-bottom:28px}
.contact-inner h2{font-size:clamp(2.8rem,5.65vw,5.25rem);font-weight:500;line-height:1.06;letter-spacing:-.055em}
.contact-inner h2 span{background:linear-gradient(125deg,#fafafa 0%,#a9a9b3 62%,#74747d 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.contact-inner>p:not(.eyebrow){font-size:1.0625rem;color:#a0a0aa;line-height:1.6;margin-top:27px}
.contact-inner>.button{margin-top:32px}
.contact-rule{width:1px;height:64px;margin:45px auto 15px;background:linear-gradient(transparent,#45454d)}
.contact-wordmark{font-size:clamp(85px,17vw,240px);line-height:1.23;letter-spacing:-.065em;padding-right:.05em;color:#242428;user-select:none}
.site-footer{background:#111113;color:#9a9aa3}
.footer-inner{border-top:1px solid #2b2b31;padding-block:27px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.75rem}
.footer-inner a{padding-block:8px;color:#c4c4cc}
.footer-inner a span{margin-left:14px}

/* Content is visible by default, including when JavaScript is unavailable. */
.reveal-pending{opacity:0;transform:translateY(30px)}
.reveal-ready{transition:opacity .8s var(--ease),transform 1s var(--ease)}
.reveal-ready[data-delay="1"]{transition-delay:.09s}
.reveal-ready.is-visible{opacity:1;transform:translateY(0)}
@keyframes intro-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes name-in{from{opacity:0;transform:translateY(24px) scale(.975);filter:blur(7px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}

@media(min-width:1600px){.hero-inner{padding-top:74px}.hero-name-wrap{margin-top:42px;margin-bottom:49px}.hero-bottom{padding-top:90px}}
@media(max-width:1100px){.page-width{width:calc(100% - 64px)}.section-space{padding-block:95px}.about-grid{gap:60px}.expertise-row{grid-template-columns:35px 1fr 1.25fr;gap:16px}.project-description h3{font-size:1.35rem}.signature-lockup{gap:15px}.signature-lockup>span+span{padding-left:15px}}
@media(max-width:760px){:root{--header:66px}.page-width{width:calc(100% - 40px)}.section-space{padding-block:76px}.navigation{gap:15px}.nav-wordmark{font-size:1.4rem}.nav-links{gap:20px}.nav-links a{font-size:.875rem}.nav-contact{margin-left:auto;font-size:.875rem;padding:9px 15px;gap:12px}.hero-inner{padding-top:48px}.hero-intro{gap:9px;letter-spacing:.04em;flex-wrap:wrap}.hero-name-wrap{margin-top:35px;margin-bottom:45px}.hero-name,.hero-reflection{font-size:17vw}.hero-statement{font-size:3.1rem}.hero-description{font-size:1rem;margin-top:22px}.hero-actions{gap:26px}.hero-bottom{padding-top:60px}.hero-bottom>span{max-width:180px;text-align:left}.section-heading{gap:25px;align-items:flex-start;flex-direction:column;margin-bottom:32px}.section-heading .eyebrow{margin-bottom:18px}.section-heading h2{font-size:2.65rem}.project-grid{gap:36px;grid-template-columns:1fr}.project-image{border-radius:20px;aspect-ratio:1.32}.project-description{padding-top:20px}.project-description h3{font-size:1.5rem}.project-tag{top:17px;left:17px}.about-grid{gap:40px;grid-template-columns:1fr}.about-heading h2{font-size:4rem}.about-copy{padding-top:0}.about-copy>p:not(.about-intro){max-width:100%}.signature-lockup{gap:25px}.signature-lockup>span+span{padding-left:25px}.expertise-list{margin-top:34px}.expertise-row{grid-template-columns:30px 1fr;column-gap:15px;padding-block:27px;row-gap:12px}.expertise-row>p,.expertise-keywords{grid-column:2}.expertise-row h3{font-size:1.65rem}.contact-inner{padding-top:80px}.contact-inner h2{font-size:3.5rem}.contact-wordmark{font-size:18vw}.contact-rule{margin-top:40px;height:45px}.footer-inner{flex-wrap:wrap;gap:8px;padding-block:22px}.footer-inner>p:first-child{flex-basis:100%}.footer-inner>p:nth-child(2){margin-right:auto}}
@media(max-width:640px){.navigation{gap:12px}.nav-contact{padding:8px 13px;gap:9px}.hero-actions{gap:22px}.hero-statement{font-size:2.85rem}.menu-toggle{width:40px;height:40px;border:0;background:transparent;display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;z-index:2;flex-shrink:0}.js .menu-toggle{display:flex}.menu-toggle span{width:18px;height:1.5px;background:#222;transition:transform .3s var(--ease)}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}.js .nav-links{position:absolute;top:calc(var(--header) - 1px);left:0;right:0;background:rgba(250,250,252,.98);border-bottom:1px solid #dedee3;display:none;align-items:stretch;gap:0;margin:0;padding:14px 24px 24px}.js .nav-links.is-open{display:flex;flex-direction:column}.js .nav-links a{font-size:1.1rem;padding:14px 0;line-height:1.5}.js .nav-links a::after{bottom:5px;width:26px}html:not(.js) .site-header{height:auto}html:not(.js) .navigation{flex-wrap:wrap;padding-block:12px}html:not(.js) .nav-links{order:4;flex-basis:100%;justify-content:center}.nav-contact{margin-left:auto}}
@media(max-width:520px){.navigation{gap:9px}.nav-contact{padding:9px 14px;gap:11px}.hero-intro{gap:6px 9px;max-width:320px;margin-inline:auto}.hero-intro .eyebrow-divider{display:none}.hero-name-wrap{margin-top:37px;margin-bottom:42px}.hero-description{line-height:1.6}.button{font-size:.875rem;min-height:48px;padding:13px 21px;gap:18px}.hero-actions>.text-link{font-size:.875rem;gap:8px}.hero-bottom{padding-top:51px;padding-bottom:19px;gap:20px}.hero-bottom>span{max-width:170px}.scroll-cue{gap:8px}.section-heading h2{font-size:2.4rem}.contact-inner h2{font-size:2.65rem}.contact-inner>p:not(.eyebrow){font-size:1rem}.project-description h3{font-size:1.4rem}.project-image{aspect-ratio:1.2}.about-heading h2{font-size:3.6rem}.about-intro{font-size:1.65rem}.about-copy>p:not(.about-intro){font-size:1rem}}
@media(max-width:360px){.page-width{width:calc(100% - 32px)}.hero-statement{font-size:2.5rem}.hero-actions{gap:17px;flex-wrap:wrap}.button{padding-inline:18px}.hero-bottom>span{max-width:142px}.signature-lockup{gap:16px}.signature-lockup>span+span{padding-left:16px}.signature-lockup>.wordmark{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}.hero-name{transform:none!important}.hero-reflection{display:none}.project-link:hover .project-image img{transform:none}.button:hover{transform:none}}
@media print{.site-header,.hero-actions,.hero-bottom,.project-open,.menu-toggle,.contact-rule{display:none}.section-space{padding-block:35px}.hero-inner{padding-top:0}.hero-name{font-size:110px;background:none;-webkit-text-fill-color:#111}.hero-reflection{display:none}.hero-statement{font-size:32px}.hero-description{margin-bottom:30px}.project-grid{grid-template-columns:1fr 1fr}.about-grid{grid-template-columns:1fr 1fr;gap:30px}.contact-section,.site-footer{background:#fff;color:#111}.contact-inner{padding-top:30px}.contact-inner h2 span{-webkit-text-fill-color:#111;background:none}.contact-wordmark{font-size:100px;color:#aaa}.reveal-pending{opacity:1;transform:none}}
