:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--bg-soft:#0b0b0a;--panel:#111110d1;--line:#f4f4ed29;--line-strong:#f4f4ed66;--text:#f4f4ef;--muted:#f4f4eda3;--faint:#f4f4ed80;--accent:#d9d6ca;--font-main:Switzer, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--gutter:max(clamp(1rem, 4vw, 4rem), calc((100vw - 120rem) / 2 + 4rem));--page-inset-start:max(var(--gutter), env(safe-area-inset-left,0px));--page-inset-end:max(var(--gutter), env(safe-area-inset-right,0px));--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--header-clearance:4rem;--hero-optical-left:clamp(.26rem, .76vw, .72rem);--radius:6px;--cursor-precision:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25'%3E%3Cpath d='M12.5 2.5v7M12.5 15.5v7M2.5 12.5h7M15.5 12.5h7' stroke='%23f4f4ef' stroke-width='1' stroke-linecap='square'/%3E%3Ccircle cx='12.5' cy='12.5' r='1.2' fill='none' stroke='%23f4f4ef' stroke-width='.8'/%3E%3C/svg%3E") 12 12, crosshair}*{box-sizing:border-box;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-block-start:calc(var(--header-clearance) + var(--safe-area-top))}body{background:var(--bg);color:var(--text);font-family:var(--font-main);margin:0;font-size:100%;line-height:1.55}body:before{content:none;display:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input{font:inherit}:focus-visible{outline:1px solid var(--text);outline-offset:4px}@media (hover:hover) and (pointer:fine){body{cursor:var(--cursor-precision)}a,button,input,.instrument-button,.control-handle{cursor:pointer}}::selection{background:var(--text);color:var(--bg)}.skip-link{top:calc(1rem + var(--safe-area-top));left:var(--page-inset-start);z-index:20;background:var(--text);color:var(--bg);font-family:var(--font-mono);text-transform:uppercase;padding:.75rem 1rem;font-size:.75rem;position:fixed;overflow:hidden}.skip-link:not(:focus){clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0}.skip-link:focus{clip:auto;clip-path:none;white-space:normal;width:auto;height:auto;padding:.75rem 1rem}.eyebrow{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-indent:var(--hero-optical-left);text-transform:uppercase;margin:0 0 1rem;font-size:.72rem}h1,h2,h3{overflow-wrap:normal;text-wrap:balance;word-break:normal}p,li{overflow-wrap:break-word}h1,h2,h3{letter-spacing:0;margin:0;font-weight:500;line-height:.98}h1{max-width:9ch;font-size:clamp(4rem,13vw,12.5rem)}#hero-title{font-size:min(clamp(4rem,13vw,12.5rem),11.5vw);isolation:isolate;text-wrap:wrap;inline-size:-moz-fit-content;inline-size:fit-content;max-inline-size:100%;font-size:min(clamp(4rem,13vw,12.5rem),31cqi);position:relative}.hero-title-word{white-space:nowrap;display:block}@media (hover:hover) and (pointer:fine) and (min-width:701px){#hero-title:before,#hero-title:after{z-index:1;color:var(--text);content:attr(data-text);opacity:0;pointer-events:none;mix-blend-mode:screen;white-space:normal;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}#hero-title.is-glitching{animation:1.5s step-end both hero-title-glitch-core}#hero-title.is-glitching:before{opacity:.58;text-shadow:.022em 0 #f4f4ef38;animation:1.5s step-end both hero-title-glitch-slice-a;-webkit-mask-image:repeating-linear-gradient(#000 0 .018em,#0000 .018em .046em);mask-image:repeating-linear-gradient(#000 0 .018em,#0000 .018em .046em)}#hero-title.is-glitching:after{opacity:.36;filter:blur(.35px)contrast(1.2);text-shadow:-.018em 0 #f4f4ef2e;animation:1.5s step-end both hero-title-glitch-slice-b;-webkit-mask-image:repeating-linear-gradient(#000 0 .012em,#0000 .012em .035em);mask-image:repeating-linear-gradient(#000 0 .012em,#0000 .012em .035em)}}@keyframes hero-title-glitch-core{0%,7%,31%,62%,to{filter:none;transform:translate(0)}9%{filter:contrast(1.12);transform:translate(.012em,-.005em)}14%{transform:translate(-.01em,.004em)}20%{filter:blur(.22px)contrast(1.16);transform:translate(.017em)}43%{transform:translate(-.008em,.006em)}49%{filter:contrast(1.08);transform:translate(.006em,-.004em)}}@keyframes hero-title-glitch-slice-a{0%,5%,72%,to{clip-path:inset(0 0 100%);transform:translate(0)}8%{clip-path:inset(2% 0 94%);transform:translate(.038em,-.006em)}11%{clip-path:inset(8% 0 88%);transform:translate(-.026em,.003em)}14%{clip-path:inset(17% 0 79%);transform:translate(.032em,.004em)}18%{clip-path:inset(27% 0 69%);transform:translate(-.035em,-.002em)}22%{clip-path:inset(36% 0 61%);transform:translate(.045em,.005em)}27%{clip-path:inset(47% 0 49%);transform:translate(-.024em,-.003em)}34%{clip-path:inset(56% 0 40%);transform:translate(.03em,.002em)}39%{clip-path:inset(67% 0 29%);transform:translate(-.032em,.003em)}48%{clip-path:inset(78% 0 18%);transform:translate(.027em)}59%{clip-path:inset(88% 0 8%);transform:translate(-.02em,-.004em)}}@keyframes hero-title-glitch-slice-b{0%,6%,77%,to{clip-path:inset(0 0 100%);transform:translate(0)scaleX(1)}10%{clip-path:inset(71% 0 25%);transform:translate(-.038em,.003em)scaleX(1.006)}13%{clip-path:inset(76% 0 21%);transform:translate(.024em,-.004em)scaleX(.998)}16%{clip-path:inset(10% 0 86%);transform:translate(.03em,-.006em)scaleX(.998)}21%{clip-path:inset(24% 0 72%);transform:translate(-.026em,.002em)scaleX(1.008)}28%{clip-path:inset(39% 0 57%);transform:translate(.034em)scaleX(1.005)}35%{clip-path:inset(51% 0 46%);transform:translate(-.02em,.004em)scaleX(1.006)}43%{clip-path:inset(63% 0 33%);transform:translate(.026em,-.002em)scaleX(1.004)}52%{clip-path:inset(81% 0 16%);transform:translate(-.018em,-.002em)scaleX(1.003)}66%{clip-path:inset(90% 0 6%);transform:translate(.016em,.004em)scaleX(1)}}h2{max-width:12ch;font-size:min(clamp(2.3rem,6vw,6.4rem),13vw)}h3{font-size:min(clamp(1.35rem,2vw,2rem),10vw)}@media (max-width:700px){:root{--header-clearance:7rem}#hero-title{font-size:min(clamp(3.6rem,18vw,6rem),20vw);font-size:min(clamp(3.6rem,18vw,6rem),25cqi)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}.site-header{z-index:9;padding-block-start:.2rem;padding-block-end:.2rem;color:var(--text);-webkit-backdrop-filter:blur(10px);background:#050505db;justify-content:space-between;align-items:center;gap:1rem;padding-block-start:calc(.2rem + var(--safe-area-top));padding-inline-start:var(--page-inset-start);padding-inline-end:var(--page-inset-end);display:flex;position:fixed;top:0;left:0;right:0}.brand,.site-header nav,.site-footer{font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem}.brand{flex:none;align-items:center;gap:.75rem;min-block-size:2.75rem;display:inline-flex}.brand span{text-indent:var(--hero-optical-left);display:block}.site-header nav{align-items:center;gap:clamp(.6rem,2vw,1.5rem);min-inline-size:0;display:flex}.site-header nav a{min-block-size:2.75rem;color:var(--muted);align-items:center;display:inline-flex}.site-header nav a[aria-current],.site-header nav a:hover{color:var(--text)}.hero-section{min-height:100vh;background:#050505;min-height:100svh;position:relative;overflow:visible}.hero-canvas{z-index:1;inline-size:calc(100% + var(--page-inset-start) + var(--page-inset-end));min-inline-size:0;height:min(clamp(22rem,72svh,45rem),100svh - 4rem);min-height:0;grid-area:1/1/auto/-1;align-self:center;margin-inline-start:calc(0px - var(--page-inset-start));position:relative;overflow:visible}.hero-canvas canvas{z-index:1;touch-action:pan-y pinch-zoom;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.hero-touch-zone{display:none}.hero-fallback{background:#050505}.hero-canvas.hero-fallback{height:0;min-height:0;overflow:hidden}.hero-grid{z-index:2;min-height:100vh;min-height:100svh;grid-template-columns:minmax(0,.74fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);padding-block-start:calc(7rem + var(--safe-area-top));padding-block-end:max(clamp(2rem, 6vw, 5rem), var(--safe-area-bottom));padding-inline-start:var(--page-inset-start);padding-inline-end:var(--page-inset-end);display:grid;position:relative}.hero-copy{z-index:3;grid-area:1/1;align-self:center;min-inline-size:0;position:relative;transform:translateY(clamp(-2.5rem,-5vh,-1rem));container-type:inline-size}.hero-statement{max-width:min(35rem,100%);color:var(--muted);margin:1.5rem 0 0;font-size:clamp(1.05rem,1.8vw,1.45rem)}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.page-section{padding-block-start:clamp(5rem,12vw,11rem);padding-block-end:clamp(5rem,12vw,11rem);padding-inline-start:var(--page-inset-start);padding-inline-end:var(--page-inset-end)}.section-heading{grid-template-columns:minmax(10rem,.32fr) minmax(0,1fr);align-items:start;gap:2rem;margin-bottom:clamp(2rem,6vw,5rem);display:grid}.works-section .section-heading{display:block}.works-section .section-heading h2{max-width:16ch}.works-grid{background:0 0;border:0;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;grid-auto-flow:row;align-items:stretch;gap:1px;min-inline-size:0;display:grid}.about-section{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:clamp(2rem,7vw,7rem);display:grid}.about-portrait{top:calc(var(--header-clearance) + var(--safe-area-top) + 2rem);filter:grayscale();background:0 0;border:0;position:sticky;overflow:hidden}.about-portrait,.about-copy,.about-columns>*,.contact-section>*{min-inline-size:0}.about-copy,.contact-section>:first-child{container-type:inline-size}:is(.about-copy,.contact-section>:first-child) h2{font-size:min(clamp(2.3rem,6vw,6.4rem),17cqi)}.about-portrait img{aspect-ratio:1;object-fit:contain;opacity:.84;mix-blend-mode:luminosity;width:100%;height:auto}.about-copy p{max-width:46rem;color:var(--muted);font-size:clamp(1.05rem,1.6vw,1.28rem)}.about-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2.5rem;display:grid}.about-columns div{padding-top:1rem}.about-columns h3{font-family:var(--font-mono);text-transform:uppercase;margin-bottom:1rem;font-size:.75rem}.about-columns ul{color:var(--muted);gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.about-note{margin-top:2rem}.contact-section{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:end;gap:clamp(2rem,6vw,6rem);display:grid}.site-footer{color:var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block-start:2rem;padding-block-end:calc(2rem + var(--safe-area-bottom));padding-inline-start:var(--page-inset-start);padding-inline-end:var(--page-inset-end);display:flex}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:.8rem clamp(1rem,2vw,1.5rem);display:flex}.footer-links a:hover{color:var(--text)}.footer-links a{align-items:center;min-block-size:2.75rem;display:inline-flex}@media (min-width:43.75rem){.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.works-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:96rem){.works-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:64rem){.hero-grid,.section-heading,.about-section,.contact-section{grid-template-columns:1fr}.work-card{grid-column:auto}.instrument-panel{max-width:36rem}.about-portrait{width:min(100%,28rem);position:relative;top:auto}}@media (min-width:701px) and (max-width:64rem){.hero-statement{max-width:52%}}@media (max-width:700px){.hero-section{min-height:100vh;min-height:100svh;overflow:visible}.hero-canvas{inline-size:100%;opacity:1;height:min(clamp(18rem,48svh,28rem),100vw);min-height:0;margin-block-start:0;margin-inline-start:0}.hero-touch-zone{z-index:2;touch-action:pan-y;background:0 0;width:clamp(2.75rem,16vw,4.75rem);display:block;position:absolute;top:0;bottom:0}.hero-touch-zone-left{left:0}.hero-touch-zone-right{right:0}.site-header{flex-direction:column;align-items:stretch;gap:0}.site-header nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;width:100%;font-size:.72rem;display:grid}.site-header nav a{justify-content:center}.hero-grid{min-height:auto;flex-direction:column;gap:clamp(.8rem,2.5svh,1.6rem);padding-block-start:calc(5.5rem + var(--safe-area-top));padding-block-end:calc(5rem + var(--safe-area-bottom));padding-inline-start:var(--page-inset-start);padding-inline-end:var(--page-inset-end);display:flex}.hero-copy{align-self:stretch;max-width:min(100%,24rem);padding-block-start:1.25rem;transform:none}.hero-statement{max-width:22rem}.about-columns{grid-template-columns:minmax(0,1fr)}.about-portrait{width:min(100%,22rem)}.site-footer{flex-direction:column;align-items:flex-start}.footer-links{justify-content:flex-start}.contact-section{align-items:start}}@media (max-width:420px){.hero-actions{gap:.5rem;margin-top:1.2rem}.hero-statement{margin-top:1rem}.hero-canvas{height:min(clamp(17rem,44svh,24rem),100vw)}}@media (max-width:700px) and (max-height:32rem) and (min-width:421px){:root{--header-clearance:4rem}.site-header{flex-direction:row;align-items:center;gap:1rem}.brand{min-inline-size:max-content}.site-header nav{justify-content:flex-end;gap:clamp(.35rem,1.5vw,.9rem);width:auto;font-size:clamp(.58rem,1.45vw,.66rem);display:flex}.hero-grid{gap:.75rem;padding-block-start:calc(4rem + var(--safe-area-top))}.hero-copy{padding-block-start:0}#hero-title{font-size:min(clamp(3.25rem,15vw,5.25rem),23cqi)}}@media (max-height:32rem) and (min-width:701px){.hero-copy{transform:none}}.instrument-panel{top:50%;right:max(clamp(2rem, 3.5vw, 4rem), var(--page-inset-end));z-index:5;background:0 0;border:0;width:0;padding:0;position:absolute;transform:translateY(-50%)}.control-shell{z-index:1;width:min(20rem, calc(100vw - var(--page-inset-start) - var(--page-inset-end)));max-height:calc(100vh - 2rem);max-height:calc(100dvh - var(--safe-area-top) - var(--safe-area-bottom) - 2rem);overscroll-behavior:contain;border:1px solid var(--line-strong);opacity:0;pointer-events:none;visibility:hidden;background:#050505f0;border-radius:10px;padding:1rem;transition:opacity .24s,transform .42s cubic-bezier(.22,1,.36,1),visibility 0s linear .42s;display:none;position:absolute;top:50%;right:0;overflow-y:auto;transform:translate(calc(100% + 1.5rem),-50%)}.instrument-panel.is-open .control-shell{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .24s,transform .42s cubic-bezier(.22,1,.36,1),visibility;display:block;transform:translateY(-50%)}.instrument-panel.is-open .control-handle{opacity:0;pointer-events:none;visibility:hidden}.control-handle{z-index:2;border:1px solid var(--line-strong);width:1.35rem;height:7.6rem;color:var(--muted);touch-action:manipulation;background:#050505b8;border-radius:10px;padding:0;position:absolute;top:50%;right:0;overflow:hidden;transform:translateY(-50%)}.control-handle span{font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;writing-mode:vertical-rl;place-items:center;font-size:.48rem;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;transform:rotate(180deg)}.panel-topline{border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.85rem;font-size:.68rem;display:flex}.panel-close{border:1px solid var(--line-strong);min-height:2.75rem;color:var(--text);font-family:var(--font-mono);text-transform:uppercase;background:0 0;border-radius:10px;padding:0 .62rem;font-size:.62rem}.panel-close:hover{border-color:var(--text)}.control-bank{gap:1rem;padding-top:1rem;display:grid}.dial-control{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;grid-template-columns:5.6rem minmax(0,1fr) 3rem;align-items:center;gap:.75rem;font-size:.68rem;display:grid}.dial-control output{color:var(--text);text-align:right}.dial-control input{width:100%;accent-color:var(--accent)}.control-reset{border:1px solid var(--line-strong);min-height:2.75rem;color:var(--text);font-family:var(--font-mono);text-transform:uppercase;background:0 0;border-radius:10px;font-size:.68rem}.control-reset:hover{border-color:var(--text)}.dial-control input[type=range]{-webkit-appearance:none;appearance:none;background:0 0;height:1.25rem}.dial-control input[type=range]::-webkit-slider-runnable-track{background:var(--line-strong);height:2px}.dial-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:1px solid var(--text);background:#111;border-radius:0;width:1rem;height:1rem;margin-top:-.45rem}.dial-control input[type=range]::-moz-range-track{background:var(--line-strong);height:2px}.dial-control input[type=range]::-moz-range-thumb{border:1px solid var(--text);background:#111;border-radius:0;width:1rem;height:1rem}.instrument-button,.work-link{border:1px solid var(--line-strong);min-height:2.75rem;color:var(--text);font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;background:#ffffff09;border-radius:10px;justify-content:center;align-items:center;padding:0 1rem;font-size:.72rem;display:inline-flex}.instrument-button.primary{background:var(--text);color:var(--bg)}.instrument-button:hover,.work-link:hover,.control-handle:hover{border-color:var(--text);color:var(--text)}.work-card{inline-size:100%;min-inline-size:0;background:var(--bg);flex-direction:column;min-height:34rem;padding:0;display:flex;overflow:hidden}.work-card-body{flex-direction:column;flex:1;min-inline-size:0;padding:1.35rem clamp(1rem,2vw,1.4rem) clamp(1rem,2vw,1.4rem);display:flex}.work-media{aspect-ratio:16/9;inline-size:100%;min-inline-size:0;background:#0d0d0c;flex:none;height:auto;min-height:0;margin:0;display:block;position:relative;overflow:hidden}.work-media img,.work-video,.work-picture{object-fit:contain;object-position:center;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.work-picture{opacity:0}.work-media.has-media .work-picture{opacity:1}.work-video{object-fit:contain;filter:none}.work-video[hidden],.work-picture[hidden]{display:none}.placeholder-mark{color:#ffffff57;font-family:var(--font-mono);font-size:clamp(3rem,7vw,6rem);line-height:1;position:absolute;bottom:.75rem;right:1.1rem}.work-media.has-media .placeholder-mark{display:none}.work-meta,.tech-list{font-family:var(--font-mono);text-transform:uppercase;font-size:.68rem}.work-meta{color:var(--faint);flex-wrap:wrap;gap:.65rem;display:flex}.work-card h3{min-height:4.1rem;margin-top:1.2rem;font-size:clamp(1.35rem,2vw,2rem)}.work-title-link,.work-title-link:hover{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.work-card p{min-height:6.2rem;color:var(--muted)}.work-card p a{color:var(--text);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.work-card p a:hover{color:var(--text)}.work-card p a:focus-visible{outline-offset:3px}.tech-list{color:var(--muted);flex-wrap:wrap;gap:.4rem;margin:auto 0 0;padding:1.25rem 0 0;list-style:none;display:flex}.tech-list li{border:1px solid var(--line);border-radius:999px;padding:.25rem .45rem}.work-link{margin-top:1rem}.no-script-message{max-width:42rem;color:var(--muted);grid-column:1/-1;margin:0}.contact-console{background:0 0;border:0;flex-wrap:wrap;align-self:end;align-items:baseline;gap:.8rem clamp(1.2rem,3vw,2.5rem);min-inline-size:0;max-inline-size:100%;padding:0 0 .28em;display:flex}.contact-link{min-inline-size:0;max-inline-size:100%;min-height:2.75rem;color:var(--text);overflow-wrap:anywhere;font-family:var(--font-mono);text-transform:none;-webkit-touch-callout:default;-webkit-user-select:text;user-select:text;align-items:center;font-size:clamp(.95rem,1.4vw,1.2rem);display:inline-flex}.contact-link:hover{text-underline-offset:.28em;text-decoration:underline}@media (max-width:700px){.instrument-panel{display:none}.panel-topline{padding-bottom:.65rem}.control-bank{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding-top:.75rem}.dial-control{grid-template-columns:minmax(0,1fr) 2.5rem;gap:.4rem;font-size:.62rem}.dial-control span{grid-column:1/-1}.dial-control input{min-width:0}.control-reset{min-height:2.75rem}.work-card{min-height:auto}.tech-list{margin-top:1rem;padding:0}.work-media{aspect-ratio:16/9;height:auto;min-height:0}}@media (max-width:520px){.control-bank{grid-template-columns:1fr;gap:.6rem}.dial-control{grid-template-columns:4.8rem minmax(0,1fr) 2.4rem;align-items:center}.dial-control span{grid-column:auto}.instrument-button{min-height:2.75rem;padding:0 .78rem;font-size:.66rem}}@media (pointer:coarse){.control-handle{width:2.75rem}.dial-control input[type=range]{height:2.75rem}.dial-control input[type=range]::-webkit-slider-thumb{width:1.25rem;height:1.25rem;margin-top:-.58rem}.dial-control input[type=range]::-moz-range-thumb{width:1.25rem;height:1.25rem}}
