:root{--ink:#13110f;--paper:#e9e4d8;--red:#a82d22;--line:rgba(233,228,216,.22);--muted:#9b958b;--display:"Helvetica Neue",Arial,"Noto Sans SC",sans-serif;--body:"Helvetica Neue",Arial,"Noto Sans SC",sans-serif;--mono:"Helvetica Neue",Arial,"Noto Sans SC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:var(--ink);color:var(--paper);font-family:var(--body);font-weight:300;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:10px 14px;background:var(--paper);color:var(--ink);transform:translateY(-150%)}.skip-link:focus{transform:none}.film-grain{position:fixed;z-index:50;inset:0;pointer-events:none;opacity:.18;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='.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.frame-counter{position:fixed;z-index:10;right:16px;bottom:16px;color:#8d887f;font:10px var(--mono);writing-mode:vertical-rl}.site-header{position:fixed;z-index:20;top:0;display:grid;width:100%;grid-template-columns:1fr auto 1fr;align-items:start;padding:24px 32px;border-bottom:1px solid transparent;transition:.35s}.site-header.scrolled{border-color:var(--line);background:rgba(19,17,15,.88);backdrop-filter:blur(14px)}.wordmark{display:flex;flex-direction:column;font:500 13px var(--display);letter-spacing:-.04em;text-transform:uppercase}.wordmark small{color:var(--muted);font:9px var(--mono);letter-spacing:.12em}.site-nav{display:flex;gap:30px}.site-nav a{display:flex;gap:7px;font-size:12px}.site-nav a span{color:var(--muted);font:8px var(--mono)}.header-meta{display:flex;justify-self:end;align-items:center;gap:8px;font:9px var(--mono);text-transform:uppercase}.record-dot{width:7px;height:7px;border-radius:50%;background:var(--red);animation:pulse 2.4s infinite}.menu-toggle{display:none}.hero{position:relative;display:grid;min-height:100dvh;grid-template-rows:1fr auto;overflow:hidden;padding:120px 4vw 40px}.hero-background{position:absolute;inset:0;background:radial-gradient(circle at 68% 48%,#453f34,transparent 22%),linear-gradient(112deg,#090908,#1f1c18 56%,#0b0a09)}.projector-beam{position:absolute;top:-20%;left:48%;width:60%;height:120%;background:linear-gradient(110deg,transparent 6%,rgba(233,228,216,.16) 48%,transparent 74%);filter:blur(30px);transform:rotate(-9deg);animation:beam 9s ease-in-out infinite alternate}.hero-frame{position:absolute;border:1px solid rgba(233,228,216,.2);background:rgba(12,11,10,.52);box-shadow:0 34px 90px rgba(0,0,0,.45);transform:rotate(-5deg)}.frame-a{top:20%;right:8%;width:30vw;height:38vw}.frame-b{right:24%;bottom:-16%;width:28vw;height:34vw;transform:rotate(7deg)}.hero-index{position:relative;z-index:1;color:#8d887f;font:10px/1.7 var(--mono);text-transform:uppercase}.hero-title-wrap{position:relative;z-index:1;align-self:center;margin-left:7vw}.hero-pretitle{color:var(--muted);font:10px var(--mono);letter-spacing:.16em;text-transform:uppercase}.hero h1{display:flex;max-width:11ch;flex-direction:column;margin:0;font:500 clamp(3.7rem,10vw,10rem)/.82 var(--display);letter-spacing:-.09em;text-transform:uppercase}.hero h1 i{align-self:flex-end;margin-top:22px;color:var(--red);font:italic 300 clamp(1.8rem,4vw,4.4rem) var(--body);text-transform:none}.hero-role{font-size:clamp(1rem,1.8vw,1.5rem)}.hero-footer{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;border-top:1px solid var(--line);padding-top:20px}.hero-footer p{max-width:48ch;margin:0;color:#bbb4a8;font-size:13px;line-height:1.8}.hero-footer a{font:10px var(--mono);text-transform:uppercase}.section{padding:150px 5vw}.section-header{display:grid;grid-template-columns:1fr 2fr 1fr;gap:5vw;margin-bottom:110px}.section-header>div,.chapter-label{font:10px var(--mono);text-transform:uppercase}.section-header span,.chapter-label span{color:var(--red)}.section-header h2{margin:0;font:400 clamp(1.8rem,3.5vw,4rem)/1.15 var(--body);letter-spacing:-.05em}.section-note{color:var(--muted);font:10px/1.8 var(--mono)}.project{display:grid;min-height:72vh;grid-template-columns:56% 44%;border-top:1px solid var(--line);padding:28px 0 90px}.project-visual{position:relative;min-height:580px;overflow:hidden;background:var(--visual-bg);clip-path:inset(0);transition:.7s}.project:hover .project-visual{clip-path:inset(12px)}.project-shape{position:absolute;inset:17% 12% 10% 17%;background:var(--card-bg);box-shadow:0 30px 70px rgba(0,0,0,.28);transform:rotate(-4deg);transition:.8s}.project:hover .project-shape{transform:rotate(0) scale(1.03)}.project-mark{position:absolute;right:18px;bottom:15px;font:9px var(--mono)}.project-info{display:flex;flex-direction:column;padding-left:6vw}.project-number{color:var(--muted);font:10px var(--mono)}.project-info h3{margin:auto 0 22px;font:500 clamp(2.2rem,5vw,6.2rem)/.92 var(--display);letter-spacing:-.075em;text-transform:uppercase;overflow-wrap:anywhere}.project-info p{max-width:40ch;color:#aca69b;font-size:13px;line-height:1.8}.project-meta{display:flex;flex-wrap:wrap;gap:10px 18px;color:#827c72;font:9px var(--mono);text-transform:uppercase}.project-link{display:flex;justify-content:space-between;margin-top:50px;border-top:1px solid var(--line);padding-top:15px;font:10px var(--mono);text-transform:uppercase}.intertitle{display:flex;min-height:75dvh;flex-direction:column;align-items:center;justify-content:center;padding:12vw;background:var(--paper);color:var(--ink);text-align:center}.intertitle p{margin:0;font:400 clamp(2.5rem,7vw,8rem)/.95 var(--body);letter-spacing:-.07em}.intertitle em{color:var(--red)}.intertitle span{margin-top:50px;font:9px var(--mono)}.chapter-label{display:grid;grid-template-columns:1fr 3fr;margin-bottom:80px;border-top:1px solid var(--line);padding-top:16px}.chapter-label p{margin:0}.about-layout{display:grid;grid-template-columns:.8fr 1.4fr;gap:9vw}.about-portrait{position:relative;display:grid;min-height:650px;place-items:center;overflow:hidden;background:#23201c}.portrait-light{position:absolute;inset:-30% 0 0 24%;background:radial-gradient(ellipse,rgba(233,228,216,.32),transparent 58%);transform:rotate(14deg)}.about-portrait>span{position:relative;font:500 clamp(5rem,12vw,12rem) var(--display);mix-blend-mode:overlay}.about-portrait small{position:absolute;right:16px;bottom:15px;font:8px var(--mono)}.about-copy{padding-top:8vh}.about-lead{font:400 clamp(2rem,4.5vw,5rem)/1.1 var(--body);letter-spacing:-.06em}.about-text{display:grid;grid-template-columns:1fr 1fr;gap:35px;color:#aaa49a;font-size:13px;line-height:1.9}.facts{display:grid;grid-template-columns:1fr 1fr;margin-top:70px;border-top:1px solid var(--line)}.facts div{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}.facts dt{color:var(--muted);font:9px var(--mono)}.facts dd{margin:0;font:24px var(--display)}.credits{background:#171512}.credits-layout{display:grid;grid-template-columns:1.6fr .8fr;gap:10vw}.timeline-item{display:grid;grid-template-columns:150px 1fr auto;gap:30px;border-top:1px solid var(--line);padding:28px 0}.timeline-period,.timeline-type{color:var(--muted);font:9px var(--mono)}.timeline-item h3{margin:0;font:500 clamp(1.4rem,2.4vw,2.6rem) var(--display)}.timeline-item p{color:var(--muted);font-size:12px}.skill-column{display:flex;flex-direction:column;gap:48px}.skill-column>div>p{color:var(--red);font:9px var(--mono);text-transform:uppercase}.skill-column>div>div{display:flex;flex-wrap:wrap;gap:9px 16px}.skill-column span{color:#b3ada2;font-size:12px}.contact{display:flex;min-height:92dvh;flex-direction:column;justify-content:center;padding:10vw 5vw 6vw;background:var(--paper);color:var(--ink)}.contact-label{font:9px var(--mono)}.contact>p{margin:10vh 0 12vh;font:400 clamp(2.6rem,7.5vw,8.5rem)/.98 var(--body);letter-spacing:-.08em}.contact-email{display:flex;align-items:end;justify-content:space-between;border-bottom:2px solid;padding-bottom:14px;font:500 clamp(1.3rem,4vw,4.8rem) var(--display)}.contact-email i{font:italic 14px var(--body)}.social-row{display:flex;gap:20px;margin-top:36px}.social-row a{font:9px var(--mono);text-transform:uppercase}.site-footer{display:grid;grid-template-columns:1fr auto auto auto auto;gap:30px;padding:25px 32px;color:var(--muted);font:9px var(--mono);text-transform:uppercase}.site-footer p{margin:0}.reveal{opacity:0;transform:translateY(35px);transition:.9s}.reveal.visible{opacity:1;transform:none}@keyframes pulse{50%{opacity:.3}}@keyframes beam{to{transform:rotate(-5deg) translateX(3%)}}
@media(max-width:900px){.site-header{grid-template-columns:1fr auto;padding:19px 18px}.site-nav{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;padding:15vw;background:var(--ink);opacity:0;pointer-events:none}.site-nav.open{opacity:1;pointer-events:auto}.site-nav a{font:8vw var(--display)}.menu-toggle{position:relative;z-index:2;display:block;border:0;background:none;font:10px var(--mono)}.header-meta{display:none}.hero{padding:100px 18px 28px}.hero-title-wrap{margin-left:0}.hero h1{font-size:16vw}.frame-a{right:-20%;width:75vw;height:82vw}.frame-b{display:none}.hero-footer,.section-header,.project,.about-layout,.credits-layout{grid-template-columns:1fr}.section{padding:100px 18px}.section-header{margin-bottom:70px}.project{min-height:0;padding:18px 0 70px}.project-visual{min-height:72vw}.project-info{min-height:400px;padding:35px 0 0}.project-info h3{font-size:12vw}.about-portrait{min-height:125vw}.about-text{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.timeline-item{grid-template-columns:90px 1fr}.timeline-type{display:none}.contact{padding:110px 18px 60px}.contact-email{align-items:flex-start;flex-direction:column;gap:15px;overflow-wrap:anywhere}.site-footer{grid-template-columns:1fr 1fr}.site-footer>*:nth-child(even){text-align:right}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body *{text-transform:none!important}
.site-header{grid-template-columns:1fr auto;align-items:center;padding:20px 26px}.wordmark{display:block;font:500 13px/1 "Helvetica Neue",Arial,"Noto Sans SC",sans-serif;letter-spacing:-.025em}.site-nav{justify-self:end;gap:18px}.site-nav a{position:relative;display:block;padding:2px 0;font:400 11px/1.2 "Helvetica Neue",Arial,"Noto Sans SC",sans-serif;letter-spacing:-.015em;transition:opacity .2s ease}.site-nav a::after{position:absolute;right:0;bottom:-4px;left:0;height:1px;content:"";background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s cubic-bezier(.16,1,.3,1)}.site-nav a:hover::after,.site-nav a.active::after{transform:scaleX(1);transform-origin:left}.site-nav a:not(.active):hover{opacity:.62}.project-slide[hidden]{display:none}
@media(max-width:900px){.site-header{padding:18px}.wordmark{font-size:12px}.site-nav{gap:0}.site-nav a{font:500 8vw/1.08 "Helvetica Neue",Arial,"Noto Sans SC",sans-serif;letter-spacing:-.045em}.site-nav a::after{display:none}}
.site-intro{position:fixed;z-index:90;inset:0;display:grid;place-items:center;overflow:hidden;background:#050505;color:#f2efe8;pointer-events:none;transition:opacity .6s cubic-bezier(.76,0,.24,1),visibility .6s}.site-intro.finished{visibility:hidden;opacity:0}.intro-name{display:flex;gap:.24em;overflow:hidden;font:400 clamp(2.8rem,9vw,9rem)/.86 "Helvetica Neue",Arial,"Noto Sans SC",sans-serif;letter-spacing:-.075em}.intro-name span{display:block;opacity:0;transform:translateY(115%);animation:intro-name-in .7s cubic-bezier(.16,1,.3,1) forwards}.intro-name span:first-child{animation-delay:.28s}.intro-name span:last-child{animation-delay:.88s}@keyframes intro-name-in{40%{opacity:1}100%{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.site-intro{display:none}}
.works>.section-header{display:none}.works{padding-top:96px}
@media(max-width:900px){.works{padding-top:78px}}
.hero .projector-beam,.hero .hero-frame,.hero h1 i{display:none}
