html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}:root{--bk: #0a0a0a;--wh: #f1f1ef;--mid: #8a8a8a;--line: rgba(241, 241, 239, .14);--pad: clamp(16px, 3vw, 40px);--ease: cubic-bezier(.77, 0, .18, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--display: "Libron", Georgia, serif;--mono: "Courier Prime", ui-monospace, monospace}@font-face{font-family:Libron;src:url(/assets/Libron-Regular-BohC9j2w.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bk);color:var(--wh);-webkit-font-smoothing:antialiased}html.is-locked{overflow:hidden}body{font-family:var(--display);font-size:16px;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}ul{list-style:none}img{display:block;max-width:100%}::selection{background:var(--wh);color:var(--bk)}:focus-visible{outline:1px solid currentColor;outline-offset:4px}.mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:lowercase}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}[data-skew],[data-speed]{will-change:transform}.split-w{display:inline-block;vertical-align:top;clip-path:inset(0 -.25em -.15em);padding-bottom:.08em;margin-bottom:-.08em}.split-c{display:inline-block;transform:translate3d(0,130%,0) rotate(4deg);transform-origin:left bottom;transition:transform 1.1s var(--ease);transition-delay:calc(var(--d, 0s) + var(--i, 0) * var(--st, 35ms))}.split.is-in .split-c{transform:none}.reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:var(--d, 0s)}.reveal.is-in{opacity:1;transform:none}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bk);display:flex;flex-direction:column;justify-content:space-between;padding:var(--pad);transition:transform 1.1s var(--ease)}.preloader.is-leaving{transform:translate3d(0,-100%,0)}.preloader-top{display:flex;justify-content:space-between;color:var(--mid)}.preloader-count{align-self:flex-end;font-size:clamp(5rem,22vw,20rem);font-weight:400;line-height:.8;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.preloader-bar{position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--wh);transform-origin:left}html.has-cursor,html.has-cursor *{cursor:none!important}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:110;pointer-events:none;mix-blend-mode:difference;will-change:transform;transition:opacity .3s}html:not(.has-cursor) .cursor-dot,html:not(.has-cursor) .cursor-ring{display:none}.cursor-dot.is-hidden,.cursor-ring.is-hidden{opacity:0;transition-duration:.15s}.cursor-dot{width:6px;height:6px;margin:-3px;border-radius:50%;background:#fff}.cursor-ring{width:0;height:0}.cursor-ring-shape{position:absolute;width:36px;height:36px;left:-18px;top:-18px;border:1px solid #fff;border-radius:50%}.hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none;color:var(--wh);display:flex;flex-direction:column;justify-content:space-between;padding:var(--pad);opacity:0;transition:opacity 1s .6s}.hud.is-in{opacity:1}.hud a,.hud button{pointer-events:auto}.hud-top,.hud-bottom{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;transition:color .3s}.hud-top.is-inverted,.hud-bottom.is-inverted{color:var(--bk)}.hud-top>*,.hud-bottom>*{flex:1}.hud-top{align-items:center}.hud-bottom{align-items:flex-end}.hud-nav{display:flex;justify-content:flex-end;gap:8px}.hud-nav a{font-size:13px;padding:10px 18px;border:1px solid currentColor;background:var(--bk);transition:background-color .2s,color .2s}.hud-top.is-inverted .hud-nav a{background:var(--wh)}.hud-nav a:hover{background:var(--wh);color:var(--bk)}.hud-top.is-inverted .hud-nav a:hover{background:var(--bk);color:var(--wh)}.hud-bottom>:last-child{text-align:right}.hud-progress{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;font-variant-numeric:tabular-nums}.hud-progress-bar{display:inline-block;width:64px;height:1px;background:currentColor;transform-origin:left}@media(max-width:720px){.hud-progress-bar{display:none}.hud-nav{gap:6px}.hud-nav a{font-size:12px;padding:8px 11px}}.section{position:relative;padding:clamp(96px,16vh,180px) var(--pad)}.sec-head{display:flex;align-items:center;gap:16px;margin-bottom:clamp(48px,10vh,120px)}.sec-line{flex:1;height:1px;background:var(--line)}.sec-title{font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:lowercase;font-family:var(--mono)}.hero{position:relative;height:100svh;min-height:560px;overflow-x:clip;overflow-y:visible;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--pad);padding-bottom:calc(var(--pad) + 40px)}.dotgrid,.ascii-title{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.ascii-field{position:absolute;top:0;left:0;width:100%;pointer-events:none}.hero-title .split-w{clip-path:none}.hero-title .split-c{transform:none;opacity:0;transition:opacity .7s var(--ease-out)}.hero-title .split.is-in .split-c{opacity:1}.hero-title{position:relative;display:flex;flex-direction:column;font-size:clamp(4.5rem,21vw,24rem);font-weight:400;line-height:.85;letter-spacing:-.03em;margin-left:-.03em;pointer-events:none}.hero-last{align-self:flex-end}.hero-foot{position:relative;margin-top:clamp(24px,4vh,48px);display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end;color:var(--mid);opacity:0;transform:translateY(12px);transition:opacity 1s .6s,transform 1s .6s var(--ease-out)}.hero-foot.is-in{opacity:1;transform:none}.hero-foot>:first-child{color:var(--wh)}.mode-switch{position:absolute;z-index:95;right:var(--pad);bottom:calc(var(--pad) + 40px);padding:10px 14px;border:1px solid var(--wh);background:var(--bk);color:var(--wh);font-size:12px;transition:background-color .2s,color .2s}.mode-switch:hover{background:var(--wh);color:var(--bk)}.mode-switch.is-fixed{position:fixed}@media(max-width:720px){.mode-switch{right:auto;left:var(--pad)}}@media(max-width:720px){.hero-foot{grid-template-columns:1fr;padding-bottom:64px}.hero-tagline{display:none}}.about{padding-bottom:clamp(32px,5vh,64px)}.about .sec-head{margin-bottom:clamp(32px,6vh,72px)}.about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,40px);align-items:start}.about-statement{grid-column:1 / 9;font-size:clamp(1.5rem,4.4vw,2rem);font-weight:400;line-height:1.3;letter-spacing:-.005em}.about-statement p+p{margin-top:1em}.about-photo{grid-column:9 / 13;justify-self:center;align-self:center;width:min(100%,280px)}.about-photo-cap{margin-top:12px;color:var(--mid);text-transform:none;text-align:center}.about-photo-mask{aspect-ratio:1 / 1;opacity:1;transform:none}.about-photo-clip{height:100%;overflow:hidden;clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease)}.about-photo-mask.is-in .about-photo-clip{clip-path:inset(0 0 0 0)}.about-photo-mask img{width:100%;height:120%;margin-top:-10%;object-fit:cover}@media(max-width:860px){.about-statement,.about-photo{grid-column:1 / -1}.about-photo{max-width:320px;justify-self:start}.about-photo-cap{text-align:left}}.project-list{border-top:1px solid var(--line)}.project-list>li{border-bottom:1px solid var(--line);transition:opacity .4s}.project-list>li.is-dim{opacity:.25}.project-row{position:relative;display:grid;isolation:isolate;grid-template-columns:1fr 96px;column-gap:24px;row-gap:clamp(14px,2vh,22px);align-items:baseline;padding:clamp(32px,5.5vh,56px) 0;transition:color .4s}.project-row:before{content:"";position:absolute;inset:0 calc(var(--pad) * -1);z-index:-1;background:var(--wh);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}a.project-row:hover{color:var(--bk)}a.project-row:hover:before{transform:scaleY(1)}.project-year{color:var(--mid);transition:color .4s}a.project-row:hover .project-year{color:var(--bk)}.project-year{text-align:right}.project-name{font-size:clamp(1.75rem,4.5vw,4rem);font-weight:400;letter-spacing:-.02em;line-height:1.05;transition:transform .6s var(--ease)}.project-row:hover .project-name{transform:translate(16px)}.project-desc{grid-column:1 / 3;max-width:62ch;color:var(--mid);font-size:16px;line-height:1.55}a.project-row:hover .project-desc{color:#444}.project-preview{position:fixed;top:0;left:0;z-index:85;pointer-events:none;width:min(460px,38vw);background:var(--bk);color:var(--wh);border:1px solid var(--wh);clip-path:inset(50% 50% 50% 50%);transition:clip-path .5s var(--ease);will-change:transform}.project-preview.is-on{clip-path:inset(0 0 0 0)}.preview-media{position:relative;aspect-ratio:16 / 10;background:#000;border-bottom:1px solid var(--line)}.preview-media.is-empty{display:none}.preview-clip{position:absolute;top:0;right:0;bottom:0;left:0;visibility:hidden}.preview-clip.is-current{visibility:visible}.preview-clip-missing{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--mid)}.preview-clip video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.preview-info{display:flex;flex-direction:column;gap:18px;padding:24px 26px 26px}.preview-name{font-size:1.75rem;font-weight:400;letter-spacing:-.02em;line-height:1.1}.preview-info.is-detailed .preview-name{font-size:2rem}.preview-details{font-size:15px;line-height:1.6;color:#c9c9c7}.preview-details+.preview-details{margin-top:-6px}.preview-highlights{display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:12.5px;line-height:1.35;letter-spacing:.02em;text-transform:lowercase}.preview-highlights li:before{content:"→ ";color:var(--mid)}.preview-sound{color:var(--mid)}.preview-cta{padding-top:16px;border-top:1px solid var(--line);color:var(--mid)}@media(pointer:coarse),(max-width:720px){.project-preview{display:none}}.projects-more{display:inline-block;margin-top:32px;color:var(--mid);text-decoration:underline 1px transparent;text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}.projects-more:hover{color:var(--wh);text-decoration-color:currentColor}@media(max-width:720px){.project-row{grid-template-columns:1fr auto}.project-desc{grid-column:1 / 3}}.contact{background:var(--wh);color:var(--bk);--line: rgba(10, 10, 10, .16);--mid: #6b6b6b;min-height:100svh;display:flex;flex-direction:column}.contact ::selection{background:var(--bk);color:var(--wh)}.contact-title{font-size:clamp(3rem,12vw,12rem);font-weight:400;letter-spacing:-.03em;line-height:.9}.contact-email-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px 32px;margin-top:clamp(40px,8vh,96px)}.contact-email{font-size:clamp(1.25rem,3.6vw,3rem);font-weight:400;letter-spacing:-.01em}.contact-copy{color:var(--mid);font-size:13px}.contact-copy:hover{color:var(--bk)}.contact-links{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:40px;font-size:13px}.contact-email,.contact-links a{text-decoration:underline 1px transparent;text-underline-offset:4px;transition:text-decoration-color .2s}.contact-email:hover,.contact-links a:hover{text-decoration-color:currentColor}.contact-links .icon{width:14px;height:14px;margin-right:8px;vertical-align:-2px}.drawing-tab{position:absolute;right:0;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;padding:18px 10px;font-size:12px;text-transform:lowercase;border:1px solid var(--bk);border-left:0;transition:background-color .2s,color .2s}.drawing-tab:hover{background:var(--bk);color:var(--wh)}@media(max-width:720px){.drawing-tab{position:static;transform:none;writing-mode:horizontal-tb;align-self:flex-start;margin-top:32px;padding:10px 14px;border-left:1px solid var(--bk)}}.sketch-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:105;display:grid;place-items:center;padding:var(--pad);background:#0a0a0a59;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.sketch-overlay.is-open{opacity:1;visibility:visible;transition:opacity .3s}.sketch{--line: rgba(10, 10, 10, .16);--mid: #6b6b6b;display:flex;flex-direction:column;gap:12px;width:min-content;padding:clamp(14px,2vw,24px);background:var(--wh);color:var(--bk);border:1px solid var(--bk);outline:none;transform:translateY(12px) scale(.98);transition:transform .4s var(--ease-out)}.sketch-overlay.is-open .sketch{transform:none}.sketch-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:12px;white-space:nowrap}.sketch-head>:first-child{margin-right:auto}.sketch-close{margin-left:auto;text-transform:inherit;letter-spacing:inherit}.sketch-close:hover{text-decoration:underline;text-underline-offset:4px}.sketch-note{color:var(--mid)}.sketch-note.is-sent{color:var(--bk)}.sketch-pad{display:block;width:min(1040px,calc(100vw - var(--pad) * 2 - 50px),calc((100svh - 240px) * 4 / 3));background:#fff;border:1px solid var(--bk);touch-action:none}.sketch-bar{display:flex;gap:8px;font-size:12px}.sketch-name{flex:1;width:0;min-width:0;padding:8px 0;font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid var(--line);outline:none;text-transform:none}.sketch-name:focus{border-bottom-color:var(--bk)}.sketch-name::placeholder{color:var(--mid);text-transform:lowercase}.sketch-btn{padding:8px 12px;border:1px solid currentColor;text-transform:inherit;letter-spacing:inherit;transition:background-color .2s,color .2s}.sketch-btn:hover:not(:disabled){background:var(--bk);color:var(--wh)}.sketch-btn:disabled{opacity:.3;cursor:default}.sketch-btn.is-on{background:var(--bk);color:var(--wh)}.sketch-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.sketch-group{display:flex;align-items:center;gap:6px}.sketch-size{display:grid;place-items:center;width:26px;height:26px;border:1px solid transparent;transition:border-color .2s}.sketch-size span{display:block;border-radius:50%;background:var(--bk)}.sketch-size:hover,.sketch-size.is-on{border-color:var(--bk)}.sketch-slider{width:96px;margin-left:4px;accent-color:var(--bk);cursor:pointer}.sketch-px{min-width:4ch;font-variant-numeric:tabular-nums}.sketch-swatch{position:relative;width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 1px var(--line);transition:box-shadow .2s}.sketch-swatch:hover{box-shadow:0 0 0 1px var(--bk)}.sketch-swatch.is-on{box-shadow:0 0 0 2px var(--wh),0 0 0 3px var(--bk)}.sketch-wheel{background:radial-gradient(circle,var(--picked, #fff) 0 32%,transparent 34%),conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.sketch-wheel input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.contact-totop{position:absolute;right:var(--pad);bottom:calc(var(--pad) + 28px);padding:10px 18px;font-size:13px;border:1px solid var(--bk);background:var(--wh);color:var(--bk);transition:background-color .2s,color .2s}.contact-totop:hover{background:var(--bk);color:var(--wh)}@media(max-width:720px){.contact-totop{font-size:12px;padding:8px 11px}}.footer{margin-top:auto;padding-top:96px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--mid)}.min{min-height:100svh;display:flex;flex-direction:column;padding:0 var(--pad) calc(var(--pad) + 104px)}.min-main,.min-foot{width:100%;max-width:600px;margin:0 auto}.min-main{flex:1;padding:clamp(48px,12vh,120px) 0 64px}.min-name{font-size:2.25rem;font-weight:400;letter-spacing:-.02em;line-height:1.1;padding-bottom:14px;border-bottom:1px solid var(--line)}.min-meta{margin-top:14px;font-size:12px;color:var(--mid)}.min-text{margin-top:20px;font-size:17px;line-height:1.6;color:#d6d6d4}.min-label{margin:56px 0 8px;font-size:12px;font-weight:400;color:var(--mid)}.min-list>li{padding:16px 0;border-bottom:1px solid var(--line)}.min-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.min-project{font-size:19px}.min-year{font-size:12px;color:var(--mid)}.min-desc{margin-top:6px;font-size:15px;line-height:1.55;color:var(--mid)}.min-links{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:16px;font-size:13px}.min-links .icon{width:14px;height:14px;margin-right:8px;vertical-align:-2px}.min-small{display:inline-block;margin-top:16px;font-size:12px;color:var(--mid)}.min-drawing{display:block;margin-top:24px;text-transform:lowercase;letter-spacing:.04em}.min-foot{padding:24px 0 40px;font-size:12px;color:var(--mid);border-top:1px solid var(--line)}.min a,.min-drawing{text-decoration:underline 1px rgba(241,241,239,.3);text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}.min a:hover,.min-drawing:hover{color:var(--wh);text-decoration-color:currentColor}.min-links a{text-decoration-color:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}.grain{display:none}}
