@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@300;400;500;600;700;800;900&display=swap');

:root{
  --ah-night:#050711;
  --ah-ivory:#f1ecd9;
  --ah-muted:#a7a49d;
  --ah-dim:#77767b;
  --ah-rule:#252731;
  --ah-panel:#080a12;
  --ah-cyan:#00d4ff;
  --ah-edge:clamp(24px,13.45vw,194px);
  --ah-column:530px;
  --ah-motion:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;background:var(--ah-night);color-scheme:dark}
body{min-width:320px;overflow-x:hidden;isolation:isolate;background:radial-gradient(ellipse 120% 38% at 50% -8%,#0a1222 0%,#050813 35%,transparent 70%),linear-gradient(180deg,#020308 0%,#040711 38%,#010207 72%,#050913 100%);color:var(--ah-ivory);font-family:Inter,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:-18%;z-index:0;pointer-events:none;background:radial-gradient(ellipse 56% 38% at 84% 14%,rgba(0,212,255,.15),transparent 69%),radial-gradient(ellipse 62% 48% at 5% 48%,rgba(38,64,150,.18),transparent 70%),radial-gradient(ellipse 66% 44% at 80% 84%,rgba(0,150,218,.11),transparent 72%),linear-gradient(116deg,transparent 27%,rgba(31,65,101,.065) 49%,transparent 70%);filter:blur(9px);transform:translate3d(0,0,0) scale(1.02);animation:ah-atmosphere-drift 34s ease-in-out infinite alternate}
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background-image:radial-gradient(ellipse at center,transparent 46%,rgba(0,0,0,.48) 100%),radial-gradient(rgba(255,255,255,.055) .42px,transparent .58px);background-size:auto,4px 4px;mix-blend-mode:soft-light}
@keyframes ah-atmosphere-drift{0%{transform:translate3d(-.8%,-.5%,0) scale(1.02)}100%{transform:translate3d(1%,.7%,0) scale(1.045)}}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}
::selection{background:var(--ah-cyan);color:#fff}
.ah-jump-link{position:fixed;left:16px;top:12px;z-index:9999;transform:translateY(-150%);padding:10px 14px;background:var(--ah-ivory);color:var(--ah-night);font:500 12px/1 IBM Plex Mono,monospace}.ah-jump-link:focus{transform:none}
.ah-particle-plane{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.ah-particle-plane--depth{filter:none;opacity:1}.ah-particle-plane--spark{z-index:4}
main,.ah-site-nav,footer{position:relative;z-index:3}main{isolation:isolate}
.ah-site-nav{position:fixed;left:0;right:0;top:0;z-index:20;display:flex;align-items:flex-start;justify-content:space-between;padding:17px 4.5vw 0;transition:transform .6s var(--ah-motion),opacity .35s ease}
.ah-site-nav.hidden{transform:translateY(-120%);opacity:0}.wordmark{font-size:24px;font-weight:800;letter-spacing:-.075em;line-height:1;color:var(--ah-ivory)}
.main-nav{display:flex;align-items:center;gap:30px;padding-top:6px;font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.26em;color:#8f8e91}.main-nav a{position:relative;padding-bottom:9px;transition:color .25s ease}.main-nav a::after{content:"";position:absolute;left:0;right:.24em;bottom:0;height:1px;background:var(--ah-cyan);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ah-motion)}.main-nav a:hover,.main-nav a.active{color:var(--ah-ivory)}.main-nav a.active::after,.main-nav a:hover::after{transform:scaleX(1)}.menu-button{display:none;background:none;border:0;font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.24em}
.scene{position:relative;padding-left:var(--ah-edge);padding-right:var(--ah-edge)}
.ah-opening{min-height:100svh;display:flex;align-items:center}.ah-opening-copy{width:min(660px,50vw);padding-top:2vh}.kicker,.project-meta,.also,.scroll-note,.contact-links,.phone-line,footer{font-family:"IBM Plex Mono",monospace;letter-spacing:.23em;text-transform:uppercase}.kicker{margin-bottom:42px;color:#858489;font-size:10px;line-height:1.5}.ah-opening-mark{position:relative;width:max-content;color:#11141d;font-size:clamp(62px,7.5vw,108px);font-weight:900;letter-spacing:-.06em;line-height:.82;transform:scaleX(1.04);transform-origin:left center;user-select:none}.ah-opening-mark span{display:block;color:rgba(232,228,216,.36);-webkit-text-stroke:1px rgba(255,255,255,.035);text-shadow:0 0 24px rgba(232,224,204,.04)}.ah-opening h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ah-opening-intro{max-width:620px;margin-top:46px;color:#cbc7bb;font-size:clamp(18px,1.7vw,23px);font-weight:300;line-height:1.48;letter-spacing:-.022em}.scroll-note{position:absolute;left:var(--ah-edge);bottom:34px;display:flex;align-items:center;gap:10px;color:#89888d;font-size:9px}.scroll-note span,.offscreen span{display:inline-block;width:6px;height:6px;border-radius:50%}.scroll-note span{background:#77767b;box-shadow:0 0 8px rgba(241,236,217,.18)}.offscreen span{background:var(--ah-cyan);box-shadow:0 0 13px rgba(0,212,255,.65)}
.text-chapter{min-height:55vh;display:flex;align-items:center;padding-top:72px;padding-bottom:72px}.chapter-copy,.section-lead,.crafts-copy{width:min(var(--ah-column),44vw)}h2{font-size:clamp(43px,4.2vw,60px);font-weight:300;letter-spacing:-.055em;line-height:1.03}.chapter-copy>p,.section-lead>p{margin-top:24px;color:#aaa79f;font-size:clamp(18px,1.55vw,22px);font-weight:300;line-height:1.5;letter-spacing:-.025em}.chapter-copy em{color:#00d4ff;font-weight:500}
.work{padding-top:120px;padding-bottom:180px}.work .section-lead{position:relative;z-index:5}.section-lead{margin-bottom:54px}.section-lead .also{font-size:9px;line-height:2.25;letter-spacing:.2em;color:#89888d}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;row-gap:88px}.project{min-width:0}.project-meta{min-height:30px;color:#828187;font-size:9px;line-height:1.65}.project-meta strong{color:#c5c2b9;font-weight:500}.project h3{margin:12px 0 20px;font-size:clamp(24px,2.2vw,32px);font-weight:400;line-height:1.13;letter-spacing:-.045em}.project-visual{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--ah-rule);background:#080a11;isolation:isolate}.project h3 a{transition:color .25s ease}.project h3 a:hover{color:var(--ah-cyan)}.project-shot{display:block}.project-shot::before{display:none}.project-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.002);transition:transform 1s var(--ah-motion),filter .6s ease}.project-shot b{position:absolute;z-index:3;right:18px;bottom:16px;padding:9px 11px;border:1px solid rgba(255,255,255,.24);background:rgba(5,7,17,.72);backdrop-filter:blur(9px);color:#e8e4d8;font:400 8px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;opacity:0;transform:translateY(7px);transition:opacity .35s ease,transform .35s ease,border-color .35s ease}.project:hover .project-shot img,.project-shot:focus-visible img{transform:scale(1.035)}.project:hover .project-shot b,.project-shot:focus-visible b{opacity:1;transform:none}.project-shot:focus-visible{outline:2px solid var(--ah-cyan);outline-offset:4px}.project-meta,.project h3,.project blockquote,.project>p:last-child{position:relative;z-index:5}.project-visual::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 55% 45%,rgba(0,212,255,.18),transparent 50%);filter:blur(28px)}.project-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.025),transparent 40%,rgba(0,0,0,.45));pointer-events:none}.project:hover .project blockquote{margin-top:17px;color:#e5dfca;font-size:clamp(18px,1.45vw,21px);font-style:italic;font-weight:300;line-height:1.45}.project>p:last-child{margin-top:15px;color:#8e8c90;font-size:15px;line-height:1.62}
.crafts{min-height:205vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.98fr);column-gap:7vw;align-items:start;padding-top:170px;padding-bottom:170px}.crafts-copy{position:sticky;top:27vh;width:100%;grid-column:1;grid-row:1}.craft-list{margin-top:22px;border-bottom:1px solid var(--ah-rule)}.craft{display:block;width:100%;padding:23px 0;text-align:left;background:none;border:0;border-top:1px solid var(--ah-rule);opacity:1;transition:padding .45s var(--ah-motion)}.craft:hover,.craft.active{padding-left:0}.craft strong{display:block;color:#66666b;font-size:clamp(22px,1.8vw,27px);font-weight:400;letter-spacing:-.04em;transition:color .35s ease}.craft:hover strong{color:var(--ah-ivory)}.craft.active strong{color:var(--ah-cyan)}.craft span{display:block;margin-top:3px;color:#68686d;font-size:15px;transition:color .35s ease}.craft.active span{color:#9f9da0}.craft-anchor{position:sticky;top:27vh;grid-column:2;grid-row:1;width:100%;height:390px;pointer-events:none}
.who{min-height:105vh;display:flex;align-items:center;padding-top:120px;padding-bottom:120px}.who-lead{color:var(--ah-ivory)!important;font-weight:500!important}.offscreen{margin-top:190px!important;font:400 10px/1 "IBM Plex Mono",monospace!important;letter-spacing:.17em!important;color:#939297!important}.offscreen span{margin-right:9px;width:5px;height:5px}.signature-anchor{position:absolute;right:var(--ah-edge);top:50%;width:min(484px,38vw);height:390px;transform:translateY(-50%);pointer-events:none}.signature-anchor span{position:absolute;left:42%;bottom:9%;font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.15em;color:#8d8c92}
.contact{min-height:92vh;display:flex;align-items:center;padding-top:130px;padding-bottom:170px}.contact-copy{position:relative;z-index:5}.contact-copy>p{max-width:430px}.mail{display:inline-block;margin-top:28px;border-bottom:1px solid var(--ah-ivory);font-size:clamp(27px,4.1vw,59px);font-weight:300;letter-spacing:-.055em;line-height:1.2;transition:color .3s ease,border-color .3s ease}.mail:hover{color:var(--ah-cyan);border-color:var(--ah-cyan)}.phone-line{margin-top:18px!important;color:#939297!important;font-size:10px!important;letter-spacing:.16em!important;text-transform:none!important}.phone-line a{border-bottom:1px solid #585960}.contact-links{display:flex;align-items:center;gap:13px;margin-top:42px;color:#939297;font-size:9px}.contact-links a{display:inline-flex;align-items:center;min-height:44px}.contact-links a:hover{color:var(--ah-cyan)}.contact-links a:focus-visible{outline:2px solid var(--ah-cyan);outline-offset:4px;color:var(--ah-ivory)}footer{z-index:5;display:flex;justify-content:space-between;align-items:flex-end;padding:34px 4.5vw;color:#8b8a90;font-size:9px;line-height:1.5}footer a{text-transform:none;letter-spacing:.08em;border-bottom:1px solid #3b3d44}
.reveal{opacity:1;transform:none}.has-gsap .reveal{opacity:0;transform:translateY(26px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body::before{animation:none!important}.ah-particle-plane{display:none!important}.ah-site-nav,.craft{transition:none!important}.ah-site-nav.hidden{transform:none!important;opacity:1!important}.has-gsap .reveal{opacity:1!important;transform:none!important}.crafts{min-height:auto!important;display:block!important;padding-top:clamp(96px,14vh,150px)!important;padding-bottom:clamp(96px,14vh,150px)!important}.crafts-copy{position:relative!important;top:auto!important}.craft-anchor,.signature-anchor{display:none!important}.who{min-height:auto!important;padding-top:clamp(96px,14vh,150px)!important;padding-bottom:clamp(96px,14vh,150px)!important}.contact{min-height:auto!important;padding-top:120px!important;padding-bottom:120px!important}}
@media(max-width:900px){:root{--ah-edge:clamp(28px,8vw,72px)}.main-nav{gap:18px}.ah-opening-copy{width:72vw}.chapter-copy,.section-lead{width:min(570px,72vw)}.project-grid{column-gap:28px;row-gap:66px}.project h3{min-height:2.25em}.crafts{grid-template-columns:1fr 44vw;column-gap:3vw}.signature-anchor{right:4vw}}
@media(max-width:700px){.ah-site-nav{padding:20px var(--ah-edge) 0}.wordmark{font-size:20px}.main-nav{display:none}.menu-button{display:block;position:relative;z-index:2}body.menu-open{overflow:hidden}.ah-site-nav.menu-open{transform:none!important;opacity:1!important}.ah-site-nav.menu-open .main-nav{position:fixed;inset:0;z-index:1;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:28px;padding:15vh var(--ah-edge);background:rgba(5,7,17,.98);backdrop-filter:blur(18px);font-size:16px}.ah-site-nav.menu-open .main-nav a{width:100%;padding:10px 0;border-bottom:1px solid var(--ah-rule)}.ah-site-nav.menu-open .wordmark{position:relative;z-index:2}.ah-opening{align-items:center}.ah-opening-copy{width:100%}.kicker{margin-bottom:34px}.ah-opening-mark{font-size:clamp(51px,14.2vw,62px);line-height:.8;transform:scaleX(1.02)}.ah-opening-intro{width:94%;margin-top:38px;font-size:18px}.chapter-copy,.section-lead{width:100%}.project-grid{grid-template-columns:1fr;row-gap:72px}.project h3{min-height:0}.project-meta{min-height:0}.work{padding-top:100px}.crafts{min-height:220vh;display:grid;grid-template-columns:1fr;align-items:start;padding-top:120px}.crafts-copy{position:sticky;top:6vh;width:100%;grid-column:1;grid-row:1}.crafts .craft-list{margin-top:16px}.crafts .craft{padding:18px 0}.craft-anchor{position:sticky;top:70vh;grid-column:1;grid-row:1;margin-top:0;width:100%;height:190px}.who{min-height:0;display:block;padding-top:110px;padding-bottom:50px}.signature-anchor{position:relative;right:auto;top:auto;bottom:auto;width:100%;height:220px;margin-top:58px;transform:none}.signature-anchor span{left:42%;bottom:5%}.offscreen{margin-top:40px!important}.contact{min-height:0;display:block;padding-top:60px;padding-bottom:140px}.mail{font-size:clamp(22px,6.8vw,34px);letter-spacing:-.04em}.contact-links{flex-wrap:wrap;margin-top:200px}footer{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.who{padding-top:96px!important;padding-bottom:50px!important}.contact{padding-top:60px!important;padding-bottom:110px!important}}
@media(hover:none){.project-shot b{opacity:1;transform:none}}
.principle{min-height:160vh;align-items:start;padding-top:46vh}
.principle .chapter-copy{position:relative;transform:translateY(calc(-50% + var(--principle-lock-y,0px)))}
@media(max-width:700px){.principle{min-height:165vh;padding-top:46vh}}
@media(prefers-reduced-motion:reduce){.principle{min-height:55vh;align-items:center;padding-top:72px}.principle .chapter-copy{position:relative;transform:none}}
